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.
- package/README.md +3 -0
- package/bin/specrails-core.mjs +5 -0
- package/dist/agent-runtime/capabilities.d.ts +27 -0
- package/dist/agent-runtime/capabilities.js +73 -0
- package/dist/agent-runtime/capabilities.js.map +1 -0
- package/dist/agent-runtime/cli-executor.d.ts +43 -0
- package/dist/agent-runtime/cli-executor.js +405 -0
- package/dist/agent-runtime/cli-executor.js.map +1 -0
- package/dist/agent-runtime/cli-process.d.ts +32 -0
- package/dist/agent-runtime/cli-process.js +159 -0
- package/dist/agent-runtime/cli-process.js.map +1 -0
- package/dist/agent-runtime/cli.d.ts +39 -0
- package/dist/agent-runtime/cli.js +216 -0
- package/dist/agent-runtime/cli.js.map +1 -0
- package/dist/agent-runtime/codex-schema.d.ts +4 -0
- package/dist/agent-runtime/codex-schema.js +31 -0
- package/dist/agent-runtime/codex-schema.js.map +1 -0
- package/dist/agent-runtime/config.d.ts +11 -0
- package/dist/agent-runtime/config.js +263 -0
- package/dist/agent-runtime/config.js.map +1 -0
- package/dist/agent-runtime/core-host.d.ts +41 -0
- package/dist/agent-runtime/core-host.js +132 -0
- package/dist/agent-runtime/core-host.js.map +1 -0
- package/dist/agent-runtime/durable-store.d.ts +22 -0
- package/dist/agent-runtime/durable-store.js +205 -0
- package/dist/agent-runtime/durable-store.js.map +1 -0
- package/dist/agent-runtime/efficiency-summary.d.ts +67 -0
- package/dist/agent-runtime/efficiency-summary.js +52 -0
- package/dist/agent-runtime/efficiency-summary.js.map +1 -0
- package/dist/agent-runtime/efficiency-types.d.ts +60 -0
- package/dist/agent-runtime/efficiency-types.js +8 -0
- package/dist/agent-runtime/efficiency-types.js.map +1 -0
- package/dist/agent-runtime/efficiency.d.ts +5 -0
- package/dist/agent-runtime/efficiency.js +35 -0
- package/dist/agent-runtime/efficiency.js.map +1 -0
- package/dist/agent-runtime/evaluation-corpus.d.ts +13 -0
- package/dist/agent-runtime/evaluation-corpus.js +8 -0
- package/dist/agent-runtime/evaluation-corpus.js.map +1 -0
- package/dist/agent-runtime/evaluation.d.ts +43 -0
- package/dist/agent-runtime/evaluation.js +171 -0
- package/dist/agent-runtime/evaluation.js.map +1 -0
- package/dist/agent-runtime/executor-types.d.ts +125 -0
- package/dist/agent-runtime/executor-types.js +29 -0
- package/dist/agent-runtime/executor-types.js.map +1 -0
- package/dist/agent-runtime/executors.d.ts +23 -0
- package/dist/agent-runtime/executors.js +48 -0
- package/dist/agent-runtime/executors.js.map +1 -0
- package/dist/agent-runtime/gemini-policy.d.ts +8 -0
- package/dist/agent-runtime/gemini-policy.js +36 -0
- package/dist/agent-runtime/gemini-policy.js.map +1 -0
- package/dist/agent-runtime/graph/artifacts.d.ts +26 -0
- package/dist/agent-runtime/graph/artifacts.js +205 -0
- package/dist/agent-runtime/graph/artifacts.js.map +1 -0
- package/dist/agent-runtime/graph/nodes.d.ts +39 -0
- package/dist/agent-runtime/graph/nodes.js +321 -0
- package/dist/agent-runtime/graph/nodes.js.map +1 -0
- package/dist/agent-runtime/graph/review-policy.d.ts +18 -0
- package/dist/agent-runtime/graph/review-policy.js +32 -0
- package/dist/agent-runtime/graph/review-policy.js.map +1 -0
- package/dist/agent-runtime/graph/roles.d.ts +47 -0
- package/dist/agent-runtime/graph/roles.js +190 -0
- package/dist/agent-runtime/graph/roles.js.map +1 -0
- package/dist/agent-runtime/graph/state.d.ts +83 -0
- package/dist/agent-runtime/graph/state.js +23 -0
- package/dist/agent-runtime/graph/state.js.map +1 -0
- package/dist/agent-runtime/graph-checkpointer.d.ts +61 -0
- package/dist/agent-runtime/graph-checkpointer.js +137 -0
- package/dist/agent-runtime/graph-checkpointer.js.map +1 -0
- package/dist/agent-runtime/index.d.ts +20 -0
- package/dist/agent-runtime/index.js +21 -0
- package/dist/agent-runtime/index.js.map +1 -0
- package/dist/agent-runtime/kimi-acp.d.ts +11 -0
- package/dist/agent-runtime/kimi-acp.js +190 -0
- package/dist/agent-runtime/kimi-acp.js.map +1 -0
- package/dist/agent-runtime/openai-executor.d.ts +26 -0
- package/dist/agent-runtime/openai-executor.js +192 -0
- package/dist/agent-runtime/openai-executor.js.map +1 -0
- package/dist/agent-runtime/openspec-tool-server.d.ts +1 -0
- package/dist/agent-runtime/openspec-tool-server.js +37 -0
- package/dist/agent-runtime/openspec-tool-server.js.map +1 -0
- package/dist/agent-runtime/openspec.d.ts +123 -0
- package/dist/agent-runtime/openspec.js +263 -0
- package/dist/agent-runtime/openspec.js.map +1 -0
- package/dist/agent-runtime/prompts.d.ts +44 -0
- package/dist/agent-runtime/prompts.js +310 -0
- package/dist/agent-runtime/prompts.js.map +1 -0
- package/dist/agent-runtime/provider-diagnostic.d.ts +2 -0
- package/dist/agent-runtime/provider-diagnostic.js +25 -0
- package/dist/agent-runtime/provider-diagnostic.js.map +1 -0
- package/dist/agent-runtime/repository-context.d.ts +25 -0
- package/dist/agent-runtime/repository-context.js +100 -0
- package/dist/agent-runtime/repository-context.js.map +1 -0
- package/dist/agent-runtime/review-context.d.ts +14 -0
- package/dist/agent-runtime/review-context.js +41 -0
- package/dist/agent-runtime/review-context.js.map +1 -0
- package/dist/agent-runtime/role-routing.d.ts +10 -0
- package/dist/agent-runtime/role-routing.js +29 -0
- package/dist/agent-runtime/role-routing.js.map +1 -0
- package/dist/agent-runtime/role-state.d.ts +19 -0
- package/dist/agent-runtime/role-state.js +24 -0
- package/dist/agent-runtime/role-state.js.map +1 -0
- package/dist/agent-runtime/runtime-identity.d.ts +11 -0
- package/dist/agent-runtime/runtime-identity.js +33 -0
- package/dist/agent-runtime/runtime-identity.js.map +1 -0
- package/dist/agent-runtime/tool-event.d.ts +3 -0
- package/dist/agent-runtime/tool-event.js +24 -0
- package/dist/agent-runtime/tool-event.js.map +1 -0
- package/dist/agent-runtime/verification-plan.d.ts +55 -0
- package/dist/agent-runtime/verification-plan.js +206 -0
- package/dist/agent-runtime/verification-plan.js.map +1 -0
- package/dist/agent-runtime/workflow-types.d.ts +226 -0
- package/dist/agent-runtime/workflow-types.js +2 -0
- package/dist/agent-runtime/workflow-types.js.map +1 -0
- package/dist/agent-runtime/workflow.d.ts +17 -0
- package/dist/agent-runtime/workflow.js +636 -0
- package/dist/agent-runtime/workflow.js.map +1 -0
- package/dist/agent-runtime/workspace-tools.d.ts +29 -0
- package/dist/agent-runtime/workspace-tools.js +282 -0
- package/dist/agent-runtime/workspace-tools.js.map +1 -0
- package/dist/installer/cli.d.ts +35 -0
- package/dist/installer/cli.js +3 -0
- package/dist/installer/cli.js.map +1 -1
- package/dist/installer/commands/doctor.d.ts +27 -0
- package/dist/installer/commands/framework.d.ts +85 -0
- package/dist/installer/commands/init.d.ts +147 -0
- package/dist/installer/commands/update.d.ts +56 -0
- package/dist/installer/commands/v5-migration.d.ts +32 -0
- package/dist/installer/phases/framework-lifecycle.d.ts +53 -0
- package/dist/installer/phases/install-config.d.ts +64 -0
- package/dist/installer/phases/manifest.d.ts +45 -0
- package/dist/installer/phases/prereqs.d.ts +51 -0
- package/dist/installer/phases/provider-detect.d.ts +89 -0
- package/dist/installer/phases/scaffold.d.ts +211 -0
- package/dist/installer/phases/scaffold.js +39 -109
- package/dist/installer/phases/scaffold.js.map +1 -1
- package/dist/installer/runtime/kimi.d.ts +84 -0
- package/dist/installer/runtime/pipeline-state.d.ts +351 -0
- package/dist/installer/runtime/pipeline-state.js +514 -41
- package/dist/installer/runtime/pipeline-state.js.map +1 -1
- package/dist/installer/util/errors.d.ts +46 -0
- package/dist/installer/util/exec.d.ts +41 -0
- package/dist/installer/util/fs.d.ts +153 -0
- package/dist/installer/util/git.d.ts +44 -0
- package/dist/installer/util/install-transaction.d.ts +29 -0
- package/dist/installer/util/logger.d.ts +31 -0
- package/dist/installer/util/paths.d.ts +34 -0
- package/dist/installer/util/prompts.d.ts +23 -0
- package/dist/installer/util/registry.d.ts +174 -0
- package/dist/installer/util/template.d.ts +23 -0
- package/docs/README.md +1 -0
- package/docs/agent-runtime-efficiency.md +65 -0
- package/docs/agent-runtime.md +339 -0
- package/integration-contract.json +80 -7
- package/package.json +20 -2
- package/schemas/agent-runtime.schema.json +77 -0
- package/schemas/fixtures/runtime-efficiency-summary.v1.json +790 -0
- package/templates/codex-skills/batch-implement/SKILL.md +33 -58
- package/templates/codex-skills/implement/SKILL.md +21 -124
- package/templates/codex-skills/retry/SKILL.md +8 -34
- package/templates/commands/specrails/batch-implement.md +21 -16
- package/templates/commands/specrails/implement.md +17 -276
- package/templates/commands/specrails/retry.md +6 -34
- package/templates/gemini-commands/batch-implement.toml +34 -28
- package/templates/gemini-commands/implement.toml +34 -55
- 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;
|