@vornicx/origin 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +238 -0
- package/dist/apollo/index.d.ts +87 -0
- package/dist/apollo/index.js +140 -0
- package/dist/apollo/index.js.map +1 -0
- package/dist/chunk-77G3SI57.js +1119 -0
- package/dist/chunk-77G3SI57.js.map +1 -0
- package/dist/index.d.ts +158 -0
- package/dist/index.js +137 -0
- package/dist/index.js.map +1 -0
- package/dist/policy-KjPvxtus.d.ts +605 -0
- package/package.json +96 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/context/ignore.ts","../src/context/context-engine.ts","../src/memory/store.ts","../src/memory/memory.ts","../src/observability/tracer.ts","../src/policy/approvals.ts","../src/policy/policy.ts","../src/agent/contract.ts","../src/providers/providers.ts","../src/agent/plan-parse.ts","../src/agent/reference-runtime.ts","../src/agent/agent.ts","../src/agent/runtime.ts"],"names":["join","readFile","readdir","randomUUID","relative","sep","execCb","stdout","z","truncate"],"mappings":"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","file":"chunk-77G3SI57.js","sourcesContent":["/**\n * A pragmatic gitignore-style matcher: comments, blank lines, negation (`!`),\n * directory-only (`foo/`), anchored (`/foo`, `a/b`) vs floating (`foo`) patterns,\n * and `*` / `**` / `?` globs. Paths are matched POSIX-style relative to the root.\n */\n\ninterface Rule {\n negated: boolean;\n dirOnly: boolean;\n regex: RegExp;\n}\n\n/** Split ignore-file content into raw pattern lines (drops blanks and comments). */\nexport function parseIgnore(content: string): string[] {\n return content\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter((line) => line.length > 0 && !line.startsWith(\"#\"));\n}\n\nexport class Ignore {\n private readonly rules: Rule[] = [];\n\n add(patterns: string[]): this {\n for (const pattern of patterns) {\n const rule = compile(pattern);\n if (rule) this.rules.push(rule);\n }\n return this;\n }\n\n /** Returns true if `path` (POSIX, relative to root) is ignored. Last match wins. */\n ignores(path: string, isDir: boolean): boolean {\n let ignored = false;\n for (const rule of this.rules) {\n if (rule.dirOnly && !isDir) continue;\n if (rule.regex.test(path)) ignored = !rule.negated;\n }\n return ignored;\n }\n}\n\nfunction compile(raw: string): Rule | null {\n let pattern = raw.trim();\n if (!pattern || pattern.startsWith(\"#\")) return null;\n\n let negated = false;\n if (pattern.startsWith(\"!\")) {\n negated = true;\n pattern = pattern.slice(1);\n }\n\n let dirOnly = false;\n if (pattern.endsWith(\"/\")) {\n dirOnly = true;\n pattern = pattern.slice(0, -1);\n }\n\n let anchored = false;\n if (pattern.startsWith(\"/\")) {\n anchored = true;\n pattern = pattern.slice(1);\n } else if (pattern.includes(\"/\")) {\n anchored = true;\n }\n\n if (!pattern) return null;\n\n const prefix = anchored ? \"^\" : \"(?:^|/)\";\n const regex = new RegExp(`${prefix}${globToRegex(pattern)}(?:/.*)?$`);\n return { negated, dirOnly, regex };\n}\n\nfunction globToRegex(glob: string): string {\n let out = \"\";\n for (let i = 0; i < glob.length; i++) {\n const c = glob[i]!;\n if (c === \"*\") {\n if (glob[i + 1] === \"*\") {\n if (glob[i + 2] === \"/\") {\n out += \"(?:.*/)?\";\n i += 2;\n } else {\n out += \".*\";\n i += 1;\n }\n } else {\n out += \"[^/]*\";\n }\n } else if (c === \"?\") {\n out += \"[^/]\";\n } else {\n out += escapeRegexChar(c);\n }\n }\n return out;\n}\n\nfunction escapeRegexChar(ch: string): string {\n return /[.+^${}()|[\\]\\\\]/.test(ch) ? `\\\\${ch}` : ch;\n}\n","import { readFile, readdir, stat } from \"node:fs/promises\";\nimport { extname, join, relative, sep } from \"node:path\";\nimport { Ignore, parseIgnore } from \"./ignore\";\nimport type { ContextBundle, FileRef, Intent, ToolRef } from \"./types\";\n\nconst DEFAULT_IGNORE_DIRS = [\"node_modules\", \".git\", \".origin\", \"dist\", \"coverage\"];\nconst DEFAULT_IGNORE_FILES = [\".gitignore\", \".originignore\"];\nconst DEFAULT_MAX_FILES = 2000;\n\nconst LANGUAGE_BY_EXT: Record<string, string> = {\n ts: \"TypeScript\",\n tsx: \"TypeScript\",\n js: \"JavaScript\",\n jsx: \"JavaScript\",\n mjs: \"JavaScript\",\n cjs: \"JavaScript\",\n py: \"Python\",\n rs: \"Rust\",\n go: \"Go\",\n java: \"Java\",\n rb: \"Ruby\",\n php: \"PHP\",\n c: \"C\",\n h: \"C\",\n cpp: \"C++\",\n cs: \"C#\",\n swift: \"Swift\",\n kt: \"Kotlin\",\n sql: \"SQL\",\n sh: \"Shell\",\n json: \"JSON\",\n yaml: \"YAML\",\n yml: \"YAML\",\n toml: \"TOML\",\n md: \"Markdown\",\n html: \"HTML\",\n css: \"CSS\",\n};\n\nexport interface ScanOptions {\n /** Directory to scan. Defaults to `process.cwd()`. */\n root?: string;\n /** Cap on files collected. Defaults to 2000. */\n maxFiles?: number;\n /** Tools available to the agent, surfaced in the bundle. */\n tools?: ToolRef[];\n /** A goal to parse into an `Intent`. */\n goal?: string;\n /** Ignore-file names to honor. Defaults to `.gitignore` + `.originignore`. */\n ignoreFiles?: string[];\n}\n\n/**\n * Understands the work around you: scans a workspace into a structured\n * `ContextBundle` of files, languages, available tools, and parsed intent —\n * honoring `.gitignore` / `.originignore`.\n */\nexport class ContextEngine {\n async scan(options: ScanOptions = {}): Promise<ContextBundle> {\n const root = options.root ?? process.cwd();\n const maxFiles = options.maxFiles ?? DEFAULT_MAX_FILES;\n const ignoreFiles = options.ignoreFiles ?? DEFAULT_IGNORE_FILES;\n\n const ignore = new Ignore().add(DEFAULT_IGNORE_DIRS.map((d) => `${d}/`));\n for (const name of ignoreFiles) {\n try {\n ignore.add(parseIgnore(await readFile(join(root, name), \"utf8\")));\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code !== \"ENOENT\") throw err;\n }\n }\n\n const files: FileRef[] = [];\n let truncated = false;\n\n const walk = async (dir: string): Promise<void> => {\n const entries = await readdir(dir, { withFileTypes: true });\n for (const entry of entries) {\n if (truncated) return;\n if (entry.isSymbolicLink()) continue;\n const abs = join(dir, entry.name);\n const rel = toPosix(relative(root, abs));\n if (entry.isDirectory()) {\n if (ignore.ignores(rel, true)) continue;\n await walk(abs);\n } else if (entry.isFile()) {\n if (ignore.ignores(rel, false)) continue;\n if (files.length >= maxFiles) {\n truncated = true;\n return;\n }\n const info = await stat(abs);\n const ext = extname(entry.name).slice(1).toLowerCase();\n const language = LANGUAGE_BY_EXT[ext];\n files.push(\n language\n ? { path: rel, size: info.size, ext, language }\n : { path: rel, size: info.size, ext },\n );\n }\n }\n };\n await walk(root);\n\n const languages: Record<string, number> = {};\n for (const file of files) {\n if (file.language) languages[file.language] = (languages[file.language] ?? 0) + 1;\n }\n\n const bundle: ContextBundle = {\n root,\n files,\n languages,\n tools: options.tools ?? [],\n truncated,\n scannedAt: new Date().toISOString(),\n };\n if (options.goal) bundle.intent = parseIntent(options.goal);\n return bundle;\n }\n}\n\nconst ACTION_VERBS = new Set([\n \"add\",\n \"analyze\",\n \"build\",\n \"configure\",\n \"create\",\n \"delete\",\n \"deploy\",\n \"document\",\n \"fix\",\n \"generate\",\n \"implement\",\n \"install\",\n \"integrate\",\n \"investigate\",\n \"migrate\",\n \"optimize\",\n \"plan\",\n \"prepare\",\n \"publish\",\n \"refactor\",\n \"release\",\n \"remove\",\n \"review\",\n \"summarize\",\n \"test\",\n \"update\",\n \"write\",\n]);\n\nconst STOPWORDS = new Set([\n \"the\",\n \"and\",\n \"for\",\n \"with\",\n \"this\",\n \"that\",\n \"from\",\n \"into\",\n \"your\",\n \"you\",\n \"are\",\n \"was\",\n \"has\",\n \"have\",\n \"will\",\n \"all\",\n \"any\",\n \"our\",\n \"their\",\n \"his\",\n \"her\",\n \"its\",\n]);\n\n/** Parse a goal into an `Intent`: detected action verbs and salient keywords. */\nexport function parseIntent(goal: string): Intent {\n const words = goal\n .toLowerCase()\n .replace(/[^\\p{L}\\p{N}\\s]/gu, \" \")\n .split(/\\s+/)\n .filter(Boolean);\n const verbs = unique(words.filter((w) => ACTION_VERBS.has(w)));\n const keywords = unique(\n words.filter((w) => w.length > 3 && !STOPWORDS.has(w) && !ACTION_VERBS.has(w)),\n ).slice(0, 12);\n return { goal: goal.trim(), verbs, keywords };\n}\n\nfunction unique<T>(items: T[]): T[] {\n return [...new Set(items)];\n}\n\nfunction toPosix(p: string): string {\n return p.split(sep).join(\"/\");\n}\n","import type { MemoryRecord, RecallHit, RecallOptions } from \"./types\";\n\n/**\n * Persistence backend for Atlas memory. Implementations need only provide CRUD;\n * ranking is done in `Memory`. A store MAY implement `recall` to push search down\n * to the backend (e.g. SQL full-text), in which case `Memory` delegates to it.\n */\nexport interface MemoryStore {\n all(): Promise<MemoryRecord[]>;\n get(id: string): Promise<MemoryRecord | null>;\n put(record: MemoryRecord): Promise<void>;\n delete(id: string): Promise<boolean>;\n clear(): Promise<void>;\n recall?(query: string, options: RecallOptions): Promise<RecallHit[]>;\n}\n\n/** Ephemeral, in-process store. The default when no persistence is configured. */\nexport class InMemoryStore implements MemoryStore {\n private readonly records = new Map<string, MemoryRecord>();\n\n async all(): Promise<MemoryRecord[]> {\n return [...this.records.values()];\n }\n\n async get(id: string): Promise<MemoryRecord | null> {\n return this.records.get(id) ?? null;\n }\n\n async put(record: MemoryRecord): Promise<void> {\n this.records.set(record.id, record);\n }\n\n async delete(id: string): Promise<boolean> {\n return this.records.delete(id);\n }\n\n async clear(): Promise<void> {\n this.records.clear();\n }\n}\n","import { randomUUID } from \"node:crypto\";\nimport { InMemoryStore } from \"./store\";\nimport type { MemoryStore } from \"./store\";\nimport type {\n MemoryKind,\n MemoryRecord,\n RecallHit,\n RecallOptions,\n RememberInput,\n} from \"./types\";\n\nconst DEFAULT_RECALL_LIMIT = 6;\nconst RECENCY_HALF_LIFE_DAYS = 30;\n\nexport interface MemoryOptions {\n store?: MemoryStore;\n /** Injectable clock (tests). Defaults to `() => new Date()`. */\n now?: () => Date;\n}\n\n/**\n * Atlas — Origin's persistent memory. Remembers notes, facts, preferences,\n * decisions and chat across sessions, and recalls them ranked by\n * relevance × importance × recency.\n */\nexport class Memory {\n private readonly store: MemoryStore;\n private readonly now: () => Date;\n\n constructor(options: MemoryOptions = {}) {\n this.store = options.store ?? new InMemoryStore();\n this.now = options.now ?? (() => new Date());\n }\n\n async remember(input: RememberInput): Promise<MemoryRecord> {\n const content = input.content?.trim();\n if (!content) throw new Error(\"Memory.remember: `content` is required\");\n const ts = this.now().toISOString();\n const record: MemoryRecord = {\n id: randomUUID(),\n content,\n kind: input.kind ?? \"note\",\n importance: clampImportance(input.importance ?? 1),\n source: input.source,\n metadata: input.metadata ?? {},\n createdAt: ts,\n updatedAt: ts,\n };\n await this.store.put(record);\n return record;\n }\n\n async recall(query: string, options: RecallOptions = {}): Promise<RecallHit[]> {\n const limit = options.limit ?? DEFAULT_RECALL_LIMIT;\n if (this.store.recall) return this.store.recall(query, { ...options, limit });\n\n const all = await this.store.all();\n const nowMs = this.now().getTime();\n const terms = tokenize(query);\n return all\n .filter((r) => (options.kind ? r.kind === options.kind : true))\n .filter((r) => (options.minImportance ? r.importance >= options.minImportance : true))\n .map((r): RecallHit => ({ ...r, score: scoreRecord(r, terms, nowMs) }))\n .sort((a, b) => b.score - a.score || b.updatedAt.localeCompare(a.updatedAt))\n .slice(0, limit);\n }\n\n async list(options: { kind?: MemoryKind; limit?: number } = {}): Promise<MemoryRecord[]> {\n const all = await this.store.all();\n const filtered = options.kind ? all.filter((r) => r.kind === options.kind) : all;\n filtered.sort((a, b) => b.createdAt.localeCompare(a.createdAt));\n return options.limit ? filtered.slice(0, options.limit) : filtered;\n }\n\n async update(\n id: string,\n patch: { content?: string; importance?: number; metadata?: Record<string, unknown> },\n ): Promise<MemoryRecord | null> {\n const existing = await this.store.get(id);\n if (!existing) return null;\n const updated: MemoryRecord = {\n ...existing,\n content: patch.content?.trim() || existing.content,\n importance:\n patch.importance !== undefined ? clampImportance(patch.importance) : existing.importance,\n metadata: patch.metadata ? { ...existing.metadata, ...patch.metadata } : existing.metadata,\n updatedAt: this.now().toISOString(),\n };\n await this.store.put(updated);\n return updated;\n }\n\n async forget(id: string): Promise<boolean> {\n return this.store.delete(id);\n }\n\n async forgetAll(): Promise<void> {\n return this.store.clear();\n }\n\n /** All records, oldest first — for backup/inspection. */\n async export(): Promise<MemoryRecord[]> {\n const all = await this.store.all();\n return all.sort((a, b) => a.createdAt.localeCompare(b.createdAt));\n }\n\n /** Recalled memories rendered as a system-prompt block (Apollo-compatible). */\n async formatBlock(query: string, options: RecallOptions = {}): Promise<string> {\n return formatMemoriesBlock(await this.recall(query, options));\n }\n}\n\nfunction clampImportance(n: number): number {\n if (!Number.isFinite(n)) return 1;\n return Math.min(5, Math.max(1, Math.round(n)));\n}\n\n/** Lowercase word tokens of length > 2, Unicode-aware. */\nexport function tokenize(text: string): string[] {\n return text\n .toLowerCase()\n .replace(/[^\\p{L}\\p{N}\\s]/gu, \" \")\n .split(/\\s+/)\n .filter((w) => w.length > 2);\n}\n\nfunction scoreRecord(record: MemoryRecord, queryTerms: string[], nowMs: number): number {\n const haystack = new Set(tokenize(record.content));\n let overlap = 0;\n for (const term of queryTerms) if (haystack.has(term)) overlap += 1;\n const relevance = queryTerms.length > 0 ? overlap / queryTerms.length : 0; // 0..1\n const importance = (record.importance - 1) / 4; // 0..1\n const ageDays = Math.max(0, (nowMs - Date.parse(record.updatedAt)) / 86_400_000);\n const recency = Math.exp(-ageDays / RECENCY_HALF_LIFE_DAYS); // 0..1\n return relevance * 1.0 + importance * 0.3 + recency * 0.2;\n}\n\n/** Render memories as a compact, prompt-ready block. */\nexport function formatMemoriesBlock(memories: MemoryRecord[]): string {\n if (memories.length === 0) return \"\";\n const lines = memories.map((m) => {\n const date = m.createdAt.slice(0, 10);\n return `- [${m.kind} · ${date}] ${m.content.replace(/\\s+/g, \" \").trim().slice(0, 600)}`;\n });\n return [\n \"# Origin memory\",\n \"Relevant things you remember about this user. Use them silently to stay consistent. Do not list them back unless asked.\",\n ...lines,\n ].join(\"\\n\");\n}\n","import { randomUUID } from \"node:crypto\";\nimport { appendFile, mkdir, readFile, readdir } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport type { Redactor, Trace, TraceEvent, TraceEventKind, TraceSink } from \"./types\";\n\n// ─── Redaction ──────────────────────────────────────────────────────────────\n\nconst SECRET_KEY_RE =\n /(api[-_]?key|secret|token|password|passwd|authorization|auth|bearer|credential|private[-_]?key)/i;\n\nconst SECRET_VALUE_RES: RegExp[] = [\n /\\bsk-[A-Za-z0-9]{16,}\\b/g, // OpenAI-style\n /\\bBearer\\s+[A-Za-z0-9._-]{8,}\\b/gi, // Authorization headers\n /\\bgh[pousr]_[A-Za-z0-9]{20,}\\b/g, // GitHub tokens\n /\\bxox[baprs]-[A-Za-z0-9-]{10,}\\b/g, // Slack tokens\n];\n\nfunction redactValue(value: unknown, keyIsSecret: boolean): unknown {\n if (typeof value === \"string\") {\n if (keyIsSecret) return \"[redacted]\";\n let out = value;\n for (const re of SECRET_VALUE_RES) out = out.replace(re, \"[redacted]\");\n return out;\n }\n if (Array.isArray(value)) return value.map((v) => redactValue(v, false));\n if (value && typeof value === \"object\") {\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(value)) out[k] = redactValue(v, SECRET_KEY_RE.test(k));\n return out;\n }\n return value;\n}\n\n/** Default redactor: masks secret-looking keys and known token formats. */\nexport const defaultRedactor: Redactor = (data) =>\n redactValue(data, false) as Record<string, unknown>;\n\n// ─── Sinks ──────────────────────────────────────────────────────────────────\n\n/** Ephemeral, in-process trace sink. */\nexport class MemorySink implements TraceSink {\n private readonly traces = new Map<string, TraceEvent[]>();\n\n async append(event: TraceEvent): Promise<void> {\n const events = this.traces.get(event.traceId) ?? [];\n events.push(event);\n this.traces.set(event.traceId, events);\n }\n\n async load(traceId: string): Promise<TraceEvent[]> {\n return [...(this.traces.get(traceId) ?? [])];\n }\n\n async list(): Promise<string[]> {\n return [...this.traces.keys()];\n }\n}\n\n/** Append-only JSONL trace sink, one file per trace under `dir`. */\nexport class JsonlSink implements TraceSink {\n constructor(private readonly dir: string) {}\n\n private file(traceId: string): string {\n return join(this.dir, `${traceId}.jsonl`);\n }\n\n async append(event: TraceEvent): Promise<void> {\n await mkdir(this.dir, { recursive: true });\n await appendFile(this.file(event.traceId), `${JSON.stringify(event)}\\n`, \"utf8\");\n }\n\n async load(traceId: string): Promise<TraceEvent[]> {\n try {\n const raw = await readFile(this.file(traceId), \"utf8\");\n return raw\n .split(\"\\n\")\n .filter((line) => line.trim().length > 0)\n .map((line) => JSON.parse(line) as TraceEvent);\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return [];\n throw err;\n }\n }\n\n async list(): Promise<string[]> {\n try {\n const entries = await readdir(this.dir);\n return entries.filter((f) => f.endsWith(\".jsonl\")).map((f) => f.slice(0, -\".jsonl\".length));\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return [];\n throw err;\n }\n }\n}\n\n// ─── Tracer ─────────────────────────────────────────────────────────────────\n\ninterface TracerOptions {\n traceId: string;\n sink: TraceSink;\n redactor: Redactor;\n now: () => Date;\n}\n\n/** Records the events of a single trace (one agent run / mission). */\nexport class Tracer {\n readonly traceId: string;\n private readonly sink: TraceSink;\n private readonly redactor: Redactor;\n private readonly now: () => Date;\n private seq = 0;\n private readonly events: TraceEvent[] = [];\n\n constructor(options: TracerOptions) {\n this.traceId = options.traceId;\n this.sink = options.sink;\n this.redactor = options.redactor;\n this.now = options.now;\n }\n\n async event(\n kind: TraceEventKind,\n label: string,\n data?: Record<string, unknown>,\n durationMs?: number,\n ): Promise<TraceEvent> {\n const event: TraceEvent = {\n traceId: this.traceId,\n seq: this.seq++,\n at: this.now().toISOString(),\n kind,\n label,\n ...(data ? { data: this.redactor(data) } : {}),\n ...(durationMs !== undefined ? { durationMs } : {}),\n };\n this.events.push(event);\n await this.sink.append(event);\n return event;\n }\n\n start(label = \"mission\", data?: Record<string, unknown>) {\n return this.event(\"mission_start\", label, data);\n }\n end(label = \"mission\", data?: Record<string, unknown>) {\n return this.event(\"mission_end\", label, data);\n }\n decision(label: string, data?: Record<string, unknown>) {\n return this.event(\"decision\", label, data);\n }\n plan(label: string, data?: Record<string, unknown>) {\n return this.event(\"plan\", label, data);\n }\n toolCall(label: string, data?: Record<string, unknown>) {\n return this.event(\"tool_call\", label, data);\n }\n approval(label: string, data?: Record<string, unknown>) {\n return this.event(\"approval\", label, data);\n }\n apply(label: string, data?: Record<string, unknown>) {\n return this.event(\"apply\", label, data);\n }\n verify(label: string, data?: Record<string, unknown>) {\n return this.event(\"verify\", label, data);\n }\n memory(label: string, data?: Record<string, unknown>) {\n return this.event(\"memory\", label, data);\n }\n error(label: string, data?: Record<string, unknown>) {\n return this.event(\"error\", label, data);\n }\n\n /** Start a timed span; call `.end()` to record it with a `durationMs`. */\n span(kind: TraceEventKind, label: string, data?: Record<string, unknown>) {\n const startedAt = this.now().getTime();\n return {\n end: (extra?: Record<string, unknown>): Promise<TraceEvent> => {\n const durationMs = this.now().getTime() - startedAt;\n return this.event(kind, label, { ...(data ?? {}), ...(extra ?? {}) }, durationMs);\n },\n };\n }\n\n /** In-memory view of this trace so far. */\n snapshot(): Trace {\n return buildTrace(this.traceId, this.events);\n }\n}\n\n// ─── Observability ────────────────────────────────────────────────────────────\n\nexport interface ObservabilityOptions {\n sink?: TraceSink;\n /** Persist traces as JSONL under this directory (e.g. `<root>/.origin/traces`). */\n dir?: string;\n redactor?: Redactor;\n now?: () => Date;\n}\n\n/** Top-level entry point: starts traces and replays them. */\nexport class Observability {\n private readonly sink: TraceSink;\n private readonly redactor: Redactor;\n private readonly now: () => Date;\n\n constructor(options: ObservabilityOptions = {}) {\n this.sink = options.sink ?? (options.dir ? new JsonlSink(options.dir) : new MemorySink());\n this.redactor = options.redactor ?? defaultRedactor;\n this.now = options.now ?? (() => new Date());\n }\n\n startTrace(): Tracer {\n return new Tracer({\n traceId: randomUUID(),\n sink: this.sink,\n redactor: this.redactor,\n now: this.now,\n });\n }\n\n async replay(traceId: string): Promise<Trace> {\n return buildTrace(traceId, await this.sink.load(traceId));\n }\n\n async list(): Promise<string[]> {\n return this.sink.list();\n }\n}\n\nfunction buildTrace(id: string, events: TraceEvent[]): Trace {\n const sorted = [...events].sort((a, b) => a.seq - b.seq);\n const startedAt = sorted[0]?.at;\n const endEvent = [...sorted].reverse().find((e) => e.kind === \"mission_end\");\n const endedAt = endEvent?.at ?? sorted[sorted.length - 1]?.at;\n return {\n id,\n ...(startedAt ? { startedAt } : {}),\n ...(endedAt ? { endedAt } : {}),\n events: sorted,\n };\n}\n","import { stdin, stdout } from \"node:process\";\nimport { createInterface } from \"node:readline/promises\";\nimport type {\n ApprovalHandler,\n AuthorizeResult,\n Policy,\n PolicyContext,\n ProposedAction,\n} from \"./types\";\n\n/** Approve everything (use for trusted automation / tests). */\nexport const autoApprove: ApprovalHandler = () => ({ approved: true });\n\n/** Deny everything that needs approval (safe default when no approver is wired). */\nexport const denyAll: ApprovalHandler = () => ({\n approved: false,\n note: \"no approver configured\",\n});\n\n/** Interactive terminal approver (y/N prompt on stdin). */\nexport function cliApprover(): ApprovalHandler {\n return async (req) => {\n const rl = createInterface({ input: stdin, output: stdout });\n try {\n const answer = await rl.question(\n `\\n[origin] ${req.reason}\\n → ${req.action.summary}\\n Approve? [y/N] `,\n );\n return { approved: /^y(es)?$/i.test(answer.trim()) };\n } finally {\n rl.close();\n }\n };\n}\n\n/**\n * Resolve a proposed action against a policy, consulting the approver only when\n * the policy gate says \"ask\". This is the single entry point agents use before\n * acting.\n */\nexport async function authorize(\n policy: Policy,\n action: ProposedAction,\n approver: ApprovalHandler,\n ctx?: PolicyContext,\n): Promise<AuthorizeResult> {\n const gate = policy.gate(action, ctx);\n if (gate === \"allow\") return { allowed: true, gate, via: \"policy\" };\n if (gate === \"deny\") return { allowed: false, gate, via: \"policy\", note: \"denied by policy\" };\n\n const decision = await approver({\n action,\n policy: policy.name,\n reason: `${policy.name} requires approval for a ${action.kind} action`,\n });\n return {\n allowed: decision.approved,\n gate,\n via: \"approver\",\n ...(decision.note ? { note: decision.note } : {}),\n };\n}\n","import { isAbsolute, relative, resolve, sep } from \"node:path\";\nimport type { Policy, PolicyBudget, ProposedAction } from \"./types\";\n\nconst READ_ONLY = new Set<ProposedAction[\"kind\"]>([\"read\", \"plan\", \"memory\"]);\nconst DEFAULT_BUDGET: PolicyBudget = { maxSteps: 25, maxToolCalls: 50 };\n\nexport interface PolicyOptions {\n budget?: Partial<PolicyBudget>;\n}\n\nexport interface AutonomousOptions extends PolicyOptions {\n /** Skip outside-root approval prompts. Use only for trusted, bounded tasks. */\n fullAuto?: boolean;\n}\n\nfunction resolveBudget(budget?: Partial<PolicyBudget>): PolicyBudget {\n return { ...DEFAULT_BUDGET, ...(budget ?? {}) };\n}\n\nfunction isReadOnly(action: ProposedAction): boolean {\n return READ_ONLY.has(action.kind) && !action.mutating;\n}\n\n/** True if `target`, resolved against `root`, escapes the workspace. */\nexport function outsideRoot(target: string | undefined, root: string | undefined): boolean {\n if (!target || !root) return false;\n const rel = relative(resolve(root), resolve(root, target));\n return rel === \"..\" || rel.startsWith(`..${sep}`) || isAbsolute(rel);\n}\n\n/**\n * The default. Read-only work proceeds; anything that changes the world\n * (write/exec/network/tool) requires human approval before it leaves the gate.\n */\nexport function humanDirected(options: PolicyOptions = {}): Policy {\n return {\n name: \"humanDirected\",\n mode: \"review\",\n budget: resolveBudget(options.budget),\n gate(action) {\n return isReadOnly(action) ? \"allow\" : \"ask\";\n },\n };\n}\n\n/** Plan and propose only — never execute. */\nexport function reviewOnly(options: PolicyOptions = {}): Policy {\n return {\n name: \"reviewOnly\",\n mode: \"plan\",\n budget: resolveBudget(options.budget),\n gate(action) {\n return isReadOnly(action) ? \"allow\" : \"deny\";\n },\n };\n}\n\n/** Execute within budget and scope. Outside the root still asks, unless full-auto. */\nexport function autonomous(options: AutonomousOptions = {}): Policy {\n const fullAuto = options.fullAuto ?? false;\n return {\n name: fullAuto ? \"autonomous(full-auto)\" : \"autonomous\",\n mode: fullAuto ? \"full-auto\" : \"auto\",\n budget: resolveBudget(options.budget),\n gate(action, ctx) {\n if (fullAuto) return \"allow\";\n return outsideRoot(action.target, ctx?.root) ? \"ask\" : \"allow\";\n },\n };\n}\n","import { exec as execCb } from \"node:child_process\";\nimport { createHash } from \"node:crypto\";\nimport { promisify } from \"node:util\";\nimport { z } from \"zod\";\n\nconst pexec = promisify(execCb);\n\n/**\n * A success contract — the objective, runnable definition of \"done\". Mirrors\n * Apollo's contract (commands / http / regex / criteria) so a goal verified by\n * Origin is verified the same way by Apollo.\n */\nexport const contractSchema = z.object({\n commands: z\n .array(z.object({ cmd: z.string().min(1), expectExit: z.number().int().default(0) }))\n .default([]),\n http: z\n .array(z.object({ url: z.string().url(), expectStatus: z.number().int().default(200) }))\n .default([]),\n regex: z.array(z.object({ cmd: z.string().min(1), pattern: z.string().min(1) })).default([]),\n criteria: z.array(z.string()).default([]),\n});\n\nexport type Contract = z.infer<typeof contractSchema>;\n\nexport interface CheckResult {\n type: \"command\" | \"http\" | \"regex\";\n target: string;\n pass: boolean;\n detail?: string;\n}\n\nexport interface Certificate {\n ok: boolean;\n checks: CheckResult[];\n /** Human-judged criteria, carried through but not auto-evaluated. */\n criteria: string[];\n issuedAt: string;\n /** sha256 over checks + criteria + ok — a tamper-evident fingerprint. */\n hash: string;\n}\n\nexport interface ExecResult {\n code: number;\n stdout: string;\n stderr: string;\n}\n\nexport type ExecFn = (cmd: string, opts: { cwd?: string; timeoutMs?: number }) => Promise<ExecResult>;\n\nexport interface EvaluateOptions {\n cwd?: string;\n timeoutMs?: number;\n fetchImpl?: typeof fetch;\n execImpl?: ExecFn;\n now?: () => Date;\n}\n\nconst defaultExec: ExecFn = async (cmd, opts) => {\n try {\n const { stdout, stderr } = await pexec(cmd, {\n cwd: opts.cwd,\n timeout: opts.timeoutMs,\n windowsHide: true,\n });\n return { code: 0, stdout: String(stdout), stderr: String(stderr) };\n } catch (e) {\n const err = e as { code?: number; stdout?: string; stderr?: string };\n return {\n code: typeof err.code === \"number\" ? err.code : 1,\n stdout: err.stdout ?? \"\",\n stderr: err.stderr ?? \"\",\n };\n }\n};\n\n/** Run a contract's checks and issue a certificate. */\nexport async function evaluateContract(input: unknown, options: EvaluateOptions = {}): Promise<Certificate> {\n const contract = contractSchema.parse(input);\n const run = options.execImpl ?? defaultExec;\n const doFetch = options.fetchImpl ?? fetch;\n const now = options.now ?? (() => new Date());\n const timeoutMs = options.timeoutMs ?? 15_000;\n const checks: CheckResult[] = [];\n\n for (const c of contract.commands) {\n const res = await run(c.cmd, { cwd: options.cwd, timeoutMs });\n checks.push({\n type: \"command\",\n target: c.cmd,\n pass: res.code === c.expectExit,\n detail: `exit ${res.code} (expected ${c.expectExit})`,\n });\n }\n\n for (const r of contract.regex) {\n const res = await run(r.cmd, { cwd: options.cwd, timeoutMs });\n let pass = false;\n let detail: string | undefined;\n try {\n pass = new RegExp(r.pattern).test(`${res.stdout}\\n${res.stderr}`);\n } catch {\n detail = \"invalid pattern\";\n }\n checks.push({ type: \"regex\", target: `${r.cmd} =~ /${r.pattern}/`, pass, ...(detail ? { detail } : {}) });\n }\n\n for (const h of contract.http) {\n try {\n const res = await doFetch(h.url, { method: \"GET\", signal: AbortSignal.timeout(timeoutMs) });\n checks.push({\n type: \"http\",\n target: h.url,\n pass: res.status === h.expectStatus,\n detail: `status ${res.status} (expected ${h.expectStatus})`,\n });\n } catch (e) {\n checks.push({ type: \"http\", target: h.url, pass: false, detail: String(e) });\n }\n }\n\n return certify(checks, contract.criteria, now().toISOString());\n}\n\nfunction certify(checks: CheckResult[], criteria: string[], issuedAt: string): Certificate {\n const ok = checks.every((c) => c.pass);\n const canonical = JSON.stringify({\n checks: [...checks].sort((a, b) => `${a.type}:${a.target}`.localeCompare(`${b.type}:${b.target}`)),\n criteria,\n ok,\n });\n const hash = createHash(\"sha256\").update(canonical).digest(\"hex\");\n return { ok, checks, criteria, issuedAt, hash };\n}\n\n/** Extract a fenced ```contract { … }``` block from an LLM plan, if present. */\nexport function parseContractFromPlan(plan: string): Contract | null {\n const block =\n plan.match(/```contract\\s*([\\s\\S]*?)```/i)?.[1] ??\n plan.match(/##\\s*contract\\s*([\\s\\S]*?)(?:\\n#{1,3}\\s|\\n\\n\\n|$)/i)?.[1];\n if (!block) return null;\n const trimmed = block.trim();\n if (!trimmed.startsWith(\"{\")) return null;\n try {\n return contractSchema.parse(JSON.parse(trimmed));\n } catch {\n return null;\n }\n}\n","/**\n * BYOK provider layer.\n *\n * A dependency-free `fetch` wrapper over the major LLM providers. It shares Apollo's\n * provider set and `ChatMessage` shape, so keys and prompts are drop-in compatible\n * across Origin and Apollo. Keys are read from the environment — Origin never ships\n * or stores them.\n */\n\nexport type ChatRole = \"system\" | \"user\" | \"assistant\";\n\nexport interface ChatMessage {\n role: ChatRole;\n content: string;\n}\n\nexport const SUPPORTED_PROVIDERS = [\n \"anthropic\",\n \"openai\",\n \"google\",\n \"groq\",\n \"mistral\",\n \"openrouter\",\n] as const;\n\nexport type SupportedProvider = (typeof SUPPORTED_PROVIDERS)[number];\n\n/** Environment variables consulted for each provider, in priority order. */\nexport const PROVIDER_KEY_ENV: Record<SupportedProvider, readonly string[]> = {\n anthropic: [\"ANTHROPIC_API_KEY\"],\n openai: [\"OPENAI_API_KEY\"],\n google: [\"GOOGLE_AI_API_KEY\", \"GEMINI_API_KEY\"],\n groq: [\"GROQ_API_KEY\"],\n mistral: [\"MISTRAL_API_KEY\"],\n openrouter: [\"OPENROUTER_API_KEY\"],\n};\n\ntype Env = Record<string, string | undefined>;\n\nexport function isSupportedProvider(value: string): value is SupportedProvider {\n return (SUPPORTED_PROVIDERS as readonly string[]).includes(value);\n}\n\n/** Resolve an API key for a provider from the environment, or `null` if unset. */\nexport function resolveProviderKey(provider: SupportedProvider, env: Env = process.env): string | null {\n for (const name of PROVIDER_KEY_ENV[provider]) {\n const value = env[name];\n if (value) return value;\n }\n return null;\n}\n\n/** List providers that have a usable key in the given environment. */\nexport function availableProviders(env: Env = process.env): SupportedProvider[] {\n return SUPPORTED_PROVIDERS.filter((p) => resolveProviderKey(p, env) !== null);\n}\n\nexport interface ProviderCall {\n provider: SupportedProvider;\n model: string;\n apiKey: string;\n messages: ChatMessage[];\n signal?: AbortSignal;\n /** Inject a `fetch` implementation (tests, proxies). Defaults to the global `fetch`. */\n fetchImpl?: typeof fetch;\n}\n\nconst ANTHROPIC_MAX_TOKENS = 4096;\n\n/** Call a provider and return the assistant's text. Throws on a non-OK response. */\nexport async function callProviderText(call: ProviderCall): Promise<string> {\n const res = await dispatch(call, false);\n if (!res.ok) {\n const body = await res.text().catch(() => \"\");\n throw new Error(`Provider error (${call.provider} ${res.status}): ${body.slice(0, 500)}`);\n }\n return parseProviderText(call.provider, await res.json());\n}\n\n/** Call a provider and return the raw streaming `Response` (SSE). */\nexport async function callProviderStream(call: ProviderCall): Promise<Response> {\n return dispatch(call, true);\n}\n\nfunction dispatch(call: ProviderCall, stream: boolean): Promise<Response> {\n const doFetch = call.fetchImpl ?? fetch;\n switch (call.provider) {\n case \"anthropic\":\n return callAnthropic(call, stream, doFetch);\n case \"google\":\n return callGoogle(call, stream, doFetch);\n case \"openai\":\n case \"groq\":\n case \"mistral\":\n case \"openrouter\":\n return callOpenAICompatible(call, stream, doFetch);\n default: {\n const exhaustive: never = call.provider;\n return Promise.resolve(new Response(`Unsupported provider: ${String(exhaustive)}`, { status: 400 }));\n }\n }\n}\n\nfunction callAnthropic(call: ProviderCall, stream: boolean, doFetch: typeof fetch): Promise<Response> {\n const system = call.messages.find((m) => m.role === \"system\")?.content;\n const messages = call.messages\n .filter((m) => m.role !== \"system\")\n .map((m) => ({ role: m.role === \"assistant\" ? \"assistant\" : \"user\", content: m.content }));\n return doFetch(\"https://api.anthropic.com/v1/messages\", {\n method: \"POST\",\n headers: {\n \"x-api-key\": call.apiKey,\n \"anthropic-version\": \"2023-06-01\",\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n model: call.model,\n max_tokens: ANTHROPIC_MAX_TOKENS,\n stream,\n ...(system ? { system } : {}),\n messages,\n }),\n signal: call.signal,\n });\n}\n\nfunction callOpenAICompatible(call: ProviderCall, stream: boolean, doFetch: typeof fetch): Promise<Response> {\n const baseUrl =\n call.provider === \"openai\"\n ? \"https://api.openai.com/v1\"\n : call.provider === \"groq\"\n ? \"https://api.groq.com/openai/v1\"\n : call.provider === \"openrouter\"\n ? \"https://openrouter.ai/api/v1\"\n : \"https://api.mistral.ai/v1\";\n\n return doFetch(`${baseUrl}/chat/completions`, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${call.apiKey}`,\n \"Content-Type\": \"application/json\",\n ...(call.provider === \"openrouter\"\n ? { \"HTTP-Referer\": \"https://archic.es\", \"X-Title\": \"Origin\" }\n : {}),\n },\n body: JSON.stringify({ model: call.model, messages: call.messages, stream }),\n signal: call.signal,\n });\n}\n\nfunction callGoogle(call: ProviderCall, stream: boolean, doFetch: typeof fetch): Promise<Response> {\n const system = call.messages.find((m) => m.role === \"system\")?.content;\n const contents = call.messages\n .filter((m) => m.role !== \"system\")\n .map((m) => ({ role: m.role === \"assistant\" ? \"model\" : \"user\", parts: [{ text: m.content }] }));\n const method = stream ? \"streamGenerateContent?alt=sse\" : \"generateContent\";\n const separator = stream ? \"&\" : \"?\";\n const url =\n `https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(call.model)}` +\n `:${method}${separator}key=${encodeURIComponent(call.apiKey)}`;\n return doFetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n contents,\n ...(system ? { systemInstruction: { parts: [{ text: system }] } } : {}),\n }),\n signal: call.signal,\n });\n}\n\n/** Build a per-line SSE delta extractor for a provider's streaming format. */\nexport function makeSSEParser(provider: SupportedProvider): (line: string) => string {\n return (line: string): string => {\n if (!line || line.startsWith(\":\") || !line.startsWith(\"data:\")) return \"\";\n const payload = line.slice(5).trim();\n if (!payload || payload === \"[DONE]\") return \"\";\n try {\n const obj = JSON.parse(payload) as {\n type?: string;\n delta?: { type?: string; text?: string };\n candidates?: { content?: { parts?: { text?: string }[] } }[];\n choices?: { delta?: { content?: string } }[];\n };\n if (provider === \"anthropic\") {\n if (obj.type === \"content_block_delta\" && obj.delta?.type === \"text_delta\") {\n return obj.delta.text ?? \"\";\n }\n return \"\";\n }\n if (provider === \"google\") {\n const parts = obj.candidates?.[0]?.content?.parts;\n if (Array.isArray(parts)) return parts.map((p) => p.text ?? \"\").join(\"\");\n return \"\";\n }\n return obj.choices?.[0]?.delta?.content ?? \"\";\n } catch {\n return \"\";\n }\n };\n}\n\nfunction parseProviderText(provider: SupportedProvider, body: unknown): string {\n const obj = body as {\n choices?: { message?: { content?: string } }[];\n content?: { text?: string }[];\n candidates?: { content?: { parts?: { text?: string }[] } }[];\n };\n if (provider === \"anthropic\") {\n return (\n obj.content\n ?.map((p) => p.text ?? \"\")\n .join(\"\")\n .trim() ?? \"\"\n );\n }\n if (provider === \"google\") {\n return (\n obj.candidates?.[0]?.content?.parts\n ?.map((p) => p.text ?? \"\")\n .join(\"\")\n .trim() ?? \"\"\n );\n }\n return obj.choices?.[0]?.message?.content?.trim() ?? \"\";\n}\n","import { z } from \"zod\";\nimport type { Plan, PlanStep, Tool } from \"./runtime\";\n\nconst planResponseSchema = z.object({\n rationale: z.string().optional(),\n steps: z\n .array(\n z.object({\n description: z.string(),\n tool: z.string().optional(),\n input: z.unknown().optional(),\n mutating: z.boolean().optional(),\n }),\n )\n .default([]),\n contract: z.unknown().optional(),\n});\n\n/** Pull the first JSON object out of free text (handles ```json fences). */\nexport function extractJson(text: string): unknown {\n const fenced = text.match(/```(?:json)?\\s*([\\s\\S]*?)```/i)?.[1] ?? text;\n const start = fenced.indexOf(\"{\");\n const end = fenced.lastIndexOf(\"}\");\n if (start === -1 || end === -1 || end < start) return {};\n try {\n return JSON.parse(fenced.slice(start, end + 1));\n } catch {\n return {};\n }\n}\n\n/**\n * Parse a planner's JSON response into a {@link Plan}, resolving tool names\n * against the available tools. Shared by the reference and Apollo runtimes so a\n * plan is interpreted identically regardless of who produced it.\n */\nexport function parsePlan(text: string, tools: Tool[]): Plan {\n const parsed = planResponseSchema.safeParse(extractJson(text));\n if (!parsed.success) return { steps: [], rationale: \"planner returned no actionable steps\" };\n const toolByName = new Map(tools.map((t) => [t.name, t]));\n const steps: PlanStep[] = parsed.data.steps.map((step, i) => {\n const tool = step.tool ? toolByName.get(step.tool) : undefined;\n return {\n id: `s${i + 1}`,\n description: step.description,\n ...(tool ? { tool: tool.name } : {}),\n ...(step.input !== undefined ? { input: step.input } : {}),\n kind: tool ? (tool.kind ?? \"tool\") : \"plan\",\n mutating: step.mutating ?? tool?.mutating ?? false,\n };\n });\n return {\n steps,\n ...(parsed.data.rationale ? { rationale: parsed.data.rationale } : {}),\n ...(parsed.data.contract !== undefined ? { contract: parsed.data.contract } : {}),\n };\n}\n","import {\n availableProviders,\n callProviderText,\n resolveProviderKey,\n type ChatMessage,\n type SupportedProvider,\n} from \"../providers/providers\";\nimport { parsePlan } from \"./plan-parse\";\nimport type { Observation, Plan, Runtime, RuntimeContext } from \"./runtime\";\n\nexport type Completion = (messages: ChatMessage[]) => Promise<string>;\n\nconst DEFAULT_MODELS: Record<SupportedProvider, string> = {\n openrouter: \"openai/gpt-4o-mini\",\n openai: \"gpt-4o-mini\",\n anthropic: \"claude-3-5-sonnet-latest\",\n google: \"gemini-1.5-flash\",\n groq: \"llama-3.1-8b-instant\",\n mistral: \"mistral-small-latest\",\n};\n\nexport interface ReferenceRuntimeOptions {\n /** Provide an LLM completion directly (tests, custom routing). */\n complete?: Completion;\n provider?: SupportedProvider;\n model?: string;\n env?: Record<string, string | undefined>;\n fetchImpl?: typeof fetch;\n}\n\n/**\n * A minimal but real reasoning runtime: it plans a goal into steps via an LLM,\n * then synthesizes a final answer from the executed steps. With no provider key\n * it degrades to a legible dry run (empty plan + explanatory answer).\n */\nexport class ReferenceRuntime implements Runtime {\n readonly name = \"reference\";\n private readonly complete?: Completion;\n\n constructor(options: ReferenceRuntimeOptions = {}) {\n if (options.complete) {\n this.complete = options.complete;\n return;\n }\n const env = options.env ?? process.env;\n const provider = options.provider ?? availableProviders(env)[0];\n if (!provider) return;\n const apiKey = resolveProviderKey(provider, env);\n if (!apiKey) return;\n const model = options.model ?? DEFAULT_MODELS[provider];\n const fetchImpl = options.fetchImpl;\n this.complete = (messages) =>\n callProviderText({ provider, model, apiKey, messages, ...(fetchImpl ? { fetchImpl } : {}) });\n }\n\n async plan(ctx: RuntimeContext): Promise<Plan> {\n if (!this.complete) return { steps: [], rationale: \"dry-run: no LLM provider configured\" };\n const text = await this.complete([\n { role: \"system\", content: buildPlannerSystem(ctx) },\n { role: \"user\", content: `Goal: ${ctx.goal}\\n\\nReturn the JSON plan now.` },\n ]);\n return parsePlan(text, ctx.tools);\n }\n\n async synthesize(ctx: RuntimeContext, observations: Observation[]): Promise<string> {\n if (!this.complete) {\n return (\n `Origin dry-run for \"${ctx.goal}\". No LLM provider configured; recorded ` +\n `${observations.length} step(s). Set a provider key (e.g. OPENROUTER_API_KEY) to enable reasoning.`\n );\n }\n const obs =\n observations\n .map(\n (o) =>\n `- ${o.stepId}: ${o.ok ? \"ok\" : \"failed\"}` +\n (o.output !== undefined ? ` → ${truncate(JSON.stringify(o.output), 300)}` : \"\") +\n (o.error ? ` (error: ${o.error})` : \"\"),\n )\n .join(\"\\n\") || \"(none)\";\n return this.complete([\n {\n role: \"system\",\n content:\n \"You are Origin. Using the goal, memory, and step results, write a concise, direct final answer for the user. No preamble.\",\n },\n {\n role: \"user\",\n content: `Goal: ${ctx.goal}\\n\\nMemory:\\n${ctx.memoryBlock || \"(none)\"}\\n\\nStep results:\\n${obs}\\n\\nFinal answer:`,\n },\n ]);\n }\n}\n\nfunction buildPlannerSystem(ctx: RuntimeContext): string {\n const tools = ctx.tools.length\n ? ctx.tools\n .map((t) => `- ${t.name}: ${t.description ?? \"(no description)\"}${t.mutating ? \" [mutating]\" : \"\"}`)\n .join(\"\\n\")\n : \"(no tools available)\";\n return [\n \"You are Origin's planner. Decompose the user's goal into a short ordered list of steps (1-5).\",\n 'Use a tool only when an action is required; otherwise omit \"tool\".',\n \"Available tools:\",\n tools,\n 'Respond ONLY with JSON: {\"rationale\": string, \"steps\": [{\"description\": string, \"tool\"?: string, \"input\"?: any, \"mutating\"?: boolean}], \"contract\"?: {\"commands\"?: [{\"cmd\": string}], \"criteria\"?: [string]}}.',\n ].join(\"\\n\");\n}\n\nfunction truncate(s: string, n: number): string {\n return s.length > n ? `${s.slice(0, n)}…` : s;\n}\n","import { ContextEngine } from \"../context/context-engine\";\nimport { Memory } from \"../memory/memory\";\nimport { Observability } from \"../observability/tracer\";\nimport { authorize, autoApprove, cliApprover } from \"../policy/approvals\";\nimport { humanDirected } from \"../policy/policy\";\nimport type { ApprovalHandler, Policy, ProposedAction } from \"../policy/types\";\nimport type { SupportedProvider } from \"../providers/providers\";\nimport { evaluateContract, type Certificate } from \"./contract\";\nimport { ReferenceRuntime, type Completion } from \"./reference-runtime\";\nimport type { Observation, PlanStep, Runtime, Tool } from \"./runtime\";\n\nexport interface MissionResult {\n goal: string;\n answer: string;\n steps: PlanStep[];\n observations: Observation[];\n certificate?: Certificate;\n traceId: string;\n policy: string;\n}\n\n/**\n * Options for {@link ApolloAgent}. Only what you care about — everything else\n * has a sensible default (in-memory Atlas, fresh context, in-memory traces,\n * human-directed policy, the reference runtime).\n */\nexport interface ApolloAgentOptions {\n /** The Atlas memory layer. Typically `origin.memory`. Defaults to a fresh in-memory store. */\n memory?: Memory;\n tools?: Tool[];\n /** Defaults to `humanDirected()`. */\n policy?: Policy;\n context?: ContextEngine;\n observability?: Observability;\n /** Approval handler. Defaults to a CLI prompt for review/plan modes, auto-approve for auto modes. */\n approver?: ApprovalHandler;\n /** Reasoning/action runtime. Defaults to the built-in reference runtime. */\n runtime?: Runtime;\n root?: string;\n // Reference-runtime conveniences (ignored when `runtime` is provided):\n provider?: SupportedProvider;\n model?: string;\n /** Provide an LLM completion directly (tests, custom routing). */\n complete?: Completion;\n}\n\n/**\n * Apollo Agent — the composable agent runtime that powers Origin. It reasons\n * over a goal, uses tools, and acts safely under human control:\n *\n * ```ts\n * const agent = new ApolloAgent({\n * memory: origin.memory,\n * tools: [calendar, mail, browser],\n * policy: humanDirected(),\n * });\n * await agent.run(\"Prepare my launch plan\");\n * ```\n *\n * One run is: context → recall → plan → (gate → act → trace) per step →\n * synthesize → verify → remember. Every decision is traced; every change passes\n * the policy gate first.\n *\n * @see https://archic.es\n */\nexport class ApolloAgent {\n readonly memory: Memory;\n readonly observability: Observability;\n private readonly tools: Tool[];\n private readonly policy: Policy;\n private readonly contextEngine: ContextEngine;\n private readonly approver: ApprovalHandler;\n private readonly runtime: Runtime;\n private readonly root: string;\n\n constructor(options: ApolloAgentOptions = {}) {\n this.memory = options.memory ?? new Memory();\n this.tools = options.tools ?? [];\n this.policy = options.policy ?? humanDirected();\n this.contextEngine = options.context ?? new ContextEngine();\n this.observability = options.observability ?? new Observability();\n this.approver =\n options.approver ??\n (this.policy.mode === \"auto\" || this.policy.mode === \"full-auto\" ? autoApprove : cliApprover());\n this.runtime =\n options.runtime ??\n new ReferenceRuntime({\n ...(options.complete ? { complete: options.complete } : {}),\n ...(options.provider ? { provider: options.provider } : {}),\n ...(options.model ? { model: options.model } : {}),\n });\n this.root = options.root ?? process.cwd();\n }\n\n async run(goal: string): Promise<MissionResult> {\n const { runtime, memory, contextEngine, observability, policy, approver, tools, root } = this;\n const tracer = observability.startTrace();\n await tracer.start(goal, { policy: policy.name, mode: policy.mode });\n\n const context = await contextEngine.scan({\n root,\n goal,\n tools: tools.map((t) => ({ name: t.name, ...(t.description ? { description: t.description } : {}) })),\n });\n await tracer.decision(\"context scanned\", {\n files: context.files.length,\n languages: context.languages,\n });\n\n const memoryBlock = await memory.formatBlock(goal);\n if (memoryBlock) await tracer.memory(\"recalled memory\");\n\n const rctx = { goal, context, memoryBlock, tools };\n const plan = await runtime.plan(rctx);\n await tracer.plan(`planned ${plan.steps.length} step(s)`, {\n ...(plan.rationale ? { rationale: plan.rationale } : {}),\n steps: plan.steps.map((s) => s.description),\n });\n\n const observations: Observation[] = [];\n for (const step of plan.steps) {\n if (observations.length >= policy.budget.maxSteps) {\n await tracer.decision(\"step budget reached\", { maxSteps: policy.budget.maxSteps });\n break;\n }\n const action: ProposedAction = {\n kind: step.kind,\n summary: step.description,\n ...(step.tool ? { tool: step.tool } : {}),\n mutating: step.mutating,\n };\n const auth = await authorize(policy, action, approver, { root });\n await tracer.approval(`${auth.gate}: ${auth.allowed ? \"allowed\" : \"blocked\"}`, {\n step: step.description,\n via: auth.via,\n ...(auth.note ? { note: auth.note } : {}),\n });\n if (!auth.allowed) {\n observations.push({\n stepId: step.id,\n ok: false,\n skipped: true,\n error: auth.note ?? \"blocked by policy\",\n });\n continue;\n }\n if (!step.tool) {\n observations.push({ stepId: step.id, ok: true, output: step.description });\n continue;\n }\n const tool = tools.find((t) => t.name === step.tool);\n if (!tool) {\n await tracer.error(\"unknown tool\", { tool: step.tool });\n observations.push({ stepId: step.id, ok: false, error: `unknown tool: ${step.tool}` });\n continue;\n }\n const span = tracer.span(\"tool_call\", tool.name, { input: step.input });\n try {\n const output = await tool.run(step.input, { goal });\n observations.push({ stepId: step.id, ok: true, output });\n await span.end({ ok: true });\n } catch (e) {\n const error = e instanceof Error ? e.message : String(e);\n observations.push({ stepId: step.id, ok: false, error });\n await span.end({ ok: false, error });\n }\n }\n\n const answer = await runtime.synthesize(rctx, observations);\n\n let certificate: Certificate | undefined;\n if (plan.contract !== undefined && policy.mode !== \"plan\") {\n const auth = await authorize(\n policy,\n { kind: \"exec\", summary: \"verify success contract\", mutating: false },\n approver,\n { root },\n );\n if (auth.allowed) {\n certificate = await evaluateContract(plan.contract, { cwd: root });\n await tracer.verify(certificate.ok ? \"contract passed\" : \"contract failed\", {\n ok: certificate.ok,\n hash: certificate.hash,\n });\n } else {\n await tracer.decision(\"contract verification skipped\", { reason: auth.note ?? \"blocked\" });\n }\n }\n\n await memory.remember({\n content: `Goal: ${goal}\\nAnswer: ${truncate(answer, 1500)}`,\n kind: \"mission\",\n importance: 2,\n source: \"agent\",\n });\n await tracer.memory(\"saved mission\");\n await tracer.end(\"completed\", certificate ? { contractOk: certificate.ok } : undefined);\n\n return {\n goal,\n answer,\n steps: plan.steps,\n observations,\n ...(certificate ? { certificate } : {}),\n traceId: tracer.traceId,\n policy: policy.name,\n };\n }\n}\n\nfunction truncate(s: string, n: number): string {\n return s.length > n ? `${s.slice(0, n)}…` : s;\n}\n","import type { ContextBundle } from \"../context/types\";\nimport type { ActionKind } from \"../policy/types\";\n\nexport interface ToolContext {\n goal: string;\n signal?: AbortSignal;\n}\n\n/** A capability the agent can invoke. Inputs are validated by the tool itself. */\nexport interface Tool {\n name: string;\n description?: string;\n /** Whether invoking the tool mutates state (informs policy gating). */\n mutating?: boolean;\n /** Action kind for policy (defaults to \"tool\"). */\n kind?: ActionKind;\n run(input: unknown, ctx: ToolContext): Promise<unknown> | unknown;\n}\n\n/** Identity helper for authoring tools with inference and a single import. */\nexport function defineTool(spec: Tool): Tool {\n return spec;\n}\n\nexport interface PlanStep {\n id: string;\n description: string;\n tool?: string;\n input?: unknown;\n kind: ActionKind;\n mutating: boolean;\n}\n\nexport interface Plan {\n steps: PlanStep[];\n rationale?: string;\n /** Optional success contract to verify when the plan completes. */\n contract?: unknown;\n}\n\nexport interface Observation {\n stepId: string;\n ok: boolean;\n output?: unknown;\n error?: string;\n skipped?: boolean;\n}\n\nexport interface RuntimeContext {\n goal: string;\n context: ContextBundle;\n /** Recalled memory, formatted as a prompt block. */\n memoryBlock: string;\n tools: Tool[];\n signal?: AbortSignal;\n}\n\n/**\n * The reasoning/action engine an agent drives. Origin ships a reference runtime;\n * `@vornicx/origin/apollo` provides one backed by the Apollo CLI.\n */\nexport interface Runtime {\n readonly name: string;\n plan(ctx: RuntimeContext): Promise<Plan>;\n synthesize(ctx: RuntimeContext, observations: Observation[]): Promise<string>;\n}\n"]}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { M as Memory, n as ContextEngine, O as Observability, u as MemoryStore, b as ApolloAgentOptions, a as ApolloAgent, s as MemoryRecord, B as Policy, L as ProposedAction, e as ApprovalHandler, H as PolicyContext, g as AuthorizeResult } from './policy-KjPvxtus.js';
|
|
2
|
+
export { A as ActionKind, c as ApolloMode, d as ApprovalDecision, f as ApprovalRequest, h as AutonomousOptions, C as Certificate, i as ChatMessage, j as ChatRole, k as CheckResult, l as Completion, m as ContextBundle, o as Contract, E as EvaluateOptions, F as FileRef, G as Gate, I as InMemoryStore, p as Intent, J as JsonlSink, q as MemoryKind, r as MemoryOptions, t as MemorySink, v as MissionResult, w as ObservabilityOptions, x as Observation, P as PROVIDER_KEY_ENV, y as Plan, z as PlanStep, D as PolicyBudget, K as PolicyOptions, N as ProviderCall, R as RecallHit, Q as RecallOptions, S as Redactor, T as ReferenceRuntime, U as ReferenceRuntimeOptions, V as RememberInput, W as Runtime, X as RuntimeContext, Y as SUPPORTED_PROVIDERS, Z as ScanOptions, _ as SupportedProvider, $ as Tool, a0 as ToolContext, a1 as ToolRef, a2 as Trace, a3 as TraceEvent, a4 as TraceEventKind, a5 as TraceSink, a6 as Tracer, a7 as autonomous, a8 as availableProviders, a9 as callProviderStream, aa as callProviderText, ab as contractSchema, ac as defaultRedactor, ad as defineTool, ae as evaluateContract, af as formatMemoriesBlock, ag as humanDirected, ah as isSupportedProvider, ai as makeSSEParser, aj as outsideRoot, ak as parseContractFromPlan, al as parseIntent, am as resolveProviderKey, an as reviewOnly, ao as tokenize } from './policy-KjPvxtus.js';
|
|
3
|
+
import 'zod';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* The principles Origin is built on, verbatim from https://archic.es.
|
|
7
|
+
* They are not decoration: each maps to a concrete guarantee in this SDK.
|
|
8
|
+
*/
|
|
9
|
+
declare const PRINCIPLES: readonly [{
|
|
10
|
+
readonly numeral: "I";
|
|
11
|
+
readonly title: "First principles";
|
|
12
|
+
readonly statement: "Context, memory, reasoning, tools and control are designed as one system — not bolted together.";
|
|
13
|
+
}, {
|
|
14
|
+
readonly numeral: "II";
|
|
15
|
+
readonly title: "Human agency";
|
|
16
|
+
readonly statement: "Agents amplify judgment, never replace it by default.";
|
|
17
|
+
}, {
|
|
18
|
+
readonly numeral: "III";
|
|
19
|
+
readonly title: "Context as interface";
|
|
20
|
+
readonly statement: "The best intelligence understands the work around you before it acts.";
|
|
21
|
+
}, {
|
|
22
|
+
readonly numeral: "IV";
|
|
23
|
+
readonly title: "Action matters";
|
|
24
|
+
readonly statement: "Intelligence is incomplete until it can help you do something meaningful — with you, not without you.";
|
|
25
|
+
}];
|
|
26
|
+
type Principle = (typeof PRINCIPLES)[number];
|
|
27
|
+
/**
|
|
28
|
+
* The Archic ecosystem — one foundation, multiple layers.
|
|
29
|
+
* `@vornicx/origin` implements the Origin, Apollo and Atlas layers.
|
|
30
|
+
*/
|
|
31
|
+
declare const ECOSYSTEM: {
|
|
32
|
+
/** The foundation. */
|
|
33
|
+
readonly foundation: "Archic";
|
|
34
|
+
/** Personal intelligence layer — context, memory, observability. */
|
|
35
|
+
readonly personalIntelligence: "Origin";
|
|
36
|
+
/** Agent runtime — reasons, uses tools, acts under human control. */
|
|
37
|
+
readonly agentRuntime: "Apollo";
|
|
38
|
+
/** Memory layer — persistent across sessions, decisions and workflows. */
|
|
39
|
+
readonly memoryLayer: "Atlas";
|
|
40
|
+
/** Integrations layer. */
|
|
41
|
+
readonly integrations: "Nexus";
|
|
42
|
+
/** Coming soon. */
|
|
43
|
+
readonly comingSoon: "Forge";
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
interface OriginOptions {
|
|
47
|
+
/** Workspace root. Defaults to `process.cwd()`. */
|
|
48
|
+
root?: string;
|
|
49
|
+
memory?: Memory;
|
|
50
|
+
/** Memory store (when not providing a `Memory` instance). Defaults to a JSON store under `.origin/`. */
|
|
51
|
+
store?: MemoryStore;
|
|
52
|
+
observability?: Observability;
|
|
53
|
+
/** Injectable clock (tests). */
|
|
54
|
+
now?: () => Date;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Origin — the personal intelligence layer. It understands context, remembers
|
|
58
|
+
* what matters (Atlas), and traces everything. Open it once, then spin up
|
|
59
|
+
* human-directed {@link ApolloAgent}s that share its memory and observability.
|
|
60
|
+
*
|
|
61
|
+
* ```ts
|
|
62
|
+
* const origin = await Origin.open();
|
|
63
|
+
* const agent = new ApolloAgent({
|
|
64
|
+
* memory: origin.memory,
|
|
65
|
+
* tools: [calendar, mail, browser],
|
|
66
|
+
* policy: humanDirected(),
|
|
67
|
+
* });
|
|
68
|
+
* await agent.run("Prepare my launch plan");
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* @see https://archic.es
|
|
72
|
+
*/
|
|
73
|
+
declare class Origin {
|
|
74
|
+
readonly root: string;
|
|
75
|
+
readonly memory: Memory;
|
|
76
|
+
readonly context: ContextEngine;
|
|
77
|
+
readonly observability: Observability;
|
|
78
|
+
private constructor();
|
|
79
|
+
static open(options?: OriginOptions): Promise<Origin>;
|
|
80
|
+
/**
|
|
81
|
+
* Create an {@link ApolloAgent} wired to this layer's memory, context and
|
|
82
|
+
* observability. Any option you pass overrides the shared defaults.
|
|
83
|
+
*/
|
|
84
|
+
agent(options?: ApolloAgentOptions): ApolloAgent;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
interface JsonStoreOptions {
|
|
88
|
+
/** Absolute path to the JSON file (e.g. `<root>/.origin/atlas.json`). */
|
|
89
|
+
file: string;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Local-first, zero-dependency store backed by a single JSON file. Writes are
|
|
93
|
+
* atomic (temp file + rename). Records are cached in memory after first load.
|
|
94
|
+
*/
|
|
95
|
+
declare class JsonStore implements MemoryStore {
|
|
96
|
+
private readonly file;
|
|
97
|
+
private cache;
|
|
98
|
+
constructor(options: JsonStoreOptions);
|
|
99
|
+
private load;
|
|
100
|
+
private persist;
|
|
101
|
+
all(): Promise<MemoryRecord[]>;
|
|
102
|
+
get(id: string): Promise<MemoryRecord | null>;
|
|
103
|
+
put(record: MemoryRecord): Promise<void>;
|
|
104
|
+
delete(id: string): Promise<boolean>;
|
|
105
|
+
clear(): Promise<void>;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* A pragmatic gitignore-style matcher: comments, blank lines, negation (`!`),
|
|
110
|
+
* directory-only (`foo/`), anchored (`/foo`, `a/b`) vs floating (`foo`) patterns,
|
|
111
|
+
* and `*` / `**` / `?` globs. Paths are matched POSIX-style relative to the root.
|
|
112
|
+
*/
|
|
113
|
+
/** Split ignore-file content into raw pattern lines (drops blanks and comments). */
|
|
114
|
+
declare function parseIgnore(content: string): string[];
|
|
115
|
+
declare class Ignore {
|
|
116
|
+
private readonly rules;
|
|
117
|
+
add(patterns: string[]): this;
|
|
118
|
+
/** Returns true if `path` (POSIX, relative to root) is ignored. Last match wins. */
|
|
119
|
+
ignores(path: string, isDir: boolean): boolean;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/** Approve everything (use for trusted automation / tests). */
|
|
123
|
+
declare const autoApprove: ApprovalHandler;
|
|
124
|
+
/** Deny everything that needs approval (safe default when no approver is wired). */
|
|
125
|
+
declare const denyAll: ApprovalHandler;
|
|
126
|
+
/** Interactive terminal approver (y/N prompt on stdin). */
|
|
127
|
+
declare function cliApprover(): ApprovalHandler;
|
|
128
|
+
/**
|
|
129
|
+
* Resolve a proposed action against a policy, consulting the approver only when
|
|
130
|
+
* the policy gate says "ask". This is the single entry point agents use before
|
|
131
|
+
* acting.
|
|
132
|
+
*/
|
|
133
|
+
declare function authorize(policy: Policy, action: ProposedAction, approver: ApprovalHandler, ctx?: PolicyContext): Promise<AuthorizeResult>;
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* @vornicx/origin — the Origin personal intelligence layer.
|
|
137
|
+
*
|
|
138
|
+
* A system of context, memory & action. Origin understands the work around you,
|
|
139
|
+
* remembers what matters (Atlas), reasons from goals, and acts through
|
|
140
|
+
* human-directed agents (Apollo) — with every decision traceable.
|
|
141
|
+
*
|
|
142
|
+
* ```ts
|
|
143
|
+
* import { Origin, ApolloAgent, humanDirected } from "@vornicx/origin";
|
|
144
|
+
*
|
|
145
|
+
* const origin = await Origin.open();
|
|
146
|
+
* const agent = new ApolloAgent({
|
|
147
|
+
* memory: origin.memory,
|
|
148
|
+
* tools: [calendar, mail, browser],
|
|
149
|
+
* policy: humanDirected(),
|
|
150
|
+
* });
|
|
151
|
+
* await agent.run("Prepare my launch plan");
|
|
152
|
+
* ```
|
|
153
|
+
*
|
|
154
|
+
* @see https://archic.es
|
|
155
|
+
*/
|
|
156
|
+
declare const VERSION = "0.1.0";
|
|
157
|
+
|
|
158
|
+
export { ApolloAgent, ApolloAgentOptions, ApprovalHandler, Memory as Atlas, AuthorizeResult, ContextEngine, ECOSYSTEM, Ignore, JsonStore, type JsonStoreOptions, Memory, MemoryRecord, MemoryStore, Observability, Origin, type OriginOptions, PRINCIPLES, Policy, type Principle, ProposedAction, VERSION, authorize, autoApprove, cliApprover, denyAll, parseIgnore };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { Memory, Observability, ContextEngine, ApolloAgent } from './chunk-77G3SI57.js';
|
|
2
|
+
export { ApolloAgent, Memory as Atlas, ContextEngine, Ignore, InMemoryStore, JsonlSink, Memory, MemorySink, Observability, PROVIDER_KEY_ENV, ReferenceRuntime, SUPPORTED_PROVIDERS, Tracer, authorize, autoApprove, autonomous, availableProviders, callProviderStream, callProviderText, cliApprover, contractSchema, defaultRedactor, defineTool, denyAll, evaluateContract, formatMemoriesBlock, humanDirected, isSupportedProvider, makeSSEParser, outsideRoot, parseContractFromPlan, parseIgnore, parseIntent, resolveProviderKey, reviewOnly, tokenize } from './chunk-77G3SI57.js';
|
|
3
|
+
import { dirname, join } from 'path';
|
|
4
|
+
import { readFile, mkdir, writeFile, rename } from 'fs/promises';
|
|
5
|
+
|
|
6
|
+
// src/principles.ts
|
|
7
|
+
var PRINCIPLES = [
|
|
8
|
+
{
|
|
9
|
+
numeral: "I",
|
|
10
|
+
title: "First principles",
|
|
11
|
+
statement: "Context, memory, reasoning, tools and control are designed as one system \u2014 not bolted together."
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
numeral: "II",
|
|
15
|
+
title: "Human agency",
|
|
16
|
+
statement: "Agents amplify judgment, never replace it by default."
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
numeral: "III",
|
|
20
|
+
title: "Context as interface",
|
|
21
|
+
statement: "The best intelligence understands the work around you before it acts."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
numeral: "IV",
|
|
25
|
+
title: "Action matters",
|
|
26
|
+
statement: "Intelligence is incomplete until it can help you do something meaningful \u2014 with you, not without you."
|
|
27
|
+
}
|
|
28
|
+
];
|
|
29
|
+
var ECOSYSTEM = {
|
|
30
|
+
/** The foundation. */
|
|
31
|
+
foundation: "Archic",
|
|
32
|
+
/** Personal intelligence layer — context, memory, observability. */
|
|
33
|
+
personalIntelligence: "Origin",
|
|
34
|
+
/** Agent runtime — reasons, uses tools, acts under human control. */
|
|
35
|
+
agentRuntime: "Apollo",
|
|
36
|
+
/** Memory layer — persistent across sessions, decisions and workflows. */
|
|
37
|
+
memoryLayer: "Atlas",
|
|
38
|
+
/** Integrations layer. */
|
|
39
|
+
integrations: "Nexus",
|
|
40
|
+
/** Coming soon. */
|
|
41
|
+
comingSoon: "Forge"
|
|
42
|
+
};
|
|
43
|
+
var JsonStore = class {
|
|
44
|
+
file;
|
|
45
|
+
cache = null;
|
|
46
|
+
constructor(options) {
|
|
47
|
+
this.file = options.file;
|
|
48
|
+
}
|
|
49
|
+
async load() {
|
|
50
|
+
if (this.cache) return this.cache;
|
|
51
|
+
try {
|
|
52
|
+
const raw = await readFile(this.file, "utf8");
|
|
53
|
+
const parsed = JSON.parse(raw);
|
|
54
|
+
this.cache = new Map(parsed.map((r) => [r.id, r]));
|
|
55
|
+
} catch (err) {
|
|
56
|
+
if (err.code === "ENOENT") {
|
|
57
|
+
this.cache = /* @__PURE__ */ new Map();
|
|
58
|
+
} else {
|
|
59
|
+
throw err;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return this.cache;
|
|
63
|
+
}
|
|
64
|
+
async persist() {
|
|
65
|
+
const records = [...(this.cache ?? /* @__PURE__ */ new Map()).values()];
|
|
66
|
+
await mkdir(dirname(this.file), { recursive: true });
|
|
67
|
+
const tmp = `${this.file}.tmp`;
|
|
68
|
+
await writeFile(tmp, JSON.stringify(records, null, 2), "utf8");
|
|
69
|
+
await rename(tmp, this.file);
|
|
70
|
+
}
|
|
71
|
+
async all() {
|
|
72
|
+
return [...(await this.load()).values()];
|
|
73
|
+
}
|
|
74
|
+
async get(id) {
|
|
75
|
+
return (await this.load()).get(id) ?? null;
|
|
76
|
+
}
|
|
77
|
+
async put(record) {
|
|
78
|
+
(await this.load()).set(record.id, record);
|
|
79
|
+
await this.persist();
|
|
80
|
+
}
|
|
81
|
+
async delete(id) {
|
|
82
|
+
const map = await this.load();
|
|
83
|
+
const existed = map.delete(id);
|
|
84
|
+
if (existed) await this.persist();
|
|
85
|
+
return existed;
|
|
86
|
+
}
|
|
87
|
+
async clear() {
|
|
88
|
+
(await this.load()).clear();
|
|
89
|
+
await this.persist();
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
// src/origin.ts
|
|
94
|
+
var Origin = class _Origin {
|
|
95
|
+
root;
|
|
96
|
+
memory;
|
|
97
|
+
context;
|
|
98
|
+
observability;
|
|
99
|
+
constructor(init) {
|
|
100
|
+
this.root = init.root;
|
|
101
|
+
this.memory = init.memory;
|
|
102
|
+
this.context = init.context;
|
|
103
|
+
this.observability = init.observability;
|
|
104
|
+
}
|
|
105
|
+
static async open(options = {}) {
|
|
106
|
+
const root = options.root ?? process.cwd();
|
|
107
|
+
const memory = options.memory ?? new Memory({
|
|
108
|
+
store: options.store ?? new JsonStore({ file: join(root, ".origin", "atlas.json") }),
|
|
109
|
+
...options.now ? { now: options.now } : {}
|
|
110
|
+
});
|
|
111
|
+
const observability = options.observability ?? new Observability({
|
|
112
|
+
dir: join(root, ".origin", "traces"),
|
|
113
|
+
...options.now ? { now: options.now } : {}
|
|
114
|
+
});
|
|
115
|
+
return new _Origin({ root, memory, context: new ContextEngine(), observability });
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Create an {@link ApolloAgent} wired to this layer's memory, context and
|
|
119
|
+
* observability. Any option you pass overrides the shared defaults.
|
|
120
|
+
*/
|
|
121
|
+
agent(options = {}) {
|
|
122
|
+
return new ApolloAgent({
|
|
123
|
+
memory: this.memory,
|
|
124
|
+
context: this.context,
|
|
125
|
+
observability: this.observability,
|
|
126
|
+
root: this.root,
|
|
127
|
+
...options
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
// src/index.ts
|
|
133
|
+
var VERSION = "0.1.0";
|
|
134
|
+
|
|
135
|
+
export { ECOSYSTEM, JsonStore, Origin, PRINCIPLES, VERSION };
|
|
136
|
+
//# sourceMappingURL=index.js.map
|
|
137
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/principles.ts","../src/memory/stores/json-store.ts","../src/origin.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * The principles Origin is built on, verbatim from https://archic.es.\n * They are not decoration: each maps to a concrete guarantee in this SDK.\n */\nexport const PRINCIPLES = [\n {\n numeral: \"I\",\n title: \"First principles\",\n statement:\n \"Context, memory, reasoning, tools and control are designed as one system — not bolted together.\",\n },\n {\n numeral: \"II\",\n title: \"Human agency\",\n statement: \"Agents amplify judgment, never replace it by default.\",\n },\n {\n numeral: \"III\",\n title: \"Context as interface\",\n statement: \"The best intelligence understands the work around you before it acts.\",\n },\n {\n numeral: \"IV\",\n title: \"Action matters\",\n statement:\n \"Intelligence is incomplete until it can help you do something meaningful — with you, not without you.\",\n },\n] as const;\n\nexport type Principle = (typeof PRINCIPLES)[number];\n\n/**\n * The Archic ecosystem — one foundation, multiple layers.\n * `@vornicx/origin` implements the Origin, Apollo and Atlas layers.\n */\nexport const ECOSYSTEM = {\n /** The foundation. */\n foundation: \"Archic\",\n /** Personal intelligence layer — context, memory, observability. */\n personalIntelligence: \"Origin\",\n /** Agent runtime — reasons, uses tools, acts under human control. */\n agentRuntime: \"Apollo\",\n /** Memory layer — persistent across sessions, decisions and workflows. */\n memoryLayer: \"Atlas\",\n /** Integrations layer. */\n integrations: \"Nexus\",\n /** Coming soon. */\n comingSoon: \"Forge\",\n} as const;\n","import { mkdir, readFile, rename, writeFile } from \"node:fs/promises\";\nimport { dirname } from \"node:path\";\nimport type { MemoryStore } from \"../store\";\nimport type { MemoryRecord } from \"../types\";\n\nexport interface JsonStoreOptions {\n /** Absolute path to the JSON file (e.g. `<root>/.origin/atlas.json`). */\n file: string;\n}\n\n/**\n * Local-first, zero-dependency store backed by a single JSON file. Writes are\n * atomic (temp file + rename). Records are cached in memory after first load.\n */\nexport class JsonStore implements MemoryStore {\n private readonly file: string;\n private cache: Map<string, MemoryRecord> | null = null;\n\n constructor(options: JsonStoreOptions) {\n this.file = options.file;\n }\n\n private async load(): Promise<Map<string, MemoryRecord>> {\n if (this.cache) return this.cache;\n try {\n const raw = await readFile(this.file, \"utf8\");\n const parsed = JSON.parse(raw) as MemoryRecord[];\n this.cache = new Map(parsed.map((r) => [r.id, r]));\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") {\n this.cache = new Map();\n } else {\n throw err;\n }\n }\n return this.cache;\n }\n\n private async persist(): Promise<void> {\n const records = [...(this.cache ?? new Map<string, MemoryRecord>()).values()];\n await mkdir(dirname(this.file), { recursive: true });\n const tmp = `${this.file}.tmp`;\n await writeFile(tmp, JSON.stringify(records, null, 2), \"utf8\");\n await rename(tmp, this.file);\n }\n\n async all(): Promise<MemoryRecord[]> {\n return [...(await this.load()).values()];\n }\n\n async get(id: string): Promise<MemoryRecord | null> {\n return (await this.load()).get(id) ?? null;\n }\n\n async put(record: MemoryRecord): Promise<void> {\n (await this.load()).set(record.id, record);\n await this.persist();\n }\n\n async delete(id: string): Promise<boolean> {\n const map = await this.load();\n const existed = map.delete(id);\n if (existed) await this.persist();\n return existed;\n }\n\n async clear(): Promise<void> {\n (await this.load()).clear();\n await this.persist();\n }\n}\n","import { join } from \"node:path\";\nimport { ApolloAgent, type ApolloAgentOptions } from \"./agent/agent\";\nimport { ContextEngine } from \"./context/context-engine\";\nimport { Memory } from \"./memory/memory\";\nimport type { MemoryStore } from \"./memory/store\";\nimport { JsonStore } from \"./memory/stores/json-store\";\nimport { Observability } from \"./observability/tracer\";\n\nexport interface OriginOptions {\n /** Workspace root. Defaults to `process.cwd()`. */\n root?: string;\n memory?: Memory;\n /** Memory store (when not providing a `Memory` instance). Defaults to a JSON store under `.origin/`. */\n store?: MemoryStore;\n observability?: Observability;\n /** Injectable clock (tests). */\n now?: () => Date;\n}\n\n/**\n * Origin — the personal intelligence layer. It understands context, remembers\n * what matters (Atlas), and traces everything. Open it once, then spin up\n * human-directed {@link ApolloAgent}s that share its memory and observability.\n *\n * ```ts\n * const origin = await Origin.open();\n * const agent = new ApolloAgent({\n * memory: origin.memory,\n * tools: [calendar, mail, browser],\n * policy: humanDirected(),\n * });\n * await agent.run(\"Prepare my launch plan\");\n * ```\n *\n * @see https://archic.es\n */\nexport class Origin {\n readonly root: string;\n readonly memory: Memory;\n readonly context: ContextEngine;\n readonly observability: Observability;\n\n private constructor(init: {\n root: string;\n memory: Memory;\n context: ContextEngine;\n observability: Observability;\n }) {\n this.root = init.root;\n this.memory = init.memory;\n this.context = init.context;\n this.observability = init.observability;\n }\n\n static async open(options: OriginOptions = {}): Promise<Origin> {\n const root = options.root ?? process.cwd();\n const memory =\n options.memory ??\n new Memory({\n store: options.store ?? new JsonStore({ file: join(root, \".origin\", \"atlas.json\") }),\n ...(options.now ? { now: options.now } : {}),\n });\n const observability =\n options.observability ??\n new Observability({\n dir: join(root, \".origin\", \"traces\"),\n ...(options.now ? { now: options.now } : {}),\n });\n return new Origin({ root, memory, context: new ContextEngine(), observability });\n }\n\n /**\n * Create an {@link ApolloAgent} wired to this layer's memory, context and\n * observability. Any option you pass overrides the shared defaults.\n */\n agent(options: ApolloAgentOptions = {}): ApolloAgent {\n return new ApolloAgent({\n memory: this.memory,\n context: this.context,\n observability: this.observability,\n root: this.root,\n ...options,\n });\n }\n}\n","/**\n * @vornicx/origin — the Origin personal intelligence layer.\n *\n * A system of context, memory & action. Origin understands the work around you,\n * remembers what matters (Atlas), reasons from goals, and acts through\n * human-directed agents (Apollo) — with every decision traceable.\n *\n * ```ts\n * import { Origin, ApolloAgent, humanDirected } from \"@vornicx/origin\";\n *\n * const origin = await Origin.open();\n * const agent = new ApolloAgent({\n * memory: origin.memory,\n * tools: [calendar, mail, browser],\n * policy: humanDirected(),\n * });\n * await agent.run(\"Prepare my launch plan\");\n * ```\n *\n * @see https://archic.es\n */\n\nexport const VERSION = \"0.1.0\";\n\n// Principles + ecosystem (the promise, encoded)\nexport { PRINCIPLES, ECOSYSTEM } from \"./principles\";\nexport type { Principle } from \"./principles\";\n\n// Core — personal intelligence layer\nexport { Origin } from \"./origin\";\nexport type { OriginOptions } from \"./origin\";\n\n// Apollo — the agent runtime\nexport { ApolloAgent } from \"./agent/agent\";\nexport type { ApolloAgentOptions, MissionResult } from \"./agent/agent\";\nexport { defineTool } from \"./agent/runtime\";\nexport type {\n Tool,\n ToolContext,\n Runtime,\n RuntimeContext,\n Plan,\n PlanStep,\n Observation,\n} from \"./agent/runtime\";\nexport { ReferenceRuntime } from \"./agent/reference-runtime\";\nexport type { ReferenceRuntimeOptions, Completion } from \"./agent/reference-runtime\";\n\n// Verification\nexport { evaluateContract, contractSchema, parseContractFromPlan } from \"./agent/contract\";\nexport type { Contract, Certificate, CheckResult, EvaluateOptions } from \"./agent/contract\";\n\n// Atlas — the memory layer\nexport { Memory, Memory as Atlas, formatMemoriesBlock, tokenize } from \"./memory/memory\";\nexport type { MemoryOptions } from \"./memory/memory\";\nexport { InMemoryStore } from \"./memory/store\";\nexport type { MemoryStore } from \"./memory/store\";\nexport { JsonStore } from \"./memory/stores/json-store\";\nexport type { JsonStoreOptions } from \"./memory/stores/json-store\";\nexport type {\n MemoryKind,\n MemoryRecord,\n RememberInput,\n RecallOptions,\n RecallHit,\n} from \"./memory/types\";\n\n// Context\nexport { ContextEngine, parseIntent } from \"./context/context-engine\";\nexport type { ScanOptions } from \"./context/context-engine\";\nexport { Ignore, parseIgnore } from \"./context/ignore\";\nexport type { ContextBundle, FileRef, ToolRef, Intent } from \"./context/types\";\n\n// Observability\nexport { Observability, Tracer, MemorySink, JsonlSink, defaultRedactor } from \"./observability/tracer\";\nexport type { ObservabilityOptions } from \"./observability/tracer\";\nexport type { Trace, TraceEvent, TraceEventKind, TraceSink, Redactor } from \"./observability/types\";\n\n// Policy (human agency)\nexport { humanDirected, autonomous, reviewOnly, outsideRoot } from \"./policy/policy\";\nexport type { PolicyOptions, AutonomousOptions } from \"./policy/policy\";\nexport { authorize, autoApprove, denyAll, cliApprover } from \"./policy/approvals\";\nexport type {\n Policy,\n PolicyBudget,\n ApolloMode,\n ProposedAction,\n ActionKind,\n Gate,\n ApprovalHandler,\n ApprovalRequest,\n ApprovalDecision,\n AuthorizeResult,\n} from \"./policy/types\";\n\n// Providers (BYOK)\nexport {\n availableProviders,\n resolveProviderKey,\n callProviderText,\n callProviderStream,\n makeSSEParser,\n isSupportedProvider,\n PROVIDER_KEY_ENV,\n SUPPORTED_PROVIDERS,\n} from \"./providers/providers\";\nexport type { ChatMessage, ChatRole, SupportedProvider, ProviderCall } from \"./providers/providers\";\n"]}
|