@theokit/cli 2.0.1 → 3.0.2

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dev/entry-resolver.ts","../../src/commands/acp.ts","../../src/commands/db.ts","../../src/dev/runner.ts","../../src/commands/dev.ts","../../src/eval/config-loader.ts","../../src/eval/report.ts","../../src/eval/runner.ts","../../src/commands/eval.ts","../../src/version.ts","../../src/init/templates.ts","../../src/init/validate-name.ts","../../src/init/scaffold.ts","../../src/commands/init.ts","../../src/inspect/gateway.ts","../../src/inspect/plugins.ts","../../src/commands/inspect.ts","../../src/setup/gworkspace.ts","../../src/commands/setup.ts","../../src/commands/tasks.ts","../../src/main.ts","../../src/bin/theokit.ts"],"names":["join","existsSync","pathToFileURL","resolve","readFileSync","require","pc","isAbsolute","dirname","writeFileSync","readdirSync","mkdirSync","renameSync","createRequire","lstatSync","p","homedir","spawn"],"mappings":"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","file":"theokit.js","sourcesContent":["/**\n * Resolve the entry file for `theokit dev` (T4.1).\n *\n * Priority:\n * 1. Explicit `--entry <path>` flag.\n * 2. `package.json` `main` field.\n * 3. `src/index.ts` (or `.js` / `.mjs` / `.tsx`).\n * 4. `index.ts` at cwd root.\n *\n * Throws `entry_not_found` when nothing matches.\n *\n * @internal\n */\n\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { isAbsolute, join, resolve } from \"node:path\";\n\nconst FALLBACK_CANDIDATES = [\n \"src/index.ts\",\n \"src/index.tsx\",\n \"src/index.mjs\",\n \"src/index.js\",\n \"index.ts\",\n \"index.mjs\",\n \"index.js\",\n];\n\nfunction entryNotFoundError(message: string): Error & { code?: string } {\n const err = new Error(message) as Error & { code?: string };\n err.code = \"entry_not_found\";\n return err;\n}\n\nfunction resolveFromExplicit(cwd: string, explicit: string): string {\n const abs = isAbsolute(explicit) ? explicit : resolve(cwd, explicit);\n if (!existsSync(abs)) throw entryNotFoundError(`Entry file not found: ${explicit}`);\n return abs;\n}\n\nfunction resolveFromPackageJson(cwd: string): string | undefined {\n const pkgPath = join(cwd, \"package.json\");\n if (!existsSync(pkgPath)) return undefined;\n try {\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf8\")) as { main?: string };\n if (typeof pkg.main === \"string\" && pkg.main.length > 0) {\n const abs = resolve(cwd, pkg.main);\n if (existsSync(abs)) return abs;\n }\n } catch {\n // Malformed package.json — fall through to candidates.\n }\n return undefined;\n}\n\nfunction resolveFromCandidates(cwd: string): string | undefined {\n for (const candidate of FALLBACK_CANDIDATES) {\n const abs = join(cwd, candidate);\n if (existsSync(abs)) return abs;\n }\n return undefined;\n}\n\nexport function resolveEntry(cwd: string, explicit?: string): string {\n if (explicit !== undefined && explicit.length > 0) return resolveFromExplicit(cwd, explicit);\n const fromPkg = resolveFromPackageJson(cwd);\n if (fromPkg !== undefined) return fromPkg;\n const fromCandidate = resolveFromCandidates(cwd);\n if (fromCandidate !== undefined) return fromCandidate;\n throw entryNotFoundError(\n `No entry file found. Pass --entry <path> or create one of: ${FALLBACK_CANDIDATES.join(\", \")}`,\n );\n}\n","/**\n * `theokit acp` CLI subcommand — launches an ACP stdio server pointing at\n * the resolved entry file's default-exported `SDKAgent` or factory.\n *\n * ADRs D357 + EC-4 (CJS interop fallback).\n *\n * @internal\n */\n\nimport { pathToFileURL } from \"node:url\";\nimport { resolveEntry } from \"../dev/entry-resolver.js\";\n\nexport interface AcpOptions {\n entry?: string;\n permission?: \"ask\" | \"auto\" | \"deny\";\n trustedTools?: string;\n permissionTimeoutMs?: string;\n}\n\n/**\n * Resolve the default export with CJS interop fallback (EC-4).\n *\n * ESM: `export default factory` → `mod.default === factory`\n * CJS: `module.exports = factory` → `mod.default === undefined`, `mod` IS factory\n */\nfunction resolveDefaultExport(mod: unknown): unknown {\n if (mod === null || mod === undefined) return undefined;\n const asObj = mod as { default?: unknown };\n return asObj.default ?? mod;\n}\n\nfunction isValidAgentShape(value: unknown): boolean {\n if (typeof value === \"function\") return true;\n if (typeof value !== \"object\" || value === null) return false;\n const obj = value as { agentId?: unknown; send?: unknown };\n return typeof obj.agentId === \"string\" && typeof obj.send === \"function\";\n}\n\nfunction fail(msg: string, code = 1): number {\n process.stderr.write(`theokit acp: ${msg}\\n`);\n return code;\n}\n\ntype ResolveAgentResult = { ok: true; agent: unknown } | { ok: false; exitCode: number };\n\nasync function loadAgentFromEntry(entryArg: string | undefined): Promise<ResolveAgentResult> {\n let entryPath: string;\n try {\n entryPath = resolveEntry(process.cwd(), entryArg);\n } catch (err) {\n return { ok: false, exitCode: fail(err instanceof Error ? err.message : String(err), 2) };\n }\n let mod: unknown;\n try {\n mod = await import(pathToFileURL(entryPath).href);\n } catch (err) {\n return {\n ok: false,\n exitCode: fail(`failed to import entry: ${err instanceof Error ? err.message : err}`, 1),\n };\n }\n const agent = resolveDefaultExport(mod);\n if (!isValidAgentShape(agent)) {\n return {\n ok: false,\n exitCode: fail(\n `entry ${entryPath} must export an SDKAgent or a factory (sessionId) => SDKAgent. Got: ${typeof agent}`,\n 2,\n ),\n };\n }\n return { ok: true, agent };\n}\n\ninterface ParsedFlags {\n permission: \"ask\" | \"auto\" | \"deny\";\n trustedTools?: ReadonlyArray<string>;\n permissionTimeoutMs?: number;\n}\n\ntype ParseFlagsResult = { ok: true; flags: ParsedFlags } | { ok: false; exitCode: number };\n\nfunction parseTrustedTools(raw: string | undefined): ReadonlyArray<string> | undefined {\n if (typeof raw !== \"string\" || raw.length === 0) return undefined;\n return raw\n .split(\",\")\n .map((s) => s.trim())\n .filter((s) => s.length > 0);\n}\n\nfunction parseTimeout(raw: string | undefined): { ok: true; value?: number } | { ok: false } {\n if (typeof raw !== \"string\") return { ok: true };\n const n = Number.parseInt(raw, 10);\n if (!Number.isFinite(n) || n <= 0) return { ok: false };\n return { ok: true, value: n };\n}\n\nfunction parseFlags(opts: AcpOptions): ParseFlagsResult {\n const permission = opts.permission ?? \"ask\";\n if (permission !== \"ask\" && permission !== \"auto\" && permission !== \"deny\") {\n return { ok: false, exitCode: fail(`invalid --permission: ${permission}`, 2) };\n }\n const timeout = parseTimeout(opts.permissionTimeoutMs);\n if (!timeout.ok) {\n return {\n ok: false,\n exitCode: fail(`invalid --permission-timeout-ms: ${opts.permissionTimeoutMs}`, 2),\n };\n }\n const trustedTools = parseTrustedTools(opts.trustedTools);\n const flags: ParsedFlags = { permission };\n if (trustedTools !== undefined) flags.trustedTools = trustedTools;\n if (timeout.value !== undefined) flags.permissionTimeoutMs = timeout.value;\n return { ok: true, flags };\n}\n\nasync function importServeAcp(): Promise<\n { ok: true; serveAcp: typeof import(\"@theokit/acp\").serveAcp } | { ok: false; exitCode: number }\n> {\n try {\n const mod = await import(\"@theokit/acp\");\n return { ok: true, serveAcp: mod.serveAcp };\n } catch (err) {\n return {\n ok: false,\n exitCode: fail(\n `@theokit/acp not installed. Run: npm i @theokit/acp. (${err instanceof Error ? err.message : err})`,\n 1,\n ),\n };\n }\n}\n\nexport async function runAcp(opts: AcpOptions): Promise<number> {\n const agentRes = await loadAgentFromEntry(opts.entry);\n if (!agentRes.ok) return agentRes.exitCode;\n\n const flagsRes = parseFlags(opts);\n if (!flagsRes.ok) return flagsRes.exitCode;\n\n const serveRes = await importServeAcp();\n if (!serveRes.ok) return serveRes.exitCode;\n\n try {\n await serveRes.serveAcp({\n agent: agentRes.agent as never,\n permissionDefault: flagsRes.flags.permission,\n ...(flagsRes.flags.trustedTools !== undefined\n ? { trustedTools: flagsRes.flags.trustedTools }\n : {}),\n ...(flagsRes.flags.permissionTimeoutMs !== undefined\n ? { permissionTimeoutMs: flagsRes.flags.permissionTimeoutMs }\n : {}),\n });\n } catch (err) {\n return fail(err instanceof Error ? err.message : String(err), 1);\n }\n return 0;\n}\n\n// Test seam\nexport { isValidAgentShape, resolveDefaultExport };\n","/**\n * `theokit db` subcommand — thin wrapper over drizzle-kit (ADR D6 / orm-v1 D6:\n * delegate migrations to canonical drizzle-kit; do not reinvent).\n *\n * Subcommands:\n * - `theokit db generate` → drizzle-kit generate\n * - `theokit db migrate` → drizzle-kit migrate\n * - `theokit db studio` → drizzle-kit studio\n * - `theokit db push` → drizzle-kit push (dangerous, gated)\n * - `theokit db export-schema` → run @theokit/orm schema-export → .theokit/schema/{entity}.schema.json\n * - `theokit db check-schema-drift`\n * → re-emit and diff against committed schemas; exit 1 on drift\n *\n * Implementation principles:\n * - drizzle-kit lookups via the host workspace's node_modules (no bundled binary)\n * - export-schema and check-schema-drift load `orm.config.ts` from cwd\n * (must default-export `{ schema, dialect, db? }` shape — only `schema` is used)\n * - All file writes are atomic (write tmp + rename)\n * - All paths sanitized via path.resolve before write\n */\n\nimport { spawnSync } from \"node:child_process\";\nimport {\n existsSync,\n mkdirSync,\n readdirSync,\n readFileSync,\n renameSync,\n unlinkSync,\n writeFileSync,\n} from \"node:fs\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\ninterface DbCommandOptions {\n readonly cwd?: string;\n}\n\ninterface DbExportSchemaOptions extends DbCommandOptions {\n readonly out?: string;\n readonly config?: string;\n}\n\ntype DbCheckDriftOptions = DbExportSchemaOptions;\n\ninterface OrmConfig {\n schema: Record<string, unknown>;\n}\n\nfunction findDrizzleKit(cwd: string): string | null {\n const candidates = [\n join(cwd, \"node_modules\", \".bin\", \"drizzle-kit\"),\n join(cwd, \"node_modules\", \"drizzle-kit\", \"bin.cjs\"),\n ];\n for (const c of candidates) {\n if (existsSync(c)) return c;\n }\n return null;\n}\n\nfunction runDrizzleKit(verb: string, cwd: string, extraArgs: string[] = []): number {\n const bin = findDrizzleKit(cwd);\n if (!bin) {\n process.stderr.write(\n \"theokit db: drizzle-kit not found in node_modules. Install it: pnpm add -D drizzle-kit\\n\",\n );\n return 2;\n }\n const r = spawnSync(bin, [verb, ...extraArgs], { cwd, stdio: \"inherit\" });\n if (r.status === null) return 1;\n return r.status;\n}\n\nexport function runDbGenerate(opts: DbCommandOptions = {}): number {\n return runDrizzleKit(\"generate\", opts.cwd ?? process.cwd());\n}\nexport function runDbMigrate(opts: DbCommandOptions = {}): number {\n return runDrizzleKit(\"migrate\", opts.cwd ?? process.cwd());\n}\nexport function runDbStudio(opts: DbCommandOptions = {}): number {\n return runDrizzleKit(\"studio\", opts.cwd ?? process.cwd());\n}\nexport function runDbPush(opts: DbCommandOptions = {}): number {\n return runDrizzleKit(\"push\", opts.cwd ?? process.cwd());\n}\n\nasync function loadOrmConfig(configPath: string): Promise<OrmConfig> {\n if (!existsSync(configPath)) {\n throw new Error(\n `theokit db: orm.config not found at ${configPath}. Create one that default-exports { schema } (the Drizzle schema object).`,\n );\n }\n // Cache-bust so consecutive invocations (drift workflows, tests) see edits.\n const bust = `${Date.now()}-${Math.random().toString(36).slice(2)}`;\n const url = `${pathToFileURL(configPath).href}?v=${bust}`;\n const mod = (await import(url)) as { default?: OrmConfig };\n if (!mod.default || typeof mod.default !== \"object\" || !mod.default.schema) {\n throw new Error(\n `theokit db: orm.config at ${configPath} must default-export { schema }. Got: ${typeof mod.default}`,\n );\n }\n return mod.default;\n}\n\ninterface SchemaExportModule {\n exportSchemas: (schema: Record<string, unknown>) => Record<string, unknown>;\n}\n\nasync function loadSchemaExporter(cwd: string): Promise<SchemaExportModule> {\n const candidates = [\n join(cwd, \"node_modules\", \"@theokit\", \"orm\", \"dist\", \"schema-export.js\"),\n join(cwd, \"node_modules\", \"@theokit\", \"orm\", \"schema-export.js\"),\n ];\n for (const c of candidates) {\n if (existsSync(c)) {\n return (await import(pathToFileURL(c).href)) as SchemaExportModule;\n }\n }\n throw new Error(\"theokit db: @theokit/orm is not installed. Install it: pnpm add @theokit/orm\");\n}\n\nfunction atomicWrite(filePath: string, content: string): void {\n mkdirSync(dirname(filePath), { recursive: true });\n const tmp = `${filePath}.${process.pid}.tmp`;\n writeFileSync(tmp, content, { mode: 0o644 });\n renameSync(tmp, filePath);\n}\n\nasync function loadConfigOrError(\n configPath: string,\n): Promise<{ ok: true; value: OrmConfig } | { ok: false; code: number }> {\n try {\n return { ok: true, value: await loadOrmConfig(configPath) };\n } catch (err) {\n process.stderr.write(`${err instanceof Error ? err.message : String(err)}\\n`);\n return { ok: false, code: 2 };\n }\n}\n\nasync function loadExporterOrError(\n cwd: string,\n): Promise<{ ok: true; value: SchemaExportModule } | { ok: false; code: number }> {\n try {\n return { ok: true, value: await loadSchemaExporter(cwd) };\n } catch (err) {\n process.stderr.write(`${err instanceof Error ? err.message : String(err)}\\n`);\n return { ok: false, code: 2 };\n }\n}\n\nfunction exportSchemasOrError(\n exporter: SchemaExportModule,\n schema: OrmConfig[\"schema\"],\n): { ok: true; value: Record<string, unknown> } | { ok: false; code: number } {\n try {\n return { ok: true, value: exporter.exportSchemas(schema) };\n } catch (err) {\n process.stderr.write(\n `theokit db: schema export failed: ${err instanceof Error ? err.message : String(err)}\\n`,\n );\n return { ok: false, code: 1 };\n }\n}\n\nfunction writeSchemasToOutDir(schemas: Record<string, unknown>, outDir: string): void {\n mkdirSync(outDir, { recursive: true });\n // Clean existing .schema.json files (so renamed/dropped entities don't linger)\n for (const f of readdirSync(outDir).filter((n) => n.endsWith(\".schema.json\"))) {\n unlinkSync(join(outDir, f));\n }\n for (const [name, schema] of Object.entries(schemas)) {\n const target = join(outDir, `${name}.schema.json`);\n atomicWrite(target, `${JSON.stringify(schema, null, 2)}\\n`);\n }\n}\n\nexport async function runDbExportSchema(opts: DbExportSchemaOptions = {}): Promise<number> {\n const cwd = opts.cwd ?? process.cwd();\n const configPath = resolve(cwd, opts.config ?? \"orm.config.ts\");\n const outDir = resolve(cwd, opts.out ?? \".theokit/schema\");\n\n const configResult = await loadConfigOrError(configPath);\n if (!configResult.ok) return configResult.code;\n\n const exporterResult = await loadExporterOrError(cwd);\n if (!exporterResult.ok) return exporterResult.code;\n\n const schemasResult = exportSchemasOrError(exporterResult.value, configResult.value.schema);\n if (!schemasResult.ok) return schemasResult.code;\n\n writeSchemasToOutDir(schemasResult.value, outDir);\n process.stdout.write(\n `theokit db: wrote ${Object.keys(schemasResult.value).length} schema(s) to ${outDir}\\n`,\n );\n return 0;\n}\n\nfunction readCommittedSchemas(outDir: string): Record<string, unknown> {\n if (!existsSync(outDir)) return {};\n const out: Record<string, unknown> = {};\n for (const f of readdirSync(outDir).filter((n) => n.endsWith(\".schema.json\"))) {\n const name = f.replace(/\\.schema\\.json$/, \"\");\n out[name] = JSON.parse(readFileSync(join(outDir, f), \"utf-8\"));\n }\n return out;\n}\n\ninterface SchemaDrift {\n added: string[];\n removed: string[];\n changed: string[];\n}\n\nfunction computeSchemaDrift(\n fresh: Record<string, unknown>,\n committed: Record<string, unknown>,\n): SchemaDrift {\n const freshKeys = new Set(Object.keys(fresh));\n const committedKeys = new Set(Object.keys(committed));\n const added = [...freshKeys].filter((k) => !committedKeys.has(k));\n const removed = [...committedKeys].filter((k) => !freshKeys.has(k));\n const changed = [...freshKeys].filter(\n (k) => committedKeys.has(k) && JSON.stringify(fresh[k]) !== JSON.stringify(committed[k]),\n );\n return { added, removed, changed };\n}\n\nfunction reportSchemaDrift(drift: SchemaDrift): number {\n const { added, removed, changed } = drift;\n if (added.length === 0 && removed.length === 0 && changed.length === 0) {\n process.stdout.write(\"theokit db: schema in sync (no drift)\\n\");\n return 0;\n }\n process.stderr.write(\"theokit db: schema drift detected\\n\");\n if (added.length > 0) process.stderr.write(` added: ${added.join(\", \")}\\n`);\n if (removed.length > 0) process.stderr.write(` removed: ${removed.join(\", \")}\\n`);\n if (changed.length > 0) process.stderr.write(` changed: ${changed.join(\", \")}\\n`);\n process.stderr.write(\"Run `theokit db export-schema` to refresh.\\n\");\n return 1;\n}\n\nexport async function runDbCheckSchemaDrift(opts: DbCheckDriftOptions = {}): Promise<number> {\n const cwd = opts.cwd ?? process.cwd();\n const configPath = resolve(cwd, opts.config ?? \"orm.config.ts\");\n const outDir = resolve(cwd, opts.out ?? \".theokit/schema\");\n\n const configResult = await loadConfigOrError(configPath);\n if (!configResult.ok) return configResult.code;\n\n const exporterResult = await loadExporterOrError(cwd);\n if (!exporterResult.ok) return exporterResult.code;\n\n const fresh = exporterResult.value.exportSchemas(configResult.value.schema);\n const committed = readCommittedSchemas(outDir);\n return reportSchemaDrift(computeSchemaDrift(fresh, committed));\n}\n","/**\n * Spawn `tsx --watch` against the resolved entry (T4.1, ADR D197).\n *\n * @internal\n */\n\nimport { type ChildProcess, spawn } from \"node:child_process\";\nimport { existsSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { join } from \"node:path\";\n\ninterface RunnerOptions {\n entry: string;\n cwd: string;\n envFile?: string;\n /** Pass `--watch` to tsx. Default true (production). Tests use false. */\n watch?: boolean;\n}\n\ninterface RunnerHandle {\n child: ChildProcess;\n exited: Promise<number>;\n}\n\n/**\n * Resolve the `tsx` CLI bin from CLI-package node_modules (NOT user's).\n * Ensures consistent tsx version regardless of consumer project state.\n */\nfunction resolveTsxBin(): string {\n const require = createRequire(import.meta.url);\n // tsx exports the CLI under `./cli` (subpath); verified against\n // tsx@4.22 package.json exports.\n return require.resolve(\"tsx/cli\");\n}\n\nexport function startRunner(opts: RunnerOptions): RunnerHandle {\n const tsxBin = resolveTsxBin();\n const args: string[] = [];\n if (opts.watch !== false) args.push(\"--watch\");\n const envFile = opts.envFile ?? \".env\";\n const envFileAbs = join(opts.cwd, envFile);\n if (existsSync(envFileAbs)) {\n args.push(\"--env-file\", envFile);\n }\n args.push(opts.entry);\n\n const child = spawn(process.execPath, [tsxBin, ...args], {\n cwd: opts.cwd,\n stdio: \"inherit\",\n env: process.env,\n });\n\n const exited = new Promise<number>((resolve) => {\n child.on(\"exit\", (code, signal) => {\n resolve(code ?? (signal !== null ? 130 : 0));\n });\n });\n\n // Forward SIGINT / SIGTERM gracefully. Give child 5s to clean up, then\n // SIGKILL.\n let killTimer: NodeJS.Timeout | undefined;\n const forward = (sig: NodeJS.Signals): void => {\n if (child.killed) return;\n child.kill(sig);\n killTimer = setTimeout(() => {\n if (!child.killed) child.kill(\"SIGKILL\");\n }, 5000);\n killTimer.unref();\n };\n process.on(\"SIGINT\", () => forward(\"SIGTERM\"));\n process.on(\"SIGTERM\", () => forward(\"SIGTERM\"));\n\n // Clear the kill timer once the child exits.\n child.on(\"exit\", () => {\n if (killTimer !== undefined) clearTimeout(killTimer);\n });\n\n return { child, exited };\n}\n","/**\n * `theokit dev` — run the project's entry under `tsx --watch` with stdio\n * forwarding and graceful shutdown (T4.1, ADR D197).\n *\n * @internal\n */\n\nimport pc from \"picocolors\";\n\nimport { resolveEntry } from \"../dev/entry-resolver.js\";\nimport { startRunner } from \"../dev/runner.js\";\n\nexport interface DevOptions {\n entry?: string;\n env?: string;\n}\n\nexport async function runDev(opts: DevOptions): Promise<number> {\n let entry: string;\n try {\n entry = resolveEntry(process.cwd(), opts.entry);\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n const code = (err as { code?: string }).code ?? \"unknown\";\n process.stderr.write(`${pc.red(\"error:\")} ${message}\\n ${pc.gray(`(code: ${code})`)}\\n`);\n return code === \"entry_not_found\" ? 2 : 1;\n }\n\n process.stdout.write(`${pc.cyan(\"[dev]\")} watching ${pc.bold(entry)} — Ctrl+C to stop.\\n`);\n\n let handle: ReturnType<typeof startRunner>;\n try {\n handle = startRunner({\n entry,\n cwd: process.cwd(),\n ...(opts.env !== undefined ? { envFile: opts.env } : {}),\n });\n } catch (err) {\n process.stderr.write(\n `${pc.red(\"error:\")} could not spawn tsx — ${err instanceof Error ? err.message : String(err)}\\n` +\n ` ${pc.gray(\"Hint: try `pnpm install` to repair @theokit/cli.\")}\\n`,\n );\n return 1;\n }\n\n const exitCode = await handle.exited;\n return exitCode;\n}\n","/**\n * Load + validate the user's `eval.config.{ts,mjs}` (T5.1).\n *\n * Uses dynamic `import()` so tsx handles `.ts` transpilation. Zod\n * validates the exported shape.\n *\n * @internal\n */\n\nimport { existsSync } from \"node:fs\";\nimport { isAbsolute, resolve } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nimport type { EvalConfig } from \"./types.js\";\n\nfunction configError(code: string, message: string): Error & { code?: string } {\n const err = new Error(message) as Error & { code?: string };\n err.code = code;\n return err;\n}\n\nasync function importConfig(abs: string): Promise<{ default?: unknown }> {\n try {\n return (await import(pathToFileURL(abs).href)) as { default?: unknown };\n } catch (cause) {\n throw configError(\n \"config_load_failed\",\n `Failed to load eval config (${abs}): ${cause instanceof Error ? cause.message : String(cause)}`,\n );\n }\n}\n\nfunction validateShape(cfg: Partial<EvalConfig>, abs: string): EvalConfig {\n if (!Array.isArray(cfg.dataset)) throwShapeError(abs, \"dataset\", \"must be an array\");\n if (!Array.isArray(cfg.scorers)) throwShapeError(abs, \"scorers\", \"must be an array\");\n if (cfg.agent === undefined || typeof cfg.agent !== \"object\") {\n throwShapeError(abs, \"agent\", \"must be an Agent.create() options object\");\n }\n return cfg as EvalConfig;\n}\n\nexport async function loadEvalConfig(cwd: string, configPath?: string): Promise<EvalConfig> {\n const relPath = configPath ?? \"./eval.config.ts\";\n const abs = isAbsolute(relPath) ? relPath : resolve(cwd, relPath);\n if (!existsSync(abs)) throw configError(\"config_not_found\", `Eval config not found: ${abs}`);\n\n const mod = await importConfig(abs);\n if (mod.default === undefined) {\n throw configError(\n \"config_no_default_export\",\n `Eval config (${abs}) must have a default export. Example: \\`export default { dataset, scorers, agent } satisfies EvalConfig;\\``,\n );\n }\n return validateShape(mod.default as Partial<EvalConfig>, abs);\n}\n\nfunction throwShapeError(abs: string, field: string, why: string): never {\n const err = new Error(`Eval config (${abs}) is invalid: field \"${field}\" ${why}.`) as Error & {\n code?: string;\n };\n err.code = \"config_invalid_shape\";\n throw err;\n}\n","/**\n * Markdown report emitter for `theokit eval` (T5.1).\n *\n * @internal\n */\n\nimport type { EvalRunResult } from \"./types.js\";\n\nexport function formatReport(result: EvalRunResult): string {\n const lines: string[] = [];\n lines.push(\"# Eval Report\");\n lines.push(\"\");\n lines.push(`- **Total rows:** ${result.aggregate.totalRows}`);\n lines.push(`- **Mean score:** ${result.aggregate.meanScore.toFixed(3)}`);\n lines.push(`- **Pass ratio (≥0.5):** ${(result.aggregate.passRatio * 100).toFixed(1)}%`);\n lines.push(`- **Error rows:** ${result.aggregate.errorRows}`);\n lines.push(\"\");\n lines.push(\"## Per-row results\");\n lines.push(\"\");\n lines.push(\"| # | Input | Output | Mean | Scores | Notes |\");\n lines.push(\"|---|---|---|---:|---|---|\");\n for (let i = 0; i < result.rows.length; i += 1) {\n const row = result.rows[i];\n if (row === undefined) continue;\n const input = escapeMd(truncate(row.input, 60));\n const output = row.error !== undefined ? `*error*` : escapeMd(truncate(row.output, 80));\n const mean = row.meanScore.toFixed(3);\n const scores =\n row.scores.length > 0\n ? row.scores\n .map(\n (s) =>\n `${s.name}=${s.score.toFixed(2)}${s.reason !== undefined ? ` (${escapeMd(s.reason)})` : \"\"}`,\n )\n .join(\"; \")\n : \"—\";\n const notes = row.error !== undefined ? escapeMd(row.error) : \"\";\n lines.push(`| ${i + 1} | ${input} | ${output} | ${mean} | ${scores} | ${notes} |`);\n }\n return `${lines.join(\"\\n\")}\\n`;\n}\n\nfunction truncate(s: string, max: number): string {\n if (s.length <= max) return s;\n return `${s.slice(0, max - 1)}…`;\n}\n\nfunction escapeMd(s: string): string {\n return s.replaceAll(\"|\", \"\\\\|\").replaceAll(\"\\n\", \" \");\n}\n","/**\n * Eval runner — D212 swap: now consumes `Eval.create + .run` from the SDK\n * (Adoption Roadmap #2). The public `EvalConfig` shape is unchanged —\n * D199 made this a forward-compatible move.\n *\n * Why preserve the CLI's `EvalRunResult` shape: the markdown report\n * generator + existing tests depend on it. The SDK's `EvalRun` is a\n * superset; we adapt at the boundary.\n *\n * @internal\n */\n\nimport { randomUUID } from \"node:crypto\";\nimport { Eval, type EvalRun, type Scorer as SdkScorer } from \"@theokit/sdk/eval\";\n\nimport type { EvalConfig, EvalRowResult, EvalRunResult } from \"./types.js\";\n\nexport async function runEvalSuite(config: EvalConfig): Promise<EvalRunResult> {\n if (config.dataset.length === 0) {\n return {\n rows: [],\n aggregate: { meanScore: 0, passRatio: 0, totalRows: 0, errorRows: 0 },\n };\n }\n\n // Translate CLI's EvalConfig → SDK's EvalOptions. Scorers map 1:1 because\n // both surfaces use the same `Scorer` type per D207.\n const sdkScorers = config.scorers.map((s) => ({\n name: s.name,\n score: s.score as SdkScorer,\n }));\n\n const run: EvalRun = await Eval.create({\n // Unique per-process name for telemetry correlation (D213). Use UUID\n // so concurrent CLI invocations on different terminals don't collide.\n name: `theokit-eval-${randomUUID().slice(0, 8)}`,\n dataset: config.dataset,\n scorers: sdkScorers,\n agent: config.agent,\n ...(config.concurrency !== undefined ? { concurrency: config.concurrency } : {}),\n }).run();\n\n // Adapt SDK's EvalRun to the CLI's existing EvalRunResult shape. The CLI\n // shape is simpler (no p50/p95/tokens — those live in SDK aggregate);\n // the markdown report consumes the simple shape.\n const rows: EvalRowResult[] = run.rows.map((r) => ({\n input: r.input,\n output: r.output,\n ...(r.expected !== undefined ? { expected: r.expected } : {}),\n scores: r.scores.map((s) => ({\n name: s.name,\n score: s.score,\n ...(s.reason !== undefined ? { reason: s.reason } : {}),\n })),\n meanScore: r.meanScore,\n ...(r.error !== undefined ? { error: r.error } : {}),\n }));\n\n return {\n rows,\n aggregate: {\n meanScore: run.aggregate.meanScore,\n passRatio: run.aggregate.passRatio,\n totalRows: run.aggregate.totalRows,\n errorRows: run.aggregate.errorRows,\n },\n };\n}\n","/**\n * `theokit eval` — minimal v1 eval runner (T5.1, ADR D199).\n *\n * EC-F MUST FIX (edge-case review 2026-05-22): validate `--output` path\n * via `safePathJoin` (D80) BEFORE writing. Without this, --output\n * `../../../etc/passwd-report.md` escapes cwd.\n *\n * @internal\n */\n\nimport { writeFileSync } from \"node:fs\";\nimport { dirname } from \"node:path\";\n\nimport { PathTraversalError, safePathJoin } from \"@theokit/sdk/path-safety\";\nimport pc from \"picocolors\";\n\nimport { loadEvalConfig } from \"../eval/config-loader.js\";\nimport { formatReport } from \"../eval/report.js\";\nimport { runEvalSuite } from \"../eval/runner.js\";\n\nexport interface EvalOptions {\n config?: string;\n output?: string;\n}\n\nfunction resolveOutputPath(cwd: string, output: string | undefined): string {\n const target = output ?? \"eval-report.md\";\n try {\n // EC-F: safePathJoin throws PathTraversalError if `target` escapes cwd.\n return safePathJoin(cwd, target);\n } catch (err) {\n if (err instanceof PathTraversalError) {\n const e = new Error(\n `--output path must be inside the current working directory. Got: ${target}`,\n ) as Error & { code?: string };\n e.code = \"invalid_output_path\";\n throw e;\n }\n throw err;\n }\n}\n\nfunction reportError(err: unknown, prefix = \"error:\"): { message: string; code: string } {\n const message = err instanceof Error ? err.message : String(err);\n const code = (err as { code?: string }).code ?? \"unknown\";\n process.stderr.write(`${pc.red(prefix)} ${message}\\n ${pc.gray(`(code: ${code})`)}\\n`);\n return { message, code };\n}\n\nasync function loadAndValidateConfig(\n cwd: string,\n configPath: string | undefined,\n): Promise<Awaited<ReturnType<typeof loadEvalConfig>> | { failureExit: number }> {\n try {\n return await loadEvalConfig(cwd, configPath);\n } catch (err) {\n const { code } = reportError(err);\n return { failureExit: code.startsWith(\"config_\") ? 2 : 1 };\n }\n}\n\nfunction writeReport(outputAbs: string, report: string): boolean {\n try {\n void dirname; // path is already resolved; dirname imported for future use\n writeFileSync(outputAbs, report, \"utf8\");\n return true;\n } catch (err) {\n process.stderr.write(\n `${pc.red(\"error:\")} could not write report to ${outputAbs} — ${err instanceof Error ? err.message : String(err)}\\n`,\n );\n return false;\n }\n}\n\nexport async function runEval(opts: EvalOptions): Promise<number> {\n const cwd = process.cwd();\n\n // EC-F: validate --output BEFORE loading config (cheaper failure).\n let outputAbs: string;\n try {\n outputAbs = resolveOutputPath(cwd, opts.output);\n } catch (err) {\n reportError(err);\n return 2;\n }\n\n const configOrErr = await loadAndValidateConfig(cwd, opts.config);\n if (\"failureExit\" in configOrErr) return configOrErr.failureExit;\n const config = configOrErr;\n\n process.stdout.write(\n `${pc.cyan(\"[eval]\")} running ${config.dataset.length} prompt(s) with ${config.scorers.length} scorer(s)...\\n`,\n );\n\n let result: Awaited<ReturnType<typeof runEvalSuite>>;\n try {\n result = await runEvalSuite(config);\n } catch (err) {\n process.stderr.write(\n `${pc.red(\"error:\")} eval run failed — ${err instanceof Error ? err.message : String(err)}\\n`,\n );\n return 1;\n }\n\n if (!writeReport(outputAbs, formatReport(result))) return 1;\n\n process.stdout.write(\n `\\n${pc.green(\"✓\")} ${result.aggregate.totalRows} rows · mean score ${result.aggregate.meanScore.toFixed(3)} · ` +\n `${(result.aggregate.passRatio * 100).toFixed(1)}% pass · ${result.aggregate.errorRows} error(s)\\n` +\n ` report: ${outputAbs}\\n`,\n );\n\n return 0;\n}\n","/**\n * Build-time version constants for @theokit/cli.\n *\n * `__SDK_VERSION__` is the sibling `@theokit/sdk` semver (NEVER\n * `workspace:*` — resolved at build time via tsup `define`). Used by\n * `init` templates to pin the SDK dep in scaffolded projects (EC-L\n * fix from edge-case review).\n *\n * `__CLI_VERSION__` is this package's semver. Exposed via `--version`.\n */\n\ndeclare const __SDK_VERSION__: string;\ndeclare const __CLI_VERSION__: string;\n\nexport const SDK_VERSION: string = __SDK_VERSION__;\nexport const CLI_VERSION: string = __CLI_VERSION__;\n","/**\n * Template registry for `theokit init` (T2.1, ADR D200).\n *\n * Three templates ship at v1: `minimal`, `ollama-local`, `telegram-bot`.\n * Each is a literal directory copied to `<dest>/` at scaffold time, with\n * `{{projectName}}` and `{{sdkVersion}}` substituted in text files.\n *\n * @internal\n */\n\ninterface TemplateMeta {\n readonly name: string;\n readonly description: string;\n readonly hint: string;\n}\n\nexport const TEMPLATES: ReadonlyArray<TemplateMeta> = [\n {\n name: \"minimal\",\n description: \"Smallest possible agent — one Agent.create + send + stream.\",\n hint: \"Set ANTHROPIC_API_KEY / OPENAI_API_KEY / OPENROUTER_API_KEY in .env.\",\n },\n {\n name: \"ollama-local\",\n description: \"100% local agent via Ollama (no remote API key required).\",\n hint: \"Requires `ollama serve` + `ollama pull llama3.2:3b`.\",\n },\n {\n name: \"telegram-bot\",\n description: \"Telegram bot via @theokit/gateway + grammy.\",\n hint: \"Get a bot token from @BotFather, set TELEGRAM_BOT_TOKEN in .env.\",\n },\n] as const;\n\nexport function findTemplate(name: string): TemplateMeta | undefined {\n return TEMPLATES.find((t) => t.name === name);\n}\n\nexport const DEFAULT_TEMPLATE = \"minimal\";\n","/**\n * EC-A MUST FIX (edge-case review 2026-05-22): validate project name\n * against npm rules BEFORE any filesystem write. npm rejects:\n * - uppercase letters\n * - spaces / special chars other than `.`, `-`, `_`\n * - leading dot / leading underscore (with exceptions)\n * - scoped names without `@<scope>/<name>` shape\n *\n * Without this, the onboarding flow breaks on FIRST `pnpm install`\n * with a cryptic npm error — and the user can't tell whether it's a\n * CLI bug or their input.\n *\n * @internal\n */\n\n/**\n * Returns `true` if the name is valid for use as the `name` field in\n * `package.json` (npm-compatible).\n *\n * Pattern derived from npm's own `validate-npm-package-name` rules\n * (simplified — we cover the common 99% case, not every edge of npm's\n * legacy compat).\n */\nconst NPM_NAME_RE = /^(?:@[a-z0-9-][a-z0-9._-]{0,213}\\/)?[a-z0-9][a-z0-9._-]{0,213}$/;\n\nconst RESERVED_NAMES = new Set([\"node_modules\", \"favicon.ico\", \"..\", \".\"]);\n\ninterface NameValidation {\n ok: boolean;\n reason?: string;\n}\n\nexport function validateProjectName(name: string): NameValidation {\n if (typeof name !== \"string\" || name.length === 0) {\n return { ok: false, reason: \"Project name is required.\" };\n }\n if (RESERVED_NAMES.has(name)) {\n return { ok: false, reason: `Name \"${name}\" is reserved.` };\n }\n if (name.length > 214) {\n return { ok: false, reason: \"Project name must be ≤ 214 characters.\" };\n }\n if (!NPM_NAME_RE.test(name)) {\n return {\n ok: false,\n reason:\n \"Invalid project name. Use lowercase letters, numbers, dashes, dots, or underscores. \" +\n \"Examples: `my-bot`, `@scope/my-bot`, `chat.bot`.\",\n };\n }\n return { ok: true };\n}\n","/**\n * Scaffold engine for `theokit init` (T2.1, ADRs D196 + D200).\n *\n * Walks `templates/<name>/`, copies files to `<dest>/`, performs\n * placeholder substitution (`{{projectName}}`, `{{sdkVersion}}`).\n *\n * **EC-B MUST FIX**: writes go to `<dest>.tmp-<random>/` first, then\n * atomic `renameSync` at the end. On any error mid-copy, the tmp dir\n * is cleaned up — `<dest>` is either fully scaffolded or absent.\n *\n * **EC-G MUST TEST**: symlinks at `<dest>` are rejected (path-guard).\n *\n * @internal\n */\n\nimport { randomBytes } from \"node:crypto\";\nimport {\n cpSync,\n existsSync,\n lstatSync,\n mkdirSync,\n readdirSync,\n readFileSync,\n renameSync,\n rmSync,\n writeFileSync,\n} from \"node:fs\";\nimport { dirname, isAbsolute, join, relative, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { SDK_VERSION } from \"../version.js\";\nimport { findTemplate } from \"./templates.js\";\nimport { validateProjectName } from \"./validate-name.js\";\n\ninterface ScaffoldOptions {\n projectName: string;\n template: string;\n cwd: string;\n force?: boolean;\n}\n\ninterface ScaffoldResult {\n destAbs: string;\n filesWritten: number;\n}\n\n/** Files NOT substituted (binary/strict-content). All current templates are text-only. */\nconst SUBSTITUTE_EXTS = new Set([\n \".ts\",\n \".tsx\",\n \".js\",\n \".mjs\",\n \".json\",\n \".md\",\n \".env\",\n \".example\",\n \".gitignore\",\n \".yml\",\n \".yaml\",\n]);\n\n/**\n * Resolve the bundled `templates/` directory. Works in both:\n * - dev (loaded from src/, templates at ../templates relative to src/init/)\n * - published (loaded from dist/, templates at ../../templates relative to dist/init/)\n */\nfunction resolveTemplatesRoot(): string {\n const here = fileURLToPath(new URL(\".\", import.meta.url));\n // Walk up looking for a `templates/` sibling.\n let dir = here;\n for (let i = 0; i < 5; i += 1) {\n const candidate = join(dir, \"templates\");\n if (existsSync(candidate) && lstatSync(candidate).isDirectory()) return candidate;\n const parent = dirname(dir);\n if (parent === dir) break;\n dir = parent;\n }\n throw new Error(\n `Could not locate bundled templates/ directory (searched up from ${here}). ` +\n `This usually means the published tarball was built without \"files\": [\"templates\"] (EC-C regression).`,\n );\n}\n\nfunction scaffoldError(code: string, message: string): Error & { code?: string } {\n const err = new Error(message) as Error & { code?: string };\n err.code = code;\n return err;\n}\n\nfunction validateNameAndTemplate(opts: ScaffoldOptions): void {\n const nameCheck = validateProjectName(opts.projectName);\n if (!nameCheck.ok) {\n throw scaffoldError(\"invalid_project_name\", nameCheck.reason ?? \"Invalid project name.\");\n }\n if (findTemplate(opts.template) === undefined) {\n throw scaffoldError(\"unknown_template\", `Unknown template \"${opts.template}\".`);\n }\n}\n\nfunction validateDest(cwdAbs: string, destAbs: string, projectName: string, force: boolean): void {\n const rel = relative(cwdAbs, destAbs);\n if (rel.startsWith(\"..\") || isAbsolute(rel)) {\n throw scaffoldError(\n \"invalid_dest\",\n `Project name \"${projectName}\" escapes the working directory.`,\n );\n }\n if (!existsSync(destAbs)) return;\n if (lstatSync(destAbs).isSymbolicLink()) {\n throw scaffoldError(\n \"dest_is_symlink\",\n `Destination \"${destAbs}\" is a symlink. Refuse to follow (EC-G safety).`,\n );\n }\n if (readdirSync(destAbs).length > 0 && !force) {\n throw scaffoldError(\n \"dest_not_empty\",\n `Destination \"${destAbs}\" already exists and is not empty. Pass --force to overwrite.`,\n );\n }\n}\n\nfunction atomicCopy(\n sourceAbs: string,\n tmpAbs: string,\n destAbs: string,\n projectName: string,\n): number {\n try {\n mkdirSync(tmpAbs, { recursive: true });\n const filesWritten = copyTreeWithSubstitution(sourceAbs, tmpAbs, {\n projectName,\n sdkVersion: SDK_VERSION,\n });\n if (existsSync(destAbs)) rmSync(destAbs, { recursive: true, force: true });\n renameSync(tmpAbs, destAbs);\n return filesWritten;\n } catch (err) {\n try {\n rmSync(tmpAbs, { recursive: true, force: true });\n } catch {\n // best-effort cleanup\n }\n throw err;\n }\n}\n\nexport async function scaffold(opts: ScaffoldOptions): Promise<ScaffoldResult> {\n validateNameAndTemplate(opts);\n const cwdAbs = resolve(opts.cwd);\n const destAbs = resolve(cwdAbs, opts.projectName);\n validateDest(cwdAbs, destAbs, opts.projectName, opts.force === true);\n\n const tmpAbs = `${destAbs}.tmp-${randomBytes(4).toString(\"hex\")}`;\n const sourceAbs = join(resolveTemplatesRoot(), opts.template);\n if (!existsSync(sourceAbs)) {\n throw new Error(\n `Template directory not found: ${sourceAbs}. Ensure the published package included templates/ (EC-C).`,\n );\n }\n\n const filesWritten = atomicCopy(sourceAbs, tmpAbs, destAbs, opts.projectName);\n return { destAbs, filesWritten };\n}\n\ninterface SubstitutionVars {\n projectName: string;\n sdkVersion: string;\n}\n\nfunction copyTreeWithSubstitution(srcDir: string, destDir: string, vars: SubstitutionVars): number {\n // For test-friendliness + substitution control, walk the tree ourselves\n // instead of using `cpSync` opaque copy.\n const counter = { count: 0 };\n walk(srcDir, destDir, vars, counter);\n // `cpSync` left in import list for future use (e.g., copying binary assets).\n void cpSync;\n return counter.count;\n}\n\nfunction walk(src: string, dst: string, vars: SubstitutionVars, counter: { count: number }): void {\n mkdirSync(dst, { recursive: true });\n for (const entry of readdirSync(src, { withFileTypes: true })) {\n const srcPath = join(src, entry.name);\n const dstPath = join(dst, entry.name);\n if (entry.isDirectory()) {\n walk(srcPath, dstPath, vars, counter);\n } else if (entry.isFile()) {\n copyFile(srcPath, dstPath, entry.name, vars);\n counter.count += 1;\n }\n }\n}\n\nfunction copyFile(srcPath: string, dstPath: string, name: string, vars: SubstitutionVars): void {\n const content = readFileSync(srcPath, \"utf8\");\n const ext = name.includes(\".\") ? `.${name.split(\".\").pop() ?? \"\"}` : \"\";\n const shouldSubstitute =\n SUBSTITUTE_EXTS.has(ext) || name === \".gitignore\" || name === \".env.example\";\n const out = shouldSubstitute\n ? content\n .replaceAll(\"{{projectName}}\", vars.projectName)\n .replaceAll(\"{{sdkVersion}}\", vars.sdkVersion)\n : content;\n writeFileSync(dstPath, out, \"utf8\");\n}\n","/**\n * `theokit init [project-name]` — scaffold a new project from a bundled\n * template (T2.1, ADRs D196 + D200).\n *\n * @internal\n */\n\nimport * as p from \"@clack/prompts\";\nimport pc from \"picocolors\";\n\nimport { scaffold } from \"../init/scaffold.js\";\nimport { DEFAULT_TEMPLATE, findTemplate, TEMPLATES } from \"../init/templates.js\";\n\nexport interface InitOptions {\n template?: string;\n force?: boolean;\n here?: boolean;\n yes?: boolean;\n}\n\nasync function resolveProjectName(\n projectName: string | undefined,\n skipPrompts: boolean,\n): Promise<string | { exitCode: number }> {\n if (projectName !== undefined && projectName.length > 0) return projectName;\n if (skipPrompts) {\n process.stderr.write(\n `${pc.red(\"error: \")}project name is required in non-interactive mode. Pass it as the positional argument: ${pc.cyan(\n \"theokit init <project-name>\",\n )}\\n`,\n );\n return { exitCode: 2 };\n }\n const answer = await p.text({\n message: \"Project name?\",\n placeholder: \"my-bot\",\n validate: (v) => (v.length === 0 ? \"Required.\" : undefined),\n });\n if (p.isCancel(answer)) return { exitCode: 0 };\n return answer;\n}\n\nasync function resolveTemplate(\n optsTemplate: string | undefined,\n skipPrompts: boolean,\n): Promise<string | { exitCode: number }> {\n let template = optsTemplate ?? DEFAULT_TEMPLATE;\n if (optsTemplate === undefined && !skipPrompts) {\n const answer = await p.select({\n message: \"Pick a template:\",\n options: TEMPLATES.map((t) => ({ value: t.name, label: t.name, hint: t.description })),\n initialValue: DEFAULT_TEMPLATE,\n });\n if (p.isCancel(answer)) return { exitCode: 0 };\n template = answer as string;\n }\n if (findTemplate(template) === undefined) {\n process.stderr.write(\n `${pc.red(\"error: \")}unknown template \"${template}\". Available: ${TEMPLATES.map((t) => t.name).join(\", \")}\\n`,\n );\n return { exitCode: 2 };\n }\n return template;\n}\n\nconst USER_ERROR_CODES = new Set([\n \"invalid_project_name\",\n \"dest_not_empty\",\n \"invalid_dest\",\n \"unknown_template\",\n]);\n\nasync function runScaffold(name: string, template: string, force: boolean): Promise<number> {\n try {\n const result = await scaffold({\n projectName: name,\n template,\n cwd: process.cwd(),\n ...(force ? { force: true } : {}),\n });\n process.stdout.write(\n `\\n${pc.green(\"✓\")} Scaffolded ${pc.bold(name)} (${template}) — ${result.filesWritten} files written.\\n` +\n `\\nNext steps:\\n` +\n ` ${pc.cyan(`cd ${name}`)}\\n` +\n ` ${pc.cyan(\"pnpm install\")}\\n` +\n ` ${pc.cyan(\"cp .env.example .env\")} ${pc.gray(\"# edit your keys\")}\\n` +\n ` ${pc.cyan(\"pnpm dev\")}\\n\\n` +\n `Template hint: ${findTemplate(template)?.hint ?? \"\"}\\n`,\n );\n return 0;\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n const code = (err as { code?: string }).code ?? \"unknown\";\n process.stderr.write(`${pc.red(\"error:\")} ${message}\\n ${pc.gray(`(code: ${code})`)}\\n`);\n return USER_ERROR_CODES.has(code) ? 2 : 1;\n }\n}\n\nexport async function runInit(projectName: string | undefined, opts: InitOptions): Promise<number> {\n const isTty = process.stdin.isTTY === true && process.stdout.isTTY === true;\n const skipPrompts = opts.yes === true || !isTty;\n\n const name = await resolveProjectName(projectName, skipPrompts);\n if (typeof name !== \"string\") return name.exitCode;\n\n const template = await resolveTemplate(opts.template, skipPrompts);\n if (typeof template !== \"string\") return template.exitCode;\n\n return runScaffold(name, template, opts.force === true);\n}\n","/**\n * Gateway adapter discovery for `theokit inspect` (T3.1).\n *\n * Unlike LLM providers (registry-based) and embedding adapters (single\n * catalog), gateway adapters live in separate workspace packages\n * (`@theokit/gateway-telegram`, `@theokit/gateway-discord`). We detect\n * presence by attempting to resolve the package; absent = not installed.\n *\n * @internal\n */\n\nimport { createRequire } from \"node:module\";\n\ninterface GatewayInfo {\n readonly name: string;\n readonly packageName: string;\n readonly installed: boolean;\n}\n\nconst KNOWN_GATEWAYS = [\n { name: \"telegram\", packageName: \"@theokit/gateway-telegram\" },\n { name: \"discord\", packageName: \"@theokit/gateway-discord\" },\n] as const;\n\nexport function listGatewayAdapters(): GatewayInfo[] {\n const require = createRequire(import.meta.url);\n return KNOWN_GATEWAYS.map((g) => {\n let installed = false;\n try {\n require.resolve(g.packageName);\n installed = true;\n } catch {\n installed = false;\n }\n return { name: g.name, packageName: g.packageName, installed };\n });\n}\n","/**\n * Plugin discovery for `theokit inspect` (T3.1, ADR D198).\n *\n * Read-only filesystem walk of `~/.theokit/plugins/` and\n * `<cwd>/.theokit/plugins/`. Does NOT execute plugin code (safe to run\n * in CI). Plugin manifests are markdown + YAML frontmatter per D77.\n *\n * @internal\n */\n\nimport { existsSync, lstatSync, readdirSync, readFileSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\n\ninterface PluginInfo {\n readonly name: string;\n readonly source: \"user-global\" | \"project\";\n readonly description?: string;\n readonly path: string;\n}\n\nfunction parseFrontmatter(content: string): { name?: string; description?: string } {\n const match = content.match(/^---\\n([\\s\\S]*?)\\n---/);\n if (match === null) return {};\n const out: { name?: string; description?: string } = {};\n for (const line of (match[1] ?? \"\").split(\"\\n\")) {\n const [k, ...rest] = line.split(\":\");\n if (k === undefined || rest.length === 0) continue;\n const key = k.trim();\n const val = rest.join(\":\").trim();\n if (key === \"name\") out.name = val;\n else if (key === \"description\") out.description = val;\n }\n return out;\n}\n\nfunction loadPluginManifest(\n root: string,\n name: string,\n source: PluginInfo[\"source\"],\n): PluginInfo | undefined {\n const manifestPath = join(root, name, \"PLUGIN.md\");\n if (!existsSync(manifestPath)) return undefined;\n try {\n const fm = parseFrontmatter(readFileSync(manifestPath, \"utf8\"));\n return {\n name: fm.name ?? name,\n source,\n ...(fm.description !== undefined ? { description: fm.description } : {}),\n path: manifestPath,\n };\n } catch {\n // Malformed manifest — skip silently (per D198 invariant).\n return undefined;\n }\n}\n\nfunction walkPluginDir(root: string, source: PluginInfo[\"source\"]): PluginInfo[] {\n if (!existsSync(root) || !lstatSync(root).isDirectory()) return [];\n const out: PluginInfo[] = [];\n for (const entry of readdirSync(root, { withFileTypes: true })) {\n if (!entry.isDirectory()) continue;\n const info = loadPluginManifest(root, entry.name, source);\n if (info !== undefined) out.push(info);\n }\n return out.sort((a, b) => a.name.localeCompare(b.name));\n}\n\nexport function listPlugins(cwd: string): PluginInfo[] {\n const userPlugins = walkPluginDir(join(homedir(), \".theokit\", \"plugins\"), \"user-global\");\n const projectPlugins = walkPluginDir(join(cwd, \".theokit\", \"plugins\"), \"project\");\n // EC-N (DOCUMENT): project entries override user-global on name collision (mirror of D162).\n const byName = new Map<string, PluginInfo>();\n for (const p of userPlugins) byName.set(p.name, p);\n for (const p of projectPlugins) byName.set(p.name, p);\n return Array.from(byName.values()).sort((a, b) => a.name.localeCompare(b.name));\n}\n","/**\n * `theokit inspect` — discovery of bundled SDK assets + installed\n * gateway adapters + user plugins (T3.1, ADR D198 + D201).\n *\n * Consumes `Theokit.inspect.*` (D201) — the SDK's public introspection\n * API — to avoid `ERR_PACKAGE_PATH_NOT_EXPORTED` against published\n * installs (EC-E fix).\n *\n * @internal\n */\n\nimport { Theokit } from \"@theokit/sdk\";\nimport pc from \"picocolors\";\n\nimport { listGatewayAdapters } from \"../inspect/gateway.js\";\nimport { listPlugins } from \"../inspect/plugins.js\";\n\nexport interface InspectOptions {\n json?: boolean;\n filter?: string;\n}\n\ninterface InspectResult {\n providers: ReturnType<typeof Theokit.inspect.builtinProviders>;\n embeddingAdapters: ReturnType<typeof Theokit.inspect.embeddingAdapters>;\n gateways: ReturnType<typeof listGatewayAdapters>;\n plugins: ReturnType<typeof listPlugins>;\n}\n\nfunction collect(filter: string | undefined, cwd: string): InspectResult {\n const all = filter === undefined || filter === \"all\";\n const empty = { providers: [], embeddingAdapters: [], gateways: [], plugins: [] };\n const result: InspectResult = empty as InspectResult;\n if (all || filter === \"providers\") {\n result.providers = Theokit.inspect.builtinProviders();\n }\n if (all || filter === \"adapters\") {\n result.embeddingAdapters = Theokit.inspect.embeddingAdapters();\n }\n if (all || filter === \"gateway\") {\n result.gateways = listGatewayAdapters();\n }\n if (all || filter === \"plugins\") {\n result.plugins = listPlugins(cwd);\n }\n return result;\n}\n\nfunction formatProviders(providers: InspectResult[\"providers\"]): string[] {\n if (providers.length === 0) return [];\n const lines = [pc.bold(pc.cyan(\"Builtin LLM providers\"))];\n for (const p of providers) {\n const aliases =\n p.aliases !== undefined && p.aliases.length > 0 ? ` (aliases: ${p.aliases.join(\", \")})` : \"\";\n lines.push(\n ` • ${pc.green(p.name)}${aliases} — ${p.apiMode} · auth: ${p.authType} · ${p.baseUrl}`,\n );\n }\n lines.push(\"\");\n return lines;\n}\n\nfunction formatEmbeddings(adapters: InspectResult[\"embeddingAdapters\"]): string[] {\n if (adapters.length === 0) return [];\n const lines = [pc.bold(pc.cyan(\"Memory embedding adapters\"))];\n for (const a of adapters) {\n lines.push(` • ${pc.green(a.id)} — ${a.transport} · default model: ${a.defaultModel}`);\n }\n lines.push(\"\");\n return lines;\n}\n\nfunction formatGateways(gateways: InspectResult[\"gateways\"]): string[] {\n if (gateways.length === 0) return [];\n const lines = [pc.bold(pc.cyan(\"Gateway adapters\"))];\n for (const g of gateways) {\n const status = g.installed ? pc.green(\"installed\") : pc.gray(\"not installed\");\n lines.push(` • ${pc.green(g.name)} (${g.packageName}) — ${status}`);\n }\n lines.push(\"\");\n return lines;\n}\n\nfunction formatPlugins(r: InspectResult): string[] {\n if (r.plugins.length > 0) {\n const lines = [pc.bold(pc.cyan(\"User plugins\"))];\n for (const pl of r.plugins) {\n const desc = pl.description !== undefined ? ` — ${pl.description}` : \"\";\n lines.push(` • ${pc.green(pl.name)} [${pl.source}]${desc}`);\n }\n return lines;\n }\n if (r.providers.length > 0 || r.embeddingAdapters.length > 0) {\n return [pc.gray(\"(no user plugins found in ~/.theokit/plugins/ or ./.theokit/plugins/)\")];\n }\n return [];\n}\n\nfunction formatHuman(r: InspectResult): string {\n const lines = [\n ...formatProviders(r.providers),\n ...formatEmbeddings(r.embeddingAdapters),\n ...formatGateways(r.gateways),\n ...formatPlugins(r),\n ];\n return `${lines.join(\"\\n\")}\\n`;\n}\n\nexport async function runInspect(opts: InspectOptions): Promise<number> {\n // Validate filter.\n const VALID_FILTERS = new Set([\"all\", \"providers\", \"adapters\", \"gateway\", \"plugins\"]);\n if (opts.filter !== undefined && !VALID_FILTERS.has(opts.filter)) {\n process.stderr.write(\n `${pc.red(\"error:\")} invalid --filter \"${opts.filter}\". Valid: ${Array.from(VALID_FILTERS).join(\", \")}\\n`,\n );\n return 2;\n }\n\n const result = collect(opts.filter, process.cwd());\n if (opts.json === true) {\n process.stdout.write(`${JSON.stringify(result, null, 2)}\\n`);\n } else {\n process.stdout.write(formatHuman(result));\n }\n return 0;\n}\n","/**\n * `theokit setup gworkspace` — Google Workspace credentials walkthrough.\n *\n * Pre-flight (EC-1 + EC-2): validate `credentials.json` is a Desktop-type\n * OAuth client BEFORE shelling out to upstream `google-workspace-mcp setup`.\n * Upstream does not surface this distinction up-front and users hit\n * cryptic 401s during `accounts add` otherwise.\n *\n * After validation, this wraps `npx google-workspace-mcp setup` and\n * `accounts add` so the SDK-branded experience matches `theokit init` /\n * `theokit dev`.\n *\n * Per ADR D344 v1.2: credentials live at upstream's default `~/.google-mcp/`.\n * Per ADR D345 v1.2: OAuth is fully delegated to upstream.\n *\n * @internal\n */\n\nimport { spawn } from \"node:child_process\";\nimport { chmodSync, existsSync, mkdirSync, readFileSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { isAbsolute, join, resolve } from \"node:path\";\n\nimport pc from \"picocolors\";\n\nconst UPSTREAM_PACKAGE = \"google-workspace-mcp@^2.3.0\";\nconst DEFAULT_CONFIG_DIR = join(homedir(), \".google-mcp\");\nconst DEFAULT_CREDS_FILENAME = \"credentials.json\";\n\nconst PROBE_TIMEOUT_MS = 10_000;\n\nexport interface GworkspaceSetupOptions {\n /** Comma-separated list of scopes to grant write access to (calendar,drive,sheets,docs,gmail). */\n writable?: string;\n /** When true, runs `npx google-workspace-mcp status` after setup. */\n probe?: boolean;\n /** When true, refuses interactive prompts. */\n nonInteractive?: boolean;\n /** Override path to credentials.json. Default ~/.google-mcp/credentials.json. */\n credentialsPath?: string;\n}\n\ntype CredentialsCheckOutcome =\n | { kind: \"ok\"; path: string }\n | { kind: \"missing\"; path: string }\n | { kind: \"malformed\"; path: string; reason: string }\n | { kind: \"wrong_type\"; path: string }\n | { kind: \"rejected_path\"; path: string; reason: string };\n\n/**\n * Validate the file at `credentialsPath`. Public for tests.\n *\n * - EC-2: rejects malformed JSON with a parse-error message.\n * - EC-1 (MUST FIX): rejects Web-type OAuth client (has `.web` key instead of `.installed`).\n * - Path traversal: rejects paths outside the user's home (defense in depth — D80).\n *\n * @internal\n */\nfunction isPathTraversal(p: string): boolean {\n return (\n p.includes(\"../\") ||\n p.includes(\"..\\\\\") ||\n p === \"..\" ||\n p.startsWith(\"../\") ||\n p.startsWith(\"..\\\\\")\n );\n}\n\nfunction readAndParseJson(\n resolved: string,\n): { kind: \"ok\"; parsed: unknown } | { kind: \"malformed\"; reason: string } {\n let raw: string;\n try {\n raw = readFileSync(resolved, \"utf8\");\n } catch (err) {\n return { kind: \"malformed\", reason: err instanceof Error ? err.message : String(err) };\n }\n try {\n return { kind: \"ok\", parsed: JSON.parse(raw) };\n } catch (err) {\n return { kind: \"malformed\", reason: err instanceof Error ? err.message : String(err) };\n }\n}\n\nfunction validateOAuthShape(parsed: unknown, resolved: string): CredentialsCheckOutcome {\n if (parsed === null || typeof parsed !== \"object\") {\n return { kind: \"malformed\", path: resolved, reason: \"expected JSON object\" };\n }\n const obj = parsed as { installed?: unknown; web?: unknown };\n if (obj.installed === undefined && obj.web !== undefined) {\n return { kind: \"wrong_type\", path: resolved };\n }\n if (typeof obj.installed !== \"object\" || obj.installed === null) {\n return {\n kind: \"malformed\",\n path: resolved,\n reason: \"missing `installed` block (expected Desktop OAuth client shape)\",\n };\n }\n return { kind: \"ok\", path: resolved };\n}\n\nexport function checkCredentialsFile(credentialsPath: string): CredentialsCheckOutcome {\n if (isPathTraversal(credentialsPath)) {\n return { kind: \"rejected_path\", path: credentialsPath, reason: \"path traversal\" };\n }\n const resolved = resolve(credentialsPath);\n if (!existsSync(resolved)) return { kind: \"missing\", path: resolved };\n\n const parseResult = readAndParseJson(resolved);\n if (parseResult.kind === \"malformed\") {\n return { kind: \"malformed\", path: resolved, reason: parseResult.reason };\n }\n return validateOAuthShape(parseResult.parsed, resolved);\n}\n\nfunction describeOutcome(o: CredentialsCheckOutcome): string {\n switch (o.kind) {\n case \"missing\":\n return (\n `${pc.red(\"error: \")}credentials.json not found at ${o.path}.\\n\\n` +\n `To create it:\\n` +\n ` 1. Go to https://console.cloud.google.com/apis/credentials\\n` +\n ` 2. Create OAuth 2.0 Client ID — Application type: ${pc.bold(\"Desktop application\")}\\n` +\n ` 3. Download the JSON and save it as ${o.path}\\n`\n );\n case \"malformed\":\n return `${pc.red(\"error: \")}credentials.json could not be parsed: ${o.reason}\\n path: ${o.path}\\n`;\n case \"wrong_type\":\n return (\n `${pc.red(\"error: \")}This looks like a ${pc.bold('\"Web application\"')} OAuth client.\\n\\n` +\n `Re-create as ${pc.bold('\"Desktop application\"')} in Google Cloud Console:\\n` +\n ` https://console.cloud.google.com/apis/credentials\\n` +\n `(Click \"+ Create credentials\" → \"OAuth client ID\" → Application type: ${pc.bold(\"Desktop app\")}.)\\n\\n` +\n `Then re-download and save to: ${o.path}\\n`\n );\n case \"rejected_path\":\n return `${pc.red(\"error: \")}credentials path rejected: ${o.reason}\\n path: ${o.path}\\n`;\n case \"ok\":\n return \"\";\n }\n}\n\nfunction resolveCredentialsPath(opts: GworkspaceSetupOptions): string {\n if (opts.credentialsPath !== undefined && opts.credentialsPath.length > 0) {\n return isAbsolute(opts.credentialsPath) ? opts.credentialsPath : resolve(opts.credentialsPath);\n }\n return join(DEFAULT_CONFIG_DIR, DEFAULT_CREDS_FILENAME);\n}\n\nasync function runProbeMode(): Promise<number> {\n process.stdout.write(`\\n${pc.cyan(\"[probe]\")} running upstream connectivity check...\\n`);\n const code = await spawnUpstream([\"status\"], PROBE_TIMEOUT_MS);\n if (code !== 0) {\n process.stderr.write(\n `${pc.yellow(\"warn: \")}upstream status reported a non-zero exit (${code}). Run \\`npx ${UPSTREAM_PACKAGE} accounts list\\` to inspect.\\n`,\n );\n return code;\n }\n return 0;\n}\n\nasync function runInteractiveSetup(): Promise<number> {\n process.stdout.write(\n `\\n${pc.cyan(\"→\")} delegating to upstream installer (${UPSTREAM_PACKAGE})...\\n`,\n );\n const setupCode = await spawnUpstream([\"setup\"]);\n if (setupCode !== 0) {\n process.stderr.write(`${pc.red(\"error: \")}upstream setup exited with code ${setupCode}.\\n`);\n return setupCode;\n }\n process.stdout.write(`\\n${pc.cyan(\"→\")} adding default account...\\n`);\n const addCode = await spawnUpstream([\"accounts\", \"add\", \"default\"]);\n if (addCode !== 0) {\n process.stderr.write(\n `${pc.red(\"error: \")}upstream \\`accounts add\\` exited with code ${addCode}.\\n`,\n );\n return addCode;\n }\n return 0;\n}\n\nexport async function runGworkspaceSetup(opts: GworkspaceSetupOptions): Promise<number> {\n const credentialsPath = resolveCredentialsPath(opts);\n\n // Ensure parent dir exists (mode 0700 where POSIX honored).\n try {\n mkdirSync(DEFAULT_CONFIG_DIR, { recursive: true, mode: 0o700 });\n } catch {\n // Non-fatal — if mkdir fails the credentials check will catch it.\n }\n\n // EC-1 + EC-2 + path-traversal — validate BEFORE shelling out.\n const outcome = checkCredentialsFile(credentialsPath);\n if (outcome.kind !== \"ok\") {\n process.stderr.write(describeOutcome(outcome));\n return 2;\n }\n\n // Defense-in-depth: best-effort chmod 600 on POSIX. Windows fails silently.\n try {\n chmodSync(outcome.path, 0o600);\n } catch {\n // EC-6 (DOCUMENT): non-fatal on Windows / FAT32. Carry on.\n }\n\n process.stdout.write(\n `${pc.green(\"✓\")} credentials validated: ${outcome.path}\\n${pc.dim(\" shape: Desktop OAuth client (installed block present)\")}\\n`,\n );\n\n if (opts.probe === true) return runProbeMode();\n\n if (opts.nonInteractive === true) {\n process.stdout.write(\n `${pc.dim(\"non-interactive mode: credentials staged. Next step (manual):\")}\\n ${pc.cyan(`npx ${UPSTREAM_PACKAGE} accounts add default`)}\\n`,\n );\n return 0;\n }\n\n const interactiveCode = await runInteractiveSetup();\n if (interactiveCode !== 0) return interactiveCode;\n\n if (typeof opts.writable === \"string\" && opts.writable.length > 0) {\n process.stdout.write(\n `\\n${pc.yellow(\"note:\")} you passed --writable=${opts.writable}. ` +\n `The upstream MCP server does not narrow scopes — all scopes are granted at consent.\\n` +\n `Write tools are gated at runtime by ${pc.bold(\"googleWorkspace({ writable: true })\")} in your code.\\n`,\n );\n }\n\n process.stdout.write(\n `\\n${pc.green(\"✓\")} gworkspace setup complete.\\n` +\n `${pc.dim(' Next: import { googleWorkspace } from \"@theokit/skills-google-workspace\".')}\\n`,\n );\n return 0;\n}\n\n/** Spawn `npx <UPSTREAM_PACKAGE> ...args` with an optional timeout. Returns exit code. @internal */\nfunction spawnUpstream(args: string[], timeoutMs?: number): Promise<number> {\n return new Promise((resolveExit) => {\n const child = spawn(\"npx\", [\"-y\", UPSTREAM_PACKAGE, ...args], {\n stdio: \"inherit\",\n env: process.env,\n });\n let timer: NodeJS.Timeout | undefined;\n if (timeoutMs !== undefined) {\n timer = setTimeout(() => {\n process.stderr.write(\n `${pc.yellow(\"warn: \")}upstream did not finish within ${timeoutMs}ms — killing.\\n`,\n );\n try {\n child.kill(\"SIGTERM\");\n } catch {\n // already dead\n }\n }, timeoutMs);\n }\n child.on(\"error\", (err) => {\n if (timer !== undefined) clearTimeout(timer);\n process.stderr.write(\n `${pc.red(\"error: \")}failed to spawn npx: ${err instanceof Error ? err.message : String(err)}\\n`,\n );\n resolveExit(1);\n });\n child.on(\"exit\", (code) => {\n if (timer !== undefined) clearTimeout(timer);\n resolveExit(code ?? 1);\n });\n });\n}\n","/**\n * `theokit setup <domain>` — top-level CLI verb dispatcher.\n *\n * Currently knows ONE domain: `gworkspace`. Future domains (`notion`,\n * `linear`, etc.) plug in the same way.\n *\n * Per ADR D346, `setup` is reserved for credential staging + connectivity\n * probes for third-party integrations. The flow shells out to the upstream\n * tool's own setup whenever that's safer than re-implementing OAuth.\n *\n * @internal\n */\n\nimport pc from \"picocolors\";\n\nimport { type GworkspaceSetupOptions, runGworkspaceSetup } from \"../setup/gworkspace.js\";\n\nexport interface SetupOptions {\n writable?: string;\n probe?: boolean;\n credentialsPath?: string;\n nonInteractive?: boolean;\n}\n\nexport async function runSetup(domain: string, opts: SetupOptions): Promise<number> {\n if (domain === \"gworkspace\") {\n const gworkspaceOpts: GworkspaceSetupOptions = {\n writable: opts.writable,\n probe: opts.probe === true,\n nonInteractive: opts.nonInteractive === true,\n ...(opts.credentialsPath !== undefined ? { credentialsPath: opts.credentialsPath } : {}),\n };\n return await runGworkspaceSetup(gworkspaceOpts);\n }\n process.stderr.write(\n `${pc.red(\"error: \")}unknown setup domain '${domain}'. Supported domains: gworkspace.\\n`,\n );\n return 2;\n}\n","/**\n * `theokit tasks {list|inspect|cancel}` — operator-facing observability\n * for the SDK Task registry (Adoption Roadmap gap #2; ADRs D361-D374).\n *\n * Reads from the JsonFileTaskStore at `$THEOKIT_HOME/tasks/` (default\n * fallback `cwd/.theokit/tasks/`). Cross-process cancel is best-effort:\n * the CLI marks `cancelRequested: true` in the handle file, and the\n * owning process honors it at the next checkpoint (EC-7).\n *\n * Exit codes (consistent with the other subcommands in this package):\n * 0 — success\n * 2 — permission / I/O failure\n * 3 — invalid task id grammar (D368)\n * 4 — task not found\n */\n\nimport { join } from \"node:path\";\n\nimport type { TaskFilter, TaskHandle, TaskState } from \"@theokit/sdk\";\nimport { JsonFileTaskStore, type TaskStore } from \"@theokit/sdk/task-store\";\n\n// Local copy of the id grammar — keeps the CLI dependency surface minimal\n// and matches D368 (`^[a-z0-9][a-z0-9_-]*$`). Adapters use reserved\n// prefixes wf-/b-/cron-; the CLI always allows them.\nconst TASK_ID_GRAMMAR = /^[a-z0-9][a-z0-9_-]*$/;\nfunction isValidTaskId(id: string): boolean {\n return TASK_ID_GRAMMAR.test(id);\n}\n\nexport interface TasksListOptions {\n state?: string;\n kind?: string;\n json?: boolean;\n}\n\nexport interface TasksInspectOptions {\n json?: boolean;\n}\n\nexport interface TasksCancelOptions {\n reason?: string;\n}\n\nfunction resolveStoreDir(): string {\n const fromEnv = process.env.THEOKIT_HOME;\n if (typeof fromEnv === \"string\" && fromEnv.length > 0) return join(fromEnv, \"tasks\");\n return join(process.cwd(), \".theokit\", \"tasks\");\n}\n\nfunction openStore(): TaskStore {\n const dir = resolveStoreDir();\n try {\n return new JsonFileTaskStore(dir);\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === \"EACCES\") {\n process.stderr.write(`tasks: cannot access store dir ${dir}: permission denied\\n`);\n throw new Error(\"permission_denied\");\n }\n throw err;\n }\n}\n\nfunction formatTable(handles: readonly TaskHandle[]): string {\n if (handles.length === 0) return \"No tasks found.\";\n const rows = handles.map((h) => ({\n id: h.id.slice(0, 24).padEnd(24),\n kind: h.kind.padEnd(8),\n state: h.state.padEnd(9),\n age: `${Math.floor((Date.now() - h.submittedAt) / 1000)}s`.padStart(6),\n }));\n const header = \"ID KIND STATE AGE\";\n const lines = rows.map((r) => `${r.id} ${r.kind} ${r.state} ${r.age}`);\n return [header, ...lines].join(\"\\n\");\n}\n\nasync function listHandles(store: TaskStore, opts: TasksListOptions): Promise<TaskHandle[]> {\n const filter: TaskFilter = {\n ...(opts.state !== undefined ? { state: opts.state as TaskState } : {}),\n ...(opts.kind !== undefined ? { kind: opts.kind as TaskHandle[\"kind\"] } : {}),\n };\n return store.list(filter);\n}\n\nexport async function runTasksList(opts: TasksListOptions): Promise<number> {\n let store: TaskStore;\n try {\n store = openStore();\n } catch {\n return 2;\n }\n const handles = await listHandles(store, opts);\n if (opts.json === true) {\n process.stdout.write(`${JSON.stringify(handles, null, 2)}\\n`);\n } else {\n process.stdout.write(`${formatTable(handles)}\\n`);\n }\n return 0;\n}\n\nfunction printHandleDetails(handle: TaskHandle): void {\n process.stdout.write(`id: ${handle.id}\\n`);\n process.stdout.write(`kind: ${handle.kind}\\n`);\n process.stdout.write(`state: ${handle.state}\\n`);\n process.stdout.write(`submittedAt: ${new Date(handle.submittedAt).toISOString()}\\n`);\n if (handle.startedAt !== undefined) {\n process.stdout.write(`startedAt: ${new Date(handle.startedAt).toISOString()}\\n`);\n }\n if (handle.finishedAt !== undefined) {\n process.stdout.write(`finishedAt: ${new Date(handle.finishedAt).toISOString()}\\n`);\n process.stdout.write(`result: ${JSON.stringify(handle.result)}\\n`);\n }\n if (handle.erroredAt !== undefined) {\n process.stdout.write(`erroredAt: ${new Date(handle.erroredAt).toISOString()}\\n`);\n process.stdout.write(`error: ${JSON.stringify(handle.error)}\\n`);\n }\n if (handle.cancelledAt !== undefined) {\n process.stdout.write(`cancelledAt: ${new Date(handle.cancelledAt).toISOString()}\\n`);\n }\n if (handle.cancelRequested === true) {\n process.stdout.write(`cancelRequested: true (awaiting owning process)\\n`);\n }\n}\n\nexport async function runTasksInspect(id: string, opts: TasksInspectOptions): Promise<number> {\n if (!isValidTaskId(id)) {\n process.stderr.write(`tasks: invalid id grammar: ${id}\\n`);\n return 3;\n }\n let store: TaskStore;\n try {\n store = openStore();\n } catch {\n return 2;\n }\n const handle = await store.get(id);\n if (handle === undefined) {\n process.stderr.write(`tasks: not found: ${id}\\n`);\n return 4;\n }\n if (opts.json === true) {\n process.stdout.write(`${JSON.stringify(handle, null, 2)}\\n`);\n } else {\n printHandleDetails(handle);\n }\n return 0;\n}\n\nexport async function runTasksCancel(id: string, _opts: TasksCancelOptions): Promise<number> {\n if (!isValidTaskId(id)) {\n process.stderr.write(`tasks: invalid id grammar: ${id}\\n`);\n return 3;\n }\n let store: TaskStore;\n try {\n store = openStore();\n } catch {\n return 2;\n }\n const handle = await store.get(id);\n if (handle === undefined) {\n process.stderr.write(`tasks: not found: ${id}\\n`);\n return 4;\n }\n if (handle.state === \"finished\" || handle.state === \"error\" || handle.state === \"cancelled\") {\n process.stdout.write(`task already terminal (state=${handle.state})\\n`);\n return 0;\n }\n if (handle.state === \"queued\") {\n // Direct transition (no owning process AbortController to flip).\n const cancelledAt = Date.now();\n await store.update(id, (h) => ({ ...h, state: \"cancelled\", cancelledAt }));\n process.stdout.write(`task ${id} cancelled (was queued)\\n`);\n return 0;\n }\n // Running: set cancelRequested flag; owning process honors at next checkpoint.\n await store.update(id, (h) => ({ ...h, cancelRequested: true }));\n process.stdout.write(\n `cancel requested for task ${id}; the owning process will honor it at the next checkpoint\\n`,\n );\n return 0;\n}\n","/**\n * Top-level CLI dispatcher via commander (ADR D194).\n *\n * Subcommands: `init`, `dev`, `inspect`, `eval`, `setup`, `acp`, `tasks`.\n *\n * Exit codes:\n * - 0 → success\n * - 1 → unknown error\n * - 2 → user error (bad flags, unknown subcommand suggestion)\n *\n * @internal\n */\n\nimport { Command } from \"commander\";\n\nimport { type AcpOptions, runAcp } from \"./commands/acp.js\";\nimport {\n runDbCheckSchemaDrift,\n runDbExportSchema,\n runDbGenerate,\n runDbMigrate,\n runDbPush,\n runDbStudio,\n} from \"./commands/db.js\";\nimport { type DevOptions, runDev } from \"./commands/dev.js\";\nimport { type EvalOptions, runEval } from \"./commands/eval.js\";\nimport { type InitOptions, runInit } from \"./commands/init.js\";\nimport { type InspectOptions, runInspect } from \"./commands/inspect.js\";\nimport { runSetup, type SetupOptions } from \"./commands/setup.js\";\nimport {\n runTasksCancel,\n runTasksInspect,\n runTasksList,\n type TasksCancelOptions,\n type TasksInspectOptions,\n type TasksListOptions,\n} from \"./commands/tasks.js\";\nimport { CLI_VERSION, SDK_VERSION } from \"./version.js\";\n\nfunction registerSubcommands(program: Command, setExit: (n: number) => void): void {\n program\n .command(\"init [project-name]\")\n .description(\"Scaffold a new agent project from a bundled template.\")\n .option(\"-t, --template <name>\", \"Template name: minimal | ollama-local | telegram-bot\")\n .option(\"-f, --force\", \"Overwrite a non-empty destination directory\")\n .option(\"--here\", \"Scaffold into the current directory\")\n .option(\"-y, --yes\", \"Skip interactive prompts (CI mode)\")\n .action(async (projectName: string | undefined, opts: InitOptions) => {\n setExit(await runInit(projectName, opts));\n });\n\n program\n .command(\"dev\")\n .description(\"Run the agent entry point under tsx --watch (hot-reload).\")\n .option(\"--entry <path>\", \"Entry file (default: src/index.ts or package.main)\")\n .option(\"--env <path>\", \"Env file to load (default: .env)\")\n .action(async (opts: DevOptions) => {\n setExit(await runDev(opts));\n });\n\n program\n .command(\"inspect\")\n .description(\"List builtin providers, embedding adapters, gateways, and plugins.\")\n .option(\"--json\", \"Emit machine-readable JSON instead of the human tree view\")\n .option(\n \"--filter <kind>\",\n \"Narrow output to one kind: providers | adapters | gateway | plugins\",\n )\n .action(async (opts: InspectOptions) => {\n setExit(await runInspect(opts));\n });\n\n program\n .command(\"eval\")\n .description(\"Run an eval suite against a real LLM and emit a markdown report.\")\n .option(\"-c, --config <path>\", \"Eval config file (default: ./eval.config.ts)\")\n .option(\"-o, --output <path>\", \"Report output path (default: ./eval-report.md)\")\n .action(async (opts: EvalOptions) => {\n setExit(await runEval(opts));\n });\n\n program\n .command(\"acp\")\n .description(\n \"Launch a stdio Agent Client Protocol (ACP) server pointing at the entry file's default-exported agent. Used by Zed/Cursor/Claude Desktop. ADRs D349-D360.\",\n )\n .option(\"--entry <path>\", \"Entry file (default: src/index.ts or package.main)\")\n .option(\"--permission <mode>\", \"Tool permission mode: ask | auto | deny (default: ask)\")\n .option(\"--trusted-tools <list>\", \"Comma-separated tool names that bypass ask\")\n .option(\"--permission-timeout-ms <ms>\", \"Permission request timeout in ms (default: 60000)\")\n .action(async (opts: AcpOptions) => {\n setExit(await runAcp(opts));\n });\n\n program\n .command(\"setup <domain>\")\n .description(\n \"Stage credentials + connectivity probe for a third-party integration. Domains: gworkspace (Google Workspace).\",\n )\n .option(\n \"--writable <products>\",\n \"Comma-separated products to grant write access (e.g., 'drive,calendar')\",\n )\n .option(\"--probe\", \"Run upstream connectivity check after staging credentials\")\n .option(\n \"--credentials-path <path>\",\n \"Override path to credentials.json (default: ~/.google-mcp/credentials.json)\",\n )\n .option(\"--non-interactive\", \"Refuse interactive prompts; suitable for CI\")\n .action(async (domain: string, opts: SetupOptions) => {\n setExit(await runSetup(domain, opts));\n });\n\n const db = program\n .command(\"db\")\n .description(\n \"Database tooling — wraps drizzle-kit (generate/migrate/studio/push) and emits polyglot JSON Schema 7 (export-schema/check-schema-drift). Consumes orm.config.ts that default-exports { schema }.\",\n );\n\n db.command(\"generate\")\n .description(\"drizzle-kit generate — generate SQL migrations from your schema diff\")\n .action(() => {\n setExit(runDbGenerate());\n });\n db.command(\"migrate\")\n .description(\"drizzle-kit migrate — apply pending migrations to the database\")\n .action(() => {\n setExit(runDbMigrate());\n });\n db.command(\"studio\")\n .description(\"drizzle-kit studio — launch the embedded data browser UI\")\n .action(() => {\n setExit(runDbStudio());\n });\n db.command(\"push\")\n .description(\"drizzle-kit push — direct schema sync (dangerous in prod; prototypes only)\")\n .action(() => {\n setExit(runDbPush());\n });\n db.command(\"export-schema\")\n .description(\n \"Emit JSON Schema 7 per entity to .theokit/schema/{entity}.schema.json (polyglot consumers).\",\n )\n .option(\"-o, --out <dir>\", \"Output directory (default: .theokit/schema)\")\n .option(\"-c, --config <path>\", \"Path to orm.config (default: orm.config.ts)\")\n .action(async (opts: { out?: string; config?: string }) => {\n setExit(await runDbExportSchema(opts));\n });\n db.command(\"check-schema-drift\")\n .description(\"Re-emit schemas and diff against committed copies. Exit 1 on drift.\")\n .option(\"-o, --out <dir>\", \"Output directory (default: .theokit/schema)\")\n .option(\"-c, --config <path>\", \"Path to orm.config (default: orm.config.ts)\")\n .action(async (opts: { out?: string; config?: string }) => {\n setExit(await runDbCheckSchemaDrift(opts));\n });\n\n const tasks = program\n .command(\"tasks\")\n .description(\"Observe SDK Task registry (list / inspect / cancel)\");\n\n tasks\n .command(\"list\")\n .description(\"List tasks in the local JsonFileTaskStore\")\n .option(\"--state <state>\", \"Filter by state (queued|running|finished|error|cancelled)\")\n .option(\"--kind <kind>\", \"Filter by kind (run|batch|workflow|cron|custom)\")\n .option(\"--json\", \"Emit machine-readable JSON instead of the table view\")\n .action(async (opts: TasksListOptions) => {\n setExit(await runTasksList(opts));\n });\n\n tasks\n .command(\"inspect <id>\")\n .description(\"Inspect a single task by id\")\n .option(\"--json\", \"Emit machine-readable JSON\")\n .action(async (id: string, opts: TasksInspectOptions) => {\n setExit(await runTasksInspect(id, opts));\n });\n\n tasks\n .command(\"cancel <id>\")\n .description(\"Cancel a task (best-effort cross-process via cancelRequested flag)\")\n .option(\"--reason <reason>\", \"Cancellation reason recorded in the registry\")\n .action(async (id: string, opts: TasksCancelOptions) => {\n setExit(await runTasksCancel(id, opts));\n });\n}\n\nfunction mapCommanderExitCode(code: string | undefined, fallback: number): number {\n if (code === \"commander.help\" || code === \"commander.helpDisplayed\") return 0;\n if (code === \"commander.version\") return 0;\n if (code === \"commander.unknownCommand\" || code === \"commander.unknownOption\") return 2;\n return fallback > 0 ? fallback : 2;\n}\n\nexport async function main(argv: ReadonlyArray<string>): Promise<number> {\n const program = new Command();\n program\n .name(\"theokit\")\n .description(\"Developer CLI for @theokit/sdk — init, dev, inspect, eval.\")\n .version(CLI_VERSION, \"-v, --version\", \"Print the CLI version and exit.\")\n .addHelpText(\n \"after\",\n `\\nBundled SDK version: ${SDK_VERSION}\\nAdoption Roadmap #1. See https://github.com/usetheo/theokit-sdk for docs.\\n\\nExit codes: 0=success · 1=unknown error · 2=user error.\\n`,\n );\n\n let exitCode = 0;\n const setExit = (code: number): void => {\n exitCode = code;\n };\n registerSubcommands(program, setExit);\n\n // Commander throws CommanderError after `exitOverride` runs (by design)\n // to interrupt further processing. We set exitCode in the callback and\n // swallow the throw — the caller (bin shim) reads our returned code.\n let commanderHandledIt = false;\n program.exitOverride((err) => {\n commanderHandledIt = true;\n exitCode = mapCommanderExitCode(err.code, err.exitCode);\n });\n\n try {\n await program.parseAsync(argv as string[]);\n } catch (err) {\n if (commanderHandledIt) {\n // exitCode already set by exitOverride callback.\n return exitCode;\n }\n process.stderr.write(`theokit: ${err instanceof Error ? err.message : String(err)}\\n`);\n return 1;\n }\n return exitCode;\n}\n","#!/usr/bin/env node\n/**\n * `theokit` executable shim. Imports `main` from the package and\n * forwards `process.argv`, then exits with the resolved code.\n *\n * The shebang above is preserved by tsup's banner config; a\n * `chmod +x` is applied post-build via `prepare` script so the\n * file is directly executable in published installs.\n *\n * @internal\n */\n\nimport { main } from \"../main.js\";\n\nmain(process.argv)\n .then((code) => process.exit(code))\n .catch((err) => {\n process.stderr.write(\n `theokit: unhandled error — ${err instanceof Error ? err.message : String(err)}\\n`,\n );\n process.exit(1);\n });\n"]}
1
+ {"version":3,"sources":["../../src/dev/entry-resolver.ts","../../src/commands/acp.ts","../../src/commands/db.ts","../../src/dev/runner.ts","../../src/commands/dev.ts","../../src/eval/config-loader.ts","../../src/eval/report.ts","../../src/eval/runner.ts","../../src/commands/eval.ts","../../src/version.ts","../../src/init/templates.ts","../../src/init/validate-name.ts","../../src/init/scaffold.ts","../../src/commands/init.ts","../../src/inspect/gateway.ts","../../src/inspect/plugins.ts","../../src/commands/inspect.ts","../../src/setup/gworkspace.ts","../../src/commands/setup.ts","../../src/commands/tasks.ts","../../src/main.ts","../../src/bin/theokit.ts"],"names":["join","existsSync","pathToFileURL","resolve","readFileSync","require","pc","isAbsolute","dirname","writeFileSync","readdirSync","mkdirSync","renameSync","createRequire","lstatSync","p","homedir","spawn"],"mappings":"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","file":"theokit.js","sourcesContent":["/**\n * Resolve the entry file for `theokit dev` (T4.1).\n *\n * Priority:\n * 1. Explicit `--entry <path>` flag.\n * 2. `package.json` `main` field.\n * 3. `src/index.ts` (or `.js` / `.mjs` / `.tsx`).\n * 4. `index.ts` at cwd root.\n *\n * Throws `entry_not_found` when nothing matches.\n *\n * @internal\n */\n\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { isAbsolute, join, resolve } from \"node:path\";\n\nconst FALLBACK_CANDIDATES = [\n \"src/index.ts\",\n \"src/index.tsx\",\n \"src/index.mjs\",\n \"src/index.js\",\n \"index.ts\",\n \"index.mjs\",\n \"index.js\",\n];\n\nfunction entryNotFoundError(message: string): Error & { code?: string } {\n const err = new Error(message) as Error & { code?: string };\n err.code = \"entry_not_found\";\n return err;\n}\n\nfunction resolveFromExplicit(cwd: string, explicit: string): string {\n const abs = isAbsolute(explicit) ? explicit : resolve(cwd, explicit);\n if (!existsSync(abs)) throw entryNotFoundError(`Entry file not found: ${explicit}`);\n return abs;\n}\n\nfunction resolveFromPackageJson(cwd: string): string | undefined {\n const pkgPath = join(cwd, \"package.json\");\n if (!existsSync(pkgPath)) return undefined;\n try {\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf8\")) as { main?: string };\n if (typeof pkg.main === \"string\" && pkg.main.length > 0) {\n const abs = resolve(cwd, pkg.main);\n if (existsSync(abs)) return abs;\n }\n } catch {\n // Malformed package.json — fall through to candidates.\n }\n return undefined;\n}\n\nfunction resolveFromCandidates(cwd: string): string | undefined {\n for (const candidate of FALLBACK_CANDIDATES) {\n const abs = join(cwd, candidate);\n if (existsSync(abs)) return abs;\n }\n return undefined;\n}\n\nexport function resolveEntry(cwd: string, explicit?: string): string {\n if (explicit !== undefined && explicit.length > 0) return resolveFromExplicit(cwd, explicit);\n const fromPkg = resolveFromPackageJson(cwd);\n if (fromPkg !== undefined) return fromPkg;\n const fromCandidate = resolveFromCandidates(cwd);\n if (fromCandidate !== undefined) return fromCandidate;\n throw entryNotFoundError(\n `No entry file found. Pass --entry <path> or create one of: ${FALLBACK_CANDIDATES.join(\", \")}`,\n );\n}\n","/**\n * `theokit acp` CLI subcommand — launches an ACP stdio server pointing at\n * the resolved entry file's default-exported `SDKAgent` or factory.\n *\n * ADRs D357 + EC-4 (CJS interop fallback).\n *\n * @internal\n */\n\nimport { pathToFileURL } from \"node:url\";\nimport { resolveEntry } from \"../dev/entry-resolver.js\";\n\nexport interface AcpOptions {\n entry?: string;\n permission?: \"ask\" | \"auto\" | \"deny\";\n trustedTools?: string;\n permissionTimeoutMs?: string;\n}\n\n/**\n * Resolve the default export with CJS interop fallback (EC-4).\n *\n * ESM: `export default factory` → `mod.default === factory`\n * CJS: `module.exports = factory` → `mod.default === undefined`, `mod` IS factory\n */\nfunction resolveDefaultExport(mod: unknown): unknown {\n if (mod === null || mod === undefined) return undefined;\n const asObj = mod as { default?: unknown };\n return asObj.default ?? mod;\n}\n\nfunction isValidAgentShape(value: unknown): boolean {\n if (typeof value === \"function\") return true;\n if (typeof value !== \"object\" || value === null) return false;\n const obj = value as { agentId?: unknown; send?: unknown };\n return typeof obj.agentId === \"string\" && typeof obj.send === \"function\";\n}\n\nfunction fail(msg: string, code = 1): number {\n process.stderr.write(`theokit acp: ${msg}\\n`);\n return code;\n}\n\ntype ResolveAgentResult = { ok: true; agent: unknown } | { ok: false; exitCode: number };\n\nasync function loadAgentFromEntry(entryArg: string | undefined): Promise<ResolveAgentResult> {\n let entryPath: string;\n try {\n entryPath = resolveEntry(process.cwd(), entryArg);\n } catch (err) {\n return { ok: false, exitCode: fail(err instanceof Error ? err.message : String(err), 2) };\n }\n let mod: unknown;\n try {\n mod = await import(pathToFileURL(entryPath).href);\n } catch (err) {\n return {\n ok: false,\n exitCode: fail(`failed to import entry: ${err instanceof Error ? err.message : err}`, 1),\n };\n }\n const agent = resolveDefaultExport(mod);\n if (!isValidAgentShape(agent)) {\n return {\n ok: false,\n exitCode: fail(\n `entry ${entryPath} must export an SDKAgent or a factory (sessionId) => SDKAgent. Got: ${typeof agent}`,\n 2,\n ),\n };\n }\n return { ok: true, agent };\n}\n\ninterface ParsedFlags {\n permission: \"ask\" | \"auto\" | \"deny\";\n trustedTools?: ReadonlyArray<string>;\n permissionTimeoutMs?: number;\n}\n\ntype ParseFlagsResult = { ok: true; flags: ParsedFlags } | { ok: false; exitCode: number };\n\nfunction parseTrustedTools(raw: string | undefined): ReadonlyArray<string> | undefined {\n if (typeof raw !== \"string\" || raw.length === 0) return undefined;\n return raw\n .split(\",\")\n .map((s) => s.trim())\n .filter((s) => s.length > 0);\n}\n\nfunction parseTimeout(raw: string | undefined): { ok: true; value?: number } | { ok: false } {\n if (typeof raw !== \"string\") return { ok: true };\n const n = Number.parseInt(raw, 10);\n if (!Number.isFinite(n) || n <= 0) return { ok: false };\n return { ok: true, value: n };\n}\n\nfunction parseFlags(opts: AcpOptions): ParseFlagsResult {\n const permission = opts.permission ?? \"ask\";\n if (permission !== \"ask\" && permission !== \"auto\" && permission !== \"deny\") {\n return { ok: false, exitCode: fail(`invalid --permission: ${permission}`, 2) };\n }\n const timeout = parseTimeout(opts.permissionTimeoutMs);\n if (!timeout.ok) {\n return {\n ok: false,\n exitCode: fail(`invalid --permission-timeout-ms: ${opts.permissionTimeoutMs}`, 2),\n };\n }\n const trustedTools = parseTrustedTools(opts.trustedTools);\n const flags: ParsedFlags = { permission };\n if (trustedTools !== undefined) flags.trustedTools = trustedTools;\n if (timeout.value !== undefined) flags.permissionTimeoutMs = timeout.value;\n return { ok: true, flags };\n}\n\nasync function importServeAcp(): Promise<\n { ok: true; serveAcp: typeof import(\"@theokit/acp\").serveAcp } | { ok: false; exitCode: number }\n> {\n try {\n const mod = await import(\"@theokit/acp\");\n return { ok: true, serveAcp: mod.serveAcp };\n } catch (err) {\n return {\n ok: false,\n exitCode: fail(\n `@theokit/acp not installed. Run: npm i @theokit/acp. (${err instanceof Error ? err.message : err})`,\n 1,\n ),\n };\n }\n}\n\nexport async function runAcp(opts: AcpOptions): Promise<number> {\n const agentRes = await loadAgentFromEntry(opts.entry);\n if (!agentRes.ok) return agentRes.exitCode;\n\n const flagsRes = parseFlags(opts);\n if (!flagsRes.ok) return flagsRes.exitCode;\n\n const serveRes = await importServeAcp();\n if (!serveRes.ok) return serveRes.exitCode;\n\n try {\n await serveRes.serveAcp({\n agent: agentRes.agent as never,\n permissionDefault: flagsRes.flags.permission,\n ...(flagsRes.flags.trustedTools !== undefined\n ? { trustedTools: flagsRes.flags.trustedTools }\n : {}),\n ...(flagsRes.flags.permissionTimeoutMs !== undefined\n ? { permissionTimeoutMs: flagsRes.flags.permissionTimeoutMs }\n : {}),\n });\n } catch (err) {\n return fail(err instanceof Error ? err.message : String(err), 1);\n }\n return 0;\n}\n\n// Test seam\nexport { isValidAgentShape, resolveDefaultExport };\n","/**\n * `theokit db` subcommand — thin wrapper over drizzle-kit (ADR D6 / orm-v1 D6:\n * delegate migrations to canonical drizzle-kit; do not reinvent).\n *\n * Subcommands:\n * - `theokit db generate` → drizzle-kit generate\n * - `theokit db migrate` → drizzle-kit migrate\n * - `theokit db studio` → drizzle-kit studio\n * - `theokit db push` → drizzle-kit push (dangerous, gated)\n * - `theokit db export-schema` → run @theokit/orm schema-export → .theokit/schema/{entity}.schema.json\n * - `theokit db check-schema-drift`\n * → re-emit and diff against committed schemas; exit 1 on drift\n *\n * Implementation principles:\n * - drizzle-kit lookups via the host workspace's node_modules (no bundled binary)\n * - export-schema and check-schema-drift load `orm.config.ts` from cwd\n * (must default-export `{ schema, dialect, db? }` shape — only `schema` is used)\n * - All file writes are atomic (write tmp + rename)\n * - All paths sanitized via path.resolve before write\n */\n\nimport { spawnSync } from \"node:child_process\";\nimport {\n existsSync,\n mkdirSync,\n readdirSync,\n readFileSync,\n renameSync,\n unlinkSync,\n writeFileSync,\n} from \"node:fs\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\ninterface DbCommandOptions {\n readonly cwd?: string;\n}\n\ninterface DbExportSchemaOptions extends DbCommandOptions {\n readonly out?: string;\n readonly config?: string;\n}\n\ntype DbCheckDriftOptions = DbExportSchemaOptions;\n\ninterface OrmConfig {\n schema: Record<string, unknown>;\n}\n\nfunction findDrizzleKit(cwd: string): string | null {\n const candidates = [\n join(cwd, \"node_modules\", \".bin\", \"drizzle-kit\"),\n join(cwd, \"node_modules\", \"drizzle-kit\", \"bin.cjs\"),\n ];\n for (const c of candidates) {\n if (existsSync(c)) return c;\n }\n return null;\n}\n\nfunction runDrizzleKit(verb: string, cwd: string, extraArgs: string[] = []): number {\n const bin = findDrizzleKit(cwd);\n if (!bin) {\n process.stderr.write(\n \"theokit db: drizzle-kit not found in node_modules. Install it: pnpm add -D drizzle-kit\\n\",\n );\n return 2;\n }\n const r = spawnSync(bin, [verb, ...extraArgs], { cwd, stdio: \"inherit\" });\n if (r.status === null) return 1;\n return r.status;\n}\n\nexport function runDbGenerate(opts: DbCommandOptions = {}): number {\n return runDrizzleKit(\"generate\", opts.cwd ?? process.cwd());\n}\nexport function runDbMigrate(opts: DbCommandOptions = {}): number {\n return runDrizzleKit(\"migrate\", opts.cwd ?? process.cwd());\n}\nexport function runDbStudio(opts: DbCommandOptions = {}): number {\n return runDrizzleKit(\"studio\", opts.cwd ?? process.cwd());\n}\nexport function runDbPush(opts: DbCommandOptions = {}): number {\n return runDrizzleKit(\"push\", opts.cwd ?? process.cwd());\n}\n\nasync function loadOrmConfig(configPath: string): Promise<OrmConfig> {\n if (!existsSync(configPath)) {\n throw new Error(\n `theokit db: orm.config not found at ${configPath}. Create one that default-exports { schema } (the Drizzle schema object).`,\n );\n }\n // Cache-bust so consecutive invocations (drift workflows, tests) see edits.\n const bust = `${Date.now()}-${Math.random().toString(36).slice(2)}`;\n const url = `${pathToFileURL(configPath).href}?v=${bust}`;\n const mod = (await import(url)) as { default?: OrmConfig };\n if (!mod.default || typeof mod.default !== \"object\" || !mod.default.schema) {\n throw new Error(\n `theokit db: orm.config at ${configPath} must default-export { schema }. Got: ${typeof mod.default}`,\n );\n }\n return mod.default;\n}\n\ninterface SchemaExportModule {\n exportSchemas: (schema: Record<string, unknown>) => Record<string, unknown>;\n}\n\nasync function loadSchemaExporter(cwd: string): Promise<SchemaExportModule> {\n const candidates = [\n join(cwd, \"node_modules\", \"@theokit\", \"orm\", \"dist\", \"schema-export.js\"),\n join(cwd, \"node_modules\", \"@theokit\", \"orm\", \"schema-export.js\"),\n ];\n for (const c of candidates) {\n if (existsSync(c)) {\n return (await import(pathToFileURL(c).href)) as SchemaExportModule;\n }\n }\n throw new Error(\"theokit db: @theokit/orm is not installed. Install it: pnpm add @theokit/orm\");\n}\n\nfunction atomicWrite(filePath: string, content: string): void {\n mkdirSync(dirname(filePath), { recursive: true });\n const tmp = `${filePath}.${process.pid}.tmp`;\n writeFileSync(tmp, content, { mode: 0o644 });\n renameSync(tmp, filePath);\n}\n\nasync function loadConfigOrError(\n configPath: string,\n): Promise<{ ok: true; value: OrmConfig } | { ok: false; code: number }> {\n try {\n return { ok: true, value: await loadOrmConfig(configPath) };\n } catch (err) {\n process.stderr.write(`${err instanceof Error ? err.message : String(err)}\\n`);\n return { ok: false, code: 2 };\n }\n}\n\nasync function loadExporterOrError(\n cwd: string,\n): Promise<{ ok: true; value: SchemaExportModule } | { ok: false; code: number }> {\n try {\n return { ok: true, value: await loadSchemaExporter(cwd) };\n } catch (err) {\n process.stderr.write(`${err instanceof Error ? err.message : String(err)}\\n`);\n return { ok: false, code: 2 };\n }\n}\n\nfunction exportSchemasOrError(\n exporter: SchemaExportModule,\n schema: OrmConfig[\"schema\"],\n): { ok: true; value: Record<string, unknown> } | { ok: false; code: number } {\n try {\n return { ok: true, value: exporter.exportSchemas(schema) };\n } catch (err) {\n process.stderr.write(\n `theokit db: schema export failed: ${err instanceof Error ? err.message : String(err)}\\n`,\n );\n return { ok: false, code: 1 };\n }\n}\n\nfunction writeSchemasToOutDir(schemas: Record<string, unknown>, outDir: string): void {\n mkdirSync(outDir, { recursive: true });\n // Clean existing .schema.json files (so renamed/dropped entities don't linger)\n for (const f of readdirSync(outDir).filter((n) => n.endsWith(\".schema.json\"))) {\n unlinkSync(join(outDir, f));\n }\n for (const [name, schema] of Object.entries(schemas)) {\n const target = join(outDir, `${name}.schema.json`);\n atomicWrite(target, `${JSON.stringify(schema, null, 2)}\\n`);\n }\n}\n\nexport async function runDbExportSchema(opts: DbExportSchemaOptions = {}): Promise<number> {\n const cwd = opts.cwd ?? process.cwd();\n const configPath = resolve(cwd, opts.config ?? \"orm.config.ts\");\n const outDir = resolve(cwd, opts.out ?? \".theokit/schema\");\n\n const configResult = await loadConfigOrError(configPath);\n if (!configResult.ok) return configResult.code;\n\n const exporterResult = await loadExporterOrError(cwd);\n if (!exporterResult.ok) return exporterResult.code;\n\n const schemasResult = exportSchemasOrError(exporterResult.value, configResult.value.schema);\n if (!schemasResult.ok) return schemasResult.code;\n\n writeSchemasToOutDir(schemasResult.value, outDir);\n process.stdout.write(\n `theokit db: wrote ${Object.keys(schemasResult.value).length} schema(s) to ${outDir}\\n`,\n );\n return 0;\n}\n\nfunction readCommittedSchemas(outDir: string): Record<string, unknown> {\n if (!existsSync(outDir)) return {};\n const out: Record<string, unknown> = {};\n for (const f of readdirSync(outDir).filter((n) => n.endsWith(\".schema.json\"))) {\n const name = f.replace(/\\.schema\\.json$/, \"\");\n out[name] = JSON.parse(readFileSync(join(outDir, f), \"utf-8\"));\n }\n return out;\n}\n\ninterface SchemaDrift {\n added: string[];\n removed: string[];\n changed: string[];\n}\n\nfunction computeSchemaDrift(\n fresh: Record<string, unknown>,\n committed: Record<string, unknown>,\n): SchemaDrift {\n const freshKeys = new Set(Object.keys(fresh));\n const committedKeys = new Set(Object.keys(committed));\n const added = [...freshKeys].filter((k) => !committedKeys.has(k));\n const removed = [...committedKeys].filter((k) => !freshKeys.has(k));\n const changed = [...freshKeys].filter(\n (k) => committedKeys.has(k) && JSON.stringify(fresh[k]) !== JSON.stringify(committed[k]),\n );\n return { added, removed, changed };\n}\n\nfunction reportSchemaDrift(drift: SchemaDrift): number {\n const { added, removed, changed } = drift;\n if (added.length === 0 && removed.length === 0 && changed.length === 0) {\n process.stdout.write(\"theokit db: schema in sync (no drift)\\n\");\n return 0;\n }\n process.stderr.write(\"theokit db: schema drift detected\\n\");\n if (added.length > 0) process.stderr.write(` added: ${added.join(\", \")}\\n`);\n if (removed.length > 0) process.stderr.write(` removed: ${removed.join(\", \")}\\n`);\n if (changed.length > 0) process.stderr.write(` changed: ${changed.join(\", \")}\\n`);\n process.stderr.write(\"Run `theokit db export-schema` to refresh.\\n\");\n return 1;\n}\n\nexport async function runDbCheckSchemaDrift(opts: DbCheckDriftOptions = {}): Promise<number> {\n const cwd = opts.cwd ?? process.cwd();\n const configPath = resolve(cwd, opts.config ?? \"orm.config.ts\");\n const outDir = resolve(cwd, opts.out ?? \".theokit/schema\");\n\n const configResult = await loadConfigOrError(configPath);\n if (!configResult.ok) return configResult.code;\n\n const exporterResult = await loadExporterOrError(cwd);\n if (!exporterResult.ok) return exporterResult.code;\n\n const fresh = exporterResult.value.exportSchemas(configResult.value.schema);\n const committed = readCommittedSchemas(outDir);\n return reportSchemaDrift(computeSchemaDrift(fresh, committed));\n}\n","/**\n * Spawn `tsx --watch` against the resolved entry (T4.1, ADR D197).\n *\n * @internal\n */\n\nimport { type ChildProcess, spawn } from \"node:child_process\";\nimport { existsSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { join } from \"node:path\";\n\ninterface RunnerOptions {\n entry: string;\n cwd: string;\n envFile?: string;\n /** Pass `--watch` to tsx. Default true (production). Tests use false. */\n watch?: boolean;\n}\n\ninterface RunnerHandle {\n child: ChildProcess;\n exited: Promise<number>;\n}\n\n/**\n * Resolve the `tsx` CLI bin from CLI-package node_modules (NOT user's).\n * Ensures consistent tsx version regardless of consumer project state.\n */\nfunction resolveTsxBin(): string {\n const require = createRequire(import.meta.url);\n // tsx exports the CLI under `./cli` (subpath); verified against\n // tsx@4.22 package.json exports.\n return require.resolve(\"tsx/cli\");\n}\n\nexport function startRunner(opts: RunnerOptions): RunnerHandle {\n const tsxBin = resolveTsxBin();\n const args: string[] = [];\n if (opts.watch !== false) args.push(\"--watch\");\n const envFile = opts.envFile ?? \".env\";\n const envFileAbs = join(opts.cwd, envFile);\n if (existsSync(envFileAbs)) {\n args.push(\"--env-file\", envFile);\n }\n args.push(opts.entry);\n\n const child = spawn(process.execPath, [tsxBin, ...args], {\n cwd: opts.cwd,\n stdio: \"inherit\",\n env: process.env,\n });\n\n const exited = new Promise<number>((resolve) => {\n child.on(\"exit\", (code, signal) => {\n resolve(code ?? (signal !== null ? 130 : 0));\n });\n });\n\n // Forward SIGINT / SIGTERM gracefully. Give child 5s to clean up, then\n // SIGKILL.\n let killTimer: NodeJS.Timeout | undefined;\n const forward = (sig: NodeJS.Signals): void => {\n if (child.killed) return;\n child.kill(sig);\n killTimer = setTimeout(() => {\n if (!child.killed) child.kill(\"SIGKILL\");\n }, 5000);\n killTimer.unref();\n };\n process.on(\"SIGINT\", () => forward(\"SIGTERM\"));\n process.on(\"SIGTERM\", () => forward(\"SIGTERM\"));\n\n // Clear the kill timer once the child exits.\n child.on(\"exit\", () => {\n if (killTimer !== undefined) clearTimeout(killTimer);\n });\n\n return { child, exited };\n}\n","/**\n * `theokit dev` — run the project's entry under `tsx --watch` with stdio\n * forwarding and graceful shutdown (T4.1, ADR D197).\n *\n * @internal\n */\n\nimport pc from \"picocolors\";\n\nimport { resolveEntry } from \"../dev/entry-resolver.js\";\nimport { startRunner } from \"../dev/runner.js\";\n\nexport interface DevOptions {\n entry?: string;\n env?: string;\n}\n\nexport async function runDev(opts: DevOptions): Promise<number> {\n let entry: string;\n try {\n entry = resolveEntry(process.cwd(), opts.entry);\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n const code = (err as { code?: string }).code ?? \"unknown\";\n process.stderr.write(`${pc.red(\"error:\")} ${message}\\n ${pc.gray(`(code: ${code})`)}\\n`);\n return code === \"entry_not_found\" ? 2 : 1;\n }\n\n process.stdout.write(`${pc.cyan(\"[dev]\")} watching ${pc.bold(entry)} — Ctrl+C to stop.\\n`);\n\n let handle: ReturnType<typeof startRunner>;\n try {\n handle = startRunner({\n entry,\n cwd: process.cwd(),\n ...(opts.env !== undefined ? { envFile: opts.env } : {}),\n });\n } catch (err) {\n process.stderr.write(\n `${pc.red(\"error:\")} could not spawn tsx — ${err instanceof Error ? err.message : String(err)}\\n` +\n ` ${pc.gray(\"Hint: try `pnpm install` to repair @theokit/cli.\")}\\n`,\n );\n return 1;\n }\n\n const exitCode = await handle.exited;\n return exitCode;\n}\n","/**\n * Load + validate the user's `eval.config.{ts,mjs}` (T5.1).\n *\n * Uses dynamic `import()` so tsx handles `.ts` transpilation. Zod\n * validates the exported shape.\n *\n * @internal\n */\n\nimport { existsSync } from \"node:fs\";\nimport { isAbsolute, resolve } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nimport type { EvalConfig } from \"./types.js\";\n\nfunction configError(code: string, message: string): Error & { code?: string } {\n const err = new Error(message) as Error & { code?: string };\n err.code = code;\n return err;\n}\n\nasync function importConfig(abs: string): Promise<{ default?: unknown }> {\n try {\n return (await import(pathToFileURL(abs).href)) as { default?: unknown };\n } catch (cause) {\n throw configError(\n \"config_load_failed\",\n `Failed to load eval config (${abs}): ${cause instanceof Error ? cause.message : String(cause)}`,\n );\n }\n}\n\nfunction validateShape(cfg: Partial<EvalConfig>, abs: string): EvalConfig {\n if (!Array.isArray(cfg.dataset)) throwShapeError(abs, \"dataset\", \"must be an array\");\n if (!Array.isArray(cfg.scorers)) throwShapeError(abs, \"scorers\", \"must be an array\");\n if (cfg.agent === undefined || typeof cfg.agent !== \"object\") {\n throwShapeError(abs, \"agent\", \"must be an Agent.create() options object\");\n }\n return cfg as EvalConfig;\n}\n\nexport async function loadEvalConfig(cwd: string, configPath?: string): Promise<EvalConfig> {\n const relPath = configPath ?? \"./eval.config.ts\";\n const abs = isAbsolute(relPath) ? relPath : resolve(cwd, relPath);\n if (!existsSync(abs)) throw configError(\"config_not_found\", `Eval config not found: ${abs}`);\n\n const mod = await importConfig(abs);\n if (mod.default === undefined) {\n throw configError(\n \"config_no_default_export\",\n `Eval config (${abs}) must have a default export. Example: \\`export default { dataset, scorers, agent } satisfies EvalConfig;\\``,\n );\n }\n return validateShape(mod.default as Partial<EvalConfig>, abs);\n}\n\nfunction throwShapeError(abs: string, field: string, why: string): never {\n const err = new Error(`Eval config (${abs}) is invalid: field \"${field}\" ${why}.`) as Error & {\n code?: string;\n };\n err.code = \"config_invalid_shape\";\n throw err;\n}\n","/**\n * Markdown report emitter for `theokit eval` (T5.1).\n *\n * @internal\n */\n\nimport type { EvalRunResult } from \"./types.js\";\n\nexport function formatReport(result: EvalRunResult): string {\n const lines: string[] = [];\n lines.push(\"# Eval Report\");\n lines.push(\"\");\n lines.push(`- **Total rows:** ${result.aggregate.totalRows}`);\n lines.push(`- **Mean score:** ${result.aggregate.meanScore.toFixed(3)}`);\n lines.push(`- **Pass ratio (≥0.5):** ${(result.aggregate.passRatio * 100).toFixed(1)}%`);\n lines.push(`- **Error rows:** ${result.aggregate.errorRows}`);\n lines.push(\"\");\n lines.push(\"## Per-row results\");\n lines.push(\"\");\n lines.push(\"| # | Input | Output | Mean | Scores | Notes |\");\n lines.push(\"|---|---|---|---:|---|---|\");\n for (let i = 0; i < result.rows.length; i += 1) {\n const row = result.rows[i];\n if (row === undefined) continue;\n const input = escapeMd(truncate(row.input, 60));\n const output = row.error !== undefined ? `*error*` : escapeMd(truncate(row.output, 80));\n const mean = row.meanScore.toFixed(3);\n const scores =\n row.scores.length > 0\n ? row.scores\n .map(\n (s) =>\n `${s.name}=${s.score.toFixed(2)}${s.reason !== undefined ? ` (${escapeMd(s.reason)})` : \"\"}`,\n )\n .join(\"; \")\n : \"—\";\n const notes = row.error !== undefined ? escapeMd(row.error) : \"\";\n lines.push(`| ${i + 1} | ${input} | ${output} | ${mean} | ${scores} | ${notes} |`);\n }\n return `${lines.join(\"\\n\")}\\n`;\n}\n\nfunction truncate(s: string, max: number): string {\n if (s.length <= max) return s;\n return `${s.slice(0, max - 1)}…`;\n}\n\nfunction escapeMd(s: string): string {\n return s.replaceAll(\"|\", \"\\\\|\").replaceAll(\"\\n\", \" \");\n}\n","/**\n * Eval runner — D212 swap: now consumes `Eval.create + .run` from the SDK\n * (Adoption Roadmap #2). The public `EvalConfig` shape is unchanged —\n * D199 made this a forward-compatible move.\n *\n * Why preserve the CLI's `EvalRunResult` shape: the markdown report\n * generator + existing tests depend on it. The SDK's `EvalRun` is a\n * superset; we adapt at the boundary.\n *\n * @internal\n */\n\nimport { randomUUID } from \"node:crypto\";\nimport { Eval, type EvalRun, type Scorer as SdkScorer } from \"@theokit/sdk/eval\";\n\nimport type { EvalConfig, EvalRowResult, EvalRunResult } from \"./types.js\";\n\nexport async function runEvalSuite(config: EvalConfig): Promise<EvalRunResult> {\n if (config.dataset.length === 0) {\n return {\n rows: [],\n aggregate: { meanScore: 0, passRatio: 0, totalRows: 0, errorRows: 0 },\n };\n }\n\n // Translate CLI's EvalConfig → SDK's EvalOptions. Scorers map 1:1 because\n // both surfaces use the same `Scorer` type per D207.\n const sdkScorers = config.scorers.map((s) => ({\n name: s.name,\n score: s.score as SdkScorer,\n }));\n\n const run: EvalRun = await Eval.create({\n // Unique per-process name for telemetry correlation (D213). Use UUID\n // so concurrent CLI invocations on different terminals don't collide.\n name: `theokit-eval-${randomUUID().slice(0, 8)}`,\n dataset: config.dataset,\n scorers: sdkScorers,\n agent: config.agent,\n ...(config.concurrency !== undefined ? { concurrency: config.concurrency } : {}),\n }).run();\n\n // Adapt SDK's EvalRun to the CLI's existing EvalRunResult shape. The CLI\n // shape is simpler (no p50/p95/tokens — those live in SDK aggregate);\n // the markdown report consumes the simple shape.\n const rows: EvalRowResult[] = run.rows.map((r) => ({\n input: r.input,\n output: r.output,\n ...(r.expected !== undefined ? { expected: r.expected } : {}),\n scores: r.scores.map((s) => ({\n name: s.name,\n score: s.score,\n ...(s.reason !== undefined ? { reason: s.reason } : {}),\n })),\n meanScore: r.meanScore,\n ...(r.error !== undefined ? { error: r.error } : {}),\n }));\n\n return {\n rows,\n aggregate: {\n meanScore: run.aggregate.meanScore,\n passRatio: run.aggregate.passRatio,\n totalRows: run.aggregate.totalRows,\n errorRows: run.aggregate.errorRows,\n },\n };\n}\n","/**\n * `theokit eval` — minimal v1 eval runner (T5.1, ADR D199).\n *\n * EC-F MUST FIX (edge-case review 2026-05-22): validate `--output` path\n * via `safePathJoin` (D80) BEFORE writing. Without this, --output\n * `../../../etc/passwd-report.md` escapes cwd.\n *\n * @internal\n */\n\nimport { writeFileSync } from \"node:fs\";\nimport { dirname } from \"node:path\";\n\nimport { PathTraversalError, safePathJoin } from \"@theokit/sdk/path-safety\";\nimport pc from \"picocolors\";\n\nimport { loadEvalConfig } from \"../eval/config-loader.js\";\nimport { formatReport } from \"../eval/report.js\";\nimport { runEvalSuite } from \"../eval/runner.js\";\n\nexport interface EvalOptions {\n config?: string;\n output?: string;\n}\n\nfunction resolveOutputPath(cwd: string, output: string | undefined): string {\n const target = output ?? \"eval-report.md\";\n try {\n // EC-F: safePathJoin throws PathTraversalError if `target` escapes cwd.\n return safePathJoin(cwd, target);\n } catch (err) {\n if (err instanceof PathTraversalError) {\n const e = new Error(\n `--output path must be inside the current working directory. Got: ${target}`,\n ) as Error & { code?: string };\n e.code = \"invalid_output_path\";\n throw e;\n }\n throw err;\n }\n}\n\nfunction reportError(err: unknown, prefix = \"error:\"): { message: string; code: string } {\n const message = err instanceof Error ? err.message : String(err);\n const code = (err as { code?: string }).code ?? \"unknown\";\n process.stderr.write(`${pc.red(prefix)} ${message}\\n ${pc.gray(`(code: ${code})`)}\\n`);\n return { message, code };\n}\n\nasync function loadAndValidateConfig(\n cwd: string,\n configPath: string | undefined,\n): Promise<Awaited<ReturnType<typeof loadEvalConfig>> | { failureExit: number }> {\n try {\n return await loadEvalConfig(cwd, configPath);\n } catch (err) {\n const { code } = reportError(err);\n return { failureExit: code.startsWith(\"config_\") ? 2 : 1 };\n }\n}\n\nfunction writeReport(outputAbs: string, report: string): boolean {\n try {\n void dirname; // path is already resolved; dirname imported for future use\n writeFileSync(outputAbs, report, \"utf8\");\n return true;\n } catch (err) {\n process.stderr.write(\n `${pc.red(\"error:\")} could not write report to ${outputAbs} — ${err instanceof Error ? err.message : String(err)}\\n`,\n );\n return false;\n }\n}\n\nexport async function runEval(opts: EvalOptions): Promise<number> {\n const cwd = process.cwd();\n\n // EC-F: validate --output BEFORE loading config (cheaper failure).\n let outputAbs: string;\n try {\n outputAbs = resolveOutputPath(cwd, opts.output);\n } catch (err) {\n reportError(err);\n return 2;\n }\n\n const configOrErr = await loadAndValidateConfig(cwd, opts.config);\n if (\"failureExit\" in configOrErr) return configOrErr.failureExit;\n const config = configOrErr;\n\n process.stdout.write(\n `${pc.cyan(\"[eval]\")} running ${config.dataset.length} prompt(s) with ${config.scorers.length} scorer(s)...\\n`,\n );\n\n let result: Awaited<ReturnType<typeof runEvalSuite>>;\n try {\n result = await runEvalSuite(config);\n } catch (err) {\n process.stderr.write(\n `${pc.red(\"error:\")} eval run failed — ${err instanceof Error ? err.message : String(err)}\\n`,\n );\n return 1;\n }\n\n if (!writeReport(outputAbs, formatReport(result))) return 1;\n\n process.stdout.write(\n `\\n${pc.green(\"✓\")} ${result.aggregate.totalRows} rows · mean score ${result.aggregate.meanScore.toFixed(3)} · ` +\n `${(result.aggregate.passRatio * 100).toFixed(1)}% pass · ${result.aggregate.errorRows} error(s)\\n` +\n ` report: ${outputAbs}\\n`,\n );\n\n return 0;\n}\n","/**\n * Build-time version constants for @theokit/cli.\n *\n * `__SDK_VERSION__` is the sibling `@theokit/sdk` semver (NEVER\n * `workspace:*` — resolved at build time via tsup `define`). Used by\n * `init` templates to pin the SDK dep in scaffolded projects (EC-L\n * fix from edge-case review).\n *\n * `__CLI_VERSION__` is this package's semver. Exposed via `--version`.\n */\n\ndeclare const __SDK_VERSION__: string;\ndeclare const __CLI_VERSION__: string;\n\nexport const SDK_VERSION: string = __SDK_VERSION__;\nexport const CLI_VERSION: string = __CLI_VERSION__;\n","/**\n * Template registry for `theokit init` (T2.1, ADR D200).\n *\n * Three templates ship at v1: `minimal`, `ollama-local`, `telegram-bot`.\n * Each is a literal directory copied to `<dest>/` at scaffold time, with\n * `{{projectName}}` and `{{sdkVersion}}` substituted in text files.\n *\n * @internal\n */\n\ninterface TemplateMeta {\n readonly name: string;\n readonly description: string;\n readonly hint: string;\n}\n\nexport const TEMPLATES: ReadonlyArray<TemplateMeta> = [\n {\n name: \"minimal\",\n description: \"Smallest possible agent — one Agent.create + send + stream.\",\n hint: \"Set ANTHROPIC_API_KEY / OPENAI_API_KEY / OPENROUTER_API_KEY in .env.\",\n },\n {\n name: \"ollama-local\",\n description: \"100% local agent via Ollama (no remote API key required).\",\n hint: \"Requires `ollama serve` + `ollama pull llama3.2:3b`.\",\n },\n {\n name: \"telegram-bot\",\n description: \"Telegram bot via @theokit/gateway + grammy.\",\n hint: \"Get a bot token from @BotFather, set TELEGRAM_BOT_TOKEN in .env.\",\n },\n] as const;\n\nexport function findTemplate(name: string): TemplateMeta | undefined {\n return TEMPLATES.find((t) => t.name === name);\n}\n\nexport const DEFAULT_TEMPLATE = \"minimal\";\n","/**\n * EC-A MUST FIX (edge-case review 2026-05-22): validate project name\n * against npm rules BEFORE any filesystem write. npm rejects:\n * - uppercase letters\n * - spaces / special chars other than `.`, `-`, `_`\n * - leading dot / leading underscore (with exceptions)\n * - scoped names without `@<scope>/<name>` shape\n *\n * Without this, the onboarding flow breaks on FIRST `pnpm install`\n * with a cryptic npm error — and the user can't tell whether it's a\n * CLI bug or their input.\n *\n * @internal\n */\n\n/**\n * Returns `true` if the name is valid for use as the `name` field in\n * `package.json` (npm-compatible).\n *\n * Pattern derived from npm's own `validate-npm-package-name` rules\n * (simplified — we cover the common 99% case, not every edge of npm's\n * legacy compat).\n */\nconst NPM_NAME_RE = /^(?:@[a-z0-9-][a-z0-9._-]{0,213}\\/)?[a-z0-9][a-z0-9._-]{0,213}$/;\n\nconst RESERVED_NAMES = new Set([\"node_modules\", \"favicon.ico\", \"..\", \".\"]);\n\ninterface NameValidation {\n ok: boolean;\n reason?: string;\n}\n\nexport function validateProjectName(name: string): NameValidation {\n if (typeof name !== \"string\" || name.length === 0) {\n return { ok: false, reason: \"Project name is required.\" };\n }\n if (RESERVED_NAMES.has(name)) {\n return { ok: false, reason: `Name \"${name}\" is reserved.` };\n }\n if (name.length > 214) {\n return { ok: false, reason: \"Project name must be ≤ 214 characters.\" };\n }\n if (!NPM_NAME_RE.test(name)) {\n return {\n ok: false,\n reason:\n \"Invalid project name. Use lowercase letters, numbers, dashes, dots, or underscores. \" +\n \"Examples: `my-bot`, `@scope/my-bot`, `chat.bot`.\",\n };\n }\n return { ok: true };\n}\n","/**\n * Scaffold engine for `theokit init` (T2.1, ADRs D196 + D200).\n *\n * Walks `templates/<name>/`, copies files to `<dest>/`, performs\n * placeholder substitution (`{{projectName}}`, `{{sdkVersion}}`).\n *\n * **EC-B MUST FIX**: writes go to `<dest>.tmp-<random>/` first, then\n * atomic `renameSync` at the end. On any error mid-copy, the tmp dir\n * is cleaned up — `<dest>` is either fully scaffolded or absent.\n *\n * **EC-G MUST TEST**: symlinks at `<dest>` are rejected (path-guard).\n *\n * @internal\n */\n\nimport { randomBytes } from \"node:crypto\";\nimport {\n cpSync,\n existsSync,\n lstatSync,\n mkdirSync,\n readdirSync,\n readFileSync,\n renameSync,\n rmSync,\n writeFileSync,\n} from \"node:fs\";\nimport { dirname, isAbsolute, join, relative, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { SDK_VERSION } from \"../version.js\";\nimport { findTemplate } from \"./templates.js\";\nimport { validateProjectName } from \"./validate-name.js\";\n\ninterface ScaffoldOptions {\n projectName: string;\n template: string;\n cwd: string;\n force?: boolean;\n}\n\ninterface ScaffoldResult {\n destAbs: string;\n filesWritten: number;\n}\n\n/** Files NOT substituted (binary/strict-content). All current templates are text-only. */\nconst SUBSTITUTE_EXTS = new Set([\n \".ts\",\n \".tsx\",\n \".js\",\n \".mjs\",\n \".json\",\n \".md\",\n \".env\",\n \".example\",\n \".gitignore\",\n \".yml\",\n \".yaml\",\n]);\n\n/**\n * Resolve the bundled `templates/` directory. Works in both:\n * - dev (loaded from src/, templates at ../templates relative to src/init/)\n * - published (loaded from dist/, templates at ../../templates relative to dist/init/)\n */\nfunction resolveTemplatesRoot(): string {\n const here = fileURLToPath(new URL(\".\", import.meta.url));\n // Walk up looking for a `templates/` sibling.\n let dir = here;\n for (let i = 0; i < 5; i += 1) {\n const candidate = join(dir, \"templates\");\n if (existsSync(candidate) && lstatSync(candidate).isDirectory()) return candidate;\n const parent = dirname(dir);\n if (parent === dir) break;\n dir = parent;\n }\n throw new Error(\n `Could not locate bundled templates/ directory (searched up from ${here}). ` +\n `This usually means the published tarball was built without \"files\": [\"templates\"] (EC-C regression).`,\n );\n}\n\nfunction scaffoldError(code: string, message: string): Error & { code?: string } {\n const err = new Error(message) as Error & { code?: string };\n err.code = code;\n return err;\n}\n\nfunction validateNameAndTemplate(opts: ScaffoldOptions): void {\n const nameCheck = validateProjectName(opts.projectName);\n if (!nameCheck.ok) {\n throw scaffoldError(\"invalid_project_name\", nameCheck.reason ?? \"Invalid project name.\");\n }\n if (findTemplate(opts.template) === undefined) {\n throw scaffoldError(\"unknown_template\", `Unknown template \"${opts.template}\".`);\n }\n}\n\nfunction validateDest(cwdAbs: string, destAbs: string, projectName: string, force: boolean): void {\n const rel = relative(cwdAbs, destAbs);\n if (rel.startsWith(\"..\") || isAbsolute(rel)) {\n throw scaffoldError(\n \"invalid_dest\",\n `Project name \"${projectName}\" escapes the working directory.`,\n );\n }\n if (!existsSync(destAbs)) return;\n if (lstatSync(destAbs).isSymbolicLink()) {\n throw scaffoldError(\n \"dest_is_symlink\",\n `Destination \"${destAbs}\" is a symlink. Refuse to follow (EC-G safety).`,\n );\n }\n if (readdirSync(destAbs).length > 0 && !force) {\n throw scaffoldError(\n \"dest_not_empty\",\n `Destination \"${destAbs}\" already exists and is not empty. Pass --force to overwrite.`,\n );\n }\n}\n\nfunction atomicCopy(\n sourceAbs: string,\n tmpAbs: string,\n destAbs: string,\n projectName: string,\n): number {\n try {\n mkdirSync(tmpAbs, { recursive: true });\n const filesWritten = copyTreeWithSubstitution(sourceAbs, tmpAbs, {\n projectName,\n sdkVersion: SDK_VERSION,\n });\n if (existsSync(destAbs)) rmSync(destAbs, { recursive: true, force: true });\n renameSync(tmpAbs, destAbs);\n return filesWritten;\n } catch (err) {\n try {\n rmSync(tmpAbs, { recursive: true, force: true });\n } catch {\n // best-effort cleanup\n }\n throw err;\n }\n}\n\nexport async function scaffold(opts: ScaffoldOptions): Promise<ScaffoldResult> {\n validateNameAndTemplate(opts);\n const cwdAbs = resolve(opts.cwd);\n const destAbs = resolve(cwdAbs, opts.projectName);\n validateDest(cwdAbs, destAbs, opts.projectName, opts.force === true);\n\n const tmpAbs = `${destAbs}.tmp-${randomBytes(4).toString(\"hex\")}`;\n const sourceAbs = join(resolveTemplatesRoot(), opts.template);\n if (!existsSync(sourceAbs)) {\n throw new Error(\n `Template directory not found: ${sourceAbs}. Ensure the published package included templates/ (EC-C).`,\n );\n }\n\n const filesWritten = atomicCopy(sourceAbs, tmpAbs, destAbs, opts.projectName);\n return { destAbs, filesWritten };\n}\n\ninterface SubstitutionVars {\n projectName: string;\n sdkVersion: string;\n}\n\nfunction copyTreeWithSubstitution(srcDir: string, destDir: string, vars: SubstitutionVars): number {\n // For test-friendliness + substitution control, walk the tree ourselves\n // instead of using `cpSync` opaque copy.\n const counter = { count: 0 };\n walk(srcDir, destDir, vars, counter);\n // `cpSync` left in import list for future use (e.g., copying binary assets).\n void cpSync;\n return counter.count;\n}\n\nfunction walk(src: string, dst: string, vars: SubstitutionVars, counter: { count: number }): void {\n mkdirSync(dst, { recursive: true });\n for (const entry of readdirSync(src, { withFileTypes: true })) {\n const srcPath = join(src, entry.name);\n const dstPath = join(dst, entry.name);\n if (entry.isDirectory()) {\n walk(srcPath, dstPath, vars, counter);\n } else if (entry.isFile()) {\n copyFile(srcPath, dstPath, entry.name, vars);\n counter.count += 1;\n }\n }\n}\n\nfunction copyFile(srcPath: string, dstPath: string, name: string, vars: SubstitutionVars): void {\n const content = readFileSync(srcPath, \"utf8\");\n const ext = name.includes(\".\") ? `.${name.split(\".\").pop() ?? \"\"}` : \"\";\n const shouldSubstitute =\n SUBSTITUTE_EXTS.has(ext) || name === \".gitignore\" || name === \".env.example\";\n const out = shouldSubstitute\n ? content\n .replaceAll(\"{{projectName}}\", vars.projectName)\n .replaceAll(\"{{sdkVersion}}\", vars.sdkVersion)\n : content;\n writeFileSync(dstPath, out, \"utf8\");\n}\n","/**\n * `theokit init [project-name]` — scaffold a new project from a bundled\n * template (T2.1, ADRs D196 + D200).\n *\n * @internal\n */\n\nimport * as p from \"@clack/prompts\";\nimport pc from \"picocolors\";\n\nimport { scaffold } from \"../init/scaffold.js\";\nimport { DEFAULT_TEMPLATE, findTemplate, TEMPLATES } from \"../init/templates.js\";\n\nexport interface InitOptions {\n template?: string;\n force?: boolean;\n here?: boolean;\n yes?: boolean;\n}\n\nasync function resolveProjectName(\n projectName: string | undefined,\n skipPrompts: boolean,\n): Promise<string | { exitCode: number }> {\n if (projectName !== undefined && projectName.length > 0) return projectName;\n if (skipPrompts) {\n process.stderr.write(\n `${pc.red(\"error: \")}project name is required in non-interactive mode. Pass it as the positional argument: ${pc.cyan(\n \"theokit init <project-name>\",\n )}\\n`,\n );\n return { exitCode: 2 };\n }\n const answer = await p.text({\n message: \"Project name?\",\n placeholder: \"my-bot\",\n validate: (v) => (v.length === 0 ? \"Required.\" : undefined),\n });\n if (p.isCancel(answer)) return { exitCode: 0 };\n return answer;\n}\n\nasync function resolveTemplate(\n optsTemplate: string | undefined,\n skipPrompts: boolean,\n): Promise<string | { exitCode: number }> {\n let template = optsTemplate ?? DEFAULT_TEMPLATE;\n if (optsTemplate === undefined && !skipPrompts) {\n const answer = await p.select({\n message: \"Pick a template:\",\n options: TEMPLATES.map((t) => ({ value: t.name, label: t.name, hint: t.description })),\n initialValue: DEFAULT_TEMPLATE,\n });\n if (p.isCancel(answer)) return { exitCode: 0 };\n template = answer as string;\n }\n if (findTemplate(template) === undefined) {\n process.stderr.write(\n `${pc.red(\"error: \")}unknown template \"${template}\". Available: ${TEMPLATES.map((t) => t.name).join(\", \")}\\n`,\n );\n return { exitCode: 2 };\n }\n return template;\n}\n\nconst USER_ERROR_CODES = new Set([\n \"invalid_project_name\",\n \"dest_not_empty\",\n \"invalid_dest\",\n \"unknown_template\",\n]);\n\nasync function runScaffold(name: string, template: string, force: boolean): Promise<number> {\n try {\n const result = await scaffold({\n projectName: name,\n template,\n cwd: process.cwd(),\n ...(force ? { force: true } : {}),\n });\n process.stdout.write(\n `\\n${pc.green(\"✓\")} Scaffolded ${pc.bold(name)} (${template}) — ${result.filesWritten} files written.\\n` +\n `\\nNext steps:\\n` +\n ` ${pc.cyan(`cd ${name}`)}\\n` +\n ` ${pc.cyan(\"pnpm install\")}\\n` +\n ` ${pc.cyan(\"cp .env.example .env\")} ${pc.gray(\"# edit your keys\")}\\n` +\n ` ${pc.cyan(\"pnpm dev\")}\\n\\n` +\n `Template hint: ${findTemplate(template)?.hint ?? \"\"}\\n`,\n );\n return 0;\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n const code = (err as { code?: string }).code ?? \"unknown\";\n process.stderr.write(`${pc.red(\"error:\")} ${message}\\n ${pc.gray(`(code: ${code})`)}\\n`);\n return USER_ERROR_CODES.has(code) ? 2 : 1;\n }\n}\n\nexport async function runInit(projectName: string | undefined, opts: InitOptions): Promise<number> {\n const isTty = process.stdin.isTTY === true && process.stdout.isTTY === true;\n const skipPrompts = opts.yes === true || !isTty;\n\n const name = await resolveProjectName(projectName, skipPrompts);\n if (typeof name !== \"string\") return name.exitCode;\n\n const template = await resolveTemplate(opts.template, skipPrompts);\n if (typeof template !== \"string\") return template.exitCode;\n\n return runScaffold(name, template, opts.force === true);\n}\n","/**\n * Gateway adapter discovery for `theokit inspect` (T3.1).\n *\n * Unlike LLM providers (registry-based) and embedding adapters (single\n * catalog), gateway adapters live in separate workspace packages\n * (`@theokit/gateway-telegram`, `@theokit/gateway-discord`). We detect\n * presence by attempting to resolve the package; absent = not installed.\n *\n * @internal\n */\n\nimport { createRequire } from \"node:module\";\n\ninterface GatewayInfo {\n readonly name: string;\n readonly packageName: string;\n readonly installed: boolean;\n}\n\nconst KNOWN_GATEWAYS = [\n { name: \"telegram\", packageName: \"@theokit/gateway-telegram\" },\n { name: \"discord\", packageName: \"@theokit/gateway-discord\" },\n] as const;\n\nexport function listGatewayAdapters(): GatewayInfo[] {\n const require = createRequire(import.meta.url);\n return KNOWN_GATEWAYS.map((g) => {\n let installed = false;\n try {\n require.resolve(g.packageName);\n installed = true;\n } catch {\n installed = false;\n }\n return { name: g.name, packageName: g.packageName, installed };\n });\n}\n","/**\n * Plugin discovery for `theokit inspect` (T3.1, ADR D198).\n *\n * Read-only filesystem walk of `~/.theokit/plugins/` and\n * `<cwd>/.theokit/plugins/`. Does NOT execute plugin code (safe to run\n * in CI). Plugin manifests are markdown + YAML frontmatter per D77.\n *\n * @internal\n */\n\nimport { existsSync, lstatSync, readdirSync, readFileSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\n\ninterface PluginInfo {\n readonly name: string;\n readonly source: \"user-global\" | \"project\";\n readonly description?: string;\n readonly path: string;\n}\n\nfunction parseFrontmatter(content: string): { name?: string; description?: string } {\n const match = content.match(/^---\\n([\\s\\S]*?)\\n---/);\n if (match === null) return {};\n const out: { name?: string; description?: string } = {};\n for (const line of (match[1] ?? \"\").split(\"\\n\")) {\n const [k, ...rest] = line.split(\":\");\n if (k === undefined || rest.length === 0) continue;\n const key = k.trim();\n const val = rest.join(\":\").trim();\n if (key === \"name\") out.name = val;\n else if (key === \"description\") out.description = val;\n }\n return out;\n}\n\nfunction loadPluginManifest(\n root: string,\n name: string,\n source: PluginInfo[\"source\"],\n): PluginInfo | undefined {\n const manifestPath = join(root, name, \"PLUGIN.md\");\n if (!existsSync(manifestPath)) return undefined;\n try {\n const fm = parseFrontmatter(readFileSync(manifestPath, \"utf8\"));\n return {\n name: fm.name ?? name,\n source,\n ...(fm.description !== undefined ? { description: fm.description } : {}),\n path: manifestPath,\n };\n } catch {\n // Malformed manifest — skip silently (per D198 invariant).\n return undefined;\n }\n}\n\nfunction walkPluginDir(root: string, source: PluginInfo[\"source\"]): PluginInfo[] {\n if (!existsSync(root) || !lstatSync(root).isDirectory()) return [];\n const out: PluginInfo[] = [];\n for (const entry of readdirSync(root, { withFileTypes: true })) {\n if (!entry.isDirectory()) continue;\n const info = loadPluginManifest(root, entry.name, source);\n if (info !== undefined) out.push(info);\n }\n return out.sort((a, b) => a.name.localeCompare(b.name));\n}\n\nexport function listPlugins(cwd: string): PluginInfo[] {\n const userPlugins = walkPluginDir(join(homedir(), \".theokit\", \"plugins\"), \"user-global\");\n const projectPlugins = walkPluginDir(join(cwd, \".theokit\", \"plugins\"), \"project\");\n // EC-N (DOCUMENT): project entries override user-global on name collision (mirror of D162).\n const byName = new Map<string, PluginInfo>();\n for (const p of userPlugins) byName.set(p.name, p);\n for (const p of projectPlugins) byName.set(p.name, p);\n return Array.from(byName.values()).sort((a, b) => a.name.localeCompare(b.name));\n}\n","/**\n * `theokit inspect` — discovery of bundled SDK assets + installed\n * gateway adapters + user plugins (T3.1, ADR D198 + D201).\n *\n * Consumes `Theokit.inspect.*` (D201) — the SDK's public introspection\n * API — to avoid `ERR_PACKAGE_PATH_NOT_EXPORTED` against published\n * installs (EC-E fix).\n *\n * @internal\n */\n\nimport { Theokit } from \"@theokit/sdk\";\nimport pc from \"picocolors\";\n\nimport { listGatewayAdapters } from \"../inspect/gateway.js\";\nimport { listPlugins } from \"../inspect/plugins.js\";\n\nexport interface InspectOptions {\n json?: boolean;\n filter?: string;\n}\n\ninterface InspectResult {\n providers: ReturnType<typeof Theokit.inspect.builtinProviders>;\n embeddingAdapters: ReturnType<typeof Theokit.inspect.embeddingAdapters>;\n gateways: ReturnType<typeof listGatewayAdapters>;\n plugins: ReturnType<typeof listPlugins>;\n}\n\nfunction collect(filter: string | undefined, cwd: string): InspectResult {\n const all = filter === undefined || filter === \"all\";\n const empty = { providers: [], embeddingAdapters: [], gateways: [], plugins: [] };\n const result: InspectResult = empty as InspectResult;\n if (all || filter === \"providers\") {\n result.providers = Theokit.inspect.builtinProviders();\n }\n if (all || filter === \"adapters\") {\n result.embeddingAdapters = Theokit.inspect.embeddingAdapters();\n }\n if (all || filter === \"gateway\") {\n result.gateways = listGatewayAdapters();\n }\n if (all || filter === \"plugins\") {\n result.plugins = listPlugins(cwd);\n }\n return result;\n}\n\nfunction formatProviders(providers: InspectResult[\"providers\"]): string[] {\n if (providers.length === 0) return [];\n const lines = [pc.bold(pc.cyan(\"Builtin LLM providers\"))];\n for (const p of providers) {\n const aliases =\n p.aliases !== undefined && p.aliases.length > 0 ? ` (aliases: ${p.aliases.join(\", \")})` : \"\";\n lines.push(\n ` • ${pc.green(p.name)}${aliases} — ${p.apiMode} · auth: ${p.authType} · ${p.baseUrl}`,\n );\n }\n lines.push(\"\");\n return lines;\n}\n\nfunction formatEmbeddings(adapters: InspectResult[\"embeddingAdapters\"]): string[] {\n if (adapters.length === 0) return [];\n const lines = [pc.bold(pc.cyan(\"Memory embedding adapters\"))];\n for (const a of adapters) {\n lines.push(` • ${pc.green(a.id)} — ${a.transport} · default model: ${a.defaultModel}`);\n }\n lines.push(\"\");\n return lines;\n}\n\nfunction formatGateways(gateways: InspectResult[\"gateways\"]): string[] {\n if (gateways.length === 0) return [];\n const lines = [pc.bold(pc.cyan(\"Gateway adapters\"))];\n for (const g of gateways) {\n const status = g.installed ? pc.green(\"installed\") : pc.gray(\"not installed\");\n lines.push(` • ${pc.green(g.name)} (${g.packageName}) — ${status}`);\n }\n lines.push(\"\");\n return lines;\n}\n\nfunction formatPlugins(r: InspectResult): string[] {\n if (r.plugins.length > 0) {\n const lines = [pc.bold(pc.cyan(\"User plugins\"))];\n for (const pl of r.plugins) {\n const desc = pl.description !== undefined ? ` — ${pl.description}` : \"\";\n lines.push(` • ${pc.green(pl.name)} [${pl.source}]${desc}`);\n }\n return lines;\n }\n if (r.providers.length > 0 || r.embeddingAdapters.length > 0) {\n return [pc.gray(\"(no user plugins found in ~/.theokit/plugins/ or ./.theokit/plugins/)\")];\n }\n return [];\n}\n\nfunction formatHuman(r: InspectResult): string {\n const lines = [\n ...formatProviders(r.providers),\n ...formatEmbeddings(r.embeddingAdapters),\n ...formatGateways(r.gateways),\n ...formatPlugins(r),\n ];\n return `${lines.join(\"\\n\")}\\n`;\n}\n\nexport async function runInspect(opts: InspectOptions): Promise<number> {\n // Validate filter.\n const VALID_FILTERS = new Set([\"all\", \"providers\", \"adapters\", \"gateway\", \"plugins\"]);\n if (opts.filter !== undefined && !VALID_FILTERS.has(opts.filter)) {\n process.stderr.write(\n `${pc.red(\"error:\")} invalid --filter \"${opts.filter}\". Valid: ${Array.from(VALID_FILTERS).join(\", \")}\\n`,\n );\n return 2;\n }\n\n const result = collect(opts.filter, process.cwd());\n if (opts.json === true) {\n process.stdout.write(`${JSON.stringify(result, null, 2)}\\n`);\n } else {\n process.stdout.write(formatHuman(result));\n }\n return 0;\n}\n","/**\n * `theokit setup gworkspace` — Google Workspace credentials walkthrough.\n *\n * Pre-flight (EC-1 + EC-2): validate `credentials.json` is a Desktop-type\n * OAuth client BEFORE shelling out to upstream `google-workspace-mcp setup`.\n * Upstream does not surface this distinction up-front and users hit\n * cryptic 401s during `accounts add` otherwise.\n *\n * After validation, this wraps `npx google-workspace-mcp setup` and\n * `accounts add` so the SDK-branded experience matches `theokit init` /\n * `theokit dev`.\n *\n * Per ADR D344 v1.2: credentials live at upstream's default `~/.google-mcp/`.\n * Per ADR D345 v1.2: OAuth is fully delegated to upstream.\n *\n * @internal\n */\n\nimport { spawn } from \"node:child_process\";\nimport { chmodSync, existsSync, mkdirSync, readFileSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { isAbsolute, join, resolve } from \"node:path\";\n\nimport pc from \"picocolors\";\n\nconst UPSTREAM_PACKAGE = \"google-workspace-mcp@^2.3.0\";\nconst DEFAULT_CONFIG_DIR = join(homedir(), \".google-mcp\");\nconst DEFAULT_CREDS_FILENAME = \"credentials.json\";\n\nconst PROBE_TIMEOUT_MS = 10_000;\n\nexport interface GworkspaceSetupOptions {\n /** Comma-separated list of scopes to grant write access to (calendar,drive,sheets,docs,gmail). */\n writable?: string;\n /** When true, runs `npx google-workspace-mcp status` after setup. */\n probe?: boolean;\n /** When true, refuses interactive prompts. */\n nonInteractive?: boolean;\n /** Override path to credentials.json. Default ~/.google-mcp/credentials.json. */\n credentialsPath?: string;\n}\n\ntype CredentialsCheckOutcome =\n | { kind: \"ok\"; path: string }\n | { kind: \"missing\"; path: string }\n | { kind: \"malformed\"; path: string; reason: string }\n | { kind: \"wrong_type\"; path: string }\n | { kind: \"rejected_path\"; path: string; reason: string };\n\n/**\n * Validate the file at `credentialsPath`. Public for tests.\n *\n * - EC-2: rejects malformed JSON with a parse-error message.\n * - EC-1 (MUST FIX): rejects Web-type OAuth client (has `.web` key instead of `.installed`).\n * - Path traversal: rejects paths outside the user's home (defense in depth — D80).\n *\n * @internal\n */\nfunction isPathTraversal(p: string): boolean {\n return (\n p.includes(\"../\") ||\n p.includes(\"..\\\\\") ||\n p === \"..\" ||\n p.startsWith(\"../\") ||\n p.startsWith(\"..\\\\\")\n );\n}\n\nfunction readAndParseJson(\n resolved: string,\n): { kind: \"ok\"; parsed: unknown } | { kind: \"malformed\"; reason: string } {\n let raw: string;\n try {\n raw = readFileSync(resolved, \"utf8\");\n } catch (err) {\n return { kind: \"malformed\", reason: err instanceof Error ? err.message : String(err) };\n }\n try {\n return { kind: \"ok\", parsed: JSON.parse(raw) };\n } catch (err) {\n return { kind: \"malformed\", reason: err instanceof Error ? err.message : String(err) };\n }\n}\n\nfunction validateOAuthShape(parsed: unknown, resolved: string): CredentialsCheckOutcome {\n if (parsed === null || typeof parsed !== \"object\") {\n return { kind: \"malformed\", path: resolved, reason: \"expected JSON object\" };\n }\n const obj = parsed as { installed?: unknown; web?: unknown };\n if (obj.installed === undefined && obj.web !== undefined) {\n return { kind: \"wrong_type\", path: resolved };\n }\n if (typeof obj.installed !== \"object\" || obj.installed === null) {\n return {\n kind: \"malformed\",\n path: resolved,\n reason: \"missing `installed` block (expected Desktop OAuth client shape)\",\n };\n }\n return { kind: \"ok\", path: resolved };\n}\n\nexport function checkCredentialsFile(credentialsPath: string): CredentialsCheckOutcome {\n if (isPathTraversal(credentialsPath)) {\n return { kind: \"rejected_path\", path: credentialsPath, reason: \"path traversal\" };\n }\n const resolved = resolve(credentialsPath);\n if (!existsSync(resolved)) return { kind: \"missing\", path: resolved };\n\n const parseResult = readAndParseJson(resolved);\n if (parseResult.kind === \"malformed\") {\n return { kind: \"malformed\", path: resolved, reason: parseResult.reason };\n }\n return validateOAuthShape(parseResult.parsed, resolved);\n}\n\nfunction describeOutcome(o: CredentialsCheckOutcome): string {\n switch (o.kind) {\n case \"missing\":\n return (\n `${pc.red(\"error: \")}credentials.json not found at ${o.path}.\\n\\n` +\n `To create it:\\n` +\n ` 1. Go to https://console.cloud.google.com/apis/credentials\\n` +\n ` 2. Create OAuth 2.0 Client ID — Application type: ${pc.bold(\"Desktop application\")}\\n` +\n ` 3. Download the JSON and save it as ${o.path}\\n`\n );\n case \"malformed\":\n return `${pc.red(\"error: \")}credentials.json could not be parsed: ${o.reason}\\n path: ${o.path}\\n`;\n case \"wrong_type\":\n return (\n `${pc.red(\"error: \")}This looks like a ${pc.bold('\"Web application\"')} OAuth client.\\n\\n` +\n `Re-create as ${pc.bold('\"Desktop application\"')} in Google Cloud Console:\\n` +\n ` https://console.cloud.google.com/apis/credentials\\n` +\n `(Click \"+ Create credentials\" → \"OAuth client ID\" → Application type: ${pc.bold(\"Desktop app\")}.)\\n\\n` +\n `Then re-download and save to: ${o.path}\\n`\n );\n case \"rejected_path\":\n return `${pc.red(\"error: \")}credentials path rejected: ${o.reason}\\n path: ${o.path}\\n`;\n case \"ok\":\n return \"\";\n }\n}\n\nfunction resolveCredentialsPath(opts: GworkspaceSetupOptions): string {\n if (opts.credentialsPath !== undefined && opts.credentialsPath.length > 0) {\n return isAbsolute(opts.credentialsPath) ? opts.credentialsPath : resolve(opts.credentialsPath);\n }\n return join(DEFAULT_CONFIG_DIR, DEFAULT_CREDS_FILENAME);\n}\n\nasync function runProbeMode(): Promise<number> {\n process.stdout.write(`\\n${pc.cyan(\"[probe]\")} running upstream connectivity check...\\n`);\n const code = await spawnUpstream([\"status\"], PROBE_TIMEOUT_MS);\n if (code !== 0) {\n process.stderr.write(\n `${pc.yellow(\"warn: \")}upstream status reported a non-zero exit (${code}). Run \\`npx ${UPSTREAM_PACKAGE} accounts list\\` to inspect.\\n`,\n );\n return code;\n }\n return 0;\n}\n\nasync function runInteractiveSetup(): Promise<number> {\n process.stdout.write(\n `\\n${pc.cyan(\"→\")} delegating to upstream installer (${UPSTREAM_PACKAGE})...\\n`,\n );\n const setupCode = await spawnUpstream([\"setup\"]);\n if (setupCode !== 0) {\n process.stderr.write(`${pc.red(\"error: \")}upstream setup exited with code ${setupCode}.\\n`);\n return setupCode;\n }\n process.stdout.write(`\\n${pc.cyan(\"→\")} adding default account...\\n`);\n const addCode = await spawnUpstream([\"accounts\", \"add\", \"default\"]);\n if (addCode !== 0) {\n process.stderr.write(\n `${pc.red(\"error: \")}upstream \\`accounts add\\` exited with code ${addCode}.\\n`,\n );\n return addCode;\n }\n return 0;\n}\n\nexport async function runGworkspaceSetup(opts: GworkspaceSetupOptions): Promise<number> {\n const credentialsPath = resolveCredentialsPath(opts);\n\n // Ensure parent dir exists (mode 0700 where POSIX honored).\n try {\n mkdirSync(DEFAULT_CONFIG_DIR, { recursive: true, mode: 0o700 });\n } catch {\n // Non-fatal — if mkdir fails the credentials check will catch it.\n }\n\n // EC-1 + EC-2 + path-traversal — validate BEFORE shelling out.\n const outcome = checkCredentialsFile(credentialsPath);\n if (outcome.kind !== \"ok\") {\n process.stderr.write(describeOutcome(outcome));\n return 2;\n }\n\n // Defense-in-depth: best-effort chmod 600 on POSIX. Windows fails silently.\n try {\n chmodSync(outcome.path, 0o600);\n } catch {\n // EC-6 (DOCUMENT): non-fatal on Windows / FAT32. Carry on.\n }\n\n process.stdout.write(\n `${pc.green(\"✓\")} credentials validated: ${outcome.path}\\n${pc.dim(\" shape: Desktop OAuth client (installed block present)\")}\\n`,\n );\n\n if (opts.probe === true) return runProbeMode();\n\n if (opts.nonInteractive === true) {\n process.stdout.write(\n `${pc.dim(\"non-interactive mode: credentials staged. Next step (manual):\")}\\n ${pc.cyan(`npx ${UPSTREAM_PACKAGE} accounts add default`)}\\n`,\n );\n return 0;\n }\n\n const interactiveCode = await runInteractiveSetup();\n if (interactiveCode !== 0) return interactiveCode;\n\n if (typeof opts.writable === \"string\" && opts.writable.length > 0) {\n process.stdout.write(\n `\\n${pc.yellow(\"note:\")} you passed --writable=${opts.writable}. ` +\n `The upstream MCP server does not narrow scopes — all scopes are granted at consent.\\n` +\n `Write tools are gated at runtime by ${pc.bold(\"googleWorkspace({ writable: true })\")} in your code.\\n`,\n );\n }\n\n process.stdout.write(\n `\\n${pc.green(\"✓\")} gworkspace setup complete.\\n` +\n `${pc.dim(' Next: import { googleWorkspace } from \"@theokit/skills-google-workspace\".')}\\n`,\n );\n return 0;\n}\n\n/** Spawn `npx <UPSTREAM_PACKAGE> ...args` with an optional timeout. Returns exit code. @internal */\nfunction spawnUpstream(args: string[], timeoutMs?: number): Promise<number> {\n return new Promise((resolveExit) => {\n const child = spawn(\"npx\", [\"-y\", UPSTREAM_PACKAGE, ...args], {\n stdio: \"inherit\",\n env: process.env,\n });\n let timer: NodeJS.Timeout | undefined;\n if (timeoutMs !== undefined) {\n timer = setTimeout(() => {\n process.stderr.write(\n `${pc.yellow(\"warn: \")}upstream did not finish within ${timeoutMs}ms — killing.\\n`,\n );\n try {\n child.kill(\"SIGTERM\");\n } catch {\n // already dead\n }\n }, timeoutMs);\n }\n child.on(\"error\", (err) => {\n if (timer !== undefined) clearTimeout(timer);\n process.stderr.write(\n `${pc.red(\"error: \")}failed to spawn npx: ${err instanceof Error ? err.message : String(err)}\\n`,\n );\n resolveExit(1);\n });\n child.on(\"exit\", (code) => {\n if (timer !== undefined) clearTimeout(timer);\n resolveExit(code ?? 1);\n });\n });\n}\n","/**\n * `theokit setup <domain>` — top-level CLI verb dispatcher.\n *\n * Currently knows ONE domain: `gworkspace`. Future domains (`notion`,\n * `linear`, etc.) plug in the same way.\n *\n * Per ADR D346, `setup` is reserved for credential staging + connectivity\n * probes for third-party integrations. The flow shells out to the upstream\n * tool's own setup whenever that's safer than re-implementing OAuth.\n *\n * @internal\n */\n\nimport pc from \"picocolors\";\n\nimport { type GworkspaceSetupOptions, runGworkspaceSetup } from \"../setup/gworkspace.js\";\n\nexport interface SetupOptions {\n writable?: string;\n probe?: boolean;\n credentialsPath?: string;\n nonInteractive?: boolean;\n}\n\nexport async function runSetup(domain: string, opts: SetupOptions): Promise<number> {\n if (domain === \"gworkspace\") {\n const gworkspaceOpts: GworkspaceSetupOptions = {\n writable: opts.writable,\n probe: opts.probe === true,\n nonInteractive: opts.nonInteractive === true,\n ...(opts.credentialsPath !== undefined ? { credentialsPath: opts.credentialsPath } : {}),\n };\n return await runGworkspaceSetup(gworkspaceOpts);\n }\n process.stderr.write(\n `${pc.red(\"error: \")}unknown setup domain '${domain}'. Supported domains: gworkspace.\\n`,\n );\n return 2;\n}\n","/**\n * `theokit tasks {list|inspect|cancel}` — operator-facing observability\n * for the SDK Task registry (Adoption Roadmap gap #2; ADRs D361-D374).\n *\n * Reads from the JsonFileTaskStore at `$THEOKIT_HOME/tasks/` (default\n * fallback `cwd/.theokit/tasks/`). Cross-process cancel is best-effort:\n * the CLI marks `cancelRequested: true` in the handle file, and the\n * owning process honors it at the next checkpoint (EC-7).\n *\n * Exit codes (consistent with the other subcommands in this package):\n * 0 — success\n * 2 — permission / I/O failure\n * 3 — invalid task id grammar (D368)\n * 4 — task not found\n */\n\nimport { join } from \"node:path\";\n\nimport type { TaskFilter, TaskHandle, TaskState } from \"@theokit/sdk\";\nimport { JsonFileTaskStore, type TaskStore } from \"@theokit/sdk/task-store\";\n\n// Local copy of the id grammar — keeps the CLI dependency surface minimal\n// and matches D368 (`^[a-z0-9][a-z0-9_-]*$`). Adapters use reserved\n// prefixes wf-/b-/cron-; the CLI always allows them.\nconst TASK_ID_GRAMMAR = /^[a-z0-9][a-z0-9_-]*$/;\nfunction isValidTaskId(id: string): boolean {\n return TASK_ID_GRAMMAR.test(id);\n}\n\nexport interface TasksListOptions {\n state?: string;\n kind?: string;\n json?: boolean;\n}\n\nexport interface TasksInspectOptions {\n json?: boolean;\n}\n\nexport interface TasksCancelOptions {\n reason?: string;\n}\n\nfunction resolveStoreDir(): string {\n const fromEnv = process.env.THEOKIT_HOME;\n if (typeof fromEnv === \"string\" && fromEnv.length > 0) return join(fromEnv, \"tasks\");\n return join(process.cwd(), \".theokit\", \"tasks\");\n}\n\nfunction openStore(): TaskStore {\n const dir = resolveStoreDir();\n try {\n return new JsonFileTaskStore(dir);\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === \"EACCES\") {\n process.stderr.write(`tasks: cannot access store dir ${dir}: permission denied\\n`);\n throw new Error(\"permission_denied\");\n }\n throw err;\n }\n}\n\nfunction formatTable(handles: readonly TaskHandle[]): string {\n if (handles.length === 0) return \"No tasks found.\";\n const rows = handles.map((h) => ({\n id: h.id.slice(0, 24).padEnd(24),\n kind: h.kind.padEnd(8),\n state: h.state.padEnd(9),\n age: `${Math.floor((Date.now() - h.submittedAt) / 1000)}s`.padStart(6),\n }));\n const header = \"ID KIND STATE AGE\";\n const lines = rows.map((r) => `${r.id} ${r.kind} ${r.state} ${r.age}`);\n return [header, ...lines].join(\"\\n\");\n}\n\nasync function listHandles(store: TaskStore, opts: TasksListOptions): Promise<TaskHandle[]> {\n const filter: TaskFilter = {\n ...(opts.state !== undefined ? { state: opts.state as TaskState } : {}),\n ...(opts.kind !== undefined ? { kind: opts.kind as TaskHandle[\"kind\"] } : {}),\n };\n return store.list(filter);\n}\n\nexport async function runTasksList(opts: TasksListOptions): Promise<number> {\n let store: TaskStore;\n try {\n store = openStore();\n } catch {\n return 2;\n }\n const handles = await listHandles(store, opts);\n if (opts.json === true) {\n process.stdout.write(`${JSON.stringify(handles, null, 2)}\\n`);\n } else {\n process.stdout.write(`${formatTable(handles)}\\n`);\n }\n return 0;\n}\n\nfunction printHandleDetails(handle: TaskHandle): void {\n process.stdout.write(`id: ${handle.id}\\n`);\n process.stdout.write(`kind: ${handle.kind}\\n`);\n process.stdout.write(`state: ${handle.state}\\n`);\n process.stdout.write(`submittedAt: ${new Date(handle.submittedAt).toISOString()}\\n`);\n if (handle.startedAt !== undefined) {\n process.stdout.write(`startedAt: ${new Date(handle.startedAt).toISOString()}\\n`);\n }\n if (handle.finishedAt !== undefined) {\n process.stdout.write(`finishedAt: ${new Date(handle.finishedAt).toISOString()}\\n`);\n process.stdout.write(`result: ${JSON.stringify(handle.result)}\\n`);\n }\n if (handle.erroredAt !== undefined) {\n process.stdout.write(`erroredAt: ${new Date(handle.erroredAt).toISOString()}\\n`);\n process.stdout.write(`error: ${JSON.stringify(handle.error)}\\n`);\n }\n if (handle.cancelledAt !== undefined) {\n process.stdout.write(`cancelledAt: ${new Date(handle.cancelledAt).toISOString()}\\n`);\n }\n if (handle.cancelRequested === true) {\n process.stdout.write(`cancelRequested: true (awaiting owning process)\\n`);\n }\n}\n\nexport async function runTasksInspect(id: string, opts: TasksInspectOptions): Promise<number> {\n if (!isValidTaskId(id)) {\n process.stderr.write(`tasks: invalid id grammar: ${id}\\n`);\n return 3;\n }\n let store: TaskStore;\n try {\n store = openStore();\n } catch {\n return 2;\n }\n const handle = await store.get(id);\n if (handle === undefined) {\n process.stderr.write(`tasks: not found: ${id}\\n`);\n return 4;\n }\n if (opts.json === true) {\n process.stdout.write(`${JSON.stringify(handle, null, 2)}\\n`);\n } else {\n printHandleDetails(handle);\n }\n return 0;\n}\n\nexport async function runTasksCancel(id: string, _opts: TasksCancelOptions): Promise<number> {\n if (!isValidTaskId(id)) {\n process.stderr.write(`tasks: invalid id grammar: ${id}\\n`);\n return 3;\n }\n let store: TaskStore;\n try {\n store = openStore();\n } catch {\n return 2;\n }\n const handle = await store.get(id);\n if (handle === undefined) {\n process.stderr.write(`tasks: not found: ${id}\\n`);\n return 4;\n }\n if (handle.state === \"finished\" || handle.state === \"error\" || handle.state === \"cancelled\") {\n process.stdout.write(`task already terminal (state=${handle.state})\\n`);\n return 0;\n }\n if (handle.state === \"queued\") {\n // Direct transition (no owning process AbortController to flip).\n const cancelledAt = Date.now();\n await store.update(id, (h) => ({ ...h, state: \"cancelled\", cancelledAt }));\n process.stdout.write(`task ${id} cancelled (was queued)\\n`);\n return 0;\n }\n // Running: set cancelRequested flag; owning process honors at next checkpoint.\n await store.update(id, (h) => ({ ...h, cancelRequested: true }));\n process.stdout.write(\n `cancel requested for task ${id}; the owning process will honor it at the next checkpoint\\n`,\n );\n return 0;\n}\n","/**\n * Top-level CLI dispatcher via commander (ADR D194).\n *\n * Subcommands: `init`, `dev`, `inspect`, `eval`, `setup`, `acp`, `tasks`.\n *\n * Exit codes:\n * - 0 → success\n * - 1 → unknown error\n * - 2 → user error (bad flags, unknown subcommand suggestion)\n *\n * @internal\n */\n\nimport { Command } from \"commander\";\n\nimport { type AcpOptions, runAcp } from \"./commands/acp.js\";\nimport {\n runDbCheckSchemaDrift,\n runDbExportSchema,\n runDbGenerate,\n runDbMigrate,\n runDbPush,\n runDbStudio,\n} from \"./commands/db.js\";\nimport { type DevOptions, runDev } from \"./commands/dev.js\";\nimport { type EvalOptions, runEval } from \"./commands/eval.js\";\nimport { type InitOptions, runInit } from \"./commands/init.js\";\nimport { type InspectOptions, runInspect } from \"./commands/inspect.js\";\nimport { runSetup, type SetupOptions } from \"./commands/setup.js\";\nimport {\n runTasksCancel,\n runTasksInspect,\n runTasksList,\n type TasksCancelOptions,\n type TasksInspectOptions,\n type TasksListOptions,\n} from \"./commands/tasks.js\";\nimport { CLI_VERSION, SDK_VERSION } from \"./version.js\";\n\nfunction registerSubcommands(program: Command, setExit: (n: number) => void): void {\n program\n .command(\"init [project-name]\")\n .description(\"Scaffold a new agent project from a bundled template.\")\n .option(\"-t, --template <name>\", \"Template name: minimal | ollama-local | telegram-bot\")\n .option(\"-f, --force\", \"Overwrite a non-empty destination directory\")\n .option(\"--here\", \"Scaffold into the current directory\")\n .option(\"-y, --yes\", \"Skip interactive prompts (CI mode)\")\n .action(async (projectName: string | undefined, opts: InitOptions) => {\n setExit(await runInit(projectName, opts));\n });\n\n program\n .command(\"dev\")\n .description(\"Run the agent entry point under tsx --watch (hot-reload).\")\n .option(\"--entry <path>\", \"Entry file (default: src/index.ts or package.main)\")\n .option(\"--env <path>\", \"Env file to load (default: .env)\")\n .action(async (opts: DevOptions) => {\n setExit(await runDev(opts));\n });\n\n program\n .command(\"inspect\")\n .description(\"List builtin providers, embedding adapters, gateways, and plugins.\")\n .option(\"--json\", \"Emit machine-readable JSON instead of the human tree view\")\n .option(\n \"--filter <kind>\",\n \"Narrow output to one kind: providers | adapters | gateway | plugins\",\n )\n .action(async (opts: InspectOptions) => {\n setExit(await runInspect(opts));\n });\n\n program\n .command(\"eval\")\n .description(\"Run an eval suite against a real LLM and emit a markdown report.\")\n .option(\"-c, --config <path>\", \"Eval config file (default: ./eval.config.ts)\")\n .option(\"-o, --output <path>\", \"Report output path (default: ./eval-report.md)\")\n .action(async (opts: EvalOptions) => {\n setExit(await runEval(opts));\n });\n\n program\n .command(\"acp\")\n .description(\n \"Launch a stdio Agent Client Protocol (ACP) server pointing at the entry file's default-exported agent. Used by Zed/Cursor/Claude Desktop. ADRs D349-D360.\",\n )\n .option(\"--entry <path>\", \"Entry file (default: src/index.ts or package.main)\")\n .option(\"--permission <mode>\", \"Tool permission mode: ask | auto | deny (default: ask)\")\n .option(\"--trusted-tools <list>\", \"Comma-separated tool names that bypass ask\")\n .option(\"--permission-timeout-ms <ms>\", \"Permission request timeout in ms (default: 60000)\")\n .action(async (opts: AcpOptions) => {\n setExit(await runAcp(opts));\n });\n\n program\n .command(\"setup <domain>\")\n .description(\n \"Stage credentials + connectivity probe for a third-party integration. Domains: gworkspace (Google Workspace).\",\n )\n .option(\n \"--writable <products>\",\n \"Comma-separated products to grant write access (e.g., 'drive,calendar')\",\n )\n .option(\"--probe\", \"Run upstream connectivity check after staging credentials\")\n .option(\n \"--credentials-path <path>\",\n \"Override path to credentials.json (default: ~/.google-mcp/credentials.json)\",\n )\n .option(\"--non-interactive\", \"Refuse interactive prompts; suitable for CI\")\n .action(async (domain: string, opts: SetupOptions) => {\n setExit(await runSetup(domain, opts));\n });\n\n const db = program\n .command(\"db\")\n .description(\n \"Database tooling — wraps drizzle-kit (generate/migrate/studio/push) and emits polyglot JSON Schema 7 (export-schema/check-schema-drift). Consumes orm.config.ts that default-exports { schema }.\",\n );\n\n db.command(\"generate\")\n .description(\"drizzle-kit generate — generate SQL migrations from your schema diff\")\n .action(() => {\n setExit(runDbGenerate());\n });\n db.command(\"migrate\")\n .description(\"drizzle-kit migrate — apply pending migrations to the database\")\n .action(() => {\n setExit(runDbMigrate());\n });\n db.command(\"studio\")\n .description(\"drizzle-kit studio — launch the embedded data browser UI\")\n .action(() => {\n setExit(runDbStudio());\n });\n db.command(\"push\")\n .description(\"drizzle-kit push — direct schema sync (dangerous in prod; prototypes only)\")\n .action(() => {\n setExit(runDbPush());\n });\n db.command(\"export-schema\")\n .description(\n \"Emit JSON Schema 7 per entity to .theokit/schema/{entity}.schema.json (polyglot consumers).\",\n )\n .option(\"-o, --out <dir>\", \"Output directory (default: .theokit/schema)\")\n .option(\"-c, --config <path>\", \"Path to orm.config (default: orm.config.ts)\")\n .action(async (opts: { out?: string; config?: string }) => {\n setExit(await runDbExportSchema(opts));\n });\n db.command(\"check-schema-drift\")\n .description(\"Re-emit schemas and diff against committed copies. Exit 1 on drift.\")\n .option(\"-o, --out <dir>\", \"Output directory (default: .theokit/schema)\")\n .option(\"-c, --config <path>\", \"Path to orm.config (default: orm.config.ts)\")\n .action(async (opts: { out?: string; config?: string }) => {\n setExit(await runDbCheckSchemaDrift(opts));\n });\n\n const tasks = program\n .command(\"tasks\")\n .description(\"Observe SDK Task registry (list / inspect / cancel)\");\n\n tasks\n .command(\"list\")\n .description(\"List tasks in the local JsonFileTaskStore\")\n .option(\"--state <state>\", \"Filter by state (queued|running|finished|error|cancelled)\")\n .option(\"--kind <kind>\", \"Filter by kind (run|batch|workflow|cron|custom)\")\n .option(\"--json\", \"Emit machine-readable JSON instead of the table view\")\n .action(async (opts: TasksListOptions) => {\n setExit(await runTasksList(opts));\n });\n\n tasks\n .command(\"inspect <id>\")\n .description(\"Inspect a single task by id\")\n .option(\"--json\", \"Emit machine-readable JSON\")\n .action(async (id: string, opts: TasksInspectOptions) => {\n setExit(await runTasksInspect(id, opts));\n });\n\n tasks\n .command(\"cancel <id>\")\n .description(\"Cancel a task (best-effort cross-process via cancelRequested flag)\")\n .option(\"--reason <reason>\", \"Cancellation reason recorded in the registry\")\n .action(async (id: string, opts: TasksCancelOptions) => {\n setExit(await runTasksCancel(id, opts));\n });\n}\n\nfunction mapCommanderExitCode(code: string | undefined, fallback: number): number {\n if (code === \"commander.help\" || code === \"commander.helpDisplayed\") return 0;\n if (code === \"commander.version\") return 0;\n if (code === \"commander.unknownCommand\" || code === \"commander.unknownOption\") return 2;\n return fallback > 0 ? fallback : 2;\n}\n\nexport async function main(argv: ReadonlyArray<string>): Promise<number> {\n const program = new Command();\n program\n .name(\"theokit\")\n .description(\"Developer CLI for @theokit/sdk — init, dev, inspect, eval.\")\n .version(CLI_VERSION, \"-v, --version\", \"Print the CLI version and exit.\")\n .addHelpText(\n \"after\",\n `\\nBundled SDK version: ${SDK_VERSION}\\nAdoption Roadmap #1. See https://github.com/usetheo/theokit-sdk for docs.\\n\\nExit codes: 0=success · 1=unknown error · 2=user error.\\n`,\n );\n\n let exitCode = 0;\n const setExit = (code: number): void => {\n exitCode = code;\n };\n registerSubcommands(program, setExit);\n\n // Commander throws CommanderError after `exitOverride` runs (by design)\n // to interrupt further processing. We set exitCode in the callback and\n // swallow the throw — the caller (bin shim) reads our returned code.\n let commanderHandledIt = false;\n program.exitOverride((err) => {\n commanderHandledIt = true;\n exitCode = mapCommanderExitCode(err.code, err.exitCode);\n });\n\n try {\n await program.parseAsync(argv as string[]);\n } catch (err) {\n if (commanderHandledIt) {\n // exitCode already set by exitOverride callback.\n return exitCode;\n }\n process.stderr.write(`theokit: ${err instanceof Error ? err.message : String(err)}\\n`);\n return 1;\n }\n return exitCode;\n}\n","#!/usr/bin/env node\n/**\n * `theokit` executable shim. Imports `main` from the package and\n * forwards `process.argv`, then exits with the resolved code.\n *\n * The shebang above is preserved by tsup's banner config; a\n * `chmod +x` is applied post-build via `prepare` script so the\n * file is directly executable in published installs.\n *\n * @internal\n */\n\nimport { main } from \"../main.js\";\n\nmain(process.argv)\n .then((code) => process.exit(code))\n .catch((err) => {\n process.stderr.write(\n `theokit: unhandled error — ${err instanceof Error ? err.message : String(err)}\\n`,\n );\n process.exit(1);\n });\n"]}