specrails-core 5.3.0 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/agent-runtime/capabilities.d.ts +27 -0
  2. package/dist/agent-runtime/capabilities.js +73 -0
  3. package/dist/agent-runtime/capabilities.js.map +1 -0
  4. package/dist/agent-runtime/cli-executor.d.ts +9 -0
  5. package/dist/agent-runtime/cli-executor.js +100 -30
  6. package/dist/agent-runtime/cli-executor.js.map +1 -1
  7. package/dist/agent-runtime/cli.d.ts +1 -0
  8. package/dist/agent-runtime/cli.js +59 -11
  9. package/dist/agent-runtime/cli.js.map +1 -1
  10. package/dist/agent-runtime/codex-schema.d.ts +4 -0
  11. package/dist/agent-runtime/codex-schema.js +31 -0
  12. package/dist/agent-runtime/codex-schema.js.map +1 -0
  13. package/dist/agent-runtime/config.d.ts +4 -0
  14. package/dist/agent-runtime/config.js +110 -9
  15. package/dist/agent-runtime/config.js.map +1 -1
  16. package/dist/agent-runtime/core-host.d.ts +9 -1
  17. package/dist/agent-runtime/core-host.js +55 -20
  18. package/dist/agent-runtime/core-host.js.map +1 -1
  19. package/dist/agent-runtime/efficiency-summary.d.ts +67 -0
  20. package/dist/agent-runtime/efficiency-summary.js +52 -0
  21. package/dist/agent-runtime/efficiency-summary.js.map +1 -0
  22. package/dist/agent-runtime/efficiency-types.d.ts +60 -0
  23. package/dist/agent-runtime/efficiency-types.js +8 -0
  24. package/dist/agent-runtime/efficiency-types.js.map +1 -0
  25. package/dist/agent-runtime/efficiency.d.ts +5 -0
  26. package/dist/agent-runtime/efficiency.js +35 -0
  27. package/dist/agent-runtime/efficiency.js.map +1 -0
  28. package/dist/agent-runtime/evaluation-corpus.d.ts +13 -0
  29. package/dist/agent-runtime/evaluation-corpus.js +8 -0
  30. package/dist/agent-runtime/evaluation-corpus.js.map +1 -0
  31. package/dist/agent-runtime/evaluation.d.ts +43 -0
  32. package/dist/agent-runtime/evaluation.js +171 -0
  33. package/dist/agent-runtime/evaluation.js.map +1 -0
  34. package/dist/agent-runtime/executor-types.d.ts +35 -2
  35. package/dist/agent-runtime/executor-types.js.map +1 -1
  36. package/dist/agent-runtime/executors.d.ts +1 -0
  37. package/dist/agent-runtime/executors.js +4 -0
  38. package/dist/agent-runtime/executors.js.map +1 -1
  39. package/dist/agent-runtime/graph/artifacts.d.ts +8 -22
  40. package/dist/agent-runtime/graph/artifacts.js +99 -73
  41. package/dist/agent-runtime/graph/artifacts.js.map +1 -1
  42. package/dist/agent-runtime/graph/nodes.d.ts +3 -0
  43. package/dist/agent-runtime/graph/nodes.js +73 -26
  44. package/dist/agent-runtime/graph/nodes.js.map +1 -1
  45. package/dist/agent-runtime/graph/roles.d.ts +4 -1
  46. package/dist/agent-runtime/graph/roles.js +100 -36
  47. package/dist/agent-runtime/graph/roles.js.map +1 -1
  48. package/dist/agent-runtime/graph/state.d.ts +8 -0
  49. package/dist/agent-runtime/graph/state.js.map +1 -1
  50. package/dist/agent-runtime/index.d.ts +7 -1
  51. package/dist/agent-runtime/index.js +7 -1
  52. package/dist/agent-runtime/index.js.map +1 -1
  53. package/dist/agent-runtime/kimi-acp.d.ts +4 -0
  54. package/dist/agent-runtime/kimi-acp.js +20 -9
  55. package/dist/agent-runtime/kimi-acp.js.map +1 -1
  56. package/dist/agent-runtime/openai-executor.d.ts +8 -0
  57. package/dist/agent-runtime/openai-executor.js +28 -10
  58. package/dist/agent-runtime/openai-executor.js.map +1 -1
  59. package/dist/agent-runtime/openspec-tool-server.d.ts +1 -0
  60. package/dist/agent-runtime/openspec-tool-server.js +37 -0
  61. package/dist/agent-runtime/openspec-tool-server.js.map +1 -0
  62. package/dist/agent-runtime/openspec.d.ts +123 -0
  63. package/dist/agent-runtime/openspec.js +263 -0
  64. package/dist/agent-runtime/openspec.js.map +1 -0
  65. package/dist/agent-runtime/prompts.d.ts +5 -1
  66. package/dist/agent-runtime/prompts.js +59 -40
  67. package/dist/agent-runtime/prompts.js.map +1 -1
  68. package/dist/agent-runtime/provider-diagnostic.d.ts +2 -0
  69. package/dist/agent-runtime/provider-diagnostic.js +25 -0
  70. package/dist/agent-runtime/provider-diagnostic.js.map +1 -0
  71. package/dist/agent-runtime/repository-context.d.ts +25 -0
  72. package/dist/agent-runtime/repository-context.js +100 -0
  73. package/dist/agent-runtime/repository-context.js.map +1 -0
  74. package/dist/agent-runtime/review-context.d.ts +14 -0
  75. package/dist/agent-runtime/review-context.js +41 -0
  76. package/dist/agent-runtime/review-context.js.map +1 -0
  77. package/dist/agent-runtime/role-routing.d.ts +10 -0
  78. package/dist/agent-runtime/role-routing.js +29 -0
  79. package/dist/agent-runtime/role-routing.js.map +1 -0
  80. package/dist/agent-runtime/role-state.d.ts +19 -0
  81. package/dist/agent-runtime/role-state.js +24 -0
  82. package/dist/agent-runtime/role-state.js.map +1 -0
  83. package/dist/agent-runtime/runtime-identity.d.ts +11 -0
  84. package/dist/agent-runtime/runtime-identity.js +33 -0
  85. package/dist/agent-runtime/runtime-identity.js.map +1 -0
  86. package/dist/agent-runtime/tool-event.d.ts +3 -0
  87. package/dist/agent-runtime/tool-event.js +24 -0
  88. package/dist/agent-runtime/tool-event.js.map +1 -0
  89. package/dist/agent-runtime/verification-plan.d.ts +55 -0
  90. package/dist/agent-runtime/verification-plan.js +206 -0
  91. package/dist/agent-runtime/verification-plan.js.map +1 -0
  92. package/dist/agent-runtime/workflow-types.d.ts +17 -1
  93. package/dist/agent-runtime/workflow.js +28 -1
  94. package/dist/agent-runtime/workflow.js.map +1 -1
  95. package/dist/agent-runtime/workspace-tools.d.ts +4 -0
  96. package/dist/agent-runtime/workspace-tools.js +182 -20
  97. package/dist/agent-runtime/workspace-tools.js.map +1 -1
  98. package/dist/installer/phases/scaffold.js +39 -109
  99. package/dist/installer/phases/scaffold.js.map +1 -1
  100. package/dist/installer/runtime/pipeline-state.d.ts +142 -1
  101. package/dist/installer/runtime/pipeline-state.js +477 -28
  102. package/dist/installer/runtime/pipeline-state.js.map +1 -1
  103. package/docs/agent-runtime-efficiency.md +65 -0
  104. package/docs/agent-runtime.md +86 -15
  105. package/integration-contract.json +2 -1
  106. package/package.json +5 -2
  107. package/schemas/agent-runtime.schema.json +25 -3
  108. package/schemas/fixtures/runtime-efficiency-summary.v1.json +790 -0
  109. package/templates/codex-skills/batch-implement/SKILL.md +33 -58
  110. package/templates/codex-skills/implement/SKILL.md +21 -124
  111. package/templates/codex-skills/retry/SKILL.md +8 -34
  112. package/templates/commands/specrails/batch-implement.md +21 -16
  113. package/templates/commands/specrails/implement.md +17 -276
  114. package/templates/commands/specrails/retry.md +6 -34
  115. package/templates/gemini-commands/batch-implement.toml +34 -28
  116. package/templates/gemini-commands/implement.toml +34 -55
  117. package/templates/gemini-commands/retry.toml +10 -16
@@ -1,13 +1,21 @@
1
+ import { repositoryContextSnapshot, renderRepositoryContext } from '../repository-context.js';
2
+ import { readRoleState, writeRoleState } from '../role-state.js';
3
+ import { fingerprint } from '../durable-store.js';
4
+ import { selectRoleRoute } from '../role-routing.js';
5
+ import { ROLE_SKILLS, OPENSPEC_VERSION, OpenSpecTools, OpenSpecParticipationError, openSpecRepairPrompt } from '../openspec.js';
1
6
  import path from 'node:path';
2
- import { AgentExecutionError } from '../executor-types.js';
3
- import { repairInstructions } from '../prompts.js';
7
+ import { performance } from 'node:perf_hooks';
8
+ import { frozenAcceptanceCriteria, pipelineStateDirectory } from '../../installer/runtime/pipeline-state.js';
9
+ import { AgentExecutionError, unknownUsage } from '../executor-types.js';
10
+ import { sumCacheUsage } from '../efficiency-types.js';
11
+ import { ROLE_INSTRUCTIONS_VERSION, repairInstructions } from '../prompts.js';
4
12
  import { parseAgentObject } from './artifacts.js';
5
13
  /** Executor failures that mean "this session cannot be continued", not "the role failed". */
6
- export const SESSION_FALLBACK_CODES = new Set(['provider_execution_error', 'provider_spawn_error', 'incomplete_response', 'invalid_response', 'provider_not_found']);
14
+ export const SESSION_FALLBACK_CODES = new Set(['session_not_found', 'session_expired', 'session_unsupported']);
7
15
  const REPAIRABLE = /Invalid|Expected|requires|Duplicate|malformed/i;
8
16
  export function sumUsage(a, b) {
9
17
  const add = (x, y) => x === null || y === null ? null : x + y;
10
- return { inputTokens: add(a.inputTokens, b.inputTokens), outputTokens: add(a.outputTokens, b.outputTokens), costUsd: add(a.costUsd, b.costUsd) };
18
+ return { inputTokens: add(a.inputTokens, b.inputTokens), outputTokens: add(a.outputTokens, b.outputTokens), costUsd: add(a.costUsd, b.costUsd), ...sumCacheUsage([a, b]) };
11
19
  }
12
20
  /**
13
21
  * One role turn against the configured executor: budget-aware request, live
@@ -45,74 +53,130 @@ export function createRoleInvoker(deps) {
45
53
  }
46
54
  catch { /* Observer cannot replay agent effects. */ } };
47
55
  const execute = async (role, step, prompt, structured, extra) => {
48
- const selected = config.agents[role];
56
+ const directory = deps.openspec?.[role].stateDirectory ?? path.join(pipelineStateDirectory(context), 'agent-workflow');
57
+ const saved = readRoleState(directory);
49
58
  const budget = step.remainingBudget();
59
+ if (budget.maxTokens === 0 || budget.maxCostUsd === 0 || step.signal.aborted)
60
+ throw new AgentExecutionError('No budget remains for another role invocation', step.signal.aborted ? 'aborted' : 'budget_exhausted', { inputTokens: 0, outputTokens: 0, costUsd: 0 });
61
+ const kind = extra.kind ?? (extra.resumeSessionId ? 'correction' : 'initial');
62
+ const route = selectRoleRoute(role, config.agents[role], kind, step.checkpoint, saved.routes[role]);
63
+ const selected = route.selection;
64
+ const capabilities = await registry.capabilities(selected.provider, selected.model);
65
+ const identity = fingerprint({ role, selected, transport: capabilities.transport, instructionsVersion: ROLE_INSTRUCTIONS_VERSION, provider: config.providers.find(provider => provider.id === selected.provider) ?? selected.provider, definition: config.rolePrompts?.[role] ?? null, openspec: deps.openspec?.[role] ?? null, context });
66
+ const previous = saved.sessions[role];
67
+ const resumeSessionId = capabilities.continuation === 'supported' && previous?.identity === identity && previous.sessionId === extra.resumeSessionId ? extra.resumeSessionId : undefined;
68
+ const snapshot = repositoryContextSnapshot(context);
69
+ const incremental = Boolean(resumeSessionId && config.efficiency?.contextMode !== 'full');
70
+ const packet = renderRepositoryContext(snapshot, incremental ? previous?.context : undefined);
71
+ const rolePrompt = !resumeSessionId && extra.fallbackPrompt ? extra.fallbackPrompt : prompt;
72
+ const obligations = '\nCurrent frozen acceptance obligations (all remain required):\n' + JSON.stringify(frozenAcceptanceCriteria(context));
73
+ const fullPrompt = rolePrompt + obligations + '\n\n' + packet;
74
+ if (saved.routes[role]?.tier !== route.tier)
75
+ note(role, `Role route: ${selected.provider}/${selected.model ?? 'provider default'} — ${route.reason}`);
76
+ saved.routes[role] = { tier: route.tier, reason: route.reason, attemptId: step.attemptId };
77
+ writeRoleState(directory, saved);
78
+ const measurement = { provider: selected.provider, ...(selected.model ? { model: selected.model } : {}),
79
+ contextMode: incremental ? 'incremental' : 'full', promptBytes: Buffer.byteLength(fullPrompt), contextBytes: Buffer.byteLength(packet), handoffBytes: Buffer.byteLength(rolePrompt), requestedEffort: selected.effort ?? null,
80
+ kind, tier: route.tier, routeReason: route.reason };
81
+ const invocationIdentity = await step.reportInvocationStarted?.(measurement);
82
+ const started = performance.now();
83
+ let toolCalls = 0, succeeded = false, usageReported = false, usage = unknownUsage();
84
+ const onEvent = forward(role, structured);
50
85
  try {
86
+ if (deps.openspec?.[role])
87
+ note(role, `OpenSpec ${OPENSPEC_VERSION}: ${ROLE_SKILLS[role]} (official skill document through scoped tools).`);
51
88
  const result = await registry.execute(selected.provider, {
52
- role, prompt, cwd: context.artifactRoot, allowedRoots: context.repositories.map(repo => repo.path),
53
- model: selected.model, maxTurns: selected.maxTurns, signal: step.signal,
89
+ role, prompt: fullPrompt, openspec: deps.openspec?.[role] ? { ...deps.openspec[role], ...(role === 'architect' ? {} : { evidenceScope: { backlogRoot: context.backlogRoot, runId: context.runId } }) } : undefined, cwd: context.artifactRoot, allowedRoots: context.repositories.map(repo => repo.path),
90
+ model: selected.model, effort: selected.effort, maxTurns: selected.maxTurns, signal: step.signal,
54
91
  timeoutMs: config.limits?.timeoutMs,
55
92
  maxTokens: budget.maxTokens, maxCostUsd: budget.maxCostUsd,
56
- ...extra, onEvent: forward(role, structured),
93
+ resumeSessionId, outputSchema: extra.outputSchema, onEvent: event => { if (event.kind === 'tool-start')
94
+ toolCalls++; onEvent(event); },
57
95
  });
96
+ usage = result.usage;
58
97
  step.reportUsage(result.usage);
98
+ usageReported = true;
99
+ if (result.sessionId && /^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$/.test(result.sessionId))
100
+ saved.sessions[role] = { identity, sessionId: result.sessionId, context: snapshot };
101
+ else
102
+ delete saved.sessions[role];
103
+ writeRoleState(directory, saved);
104
+ succeeded = true;
59
105
  return result;
60
106
  }
61
107
  catch (error) {
62
- if (error instanceof AgentExecutionError)
63
- step.reportUsage(error.usage);
108
+ if (!usageReported) {
109
+ usage = error instanceof AgentExecutionError ? error.usage : unknownUsage();
110
+ step.reportUsage(usage);
111
+ }
64
112
  throw error;
65
113
  }
114
+ finally {
115
+ await step.reportInvocation?.({ ...measurement, ...invocationIdentity, status: succeeded ? 'succeeded' : 'failed', durationMs: Math.max(0, performance.now() - started), toolCalls, usage });
116
+ }
66
117
  };
67
118
  return async (role, step, options, accept) => {
68
119
  const structured = options.structured === true;
120
+ const workflow = deps.openspec?.[role] ? new OpenSpecTools(deps.openspec[role]) : undefined;
121
+ const cursor = workflow?.participationCursor() ?? 0;
122
+ const evaluate = (result) => {
123
+ let output, parseError;
124
+ if (structured) {
125
+ try {
126
+ output = result.structured ?? parseAgentObject(result.text);
127
+ }
128
+ catch (error) {
129
+ parseError = error;
130
+ }
131
+ }
132
+ // A genuine architect question can precede artifact creation. Completed
133
+ // role results must prove this invocation used the workflow, not an old visit.
134
+ if (!(role === 'architect' && output?.confidence === 'low'))
135
+ workflow?.assertParticipation(cursor);
136
+ if (structured && !output && !options.lenient)
137
+ throw new Error('Invalid structured role response: ' + (parseError instanceof Error ? parseError.message : 'missing object'));
138
+ return { ok: true, value: accept(output, result.text, result), text: result.text, result };
139
+ };
69
140
  try {
70
141
  let result;
71
142
  if (options.resumeSessionId && options.fallbackPrompt) {
72
143
  // A correction pass continues the role's own session: the work it did and
73
144
  // the reasons behind it are already in context.
74
145
  try {
75
- result = await execute(role, step, options.prompt, structured, { resumeSessionId: options.resumeSessionId, outputSchema: options.outputSchema });
146
+ result = await execute(role, step, options.prompt, structured, { kind: options.kind, resumeSessionId: options.resumeSessionId, outputSchema: options.outputSchema, fallbackPrompt: options.fallbackPrompt });
76
147
  }
77
148
  catch (error) {
78
149
  if (!(error instanceof AgentExecutionError) || !SESSION_FALLBACK_CODES.has(error.code))
79
150
  throw error;
80
151
  note(role, `Previous ${role} session is unavailable; starting a fresh ${role} turn with the same instructions.`);
81
- result = await execute(role, step, options.fallbackPrompt, structured, { outputSchema: options.outputSchema });
152
+ result = await execute(role, step, options.fallbackPrompt, structured, { kind: 'session-fallback', outputSchema: options.outputSchema });
82
153
  }
83
154
  }
84
155
  else {
85
- result = await execute(role, step, options.prompt, structured, { resumeSessionId: options.resumeSessionId, outputSchema: options.outputSchema });
156
+ result = await execute(role, step, options.prompt, structured, { kind: options.kind, resumeSessionId: options.resumeSessionId, outputSchema: options.outputSchema, fallbackPrompt: options.fallbackPrompt });
86
157
  }
87
- if (!structured)
88
- return { ok: true, value: accept(undefined, result.text, result), text: result.text, result };
89
- let output, problem;
158
+ let problem, omittedWorkflow = false;
90
159
  try {
91
- output = result.structured ?? parseAgentObject(result.text);
160
+ return evaluate(result);
92
161
  }
93
162
  catch (error) {
94
163
  problem = error instanceof Error ? error.message : String(error);
164
+ omittedWorkflow = error instanceof OpenSpecParticipationError;
165
+ if (!omittedWorkflow && !REPAIRABLE.test(problem))
166
+ return { ok: false, error: problem };
95
167
  }
96
- if (!output && options.lenient)
97
- return { ok: true, value: accept(undefined, result.text, result), text: result.text, result };
98
- if (output) {
99
- try {
100
- return { ok: true, value: accept(output, result.text, result), text: result.text, result };
101
- }
102
- catch (error) {
103
- problem = error instanceof Error ? error.message : String(error);
104
- if (!REPAIRABLE.test(problem))
105
- return { ok: false, error: problem };
106
- }
107
- }
108
- // One bounded repair turn inside the same session: the role keeps its work
109
- // and only resends the object. Without a session the role starts over once.
110
- if (!result.sessionId)
111
- return { ok: false, error: problem ?? 'Unusable structured reply' };
112
- note(role, `The ${role} reply was not a valid result (${problem}); asking the same session to resend it.`);
113
- const repaired = await execute(role, step, repairInstructions(role, problem), structured, { resumeSessionId: result.sessionId, outputSchema: options.outputSchema });
168
+ // A single repair budget covers protocol omissions and malformed output.
169
+ // Use the same provider session when possible; sessionless APIs receive the
170
+ // complete original role prompt and existing artifacts, never another role.
171
+ const repair = omittedWorkflow ? openSpecRepairPrompt(workflow.context) : repairInstructions(role, problem);
172
+ note(role, omittedWorkflow
173
+ ? `The ${role} omitted its required OpenSpec workflow; requesting one correction in the same role before accepting the result.`
174
+ : `The ${role} reply was not a valid result (${problem}); asking the same session to resend it.`);
175
+ const repaired = await execute(role, step, result.sessionId ? repair : (options.fallbackPrompt ?? options.prompt) + '\n' + repair, structured, { kind: 'repair', resumeSessionId: result.sessionId, outputSchema: options.outputSchema,
176
+ fallbackPrompt: (options.fallbackPrompt ?? options.prompt) + '\nPrevious response (bounded):\n' + result.text.slice(-32_000) + '\n' + repair,
177
+ });
114
178
  try {
115
- return { ok: true, value: accept(repaired.structured ?? parseAgentObject(repaired.text), repaired.text, repaired), text: repaired.text, result: repaired };
179
+ return evaluate(repaired);
116
180
  }
117
181
  catch (error) {
118
182
  return { ok: false, error: error instanceof Error ? error.message : String(error) };
@@ -1 +1 @@
1
- {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../src/agent-runtime/graph/roles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../src/agent-runtime/graph/roles.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  import type { VerificationCommand } from '../../installer/runtime/pipeline-state.js';
2
2
  export type DesignConfidence = 'high' | 'medium' | 'low';
3
3
  export interface ArchitectureRecord {
4
+ planningDepth?: 'focused' | 'full';
5
+ planningReason?: string;
6
+ referencePatterns?: string[];
7
+ riskFlags?: string[];
4
8
  change: string;
5
9
  tasks: number;
6
10
  specs: string[];
@@ -16,6 +20,7 @@ export interface DeveloperRecord {
16
20
  sessionId?: string;
17
21
  files: string[];
18
22
  tests: string[];
23
+ verificationChecks?: import('../verification-plan.js').ProposedCheck[];
19
24
  verification?: string;
20
25
  incomplete: Array<{
21
26
  task: string;
@@ -31,6 +36,7 @@ export interface VerificationRecord {
31
36
  incompleteTasks?: string[];
32
37
  unverifiedRepositories: string[];
33
38
  commands: Array<{
39
+ evidenceId?: string;
34
40
  repositoryId: string;
35
41
  command: string;
36
42
  args: string[];
@@ -39,6 +45,8 @@ export interface VerificationRecord {
39
45
  }>;
40
46
  }
41
47
  export interface ReviewRecord {
48
+ sessionId?: string;
49
+ manifest?: import('../review-context.js').ReviewManifest;
42
50
  approved: boolean;
43
51
  summary: string;
44
52
  issues: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/agent-runtime/graph/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AA2CjD,MAAM,OAAO,GAAG,GAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,SAAY,EAAE,IAAO,EAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;AAE1E;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;IACvC,wFAAwF;IACxF,IAAI,EAAE,UAAU,CAAwB,EAAE,GAAG,OAAO,EAAyB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IACnG,sBAAsB,EAAE,UAAU,CAAW,EAAE,GAAG,OAAO,EAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC3F,YAAY,EAAE,UAAU,CAA4B,EAAE,GAAG,OAAO,EAA6B,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACrH,WAAW,EAAE,UAAU,CAAyB,EAAE,GAAG,OAAO,EAA0B,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9G,YAAY,EAAE,UAAU,CAA4B,EAAE,GAAG,OAAO,EAA6B,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACrH,MAAM,EAAE,UAAU,CAAsB,EAAE,GAAG,OAAO,EAAuB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACnG,uEAAuE;IACvE,OAAO,EAAE,UAAU,CAAW,EAAE,OAAO,EAAE,CAAC,QAAkB,EAAE,IAAc,EAAY,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IACvI,8FAA8F;IAC9F,YAAY,EAAE,UAAU,CAAS,EAAE,GAAG,OAAO,EAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IAC5E,QAAQ,EAAE,UAAU,CAAuB,EAAE,GAAG,OAAO,EAAwB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;CACxG,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,eAAe,GAA0B,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/agent-runtime/graph/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAkDjD,MAAM,OAAO,GAAG,GAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,SAAY,EAAE,IAAO,EAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;AAE1E;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;IACvC,wFAAwF;IACxF,IAAI,EAAE,UAAU,CAAwB,EAAE,GAAG,OAAO,EAAyB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IACnG,sBAAsB,EAAE,UAAU,CAAW,EAAE,GAAG,OAAO,EAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC3F,YAAY,EAAE,UAAU,CAA4B,EAAE,GAAG,OAAO,EAA6B,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACrH,WAAW,EAAE,UAAU,CAAyB,EAAE,GAAG,OAAO,EAA0B,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9G,YAAY,EAAE,UAAU,CAA4B,EAAE,GAAG,OAAO,EAA6B,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACrH,MAAM,EAAE,UAAU,CAAsB,EAAE,GAAG,OAAO,EAAuB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACnG,uEAAuE;IACvE,OAAO,EAAE,UAAU,CAAW,EAAE,OAAO,EAAE,CAAC,QAAkB,EAAE,IAAc,EAAY,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IACvI,8FAA8F;IAC9F,YAAY,EAAE,UAAU,CAAS,EAAE,GAAG,OAAO,EAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IAC5E,QAAQ,EAAE,UAAU,CAAuB,EAAE,GAAG,OAAO,EAAwB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;CACxG,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,eAAe,GAA0B,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA"}
@@ -1,7 +1,10 @@
1
1
  /** Hosts define graph state with LangGraph's Annotation without a direct LangGraph dependency. */
2
2
  export { Annotation } from '@langchain/langgraph';
3
3
  export * from './executor-types.js';
4
+ export * from './efficiency.js';
4
5
  export * from './config.js';
6
+ export * from './capabilities.js';
7
+ export * from './runtime-identity.js';
5
8
  export * from './executors.js';
6
9
  export * from './workflow.js';
7
10
  export * from './core-host.js';
@@ -11,4 +14,7 @@ export { DEFAULT_REVIEW_POLICY, REVIEW_ASPECTS, evaluateReview, resolveReviewPol
11
14
  export { createRoleInvoker, type Accept, type InvokeOptions, type InvokeOutcome, type RoleInvoker, type RoleInvokerDeps } from './graph/roles.js';
12
15
  export { parseAgentObject } from './graph/artifacts.js';
13
16
  export { FileCheckpointSaver, type GraphStoreIO, type SerializedGraphStore } from './graph-checkpointer.js';
14
- export { ARCHITECT_OUTPUT_SCHEMA, DEVELOPER_OUTPUT_SCHEMA, REVIEW_OUTPUT_SCHEMA, ROLE_INSTRUCTIONS_VERSION, correctionInstructions, deepenInstructions, repairInstructions, roleInstructions, type FrozenCriterion, type RoleFeedback, type RoleInstructionOptions, } from './prompts.js';
17
+ export { ARCHITECT_OUTPUT_SCHEMA, DEVELOPER_OUTPUT_SCHEMA, REVIEW_OUTPUT_SCHEMA, ROLE_INSTRUCTIONS_VERSION, rolePromptDefaults, correctionInstructions, deepenInstructions, repairInstructions, roleInstructions, type FrozenCriterion, type RoleFeedback, type RoleInstructionOptions, } from './prompts.js';
18
+ export { OPENSPEC_VERSION, ROLE_SKILLS, type OpenSpecRoleContext } from './openspec.js';
19
+ export * from './efficiency-summary.js';
20
+ export { readVerificationEvidence, type VerificationEvidenceQuery } from '../installer/runtime/pipeline-state.js';
@@ -1,7 +1,10 @@
1
1
  /** Hosts define graph state with LangGraph's Annotation without a direct LangGraph dependency. */
2
2
  export { Annotation } from '@langchain/langgraph';
3
3
  export * from './executor-types.js';
4
+ export * from './efficiency.js';
4
5
  export * from './config.js';
6
+ export * from './capabilities.js';
7
+ export * from './runtime-identity.js';
5
8
  export * from './executors.js';
6
9
  export * from './workflow.js';
7
10
  export * from './core-host.js';
@@ -11,5 +14,8 @@ export { DEFAULT_REVIEW_POLICY, REVIEW_ASPECTS, evaluateReview, resolveReviewPol
11
14
  export { createRoleInvoker } from './graph/roles.js';
12
15
  export { parseAgentObject } from './graph/artifacts.js';
13
16
  export { FileCheckpointSaver } from './graph-checkpointer.js';
14
- export { ARCHITECT_OUTPUT_SCHEMA, DEVELOPER_OUTPUT_SCHEMA, REVIEW_OUTPUT_SCHEMA, ROLE_INSTRUCTIONS_VERSION, correctionInstructions, deepenInstructions, repairInstructions, roleInstructions, } from './prompts.js';
17
+ export { ARCHITECT_OUTPUT_SCHEMA, DEVELOPER_OUTPUT_SCHEMA, REVIEW_OUTPUT_SCHEMA, ROLE_INSTRUCTIONS_VERSION, rolePromptDefaults, correctionInstructions, deepenInstructions, repairInstructions, roleInstructions, } from './prompts.js';
18
+ export { OPENSPEC_VERSION, ROLE_SKILLS } from './openspec.js';
19
+ export * from './efficiency-summary.js';
20
+ export { readVerificationEvidence } from '../installer/runtime/pipeline-state.js';
15
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-runtime/index.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,qBAAqB,EAAE,iBAAiB,EAAqB,MAAM,kBAAkB,CAAA;AAC1H,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAwC,MAAM,0BAA0B,CAAA;AAC3J,OAAO,EAAE,iBAAiB,EAA+F,MAAM,kBAAkB,CAAA;AACjJ,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAgD,MAAM,yBAAyB,CAAA;AAC3G,OAAO,EACL,uBAAuB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,yBAAyB,EACjG,sBAAsB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,GACjF,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-runtime/index.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,qBAAqB,EAAE,iBAAiB,EAAqB,MAAM,kBAAkB,CAAA;AAC1H,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAwC,MAAM,0BAA0B,CAAA;AAC3J,OAAO,EAAE,iBAAiB,EAA+F,MAAM,kBAAkB,CAAA;AACjJ,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAgD,MAAM,yBAAyB,CAAA;AAC3G,OAAO,EACL,uBAAuB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,yBAAyB,EACjG,kBAAkB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,GACrG,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAA4B,MAAM,eAAe,CAAA;AAEvF,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAE,wBAAwB,EAAkC,MAAM,wCAAwC,CAAA"}
@@ -4,4 +4,8 @@ import { type CliProcessRunner } from './cli-process.js';
4
4
  export declare function executeKimiReadonlyAcp(request: AgentRequest, options?: {
5
5
  runProcess?: CliProcessRunner;
6
6
  env?: NodeJS.ProcessEnv;
7
+ openspecBridge?: {
8
+ command: string;
9
+ args: string[];
10
+ };
7
11
  }): Promise<AgentResult>;
@@ -1,3 +1,4 @@
1
+ import { toolEvent } from './tool-event.js';
1
2
  import { normalizeKimiCliModel } from '../installer/runtime/kimi.js';
2
3
  import { AgentExecutionError, unknownUsage, validateAgentRequest } from './executor-types.js';
3
4
  import { runCliProcess } from './cli-process.js';
@@ -7,12 +8,14 @@ function record(value) { return value && typeof value === 'object' && !Array.isA
7
8
  /** Native ACP v1 keeps Kimi 0.27 read-only roles usable without a platform skill or a model call during capability negotiation. */
8
9
  export async function executeKimiReadonlyAcp(request, options = {}) {
9
10
  validateAgentRequest(request);
10
- if (request.role === 'developer')
11
+ if (request.role === 'developer' && !options.openspecBridge)
11
12
  throw new AgentExecutionError('Read-only ACP transport cannot execute developer roles', 'invalid_request');
12
13
  if (request.maxCostUsd !== undefined)
13
14
  throw new AgentExecutionError('Kimi cannot enforce a strict USD cap', 'cost_limit_unsupported');
14
15
  if (request.maxTokens !== undefined)
15
16
  throw new AgentExecutionError('Kimi 0.27 ACP does not report authoritative token usage. Remove the token cap or choose another provider for this role.', 'usage_unavailable');
17
+ const readOnly = request.role !== 'developer';
18
+ const mode = readOnly ? 'plan' : 'auto';
16
19
  const tools = new WorkspaceTools(request.cwd, request.allowedRoots, request.role);
17
20
  let transport, nextId = 0, sessionId, text = '', completed = false, turns = 0, permissionDenied = false;
18
21
  const calls = new Map();
@@ -32,7 +35,7 @@ export async function executeKimiReadonlyAcp(request, options = {}) {
32
35
  });
33
36
  };
34
37
  const selectMode = () => {
35
- send('session/set_mode', { sessionId, modeId: 'plan' }, () => {
38
+ send('session/set_mode', { sessionId, modeId: mode }, () => {
36
39
  if (request.model)
37
40
  send('session/set_config_option', { sessionId, configId: 'model', value: normalizeKimiCliModel(request.model) }, prompt);
38
41
  else
@@ -67,15 +70,15 @@ export async function executeKimiReadonlyAcp(request, options = {}) {
67
70
  // the assistant turn after the last tool invocation.
68
71
  text = '';
69
72
  turns++;
70
- if (turns > (request.maxTurns ?? 24))
73
+ if (turns > (request.maxTurns ?? 100))
71
74
  throw new AgentExecutionError('Kimi ACP exceeded its tool limit', 'max_turns');
72
- request.onEvent?.({ kind: 'tool-start', tool: typeof update.title === 'string' ? update.title : 'kimi-tool' });
75
+ request.onEvent?.(toolEvent(typeof update.title === 'string' ? update.title : 'kimi-tool', { ...record(update.rawInput), paths: Array.isArray(update.locations) ? update.locations.map(location => record(location).path) : [] }));
73
76
  }
74
- if (update.sessionUpdate === 'current_mode_update' && update.currentModeId !== 'plan')
77
+ if (update.sessionUpdate === 'current_mode_update' && update.currentModeId !== mode)
75
78
  throw new AgentExecutionError('Kimi left its read-only mode', 'tool_policy_violation');
76
79
  if (update.sessionUpdate === 'config_option_update' && Array.isArray(update.configOptions)) {
77
80
  const mode = update.configOptions.map(record).find(option => option.id === 'mode');
78
- if (mode && mode.currentValue !== 'plan')
81
+ if (mode && mode.currentValue !== (readOnly ? 'plan' : 'auto'))
79
82
  throw new AgentExecutionError('Kimi left its read-only mode', 'tool_policy_violation');
80
83
  }
81
84
  return;
@@ -117,6 +120,14 @@ export async function executeKimiReadonlyAcp(request, options = {}) {
117
120
  const file = input.path ?? input.file_path;
118
121
  const choices = Array.isArray(params.options) ? params.options.map(record) : [];
119
122
  const allow = choices.find(option => option.kind === 'allow_once');
123
+ if (options.openspecBridge && ['mcp__specrails_openspec__workflow', 'mcp__specrails_openspec__read_verification_evidence'].includes(typeof tool.title === 'string' ? tool.title : '') && typeof allow?.optionId === 'string') {
124
+ respond({ outcome: { outcome: 'selected', optionId: allow.optionId } });
125
+ return;
126
+ }
127
+ if (!readOnly && typeof allow?.optionId === 'string') {
128
+ respond({ outcome: { outcome: 'selected', optionId: allow.optionId } });
129
+ return;
130
+ }
120
131
  if (['read', 'search'].includes(String(tool.kind)) && typeof file === 'string' && typeof allow?.optionId === 'string') {
121
132
  try {
122
133
  tools.execute(tool.kind === 'read' ? 'read_file' : 'list_files', { path: file });
@@ -149,13 +160,13 @@ export async function executeKimiReadonlyAcp(request, options = {}) {
149
160
  cwd: tools.cwd, signal: request.signal, timeoutMs: request.timeoutMs ?? 15 * 60_000, env: options.env, onLine: onMessage,
150
161
  duplex: control => {
151
162
  transport = control;
152
- send('initialize', { protocolVersion: 1, clientInfo: { name: 'specrails-core', version: '1' }, clientCapabilities: { fs: { readTextFile: true, writeTextFile: true }, terminal: true } }, initialized => {
163
+ send('initialize', { protocolVersion: 1, clientInfo: { name: 'specrails-core', version: '1' }, clientCapabilities: { fs: { readTextFile: readOnly, writeTextFile: readOnly }, terminal: readOnly } }, initialized => {
153
164
  if (initialized.protocolVersion !== 1)
154
165
  throw new AgentExecutionError('Kimi ACP protocol version is unsupported', 'provider_capability_unsupported');
155
166
  const capabilities = record(record(initialized.agentCapabilities).sessionCapabilities);
156
167
  if (tools.roots.length > 1 && capabilities.additionalDirectories === undefined)
157
168
  throw new AgentExecutionError('This Kimi ACP version cannot expose multiple repositories. Upgrade Kimi or use another provider for this read-only role.', 'provider_capability_unsupported');
158
- send('session/new', { cwd: tools.cwd, mcpServers: [], ...(tools.roots.length > 1 ? { additionalDirectories: tools.roots.filter(root => root !== tools.cwd) } : {}) }, session => {
169
+ send('session/new', { cwd: tools.cwd, mcpServers: options.openspecBridge ? [{ name: 'specrails_openspec', ...options.openspecBridge, env: [] }] : [], ...(tools.roots.length > 1 ? { additionalDirectories: tools.roots.filter(root => root !== tools.cwd) } : {}) }, session => {
159
170
  if (typeof session.sessionId !== 'string' || !session.sessionId)
160
171
  throw new AgentExecutionError('Kimi ACP returned no session id', 'invalid_response');
161
172
  sessionId = session.sessionId;
@@ -163,7 +174,7 @@ export async function executeKimiReadonlyAcp(request, options = {}) {
163
174
  const modeOption = Array.isArray(session.configOptions) ? session.configOptions.map(record).find(option => option.id === 'mode') : undefined;
164
175
  const available = Array.isArray(modes.availableModes) ? modes.availableModes.map(record) : [];
165
176
  const modeValues = Array.isArray(modeOption?.options) ? modeOption.options.map(record) : [];
166
- if (!available.some(mode => mode.id === 'plan') && !modeValues.some(mode => mode.value === 'plan'))
177
+ if (!available.some(item => item.id === mode) && !modeValues.some(item => item.value === mode))
167
178
  throw new AgentExecutionError('Kimi ACP does not expose enforced plan mode; upgrade Kimi Code before using a read-only role', 'provider_capability_unsupported');
168
179
  selectMode();
169
180
  });
@@ -1 +1 @@
1
- {"version":3,"file":"kimi-acp.js","sourceRoot":"","sources":["../../src/agent-runtime/kimi-acp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kimi-acp.js","sourceRoot":"","sources":["../../src/agent-runtime/kimi-acp.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,14 @@ export declare class OpenAICompatibleExecutor implements AgentExecutor {
12
12
  private readonly provider;
13
13
  private readonly options;
14
14
  constructor(provider: ApiProvider, options?: OpenAICompatibleOptions);
15
+ capabilities(): {
16
+ continuation: "unsupported";
17
+ effortSupport: "unsupported";
18
+ supportedEfforts: never[];
19
+ transport: string;
20
+ observedModel: boolean;
21
+ observedEffort: boolean;
22
+ };
15
23
  validateLimits(limits: AgentLimits): void;
16
24
  execute(request: AgentRequest): Promise<AgentResult>;
17
25
  }
@@ -1,4 +1,9 @@
1
+ import { readVerificationEvidence } from '../installer/runtime/pipeline-state.js';
2
+ import { toolEvent } from './tool-event.js';
3
+ import { assertEffortSupported, unknownCapabilities } from './capabilities.js';
4
+ import { OpenSpecTools, OPENSPEC_TOOL_DEFINITION, openSpecPrompt } from './openspec.js';
1
5
  import { AgentExecutionError, unknownUsage, validateAgentRequest } from './executor-types.js';
6
+ import { sumCacheUsage } from './efficiency-types.js';
2
7
  import { WorkspaceTools } from './workspace-tools.js';
3
8
  function record(value) {
4
9
  return value !== null && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
@@ -21,17 +26,22 @@ export class OpenAICompatibleExecutor {
21
26
  this.provider = provider;
22
27
  this.options = options;
23
28
  }
29
+ capabilities() { return { ...unknownCapabilities('openai-compatible'), continuation: 'unsupported', effortSupport: 'unsupported', supportedEfforts: [] }; }
24
30
  validateLimits(limits) {
25
31
  if (limits.maxCostUsd !== undefined)
26
32
  throw new AgentExecutionError('A strict USD cap requires an executor with a native spending limit; OpenAI-compatible endpoints do not provide one. Use a token cap or an executor with native cost enforcement.', 'cost_limit_unsupported');
27
33
  }
28
34
  async execute(request) {
29
35
  validateAgentRequest(request);
36
+ assertEffortSupported(request, this.capabilities());
30
37
  this.validateLimits(request);
31
38
  if (!request.model?.trim())
32
39
  throw new AgentExecutionError('OpenAI-compatible execution requires a model', 'invalid_model');
40
+ const controller = new AbortController();
33
41
  const toolset = new WorkspaceTools(request.cwd, request.allowedRoots, request.role);
34
- const maxTurns = request.maxTurns ?? 24;
42
+ const openspec = request.openspec ? new OpenSpecTools(request.openspec, controller.signal) : undefined;
43
+ const definitions = [...toolset.definitions(), ...(openspec ? [OPENSPEC_TOOL_DEFINITION] : []), ...(request.openspec?.evidenceScope && request.role !== 'architect' ? [{ type: 'function', function: { name: 'read_verification_evidence', description: 'Read host verification evidence and source files with opaque IDs and bounded cursors. List to discover IDs.', parameters: { type: 'object', additionalProperties: false, properties: { id: { type: 'string' }, section: { type: 'string', enum: ['summary', 'stdout', 'stderr', 'source'] }, sourceId: { type: 'string' }, cursor: { type: 'string' }, limit: { type: 'integer', minimum: 1, maximum: 100 } } } } }] : [])];
44
+ const maxTurns = request.maxTurns ?? 100;
35
45
  if (!Number.isSafeInteger(maxTurns) || maxTurns < 1)
36
46
  throw new AgentExecutionError('maxTurns must be a positive integer', 'invalid_limit');
37
47
  const timeoutMs = request.timeoutMs ?? 15 * 60_000;
@@ -47,7 +57,6 @@ export class OpenAICompatibleExecutor {
47
57
  const headers = { 'Content-Type': 'application/json' };
48
58
  if (key)
49
59
  headers.Authorization = `Bearer ${key}`;
50
- const controller = new AbortController();
51
60
  const abort = () => controller.abort(request.signal?.reason);
52
61
  request.signal?.addEventListener('abort', abort, { once: true });
53
62
  if (request.signal?.aborted)
@@ -56,8 +65,8 @@ export class OpenAICompatibleExecutor {
56
65
  let usage = { inputTokens: 0, outputTokens: 0, costUsd: 0 };
57
66
  let responses = 0;
58
67
  const messages = [
59
- { role: 'system', content: `You execute one ${request.role} task. Use only the provided workspace tools. Allowed roots: ${JSON.stringify(toolset.roots)}. Working directory: ${toolset.cwd}. Return the complete requested final result. Do not coordinate another workflow or call a platform skill.` },
60
- { role: 'user', content: request.prompt },
68
+ { role: 'system', content: `You execute one ${request.role} task. Use only the provided workspace tools. Allowed roots: ${JSON.stringify(toolset.roots)}. Working directory: ${toolset.cwd}. Return the complete requested final result. Do not coordinate another workflow. Execute only the assigned role and its supplied OpenSpec workflow.` },
69
+ { role: 'user', content: (request.openspec ? openSpecPrompt(request.openspec) : '') + request.prompt },
61
70
  ];
62
71
  try {
63
72
  for (let turn = 0; turn < maxTurns; turn++) {
@@ -69,7 +78,7 @@ export class OpenAICompatibleExecutor {
69
78
  throw new AgentExecutionError('Agent token budget exhausted', 'token_budget', usage);
70
79
  const response = await (this.options.fetch ?? globalThis.fetch)(endpoint, {
71
80
  method: 'POST', headers, signal: controller.signal, redirect: 'error',
72
- body: JSON.stringify({ model: request.model, messages, tools: toolset.definitions(), tool_choice: 'auto', stream: false,
81
+ body: JSON.stringify({ model: request.model, messages, tools: definitions, tool_choice: 'auto', stream: false,
73
82
  ...(request.maxTokens === undefined ? {} : { max_tokens: Math.max(1, Math.floor(request.maxTokens - observed)) }),
74
83
  }),
75
84
  });
@@ -79,11 +88,18 @@ export class OpenAICompatibleExecutor {
79
88
  }
80
89
  const body = await readBoundedResponse(response);
81
90
  const data = record(body), reported = record(data?.usage);
91
+ const cached = number(record(reported?.prompt_tokens_details)?.cached_tokens);
92
+ const inputTokens = number(reported?.prompt_tokens);
93
+ const cache = record(reported?.prompt_tokens_details)?.cached_tokens === undefined ? {} : {
94
+ cacheReadInputTokens: cached !== null && inputTokens !== null && cached <= inputTokens ? cached : null,
95
+ uncachedInputTokens: cached !== null && inputTokens !== null && cached <= inputTokens ? inputTokens - cached : null,
96
+ cacheWriteInputTokens: null,
97
+ };
82
98
  const current = {
83
99
  inputTokens: number(reported?.prompt_tokens), outputTokens: number(reported?.completion_tokens),
84
- costUsd: number(reported?.cost_usd ?? data?.cost_usd),
100
+ costUsd: number(reported?.cost_usd ?? data?.cost_usd), ...cache,
85
101
  };
86
- usage = { inputTokens: add(usage.inputTokens, current.inputTokens), outputTokens: add(usage.outputTokens, current.outputTokens), costUsd: add(usage.costUsd, current.costUsd) };
102
+ usage = { inputTokens: add(usage.inputTokens, current.inputTokens), outputTokens: add(usage.outputTokens, current.outputTokens), costUsd: add(usage.costUsd, current.costUsd), ...(responses === 0 ? cache : sumCacheUsage([usage, current])) };
87
103
  responses++;
88
104
  request.onEvent?.({ kind: 'usage', usage: { ...usage } });
89
105
  if (request.maxTokens !== undefined && (usage.inputTokens === null || usage.outputTokens === null))
@@ -114,10 +130,10 @@ export class OpenAICompatibleExecutor {
114
130
  if (call?.type !== 'function' || typeof call.id !== 'string' || !call.id || ids.has(call.id) || typeof fn?.name !== 'string' || typeof fn.arguments !== 'string')
115
131
  throw new AgentExecutionError('Malformed provider tool call', 'invalid_tool_call', usage);
116
132
  ids.add(call.id);
117
- request.onEvent?.({ kind: 'tool-start', tool: fn.name });
133
+ request.onEvent?.(toolEvent(fn.name, fn.arguments));
118
134
  let result;
119
135
  try {
120
- result = toolset.execute(fn.name, JSON.parse(fn.arguments));
136
+ result = fn.name === 'read_verification_evidence' && request.openspec?.evidenceScope && request.role !== 'architect' ? JSON.stringify(readVerificationEvidence(request.openspec.evidenceScope, JSON.parse(fn.arguments))) : fn.name === 'openspec_workflow' && openspec ? JSON.stringify(await openspec.execute(JSON.parse(fn.arguments))) : toolset.execute(fn.name, JSON.parse(fn.arguments));
121
137
  }
122
138
  catch (error) {
123
139
  result = JSON.stringify({ error: error instanceof Error ? error.message : 'Tool execution failed' });
@@ -140,7 +156,9 @@ export class OpenAICompatibleExecutor {
140
156
  if (controller.signal.aborted)
141
157
  throw new AgentExecutionError(request.signal?.aborted ? 'Agent cancelled' : 'Agent timed out', request.signal?.aborted ? 'aborted' : 'timeout', responses ? usage : unknownUsage());
142
158
  // Do not persist provider response bodies, URLs or credentials echoed by errors.
143
- throw new AgentExecutionError('OpenAI-compatible request failed', 'provider_request_error', responses ? usage : unknownUsage());
159
+ const code = error.cause?.code;
160
+ const diagnostic = typeof code === 'string' && /^(?:E[A-Z_]+|UND_ERR_[A-Z_]+)$/.test(code) ? ` (${code})` : '';
161
+ throw new AgentExecutionError('OpenAI-compatible request failed' + diagnostic, 'provider_request_error', responses ? usage : unknownUsage());
144
162
  }
145
163
  finally {
146
164
  clearTimeout(timer);