specrails-core 5.2.3 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/README.md +3 -0
  2. package/bin/specrails-core.mjs +5 -0
  3. package/dist/agent-runtime/capabilities.d.ts +27 -0
  4. package/dist/agent-runtime/capabilities.js +73 -0
  5. package/dist/agent-runtime/capabilities.js.map +1 -0
  6. package/dist/agent-runtime/cli-executor.d.ts +43 -0
  7. package/dist/agent-runtime/cli-executor.js +405 -0
  8. package/dist/agent-runtime/cli-executor.js.map +1 -0
  9. package/dist/agent-runtime/cli-process.d.ts +32 -0
  10. package/dist/agent-runtime/cli-process.js +159 -0
  11. package/dist/agent-runtime/cli-process.js.map +1 -0
  12. package/dist/agent-runtime/cli.d.ts +39 -0
  13. package/dist/agent-runtime/cli.js +216 -0
  14. package/dist/agent-runtime/cli.js.map +1 -0
  15. package/dist/agent-runtime/codex-schema.d.ts +4 -0
  16. package/dist/agent-runtime/codex-schema.js +31 -0
  17. package/dist/agent-runtime/codex-schema.js.map +1 -0
  18. package/dist/agent-runtime/config.d.ts +11 -0
  19. package/dist/agent-runtime/config.js +263 -0
  20. package/dist/agent-runtime/config.js.map +1 -0
  21. package/dist/agent-runtime/core-host.d.ts +41 -0
  22. package/dist/agent-runtime/core-host.js +132 -0
  23. package/dist/agent-runtime/core-host.js.map +1 -0
  24. package/dist/agent-runtime/durable-store.d.ts +22 -0
  25. package/dist/agent-runtime/durable-store.js +205 -0
  26. package/dist/agent-runtime/durable-store.js.map +1 -0
  27. package/dist/agent-runtime/efficiency-summary.d.ts +67 -0
  28. package/dist/agent-runtime/efficiency-summary.js +52 -0
  29. package/dist/agent-runtime/efficiency-summary.js.map +1 -0
  30. package/dist/agent-runtime/efficiency-types.d.ts +60 -0
  31. package/dist/agent-runtime/efficiency-types.js +8 -0
  32. package/dist/agent-runtime/efficiency-types.js.map +1 -0
  33. package/dist/agent-runtime/efficiency.d.ts +5 -0
  34. package/dist/agent-runtime/efficiency.js +35 -0
  35. package/dist/agent-runtime/efficiency.js.map +1 -0
  36. package/dist/agent-runtime/evaluation-corpus.d.ts +13 -0
  37. package/dist/agent-runtime/evaluation-corpus.js +8 -0
  38. package/dist/agent-runtime/evaluation-corpus.js.map +1 -0
  39. package/dist/agent-runtime/evaluation.d.ts +43 -0
  40. package/dist/agent-runtime/evaluation.js +171 -0
  41. package/dist/agent-runtime/evaluation.js.map +1 -0
  42. package/dist/agent-runtime/executor-types.d.ts +125 -0
  43. package/dist/agent-runtime/executor-types.js +29 -0
  44. package/dist/agent-runtime/executor-types.js.map +1 -0
  45. package/dist/agent-runtime/executors.d.ts +23 -0
  46. package/dist/agent-runtime/executors.js +48 -0
  47. package/dist/agent-runtime/executors.js.map +1 -0
  48. package/dist/agent-runtime/gemini-policy.d.ts +8 -0
  49. package/dist/agent-runtime/gemini-policy.js +36 -0
  50. package/dist/agent-runtime/gemini-policy.js.map +1 -0
  51. package/dist/agent-runtime/graph/artifacts.d.ts +26 -0
  52. package/dist/agent-runtime/graph/artifacts.js +205 -0
  53. package/dist/agent-runtime/graph/artifacts.js.map +1 -0
  54. package/dist/agent-runtime/graph/nodes.d.ts +39 -0
  55. package/dist/agent-runtime/graph/nodes.js +321 -0
  56. package/dist/agent-runtime/graph/nodes.js.map +1 -0
  57. package/dist/agent-runtime/graph/review-policy.d.ts +18 -0
  58. package/dist/agent-runtime/graph/review-policy.js +32 -0
  59. package/dist/agent-runtime/graph/review-policy.js.map +1 -0
  60. package/dist/agent-runtime/graph/roles.d.ts +47 -0
  61. package/dist/agent-runtime/graph/roles.js +190 -0
  62. package/dist/agent-runtime/graph/roles.js.map +1 -0
  63. package/dist/agent-runtime/graph/state.d.ts +83 -0
  64. package/dist/agent-runtime/graph/state.js +23 -0
  65. package/dist/agent-runtime/graph/state.js.map +1 -0
  66. package/dist/agent-runtime/graph-checkpointer.d.ts +61 -0
  67. package/dist/agent-runtime/graph-checkpointer.js +137 -0
  68. package/dist/agent-runtime/graph-checkpointer.js.map +1 -0
  69. package/dist/agent-runtime/index.d.ts +20 -0
  70. package/dist/agent-runtime/index.js +21 -0
  71. package/dist/agent-runtime/index.js.map +1 -0
  72. package/dist/agent-runtime/kimi-acp.d.ts +11 -0
  73. package/dist/agent-runtime/kimi-acp.js +190 -0
  74. package/dist/agent-runtime/kimi-acp.js.map +1 -0
  75. package/dist/agent-runtime/openai-executor.d.ts +26 -0
  76. package/dist/agent-runtime/openai-executor.js +192 -0
  77. package/dist/agent-runtime/openai-executor.js.map +1 -0
  78. package/dist/agent-runtime/openspec-tool-server.d.ts +1 -0
  79. package/dist/agent-runtime/openspec-tool-server.js +37 -0
  80. package/dist/agent-runtime/openspec-tool-server.js.map +1 -0
  81. package/dist/agent-runtime/openspec.d.ts +123 -0
  82. package/dist/agent-runtime/openspec.js +263 -0
  83. package/dist/agent-runtime/openspec.js.map +1 -0
  84. package/dist/agent-runtime/prompts.d.ts +44 -0
  85. package/dist/agent-runtime/prompts.js +310 -0
  86. package/dist/agent-runtime/prompts.js.map +1 -0
  87. package/dist/agent-runtime/provider-diagnostic.d.ts +2 -0
  88. package/dist/agent-runtime/provider-diagnostic.js +25 -0
  89. package/dist/agent-runtime/provider-diagnostic.js.map +1 -0
  90. package/dist/agent-runtime/repository-context.d.ts +25 -0
  91. package/dist/agent-runtime/repository-context.js +100 -0
  92. package/dist/agent-runtime/repository-context.js.map +1 -0
  93. package/dist/agent-runtime/review-context.d.ts +14 -0
  94. package/dist/agent-runtime/review-context.js +41 -0
  95. package/dist/agent-runtime/review-context.js.map +1 -0
  96. package/dist/agent-runtime/role-routing.d.ts +10 -0
  97. package/dist/agent-runtime/role-routing.js +29 -0
  98. package/dist/agent-runtime/role-routing.js.map +1 -0
  99. package/dist/agent-runtime/role-state.d.ts +19 -0
  100. package/dist/agent-runtime/role-state.js +24 -0
  101. package/dist/agent-runtime/role-state.js.map +1 -0
  102. package/dist/agent-runtime/runtime-identity.d.ts +11 -0
  103. package/dist/agent-runtime/runtime-identity.js +33 -0
  104. package/dist/agent-runtime/runtime-identity.js.map +1 -0
  105. package/dist/agent-runtime/tool-event.d.ts +3 -0
  106. package/dist/agent-runtime/tool-event.js +24 -0
  107. package/dist/agent-runtime/tool-event.js.map +1 -0
  108. package/dist/agent-runtime/verification-plan.d.ts +55 -0
  109. package/dist/agent-runtime/verification-plan.js +206 -0
  110. package/dist/agent-runtime/verification-plan.js.map +1 -0
  111. package/dist/agent-runtime/workflow-types.d.ts +226 -0
  112. package/dist/agent-runtime/workflow-types.js +2 -0
  113. package/dist/agent-runtime/workflow-types.js.map +1 -0
  114. package/dist/agent-runtime/workflow.d.ts +17 -0
  115. package/dist/agent-runtime/workflow.js +636 -0
  116. package/dist/agent-runtime/workflow.js.map +1 -0
  117. package/dist/agent-runtime/workspace-tools.d.ts +29 -0
  118. package/dist/agent-runtime/workspace-tools.js +282 -0
  119. package/dist/agent-runtime/workspace-tools.js.map +1 -0
  120. package/dist/installer/cli.d.ts +35 -0
  121. package/dist/installer/cli.js +3 -0
  122. package/dist/installer/cli.js.map +1 -1
  123. package/dist/installer/commands/doctor.d.ts +27 -0
  124. package/dist/installer/commands/framework.d.ts +85 -0
  125. package/dist/installer/commands/init.d.ts +147 -0
  126. package/dist/installer/commands/update.d.ts +56 -0
  127. package/dist/installer/commands/v5-migration.d.ts +32 -0
  128. package/dist/installer/phases/framework-lifecycle.d.ts +53 -0
  129. package/dist/installer/phases/install-config.d.ts +64 -0
  130. package/dist/installer/phases/manifest.d.ts +45 -0
  131. package/dist/installer/phases/prereqs.d.ts +51 -0
  132. package/dist/installer/phases/provider-detect.d.ts +89 -0
  133. package/dist/installer/phases/scaffold.d.ts +211 -0
  134. package/dist/installer/phases/scaffold.js +39 -109
  135. package/dist/installer/phases/scaffold.js.map +1 -1
  136. package/dist/installer/runtime/kimi.d.ts +84 -0
  137. package/dist/installer/runtime/pipeline-state.d.ts +351 -0
  138. package/dist/installer/runtime/pipeline-state.js +514 -41
  139. package/dist/installer/runtime/pipeline-state.js.map +1 -1
  140. package/dist/installer/util/errors.d.ts +46 -0
  141. package/dist/installer/util/exec.d.ts +41 -0
  142. package/dist/installer/util/fs.d.ts +153 -0
  143. package/dist/installer/util/git.d.ts +44 -0
  144. package/dist/installer/util/install-transaction.d.ts +29 -0
  145. package/dist/installer/util/logger.d.ts +31 -0
  146. package/dist/installer/util/paths.d.ts +34 -0
  147. package/dist/installer/util/prompts.d.ts +23 -0
  148. package/dist/installer/util/registry.d.ts +174 -0
  149. package/dist/installer/util/template.d.ts +23 -0
  150. package/docs/README.md +1 -0
  151. package/docs/agent-runtime-efficiency.md +65 -0
  152. package/docs/agent-runtime.md +339 -0
  153. package/integration-contract.json +80 -7
  154. package/package.json +20 -2
  155. package/schemas/agent-runtime.schema.json +77 -0
  156. package/schemas/fixtures/runtime-efficiency-summary.v1.json +790 -0
  157. package/templates/codex-skills/batch-implement/SKILL.md +33 -58
  158. package/templates/codex-skills/implement/SKILL.md +21 -124
  159. package/templates/codex-skills/retry/SKILL.md +8 -34
  160. package/templates/commands/specrails/batch-implement.md +21 -16
  161. package/templates/commands/specrails/implement.md +17 -276
  162. package/templates/commands/specrails/retry.md +6 -34
  163. package/templates/gemini-commands/batch-implement.toml +34 -28
  164. package/templates/gemini-commands/implement.toml +34 -55
  165. package/templates/gemini-commands/retry.toml +10 -16
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-executor.js","sourceRoot":"","sources":["../../src/agent-runtime/cli-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export interface CliInvocation {
2
+ command: string;
3
+ args: string[];
4
+ stdin?: string;
5
+ }
6
+ export interface CliDuplexControl {
7
+ send(line: string): void;
8
+ complete(): void;
9
+ }
10
+ export interface CliProcessOptions {
11
+ cwd: string;
12
+ signal?: AbortSignal;
13
+ timeoutMs: number;
14
+ env?: NodeJS.ProcessEnv;
15
+ onLine?: (line: string) => void;
16
+ duplex?: (control: CliDuplexControl) => void;
17
+ }
18
+ export interface CliProcessResult {
19
+ stdout: string;
20
+ stderr: string;
21
+ exitCode: number;
22
+ }
23
+ export type CliProcessRunner = (invocation: CliInvocation, options: CliProcessOptions) => Promise<CliProcessResult>;
24
+ /** Kimi print mode requires -p. Standard npm shims can transport even large prompts via stdin without cmd.exe parsing them. */
25
+ export declare function windowsKimiInvocation(invocation: CliInvocation, options?: {
26
+ env?: NodeJS.ProcessEnv;
27
+ exists?: (file: string) => boolean;
28
+ read?: (file: string) => string;
29
+ node?: string;
30
+ }): CliInvocation;
31
+ export declare function cliProcessEnvironment(base: NodeJS.ProcessEnv, platform?: NodeJS.Platform): NodeJS.ProcessEnv;
32
+ export declare const runCliProcess: CliProcessRunner;
@@ -0,0 +1,159 @@
1
+ import crossSpawn from 'cross-spawn';
2
+ import { execFile } from 'node:child_process';
3
+ import { existsSync, readFileSync } from 'node:fs';
4
+ import path from 'node:path';
5
+ import { StringDecoder } from 'node:string_decoder';
6
+ import { AgentExecutionError } from './executor-types.js';
7
+ const PROMPT_MARKER = '__SPECRAILS_KIMI_STDIN__';
8
+ const BOOTSTRAP = "const fs=require('node:fs');const u=require('node:url');const entry=process.argv[1];const i=process.argv.lastIndexOf('-p')+1;if(i<2||process.argv[i]!=='__SPECRAILS_KIMI_STDIN__')throw Error('Missing prompt marker');process.argv[i]=fs.readFileSync(0,'utf8');import(u.pathToFileURL(entry).href).catch(()=>{process.exitCode=1});";
9
+ /** Kimi print mode requires -p. Standard npm shims can transport even large prompts via stdin without cmd.exe parsing them. */
10
+ export function windowsKimiInvocation(invocation, options = {}) {
11
+ const env = options.env ?? process.env, exists = options.exists ?? existsSync;
12
+ const search = Object.entries(env).reverse().find(([key]) => key.toLowerCase() === 'path')?.[1] ?? '';
13
+ let binary;
14
+ for (const entry of search.split(';').map(value => value.trim().replace(/^"(.*)"$/, '$1')).filter(Boolean)) {
15
+ binary = ['kimi.cmd', 'kimi.bat', 'kimi.exe', 'kimi.com'].map(name => path.win32.join(entry, name)).find(exists);
16
+ if (binary)
17
+ break;
18
+ }
19
+ if (!binary)
20
+ throw new AgentExecutionError('Kimi executable was not found on Windows PATH', 'provider_not_found');
21
+ if (/\.(cmd|bat)$/i.test(binary)) {
22
+ const shim = (options.read ?? (file => readFileSync(file, 'utf8')))(binary);
23
+ const entry = /%dp0%[\\/]([^"\r\n]*?\.(?:mjs|cjs|js))["']?\s+%\*/i.exec(shim)?.[1];
24
+ if (!entry)
25
+ throw new AgentExecutionError('Unsupported Kimi Windows shim; install the standard npm distribution or a native executable', 'unsupported_windows_shim');
26
+ const localNode = path.win32.join(path.win32.dirname(binary), 'node.exe');
27
+ // process.execPath can be the Desktop pkg sidecar, not a Node interpreter.
28
+ const nodeBinary = options.node ?? (exists(localNode) ? localNode : 'node');
29
+ const args = [...invocation.args], index = args.indexOf('-p') + 1;
30
+ if (index === 0)
31
+ return { command: nodeBinary, args: [path.win32.join(path.win32.dirname(binary), entry), ...args], stdin: invocation.stdin };
32
+ const prompt = args[index];
33
+ args[index] = PROMPT_MARKER;
34
+ return { command: nodeBinary, args: ['-e', BOOTSTRAP, path.win32.join(path.win32.dirname(binary), entry), ...args], stdin: prompt };
35
+ }
36
+ if (JSON.stringify(invocation.args).length + binary.length > 28_000)
37
+ throw new AgentExecutionError('Kimi prompt exceeds the native Windows command line limit; use the standard npm Kimi installation', 'windows_argument_limit');
38
+ return { ...invocation, command: binary };
39
+ }
40
+ export function cliProcessEnvironment(base, platform = process.platform) {
41
+ const env = { ...base };
42
+ // A nested invocation must not accidentally inherit the surrounding workflow's transport.
43
+ delete env.CLAUDECODE;
44
+ delete env.SPECRAILS_INVOCATION_ID;
45
+ if (platform === 'win32') {
46
+ for (const name of ['SystemRoot', 'windir', 'ComSpec', 'PATH']) {
47
+ const aliases = Object.keys(env).filter(key => key.toLowerCase() === name.toLowerCase());
48
+ // Match cross-spawn's last-defined alias precedence, then supply one key
49
+ // to both executable lookup and the Windows child's environment block.
50
+ const value = aliases.length ? env[aliases[aliases.length - 1]] : undefined;
51
+ for (const key of aliases)
52
+ delete env[key];
53
+ if (value !== undefined)
54
+ env[name] = value;
55
+ }
56
+ env.SystemRoot ??= env.windir ?? 'C:\\Windows';
57
+ env.windir ??= env.SystemRoot;
58
+ env.ComSpec ??= path.win32.join(env.SystemRoot, 'System32', 'cmd.exe');
59
+ }
60
+ return env;
61
+ }
62
+ export const runCliProcess = async (raw, options) => {
63
+ if (options.signal?.aborted)
64
+ throw new AgentExecutionError('Agent cancelled', 'aborted');
65
+ const env = cliProcessEnvironment(options.env ?? process.env);
66
+ const invocation = process.platform === 'win32' && raw.command === 'kimi' ? windowsKimiInvocation(raw, { env }) : raw;
67
+ return new Promise((resolve, reject) => {
68
+ const child = crossSpawn(invocation.command, invocation.args, { cwd: options.cwd, env, stdio: ['pipe', 'pipe', 'pipe'], shell: false, windowsHide: true, detached: process.platform !== 'win32' });
69
+ let stdout = '', stderr = '', pending = '', failure, completed = false;
70
+ const decoder = new StringDecoder('utf8');
71
+ let termination;
72
+ const terminate = () => {
73
+ if (termination || !child.pid)
74
+ return;
75
+ const pid = child.pid;
76
+ termination = process.platform === 'win32'
77
+ ? new Promise(done => {
78
+ const taskkill = path.win32.join(env.SystemRoot ?? 'C:\\Windows', 'System32', 'taskkill.exe');
79
+ execFile(taskkill, ['/PID', String(pid), '/T', '/F'], { windowsHide: true, env, timeout: 10_000 }, () => { try {
80
+ child.kill('SIGKILL');
81
+ }
82
+ catch { /* exited */ } done(); });
83
+ })
84
+ : Promise.resolve().then(() => { try {
85
+ process.kill(-pid, 'SIGKILL');
86
+ }
87
+ catch {
88
+ try {
89
+ child.kill('SIGKILL');
90
+ }
91
+ catch { /* exited */ }
92
+ } });
93
+ };
94
+ const fail = (error) => { failure ??= error; terminate(); };
95
+ const abort = () => fail(new AgentExecutionError('Agent cancelled', 'aborted'));
96
+ const timer = setTimeout(() => fail(new AgentExecutionError('Agent timed out', 'timeout')), options.timeoutMs);
97
+ options.signal?.addEventListener('abort', abort, { once: true });
98
+ if (options.signal?.aborted)
99
+ abort();
100
+ child.stdout?.on('data', (chunk) => {
101
+ if (failure)
102
+ return;
103
+ const text = decoder.write(chunk);
104
+ stdout += text;
105
+ pending += text;
106
+ if (Buffer.byteLength(stdout) > 8 * 1024 * 1024) {
107
+ fail(new AgentExecutionError('CLI output exceeded 8 MiB', 'output_limit'));
108
+ return;
109
+ }
110
+ for (;;) {
111
+ const newline = pending.indexOf('\n');
112
+ if (newline < 0)
113
+ break;
114
+ const line = pending.slice(0, newline).replace(/\r$/, '');
115
+ pending = pending.slice(newline + 1);
116
+ try {
117
+ options.onLine?.(line);
118
+ }
119
+ catch (error) {
120
+ fail(error instanceof Error ? error : new Error('CLI stream observer failed'));
121
+ }
122
+ }
123
+ });
124
+ child.stderr?.on('data', (chunk) => { stderr = (stderr + chunk.toString('utf8')).slice(-32_768); });
125
+ child.stdin?.on('error', () => { });
126
+ child.once('error', error => { failure ??= new AgentExecutionError(`Cannot launch ${raw.command}: ${error.message}`, 'provider_spawn_error'); });
127
+ child.once('close', (code) => {
128
+ clearTimeout(timer);
129
+ options.signal?.removeEventListener('abort', abort);
130
+ void (termination ?? Promise.resolve()).then(() => {
131
+ if (failure) {
132
+ reject(failure);
133
+ return;
134
+ }
135
+ try {
136
+ if (pending)
137
+ options.onLine?.(pending);
138
+ }
139
+ catch (error) {
140
+ reject(error);
141
+ return;
142
+ }
143
+ resolve({ stdout, stderr, exitCode: completed ? 0 : code ?? -1 });
144
+ });
145
+ });
146
+ if (options.duplex) {
147
+ try {
148
+ options.duplex({ send: line => { if (!failure && !completed)
149
+ child.stdin?.write(line + '\n', 'utf8'); }, complete: () => { completed = true; terminate(); } });
150
+ }
151
+ catch (error) {
152
+ fail(error instanceof Error ? error : new Error('Duplex initialization failed'));
153
+ }
154
+ }
155
+ else
156
+ child.stdin?.end(invocation.stdin ?? '', 'utf8');
157
+ });
158
+ };
159
+ //# sourceMappingURL=cli-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-process.js","sourceRoot":"","sources":["../../src/agent-runtime/cli-process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { WorkflowState } from './workflow-types.js';
2
+ /** The host-facing summary: phase status, pending interrupts and usage without accumulated outputs. */
3
+ export declare function compactState(state: WorkflowState | null): {
4
+ runId: string;
5
+ traceId: string;
6
+ status: import("./workflow-types.js").WorkflowStatus;
7
+ nextStep: string | null;
8
+ updatedAt: string;
9
+ error: string | undefined;
10
+ pendingApproval: {
11
+ stepId: string;
12
+ requestedAt: string;
13
+ grantedAt?: string;
14
+ reason?: string;
15
+ } | undefined;
16
+ pendingQuestion: {
17
+ stepId: string;
18
+ requestedAt: string;
19
+ question: string;
20
+ answeredAt?: string;
21
+ answer?: string;
22
+ } | undefined;
23
+ usage: {
24
+ costUsd: number | null;
25
+ inputTokens: number | null;
26
+ outputTokens: number | null;
27
+ knownCostUsd: number;
28
+ knownTokens: number;
29
+ durationMs: number;
30
+ };
31
+ steps: {
32
+ [k: string]: {
33
+ status: "pending" | "running" | "interrupted" | import("./workflow-types.js").StepStatus;
34
+ visits: number;
35
+ };
36
+ };
37
+ metrics: import("./efficiency-types.js").RuntimeEfficiency;
38
+ } | null;
39
+ export declare function runRuntimeCommand(flags: Record<string, string | boolean>, positionals: string[], emit?: (value: unknown) => void): Promise<number>;
@@ -0,0 +1,216 @@
1
+ import { runEvaluation } from './evaluation.js';
2
+ import { efficiencySummary } from './efficiency-summary.js';
3
+ import { rolePromptDefaults } from './prompts.js';
4
+ import { existsSync, mkdirSync, readFileSync, realpathSync, writeFileSync } from 'node:fs';
5
+ import path from 'node:path';
6
+ import { pathToFileURL } from 'node:url';
7
+ import { parseArgs } from '../installer/cli.js';
8
+ import { readVerificationEvidence, inspectPipeline, pipelineStateDirectory, validatePipelineContext } from '../installer/runtime/pipeline-state.js';
9
+ import { normalizeRuntimeConfig, validateRuntimeConfig } from './config.js';
10
+ import { CORE_PACKAGE_VERSION, CORE_WORKFLOW_VERSION, RUNTIME_API_VERSION, coreRuntimeIdentity, preflightCoreWorkflow, runCoreWorkflow } from './core-host.js';
11
+ import { sameRuntimeIdentity } from './runtime-identity.js';
12
+ import { readWorkflowState } from './workflow.js';
13
+ import { runtimeEfficiency } from './efficiency.js';
14
+ import { configuredCapabilities } from './capabilities.js';
15
+ import { createExecutorRegistry } from './executors.js';
16
+ function read(file) { return JSON.parse(readFileSync(file, 'utf8')); }
17
+ async function readStdin() {
18
+ const chunks = [];
19
+ let size = 0;
20
+ for await (const chunk of process.stdin) {
21
+ const bytes = Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk));
22
+ size += bytes.length;
23
+ if (size > 2 * 1024 * 1024)
24
+ throw new Error('Runtime configuration stdin exceeds 2 MiB');
25
+ chunks.push(bytes);
26
+ }
27
+ return JSON.parse(Buffer.concat(chunks).toString('utf8'));
28
+ }
29
+ /** The host-facing summary: phase status, pending interrupts and usage without accumulated outputs. */
30
+ export function compactState(state) {
31
+ if (!state)
32
+ return null;
33
+ return {
34
+ runId: state.runId, traceId: state.traceId, status: state.status, nextStep: state.nextStep, updatedAt: state.updatedAt,
35
+ error: state.error, pendingApproval: state.pendingApproval, pendingQuestion: state.pendingQuestion, usage: state.usage,
36
+ steps: Object.fromEntries(Object.entries(state.steps).map(([id, step]) => [id, { status: step.status, visits: step.visits }])),
37
+ metrics: runtimeEfficiency(state),
38
+ };
39
+ }
40
+ function compactPipeline(pipeline) {
41
+ if (!pipeline)
42
+ return null;
43
+ const receipt = pipeline.verification.receipt;
44
+ return {
45
+ schemaVersion: pipeline.schemaVersion, runId: pipeline.runId, change: pipeline.change,
46
+ stateDir: pipeline.stateDir, resumePhase: pipeline.resumePhase, phases: pipeline.phases,
47
+ completion: pipeline.completion, acceptance: { valid: pipeline.acceptance.valid, status: pipeline.acceptance.status, reasons: pipeline.acceptance.reasons },
48
+ verification: {
49
+ ...pipeline.verification,
50
+ receipt: receipt ? { ...receipt, commands: receipt.commands.map(command => ({ evidenceId: command.evidenceId, key: command.key, repositoryId: command.repositoryId, label: command.label, exitCode: command.exitCode, durationMs: command.durationMs, disposition: command.disposition, reuseReason: command.reuseReason })) } : undefined,
51
+ },
52
+ };
53
+ }
54
+ function stringFlag(flags, key) {
55
+ const value = flags[key];
56
+ if (typeof value !== 'string' || !value)
57
+ throw new Error('Missing --' + key);
58
+ return value;
59
+ }
60
+ function optionalString(flags, key) {
61
+ const value = flags[key];
62
+ if (value === undefined)
63
+ return undefined;
64
+ if (typeof value !== 'string' || !value.trim())
65
+ throw new Error('--' + key + ' needs a nonempty value');
66
+ return value;
67
+ }
68
+ function list(flags, key) {
69
+ const value = flags[key];
70
+ if (value === undefined)
71
+ return undefined;
72
+ if (typeof value !== 'string' || !value.trim())
73
+ throw new Error('--' + key + ' needs comma-separated step IDs');
74
+ return value.split(',').map(item => item.trim());
75
+ }
76
+ function invocationUsage(state, priorCount) {
77
+ const attempts = state.history.slice(priorCount);
78
+ const sum = (key) => attempts.some(a => a.usage?.[key] == null)
79
+ ? null : attempts.reduce((total, a) => total + (a.usage?.[key] ?? 0), 0);
80
+ return { costUsd: sum('costUsd'), inputTokens: sum('inputTokens'), outputTokens: sum('outputTokens') };
81
+ }
82
+ export async function runRuntimeCommand(flags, positionals, emit = value => process.stdout.write(JSON.stringify(value) + '\n')) {
83
+ const command = positionals[0] ?? 'help';
84
+ if (command === 'prompts') {
85
+ emit({ type: 'runtime-role-prompts', defaults: rolePromptDefaults() });
86
+ return 0;
87
+ }
88
+ if (command === 'capabilities') {
89
+ if (flags.stdin !== undefined && flags.stdin !== true)
90
+ throw new Error('--stdin is a boolean flag');
91
+ if (flags.stdin && flags.config !== undefined)
92
+ throw new Error('Use --stdin or --config, not both');
93
+ const config = validateRuntimeConfig(flags.stdin ? await readStdin() : read(stringFlag(flags, 'config')));
94
+ emit({ type: 'runtime-capabilities', runtimeIdentity: coreRuntimeIdentity(), ...await configuredCapabilities(config, createExecutorRegistry(config)) });
95
+ return 0;
96
+ }
97
+ if (command === 'evaluate') {
98
+ if (flags.real !== undefined && flags.real !== true)
99
+ throw new Error('--real is a boolean flag');
100
+ const report = await runEvaluation({ output: stringFlag(flags, 'output'), real: flags.real === true, ...(flags.config === undefined ? {} : { config: validateRuntimeConfig(read(stringFlag(flags, 'config'))) }), ...(flags['max-cost-usd'] === undefined ? {} : { maxCostUsd: Number(stringFlag(flags, 'max-cost-usd')) }), ...(flags.repetitions === undefined ? {} : { repetitions: Number(stringFlag(flags, 'repetitions')) }) });
101
+ emit({ type: 'runtime-evaluation', mode: report.mode, observations: report.observations.length, output: stringFlag(flags, 'output'), monetaryConclusion: report.monetaryConclusion, correctionPromptTargetMet: report.correctionPromptTargetMet, noObservedQualityDrop: report.noObservedQualityDrop, stopReason: report.stopReason });
102
+ return report.stopReason || (!flags.real && (!report.noObservedQualityDrop || !report.noExtraInvocations || !report.correctionPromptTargetMet)) ? 1 : 0;
103
+ }
104
+ if (command === 'help') {
105
+ emit({ usage: [
106
+ 'specrails-core runtime api',
107
+ 'specrails-core runtime evaluate --output <directory> [--repetitions <1..20>] [--real --config <json> --max-cost-usd <limit>]',
108
+ 'specrails-core runtime capabilities --config <json>',
109
+ 'specrails-core runtime evidence --context <json> [--id <opaqueId>] [--section summary|stdout|stderr|source] [--source-id <opaqueId>] [--cursor <cursor>] [--limit <1..100>]',
110
+ 'specrails-core runtime prompts',
111
+ 'specrails-core runtime validate --config <json>',
112
+ 'specrails-core runtime validate --stdin',
113
+ 'specrails-core runtime run --context <json> --config <json> --change <kebab-case>',
114
+ 'specrails-core runtime status --context <json> [--compact]',
115
+ 'specrails-core runtime resume --context <json> [--approve archive] [--answer <text>] [--recover developer] [--invalidate verify]',
116
+ ] });
117
+ return 0;
118
+ }
119
+ if (command === 'api') {
120
+ emit({ type: 'runtime-api', apiVersion: RUNTIME_API_VERSION, coreVersion: CORE_PACKAGE_VERSION, runtimeIdentity: coreRuntimeIdentity(), workflowVersions: [CORE_WORKFLOW_VERSION], capabilities: { efficientRoleExecution: 1, reproducibleVerification: 1, implementationEfficiencyMetrics: 1 } });
121
+ return 0;
122
+ }
123
+ if (command === 'validate') {
124
+ if (flags.stdin !== undefined && flags.stdin !== true)
125
+ throw new Error('--stdin is a boolean flag');
126
+ if (flags.stdin && flags.config !== undefined)
127
+ throw new Error('Use --stdin or --config, not both');
128
+ validateRuntimeConfig(flags.stdin ? await readStdin() : read(stringFlag(flags, 'config')));
129
+ emit({ type: 'runtime-config-valid', schemaVersion: 1 });
130
+ return 0;
131
+ }
132
+ if (command === 'evidence') {
133
+ const context = read(stringFlag(flags, 'context'));
134
+ const query = { ...(flags.id === undefined ? {} : { id: stringFlag(flags, 'id') }), ...(flags.section === undefined ? {} : { section: stringFlag(flags, 'section') }), ...(flags['source-id'] === undefined ? {} : { sourceId: stringFlag(flags, 'source-id') }), ...(flags.cursor === undefined ? {} : { cursor: stringFlag(flags, 'cursor') }), ...(flags.limit === undefined ? {} : { limit: Number(stringFlag(flags, 'limit')) }) };
135
+ emit(readVerificationEvidence(context, query));
136
+ return 0;
137
+ }
138
+ if (!['run', 'status', 'resume'].includes(command))
139
+ throw new Error('Unknown runtime operation: ' + command);
140
+ const context = validatePipelineContext(read(stringFlag(flags, 'context')));
141
+ const directory = path.join(pipelineStateDirectory(context), 'agent-workflow');
142
+ const previous = await readWorkflowState(directory, context.runId);
143
+ if (command === 'status') {
144
+ const pipeline = previous ? inspectPipeline(context) : null;
145
+ const requestPath = path.join(pipelineStateDirectory(context), 'agent-runtime-request.json');
146
+ const config = existsSync(requestPath) ? read(requestPath).config : undefined;
147
+ emit({ type: 'runtime-status', state: flags.compact ? compactState(previous) : previous, pipeline: flags.compact ? compactPipeline(pipeline) : pipeline, ...(previous ? { metrics: runtimeEfficiency(previous), efficiencySummary: efficiencySummary(previous, context, config, pipeline?.completion, pipeline ?? undefined) } : {}) });
148
+ return 0;
149
+ }
150
+ const requestFile = path.join(pipelineStateDirectory(context), 'agent-runtime-request.json');
151
+ let request;
152
+ if (command === 'resume') {
153
+ if (!previous)
154
+ throw new Error('No programmatic run exists for this context');
155
+ request = read(requestFile);
156
+ if (request.runtimeIdentity && !sameRuntimeIdentity(request.runtimeIdentity, coreRuntimeIdentity()))
157
+ throw new Error('The original runtime package identity differs. Restore the retained original runtime; the saved request has not been changed.');
158
+ if (flags.config || flags.change)
159
+ throw new Error('Resume uses the frozen configuration and change; start a new run to change them');
160
+ }
161
+ else {
162
+ if (flags.answer !== undefined || flags.approve !== undefined)
163
+ throw new Error('Answers and approvals apply to runtime resume');
164
+ request = { change: stringFlag(flags, 'change'), config: normalizeRuntimeConfig(read(stringFlag(flags, 'config'))), runtimeIdentity: coreRuntimeIdentity() };
165
+ await preflightCoreWorkflow({ context, change: request.change, config: request.config });
166
+ const serialized = JSON.stringify(request, null, 2) + '\n';
167
+ mkdirSync(path.dirname(requestFile), { recursive: true, mode: 0o700 });
168
+ try {
169
+ writeFileSync(requestFile, serialized, { flag: 'wx', mode: 0o600 });
170
+ }
171
+ catch (error) {
172
+ if (error.code !== 'EEXIST')
173
+ throw error;
174
+ if (readFileSync(requestFile, 'utf8') !== serialized)
175
+ throw new Error('Run configuration changed; use a new run ID');
176
+ if (previous)
177
+ throw new Error('Run already exists; use runtime resume explicitly');
178
+ }
179
+ }
180
+ const controller = new AbortController();
181
+ const abort = () => controller.abort();
182
+ process.on('SIGINT', abort);
183
+ process.on('SIGTERM', abort);
184
+ try {
185
+ const state = await runCoreWorkflow({
186
+ context, change: request.change, config: request.config, resume: command === 'resume', signal: controller.signal,
187
+ approve: list(flags, 'approve'), answer: optionalString(flags, 'answer'), recoverInterrupted: list(flags, 'recover'), invalidate: list(flags, 'invalidate'),
188
+ onEvent: event => emit(event.type === 'efficiency_updated' ? { type: 'runtime-efficiency-event', schemaVersion: 1, eventId: event.id, runId: event.runId, attemptId: event.attemptId, kind: event.efficiencyActivity?.kind ?? 'role-context', payload: event.efficiencyActivity?.payload ?? event.efficiency } : { type: 'workflow-event', event }),
189
+ onSpan: span => emit({ type: 'span', span }),
190
+ onAgentEvent: (role, event) => emit({ type: 'agent-event', role, event }),
191
+ onVerificationOutput: text => emit({ type: 'verification-output', text }),
192
+ });
193
+ let inspection;
194
+ try {
195
+ inspection = inspectPipeline(context);
196
+ }
197
+ catch { /* A failed scope inspection must not erase recorded spend. */ }
198
+ emit({ type: 'runtime-result', runId: state.runId, traceId: state.traceId, status: state.status, nextStep: state.nextStep, error: state.error, pendingApproval: state.pendingApproval, pendingQuestion: state.pendingQuestion, usage: state.usage, invocationUsage: invocationUsage(state, previous?.history.length ?? 0), metrics: runtimeEfficiency(state), efficiencySummary: efficiencySummary(state, context, request.config, inspection?.completion, inspection) });
199
+ return state.status === 'succeeded' ? 0 : state.status === 'paused' ? 2 : 1;
200
+ }
201
+ finally {
202
+ process.off('SIGINT', abort);
203
+ process.off('SIGTERM', abort);
204
+ }
205
+ }
206
+ if (process.argv[1] && existsSync(process.argv[1]) && import.meta.url === pathToFileURL(realpathSync(process.argv[1])).href) {
207
+ const { subcommand, flags, positionals } = parseArgs(process.argv.slice(2));
208
+ try {
209
+ process.exitCode = await runRuntimeCommand(flags, [subcommand ?? 'help', ...positionals]);
210
+ }
211
+ catch (error) {
212
+ process.stdout.write(JSON.stringify({ type: 'runtime-result', status: 'failed', error: error instanceof Error ? error.message : String(error) }) + '\n');
213
+ process.exitCode = 1;
214
+ }
215
+ }
216
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/agent-runtime/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /** Codex strict output requires all object keys; optional values travel as null. */
2
+ export declare function codexOutputSchema(schema: Record<string, unknown>): Record<string, unknown>;
3
+ /** Restore only originally optional nulls; required fields remain subject to validation. */
4
+ export declare function restoreOptionalFields(value: unknown, schema: Record<string, unknown>): unknown;
@@ -0,0 +1,31 @@
1
+ /** Codex strict output requires all object keys; optional values travel as null. */
2
+ export function codexOutputSchema(schema) {
3
+ const result = structuredClone(schema);
4
+ for (const key of ['anyOf', 'oneOf', 'allOf'])
5
+ if (Array.isArray(result[key]))
6
+ result[key] = result[key].map(codexOutputSchema);
7
+ if (result.items && typeof result.items === 'object')
8
+ result.items = codexOutputSchema(result.items);
9
+ if (result.properties && typeof result.properties === 'object') {
10
+ const required = new Set(Array.isArray(result.required) ? result.required : []);
11
+ result.properties = Object.fromEntries(Object.entries(result.properties).map(([key, value]) => {
12
+ const child = codexOutputSchema(value);
13
+ return [key, required.has(key) ? child : { anyOf: [child, { type: 'null' }] }];
14
+ }));
15
+ result.required = Object.keys(result.properties);
16
+ result.additionalProperties = false;
17
+ }
18
+ return result;
19
+ }
20
+ /** Restore only originally optional nulls; required fields remain subject to validation. */
21
+ export function restoreOptionalFields(value, schema) {
22
+ if (Array.isArray(value) && schema.items)
23
+ return value.map(item => restoreOptionalFields(item, schema.items));
24
+ if (!value || typeof value !== 'object' || Array.isArray(value) || !schema.properties)
25
+ return value;
26
+ const properties = schema.properties;
27
+ const required = new Set(Array.isArray(schema.required) ? schema.required : []);
28
+ return Object.fromEntries(Object.entries(value).filter(([key, item]) => !(key in properties && item === null && !required.has(key)))
29
+ .map(([key, item]) => [key, properties[key] ? restoreOptionalFields(item, properties[key]) : item]));
30
+ }
31
+ //# sourceMappingURL=codex-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-schema.js","sourceRoot":"","sources":["../../src/agent-runtime/codex-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { RuntimeConfig } from './executor-types.js';
2
+ export declare function validateRuntimeConfig(input: unknown, options?: {
3
+ registeredProviderIds?: string[];
4
+ }): RuntimeConfig;
5
+ export declare function loadRuntimeConfig(file: string, options?: {
6
+ registeredProviderIds?: string[];
7
+ }): RuntimeConfig;
8
+ /** New admissions normalize once; validation of a saved document is lossless. */
9
+ export declare function normalizeRuntimeConfig(input: unknown, options?: {
10
+ registeredProviderIds?: string[];
11
+ }): RuntimeConfig;