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":"workflow.js","sourceRoot":"","sources":["../../src/agent-runtime/workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { AgentRole } from './executor-types.js';
|
|
2
|
+
export interface WorkspaceToolDefinition {
|
|
3
|
+
type: 'function';
|
|
4
|
+
function: {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
parameters: Record<string, unknown>;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export declare function isWithinRoot(root: string, file: string): boolean;
|
|
11
|
+
export declare function canonicalWorkspace(cwd: string, allowedRoots: string[]): {
|
|
12
|
+
cwd: string;
|
|
13
|
+
roots: string[];
|
|
14
|
+
};
|
|
15
|
+
/** Application tool boundary, not an OS sandbox for concurrent external processes. */
|
|
16
|
+
export declare class WorkspaceTools {
|
|
17
|
+
private readonly role;
|
|
18
|
+
readonly cwd: string;
|
|
19
|
+
readonly roots: string[];
|
|
20
|
+
private readonly rootAliases;
|
|
21
|
+
constructor(cwd: string, roots: string[], role: AgentRole);
|
|
22
|
+
definitions(): WorkspaceToolDefinition[];
|
|
23
|
+
private resolve;
|
|
24
|
+
execute(name: string, input: unknown): string;
|
|
25
|
+
private read;
|
|
26
|
+
private write;
|
|
27
|
+
private search;
|
|
28
|
+
private diff;
|
|
29
|
+
}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import { constants, closeSync, existsSync, fstatSync, lstatSync, mkdirSync, openSync, opendirSync, readSync, readdirSync, realpathSync, renameSync, rmSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { createHash, randomUUID } from 'node:crypto';
|
|
4
|
+
import { spawnSync } from 'node:child_process';
|
|
5
|
+
const MAX_READ = 128 * 1024;
|
|
6
|
+
const MAX_WRITE = 256 * 1024;
|
|
7
|
+
const MAX_OUTPUT = 48 * 1024;
|
|
8
|
+
const OMITTED_DIRECTORIES = new Set(['node_modules', 'dist', 'build', 'coverage', '.next']);
|
|
9
|
+
const HIDDEN_STATE = new Set(['.git', '.specrails', '.claude', '.codex', '.gemini', '.kimi-code', '.agents']);
|
|
10
|
+
function definition(name, description, properties, required) {
|
|
11
|
+
return { type: 'function', function: { name, description, parameters: { type: 'object', properties, required, additionalProperties: false } } };
|
|
12
|
+
}
|
|
13
|
+
function integer(value, fallback, max) {
|
|
14
|
+
if (value === undefined)
|
|
15
|
+
return fallback;
|
|
16
|
+
if (typeof value !== 'number' || !Number.isSafeInteger(value) || value < 1 || value > max)
|
|
17
|
+
throw new Error(`Expected an integer from 1 to ${max}`);
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
function digest(text) { return createHash('sha256').update(text).digest('hex'); }
|
|
21
|
+
export function isWithinRoot(root, file) {
|
|
22
|
+
const relative = path.relative(root, file);
|
|
23
|
+
return relative === '' || (!path.isAbsolute(relative) && relative !== '..' && !relative.startsWith('..' + path.sep));
|
|
24
|
+
}
|
|
25
|
+
export function canonicalWorkspace(cwd, allowedRoots) {
|
|
26
|
+
if (!path.isAbsolute(cwd) || !allowedRoots.length || allowedRoots.some(root => !path.isAbsolute(root)))
|
|
27
|
+
throw new Error('Workspace and allowed roots must be absolute paths');
|
|
28
|
+
const roots = [...new Set(allowedRoots.map(root => realpathSync(root)))];
|
|
29
|
+
const directory = realpathSync(cwd);
|
|
30
|
+
if (roots.some(root => !lstatSync(root).isDirectory()) || !lstatSync(directory).isDirectory() || !roots.some(root => isWithinRoot(root, directory)))
|
|
31
|
+
throw new Error('Workspace must be a directory inside the allowed roots');
|
|
32
|
+
return { cwd: directory, roots };
|
|
33
|
+
}
|
|
34
|
+
/** Application tool boundary, not an OS sandbox for concurrent external processes. */
|
|
35
|
+
export class WorkspaceTools {
|
|
36
|
+
role;
|
|
37
|
+
cwd;
|
|
38
|
+
roots;
|
|
39
|
+
rootAliases;
|
|
40
|
+
constructor(cwd, roots, role) {
|
|
41
|
+
this.role = role;
|
|
42
|
+
const scope = canonicalWorkspace(cwd, roots);
|
|
43
|
+
this.cwd = scope.cwd;
|
|
44
|
+
this.roots = scope.roots;
|
|
45
|
+
this.rootAliases = roots.map(root => ({ lexical: path.resolve(root), canonical: realpathSync(root) })).sort((a, b) => b.lexical.length - a.lexical.length);
|
|
46
|
+
}
|
|
47
|
+
definitions() {
|
|
48
|
+
const file = { path: { type: 'string', description: 'Relative to the workspace, or an absolute path within an allowed root.' } };
|
|
49
|
+
return [
|
|
50
|
+
definition('list_files', 'List a directory, up to 500 entries. Runtime metadata and dependencies are omitted.', file, ['path']),
|
|
51
|
+
definition('read_file', 'Read a UTF-8 source file up to 128 KiB. Binary files are rejected.', file, ['path']),
|
|
52
|
+
definition('read_lines', 'Read numbered lines, up to 500 lines / 48 KiB, from a UTF-8 file up to 1 MiB. Returns a full-file SHA-256 for guarded edits.', { ...file, startLine: { type: 'integer', minimum: 1 }, endLine: { type: 'integer', minimum: 1 } }, ['path']),
|
|
53
|
+
definition('search_text', 'Search literal text recursively in source files. Skips dependencies, build output, metadata, binaries and symlinks. Returns bounded numbered matches and a truncation flag.', { ...file, query: { type: 'string' }, maxResults: { type: 'integer', minimum: 1, maximum: 100 } }, ['path', 'query']),
|
|
54
|
+
definition('get_diff', 'Read the staged and unstaged Git diff against HEAD for one file, up to 48 KiB. Untracked files are identified; use read_lines for their content.', file, ['path']),
|
|
55
|
+
...(this.role === 'developer' ? [definition('write_file', 'Create or replace a UTF-8 source file (max 256 KiB). Parent directories are created. Runtime metadata cannot be changed.', { ...file, content: { type: 'string' } }, ['path', 'content'])] : []),
|
|
56
|
+
...(this.role === 'developer' ? [definition('apply_patch', 'Atomically replace one exact, unique fragment in a UTF-8 file. Rejects missing or ambiguous matches. Optionally guard against stale reads with expectedHash from read_lines.', { ...file, oldText: { type: 'string', minLength: 1 }, newText: { type: 'string' }, expectedHash: { type: 'string' } }, ['path', 'oldText', 'newText'])] : []),
|
|
57
|
+
];
|
|
58
|
+
}
|
|
59
|
+
resolve(raw, write) {
|
|
60
|
+
if (!raw || raw.includes('\0') || (process.platform !== 'win32' && (raw.includes('\\') || /^[A-Za-z]:/.test(raw))))
|
|
61
|
+
throw new Error('Invalid workspace path');
|
|
62
|
+
let target = path.resolve(this.cwd, raw);
|
|
63
|
+
const alias = this.rootAliases.find(root => isWithinRoot(root.lexical, target));
|
|
64
|
+
if (alias)
|
|
65
|
+
target = path.resolve(alias.canonical, path.relative(alias.lexical, target));
|
|
66
|
+
const root = this.roots.filter(candidate => isWithinRoot(candidate, target)).sort((a, b) => b.length - a.length)[0];
|
|
67
|
+
if (!root)
|
|
68
|
+
throw new Error('Path escapes the allowed workspace roots');
|
|
69
|
+
const parts = path.relative(root, target).split(path.sep).filter(Boolean);
|
|
70
|
+
if (parts.some(part => HIDDEN_STATE.has(part)))
|
|
71
|
+
throw new Error('Access to runtime or provider metadata is not permitted');
|
|
72
|
+
if (write && target === root)
|
|
73
|
+
throw new Error('Cannot overwrite a workspace root');
|
|
74
|
+
let current = root;
|
|
75
|
+
for (const part of parts) {
|
|
76
|
+
current = path.join(current, part);
|
|
77
|
+
try {
|
|
78
|
+
if (lstatSync(current).isSymbolicLink())
|
|
79
|
+
throw new Error('Symlink paths are not permitted');
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
if (error.code !== 'ENOENT')
|
|
83
|
+
throw error;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (existsSync(target) && !this.roots.some(candidate => isWithinRoot(candidate, realpathSync(target))))
|
|
87
|
+
throw new Error('Canonical path escapes the allowed workspace roots');
|
|
88
|
+
return target;
|
|
89
|
+
}
|
|
90
|
+
execute(name, input) {
|
|
91
|
+
if (!input || typeof input !== 'object' || Array.isArray(input))
|
|
92
|
+
throw new Error('Tool input must be a JSON object');
|
|
93
|
+
const args = input;
|
|
94
|
+
if (!this.definitions().some(tool => tool.function.name === name))
|
|
95
|
+
throw new Error(`Tool '${name}' is unavailable for the ${this.role} role`);
|
|
96
|
+
const allowed = name === 'write_file' ? ['path', 'content'] : name === 'apply_patch' ? ['path', 'oldText', 'newText', 'expectedHash'] : name === 'read_lines' ? ['path', 'startLine', 'endLine'] : name === 'search_text' ? ['path', 'query', 'maxResults'] : ['path'];
|
|
97
|
+
if (Object.keys(args).some(key => !allowed.includes(key)) || typeof args.path !== 'string')
|
|
98
|
+
throw new Error('Invalid tool arguments');
|
|
99
|
+
const target = this.resolve(args.path, name === 'write_file' || name === 'apply_patch');
|
|
100
|
+
if (name === 'read_lines') {
|
|
101
|
+
const text = this.read(target, 1024 * 1024), lines = text.split('\n');
|
|
102
|
+
if (lines.at(-1) === '')
|
|
103
|
+
lines.pop();
|
|
104
|
+
const start = integer(args.startLine, 1, Number.MAX_SAFE_INTEGER);
|
|
105
|
+
const end = integer(args.endLine, start + 199, Number.MAX_SAFE_INTEGER);
|
|
106
|
+
if (end < start)
|
|
107
|
+
throw new Error('endLine must not precede startLine');
|
|
108
|
+
const selected = [];
|
|
109
|
+
let bytes = 0;
|
|
110
|
+
const stop = Math.min(end, lines.length, start + 499);
|
|
111
|
+
for (let line = start; line <= stop; line++) {
|
|
112
|
+
const row = { line, text: lines[line - 1] };
|
|
113
|
+
const size = Buffer.byteLength(JSON.stringify(row), 'utf8');
|
|
114
|
+
if (bytes + size > MAX_OUTPUT)
|
|
115
|
+
break;
|
|
116
|
+
selected.push(row);
|
|
117
|
+
bytes += size;
|
|
118
|
+
}
|
|
119
|
+
const nextLine = start + selected.length;
|
|
120
|
+
return JSON.stringify({ path: args.path, hash: digest(text), lines: selected, totalLines: lines.length, truncated: nextLine <= Math.min(end, lines.length), ...(nextLine <= lines.length ? { nextLine } : {}) });
|
|
121
|
+
}
|
|
122
|
+
if (name === 'search_text')
|
|
123
|
+
return this.search(target, args);
|
|
124
|
+
if (name === 'get_diff')
|
|
125
|
+
return this.diff(target);
|
|
126
|
+
if (name === 'apply_patch') {
|
|
127
|
+
if (typeof args.oldText !== 'string' || !args.oldText || typeof args.newText !== 'string' || args.oldText.includes('\0') || args.newText.includes('\0') || Buffer.byteLength(args.newText) > MAX_WRITE)
|
|
128
|
+
throw new Error('Patch requires nonempty oldText and bounded UTF-8 newText');
|
|
129
|
+
const text = this.read(target, MAX_WRITE);
|
|
130
|
+
if (args.expectedHash !== undefined && (typeof args.expectedHash !== 'string' || args.expectedHash !== digest(text)))
|
|
131
|
+
throw new Error('File changed since it was read; read it again before patching');
|
|
132
|
+
const at = text.indexOf(args.oldText);
|
|
133
|
+
if (at < 0)
|
|
134
|
+
throw new Error('Patch text was not found');
|
|
135
|
+
if (text.indexOf(args.oldText, at + 1) !== -1)
|
|
136
|
+
throw new Error('Patch text is ambiguous; include more surrounding context');
|
|
137
|
+
const content = text.slice(0, at) + args.newText + text.slice(at + args.oldText.length);
|
|
138
|
+
if (Buffer.byteLength(content) > MAX_WRITE)
|
|
139
|
+
throw new Error('Patched file exceeds 256 KiB');
|
|
140
|
+
this.write(target, content);
|
|
141
|
+
return JSON.stringify({ patched: args.path, hash: digest(content), bytes: Buffer.byteLength(content) });
|
|
142
|
+
}
|
|
143
|
+
if (name === 'list_files') {
|
|
144
|
+
const entries = readdirSync(target, { withFileTypes: true }).filter(entry => !HIDDEN_STATE.has(entry.name) && entry.name !== 'node_modules' && !entry.isSymbolicLink());
|
|
145
|
+
return JSON.stringify({ entries: entries.slice(0, 500).map(entry => ({ name: entry.name, type: entry.isDirectory() ? 'directory' : 'file' })), truncated: entries.length > 500 });
|
|
146
|
+
}
|
|
147
|
+
if (name === 'read_file') {
|
|
148
|
+
return this.read(target, MAX_READ);
|
|
149
|
+
}
|
|
150
|
+
if (typeof args.content !== 'string' || Buffer.byteLength(args.content, 'utf8') > MAX_WRITE || args.content.includes('\0'))
|
|
151
|
+
throw new Error('Write requires UTF-8 content no larger than 256 KiB');
|
|
152
|
+
this.write(target, args.content);
|
|
153
|
+
return JSON.stringify({ written: args.path, bytes: Buffer.byteLength(args.content, 'utf8') });
|
|
154
|
+
}
|
|
155
|
+
read(target, limit) {
|
|
156
|
+
const fd = openSync(target, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0));
|
|
157
|
+
try {
|
|
158
|
+
const stat = fstatSync(fd);
|
|
159
|
+
if (!stat.isFile() || stat.size > limit)
|
|
160
|
+
throw new Error(`Read requires a regular file no larger than ${limit / 1024} KiB`);
|
|
161
|
+
const bytes = Buffer.alloc(limit + 1);
|
|
162
|
+
// A bounded descriptor read also protects against a file growing after stat.
|
|
163
|
+
let count = 0;
|
|
164
|
+
while (count < bytes.length) {
|
|
165
|
+
const size = readSync(fd, bytes, count, bytes.length - count, count);
|
|
166
|
+
if (size === 0)
|
|
167
|
+
break;
|
|
168
|
+
count += size;
|
|
169
|
+
}
|
|
170
|
+
const content = bytes.subarray(0, count);
|
|
171
|
+
if (count > limit || content.includes(0))
|
|
172
|
+
throw new Error('File is too large or binary');
|
|
173
|
+
return content.toString('utf8');
|
|
174
|
+
}
|
|
175
|
+
finally {
|
|
176
|
+
closeSync(fd);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
write(target, content) {
|
|
180
|
+
mkdirSync(path.dirname(target), { recursive: true });
|
|
181
|
+
this.resolve(target, true);
|
|
182
|
+
const temporary = path.join(path.dirname(target), `.specrails-edit-${randomUUID()}.tmp`);
|
|
183
|
+
try {
|
|
184
|
+
const mode = existsSync(target) ? lstatSync(target).mode & 0o777 : 0o644;
|
|
185
|
+
writeFileSync(temporary, content, { flag: 'wx', mode });
|
|
186
|
+
renameSync(temporary, target);
|
|
187
|
+
}
|
|
188
|
+
finally {
|
|
189
|
+
rmSync(temporary, { force: true });
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
search(target, args) {
|
|
193
|
+
if (typeof args.query !== 'string' || !args.query || args.query.length > 1000 || /[\r\n\0]/.test(args.query))
|
|
194
|
+
throw new Error('query must be a nonempty literal single-line string of at most 1000 characters');
|
|
195
|
+
const max = integer(args.maxResults, 50, 100);
|
|
196
|
+
const pending = [target], matches = [];
|
|
197
|
+
let visited = 0, scannedBytes = 0, outputBytes = 0, skipped = 0, truncated = false;
|
|
198
|
+
while (pending.length) {
|
|
199
|
+
if (++visited > 2000 || scannedBytes >= 8 * 1024 * 1024) {
|
|
200
|
+
truncated = true;
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
const file = pending.pop();
|
|
204
|
+
try {
|
|
205
|
+
this.resolve(file, false);
|
|
206
|
+
const stat = lstatSync(file);
|
|
207
|
+
if (stat.isSymbolicLink()) {
|
|
208
|
+
skipped++;
|
|
209
|
+
continue;
|
|
210
|
+
}
|
|
211
|
+
if (stat.isDirectory()) {
|
|
212
|
+
const remaining = Math.max(0, 2000 - visited - pending.length);
|
|
213
|
+
const entries = [];
|
|
214
|
+
const dir = opendirSync(file);
|
|
215
|
+
try {
|
|
216
|
+
let entry;
|
|
217
|
+
let seen = 0;
|
|
218
|
+
while ((entry = dir.readSync())) {
|
|
219
|
+
if (++seen > remaining) {
|
|
220
|
+
truncated = true;
|
|
221
|
+
break;
|
|
222
|
+
}
|
|
223
|
+
if (!HIDDEN_STATE.has(entry.name) && !OMITTED_DIRECTORIES.has(entry.name) && !entry.isSymbolicLink())
|
|
224
|
+
entries.push(entry.name);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
finally {
|
|
228
|
+
dir.closeSync();
|
|
229
|
+
}
|
|
230
|
+
pending.push(...entries.sort().reverse().map(name => path.join(file, name)));
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
233
|
+
if (!stat.isFile() || stat.size > MAX_READ) {
|
|
234
|
+
skipped++;
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
scannedBytes += stat.size;
|
|
238
|
+
const lines = this.read(file, MAX_READ).split('\n');
|
|
239
|
+
for (let i = 0; i < lines.length; i++) {
|
|
240
|
+
if (!lines[i].includes(args.query))
|
|
241
|
+
continue;
|
|
242
|
+
const row = { path: path.relative(this.cwd, file), line: i + 1, text: lines[i].slice(0, 2000) };
|
|
243
|
+
const size = Buffer.byteLength(JSON.stringify(row));
|
|
244
|
+
if (matches.length >= max || outputBytes + size > MAX_OUTPUT)
|
|
245
|
+
return JSON.stringify({ matches, truncated: true, skipped });
|
|
246
|
+
if (row.text.length < lines[i].length)
|
|
247
|
+
truncated = true;
|
|
248
|
+
matches.push(row);
|
|
249
|
+
outputBytes += size;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
catch {
|
|
253
|
+
skipped++;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return JSON.stringify({ matches, truncated, skipped });
|
|
257
|
+
}
|
|
258
|
+
diff(target) {
|
|
259
|
+
if (existsSync(target) && !lstatSync(target).isFile())
|
|
260
|
+
throw new Error('get_diff requires one file path');
|
|
261
|
+
const root = this.roots.filter(root => isWithinRoot(root, target)).sort((a, b) => b.length - a.length)[0];
|
|
262
|
+
// Do not let an inherited Git context redirect an inspection outside this root.
|
|
263
|
+
const env = { ...Object.fromEntries(Object.entries(process.env).filter(([key]) => !key.toUpperCase().startsWith('GIT_'))), GIT_LITERAL_PATHSPECS: '1', GIT_OPTIONAL_LOCKS: '0' };
|
|
264
|
+
const relative = path.relative(root, target);
|
|
265
|
+
const options = { encoding: 'utf8', env, windowsHide: true, timeout: 5000, maxBuffer: 256 * 1024 };
|
|
266
|
+
const git = ['-c', 'core.fsmonitor=false', '-C', root];
|
|
267
|
+
const result = spawnSync('git', [...git, 'diff', '--no-ext-diff', '--no-textconv', '--no-renames', '--no-color', 'HEAD', '--', relative], options);
|
|
268
|
+
const overflow = result.error?.code === 'ENOBUFS';
|
|
269
|
+
if ((!overflow && result.error) || (!overflow && result.status !== 0))
|
|
270
|
+
throw new Error('Git diff is unavailable for this workspace');
|
|
271
|
+
const bytes = Buffer.from(result.stdout ?? '', 'utf8');
|
|
272
|
+
if (bytes.length || overflow)
|
|
273
|
+
return JSON.stringify({ untracked: false, diff: bytes.subarray(0, MAX_OUTPUT).toString('utf8'), truncated: overflow || bytes.length > MAX_OUTPUT });
|
|
274
|
+
const tracked = spawnSync('git', [...git, 'ls-files', '--error-unmatch', '--', relative], options);
|
|
275
|
+
if (tracked.error || (tracked.status !== 0 && tracked.status !== 1))
|
|
276
|
+
throw new Error('Git diff is unavailable for this workspace');
|
|
277
|
+
if (tracked.status === 1)
|
|
278
|
+
return JSON.stringify({ untracked: true, diff: '', truncated: false });
|
|
279
|
+
return JSON.stringify({ untracked: false, diff: '', truncated: false });
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=workspace-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-tools.js","sourceRoot":"","sources":["../../src/agent-runtime/workspace-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* specrails-core CLI entry point (Node / TypeScript).
|
|
3
|
+
*
|
|
4
|
+
* Replaces the legacy bash-dispatch path in `bin/specrails-core.js`.
|
|
5
|
+
* During the port, `bin/specrails-core.js` keeps shelling out to the
|
|
6
|
+
* shell scripts while this module carries the in-progress Node
|
|
7
|
+
* implementation. Once Phases 2–4 ship the command handlers and
|
|
8
|
+
* Phase 5 deletes the shell scripts, the `bin/` dispatcher collapses
|
|
9
|
+
* to a single `import { main } from './dist/installer/cli.js'` call.
|
|
10
|
+
*/
|
|
11
|
+
export interface ParsedArgs {
|
|
12
|
+
subcommand: string | null;
|
|
13
|
+
flags: Record<string, string | boolean>;
|
|
14
|
+
positionals: string[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Minimal arg parser, no external dep. Handles:
|
|
18
|
+
* subcommand (first bare positional)
|
|
19
|
+
* --flag (boolean true)
|
|
20
|
+
* --flag=value (string)
|
|
21
|
+
* --flag value (string, consumes next token)
|
|
22
|
+
* -h / --help (help alias)
|
|
23
|
+
* -v / --version (version alias)
|
|
24
|
+
* positionals (everything else)
|
|
25
|
+
*/
|
|
26
|
+
export declare function parseArgs(argv: string[]): ParsedArgs;
|
|
27
|
+
/**
|
|
28
|
+
* Sentinel exit code used during the port: when a Node command is not
|
|
29
|
+
* yet implemented, the CLI exits with this code and the outer bash
|
|
30
|
+
* dispatcher (bin/specrails-core.js) may choose to fall through to
|
|
31
|
+
* the shell path. Removed entirely in Phase 5 when no shell scripts
|
|
32
|
+
* remain.
|
|
33
|
+
*/
|
|
34
|
+
export declare const NOT_IMPLEMENTED = 2;
|
|
35
|
+
export declare function main(argv?: string[]): Promise<number>;
|
package/dist/installer/cli.js
CHANGED
|
@@ -83,6 +83,7 @@ function usageText() {
|
|
|
83
83
|
' init Install specrails into a repository',
|
|
84
84
|
' update Update an existing specrails installation',
|
|
85
85
|
' pipeline Inspect and execute durable implementation phases',
|
|
86
|
+
' runtime Run, inspect and resume programmatic agents',
|
|
86
87
|
' doctor Diagnose the health of an existing installation',
|
|
87
88
|
' install-framework Materialize the versioned framework (offline)',
|
|
88
89
|
' swap-current Point framework/current at a version (offline)',
|
|
@@ -130,6 +131,8 @@ async function dispatch(subcommand, flags, _positionals) {
|
|
|
130
131
|
return 0;
|
|
131
132
|
case 'pipeline':
|
|
132
133
|
return runPipelineCommand(flags, _positionals);
|
|
134
|
+
case 'runtime':
|
|
135
|
+
return (await import('../agent-runtime/cli.js')).runRuntimeCommand(flags, _positionals);
|
|
133
136
|
case 'doctor': {
|
|
134
137
|
const result = await runDoctor(flags);
|
|
135
138
|
return result.failed === 0 ? 0 : 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/installer/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/installer/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every canonical SpecRails command is materialized as a direct-child Kimi
|
|
3
|
+
* skill. Discover the list from the packaged source of truth so doctor cannot
|
|
4
|
+
* silently fall behind when the command catalog grows.
|
|
5
|
+
*/
|
|
6
|
+
export declare const KIMI_MANAGED_WORKFLOW_SKILLS: string[];
|
|
7
|
+
/**
|
|
8
|
+
* `npx specrails-core doctor` — health check for a specrails install.
|
|
9
|
+
* Ports bin/doctor.sh to Node with identical exit semantics:
|
|
10
|
+
* - exit 0 when every check passes
|
|
11
|
+
* - exit 1 when any check fails
|
|
12
|
+
* Appends a single line to ~/.specrails/doctor.log after every run.
|
|
13
|
+
*/
|
|
14
|
+
export interface DoctorFlags {
|
|
15
|
+
'root-dir'?: string | boolean;
|
|
16
|
+
provider?: string | boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface DoctorResult {
|
|
19
|
+
passed: number;
|
|
20
|
+
failed: number;
|
|
21
|
+
results: Array<{
|
|
22
|
+
kind: 'pass' | 'fail';
|
|
23
|
+
message: string;
|
|
24
|
+
fix?: string;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
export declare function runDoctor(flags?: DoctorFlags): Promise<DoctorResult>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { type Provider } from '../phases/provider-detect.js';
|
|
2
|
+
/**
|
|
3
|
+
* Offline framework subcommands consumed by specrails-desktop's bundled-core
|
|
4
|
+
* path. They expose the already-built `ensureFramework` (installFramework +
|
|
5
|
+
* ensureCurrentSymlink) and `assembleProjectWorkspace` as thin CLI handlers so
|
|
6
|
+
* the desktop app can materialize + assemble WITHOUT npx or any network.
|
|
7
|
+
*
|
|
8
|
+
* specrails-core install-framework --framework-dir <dir> --provider <p> --version <v>
|
|
9
|
+
* specrails-core assemble --workspace <ws> --framework-dir <dir> --provider <p> --version <v> --code-root <repo>
|
|
10
|
+
*
|
|
11
|
+
* Both are idempotent and perform NO network I/O and NO openspec init.
|
|
12
|
+
*/
|
|
13
|
+
export interface InstallFrameworkFlags {
|
|
14
|
+
'framework-dir'?: string | boolean;
|
|
15
|
+
provider?: string | boolean;
|
|
16
|
+
version?: string | boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Materialize the provider subtree but do NOT swap `current`. The caller
|
|
19
|
+
* materializes EVERY provider first (each with `--no-swap`), then issues ONE
|
|
20
|
+
* `swap-current` so a later provider's failure never leaves `current` pointed
|
|
21
|
+
* at a version dir missing that provider.
|
|
22
|
+
*/
|
|
23
|
+
'no-swap'?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface SwapCurrentFlags {
|
|
26
|
+
'framework-dir'?: string | boolean;
|
|
27
|
+
version?: string | boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Comma-separated provider set the caller materialized for this transition.
|
|
30
|
+
* The swap validator unions it with globally registered/current providers.
|
|
31
|
+
*/
|
|
32
|
+
providers?: string | boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface AssembleFlags {
|
|
35
|
+
workspace?: string | boolean;
|
|
36
|
+
'framework-dir'?: string | boolean;
|
|
37
|
+
provider?: string | boolean;
|
|
38
|
+
version?: string | boolean;
|
|
39
|
+
'code-root'?: string | boolean;
|
|
40
|
+
/** Comma-separated per-project agent allow-list (links a subset of the superset). */
|
|
41
|
+
'selected-agents'?: string | boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface InstallFrameworkOutcome {
|
|
44
|
+
frameworkDir: string;
|
|
45
|
+
provider: Provider;
|
|
46
|
+
version: string;
|
|
47
|
+
providerDir: string;
|
|
48
|
+
/** True when `current` was swapped to `<version>` this call. */
|
|
49
|
+
swapped: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface SwapCurrentOutcome {
|
|
52
|
+
frameworkDir: string;
|
|
53
|
+
version: string;
|
|
54
|
+
/** Complete provider set validated before the pointer was moved. */
|
|
55
|
+
providers: Provider[];
|
|
56
|
+
}
|
|
57
|
+
export interface AssembleOutcome {
|
|
58
|
+
workspace: string;
|
|
59
|
+
frameworkDir: string;
|
|
60
|
+
provider: Provider;
|
|
61
|
+
version: string;
|
|
62
|
+
codeRoot: string;
|
|
63
|
+
providerDir: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* `specrails-core install-framework` — materialize the provider-invariant
|
|
67
|
+
* framework subtree ONCE under `<framework-dir>/<version>/<providerDir>/` and
|
|
68
|
+
* point `<framework-dir>/current` at it. Idempotent + offline.
|
|
69
|
+
*/
|
|
70
|
+
export declare function runInstallFramework(flags: InstallFrameworkFlags): Promise<InstallFrameworkOutcome>;
|
|
71
|
+
/**
|
|
72
|
+
* `specrails-core swap-current` — atomically point `<framework-dir>/current` at
|
|
73
|
+
* `<version>`. The multi-provider "materialize-all-then-swap-once" finaliser:
|
|
74
|
+
* after EVERY provider was materialized with `--no-swap`, this single call makes
|
|
75
|
+
* the version visible. Idempotent + offline.
|
|
76
|
+
*/
|
|
77
|
+
export declare function runSwapCurrent(flags: SwapCurrentFlags): Promise<SwapCurrentOutcome>;
|
|
78
|
+
/**
|
|
79
|
+
* `specrails-core assemble` — SYMLINK the materialized framework subtrees into a
|
|
80
|
+
* project workspace and seed the per-project layer (agent-memory, manifest,
|
|
81
|
+
* instruction/settings files, gemini acks). NO network, NO openspec init.
|
|
82
|
+
*/
|
|
83
|
+
export declare function runAssemble(flags: AssembleFlags): Promise<AssembleOutcome>;
|
|
84
|
+
/** Read the package version (the version the desktop should materialize). */
|
|
85
|
+
export declare function readPackageVersion(scriptDir?: string): string;
|