@studio-foundation/runner 0.4.0-beta → 0.6.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 (53) hide show
  1. package/README.md +1 -1
  2. package/dist/__tests__/script-executor.test.js +57 -3
  3. package/dist/__tests__/script-executor.test.js.map +1 -1
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +3 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/middleware/anonymization.d.ts +17 -2
  9. package/dist/middleware/anonymization.d.ts.map +1 -1
  10. package/dist/middleware/anonymization.js +37 -1
  11. package/dist/middleware/anonymization.js.map +1 -1
  12. package/dist/prompt-builder.d.ts +10 -6
  13. package/dist/prompt-builder.d.ts.map +1 -1
  14. package/dist/prompt-builder.js +27 -2
  15. package/dist/prompt-builder.js.map +1 -1
  16. package/dist/providers/claude-code-mcp-server.d.ts +15 -0
  17. package/dist/providers/claude-code-mcp-server.d.ts.map +1 -0
  18. package/dist/providers/claude-code-mcp-server.js +126 -0
  19. package/dist/providers/claude-code-mcp-server.js.map +1 -0
  20. package/dist/providers/claude-code-mcp-server.test.d.ts +2 -0
  21. package/dist/providers/claude-code-mcp-server.test.d.ts.map +1 -0
  22. package/dist/providers/claude-code-mcp-server.test.js +123 -0
  23. package/dist/providers/claude-code-mcp-server.test.js.map +1 -0
  24. package/dist/providers/claude-code.d.ts +23 -0
  25. package/dist/providers/claude-code.d.ts.map +1 -0
  26. package/dist/providers/claude-code.js +187 -0
  27. package/dist/providers/claude-code.js.map +1 -0
  28. package/dist/providers/claude-code.test.d.ts +2 -0
  29. package/dist/providers/claude-code.test.d.ts.map +1 -0
  30. package/dist/providers/claude-code.test.js +259 -0
  31. package/dist/providers/claude-code.test.js.map +1 -0
  32. package/dist/providers/registry.d.ts +3 -0
  33. package/dist/providers/registry.d.ts.map +1 -1
  34. package/dist/providers/registry.js +4 -0
  35. package/dist/providers/registry.js.map +1 -1
  36. package/dist/providers/registry.test.d.ts +2 -0
  37. package/dist/providers/registry.test.d.ts.map +1 -0
  38. package/dist/providers/registry.test.js +56 -0
  39. package/dist/providers/registry.test.js.map +1 -0
  40. package/dist/runner.d.ts +2 -0
  41. package/dist/runner.d.ts.map +1 -1
  42. package/dist/runner.js +55 -8
  43. package/dist/runner.js.map +1 -1
  44. package/dist/runner.test.js +5 -2
  45. package/dist/runner.test.js.map +1 -1
  46. package/dist/script-executor.d.ts.map +1 -1
  47. package/dist/script-executor.js +16 -2
  48. package/dist/script-executor.js.map +1 -1
  49. package/dist/tools/tool-registry.d.ts +21 -4
  50. package/dist/tools/tool-registry.d.ts.map +1 -1
  51. package/dist/tools/tool-registry.js +55 -17
  52. package/dist/tools/tool-registry.js.map +1 -1
  53. package/package.json +4 -4
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @studio-foundation/runner
2
2
 
3
- **Studio** is an agentic pipeline runtime that executes multi-stage LLM workflows with structural validation and automatic retry. This package is the **runner**: a multi-provider LLM agent runner with tool plugin execution, streaming support, and PII anonymization.
3
+ **Studio** is a declarative YAML runtime for AI agents. It orchestrates multi-stage agent workflows with structured output validation and automatic retry. This package is the **runner**: a multi-provider LLM agent runner with tool plugin execution, streaming support, and PII anonymization.
4
4
 
5
5
  It's the only package that knows about Anthropic, OpenAI, or what `repo_manager-write_file` does. Give it an agent config and a task, it builds the prompt, calls the LLM, executes tool calls, and returns the result. It doesn't validate, it doesn't retry — [`ralph`](https://www.npmjs.com/package/@studio-foundation/ralph) handles that loop.
6
6
 
@@ -47,11 +47,18 @@ function makeContext(overrides) {
47
47
  ...overrides,
48
48
  };
49
49
  }
50
+ /** stdin stub that both records write/end and supports .on('error') like a real stream. */
51
+ function makeStdinMock() {
52
+ const stdin = new node_events_1.EventEmitter();
53
+ stdin.write = vitest_1.vi.fn();
54
+ stdin.end = vitest_1.vi.fn();
55
+ return stdin;
56
+ }
50
57
  function makeSpawnMock(opts) {
51
58
  const proc = new node_events_1.EventEmitter();
52
59
  proc.stdout = new node_events_1.EventEmitter();
53
60
  proc.stderr = new node_events_1.EventEmitter();
54
- proc.stdin = { write: vitest_1.vi.fn(), end: vitest_1.vi.fn() };
61
+ proc.stdin = makeStdinMock();
55
62
  proc.kill = vitest_1.vi.fn();
56
63
  vitest_1.vi.mocked(cp.spawn).mockReturnValue(proc);
57
64
  // Simulate async process lifecycle
@@ -113,7 +120,7 @@ function makeSpawnMock(opts) {
113
120
  const proc = new node_events_1.EventEmitter();
114
121
  proc.stdout = new node_events_1.EventEmitter();
115
122
  proc.stderr = new node_events_1.EventEmitter();
116
- proc.stdin = { write: vitest_1.vi.fn(), end: vitest_1.vi.fn() };
123
+ proc.stdin = makeStdinMock();
117
124
  vitest_1.vi.mocked(cp.spawn).mockReturnValue(proc);
118
125
  setTimeout(() => proc.emit('error', new Error('ENOENT: python3 not found')), 10);
119
126
  const result = await (0, script_executor_js_1.runScript)({
@@ -154,7 +161,7 @@ function makeSpawnMock(opts) {
154
161
  (0, vitest_1.expect)(spawnEnv.PATH).toContain('/project/venv/bin');
155
162
  });
156
163
  (0, vitest_1.it)('writes context JSON to stdin', async () => {
157
- const stdinMock = { write: vitest_1.vi.fn(), end: vitest_1.vi.fn() };
164
+ const stdinMock = makeStdinMock();
158
165
  const proc = new node_events_1.EventEmitter();
159
166
  proc.stdout = new node_events_1.EventEmitter();
160
167
  proc.stderr = new node_events_1.EventEmitter();
@@ -169,5 +176,52 @@ function makeSpawnMock(opts) {
169
176
  (0, vitest_1.expect)(stdinMock.write).toHaveBeenCalledWith(JSON.stringify(ctx));
170
177
  (0, vitest_1.expect)(stdinMock.end).toHaveBeenCalled();
171
178
  });
179
+ (0, vitest_1.it)('does not crash and surfaces stderr when the child dies before reading stdin (EPIPE)', async () => {
180
+ // Child crashed at startup (e.g. ImportError), then the parent's write to
181
+ // its stdin raises EPIPE. Regression guard for STU-568: this used to become
182
+ // an unhandled 'error' event that crashed the whole CLI.
183
+ const proc = new node_events_1.EventEmitter();
184
+ proc.stdout = new node_events_1.EventEmitter();
185
+ proc.stderr = new node_events_1.EventEmitter();
186
+ proc.kill = vitest_1.vi.fn();
187
+ const stdin = makeStdinMock();
188
+ // Writing to the broken pipe emits an async 'error' on stdin.
189
+ stdin.write.mockImplementation(() => {
190
+ setTimeout(() => stdin.emit('error', Object.assign(new Error('write EPIPE'), { code: 'EPIPE' })), 0);
191
+ return true;
192
+ });
193
+ proc.stdin = stdin;
194
+ vitest_1.vi.mocked(cp.spawn).mockReturnValue(proc);
195
+ setTimeout(() => {
196
+ proc.stderr.emit('data', Buffer.from("ImportError: cannot import name 'EXTRACTION_CONFIG_FILE'"));
197
+ proc.emit('close', 1);
198
+ }, 10);
199
+ const result = await (0, script_executor_js_1.runScript)({
200
+ scriptPath: 'scripts/entity_extraction.py',
201
+ runtime: 'python',
202
+ context: makeContext(),
203
+ });
204
+ // No throw, and the child's real stderr + exit code become the reason.
205
+ (0, vitest_1.expect)(result.output).toBeNull();
206
+ (0, vitest_1.expect)(result.error).toMatch(/exited with code 1/);
207
+ (0, vitest_1.expect)(result.error).toMatch(/ImportError: cannot import name 'EXTRACTION_CONFIG_FILE'/);
208
+ });
209
+ (0, vitest_1.it)('does not crash when stdin.write throws synchronously', async () => {
210
+ const proc = new node_events_1.EventEmitter();
211
+ proc.stdout = new node_events_1.EventEmitter();
212
+ proc.stderr = new node_events_1.EventEmitter();
213
+ proc.kill = vitest_1.vi.fn();
214
+ const stdin = makeStdinMock();
215
+ stdin.write.mockImplementation(() => { throw Object.assign(new Error('write EPIPE'), { code: 'EPIPE' }); });
216
+ proc.stdin = stdin;
217
+ vitest_1.vi.mocked(cp.spawn).mockReturnValue(proc);
218
+ setTimeout(() => {
219
+ proc.stderr.emit('data', Buffer.from('SyntaxError: invalid syntax'));
220
+ proc.emit('close', 1);
221
+ }, 10);
222
+ const result = await (0, script_executor_js_1.runScript)({ scriptPath: 'scripts/broken.py', runtime: 'python', context: makeContext() });
223
+ (0, vitest_1.expect)(result.error).toMatch(/exited with code 1/);
224
+ (0, vitest_1.expect)(result.error).toMatch(/SyntaxError: invalid syntax/);
225
+ });
172
226
  });
173
227
  //# sourceMappingURL=script-executor.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"script-executor.test.js","sourceRoot":"","sources":["../../src/__tests__/script-executor.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"script-executor.test.js","sourceRoot":"","sources":["../../src/__tests__/script-executor.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -13,6 +13,7 @@ export { OpenAIProvider } from './providers/openai.js';
13
13
  export { OpenAIResponsesProvider } from './providers/openai-responses.js';
14
14
  export { AnthropicProvider } from './providers/anthropic.js';
15
15
  export { OllamaProvider } from './providers/ollama.js';
16
+ export { ClaudeCodeProvider } from './providers/claude-code.js';
16
17
  export { ProviderRegistry, createDefaultRegistry } from './providers/registry.js';
17
18
  export { MockProvider } from './providers/mock.js';
18
19
  export type { MockStageConfig } from './providers/mock.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EACV,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAEhG,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACpI,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACjF,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGrF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC9F,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGpE,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,EACjC,uBAAuB,GACxB,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EACV,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAEhG,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACpI,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACjF,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGrF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC9F,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGpE,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,EACjC,uBAAuB,GACxB,MAAM,sCAAsC,CAAC"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * @studio/runner - Multi-provider LLM agent runner with tool execution
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.loadProjectIntegrations = exports.listAvailableIntegrationTemplates = exports.getBundledIntegrationTemplate = exports.validateSkillManifest = exports.loadSkill = exports.loadSkills = exports.StudioOAuthProvider = exports.MCPClient = exports.loadPlugins = exports.AnonymizationMiddleware = exports.BUILTIN_TOOL_NAMES = exports.getBundledToolTemplate = exports.listAvailableToolTemplates = exports.loadProjectTools = exports.WEB_SEARCH_PROMPT_SNIPPET = exports.createWebSearchTools = exports.STUDIO_RUN_PROMPT_SNIPPET = exports.createStudioRunTool = exports.createGitTools = exports.createPatchTools = exports.createSearchTools = exports.createShellTools = exports.createRepoManagerTools = exports.ToolExecutor = exports.ToolRegistry = exports.MockProvider = exports.createDefaultRegistry = exports.ProviderRegistry = exports.OllamaProvider = exports.AnthropicProvider = exports.OpenAIResponsesProvider = exports.OpenAIProvider = exports.isAgentLoopProvider = exports.buildPrompt = exports.runScript = exports.runAgent = void 0;
6
+ exports.loadProjectIntegrations = exports.listAvailableIntegrationTemplates = exports.getBundledIntegrationTemplate = exports.validateSkillManifest = exports.loadSkill = exports.loadSkills = exports.StudioOAuthProvider = exports.MCPClient = exports.loadPlugins = exports.AnonymizationMiddleware = exports.BUILTIN_TOOL_NAMES = exports.getBundledToolTemplate = exports.listAvailableToolTemplates = exports.loadProjectTools = exports.WEB_SEARCH_PROMPT_SNIPPET = exports.createWebSearchTools = exports.STUDIO_RUN_PROMPT_SNIPPET = exports.createStudioRunTool = exports.createGitTools = exports.createPatchTools = exports.createSearchTools = exports.createShellTools = exports.createRepoManagerTools = exports.ToolExecutor = exports.ToolRegistry = exports.MockProvider = exports.createDefaultRegistry = exports.ProviderRegistry = exports.ClaudeCodeProvider = exports.OllamaProvider = exports.AnthropicProvider = exports.OpenAIResponsesProvider = exports.OpenAIProvider = exports.isAgentLoopProvider = exports.buildPrompt = exports.runScript = exports.runAgent = void 0;
7
7
  // Main runner function
8
8
  var runner_js_1 = require("./runner.js");
9
9
  Object.defineProperty(exports, "runAgent", { enumerable: true, get: function () { return runner_js_1.runAgent; } });
@@ -23,6 +23,8 @@ var anthropic_js_1 = require("./providers/anthropic.js");
23
23
  Object.defineProperty(exports, "AnthropicProvider", { enumerable: true, get: function () { return anthropic_js_1.AnthropicProvider; } });
24
24
  var ollama_js_1 = require("./providers/ollama.js");
25
25
  Object.defineProperty(exports, "OllamaProvider", { enumerable: true, get: function () { return ollama_js_1.OllamaProvider; } });
26
+ var claude_code_js_1 = require("./providers/claude-code.js");
27
+ Object.defineProperty(exports, "ClaudeCodeProvider", { enumerable: true, get: function () { return claude_code_js_1.ClaudeCodeProvider; } });
26
28
  var registry_js_1 = require("./providers/registry.js");
27
29
  Object.defineProperty(exports, "ProviderRegistry", { enumerable: true, get: function () { return registry_js_1.ProviderRegistry; } });
28
30
  Object.defineProperty(exports, "createDefaultRegistry", { enumerable: true, get: function () { return registry_js_1.createDefaultRegistry; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uBAAuB;AACvB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AAGjB,kBAAkB;AAClB,2DAAiD;AAAxC,+GAAA,SAAS,OAAA;AAGlB,iBAAiB;AACjB,yDAAkD;AAAzC,gHAAA,WAAW,OAAA;AAWpB,uDAA8D;AAArD,kHAAA,mBAAmB,OAAA;AAC5B,mDAAuD;AAA9C,2GAAA,cAAc,OAAA;AACvB,uEAA0E;AAAjE,8HAAA,uBAAuB,OAAA;AAChC,yDAA6D;AAApD,iHAAA,iBAAiB,OAAA;AAC1B,mDAAuD;AAA9C,2GAAA,cAAc,OAAA;AACvB,uDAAkF;AAAzE,+GAAA,gBAAgB,OAAA;AAAE,oHAAA,qBAAqB,OAAA;AAChD,+CAAmD;AAA1C,uGAAA,YAAY,OAAA;AAGrB,QAAQ;AACR,6DAAwD;AAA/C,gHAAA,YAAY,OAAA;AACrB,6DAAwD;AAA/C,gHAAA,YAAY,OAAA;AAGrB,gBAAgB;AAChB,mEAAyE;AAAhE,yHAAA,sBAAsB,OAAA;AAC/B,qDAA4D;AAAnD,4GAAA,gBAAgB,OAAA;AACzB,uDAA8D;AAArD,8GAAA,iBAAiB,OAAA;AAC1B,qDAA4D;AAAnD,4GAAA,gBAAgB,OAAA;AACzB,iDAAwD;AAA/C,wGAAA,cAAc,OAAA;AACvB,+DAA+F;AAAtF,oHAAA,mBAAmB,OAAA;AAAE,0HAAA,yBAAyB,OAAA;AACvD,+DAAgG;AAAvF,qHAAA,oBAAoB,OAAA;AAAE,0HAAA,yBAAyB,OAAA;AAExD,6DAAoI;AAA3H,oHAAA,gBAAgB,OAAA;AAAE,8HAAA,0BAA0B,OAAA;AAAE,0HAAA,sBAAsB,OAAA;AAAE,sHAAA,kBAAkB,OAAA;AAGjG,2BAA2B;AAC3B,kEAAwE;AAA/D,2HAAA,uBAAuB,OAAA;AAGhC,mDAAmD;AACnD,+CAAiF;AAAxE,uGAAA,WAAW,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,+GAAA,mBAAmB,OAAA;AAGpD,eAAe;AACf,kEAA8F;AAArF,6GAAA,UAAU,OAAA;AAAE,4GAAA,SAAS,OAAA;AAAE,wHAAA,qBAAqB,OAAA;AAGrD,4BAA4B;AAC5B,8EAI8C;AAH5C,sIAAA,6BAA6B,OAAA;AAC7B,0IAAA,iCAAiC,OAAA;AACjC,gIAAA,uBAAuB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uBAAuB;AACvB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AAGjB,kBAAkB;AAClB,2DAAiD;AAAxC,+GAAA,SAAS,OAAA;AAGlB,iBAAiB;AACjB,yDAAkD;AAAzC,gHAAA,WAAW,OAAA;AAWpB,uDAA8D;AAArD,kHAAA,mBAAmB,OAAA;AAC5B,mDAAuD;AAA9C,2GAAA,cAAc,OAAA;AACvB,uEAA0E;AAAjE,8HAAA,uBAAuB,OAAA;AAChC,yDAA6D;AAApD,iHAAA,iBAAiB,OAAA;AAC1B,mDAAuD;AAA9C,2GAAA,cAAc,OAAA;AACvB,6DAAgE;AAAvD,oHAAA,kBAAkB,OAAA;AAC3B,uDAAkF;AAAzE,+GAAA,gBAAgB,OAAA;AAAE,oHAAA,qBAAqB,OAAA;AAChD,+CAAmD;AAA1C,uGAAA,YAAY,OAAA;AAGrB,QAAQ;AACR,6DAAwD;AAA/C,gHAAA,YAAY,OAAA;AACrB,6DAAwD;AAA/C,gHAAA,YAAY,OAAA;AAGrB,gBAAgB;AAChB,mEAAyE;AAAhE,yHAAA,sBAAsB,OAAA;AAC/B,qDAA4D;AAAnD,4GAAA,gBAAgB,OAAA;AACzB,uDAA8D;AAArD,8GAAA,iBAAiB,OAAA;AAC1B,qDAA4D;AAAnD,4GAAA,gBAAgB,OAAA;AACzB,iDAAwD;AAA/C,wGAAA,cAAc,OAAA;AACvB,+DAA+F;AAAtF,oHAAA,mBAAmB,OAAA;AAAE,0HAAA,yBAAyB,OAAA;AACvD,+DAAgG;AAAvF,qHAAA,oBAAoB,OAAA;AAAE,0HAAA,yBAAyB,OAAA;AAExD,6DAAoI;AAA3H,oHAAA,gBAAgB,OAAA;AAAE,8HAAA,0BAA0B,OAAA;AAAE,0HAAA,sBAAsB,OAAA;AAAE,sHAAA,kBAAkB,OAAA;AAGjG,2BAA2B;AAC3B,kEAAwE;AAA/D,2HAAA,uBAAuB,OAAA;AAGhC,mDAAmD;AACnD,+CAAiF;AAAxE,uGAAA,WAAW,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,+GAAA,mBAAmB,OAAA;AAGpD,eAAe;AACf,kEAA8F;AAArF,6GAAA,UAAU,OAAA;AAAE,4GAAA,SAAS,OAAA;AAAE,wHAAA,qBAAqB,OAAA;AAGrD,4BAA4B;AAC5B,8EAI8C;AAH5C,sIAAA,6BAA6B,OAAA;AAC7B,0IAAA,iCAAiC,OAAA;AACjC,gIAAA,uBAAuB,OAAA"}
@@ -1,4 +1,4 @@
1
- import type { AnonymizerOptions } from '@studio-foundation/anonymizer';
1
+ import type { AnonymizerOptions, DetectionProvider } from '@studio-foundation/anonymizer';
2
2
  /**
3
3
  * Stateful middleware that anonymizes text before sending to LLM
4
4
  * and deanonymizes text after receiving from LLM.
@@ -7,12 +7,27 @@ import type { AnonymizerOptions } from '@studio-foundation/anonymizer';
7
7
  export declare class AnonymizationMiddleware {
8
8
  private keymap;
9
9
  private options?;
10
- constructor(options?: Omit<AnonymizerOptions, 'seedKeymap'>);
10
+ private detector;
11
+ constructor(options?: Omit<AnonymizerOptions, 'seedKeymap'>, detector?: DetectionProvider);
11
12
  /**
12
13
  * Anonymize text. Accumulated keymap grows with each call.
13
14
  * Same PII value always gets the same token (guaranteed by seedKeymap).
14
15
  */
15
16
  anonymize(text: string): string;
17
+ /**
18
+ * Anonymize named input fields independently, BEFORE prompt assembly. Each
19
+ * in-scope field is detected + tokenized through the injected
20
+ * DetectionProvider, all sharing this instance's run-level keymap — so a PII
21
+ * value appearing in two in-scope fields receives the SAME token.
22
+ *
23
+ * `scope` is an OPAQUE list of field names to anonymize: undefined → all
24
+ * fields (fail-safe); [] → none; ['a'] → only field `a`. Out-of-scope fields
25
+ * are copied byte-for-byte and are NEVER passed to the detector, so their PII
26
+ * cannot enter the keymap and collide with a value tokenized elsewhere.
27
+ * Membership is a set check on opaque names — the kernel never branches on
28
+ * what a name means (INV-04). Async because DetectionProvider.detect is async.
29
+ */
30
+ anonymizeFields(fields: Record<string, string>, scope?: string[]): Promise<Record<string, string>>;
16
31
  /**
17
32
  * Deanonymize text using accumulated keymap.
18
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"anonymization.d.ts","sourceRoot":"","sources":["../../src/middleware/anonymization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;;;GAIG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,OAAO,CAAC,CAAwC;gBAE5C,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC;IAI3D;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAO/B;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIjC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAGpC"}
1
+ {"version":3,"file":"anonymization.d.ts","sourceRoot":"","sources":["../../src/middleware/anonymization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAE1F;;;;GAIG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,OAAO,CAAC,CAAwC;IACxD,OAAO,CAAC,QAAQ,CAAoB;gBAExB,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,EAAE,iBAAiB;IAQzF;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAO/B;;;;;;;;;;;;OAYG;IACG,eAAe,CACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAmBlC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIjC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAGpC"}
@@ -10,8 +10,13 @@ const anonymizer_1 = require("@studio-foundation/anonymizer");
10
10
  class AnonymizationMiddleware {
11
11
  keymap = {};
12
12
  options;
13
- constructor(options) {
13
+ detector;
14
+ constructor(options, detector) {
14
15
  this.options = options;
16
+ // Default to the in-process regex detector. A run can inject a different
17
+ // DetectionProvider (e.g. a future NER/Presidio provider) without the
18
+ // middleware knowing anything about detection internals.
19
+ this.detector = detector ?? new anonymizer_1.RegexDetector();
15
20
  }
16
21
  /**
17
22
  * Anonymize text. Accumulated keymap grows with each call.
@@ -23,6 +28,37 @@ class AnonymizationMiddleware {
23
28
  this.keymap = result.keymap;
24
29
  return result.text;
25
30
  }
31
+ /**
32
+ * Anonymize named input fields independently, BEFORE prompt assembly. Each
33
+ * in-scope field is detected + tokenized through the injected
34
+ * DetectionProvider, all sharing this instance's run-level keymap — so a PII
35
+ * value appearing in two in-scope fields receives the SAME token.
36
+ *
37
+ * `scope` is an OPAQUE list of field names to anonymize: undefined → all
38
+ * fields (fail-safe); [] → none; ['a'] → only field `a`. Out-of-scope fields
39
+ * are copied byte-for-byte and are NEVER passed to the detector, so their PII
40
+ * cannot enter the keymap and collide with a value tokenized elsewhere.
41
+ * Membership is a set check on opaque names — the kernel never branches on
42
+ * what a name means (INV-04). Async because DetectionProvider.detect is async.
43
+ */
44
+ async anonymizeFields(fields, scope) {
45
+ const out = {};
46
+ for (const [name, value] of Object.entries(fields)) {
47
+ // Out of scope → copy verbatim, no detection. Undefined scope = all in.
48
+ if (scope !== undefined && !scope.includes(name)) {
49
+ out[name] = value;
50
+ continue;
51
+ }
52
+ const result = await (0, anonymizer_1.anonymizeWithProvider)(value, this.detector, {
53
+ ...this.options,
54
+ seedKeymap: this.keymap,
55
+ });
56
+ // Carry the accumulated keymap forward so the next field reuses tokens.
57
+ this.keymap = result.keymap;
58
+ out[name] = result.text;
59
+ }
60
+ return out;
61
+ }
26
62
  /**
27
63
  * Deanonymize text using accumulated keymap.
28
64
  */
@@ -1 +1 @@
1
- {"version":3,"file":"anonymization.js","sourceRoot":"","sources":["../../src/middleware/anonymization.ts"],"names":[],"mappings":";;;AAAA,8DAAuE;AAGvE;;;;GAIG;AACH,MAAa,uBAAuB;IAC1B,MAAM,GAA2B,EAAE,CAAC;IACpC,OAAO,CAAyC;IAExD,YAAY,OAA+C;QACzD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,IAAY;QACpB,MAAM,MAAM,GAAG,IAAA,sBAAS,EAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,oEAAoE;QACpE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAAY;QACtB,OAAO,IAAA,wBAAW,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AA7BD,0DA6BC"}
1
+ {"version":3,"file":"anonymization.js","sourceRoot":"","sources":["../../src/middleware/anonymization.ts"],"names":[],"mappings":";;;AAAA,8DAA6G;AAG7G;;;;GAIG;AACH,MAAa,uBAAuB;IAC1B,MAAM,GAA2B,EAAE,CAAC;IACpC,OAAO,CAAyC;IAChD,QAAQ,CAAoB;IAEpC,YAAY,OAA+C,EAAE,QAA4B;QACvF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,yEAAyE;QACzE,sEAAsE;QACtE,yDAAyD;QACzD,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,0BAAa,EAAE,CAAC;IAClD,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,IAAY;QACpB,MAAM,MAAM,GAAG,IAAA,sBAAS,EAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,oEAAoE;QACpE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,eAAe,CACnB,MAA8B,EAC9B,KAAgB;QAEhB,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,wEAAwE;YACxE,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAA,kCAAqB,EAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;gBAC/D,GAAG,IAAI,CAAC,OAAO;gBACf,UAAU,EAAE,IAAI,CAAC,MAAM;aACxB,CAAC,CAAC;YACH,wEAAwE;YACxE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAAY;QACtB,OAAO,IAAA,wBAAW,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AArED,0DAqEC"}
@@ -1,8 +1,17 @@
1
1
  /**
2
2
  * Prompt builder - constructs messages for LLM with retry escalation
3
3
  */
4
- import type { Message, AgentConfig, OutputContract, ResolvedContextPack, ToolCall } from '@studio-foundation/contracts';
4
+ import type { Message, AgentConfig, OutputContract, ResolvedContextPack, ToolCall, TaskInput } from '@studio-foundation/contracts';
5
5
  import type { SkillContent } from './tools/skills/skill-loader.js';
6
+ export type { TaskInput } from '@studio-foundation/contracts';
7
+ /**
8
+ * Whether a task is in structured (field) mode rather than flat-description mode.
9
+ * Single source of truth for the `description` XOR `fields` branch — both the
10
+ * anonymization injection point and prompt assembly call this instead of
11
+ * re-checking `fields && Object.keys(fields).length > 0`. An empty record
12
+ * degrades to flat mode.
13
+ */
14
+ export declare function hasFields(task: TaskInput): boolean;
6
15
  export interface ExecutionContext {
7
16
  attempt: number;
8
17
  previous_failures?: Array<{
@@ -10,11 +19,6 @@ export interface ExecutionContext {
10
19
  tool_calls_count: number;
11
20
  }>;
12
21
  }
13
- export interface TaskInput {
14
- description: string;
15
- expected_output?: string;
16
- contract_name?: string;
17
- }
18
22
  export interface GroupFeedbackContext {
19
23
  iteration: number;
20
24
  max_iterations: number;
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../src/prompt-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;IACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,EAAE,CA+IhE"}
1
+ {"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../src/prompt-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACnI,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAKnE,YAAY,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAElD;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;IACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,EAAE,CA+IhE"}
@@ -3,7 +3,18 @@
3
3
  * Prompt builder - constructs messages for LLM with retry escalation
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.hasFields = hasFields;
6
7
  exports.buildPrompt = buildPrompt;
8
+ /**
9
+ * Whether a task is in structured (field) mode rather than flat-description mode.
10
+ * Single source of truth for the `description` XOR `fields` branch — both the
11
+ * anonymization injection point and prompt assembly call this instead of
12
+ * re-checking `fields && Object.keys(fields).length > 0`. An empty record
13
+ * degrades to flat mode.
14
+ */
15
+ function hasFields(task) {
16
+ return !!task.fields && Object.keys(task.fields).length > 0;
17
+ }
7
18
  /**
8
19
  * Build prompt messages with retry escalation support
9
20
  */
@@ -123,8 +134,8 @@ ${task.expected_output || `Provide your response according to the ${task.contrac
123
134
  if (context.previous_tool_results && Object.keys(context.previous_tool_results).length > 0) {
124
135
  userContent += renderToolResults(context.previous_tool_results);
125
136
  }
126
- // Add task description
127
- userContent += `## Task\n\n${task.description}`;
137
+ // Add task — from structured fields when present, else the flat description.
138
+ userContent += renderTask(task);
128
139
  // Add retry escalation if this is a retry attempt
129
140
  if (executionContext && executionContext.attempt > 1) {
130
141
  userContent += getRetryEscalationMessage(executionContext);
@@ -254,6 +265,20 @@ function renderToolResults(previous_tool_results) {
254
265
  }
255
266
  return out;
256
267
  }
268
+ /**
269
+ * Render the `## Task` section. When the input carries named `fields`, render
270
+ * each as its own `### <name>` subsection (the values are already tokenized by
271
+ * the time the prompt is built). Otherwise fall back to the flat description.
272
+ */
273
+ function renderTask(task) {
274
+ if (hasFields(task)) {
275
+ const sections = Object.entries(task.fields)
276
+ .map(([name, value]) => `### ${name}\n\n${value}`)
277
+ .join('\n\n');
278
+ return `## Task\n\n${sections}`;
279
+ }
280
+ return `## Task\n\n${task.description}`;
281
+ }
257
282
  function getFieldTypeHint(field) {
258
283
  return FIELD_TYPE_HINTS[field] || 'string';
259
284
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../src/prompt-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../src/prompt-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { ToolDefinition } from '@studio-foundation/contracts';
2
+ import type { AgentLoopResult, ToolCallOutcome } from './provider.js';
3
+ export declare class ClaudeCodeMcpServer {
4
+ private readonly tools;
5
+ private readonly executeTool;
6
+ private server;
7
+ private readonly completedToolCalls;
8
+ constructor(tools: ToolDefinition[], executeTool: (name: string, args: Record<string, unknown>, callId: string) => Promise<ToolCallOutcome>);
9
+ start(): Promise<number>;
10
+ stop(): Promise<void>;
11
+ getToolCalls(): AgentLoopResult['tool_calls'];
12
+ private handleRequest;
13
+ private dispatch;
14
+ }
15
+ //# sourceMappingURL=claude-code-mcp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code-mcp-server.d.ts","sourceRoot":"","sources":["../../src/providers/claude-code-mcp-server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEtE,qBAAa,mBAAmB;IAK5B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAL9B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqC;gBAGrD,KAAK,EAAE,cAAc,EAAE,EACvB,WAAW,EAAE,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,eAAe,CAAC;IAGzB,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAiBxB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,YAAY,IAAI,eAAe,CAAC,YAAY,CAAC;YAI/B,aAAa;YA2Bb,QAAQ;CA+DvB"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClaudeCodeMcpServer = void 0;
4
+ const node_http_1 = require("node:http");
5
+ const node_crypto_1 = require("node:crypto");
6
+ class ClaudeCodeMcpServer {
7
+ tools;
8
+ executeTool;
9
+ server = null;
10
+ completedToolCalls = [];
11
+ constructor(tools, executeTool) {
12
+ this.tools = tools;
13
+ this.executeTool = executeTool;
14
+ }
15
+ async start() {
16
+ return new Promise((resolve, reject) => {
17
+ this.server = (0, node_http_1.createServer)((req, res) => {
18
+ this.handleRequest(req, res).catch(err => {
19
+ res.writeHead(500);
20
+ res.end(JSON.stringify({ error: String(err) }));
21
+ });
22
+ });
23
+ this.server.listen(0, '127.0.0.1', () => {
24
+ const addr = this.server.address();
25
+ if (!addr || typeof addr === 'string')
26
+ return reject(new Error('Bad address'));
27
+ resolve(addr.port);
28
+ });
29
+ this.server.on('error', reject);
30
+ });
31
+ }
32
+ async stop() {
33
+ return new Promise((resolve) => {
34
+ if (!this.server)
35
+ return resolve();
36
+ this.server.close(() => resolve());
37
+ });
38
+ }
39
+ getToolCalls() {
40
+ return this.completedToolCalls;
41
+ }
42
+ async handleRequest(req, res) {
43
+ if (req.method !== 'POST') {
44
+ res.writeHead(405);
45
+ res.end();
46
+ return;
47
+ }
48
+ const body = await readBody(req);
49
+ const rpc = JSON.parse(body);
50
+ // Notifications: no id OR method starts with "notifications/" — respond with null
51
+ if (rpc.id === undefined || rpc.method.startsWith('notifications/')) {
52
+ res.writeHead(200, { 'Content-Type': 'application/json' });
53
+ res.end('null');
54
+ return;
55
+ }
56
+ const result = await this.dispatch(rpc.method, rpc.params);
57
+ res.writeHead(200, { 'Content-Type': 'application/json' });
58
+ res.end(JSON.stringify({ jsonrpc: '2.0', id: rpc.id, ...result }));
59
+ }
60
+ async dispatch(method, params) {
61
+ if (method === 'initialize') {
62
+ return {
63
+ result: {
64
+ protocolVersion: '2024-11-05',
65
+ capabilities: { tools: {} },
66
+ serverInfo: { name: 'studio', version: '1.0' },
67
+ },
68
+ };
69
+ }
70
+ if (method === 'tools/list') {
71
+ return {
72
+ result: {
73
+ tools: this.tools.map(t => ({
74
+ name: t.name,
75
+ description: t.description,
76
+ inputSchema: t.parameters,
77
+ })),
78
+ },
79
+ };
80
+ }
81
+ if (method === 'tools/call') {
82
+ const p = params;
83
+ if (!p?.name || !p?.arguments) {
84
+ return { error: { code: -32602, message: 'Invalid params: name and arguments are required' } };
85
+ }
86
+ const callId = (0, node_crypto_1.randomUUID)();
87
+ let outcome;
88
+ try {
89
+ outcome = await this.executeTool(p.name, p.arguments, callId);
90
+ }
91
+ catch (err) {
92
+ outcome = { error: err instanceof Error ? err.message : String(err) };
93
+ }
94
+ this.completedToolCalls.push({
95
+ id: callId,
96
+ name: p.name,
97
+ arguments: p.arguments,
98
+ ...(outcome.error ? { error: outcome.error } : { result: outcome.result }),
99
+ });
100
+ if (outcome.error) {
101
+ return {
102
+ result: {
103
+ content: [{ type: 'text', text: `Error: ${outcome.error}` }],
104
+ isError: true,
105
+ },
106
+ };
107
+ }
108
+ return {
109
+ result: {
110
+ content: [{ type: 'text', text: JSON.stringify(outcome.result) }],
111
+ },
112
+ };
113
+ }
114
+ return { error: { code: -32601, message: `Method not found: ${method}` } };
115
+ }
116
+ }
117
+ exports.ClaudeCodeMcpServer = ClaudeCodeMcpServer;
118
+ function readBody(req) {
119
+ return new Promise((resolve, reject) => {
120
+ const chunks = [];
121
+ req.on('data', (chunk) => chunks.push(chunk));
122
+ req.on('end', () => resolve(Buffer.concat(chunks).toString('utf-8')));
123
+ req.on('error', reject);
124
+ });
125
+ }
126
+ //# sourceMappingURL=claude-code-mcp-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code-mcp-server.js","sourceRoot":"","sources":["../../src/providers/claude-code-mcp-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=claude-code-mcp-server.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code-mcp-server.test.d.ts","sourceRoot":"","sources":["../../src/providers/claude-code-mcp-server.test.ts"],"names":[],"mappings":""}