/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/core/src/system-context/builtins.ts
50 строк
2 KB
James Long
refactor(core): remove domain layer exports (#34625)
30 июн 2026, 20:05
Не верифицирован
30 июн 2026, 20:05
5a23bdc
Код
Авторство
О чём код?
export * as SystemContextBuiltIns from "./builtins" import { makeLocationNode } from "../effect/app-node" import { DateTime, Effect, Layer, Schema } from "effect" import { Location } from "../location" import { SystemContext } from "./index" import { InstructionContext } from "../instruction-context" import { SystemContextRegistry } from "./registry" import { FSUtil } from "../fs-util" import { Global } from "../global" const builtIns = Layer.effectDiscard( Effect.gen(function* () { const location = yield* Location.Service const registry = yield* SystemContextRegistry.Service const environment = [ "<env>", ` Working directory: ${location.directory}`, ` Workspace root folder: ${location.project.directory}`, ` Is directory a git repo: ${location.vcs?.type === "git" ? "yes" : "no"}`, ` Platform: ${process.platform}`, "</env>", ].join("\n") const context = SystemContext.combine([ SystemContext.make({ key: SystemContext.Key.make("core/environment"), codec: Schema.toCodecJson(Schema.String), load: Effect.succeed(environment), baseline: (environment) => ["Here is some useful information about the environment you are running in:", environment].join("\n"), update: (_previous, environment) => ["The environment you are running in is now:", environment].join("\n"), }), SystemContext.make({ key: SystemContext.Key.make("core/date"), codec: Schema.toCodecJson(Schema.String), load: DateTime.nowAsDate.pipe(Effect.map((date) => date.toDateString())), baseline: (date) => `Today's date: ${date}`, update: (_previous, date) => `Today's date is now: ${date}`, }), ]) yield* registry.register({ key: SystemContext.Key.make("core/builtins"), load: Effect.succeed(context) }) }), ) export const node = makeLocationNode({ name: "system-context-builtins", layer: builtIns, deps: [Location.node, SystemContextRegistry.node, InstructionContext.node, FSUtil.node, Global.node], })