@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.
@@ -70,10 +70,15 @@ export declare class OpenAIEventAdapter {
70
70
  */
71
71
  private mapRunItem;
72
72
  /**
73
- * Look up the (bare) tool name in the MCP catalog and return the enrichment
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` equals the display `toolName` here
76
- * because `@openai/agents` registers MCP tools under their bare name.
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 (bare) tool name in the MCP catalog and return the enrichment
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` equals the display `toolName` here
135
- * because `@openai/agents` registers MCP tools under their bare name.
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":"AAAA;;;GAGG;AAMH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,kBAAkB;IA2BE;IA1BrB,SAAS,GAAG,CAAC,CAAC;IACd,OAAO,GAAG,KAAK,CAAC;IAChB,aAAa,CAA4B;IAEjD;;;;;;;;;;OAUG;IACK,kBAAkB,CAAwB;IAClD,oFAAoF;IAC5E,kBAAkB,GAAG,CAAC,CAAC;IAE/B;;;;;;OAMG;IACH,YAA6B,UAAiD;QAAjD,eAAU,GAAV,UAAU,CAAuC;IAAG,CAAC;IAElF;;;OAGG;IACH,GAAG,CAAC,KAAqB;QACrB,MAAM,GAAG,GAAgB,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,uEAAuE;QACvE,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACK,UAAU,CAAC,KAAyB,EAAE,GAAgB;QAC1D,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAyB,CAAC;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC;YAC7C,IAAI,QAAQ,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;gBAAE,OAAO;YAC/D,GAAG,CAAC,IAAI,CAAC;gBACL,IAAI,EAAE,WAAW;gBACjB,UAAU;gBACV,QAAQ;gBACR,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;gBAC9B,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aAC3B,CAAC,CAAC;QACP,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,IAA2B,CAAC;YAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC;YAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;YAC1B,IAAI,QAAQ,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;gBAAE,OAAO;YAC/D,GAAG,CAAC,IAAI,CAAC;gBACL,IAAI,EAAE,aAAa;gBACnB,UAAU;gBACV,QAAQ;gBACR,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC;gBAClD,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aAC3B,CAAC,CAAC;YACH,kEAAkE;YAClE,0DAA0D;YAC1D,yDAAyD;YACzD,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC;gBAC7B,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC;oBAAE,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;YACzE,CAAC;QACL,CAAC;QACD,wEAAwE;QACxE,sEAAsE;QACtE,WAAW;IACf,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,QAAgB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACnC,OAAO;YACH,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,YAAY,EAAE,QAAQ;YACtB,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjF,CAAC;IACN,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,aAAa;QACT,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/B,CAAC;IAEO,MAAM,CAAC,IAAiB,EAAE,GAAgB;QAC9C,yEAAyE;QACzE,sEAAsE;QACtE,0DAA0D;QAC1D,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACvB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACnD,MAAM;YACV,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACtB,gEAAgE;gBAChE,+DAA+D;gBAC/D,kEAAkE;gBAClE,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;gBAClC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC5D,MAAM;YACV,CAAC;YACD,KAAK,eAAe,CAAC,CAAC,CAAC;gBACnB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC7C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,MAAM,UAAU,GAAc;oBAC1B,IAAI,EAAE,aAAa;oBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,gEAAgE;oBAChE,mEAAmE;oBACnE,YAAY,EAAE,MAAM;oBACpB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5C,CAAC;gBACF,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;gBACpB,8DAA8D;gBAC9D,+DAA+D;gBAC/D,kEAAkE;gBAClE,2DAA2D;gBAC3D,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAChE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;oBACpB,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC;oBACrC,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACJ,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACzB,CAAC;gBACD,MAAM;YACV,CAAC;YACD,oEAAoE;YACpE,4BAA4B;QAChC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,uBAAuB,CAAC,GAAgB;QACpC,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS;YAAE,OAAO;QAClD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,mFAAmF;IACnF,uBAAuB;QACnB,MAAM,GAAG,GAAgB,EAAE,CAAC;QAC5B,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoC;IACzD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACtC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IACxC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACtC,MAAM,iBAAiB,GAAG,UAAU,CAAC,KAAK,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;IAChF,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;IAElF,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,IAAI,WAAW;QAAE,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;IAClD,IAAI,YAAY;QAAE,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;IACrD,IAAI,WAAW;QAAE,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;IAClD,IAAI,iBAAiB;QAAE,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IACpE,IAAI,eAAe;QAAE,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC;IAE9D,qEAAqE;IACrE,sEAAsE;IACtE,6CAA6C;IAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAWD;;;;GAIG;AACH,SAAS,UAAU,CACf,OAA2E,EAC3E,GAAW;IAEX,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,GAAG,IAAI,KAAK,CAAC;YACb,IAAI,GAAG,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAClC,CAAC;AAoBD;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC,MAAM,CAChB,CAAC,IAAI,EAA4B,EAAE,CAC/B,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAK,IAA2B,CAAC,IAAI,KAAK,eAAe,CACzG,CAAC,MAAM,CAAC;AACb,CAAC;AAED,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;;;;;GAKG;AACH,SAAS,eAAe,CAAC,MAAe;IACpC,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"}
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 bare tool name
54
- * to its originating server + declared annotations. The per-turn event adapter
55
- * reads this to enrich `tool-call` / `tool-result` ChatEvents with `serverName`
56
- * / `bareToolName` / `annotations` for MCP-sourced tools.
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
- * The `@openai/agents` native MCP attach registers tools under their **bare**
59
- * name (no `${server}_` namespacing), so the catalog key IS the bare tool name
60
- * and equals the display `toolName` on the run-item events.
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. OpenAI stores these separately natively, so — unlike the
22
- * Mastra harness, which coalesces call+result into one object and needs
23
- * `mergeToolResultsIntoAssistant` on write — no merge step is required; the split
24
- * IS the native representation, and a `getMessages()` → `addContext()` round-trip
25
- * is lossless.
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
- * **Supported parts:** text, reasoning, and tool parts. Multimodal
28
- * (`image` / `file`) parts are rejected with `INVALID_MESSAGE_CONTENT`, matching
29
- * the text-only stream input the harness accepts; multimodal is not yet
30
- * implemented.
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. OpenAI stores these separately natively, so — unlike the
26
- * Mastra harness, which coalesces call+result into one object and needs
27
- * `mergeToolResultsIntoAssistant` on write — no merge step is required; the split
28
- * IS the native representation, and a `getMessages()` → `addContext()` round-trip
29
- * is lossless.
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
- * **Supported parts:** text, reasoning, and tool parts. Multimodal
32
- * (`image` / `file`) parts are rejected with `INVALID_MESSAGE_CONTENT`, matching
33
- * the text-only stream input the harness accepts; multimodal is not yet
34
- * implemented.
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
- // Non-text content (image/audio/file) is not mapped.
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
- throw new AgentSDKError(`The OpenAI harness does not yet support "${part.type}" message parts in addContext (multimodal is not yet implemented).`, AgentSDKErrorType.INVALID_MESSAGE_CONTENT);
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":"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"}
@@ -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[];