@salesforce/sfdx-agent-harness-openai 0.0.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -8
- package/README.md +15 -4
- package/dist/openai-agents-harness.d.ts +21 -11
- package/dist/openai-agents-harness.js +164 -78
- package/dist/openai-agents-harness.js.map +1 -1
- package/dist/openai-approval-coordinator.d.ts +66 -18
- package/dist/openai-approval-coordinator.js +127 -28
- package/dist/openai-approval-coordinator.js.map +1 -1
- package/dist/openai-built-in-policies.d.ts +4 -3
- package/dist/openai-built-in-policies.js +4 -3
- package/dist/openai-built-in-policies.js.map +1 -1
- package/dist/openai-event-adapter.d.ts +8 -3
- package/dist/openai-event-adapter.js +9 -4
- package/dist/openai-event-adapter.js.map +1 -1
- package/dist/openai-mcp-state.d.ts +22 -7
- package/dist/openai-message-mapper.d.ts +58 -9
- package/dist/openai-message-mapper.js +137 -12
- package/dist/openai-message-mapper.js.map +1 -1
- package/dist/openai-skill-tools.d.ts +36 -0
- package/dist/openai-skill-tools.js +209 -0
- package/dist/openai-skill-tools.js.map +1 -0
- package/dist/openai-tool-redaction.d.ts +44 -10
- package/dist/openai-tool-redaction.js +77 -29
- package/dist/openai-tool-redaction.js.map +1 -1
- package/dist/rule-composer.d.ts +35 -0
- package/dist/rule-composer.js +88 -0
- package/dist/rule-composer.js.map +1 -0
- package/dist/skill-loader.d.ts +76 -0
- package/dist/skill-loader.js +180 -0
- package/dist/skill-loader.js.map +1 -0
- package/dist/test/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -70,10 +70,15 @@ export declare class OpenAIEventAdapter {
|
|
|
70
70
|
*/
|
|
71
71
|
private mapRunItem;
|
|
72
72
|
/**
|
|
73
|
-
* Look up the
|
|
73
|
+
* Look up the tool's display name (the `@openai/agents`-sanitized name that
|
|
74
|
+
* appears on run-item events) in the MCP catalog and return the enrichment
|
|
74
75
|
* fields for a `tool-call` / `tool-result` event, or an empty object when the
|
|
75
|
-
* tool is not MCP-sourced. `bareToolName`
|
|
76
|
-
*
|
|
76
|
+
* tool is not MCP-sourced. `bareToolName` is the entry's ORIGINAL un-sanitized
|
|
77
|
+
* MCP name — which may differ from the display `toolName` when the raw name
|
|
78
|
+
* carried a character `@openai/agents` maps to `_` (e.g. `get-sum` surfaces as
|
|
79
|
+
* `get_sum`). Consumers building `{ type: 'mcp', serverName, toolName }`
|
|
80
|
+
* matchers need the original, so `bareToolName` carries it (matching the
|
|
81
|
+
* `McpToolInfo.toolName` cross-harness contract), not the display name.
|
|
77
82
|
*/
|
|
78
83
|
private enrich;
|
|
79
84
|
/**
|
|
@@ -129,10 +129,15 @@ export class OpenAIEventAdapter {
|
|
|
129
129
|
// skipped.
|
|
130
130
|
}
|
|
131
131
|
/**
|
|
132
|
-
* Look up the
|
|
132
|
+
* Look up the tool's display name (the `@openai/agents`-sanitized name that
|
|
133
|
+
* appears on run-item events) in the MCP catalog and return the enrichment
|
|
133
134
|
* fields for a `tool-call` / `tool-result` event, or an empty object when the
|
|
134
|
-
* tool is not MCP-sourced. `bareToolName`
|
|
135
|
-
*
|
|
135
|
+
* tool is not MCP-sourced. `bareToolName` is the entry's ORIGINAL un-sanitized
|
|
136
|
+
* MCP name — which may differ from the display `toolName` when the raw name
|
|
137
|
+
* carried a character `@openai/agents` maps to `_` (e.g. `get-sum` surfaces as
|
|
138
|
+
* `get_sum`). Consumers building `{ type: 'mcp', serverName, toolName }`
|
|
139
|
+
* matchers need the original, so `bareToolName` carries it (matching the
|
|
140
|
+
* `McpToolInfo.toolName` cross-harness contract), not the display name.
|
|
136
141
|
*/
|
|
137
142
|
enrich(toolName) {
|
|
138
143
|
const entry = this.mcpCatalog?.get(toolName);
|
|
@@ -140,7 +145,7 @@ export class OpenAIEventAdapter {
|
|
|
140
145
|
return {};
|
|
141
146
|
return {
|
|
142
147
|
serverName: entry.serverName,
|
|
143
|
-
bareToolName: toolName,
|
|
148
|
+
bareToolName: entry.toolName,
|
|
144
149
|
...(entry.annotations !== undefined ? { annotations: entry.annotations } : {}),
|
|
145
150
|
};
|
|
146
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-event-adapter.js","sourceRoot":"","sources":["../src/openai-event-adapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"openai-event-adapter.js","sourceRoot":"","sources":["../src/openai-event-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,18 +50,33 @@ export type OpenAIMcpServerState = {
|
|
|
50
50
|
ready: Promise<void>;
|
|
51
51
|
};
|
|
52
52
|
/**
|
|
53
|
-
* One entry in the per-agent MCP tool catalog: the mapping from a
|
|
54
|
-
* to its originating server
|
|
55
|
-
*
|
|
56
|
-
* / `
|
|
53
|
+
* One entry in the per-agent MCP tool catalog: the mapping from a tool's
|
|
54
|
+
* **display name** to its originating server, its original bare tool name, and
|
|
55
|
+
* declared annotations. The per-turn event adapter reads this to enrich
|
|
56
|
+
* `tool-call` / `tool-result` ChatEvents with `serverName` / `bareToolName` /
|
|
57
|
+
* `annotations`; the approval gate reads it to lift a display name to a full
|
|
58
|
+
* `ToolInvocation` for the policy resolver.
|
|
57
59
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
60
|
+
* **Key = display name, not the raw MCP name.** `@openai/agents` sanitizes an
|
|
61
|
+
* MCP tool's name to a valid function-tool identifier via `toFunctionToolName`
|
|
62
|
+
* (every non-alphanumeric char → `_`), so a `tools/list` name like `get-sum`
|
|
63
|
+
* surfaces on run-item events AND on materialized function tools as `get_sum`.
|
|
64
|
+
* The catalog is therefore keyed by that sanitized display name (what both the
|
|
65
|
+
* adapter events and the materialized tools carry), while {@link toolName}
|
|
66
|
+
* preserves the original un-sanitized MCP name — the cross-harness-authoritative
|
|
67
|
+
* identifier the `mcp` / `mcp-annotation` matchers and `approveToolCall(remember)`
|
|
68
|
+
* expect. For a name with no special characters the two are identical.
|
|
61
69
|
*/
|
|
62
70
|
export type McpCatalogEntry = {
|
|
63
71
|
/** The originating MCP server name (the `AgentConfig.mcpServers` key). */
|
|
64
72
|
readonly serverName: string;
|
|
73
|
+
/**
|
|
74
|
+
* The original un-sanitized MCP tool name from `tools/list` — the
|
|
75
|
+
* `McpToolInfo.toolName` / `bareToolName` cross-harness identifier. May
|
|
76
|
+
* differ from the catalog key (the sanitized display name) when the raw name
|
|
77
|
+
* carried characters `@openai/agents` replaces with `_`.
|
|
78
|
+
*/
|
|
79
|
+
readonly toolName: string;
|
|
65
80
|
/** Behavioral / UI-presentation hints the server declared for the tool, when present. */
|
|
66
81
|
readonly annotations?: McpToolAnnotations;
|
|
67
82
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type Message, type MessagePart } from '@salesforce/sfdx-agent-sdk';
|
|
2
|
+
import { type InputMessagePart } from '@salesforce/sfdx-agent-sdk/harness';
|
|
2
3
|
import type { SessionRecord } from './openai-session-store.js';
|
|
3
4
|
/**
|
|
4
5
|
* Bridges the `@openai/agents` flat `AgentInputItem[]` history and the SDK's
|
|
@@ -18,16 +19,23 @@ import type { SessionRecord } from './openai-session-store.js';
|
|
|
18
19
|
* **Write** ({@link messagesToRecords}): the `addContext` path. Each `Message`
|
|
19
20
|
* part lowers to a flat item — a `tool-call` part → `function_call`, a
|
|
20
21
|
* `tool-result` part → `function_call_result`, text/reasoning → message /
|
|
21
|
-
* reasoning items.
|
|
22
|
-
*
|
|
23
|
-
* `
|
|
24
|
-
*
|
|
25
|
-
*
|
|
22
|
+
* reasoning items. A message carrying `image` / `file` parts lowers to a single
|
|
23
|
+
* `user` message item whose `content` is a `UserContent[]` array (`input_text` /
|
|
24
|
+
* `input_image` / `input_file` blocks), the shape the run loop persists for a
|
|
25
|
+
* streamed multimodal turn. OpenAI stores tool calls/results separately natively,
|
|
26
|
+
* so — unlike the Mastra harness, which coalesces call+result into one object and
|
|
27
|
+
* needs `mergeToolResultsIntoAssistant` on write — no merge step is required; the
|
|
28
|
+
* split IS the native representation, and a `getMessages()` → `addContext()`
|
|
29
|
+
* round-trip is lossless.
|
|
26
30
|
*
|
|
27
|
-
* **
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
+
* **Multimodal:** `image` / `file` parts lower to `input_image` / `input_file`
|
|
32
|
+
* content blocks via the shared {@link lowerInputPartToContent} helper (also used
|
|
33
|
+
* by `stream()`), so the wire shape can't drift between the stream path and the
|
|
34
|
+
* persistence path. The read path ({@link messageItemToMessage}) maps those blocks
|
|
35
|
+
* back to `ImagePart` / `FilePart`. A file's `fileName` round-trips via the native
|
|
36
|
+
* `input_file.filename`; an image's `fileName` is NOT preserved — `input_image` has
|
|
37
|
+
* no filename field and `@openai/agents-openai` leaks any `providerData` onto the
|
|
38
|
+
* wire, so there is no round-trip channel (see {@link lowerInputPartToContent}).
|
|
31
39
|
*/
|
|
32
40
|
/**
|
|
33
41
|
* Map persisted records to the canonical `Message[]` layout. Does NOT sort — the
|
|
@@ -44,6 +52,47 @@ export declare function recordsToMessages(records: SessionRecord[]): Message[];
|
|
|
44
52
|
* under the read-side stable sort (equal `createdAt` → insertion order).
|
|
45
53
|
*/
|
|
46
54
|
export declare function messagesToRecords(messages: Message[]): SessionRecord[];
|
|
55
|
+
/**
|
|
56
|
+
* One `@openai/agents` `UserContent` block — the shape `run()` accepts inside a
|
|
57
|
+
* user message's `content` array and the run loop persists. The SDK types these
|
|
58
|
+
* under its `protocol` namespace; we describe only the fields we set (a structural
|
|
59
|
+
* subset), matching the mapper's existing `as AgentInputItem` boundary idiom.
|
|
60
|
+
*/
|
|
61
|
+
export type UserContentBlock = {
|
|
62
|
+
type: 'input_text';
|
|
63
|
+
text: string;
|
|
64
|
+
} | {
|
|
65
|
+
type: 'input_image';
|
|
66
|
+
image: string;
|
|
67
|
+
} | {
|
|
68
|
+
type: 'input_file';
|
|
69
|
+
file: string;
|
|
70
|
+
filename?: string;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Lower one validated input part (text / image / file) to an `@openai/agents`
|
|
74
|
+
* `UserContent` block. The single site that turns an SDK `ImagePart` / `FilePart`
|
|
75
|
+
* into the wire shape, shared by the harness's `stream()` `mapPart` closure and the
|
|
76
|
+
* `addContext` write path so the two can't drift.
|
|
77
|
+
*
|
|
78
|
+
* **Data-URL contract (load-bearing).** `@openai/agents-openai` passes
|
|
79
|
+
* `input_image.image` straight through to the Responses API `image_url` with NO
|
|
80
|
+
* `data:` prefix added, and the model requires a data URL there — so images MUST be
|
|
81
|
+
* lowered to `data:<mime>;base64,<data>`. `input_file.file` accepts either a data
|
|
82
|
+
* URL or raw base64; we use a data URL for both so the shape is uniform.
|
|
83
|
+
*
|
|
84
|
+
* **Image `fileName` is intentionally dropped.** `input_image` has no filename
|
|
85
|
+
* field, and `@openai/agents-openai` snake-cases + spreads any `providerData` onto
|
|
86
|
+
* the wire `input_image` object (see `getInputMessageContent` in
|
|
87
|
+
* `openaiResponsesModel.js`), so stashing `fileName` there leaks a `file_name`
|
|
88
|
+
* field the Responses API rejects — the model then returns empty output. There is
|
|
89
|
+
* no wire-safe round-trip channel (the stream path persists the same object it
|
|
90
|
+
* sends the model), so an image's `fileName` is not preserved through history —
|
|
91
|
+
* matching the Claude harness, whose `image` block likewise carries no title while
|
|
92
|
+
* its `document`/file block does. A file's `fileName` DOES round-trip: it rides the
|
|
93
|
+
* native `input_file.filename`, a real Responses API field.
|
|
94
|
+
*/
|
|
95
|
+
export declare function lowerInputPartToContent(part: InputMessagePart): UserContentBlock;
|
|
47
96
|
/**
|
|
48
97
|
* Render a {@link MessagePart} as a plain-text transcript fragment. Byte-identical
|
|
49
98
|
* to the Mastra and Claude harnesses' copies — the shared
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright 2026, Salesforce, Inc. All rights reserved.
|
|
3
3
|
* See LICENSE.txt for license terms.
|
|
4
4
|
*/
|
|
5
|
-
import { AgentSDKError, AgentSDKErrorType } from '@salesforce/sfdx-agent-sdk';
|
|
5
|
+
import { AgentSDKError, AgentSDKErrorType, } from '@salesforce/sfdx-agent-sdk';
|
|
6
6
|
import { splitToolResultsIntoToolMessages } from '@salesforce/sfdx-agent-sdk/harness';
|
|
7
7
|
/**
|
|
8
8
|
* Bridges the `@openai/agents` flat `AgentInputItem[]` history and the SDK's
|
|
@@ -22,16 +22,23 @@ import { splitToolResultsIntoToolMessages } from '@salesforce/sfdx-agent-sdk/har
|
|
|
22
22
|
* **Write** ({@link messagesToRecords}): the `addContext` path. Each `Message`
|
|
23
23
|
* part lowers to a flat item — a `tool-call` part → `function_call`, a
|
|
24
24
|
* `tool-result` part → `function_call_result`, text/reasoning → message /
|
|
25
|
-
* reasoning items.
|
|
26
|
-
*
|
|
27
|
-
* `
|
|
28
|
-
*
|
|
29
|
-
*
|
|
25
|
+
* reasoning items. A message carrying `image` / `file` parts lowers to a single
|
|
26
|
+
* `user` message item whose `content` is a `UserContent[]` array (`input_text` /
|
|
27
|
+
* `input_image` / `input_file` blocks), the shape the run loop persists for a
|
|
28
|
+
* streamed multimodal turn. OpenAI stores tool calls/results separately natively,
|
|
29
|
+
* so — unlike the Mastra harness, which coalesces call+result into one object and
|
|
30
|
+
* needs `mergeToolResultsIntoAssistant` on write — no merge step is required; the
|
|
31
|
+
* split IS the native representation, and a `getMessages()` → `addContext()`
|
|
32
|
+
* round-trip is lossless.
|
|
30
33
|
*
|
|
31
|
-
* **
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
34
|
+
* **Multimodal:** `image` / `file` parts lower to `input_image` / `input_file`
|
|
35
|
+
* content blocks via the shared {@link lowerInputPartToContent} helper (also used
|
|
36
|
+
* by `stream()`), so the wire shape can't drift between the stream path and the
|
|
37
|
+
* persistence path. The read path ({@link messageItemToMessage}) maps those blocks
|
|
38
|
+
* back to `ImagePart` / `FilePart`. A file's `fileName` round-trips via the native
|
|
39
|
+
* `input_file.filename`; an image's `fileName` is NOT preserved — `input_image` has
|
|
40
|
+
* no filename field and `@openai/agents-openai` leaks any `providerData` onto the
|
|
41
|
+
* wire, so there is no round-trip channel (see {@link lowerInputPartToContent}).
|
|
35
42
|
*/
|
|
36
43
|
// ── Read path ────────────────────────────────────────────────────────────────
|
|
37
44
|
/**
|
|
@@ -123,7 +130,17 @@ function messageItemToMessage(item, role, createdAt, index) {
|
|
|
123
130
|
else if (block.type === 'refusal' && typeof block.refusal === 'string') {
|
|
124
131
|
parts.push({ type: 'text', text: block.refusal });
|
|
125
132
|
}
|
|
126
|
-
|
|
133
|
+
else if (block.type === 'input_image') {
|
|
134
|
+
const part = imageBlockToPart(block);
|
|
135
|
+
if (part !== undefined)
|
|
136
|
+
parts.push(part);
|
|
137
|
+
}
|
|
138
|
+
else if (block.type === 'input_file') {
|
|
139
|
+
const part = fileBlockToPart(block);
|
|
140
|
+
if (part !== undefined)
|
|
141
|
+
parts.push(part);
|
|
142
|
+
}
|
|
143
|
+
// Any other content (audio, hosted-tool output) is not mapped.
|
|
127
144
|
}
|
|
128
145
|
// Collapse a lone text part to string content (the shape consumers wrote and
|
|
129
146
|
// the shape #464's history test asserts via `typeof content === 'string'`).
|
|
@@ -174,6 +191,14 @@ function messageToItems(message) {
|
|
|
174
191
|
if (typeof message.content === 'string') {
|
|
175
192
|
return [{ item: buildMessageItem(message.role, message.content) }];
|
|
176
193
|
}
|
|
194
|
+
// A message carrying any multimodal part is user input: lower the whole
|
|
195
|
+
// message to ONE `user` item whose `content` is a `UserContent[]` array
|
|
196
|
+
// (`input_text` / `input_image` / `input_file`), the exact shape a streamed
|
|
197
|
+
// multimodal turn persists — so the `addContext` write and the run-loop write
|
|
198
|
+
// are byte-identical and the read path is symmetric for both.
|
|
199
|
+
if (message.content.some((part) => part.type === 'image' || part.type === 'file')) {
|
|
200
|
+
return [{ item: buildMultimodalUserItem(message.content) }];
|
|
201
|
+
}
|
|
177
202
|
const out = [];
|
|
178
203
|
const textRun = [];
|
|
179
204
|
const flushText = () => {
|
|
@@ -220,7 +245,11 @@ function messageToItems(message) {
|
|
|
220
245
|
break;
|
|
221
246
|
case 'image':
|
|
222
247
|
case 'file':
|
|
223
|
-
|
|
248
|
+
// Unreachable: a message carrying an image/file part is routed to
|
|
249
|
+
// `buildMultimodalUserItem` above before this loop runs. Kept so the
|
|
250
|
+
// switch stays exhaustive over `MessagePart` and a future refactor
|
|
251
|
+
// that changes the routing fails loud rather than silently dropping.
|
|
252
|
+
throw new AgentSDKError(`messageToItems: "${part.type}" part reached the text/tool lowering path; multimodal messages must route through buildMultimodalUserItem.`, AgentSDKErrorType.INVALID_MESSAGE_CONTENT);
|
|
224
253
|
}
|
|
225
254
|
}
|
|
226
255
|
flushText();
|
|
@@ -245,6 +274,102 @@ function buildMessageItem(role, text) {
|
|
|
245
274
|
return { role: 'user', content: text };
|
|
246
275
|
}
|
|
247
276
|
}
|
|
277
|
+
/**
|
|
278
|
+
* Lower one validated input part (text / image / file) to an `@openai/agents`
|
|
279
|
+
* `UserContent` block. The single site that turns an SDK `ImagePart` / `FilePart`
|
|
280
|
+
* into the wire shape, shared by the harness's `stream()` `mapPart` closure and the
|
|
281
|
+
* `addContext` write path so the two can't drift.
|
|
282
|
+
*
|
|
283
|
+
* **Data-URL contract (load-bearing).** `@openai/agents-openai` passes
|
|
284
|
+
* `input_image.image` straight through to the Responses API `image_url` with NO
|
|
285
|
+
* `data:` prefix added, and the model requires a data URL there — so images MUST be
|
|
286
|
+
* lowered to `data:<mime>;base64,<data>`. `input_file.file` accepts either a data
|
|
287
|
+
* URL or raw base64; we use a data URL for both so the shape is uniform.
|
|
288
|
+
*
|
|
289
|
+
* **Image `fileName` is intentionally dropped.** `input_image` has no filename
|
|
290
|
+
* field, and `@openai/agents-openai` snake-cases + spreads any `providerData` onto
|
|
291
|
+
* the wire `input_image` object (see `getInputMessageContent` in
|
|
292
|
+
* `openaiResponsesModel.js`), so stashing `fileName` there leaks a `file_name`
|
|
293
|
+
* field the Responses API rejects — the model then returns empty output. There is
|
|
294
|
+
* no wire-safe round-trip channel (the stream path persists the same object it
|
|
295
|
+
* sends the model), so an image's `fileName` is not preserved through history —
|
|
296
|
+
* matching the Claude harness, whose `image` block likewise carries no title while
|
|
297
|
+
* its `document`/file block does. A file's `fileName` DOES round-trip: it rides the
|
|
298
|
+
* native `input_file.filename`, a real Responses API field.
|
|
299
|
+
*/
|
|
300
|
+
export function lowerInputPartToContent(part) {
|
|
301
|
+
switch (part.type) {
|
|
302
|
+
case 'text':
|
|
303
|
+
return { type: 'input_text', text: part.text };
|
|
304
|
+
case 'image':
|
|
305
|
+
return { type: 'input_image', image: toDataUrl(part.mimeType, part.data) };
|
|
306
|
+
case 'file':
|
|
307
|
+
return {
|
|
308
|
+
type: 'input_file',
|
|
309
|
+
file: toDataUrl(part.mimeType, part.data),
|
|
310
|
+
...(part.fileName !== undefined ? { filename: part.fileName } : {}),
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
/** Build the single `user` message item a multimodal message lowers to. */
|
|
315
|
+
function buildMultimodalUserItem(parts) {
|
|
316
|
+
const content = [];
|
|
317
|
+
for (const part of parts) {
|
|
318
|
+
if (part.type === 'text' || part.type === 'image' || part.type === 'file') {
|
|
319
|
+
content.push(lowerInputPartToContent(part));
|
|
320
|
+
}
|
|
321
|
+
// A multimodal user message never carries reasoning/tool parts; the SDK's
|
|
322
|
+
// `lowerStreamInput` guard rejects them on the stream path, and `addContext`
|
|
323
|
+
// messages that mix them are a caller error. Silently skip rather than throw
|
|
324
|
+
// so a stray part can't corrupt an otherwise-valid attachment turn.
|
|
325
|
+
}
|
|
326
|
+
return { role: 'user', content };
|
|
327
|
+
}
|
|
328
|
+
/** Assemble a `data:<mime>;base64,<data>` URL from a mime type + raw base64 bytes. */
|
|
329
|
+
function toDataUrl(mimeType, base64Data) {
|
|
330
|
+
return `data:${mimeType};base64,${base64Data}`;
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Split a `data:<mime>;base64,<data>` URL into its mime type and raw base64 bytes.
|
|
334
|
+
* Returns `undefined` for a string that is not a base64 data URL (e.g. a remote
|
|
335
|
+
* `https://` file url or an uploaded `file_id` reference), which the harness never
|
|
336
|
+
* writes but a hand-seeded history could carry — such a block has no SDK
|
|
337
|
+
* `ImagePart` / `FilePart` equivalent and is dropped from history.
|
|
338
|
+
*/
|
|
339
|
+
function parseDataUrl(value) {
|
|
340
|
+
const match = /^data:([^;,]+);base64,(.*)$/s.exec(value);
|
|
341
|
+
if (match === null)
|
|
342
|
+
return undefined;
|
|
343
|
+
return { mimeType: match[1], data: match[2] };
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Map an `input_image` content block back to an SDK `ImagePart`, or drop it. No
|
|
347
|
+
* `fileName` is restored — see {@link lowerInputPartToContent} for why an image's
|
|
348
|
+
* filename is not round-tripped (no wire-safe channel; the write path drops it).
|
|
349
|
+
*/
|
|
350
|
+
function imageBlockToPart(block) {
|
|
351
|
+
if (typeof block.image !== 'string')
|
|
352
|
+
return undefined;
|
|
353
|
+
const parsed = parseDataUrl(block.image);
|
|
354
|
+
if (parsed === undefined || (parsed.mimeType !== 'image/png' && parsed.mimeType !== 'image/jpeg')) {
|
|
355
|
+
return undefined;
|
|
356
|
+
}
|
|
357
|
+
return { type: 'image', mimeType: parsed.mimeType, data: parsed.data };
|
|
358
|
+
}
|
|
359
|
+
/** Map an `input_file` content block back to an SDK `FilePart`, or drop it. */
|
|
360
|
+
function fileBlockToPart(block) {
|
|
361
|
+
if (typeof block.file !== 'string')
|
|
362
|
+
return undefined;
|
|
363
|
+
const parsed = parseDataUrl(block.file);
|
|
364
|
+
if (parsed === undefined || parsed.mimeType !== 'application/pdf')
|
|
365
|
+
return undefined;
|
|
366
|
+
return {
|
|
367
|
+
type: 'file',
|
|
368
|
+
mimeType: parsed.mimeType,
|
|
369
|
+
data: parsed.data,
|
|
370
|
+
...(typeof block.filename === 'string' ? { fileName: block.filename } : {}),
|
|
371
|
+
};
|
|
372
|
+
}
|
|
248
373
|
// ── Transcript rendering (compaction + conformance drift-guard) ────────────────
|
|
249
374
|
/**
|
|
250
375
|
* Render a {@link MessagePart} as a plain-text transcript fragment. Byte-identical
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-message-mapper.js","sourceRoot":"","sources":["../src/openai-message-mapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openai-message-mapper.js","sourceRoot":"","sources":["../src/openai-message-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACH,aAAa,EACb,iBAAiB,GAKpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAyB,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAM7G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAwB;IACtD,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,OAAO,gCAAgC,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,MAAqB,EAAE,KAAa;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAe,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE7C,0EAA0E;IAC1E,2EAA2E;IAC3E,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9E,OAAO,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,eAAe,CAAC,CAAC,CAAC;YACnB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YAC3E,MAAM,IAAI,GAAgB;gBACtB,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;aAClC,CAAC;YACF,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;QACvG,CAAC;QACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YAC3E,MAAM,IAAI,GAAgB;gBACtB,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;gBACxC,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxD,CAAC;YACF,kEAAkE;YAClE,+DAA+D;YAC/D,kEAAkE;YAClE,sEAAsE;YACtE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,cAAc,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;QACzG,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACf,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO;gBACH,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,aAAa,KAAK,EAAE;gBACnC,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;gBACtC,SAAS;aACZ,CAAC;QACN,CAAC;QACD;YACI,mEAAmE;YACnE,2DAA2D;YAC3D,yBAAyB;YACzB,OAAO,SAAS,CAAC;IACzB,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAa,EAAE,IAAiB,EAAE,SAAe,EAAE,KAAa;IAC1F,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,OAAO,KAAK,EAAE,CAAC;IACrC,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;IAC1D,CAAC;IACD,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,SAAS;QAClD,MAAM,KAAK,GAAG,CAAiB,CAAC;QAChC,0EAA0E;QAC1E,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClG,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,IAAI,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,IAAI,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,+DAA+D;IACnE,CAAC;IACD,6EAA6E;IAC7E,4EAA4E;IAC5E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACjD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACnD,CAAC;AAED,oEAAoE;AACpE,SAAS,eAAe,CAAC,OAA2B;IAChD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5G,OAAO,OAAO;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACP,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,OAAQ,CAAkB,CAAC,IAAI,KAAK,QAAQ;QAC/E,CAAC,CAAE,CAAkB,CAAC,IAAK;QAC3B,CAAC,CAAC,EAAE,CACX;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,kFAAkF;AAElF;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAmB;IACjD,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAClC,+DAA+D;YAC/D,oEAAoE;YACpE,mEAAmE;YACnE,kEAAkE;YAClE,kEAAkE;YAClE,uCAAuC;YACvC,MAAM,IAAI,aAAa,CACnB,+BAA+B,OAAO,CAAC,EAAE,+DAA+D,EACxG,iBAAiB,CAAC,uBAAuB,CAC5C,CAAC;QACN,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAClD,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,mFAAmF;AACnF,SAAS,cAAc,CAAC,OAAgB;IACpC,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,wEAAwE;IACxE,wEAAwE;IACxE,4EAA4E;IAC5E,8EAA8E;IAC9E,8DAA8D;IAC9D,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;QAChF,OAAO,CAAC,EAAE,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,GAAG,GAA4C,EAAE,CAAC;IACxD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,GAAS,EAAE;QACzB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACjC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,MAAM;gBACP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM;YACV,KAAK,WAAW;gBACZ,SAAS,EAAE,CAAC;gBACZ,GAAG,CAAC,IAAI,CAAC;oBACL,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAoB;iBACpG,CAAC,CAAC;gBACH,MAAM;YACV,KAAK,WAAW;gBACZ,SAAS,EAAE,CAAC;gBACZ,GAAG,CAAC,IAAI,CAAC;oBACL,IAAI,EAAE;wBACF,IAAI,EAAE,eAAe;wBACrB,MAAM,EAAE,IAAI,CAAC,UAAU;wBACvB,IAAI,EAAE,IAAI,CAAC,QAAQ;wBACnB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;wBAC1C,MAAM,EAAE,WAAW;qBACJ;iBACtB,CAAC,CAAC;gBACH,MAAM;YACV,KAAK,aAAa;gBACd,SAAS,EAAE,CAAC;gBACZ,GAAG,CAAC,IAAI,CAAC;oBACL,IAAI,EAAE;wBACF,IAAI,EAAE,sBAAsB;wBAC5B,MAAM,EAAE,IAAI,CAAC,UAAU;wBACvB,IAAI,EAAE,IAAI,CAAC,QAAQ;wBACnB,MAAM,EAAE,WAAW;wBACnB,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;qBACpB;oBACnB,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtD,CAAC,CAAC;gBACH,MAAM;YACV,KAAK,OAAO,CAAC;YACb,KAAK,MAAM;gBACP,kEAAkE;gBAClE,qEAAqE;gBACrE,mEAAmE;gBACnE,qEAAqE;gBACrE,MAAM,IAAI,aAAa,CACnB,oBAAoB,IAAI,CAAC,IAAI,6GAA6G,EAC1I,iBAAiB,CAAC,uBAAuB,CAC5C,CAAC;QACV,CAAC;IACL,CAAC;IACD,SAAS,EAAE,CAAC;IACZ,OAAO,GAAG,CAAC;AACf,CAAC;AAED,qEAAqE;AACrE,SAAS,gBAAgB,CAAC,IAAiB,EAAE,IAAY;IACrD,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,WAAW;YACZ,OAAO;gBACH,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACzB,CAAC;QACxB,KAAK,QAAQ;YACT,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAoB,CAAC;QAC/D,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACP,kEAAkE;YAClE,qEAAqE;YACrE,qDAAqD;YACrD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAoB,CAAC;IACjE,CAAC;AACL,CAAC;AAeD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAsB;IAC1D,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,MAAM;YACP,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACnD,KAAK,OAAO;YACR,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/E,KAAK,MAAM;YACP,OAAO;gBACH,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC;gBACzC,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtE,CAAC;IACV,CAAC;AACL,CAAC;AAED,2EAA2E;AAC3E,SAAS,uBAAuB,CAAC,KAAoB;IACjD,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,0EAA0E;QAC1E,6EAA6E;QAC7E,6EAA6E;QAC7E,oEAAoE;IACxE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAoB,CAAC;AACvD,CAAC;AAED,sFAAsF;AACtF,SAAS,SAAS,CAAC,QAAgB,EAAE,UAAkB;IACnD,OAAO,QAAQ,QAAQ,WAAW,UAAU,EAAE,CAAC;AACnD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,KAAa;IAC/B,MAAM,KAAK,GAAG,8BAA8B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACrC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,KAAmB;IACzC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,YAAY,CAAC,EAAE,CAAC;QAChG,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAC3E,CAAC;AAED,+EAA+E;AAC/E,SAAS,eAAe,CAAC,KAAmB;IACxC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACrD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,iBAAiB;QAAE,OAAO,SAAS,CAAC;IACpF,OAAO;QACH,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,GAAG,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9E,CAAC;AACN,CAAC;AAED,kFAAkF;AAElF;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAiB;IAClD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW;YACZ,OAAO,IAAI,CAAC,IAAI,CAAC;QACrB,KAAK,WAAW,CAAC,CAAC,CAAC;YACf,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,OAAO,eAAe,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC;QACvD,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACjB,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9F,OAAO,iBAAiB,IAAI,CAAC,QAAQ,MAAM,SAAS,GAAG,CAAC;QAC5D,CAAC;QACD,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACtF,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,UAAkB;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnD,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,IAAI,CAAC;IACtC,MAAM,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC;IACzB,IAAI,GAAG,GAAG,IAAI;QAAE,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9C,OAAO,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAE5C;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,QAAgB;IAC1D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;YACzB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrB,OAAO,GAAG,EAAE,CAAC;YACjB,CAAC;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,SAAS;QACb,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;QACtE,IAAI,SAAS,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,SAAS,CAAC;QACxB,CAAC;IACL,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAoCD,kFAAkF;AAClF,SAAS,SAAS,CAAC,GAAY;IAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvC,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAC1C,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAE,MAAkC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpG,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,MAAe;IACxC,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAK,MAA6B,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAClG,OAAQ,MAA6B,CAAC,IAAI,IAAI,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,oFAAoF;AACpF,SAAS,cAAc,CAAC,MAAe;IACnC,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type Tool } from '@openai/agents';
|
|
2
|
+
import type { SkillMap } from './skill-loader.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build the `@openai/agents` function tools that expose an agent's configured
|
|
5
|
+
* skills to the model. Returns an empty array when the agent declares no skills
|
|
6
|
+
* so `buildAgent` adds nothing to the tool surface for a skill-less agent.
|
|
7
|
+
*
|
|
8
|
+
* Two tools:
|
|
9
|
+
*
|
|
10
|
+
* - **`load_skill({ skill })`** — returns the requested skill's `SKILL.md` body,
|
|
11
|
+
* prefixed with a `<skill-location>` anchor carrying the skill's directory.
|
|
12
|
+
* The tool description enumerates the catalog (one `- name: description` line
|
|
13
|
+
* per skill, alphabetical) so the model can scan-and-pick. Eager shape: the
|
|
14
|
+
* descriptor rides in the prompt at rest, but the body loads on demand.
|
|
15
|
+
* - **`read_skill_file({ skill, path })`** — reads a file the loaded `SKILL.md`
|
|
16
|
+
* references relative to its own directory (`references/...`, `assets/...`).
|
|
17
|
+
* This is the OpenAI harness's answer to multi-file skill reachability
|
|
18
|
+
* (W-23231661 / #626): Claude reaches siblings via the subprocess's built-in
|
|
19
|
+
* `Read` tool plus a granted directory, and Mastra via a `Workspace`
|
|
20
|
+
* filesystem with allowed paths — neither affordance exists here (the
|
|
21
|
+
* `@openai/agents` run loop has no built-in file reader and runs in-process),
|
|
22
|
+
* so the harness supplies the read affordance itself, scoped to the named
|
|
23
|
+
* skill's directory.
|
|
24
|
+
*
|
|
25
|
+
* Both tools are `needsApproval: false`. Skills read the consumer's OWN
|
|
26
|
+
* configured paths — a consumer-supplied capability, the same category as
|
|
27
|
+
* consumer-executed tools (`AgentConfig.tools`), never approval-gated. They
|
|
28
|
+
* carry no `serverName`, so they are not `skill_bridge`-identity tools and the
|
|
29
|
+
* SDK's `mcp:skill_bridge:*` auto-allow rules don't apply — harmless, because a
|
|
30
|
+
* `needsApproval: false` tool can never raise an interruption to gate.
|
|
31
|
+
*
|
|
32
|
+
* Called fresh inside `buildAgent` on every `stream()` reading `state.skillMap`
|
|
33
|
+
* live — never cached on state — so a mid-turn `updateAgent` that changes the
|
|
34
|
+
* configured skills lands on the next turn.
|
|
35
|
+
*/
|
|
36
|
+
export declare function buildSkillTools(skillMap: SkillMap): Tool[];
|