@fractary/faber 2.5.3 → 2.5.4

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 (35) hide show
  1. package/dist/executors/cli-entry.js +1 -1
  2. package/dist/executors/cli-entry.js.map +1 -1
  3. package/dist/executors/index.d.ts +3 -2
  4. package/dist/executors/index.d.ts.map +1 -1
  5. package/dist/executors/index.js +3 -1
  6. package/dist/executors/index.js.map +1 -1
  7. package/dist/executors/providers/claude-agent.d.ts +46 -0
  8. package/dist/executors/providers/claude-agent.d.ts.map +1 -0
  9. package/dist/executors/providers/claude-agent.js +222 -0
  10. package/dist/executors/providers/claude-agent.js.map +1 -0
  11. package/dist/executors/providers/claude.d.ts.map +1 -1
  12. package/dist/executors/providers/claude.js +30 -1
  13. package/dist/executors/providers/claude.js.map +1 -1
  14. package/dist/executors/providers/index.d.ts +1 -0
  15. package/dist/executors/providers/index.d.ts.map +1 -1
  16. package/dist/executors/providers/index.js +1 -0
  17. package/dist/executors/providers/index.js.map +1 -1
  18. package/dist/executors/registry.d.ts.map +1 -1
  19. package/dist/executors/registry.js +2 -0
  20. package/dist/executors/registry.js.map +1 -1
  21. package/dist/executors/types.d.ts +136 -1
  22. package/dist/executors/types.d.ts.map +1 -1
  23. package/dist/executors/types.js +85 -2
  24. package/dist/executors/types.js.map +1 -1
  25. package/dist/executors/workflow-executor.d.ts +31 -4
  26. package/dist/executors/workflow-executor.d.ts.map +1 -1
  27. package/dist/executors/workflow-executor.js +89 -11
  28. package/dist/executors/workflow-executor.js.map +1 -1
  29. package/dist/workflow/__tests__/resolver.test.js +169 -0
  30. package/dist/workflow/__tests__/resolver.test.js.map +1 -1
  31. package/dist/workflow/resolver.d.ts +69 -4
  32. package/dist/workflow/resolver.d.ts.map +1 -1
  33. package/dist/workflow/resolver.js +30 -13
  34. package/dist/workflow/resolver.js.map +1 -1
  35. package/package.json +1 -1
@@ -81,6 +81,6 @@ function readStdin() {
81
81
  }
82
82
  // Auto-execute when loaded directly
83
83
  if (typeof require !== 'undefined' && require.main === module) {
84
- executeStepCli();
84
+ void executeStepCli();
85
85
  }
86
86
  //# sourceMappingURL=cli-entry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-entry.js","sourceRoot":"","sources":["../../src/executors/cli-entry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-entry.js","sourceRoot":"","sources":["../../src/executors/cli-entry.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,10 @@
11
11
  * const result = await registry.get('openai').execute(prompt, context, config);
12
12
  * ```
13
13
  */
14
- export type { StepExecutorConfig, ExecutionContext, ExecutorResult, Executor, ExecutorFactory, } from './types.js';
14
+ export type { StepExecutorConfig, ExecutionContext, ExecutorResult, Executor, ExecutorFactory, HarnessType, StepRuntimeConfig, StepWorkflowMetadata, StepPromptContext, RuntimeDefaults, PhaseRuntimeDefaults, } from './types.js';
15
+ export { buildSystemPrompt, resolveRuntimeConfig, } from './types.js';
15
16
  export { ExecutorRegistry } from './registry.js';
16
- export { ClaudeExecutor, OpenAIExecutor, OpenAICompatibleExecutor, HttpExecutor, } from './providers/index.js';
17
+ export { ClaudeExecutor, ClaudeAgentExecutor, OpenAIExecutor, OpenAICompatibleExecutor, HttpExecutor, } from './providers/index.js';
17
18
  export { executeStepCli } from './cli-entry.js';
18
19
  export { WorkflowExecutor, type WorkflowExecuteOptions, type WorkflowExecuteResult, type PhaseExecuteResult, type StepExecuteResult, } from './workflow-executor.js';
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,OAAO,EACL,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAC"}
@@ -11,10 +11,12 @@
11
11
  * const result = await registry.get('openai').execute(prompt, context, config);
12
12
  * ```
13
13
  */
14
+ // Runtime config utilities
15
+ export { buildSystemPrompt, resolveRuntimeConfig, } from './types.js';
14
16
  // Registry
15
17
  export { ExecutorRegistry } from './registry.js';
16
18
  // Providers
17
- export { ClaudeExecutor, OpenAIExecutor, OpenAICompatibleExecutor, HttpExecutor, } from './providers/index.js';
19
+ export { ClaudeExecutor, ClaudeAgentExecutor, OpenAIExecutor, OpenAICompatibleExecutor, HttpExecutor, } from './providers/index.js';
18
20
  // CLI entry point (for Claude Code Bash invocation)
19
21
  export { executeStepCli } from './cli-entry.js';
20
22
  // Workflow executor
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAWH,WAAW;AACX,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,YAAY;AACZ,OAAO,EACL,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,oDAAoD;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,oBAAoB;AACpB,OAAO,EACL,gBAAgB,GAKjB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiBH,2BAA2B;AAC3B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,WAAW;AACX,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,YAAY;AACZ,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,oDAAoD;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,oBAAoB;AACpB,OAAO,EACL,gBAAgB,GAKjB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @fractary/faber - Claude Agent Executor
3
+ *
4
+ * Executes workflow steps via the Claude Agent SDK (@anthropic-ai/claude-agent-sdk).
5
+ * Each step gets a fresh session with isolated context — no accumulated history
6
+ * from prior steps.
7
+ *
8
+ * Also handles `!` command prefix: prompts starting with `!` (no space) are
9
+ * executed as direct shell commands with zero LLM cost.
10
+ *
11
+ * Hierarchical system prompt composition:
12
+ * 1. Claude Code preset (cached by Anthropic)
13
+ * 2. Workflow-level prompt (sets overall mission)
14
+ * 3. Phase-level prompt (adds phase guidance)
15
+ * 4. Structured metadata (self-service context pointers)
16
+ */
17
+ import type { Executor, ExecutorResult, ExecutionContext, StepExecutorConfig, StepRuntimeConfig, StepPromptContext } from '../types.js';
18
+ /**
19
+ * Extended execution parameters for ClaudeAgentExecutor.
20
+ *
21
+ * The standard Executor.execute() signature is preserved for registry
22
+ * compatibility. The WorkflowExecutor passes runtime config and prompt
23
+ * context via the `runtimeConfig` and `promptContext` fields on the
24
+ * ExecutionContext (which has an optional extension point).
25
+ */
26
+ export interface ClaudeAgentExecuteOptions {
27
+ runtimeConfig?: StepRuntimeConfig;
28
+ promptContext?: StepPromptContext;
29
+ }
30
+ export declare class ClaudeAgentExecutor implements Executor {
31
+ readonly provider = "claude-agent";
32
+ execute(prompt: string, context: ExecutionContext, config: StepExecutorConfig): Promise<ExecutorResult>;
33
+ validate(config: StepExecutorConfig): Promise<{
34
+ valid: boolean;
35
+ error?: string;
36
+ }>;
37
+ private executeCommand;
38
+ private spawnCommand;
39
+ private executeAgent;
40
+ /**
41
+ * Substitute {placeholder} variables in a string with values from the
42
+ * execution context. Supports: {work_id}, {run_id}, {phase}, {step_id}.
43
+ */
44
+ private substituteVariables;
45
+ }
46
+ //# sourceMappingURL=claude-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../../src/executors/providers/claude-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAOrB;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,aAAa,CAAC,EAAE,iBAAiB,CAAC;CACnC;AAED,qBAAa,mBAAoB,YAAW,QAAQ;IAClD,QAAQ,CAAC,QAAQ,kBAAkB;IAE7B,OAAO,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,cAAc,CAAC;IAcpB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;YAmBzE,cAAc;IAsC5B,OAAO,CAAC,YAAY;YAiCN,YAAY;IAgI1B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAO5B"}
@@ -0,0 +1,222 @@
1
+ /**
2
+ * @fractary/faber - Claude Agent Executor
3
+ *
4
+ * Executes workflow steps via the Claude Agent SDK (@anthropic-ai/claude-agent-sdk).
5
+ * Each step gets a fresh session with isolated context — no accumulated history
6
+ * from prior steps.
7
+ *
8
+ * Also handles `!` command prefix: prompts starting with `!` (no space) are
9
+ * executed as direct shell commands with zero LLM cost.
10
+ *
11
+ * Hierarchical system prompt composition:
12
+ * 1. Claude Code preset (cached by Anthropic)
13
+ * 2. Workflow-level prompt (sets overall mission)
14
+ * 3. Phase-level prompt (adds phase guidance)
15
+ * 4. Structured metadata (self-service context pointers)
16
+ */
17
+ import { spawn } from 'child_process';
18
+ import { buildSystemPrompt } from '../types.js';
19
+ const DEFAULT_MODEL = 'claude-sonnet-4-6-20250514';
20
+ const DEFAULT_MAX_TURNS = 25;
21
+ const COMMAND_PREFIX = '!';
22
+ export class ClaudeAgentExecutor {
23
+ provider = 'claude-agent';
24
+ async execute(prompt, context, config) {
25
+ const startTime = Date.now();
26
+ const trimmedPrompt = prompt.trim();
27
+ // Detect ! prefix — run as direct shell command
28
+ if (trimmedPrompt.startsWith(COMMAND_PREFIX) && trimmedPrompt.length > 1 && trimmedPrompt[1] !== ' ') {
29
+ const command = trimmedPrompt.slice(COMMAND_PREFIX.length);
30
+ return this.executeCommand(command, context, startTime);
31
+ }
32
+ // Agentic execution via Claude Agent SDK
33
+ return this.executeAgent(prompt, context, config, startTime);
34
+ }
35
+ async validate(config) {
36
+ // For agentic execution, we need ANTHROPIC_API_KEY
37
+ const apiKeyEnv = config.api_key_env || 'ANTHROPIC_API_KEY';
38
+ const apiKey = process.env[apiKeyEnv];
39
+ if (!apiKey) {
40
+ return {
41
+ valid: false,
42
+ error: `Environment variable '${apiKeyEnv}' is not set. Required for Claude Agent SDK.`,
43
+ };
44
+ }
45
+ return { valid: true };
46
+ }
47
+ // ══════════════════════════════════════════════════════════════════════
48
+ // Shell Command Execution (! prefix)
49
+ // ══════════════════════════════════════════════════════════════════════
50
+ async executeCommand(command, context, startTime) {
51
+ const resolvedCommand = this.substituteVariables(command, context);
52
+ try {
53
+ const { stdout, stderr, exitCode } = await this.spawnCommand(resolvedCommand, context.workingDirectory);
54
+ const output = stdout || stderr || '(no output)';
55
+ const status = exitCode === 0 ? 'success' : 'failure';
56
+ return {
57
+ output,
58
+ status,
59
+ error: status === 'failure' ? `Command exited with code ${exitCode}: ${stderr || stdout}` : undefined,
60
+ metadata: {
61
+ provider: 'command',
62
+ duration_ms: Date.now() - startTime,
63
+ },
64
+ };
65
+ }
66
+ catch (error) {
67
+ return {
68
+ output: '',
69
+ status: 'failure',
70
+ error: `Command execution error: ${error instanceof Error ? error.message : String(error)}`,
71
+ metadata: {
72
+ provider: 'command',
73
+ duration_ms: Date.now() - startTime,
74
+ },
75
+ };
76
+ }
77
+ }
78
+ spawnCommand(command, cwd, timeoutMs = 120_000) {
79
+ return new Promise((resolve, reject) => {
80
+ const proc = spawn('bash', ['-c', command], {
81
+ cwd,
82
+ env: process.env,
83
+ stdio: ['ignore', 'pipe', 'pipe'],
84
+ timeout: timeoutMs,
85
+ });
86
+ let stdout = '';
87
+ let stderr = '';
88
+ proc.stdout.on('data', (data) => { stdout += data.toString(); });
89
+ proc.stderr.on('data', (data) => { stderr += data.toString(); });
90
+ proc.on('close', (code) => {
91
+ resolve({ stdout: stdout.trim(), stderr: stderr.trim(), exitCode: code ?? 1 });
92
+ });
93
+ proc.on('error', (err) => {
94
+ reject(err);
95
+ });
96
+ });
97
+ }
98
+ // ══════════════════════════════════════════════════════════════════════
99
+ // Agentic Execution (Claude Agent SDK)
100
+ // ══════════════════════════════════════════════════════════════════════
101
+ async executeAgent(prompt, context, config, startTime) {
102
+ // Extract runtime config and prompt context from extended context
103
+ const extendedContext = context;
104
+ const runtimeConfig = extendedContext.runtimeConfig || {};
105
+ const promptContext = extendedContext.promptContext;
106
+ const model = runtimeConfig.model || config.model || DEFAULT_MODEL;
107
+ const maxTurns = runtimeConfig.maxTurns || DEFAULT_MAX_TURNS;
108
+ // Build hierarchical system prompt
109
+ const composedPrompt = promptContext ? buildSystemPrompt(promptContext) : undefined;
110
+ try {
111
+ // Dynamic import — the Agent SDK is an optional dependency.
112
+ // It's only needed when running in CLI-native mode with harness: 'claude-code'.
113
+ const { query } = await import('@anthropic-ai/claude-agent-sdk');
114
+ let resultOutput = '';
115
+ let inputTokens = 0;
116
+ let outputTokens = 0;
117
+ for await (const message of query({
118
+ prompt: this.substituteVariables(prompt, context),
119
+ options: {
120
+ cwd: context.workingDirectory,
121
+ model,
122
+ maxTurns,
123
+ maxBudgetUsd: runtimeConfig.maxBudgetUsd,
124
+ // Claude Code preset + composed workflow/phase/metadata context
125
+ systemPrompt: composedPrompt
126
+ ? { type: 'preset', preset: 'claude_code', append: composedPrompt }
127
+ : undefined,
128
+ // Load project skills and CLAUDE.md
129
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
130
+ settingSources: ['project'],
131
+ // Full Claude Code tool preset
132
+ tools: { type: 'preset', preset: 'claude_code' },
133
+ allowedTools: runtimeConfig.allowedTools,
134
+ // MCP servers from step config
135
+ mcpServers: runtimeConfig.mcp,
136
+ // Autonomous execution
137
+ permissionMode: 'bypassPermissions',
138
+ },
139
+ })) {
140
+ if (message.type === 'result') {
141
+ const resultMsg = message;
142
+ if (resultMsg.subtype === 'success') {
143
+ resultOutput = String(resultMsg['result'] ?? '');
144
+ const usage = resultMsg['usage'];
145
+ if (usage) {
146
+ inputTokens = usage.input_tokens || 0;
147
+ outputTokens = usage.output_tokens || 0;
148
+ }
149
+ }
150
+ else {
151
+ // Error result (max_turns, max_budget, execution error)
152
+ const errors = resultMsg['errors'];
153
+ return {
154
+ output: '',
155
+ status: 'failure',
156
+ error: `Agent SDK error (${String(resultMsg.subtype)}): ${(errors || []).join('; ')}`,
157
+ metadata: {
158
+ provider: this.provider,
159
+ model,
160
+ duration_ms: Date.now() - startTime,
161
+ },
162
+ };
163
+ }
164
+ }
165
+ }
166
+ return {
167
+ output: resultOutput,
168
+ status: 'success',
169
+ metadata: {
170
+ provider: this.provider,
171
+ model,
172
+ duration_ms: Date.now() - startTime,
173
+ tokens_used: inputTokens || outputTokens
174
+ ? { input: inputTokens, output: outputTokens }
175
+ : undefined,
176
+ },
177
+ };
178
+ }
179
+ catch (error) {
180
+ // Handle case where Agent SDK is not installed
181
+ if (error instanceof Error &&
182
+ (error.message.includes('Cannot find module') || error.message.includes('ERR_MODULE_NOT_FOUND'))) {
183
+ return {
184
+ output: '',
185
+ status: 'failure',
186
+ error: 'Claude Agent SDK (@anthropic-ai/claude-agent-sdk) is not installed. ' +
187
+ 'Install it with: npm install @anthropic-ai/claude-agent-sdk',
188
+ metadata: {
189
+ provider: this.provider,
190
+ model,
191
+ duration_ms: Date.now() - startTime,
192
+ },
193
+ };
194
+ }
195
+ return {
196
+ output: '',
197
+ status: 'failure',
198
+ error: `Claude Agent executor error: ${error instanceof Error ? error.message : String(error)}`,
199
+ metadata: {
200
+ provider: this.provider,
201
+ model,
202
+ duration_ms: Date.now() - startTime,
203
+ },
204
+ };
205
+ }
206
+ }
207
+ // ══════════════════════════════════════════════════════════════════════
208
+ // Variable Substitution
209
+ // ══════════════════════════════════════════════════════════════════════
210
+ /**
211
+ * Substitute {placeholder} variables in a string with values from the
212
+ * execution context. Supports: {work_id}, {run_id}, {phase}, {step_id}.
213
+ */
214
+ substituteVariables(text, context) {
215
+ return text
216
+ .replace(/\{work_id\}/g, context.workId)
217
+ .replace(/\{run_id\}/g, context.runId || '')
218
+ .replace(/\{phase\}/g, context.phase)
219
+ .replace(/\{step_id\}/g, context.stepId);
220
+ }
221
+ }
222
+ //# sourceMappingURL=claude-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-agent.js","sourceRoot":"","sources":["../../../src/executors/providers/claude-agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/executors/providers/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAOrB,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,QAAQ,YAAY;IAEvB,OAAO,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,cAAc,CAAC;IA8FpB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAcvF,OAAO,CAAC,kBAAkB;CAoB3B"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/executors/providers/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AASrB,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,QAAQ,YAAY;IAEvB,OAAO,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,cAAc,CAAC;IA6HpB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAcvF,OAAO,CAAC,kBAAkB;CAoB3B"}
@@ -7,6 +7,7 @@
7
7
  * Default env var: ANTHROPIC_API_KEY
8
8
  * Default model: claude-sonnet-4-6-20250514
9
9
  */
10
+ import { buildSystemPrompt } from '../types.js';
10
11
  const DEFAULT_MODEL = 'claude-sonnet-4-6-20250514';
11
12
  const DEFAULT_MAX_TOKENS = 8192;
12
13
  const DEFAULT_API_KEY_ENV = 'ANTHROPIC_API_KEY';
@@ -39,7 +40,35 @@ export class ClaudeExecutor {
39
40
  max_tokens: maxTokens,
40
41
  messages,
41
42
  };
42
- if (config.system_prompt) {
43
+ // Build system prompt — use structured format with cache_control
44
+ // when hierarchical prompt context is available (CLI-native mode)
45
+ const extendedContext = context;
46
+ const promptContext = extendedContext.promptContext;
47
+ if (promptContext) {
48
+ // Structured system prompt with prompt caching
49
+ const stablePrefix = buildSystemPrompt(promptContext);
50
+ const systemBlocks = [];
51
+ // Stable prefix (workflow prompt + phase prompt + metadata) — cacheable
52
+ if (stablePrefix) {
53
+ systemBlocks.push({
54
+ type: 'text',
55
+ text: stablePrefix,
56
+ cache_control: { type: 'ephemeral' },
57
+ });
58
+ }
59
+ // Step-specific system prompt override — not cached (varies per step)
60
+ if (config.system_prompt) {
61
+ systemBlocks.push({
62
+ type: 'text',
63
+ text: config.system_prompt,
64
+ });
65
+ }
66
+ if (systemBlocks.length > 0) {
67
+ body.system = systemBlocks;
68
+ }
69
+ }
70
+ else if (config.system_prompt) {
71
+ // Legacy: plain string system prompt (no caching)
43
72
  body.system = config.system_prompt;
44
73
  }
45
74
  if (config.temperature !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/executors/providers/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/executors/providers/claude.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  * Built-in executor implementations for different model providers and services.
5
5
  */
6
6
  export { ClaudeExecutor } from './claude.js';
7
+ export { ClaudeAgentExecutor } from './claude-agent.js';
7
8
  export { OpenAIExecutor } from './openai.js';
8
9
  export { OpenAICompatibleExecutor } from './openai-compatible.js';
9
10
  export { HttpExecutor } from './http.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/executors/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/executors/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
@@ -4,6 +4,7 @@
4
4
  * Built-in executor implementations for different model providers and services.
5
5
  */
6
6
  export { ClaudeExecutor } from './claude.js';
7
+ export { ClaudeAgentExecutor } from './claude-agent.js';
7
8
  export { OpenAIExecutor } from './openai.js';
8
9
  export { OpenAICompatibleExecutor } from './openai-compatible.js';
9
10
  export { HttpExecutor } from './http.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/executors/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/executors/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/executors/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAUpB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,SAAS,CAA+B;IAEhD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI;IAM1D;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ;IAiB/B;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9B;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CACZ,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,kBAAkB,CAAA;KAAE,EACvC,KAAK,EAAE,MAAM,EACb,gBAAgB,CAAC,EAAE,kBAAkB,EACrC,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,GAC3D;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,kBAAkB,CAAA;KAAE,GAAG,IAAI;IAc5D;;;;OAIG;IACG,gBAAgB,CACpB,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,CAAC,EAAE,kBAAkB,CAAA;KAAE,CAAC,EAC/C,gBAAgB,CAAC,EAAE,kBAAkB,EACrC,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,GAC3D,OAAO,CAAC,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAkDvD;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,gBAAgB;CAUzC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/executors/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAWpB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,SAAS,CAA+B;IAEhD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI;IAM1D;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ;IAiB/B;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9B;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CACZ,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,kBAAkB,CAAA;KAAE,EACvC,KAAK,EAAE,MAAM,EACb,gBAAgB,CAAC,EAAE,kBAAkB,EACrC,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,GAC3D;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,kBAAkB,CAAA;KAAE,GAAG,IAAI;IAc5D;;;;OAIG;IACG,gBAAgB,CACpB,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,CAAC,EAAE,kBAAkB,CAAA;KAAE,CAAC,EAC/C,gBAAgB,CAAC,EAAE,kBAAkB,EACrC,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,GAC3D,OAAO,CAAC,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAkDvD;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,gBAAgB;CAWzC"}
@@ -9,6 +9,7 @@
9
9
  * (Claude Code direct execution in skill mode, or Claude API in CLI mode).
10
10
  */
11
11
  import { ClaudeExecutor } from './providers/claude.js';
12
+ import { ClaudeAgentExecutor } from './providers/claude-agent.js';
12
13
  import { OpenAIExecutor } from './providers/openai.js';
13
14
  import { OpenAICompatibleExecutor } from './providers/openai-compatible.js';
14
15
  import { HttpExecutor } from './providers/http.js';
@@ -137,6 +138,7 @@ export class ExecutorRegistry {
137
138
  static createDefault() {
138
139
  const registry = new ExecutorRegistry();
139
140
  registry.register('claude', () => new ClaudeExecutor());
141
+ registry.register('claude-agent', () => new ClaudeAgentExecutor());
140
142
  registry.register('openai', () => new OpenAIExecutor());
141
143
  registry.register('openai-compatible', () => new OpenAICompatibleExecutor());
142
144
  registry.register('http', () => new HttpExecutor());
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/executors/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/executors/registry.ts"],"names":[],"mappings":"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"}