@tarquinen/opencode-dcp 0.4.2 → 0.4.12

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 (101) hide show
  1. package/README.md +8 -6
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +5 -15
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/config.js +2 -2
  6. package/dist/lib/config.js.map +1 -1
  7. package/dist/lib/core/janitor.d.ts +3 -25
  8. package/dist/lib/core/janitor.d.ts.map +1 -1
  9. package/dist/lib/core/janitor.js +2 -11
  10. package/dist/lib/core/janitor.js.map +1 -1
  11. package/dist/lib/core/strategies/deduplication.d.ts +1 -1
  12. package/dist/lib/core/strategies/index.d.ts +32 -2
  13. package/dist/lib/core/strategies/index.d.ts.map +1 -1
  14. package/dist/lib/core/strategies/index.js.map +1 -1
  15. package/dist/lib/fetch-wrapper/formats/anthropic.d.ts +8 -0
  16. package/dist/lib/fetch-wrapper/formats/anthropic.d.ts.map +1 -0
  17. package/dist/lib/fetch-wrapper/formats/anthropic.js +122 -0
  18. package/dist/lib/fetch-wrapper/formats/anthropic.js.map +1 -0
  19. package/dist/lib/fetch-wrapper/formats/bedrock.d.ts +3 -9
  20. package/dist/lib/fetch-wrapper/formats/bedrock.d.ts.map +1 -1
  21. package/dist/lib/fetch-wrapper/formats/bedrock.js +25 -45
  22. package/dist/lib/fetch-wrapper/formats/bedrock.js.map +1 -1
  23. package/dist/lib/fetch-wrapper/formats/gemini.d.ts +1 -7
  24. package/dist/lib/fetch-wrapper/formats/gemini.d.ts.map +1 -1
  25. package/dist/lib/fetch-wrapper/formats/gemini.js +30 -23
  26. package/dist/lib/fetch-wrapper/formats/gemini.js.map +1 -1
  27. package/dist/lib/fetch-wrapper/formats/index.d.ts +1 -0
  28. package/dist/lib/fetch-wrapper/formats/index.d.ts.map +1 -1
  29. package/dist/lib/fetch-wrapper/formats/index.js +1 -0
  30. package/dist/lib/fetch-wrapper/formats/index.js.map +1 -1
  31. package/dist/lib/fetch-wrapper/formats/openai-chat.d.ts +0 -11
  32. package/dist/lib/fetch-wrapper/formats/openai-chat.d.ts.map +1 -1
  33. package/dist/lib/fetch-wrapper/formats/openai-chat.js +33 -25
  34. package/dist/lib/fetch-wrapper/formats/openai-chat.js.map +1 -1
  35. package/dist/lib/fetch-wrapper/formats/openai-responses.d.ts +0 -8
  36. package/dist/lib/fetch-wrapper/formats/openai-responses.d.ts.map +1 -1
  37. package/dist/lib/fetch-wrapper/formats/openai-responses.js +29 -21
  38. package/dist/lib/fetch-wrapper/formats/openai-responses.js.map +1 -1
  39. package/dist/lib/fetch-wrapper/handler.d.ts +0 -10
  40. package/dist/lib/fetch-wrapper/handler.d.ts.map +1 -1
  41. package/dist/lib/fetch-wrapper/handler.js +74 -41
  42. package/dist/lib/fetch-wrapper/handler.js.map +1 -1
  43. package/dist/lib/fetch-wrapper/index.d.ts +4 -5
  44. package/dist/lib/fetch-wrapper/index.d.ts.map +1 -1
  45. package/dist/lib/fetch-wrapper/index.js +16 -7
  46. package/dist/lib/fetch-wrapper/index.js.map +1 -1
  47. package/dist/lib/fetch-wrapper/prunable-list.d.ts +8 -0
  48. package/dist/lib/fetch-wrapper/prunable-list.d.ts.map +1 -0
  49. package/dist/lib/fetch-wrapper/prunable-list.js +38 -0
  50. package/dist/lib/fetch-wrapper/prunable-list.js.map +1 -0
  51. package/dist/lib/fetch-wrapper/tool-tracker.d.ts +8 -0
  52. package/dist/lib/fetch-wrapper/tool-tracker.d.ts.map +1 -0
  53. package/dist/lib/fetch-wrapper/tool-tracker.js +7 -0
  54. package/dist/lib/fetch-wrapper/tool-tracker.js.map +1 -0
  55. package/dist/lib/fetch-wrapper/types.d.ts +31 -46
  56. package/dist/lib/fetch-wrapper/types.d.ts.map +1 -1
  57. package/dist/lib/fetch-wrapper/types.js +6 -44
  58. package/dist/lib/fetch-wrapper/types.js.map +1 -1
  59. package/dist/lib/hooks.d.ts +6 -2
  60. package/dist/lib/hooks.d.ts.map +1 -1
  61. package/dist/lib/hooks.js +21 -11
  62. package/dist/lib/hooks.js.map +1 -1
  63. package/dist/lib/prompts/nudge.txt +8 -5
  64. package/dist/lib/prompts/synthetic.txt +18 -30
  65. package/dist/lib/prompts/tool.txt +46 -63
  66. package/dist/lib/pruning-tool.d.ts +1 -1
  67. package/dist/lib/pruning-tool.d.ts.map +1 -1
  68. package/dist/lib/pruning-tool.js +30 -23
  69. package/dist/lib/pruning-tool.js.map +1 -1
  70. package/dist/lib/state/id-mapping.d.ts +0 -1
  71. package/dist/lib/state/id-mapping.d.ts.map +1 -1
  72. package/dist/lib/state/id-mapping.js +0 -3
  73. package/dist/lib/state/id-mapping.js.map +1 -1
  74. package/dist/lib/state/index.d.ts +3 -0
  75. package/dist/lib/state/index.d.ts.map +1 -1
  76. package/dist/lib/state/index.js.map +1 -1
  77. package/dist/lib/state/tool-cache.d.ts +5 -12
  78. package/dist/lib/state/tool-cache.d.ts.map +1 -1
  79. package/dist/lib/state/tool-cache.js +47 -72
  80. package/dist/lib/state/tool-cache.js.map +1 -1
  81. package/dist/lib/ui/display-utils.d.ts +12 -0
  82. package/dist/lib/ui/display-utils.d.ts.map +1 -1
  83. package/dist/lib/ui/display-utils.js +66 -0
  84. package/dist/lib/ui/display-utils.js.map +1 -1
  85. package/dist/lib/ui/notification.d.ts +5 -12
  86. package/dist/lib/ui/notification.d.ts.map +1 -1
  87. package/dist/lib/ui/notification.js +31 -138
  88. package/dist/lib/ui/notification.js.map +1 -1
  89. package/package.json +1 -1
  90. package/dist/lib/api-formats/prunable-list.d.ts +0 -49
  91. package/dist/lib/api-formats/prunable-list.d.ts.map +0 -1
  92. package/dist/lib/api-formats/prunable-list.js +0 -112
  93. package/dist/lib/api-formats/prunable-list.js.map +0 -1
  94. package/dist/lib/api-formats/synth-instruction.d.ts +0 -29
  95. package/dist/lib/api-formats/synth-instruction.d.ts.map +0 -1
  96. package/dist/lib/api-formats/synth-instruction.js +0 -171
  97. package/dist/lib/api-formats/synth-instruction.js.map +0 -1
  98. package/dist/lib/core/strategies/types.d.ts +0 -35
  99. package/dist/lib/core/strategies/types.d.ts.map +0 -1
  100. package/dist/lib/core/strategies/types.js +0 -6
  101. package/dist/lib/core/strategies/types.js.map +0 -1
@@ -1,22 +1,11 @@
1
- import { cacheToolParametersFromMessages } from "../../state/tool-cache";
2
- import { injectSynth, trackNewToolResults } from "../../api-formats/synth-instruction";
3
- import { injectPrunableList } from "../../api-formats/prunable-list";
4
1
  /**
5
- * Format descriptor for AWS Bedrock Converse API.
6
- *
7
- * Bedrock format characteristics:
8
- * - Top-level `system` array for system messages
9
- * - `messages` array with only 'user' and 'assistant' roles
10
- * - `inferenceConfig` for model parameters (maxTokens, temperature, etc.)
11
- * - Tool calls: `toolUse` blocks in assistant content with `toolUseId`
12
- * - Tool results: `toolResult` blocks in user content with `toolUseId`
13
- * - Cache points: `cachePoint` blocks that should be preserved
2
+ * Bedrock uses top-level `system` array + `inferenceConfig` (distinguishes from OpenAI/Anthropic).
3
+ * Tool calls: `toolUse` blocks in assistant content with `toolUseId`
4
+ * Tool results: `toolResult` blocks in user content with `toolUseId`
14
5
  */
15
6
  export const bedrockFormat = {
16
7
  name: 'bedrock',
17
8
  detect(body) {
18
- // Bedrock has a top-level system array AND inferenceConfig (not model params in messages)
19
- // This distinguishes it from OpenAI/Anthropic which put system in messages
20
9
  return (Array.isArray(body.system) &&
21
10
  body.inferenceConfig !== undefined &&
22
11
  Array.isArray(body.messages));
@@ -24,42 +13,35 @@ export const bedrockFormat = {
24
13
  getDataArray(body) {
25
14
  return body.messages;
26
15
  },
27
- cacheToolParameters(data, state, logger) {
28
- // Bedrock stores tool calls in assistant message content as toolUse blocks
29
- // We need to extract toolUseId and tool name for later correlation
30
- for (const m of data) {
31
- if (m.role === 'assistant' && Array.isArray(m.content)) {
32
- for (const block of m.content) {
33
- if (block.toolUse && block.toolUse.toolUseId) {
34
- const toolUseId = block.toolUse.toolUseId.toLowerCase();
35
- state.toolParameters.set(toolUseId, {
36
- tool: block.toolUse.name,
37
- parameters: block.toolUse.input
38
- });
39
- logger?.debug("bedrock", "Cached tool parameters", {
40
- toolUseId,
41
- toolName: block.toolUse.name
42
- });
43
- }
16
+ injectSystemMessage(body, injection) {
17
+ if (!injection)
18
+ return false;
19
+ if (!Array.isArray(body.system)) {
20
+ body.system = [];
21
+ }
22
+ body.system.push({ text: injection });
23
+ return true;
24
+ },
25
+ appendToLastAssistantMessage(body, injection) {
26
+ if (!injection || !body.messages || body.messages.length === 0)
27
+ return false;
28
+ for (let i = body.messages.length - 1; i >= 0; i--) {
29
+ const msg = body.messages[i];
30
+ if (msg.role === 'assistant') {
31
+ if (Array.isArray(msg.content)) {
32
+ msg.content.push({ text: injection });
33
+ }
34
+ else {
35
+ msg.content = [{ text: injection }];
44
36
  }
37
+ return true;
45
38
  }
46
39
  }
47
- // Also use the generic message caching for any compatible structures
48
- cacheToolParametersFromMessages(data, state, logger);
49
- },
50
- injectSynth(data, instruction, nudgeText) {
51
- return injectSynth(data, instruction, nudgeText);
52
- },
53
- trackNewToolResults(data, tracker, protectedTools) {
54
- return trackNewToolResults(data, tracker, protectedTools);
55
- },
56
- injectPrunableList(data, injection) {
57
- return injectPrunableList(data, injection);
40
+ return false;
58
41
  },
59
42
  extractToolOutputs(data, state) {
60
43
  const outputs = [];
61
44
  for (const m of data) {
62
- // Bedrock tool results are in user messages as toolResult blocks
63
45
  if (m.role === 'user' && Array.isArray(m.content)) {
64
46
  for (const block of m.content) {
65
47
  if (block.toolResult && block.toolResult.toolUseId) {
@@ -80,13 +62,11 @@ export const bedrockFormat = {
80
62
  let replaced = false;
81
63
  for (let i = 0; i < data.length; i++) {
82
64
  const m = data[i];
83
- // Tool results are in user messages as toolResult blocks
84
65
  if (m.role === 'user' && Array.isArray(m.content)) {
85
66
  let messageModified = false;
86
67
  const newContent = m.content.map((block) => {
87
68
  if (block.toolResult && block.toolResult.toolUseId?.toLowerCase() === toolIdLower) {
88
69
  messageModified = true;
89
- // Replace the content array inside toolResult with pruned message
90
70
  return {
91
71
  ...block,
92
72
  toolResult: {
@@ -1 +1 @@
1
- {"version":3,"file":"bedrock.js","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/bedrock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bedrock.js","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/bedrock.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,6 @@
1
1
  import type { FormatDescriptor } from "../types";
2
2
  /**
3
- * Format descriptor for Google/Gemini API.
4
- *
5
- * Uses body.contents array with:
6
- * - parts[].functionCall for tool invocations
7
- * - parts[].functionResponse for tool results
8
- *
9
- * IMPORTANT: Gemini doesn't include tool call IDs in its native format.
3
+ * Gemini doesn't include tool call IDs in its native format.
10
4
  * We use position-based correlation via state.googleToolCallMapping which maps
11
5
  * "toolName:index" -> "toolCallId" (populated by hooks.ts from message events).
12
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,UAAU,CAAA;AAQ5D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,EAAE,gBAqJ1B,CAAA"}
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,UAAU,CAAA;AAG5D;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,gBAkK1B,CAAA"}
@@ -1,13 +1,5 @@
1
- import { injectSynthGemini, trackNewToolResultsGemini } from "../../api-formats/synth-instruction";
2
- import { injectPrunableListGemini } from "../../api-formats/prunable-list";
3
1
  /**
4
- * Format descriptor for Google/Gemini API.
5
- *
6
- * Uses body.contents array with:
7
- * - parts[].functionCall for tool invocations
8
- * - parts[].functionResponse for tool results
9
- *
10
- * IMPORTANT: Gemini doesn't include tool call IDs in its native format.
2
+ * Gemini doesn't include tool call IDs in its native format.
11
3
  * We use position-based correlation via state.googleToolCallMapping which maps
12
4
  * "toolName:index" -> "toolCallId" (populated by hooks.ts from message events).
13
5
  */
@@ -19,20 +11,34 @@ export const geminiFormat = {
19
11
  getDataArray(body) {
20
12
  return body.contents;
21
13
  },
22
- cacheToolParameters(_data, _state, _logger) {
23
- // Gemini format doesn't include tool parameters in the request body.
24
- // Tool parameters are captured via message events in hooks.ts and stored
25
- // in state.googleToolCallMapping for position-based correlation.
26
- // No-op here.
27
- },
28
- injectSynth(data, instruction, nudgeText) {
29
- return injectSynthGemini(data, instruction, nudgeText);
30
- },
31
- trackNewToolResults(data, tracker, protectedTools) {
32
- return trackNewToolResultsGemini(data, tracker, protectedTools);
14
+ injectSystemMessage(body, injection) {
15
+ if (!injection)
16
+ return false;
17
+ if (!body.systemInstruction) {
18
+ body.systemInstruction = { parts: [] };
19
+ }
20
+ if (!Array.isArray(body.systemInstruction.parts)) {
21
+ body.systemInstruction.parts = [];
22
+ }
23
+ body.systemInstruction.parts.push({ text: injection });
24
+ return true;
33
25
  },
34
- injectPrunableList(data, injection) {
35
- return injectPrunableListGemini(data, injection);
26
+ appendToLastAssistantMessage(body, injection) {
27
+ if (!injection || !body.contents || body.contents.length === 0)
28
+ return false;
29
+ for (let i = body.contents.length - 1; i >= 0; i--) {
30
+ const content = body.contents[i];
31
+ if (content.role === 'model') {
32
+ if (Array.isArray(content.parts)) {
33
+ content.parts.push({ text: injection });
34
+ }
35
+ else {
36
+ content.parts = [{ text: injection }];
37
+ }
38
+ return true;
39
+ }
40
+ }
41
+ return false;
36
42
  },
37
43
  extractToolOutputs(data, state) {
38
44
  const outputs = [];
@@ -59,9 +65,10 @@ export const geminiFormat = {
59
65
  const positionKey = `${funcName}:${currentIndex}`;
60
66
  const toolCallId = positionMapping.get(positionKey);
61
67
  if (toolCallId) {
68
+ const metadata = state.toolParameters.get(toolCallId.toLowerCase());
62
69
  outputs.push({
63
70
  id: toolCallId.toLowerCase(),
64
- toolName: funcName
71
+ toolName: metadata?.tool
65
72
  });
66
73
  }
67
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/gemini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/gemini.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@ export { openaiChatFormat } from './openai-chat';
2
2
  export { openaiResponsesFormat } from './openai-responses';
3
3
  export { geminiFormat } from './gemini';
4
4
  export { bedrockFormat } from './bedrock';
5
+ export { anthropicFormat } from './anthropic';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA"}
@@ -2,4 +2,5 @@ export { openaiChatFormat } from './openai-chat';
2
2
  export { openaiResponsesFormat } from './openai-responses';
3
3
  export { geminiFormat } from './gemini';
4
4
  export { bedrockFormat } from './bedrock';
5
+ export { anthropicFormat } from './anthropic';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA"}
@@ -1,14 +1,3 @@
1
1
  import type { FormatDescriptor } from "../types";
2
- /**
3
- * Format descriptor for OpenAI Chat Completions and Anthropic APIs.
4
- *
5
- * OpenAI Chat format:
6
- * - Messages with role='tool' and tool_call_id
7
- * - Assistant messages with tool_calls[] array
8
- *
9
- * Anthropic format:
10
- * - Messages with role='user' containing content[].type='tool_result' and tool_use_id
11
- * - Assistant messages with content[].type='tool_use'
12
- */
13
2
  export declare const openaiChatFormat: FormatDescriptor;
14
3
  //# sourceMappingURL=openai-chat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai-chat.d.ts","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/openai-chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,UAAU,CAAA;AAS5D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBAyG9B,CAAA"}
1
+ {"version":3,"file":"openai-chat.d.ts","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/openai-chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,UAAU,CAAA;AAG5D,eAAO,MAAM,gBAAgB,EAAE,gBA4H9B,CAAA"}
@@ -1,17 +1,3 @@
1
- import { cacheToolParametersFromMessages } from "../../state/tool-cache";
2
- import { injectSynth, trackNewToolResults } from "../../api-formats/synth-instruction";
3
- import { injectPrunableList } from "../../api-formats/prunable-list";
4
- /**
5
- * Format descriptor for OpenAI Chat Completions and Anthropic APIs.
6
- *
7
- * OpenAI Chat format:
8
- * - Messages with role='tool' and tool_call_id
9
- * - Assistant messages with tool_calls[] array
10
- *
11
- * Anthropic format:
12
- * - Messages with role='user' containing content[].type='tool_result' and tool_use_id
13
- * - Assistant messages with content[].type='tool_use'
14
- */
15
1
  export const openaiChatFormat = {
16
2
  name: 'openai-chat',
17
3
  detect(body) {
@@ -20,17 +6,38 @@ export const openaiChatFormat = {
20
6
  getDataArray(body) {
21
7
  return body.messages;
22
8
  },
23
- cacheToolParameters(data, state, logger) {
24
- cacheToolParametersFromMessages(data, state, logger);
25
- },
26
- injectSynth(data, instruction, nudgeText) {
27
- return injectSynth(data, instruction, nudgeText);
28
- },
29
- trackNewToolResults(data, tracker, protectedTools) {
30
- return trackNewToolResults(data, tracker, protectedTools);
9
+ injectSystemMessage(body, injection) {
10
+ if (!injection || !body.messages)
11
+ return false;
12
+ let lastSystemIndex = -1;
13
+ for (let i = 0; i < body.messages.length; i++) {
14
+ if (body.messages[i].role === 'system') {
15
+ lastSystemIndex = i;
16
+ }
17
+ }
18
+ const insertIndex = lastSystemIndex + 1;
19
+ body.messages.splice(insertIndex, 0, { role: 'system', content: injection });
20
+ return true;
31
21
  },
32
- injectPrunableList(data, injection) {
33
- return injectPrunableList(data, injection);
22
+ appendToLastAssistantMessage(body, injection) {
23
+ if (!injection || !body.messages || body.messages.length === 0)
24
+ return false;
25
+ for (let i = body.messages.length - 1; i >= 0; i--) {
26
+ const msg = body.messages[i];
27
+ if (msg.role === 'assistant') {
28
+ if (typeof msg.content === 'string') {
29
+ msg.content = msg.content + '\n\n' + injection;
30
+ }
31
+ else if (Array.isArray(msg.content)) {
32
+ msg.content.push({ type: 'text', text: injection });
33
+ }
34
+ else {
35
+ msg.content = injection;
36
+ }
37
+ return true;
38
+ }
39
+ }
40
+ return false;
34
41
  },
35
42
  extractToolOutputs(data, state) {
36
43
  const outputs = [];
@@ -99,7 +106,8 @@ export const openaiChatFormat = {
99
106
  return {
100
107
  url: inputUrl,
101
108
  replacedCount,
102
- totalMessages: data.length
109
+ totalMessages: data.length,
110
+ format: 'openai-chat'
103
111
  };
104
112
  }
105
113
  };
@@ -1 +1 @@
1
- {"version":3,"file":"openai-chat.js","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/openai-chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-chat.js","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/openai-chat.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,3 @@
1
1
  import type { FormatDescriptor } from "../types";
2
- /**
3
- * Format descriptor for OpenAI Responses API (GPT-5 models via sdk.responses()).
4
- *
5
- * Uses body.input array with:
6
- * - type='function_call' items for tool calls
7
- * - type='function_call_output' items for tool results
8
- * - type='message' items for user/assistant messages
9
- */
10
2
  export declare const openaiResponsesFormat: FormatDescriptor;
11
3
  //# sourceMappingURL=openai-responses.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai-responses.d.ts","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/openai-responses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,UAAU,CAAA;AAS5D;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,EAAE,gBAsEnC,CAAA"}
1
+ {"version":3,"file":"openai-responses.d.ts","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/openai-responses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,UAAU,CAAA;AAG5D,eAAO,MAAM,qBAAqB,EAAE,gBAoFnC,CAAA"}
@@ -1,14 +1,3 @@
1
- import { cacheToolParametersFromInput } from "../../state/tool-cache";
2
- import { injectSynthResponses, trackNewToolResultsResponses } from "../../api-formats/synth-instruction";
3
- import { injectPrunableListResponses } from "../../api-formats/prunable-list";
4
- /**
5
- * Format descriptor for OpenAI Responses API (GPT-5 models via sdk.responses()).
6
- *
7
- * Uses body.input array with:
8
- * - type='function_call' items for tool calls
9
- * - type='function_call_output' items for tool results
10
- * - type='message' items for user/assistant messages
11
- */
12
1
  export const openaiResponsesFormat = {
13
2
  name: 'openai-responses',
14
3
  detect(body) {
@@ -17,17 +6,36 @@ export const openaiResponsesFormat = {
17
6
  getDataArray(body) {
18
7
  return body.input;
19
8
  },
20
- cacheToolParameters(data, state, logger) {
21
- cacheToolParametersFromInput(data, state, logger);
22
- },
23
- injectSynth(data, instruction, nudgeText) {
24
- return injectSynthResponses(data, instruction, nudgeText);
25
- },
26
- trackNewToolResults(data, tracker, protectedTools) {
27
- return trackNewToolResultsResponses(data, tracker, protectedTools);
9
+ injectSystemMessage(body, injection) {
10
+ if (!injection)
11
+ return false;
12
+ if (body.instructions && typeof body.instructions === 'string') {
13
+ body.instructions = body.instructions + '\n\n' + injection;
14
+ }
15
+ else {
16
+ body.instructions = injection;
17
+ }
18
+ return true;
28
19
  },
29
- injectPrunableList(data, injection) {
30
- return injectPrunableListResponses(data, injection);
20
+ appendToLastAssistantMessage(body, injection) {
21
+ if (!injection || !body.input || body.input.length === 0)
22
+ return false;
23
+ for (let i = body.input.length - 1; i >= 0; i--) {
24
+ const item = body.input[i];
25
+ if (item.type === 'message' && item.role === 'assistant') {
26
+ if (typeof item.content === 'string') {
27
+ item.content = item.content + '\n\n' + injection;
28
+ }
29
+ else if (Array.isArray(item.content)) {
30
+ item.content.push({ type: 'output_text', text: injection });
31
+ }
32
+ else {
33
+ item.content = injection;
34
+ }
35
+ return true;
36
+ }
37
+ }
38
+ return false;
31
39
  },
32
40
  extractToolOutputs(data, state) {
33
41
  const outputs = [];
@@ -1 +1 @@
1
- {"version":3,"file":"openai-responses.js","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/openai-responses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-responses.js","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/openai-responses.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,3 @@
1
1
  import type { FetchHandlerContext, FetchHandlerResult, FormatDescriptor } from "./types";
2
- /**
3
- * Generic format handler that processes any API format using a FormatDescriptor.
4
- *
5
- * This consolidates the common logic from all format-specific handlers:
6
- * 1. Cache tool parameters
7
- * 2. Inject synthetic instructions (if strategies enabled)
8
- * 3. Build and inject prunable tools list
9
- * 4. Replace pruned tool outputs
10
- * 5. Log and save context
11
- */
12
2
  export declare function handleFormat(body: any, ctx: FetchHandlerContext, inputUrl: string, format: FormatDescriptor): Promise<FetchHandlerResult>;
13
3
  //# sourceMappingURL=handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../lib/fetch-wrapper/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAQxF;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAC9B,IAAI,EAAE,GAAG,EACT,GAAG,EAAE,mBAAmB,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAmG7B"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../lib/fetch-wrapper/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,gBAAgB,EAAgB,MAAM,SAAS,CAAA;AAyDtG,wBAAsB,YAAY,CAC9B,IAAI,EAAE,GAAG,EACT,GAAG,EAAE,mBAAmB,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAsG7B"}