specrails-core 6.0.1 → 6.2.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 -3
- package/dist/agent-runtime/capabilities.js +3 -1
- package/dist/agent-runtime/change-scope.js +2 -0
- package/dist/agent-runtime/cli-executor.d.ts +3 -0
- package/dist/agent-runtime/cli-executor.js +52 -14
- package/dist/agent-runtime/cli-process.js +6 -2
- package/dist/agent-runtime/cli.d.ts +15 -0
- package/dist/agent-runtime/cli.js +43 -9
- package/dist/agent-runtime/compact/chat-client.js +2 -1
- package/dist/agent-runtime/config.d.ts +4 -1
- package/dist/agent-runtime/config.js +41 -3
- package/dist/agent-runtime/core-host.d.ts +9 -3
- package/dist/agent-runtime/core-host.js +21 -18
- package/dist/agent-runtime/efficiency-summary.d.ts +4 -1
- package/dist/agent-runtime/efficiency-summary.js +30 -27
- package/dist/agent-runtime/efficiency-types.d.ts +4 -4
- package/dist/agent-runtime/efficiency.d.ts +1 -1
- package/dist/agent-runtime/efficiency.js +7 -6
- package/dist/agent-runtime/engine/__fixtures__/implementation-component.json +90 -0
- package/dist/agent-runtime/engine/__fixtures__/implementation-fixture.d.ts +11 -0
- package/dist/agent-runtime/engine/__fixtures__/implementation-fixture.js +60 -0
- package/dist/agent-runtime/engine/__fixtures__/implementation.json +43 -0
- package/dist/agent-runtime/engine/budget.d.ts +9 -0
- package/dist/agent-runtime/engine/budget.js +33 -0
- package/dist/agent-runtime/engine/canonical-json.d.ts +9 -0
- package/dist/agent-runtime/engine/canonical-json.js +162 -0
- package/dist/agent-runtime/engine/checkpoint/database.d.ts +67 -0
- package/dist/agent-runtime/engine/checkpoint/database.js +304 -0
- package/dist/agent-runtime/engine/checkpoint/lease.d.ts +17 -0
- package/dist/agent-runtime/engine/checkpoint/lease.js +82 -0
- package/dist/agent-runtime/engine/checkpoint/ledger.d.ts +133 -0
- package/dist/agent-runtime/engine/checkpoint/ledger.js +510 -0
- package/dist/agent-runtime/engine/checkpoint/saver.d.ts +25 -0
- package/dist/agent-runtime/engine/checkpoint/saver.js +146 -0
- package/dist/agent-runtime/engine/cli.d.ts +10 -0
- package/dist/agent-runtime/engine/cli.js +172 -0
- package/dist/agent-runtime/engine/compiler.d.ts +23 -0
- package/dist/agent-runtime/engine/compiler.js +262 -0
- package/dist/agent-runtime/engine/composition.d.ts +16 -0
- package/dist/agent-runtime/engine/composition.js +28 -0
- package/dist/agent-runtime/engine/concurrency.d.ts +14 -0
- package/dist/agent-runtime/engine/concurrency.js +55 -0
- package/dist/agent-runtime/engine/contracts.d.ts +273 -0
- package/dist/agent-runtime/engine/contracts.js +11 -0
- package/dist/agent-runtime/engine/definition-schema.d.ts +250 -0
- package/dist/agent-runtime/engine/definition-schema.js +315 -0
- package/dist/agent-runtime/engine/definition-types.d.ts +84 -0
- package/dist/agent-runtime/engine/definition-types.js +3 -0
- package/dist/agent-runtime/engine/definition-validator.d.ts +7 -0
- package/dist/agent-runtime/engine/definition-validator.js +191 -0
- package/dist/agent-runtime/engine/efficiency-summary.d.ts +62 -0
- package/dist/agent-runtime/engine/efficiency-summary.js +31 -0
- package/dist/agent-runtime/engine/events.d.ts +19 -0
- package/dist/agent-runtime/engine/events.js +88 -0
- package/dist/agent-runtime/engine/execution.d.ts +29 -0
- package/dist/agent-runtime/engine/execution.js +121 -0
- package/dist/agent-runtime/engine/expressions.d.ts +11 -0
- package/dist/agent-runtime/engine/expressions.js +185 -0
- package/dist/agent-runtime/engine/fork.d.ts +28 -0
- package/dist/agent-runtime/engine/fork.js +253 -0
- package/dist/agent-runtime/engine/graph-description.d.ts +48 -0
- package/dist/agent-runtime/engine/graph-description.js +16 -0
- package/dist/agent-runtime/engine/implementation-compiler.d.ts +214 -0
- package/dist/agent-runtime/engine/implementation-compiler.js +91 -0
- package/dist/agent-runtime/engine/index.d.ts +14 -0
- package/dist/agent-runtime/engine/index.js +14 -0
- package/dist/agent-runtime/engine/invocation-context.d.ts +11 -0
- package/dist/agent-runtime/engine/invocation-context.js +130 -0
- package/dist/agent-runtime/engine/otel.d.ts +15 -0
- package/dist/agent-runtime/engine/otel.js +132 -0
- package/dist/agent-runtime/engine/output.d.ts +4 -0
- package/dist/agent-runtime/engine/output.js +73 -0
- package/dist/agent-runtime/engine/piece-dependencies.d.ts +54 -0
- package/dist/agent-runtime/engine/piece-dependencies.js +240 -0
- package/dist/agent-runtime/engine/piece-registry.d.ts +19 -0
- package/dist/agent-runtime/engine/piece-registry.js +62 -0
- package/dist/agent-runtime/engine/pieces/artifact-contract.d.ts +4 -0
- package/dist/agent-runtime/engine/pieces/artifact-contract.js +70 -0
- package/dist/agent-runtime/engine/pieces/assign.d.ts +4 -0
- package/dist/agent-runtime/engine/pieces/assign.js +35 -0
- package/dist/agent-runtime/engine/pieces/control.d.ts +5 -0
- package/dist/agent-runtime/engine/pieces/control.js +53 -0
- package/dist/agent-runtime/engine/pieces/decider.d.ts +5 -0
- package/dist/agent-runtime/engine/pieces/decider.js +70 -0
- package/dist/agent-runtime/engine/pieces/implementation-binding.d.ts +13 -0
- package/dist/agent-runtime/engine/pieces/implementation-binding.js +40 -0
- package/dist/agent-runtime/engine/pieces/implementation-journal.d.ts +25 -0
- package/dist/agent-runtime/engine/pieces/implementation-journal.js +192 -0
- package/dist/agent-runtime/engine/pieces/implementation-step.d.ts +5 -0
- package/dist/agent-runtime/engine/pieces/implementation-step.js +47 -0
- package/dist/agent-runtime/engine/pieces/implementation.d.ts +27 -0
- package/dist/agent-runtime/engine/pieces/implementation.js +177 -0
- package/dist/agent-runtime/engine/pieces/index.d.ts +7 -0
- package/dist/agent-runtime/engine/pieces/index.js +24 -0
- package/dist/agent-runtime/engine/pieces/openspec.d.ts +3 -0
- package/dist/agent-runtime/engine/pieces/openspec.js +75 -0
- package/dist/agent-runtime/engine/pieces/ports.d.ts +53 -0
- package/dist/agent-runtime/engine/pieces/ports.js +1 -0
- package/dist/agent-runtime/engine/pieces/project-memory.d.ts +3 -0
- package/dist/agent-runtime/engine/pieces/project-memory.js +13 -0
- package/dist/agent-runtime/engine/pieces/prompt.d.ts +5 -0
- package/dist/agent-runtime/engine/pieces/prompt.js +130 -0
- package/dist/agent-runtime/engine/pieces/role-turn.d.ts +7 -0
- package/dist/agent-runtime/engine/pieces/role-turn.js +73 -0
- package/dist/agent-runtime/engine/pieces/shared.d.ts +67 -0
- package/dist/agent-runtime/engine/pieces/shared.js +40 -0
- package/dist/agent-runtime/engine/pieces/shell.d.ts +6 -0
- package/dist/agent-runtime/engine/pieces/shell.js +47 -0
- package/dist/agent-runtime/engine/pieces/verify.d.ts +7 -0
- package/dist/agent-runtime/engine/pieces/verify.js +102 -0
- package/dist/agent-runtime/engine/preflight.d.ts +27 -0
- package/dist/agent-runtime/engine/preflight.js +54 -0
- package/dist/agent-runtime/engine/regex.d.ts +3 -0
- package/dist/agent-runtime/engine/regex.js +19 -0
- package/dist/agent-runtime/engine/run-status.d.ts +563 -0
- package/dist/agent-runtime/engine/run-status.js +61 -0
- package/dist/agent-runtime/engine/runs.d.ts +605 -0
- package/dist/agent-runtime/engine/runs.js +247 -0
- package/dist/agent-runtime/engine/state.d.ts +64 -0
- package/dist/agent-runtime/engine/state.js +98 -0
- package/dist/agent-runtime/engine/steering/inbox.d.ts +54 -0
- package/dist/agent-runtime/engine/steering/inbox.js +113 -0
- package/dist/agent-runtime/engine/storage/fork-allocation.d.ts +21 -0
- package/dist/agent-runtime/engine/storage/fork-allocation.js +143 -0
- package/dist/agent-runtime/engine/storage/private-path.d.ts +11 -0
- package/dist/agent-runtime/engine/storage/private-path.js +74 -0
- package/dist/agent-runtime/engine/store/sqlite-store.d.ts +26 -0
- package/dist/agent-runtime/engine/store/sqlite-store.js +227 -0
- package/dist/agent-runtime/evaluation-corpus.d.ts +125 -0
- package/dist/agent-runtime/evaluation-corpus.js +4 -0
- package/dist/agent-runtime/evaluation.d.ts +9 -3
- package/dist/agent-runtime/evaluation.js +50 -8
- package/dist/agent-runtime/executor-types.d.ts +53 -3
- package/dist/agent-runtime/executor-types.js +35 -2
- package/dist/agent-runtime/executors.js +2 -2
- package/dist/agent-runtime/graph/artifacts.d.ts +7 -0
- package/dist/agent-runtime/graph/artifacts.js +82 -9
- package/dist/agent-runtime/graph/nodes.d.ts +2 -0
- package/dist/agent-runtime/graph/nodes.js +2 -2
- package/dist/agent-runtime/graph/roles.d.ts +8 -0
- package/dist/agent-runtime/graph/roles.js +25 -17
- package/dist/agent-runtime/kimi-acp.js +6 -6
- package/dist/agent-runtime/openai-executor.js +17 -12
- package/dist/agent-runtime/openspec.d.ts +17 -2
- package/dist/agent-runtime/openspec.js +54 -20
- package/dist/agent-runtime/prompts.d.ts +4 -3
- package/dist/agent-runtime/prompts.js +27 -6
- package/dist/agent-runtime/recovery.d.ts +1 -1
- package/dist/agent-runtime/repository-context.js +1 -1
- package/dist/agent-runtime/role-routing.js +4 -2
- package/dist/agent-runtime/role-state.d.ts +5 -0
- package/dist/agent-runtime/verification-plan.d.ts +2 -0
- package/dist/agent-runtime/verification-plan.js +10 -0
- package/dist/agent-runtime/workflow-types.d.ts +2 -0
- package/dist/agent-runtime/workflow.d.ts +3 -1
- package/dist/agent-runtime/workflow.js +7 -3
- package/dist/agent-runtime/workspace-tools.d.ts +2 -2
- package/dist/agent-runtime/workspace-tools.js +6 -6
- package/dist/installer/cli.js +5 -0
- package/dist/installer/phases/scaffold.d.ts +2 -2
- package/dist/installer/phases/scaffold.js +3 -7
- package/dist/pipeline/pipeline-state.d.ts +38 -4
- package/dist/pipeline/pipeline-state.js +96 -21
- package/integration-contract.json +111 -19
- package/package.json +13 -6
- package/schemas/agent-runtime.schema.json +93 -1
- package/schemas/workflow-definition.schema.json +314 -0
- package/templates/kimi/specrails/run-skill.mjs +15 -1
- package/templates/commands/specrails/batch-implement.md +0 -32
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": "5.
|
|
2
|
+
"schemaVersion": "5.1",
|
|
3
3
|
"providers": {
|
|
4
4
|
"claude": {
|
|
5
5
|
"cli": {
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
"initCommand": "init",
|
|
14
14
|
"workflows": {
|
|
15
15
|
"implement": "/specrails:implement",
|
|
16
|
-
"batch-implement": "/specrails:batch-implement",
|
|
17
16
|
"retry": "/specrails:retry"
|
|
18
17
|
}
|
|
19
18
|
},
|
|
@@ -29,7 +28,6 @@
|
|
|
29
28
|
"initCommand": "init",
|
|
30
29
|
"workflows": {
|
|
31
30
|
"implement": "$implement",
|
|
32
|
-
"batch-implement": "$batch-implement",
|
|
33
31
|
"retry": "$retry"
|
|
34
32
|
}
|
|
35
33
|
},
|
|
@@ -45,7 +43,6 @@
|
|
|
45
43
|
"initCommand": "init",
|
|
46
44
|
"workflows": {
|
|
47
45
|
"implement": "/specrails:implement",
|
|
48
|
-
"batch-implement": "/specrails:batch-implement",
|
|
49
46
|
"retry": "/specrails:retry"
|
|
50
47
|
}
|
|
51
48
|
},
|
|
@@ -85,12 +82,21 @@
|
|
|
85
82
|
"<model-id>",
|
|
86
83
|
"--args",
|
|
87
84
|
"<arguments>"
|
|
85
|
+
],
|
|
86
|
+
"renderOnlyArgs": [
|
|
87
|
+
".kimi-code/specrails/run-skill.mjs",
|
|
88
|
+
"--skill",
|
|
89
|
+
"<skill-id>",
|
|
90
|
+
"--model",
|
|
91
|
+
"<model-id>",
|
|
92
|
+
"--args",
|
|
93
|
+
"<arguments>",
|
|
94
|
+
"--render-only"
|
|
88
95
|
]
|
|
89
96
|
},
|
|
90
97
|
"initCommand": "init",
|
|
91
98
|
"workflows": {
|
|
92
99
|
"implement": "/skill:specrails-implement",
|
|
93
|
-
"batch-implement": "/skill:specrails-batch-implement",
|
|
94
100
|
"retry": "/skill:specrails-retry"
|
|
95
101
|
}
|
|
96
102
|
}
|
|
@@ -110,14 +116,14 @@
|
|
|
110
116
|
"file": ".specrails/install-config.yaml",
|
|
111
117
|
"version": 1,
|
|
112
118
|
"fields": {
|
|
113
|
-
"version": "number
|
|
114
|
-
"provider": "string
|
|
119
|
+
"version": "number \u2014 schema version, currently 1",
|
|
120
|
+
"provider": "string \u2014 claude | codex | gemini | kimi",
|
|
115
121
|
"tier": "Deprecated legacy string, tolerated and ignored; all installs use deterministic placement.",
|
|
116
|
-
"agents.selected": "string[]
|
|
117
|
-
"agents.excluded": "string[]
|
|
118
|
-
"models.preset": "string
|
|
119
|
-
"models.defaults.model": "string
|
|
120
|
-
"models.overrides": "Record<safe-agent-id, string>
|
|
122
|
+
"agents.selected": "string[] \u2014 unique lowercase kebab-case agent ids to install (1-64 characters)",
|
|
123
|
+
"agents.excluded": "string[] \u2014 unique lowercase kebab-case agent ids to skip; must not overlap agents.selected",
|
|
124
|
+
"models.preset": "string \u2014 balanced | budget | max; resolved within the selected provider catalog",
|
|
125
|
+
"models.defaults.model": "string \u2014 exact provider model id or configured alias (overrides preset; Kimi: 1-128 characters matching [A-Za-z0-9][A-Za-z0-9._/:-]*; default: k3)",
|
|
126
|
+
"models.overrides": "Record<safe-agent-id, string> \u2014 exact per-agent provider model ids or configured aliases with the same provider-specific validation (highest priority)"
|
|
121
127
|
}
|
|
122
128
|
},
|
|
123
129
|
"checkpoints": {
|
|
@@ -229,9 +235,21 @@
|
|
|
229
235
|
"validate",
|
|
230
236
|
"run",
|
|
231
237
|
"status",
|
|
232
|
-
"resume"
|
|
238
|
+
"resume",
|
|
239
|
+
"prompts",
|
|
240
|
+
"capabilities",
|
|
241
|
+
"evidence",
|
|
242
|
+
"recovery",
|
|
243
|
+
"evaluate",
|
|
244
|
+
"workflows",
|
|
245
|
+
"fork",
|
|
246
|
+
"signal",
|
|
247
|
+
"cancel"
|
|
248
|
+
],
|
|
249
|
+
"cliPresentationOperations": [
|
|
250
|
+
"help"
|
|
233
251
|
],
|
|
234
|
-
"apiOperation": "runtime api emits {type: runtime-api, apiVersion, coreVersion}; does not invoke providers",
|
|
252
|
+
"apiOperation": "runtime api emits {type: runtime-api, apiVersion, coreVersion, runtimeIdentity, workflowVersions, engineVersion, engines, nodeKindsVersion, nodeKinds, capabilities, guardrails}; does not invoke providers",
|
|
235
253
|
"validationTransport": "runtime validate --stdin accepts UTF-8 configuration JSON up to 2 MiB, mutually exclusive with --config",
|
|
236
254
|
"compactStatus": "runtime status --compact omits workflow history, events and outputs, frozen pipeline context and verification command output; retains identities (runId, traceId), phase statuses and visits, pendingApproval, pendingQuestion, usage, completion, acceptance summary and verification metadata",
|
|
237
255
|
"interrupts": "A paused run (exit 2) carries pendingApproval (resume --approve <step>) or pendingQuestion (resume --answer <text>, nonempty, at most 20000 characters); the architect asks only after one autonomous investigation pass unless architect.onLowConfidence is proceed",
|
|
@@ -241,7 +259,7 @@
|
|
|
241
259
|
"configSchemaPath": "schemas/agent-runtime.schema.json",
|
|
242
260
|
"configSchemaExport": "specrails-core/schemas/agent-runtime.schema.json",
|
|
243
261
|
"projectConfigPath": ".specrails/agent-runtime.json",
|
|
244
|
-
"minimumNode": "
|
|
262
|
+
"minimumNode": "22.22.3",
|
|
245
263
|
"platforms": [
|
|
246
264
|
"darwin",
|
|
247
265
|
"win32"
|
|
@@ -260,6 +278,7 @@
|
|
|
260
278
|
"phases": [
|
|
261
279
|
"architect",
|
|
262
280
|
"developer",
|
|
281
|
+
"fixer",
|
|
263
282
|
"verify",
|
|
264
283
|
"reviewer",
|
|
265
284
|
"archive"
|
|
@@ -277,19 +296,92 @@
|
|
|
277
296
|
"specificationFormat": "Architect specs contain complete main-spec replacements, including unchanged requirements; archive does not merge partial delta snippets.",
|
|
278
297
|
"compatibility": "Additive to integration schema 4 and execution context schema 1. Legacy workflows and profile v1 remain supported. Hosts must check RUNTIME_API_VERSION, not infer runtime support from Core major version.",
|
|
279
298
|
"documentation": "docs/agent-runtime.md",
|
|
280
|
-
"instructionsVersion": "
|
|
281
|
-
"workflowVersion": "
|
|
299
|
+
"instructionsVersion": "10",
|
|
300
|
+
"workflowVersion": "7",
|
|
301
|
+
"engines": [
|
|
302
|
+
1,
|
|
303
|
+
2
|
|
304
|
+
],
|
|
305
|
+
"engine": {
|
|
306
|
+
"version": 2,
|
|
307
|
+
"definitionSchema": "schemas/workflow-definition.schema.json",
|
|
308
|
+
"nodeKindsVersion": 7
|
|
309
|
+
},
|
|
310
|
+
"nodeKinds": [
|
|
311
|
+
"prompt",
|
|
312
|
+
"role-turn",
|
|
313
|
+
"decider",
|
|
314
|
+
"verify",
|
|
315
|
+
"shell",
|
|
316
|
+
"artifact-contract",
|
|
317
|
+
"openspec-validate",
|
|
318
|
+
"openspec-archive",
|
|
319
|
+
"condition",
|
|
320
|
+
"end",
|
|
321
|
+
"approval",
|
|
322
|
+
"question",
|
|
323
|
+
"gate",
|
|
324
|
+
"assign",
|
|
325
|
+
"implementation-step",
|
|
326
|
+
"component",
|
|
327
|
+
"map",
|
|
328
|
+
"implementation",
|
|
329
|
+
"join"
|
|
330
|
+
],
|
|
331
|
+
"implementationSteps": {
|
|
332
|
+
"version": 1,
|
|
333
|
+
"kind": "implementation-step",
|
|
334
|
+
"ownership": "Host definitions compose phases and freeze role definitions; Core executes individual operations and evidence gates"
|
|
335
|
+
},
|
|
336
|
+
"engineStatePath": "<backlogRoot>/.specrails/pipeline/<runId>/agent-workflow/run.sqlite",
|
|
337
|
+
"frozenRequest": "agent-runtime-request.json carries workflow {id, version, source: builtin|definition, definitionHash, engine: 1|2}; resume and status select the engine from workflow.engine and a request without the block is a legacy (engine 1) run",
|
|
338
|
+
"builtins": [
|
|
339
|
+
{
|
|
340
|
+
"id": "specrails-implementation",
|
|
341
|
+
"version": "7",
|
|
342
|
+
"deprecated": true
|
|
343
|
+
}
|
|
344
|
+
],
|
|
282
345
|
"developerTools": "The developer role runs with each CLI's autonomous edit+shell mode (claude --tools default --dangerously-skip-permissions with Agent/Task/Skill disallowed; codex workspace-write; gemini --yolo; kimi print mode). Architect and reviewer stay read-only. Claude roles load project settings only (--setting-sources project,local).",
|
|
283
346
|
"verificationPolicy": "Configured commands are optional. The architect proposes commands for repositories without one; repositories with no automated check are admitted and recorded in the receipt as unverifiedRepositories. Unchecked tasks return to the developer as feedback instead of failing the run.",
|
|
284
347
|
"sessionReuse": "Developer correction passes resume the previous provider session (claude --resume, codex exec resume, gemini --resume, kimi --session) with a short correction prompt; an unavailable session falls back to a fresh full turn. Structured roles get one repair turn in-session when their JSON is unusable.",
|
|
285
348
|
"structuredOutput": "Claude receives --json-schema and Codex --output-schema for architect/reviewer replies; other providers are parsed leniently.",
|
|
286
349
|
"resumeBudget": "An explicit resume resets the transition ceiling and grants the developer a fresh maxAttempts budget.",
|
|
287
|
-
"defaultImplementationEngine": true
|
|
350
|
+
"defaultImplementationEngine": true,
|
|
351
|
+
"openRoles": {
|
|
352
|
+
"version": 1,
|
|
353
|
+
"builtinRoles": [
|
|
354
|
+
"architect",
|
|
355
|
+
"developer",
|
|
356
|
+
"reviewer"
|
|
357
|
+
],
|
|
358
|
+
"configField": "roles",
|
|
359
|
+
"roleIdPattern": "^[a-z][a-z0-9-]{0,63}$",
|
|
360
|
+
"access": [
|
|
361
|
+
"read",
|
|
362
|
+
"write"
|
|
363
|
+
],
|
|
364
|
+
"artifacts": [
|
|
365
|
+
"none",
|
|
366
|
+
"tasks-checkboxes",
|
|
367
|
+
"all"
|
|
368
|
+
],
|
|
369
|
+
"instructions": [
|
|
370
|
+
"role",
|
|
371
|
+
"none"
|
|
372
|
+
],
|
|
373
|
+
"customAgentLoop": "free",
|
|
374
|
+
"nativeCommandUnsupported": "native_command_unsupported"
|
|
375
|
+
},
|
|
376
|
+
"workflowAgentSteps": {
|
|
377
|
+
"version": 1,
|
|
378
|
+
"ownership": "Host-defined roles, schemas and gates; Core provides scoped artifact contracts and verified candidate guards"
|
|
379
|
+
}
|
|
288
380
|
},
|
|
289
381
|
"execution": {
|
|
290
382
|
"schemaVersion": 1,
|
|
291
383
|
"contextEnv": "SPECRAILS_EXECUTION_CONTEXT",
|
|
292
|
-
"context": "Absolute JSON file: runId, backlogRoot, backlogPath?, artifactRoot, artifactRepositoryId, repositories[{id,name,path,baseSha?,scope?}], ownership{git,backlog,worktrees:host|core}, specs[{id,title,description,repositoryIds?,acceptanceCriteria?}]. scope (runtime capability repositoryScope) lists the checkout-relative directories a repository is confined to
|
|
384
|
+
"context": "Absolute JSON file: runId, backlogRoot, backlogPath?, artifactRoot, artifactRepositoryId, repositories[{id,name,path,baseSha?,scope?}], ownership{git,backlog,worktrees:host|core}, specs[{id,title,description,repositoryIds?,acceptanceCriteria?}]. scope (runtime capability repositoryScope) lists the checkout-relative directories a repository is confined to \u2014 a package registered inside a larger checkout: commands without cwd run in the first one, model-proposed checks stay inside it, edits outside it are undone after each developer/fixer turn and reviews judge the git change set against the run base.",
|
|
293
385
|
"runtime": ".specrails/runtime/pipeline.mjs",
|
|
294
386
|
"operations": [
|
|
295
387
|
"init",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specrails-core",
|
|
3
|
-
"version": "6.0
|
|
4
|
-
"description": "Agent workflow engine for specrails-desktop: provider-independent installer and programmatic agent runtime for Claude Code
|
|
3
|
+
"version": "6.2.0",
|
|
4
|
+
"description": "Agent workflow engine for specrails-desktop: provider-independent installer and programmatic agent runtime for Claude Code and Codex",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
"./agent-runtime": {
|
|
@@ -9,9 +9,15 @@
|
|
|
9
9
|
"import": "./dist/agent-runtime/index.js",
|
|
10
10
|
"default": "./dist/agent-runtime/index.js"
|
|
11
11
|
},
|
|
12
|
+
"./agent-runtime/engine": {
|
|
13
|
+
"types": "./dist/agent-runtime/engine/index.d.ts",
|
|
14
|
+
"import": "./dist/agent-runtime/engine/index.js",
|
|
15
|
+
"default": "./dist/agent-runtime/engine/index.js"
|
|
16
|
+
},
|
|
12
17
|
"./package.json": "./package.json",
|
|
13
18
|
"./integration-contract.json": "./integration-contract.json",
|
|
14
|
-
"./schemas/agent-runtime.schema.json": "./schemas/agent-runtime.schema.json"
|
|
19
|
+
"./schemas/agent-runtime.schema.json": "./schemas/agent-runtime.schema.json",
|
|
20
|
+
"./schemas/workflow-definition.schema.json": "./schemas/workflow-definition.schema.json"
|
|
15
21
|
},
|
|
16
22
|
"bin": {
|
|
17
23
|
"specrails-core": "bin/specrails-core.mjs"
|
|
@@ -25,7 +31,7 @@
|
|
|
25
31
|
"pinned-versions.json"
|
|
26
32
|
],
|
|
27
33
|
"engines": {
|
|
28
|
-
"node": ">=
|
|
34
|
+
"node": ">=22.22.3"
|
|
29
35
|
},
|
|
30
36
|
"repository": {
|
|
31
37
|
"type": "git",
|
|
@@ -66,7 +72,8 @@
|
|
|
66
72
|
"test:coverage": "npm run build && vitest run --coverage",
|
|
67
73
|
"dogfood": "npm run build && node bin/specrails-core.mjs init --yes",
|
|
68
74
|
"prepack": "npm run build",
|
|
69
|
-
"test:scripts": "node --test scripts/release-utils.test.mjs scripts/ci-tests.test.mjs",
|
|
75
|
+
"test:scripts": "node --test scripts/release-utils.test.mjs scripts/ci-tests.test.mjs scripts/evaluate-definition-corpus.test.mjs",
|
|
76
|
+
"test:engine-spikes": "npm run build && node scripts/run-engine-spikes.mjs",
|
|
70
77
|
"check:package": "npm run build && node scripts/verify-package.mjs",
|
|
71
78
|
"ci": "npm run typecheck && npm run test:scripts && npm run test:coverage && npm run check:package"
|
|
72
79
|
},
|
|
@@ -76,6 +83,7 @@
|
|
|
76
83
|
"@langchain/langgraph": "1.4.14",
|
|
77
84
|
"@langchain/langgraph-checkpoint": "1.1.5",
|
|
78
85
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
86
|
+
"ajv": "^8.20.0",
|
|
79
87
|
"cross-spawn": "7.0.6",
|
|
80
88
|
"js-yaml": "^4.1.0",
|
|
81
89
|
"picocolors": "^1.1.1",
|
|
@@ -86,7 +94,6 @@
|
|
|
86
94
|
"@types/js-yaml": "^4.0.9",
|
|
87
95
|
"@types/node": "^22.10.2",
|
|
88
96
|
"@vitest/coverage-v8": "^4.1.5",
|
|
89
|
-
"ajv": "^8.20.0",
|
|
90
97
|
"typescript": "^5.7.2",
|
|
91
98
|
"vitest": "^4.1.5"
|
|
92
99
|
},
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"verification": { "type": "object", "additionalProperties": false, "properties": { "maxConcurrency": { "type": "integer", "minimum": 1, "maximum": 4 } } }
|
|
14
14
|
} },
|
|
15
15
|
"guardrails": { "type": "object", "additionalProperties": false, "properties": { "plan-validation": { "type": "boolean" }, "genuine-blocking-question": { "type": "boolean" }, "plan-language-hint": { "type": "boolean" }, "frozen-plan-writes": { "type": "boolean" }, "primary-language": { "type": "boolean" }, "duplicate-sibling": { "type": "boolean" }, "one-test-per-module": { "type": "boolean" }, "empty-write": { "type": "boolean" }, "evidence-gated-ticking": { "type": "boolean" }, "inventory-retry": { "type": "boolean" }, "synthetic-corrections": { "type": "boolean" }, "silent-group-closure": { "type": "boolean" }, "verify-per-group": { "type": "boolean" }, "test-reachability": { "type": "boolean" }, "exit-code-honesty": { "type": "boolean" }, "environment-repair": { "type": "boolean" }, "lockfile-repair": { "type": "boolean" }, "verify-idle-timeout": { "type": "boolean" } } },
|
|
16
|
-
"rolePrompts": { "type": "object", "additionalProperties":
|
|
16
|
+
"rolePrompts": { "type": "object", "propertyNames": { "pattern": "^[a-z][a-z0-9-]{0,63}$" }, "additionalProperties": { "type": "string", "minLength": 1, "maxLength": 20000, "pattern": "\\S" }, "properties": {
|
|
17
17
|
"architect": { "type": "string", "minLength": 1, "maxLength": 20000, "pattern": "\\S" },
|
|
18
18
|
"developer": { "type": "string", "minLength": 1, "maxLength": 20000, "pattern": "\\S" },
|
|
19
19
|
"reviewer": { "type": "string", "minLength": 1, "maxLength": 20000, "pattern": "\\S" },
|
|
@@ -35,6 +35,98 @@
|
|
|
35
35
|
} }
|
|
36
36
|
] } },
|
|
37
37
|
"fixer": { "$ref": "#/definitions/agent" },
|
|
38
|
+
"roles": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"propertyNames": {
|
|
41
|
+
"pattern": "^[a-z][a-z0-9-]{0,63}$",
|
|
42
|
+
"not": {
|
|
43
|
+
"const": "fixer"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"additionalProperties": {
|
|
47
|
+
"type": "object",
|
|
48
|
+
"additionalProperties": false,
|
|
49
|
+
"required": [
|
|
50
|
+
"provider",
|
|
51
|
+
"access",
|
|
52
|
+
"artifacts"
|
|
53
|
+
],
|
|
54
|
+
"dependencies": {
|
|
55
|
+
"escalation": [
|
|
56
|
+
"model"
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
"properties": {
|
|
60
|
+
"effort": {
|
|
61
|
+
"$ref": "#/definitions/effort"
|
|
62
|
+
},
|
|
63
|
+
"thinking": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"enum": [
|
|
66
|
+
"on",
|
|
67
|
+
"off"
|
|
68
|
+
],
|
|
69
|
+
"description": "OpenAI-compatible engines only: private thinking (chat_template_kwargs.enable_thinking). Default off."
|
|
70
|
+
},
|
|
71
|
+
"escalation": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"additionalProperties": false,
|
|
74
|
+
"required": [
|
|
75
|
+
"model"
|
|
76
|
+
],
|
|
77
|
+
"properties": {
|
|
78
|
+
"model": {
|
|
79
|
+
"type": "string",
|
|
80
|
+
"minLength": 1,
|
|
81
|
+
"maxLength": 256,
|
|
82
|
+
"pattern": "^[^-\\r\\n\\u0000][^\\r\\n\\u0000]*$"
|
|
83
|
+
},
|
|
84
|
+
"effort": {
|
|
85
|
+
"$ref": "#/definitions/effort"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"provider": {
|
|
90
|
+
"$ref": "#/definitions/id"
|
|
91
|
+
},
|
|
92
|
+
"model": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"minLength": 1,
|
|
95
|
+
"maxLength": 256,
|
|
96
|
+
"pattern": "^[^-\\r\\n\\u0000][^\\r\\n\\u0000]*$"
|
|
97
|
+
},
|
|
98
|
+
"maxTurns": {
|
|
99
|
+
"$ref": "#/definitions/positiveInteger"
|
|
100
|
+
},
|
|
101
|
+
"access": {
|
|
102
|
+
"enum": [
|
|
103
|
+
"read",
|
|
104
|
+
"write"
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
"artifacts": {
|
|
108
|
+
"enum": [
|
|
109
|
+
"none",
|
|
110
|
+
"tasks-checkboxes",
|
|
111
|
+
"all"
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
"prompt": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"minLength": 1,
|
|
117
|
+
"maxLength": 20000,
|
|
118
|
+
"pattern": "\\S"
|
|
119
|
+
},
|
|
120
|
+
"openspecSkill": {
|
|
121
|
+
"enum": [
|
|
122
|
+
"openspec-ff-change",
|
|
123
|
+
"openspec-apply-change",
|
|
124
|
+
"openspec-verify-change"
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
38
130
|
"agents": { "type": "object", "additionalProperties": false, "required": ["architect", "developer", "reviewer"], "properties": {
|
|
39
131
|
"architect": { "$ref": "#/definitions/agent" }, "developer": { "$ref": "#/definitions/agent" }, "reviewer": { "$ref": "#/definitions/agent" }
|
|
40
132
|
} },
|