@janole/ai-sdk-provider-codex-asp 0.4.0 → 0.4.2

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/README.md CHANGED
@@ -113,8 +113,8 @@ const codex = createCodexAppServer({
113
113
  persistent?: { poolSize?, idleTimeoutMs?, scope?, key? },
114
114
  compaction?: { shouldCompactOnResume?, strict? }, // optional thread/compact/start before resumed turns
115
115
  debug?: { logPackets?, logger? }, // packet-level JSON-RPC debug logging
116
- defaultThreadSettings?: { cwd?, approvalPolicy?, sandbox? },
117
- defaultTurnSettings?: { cwd?, approvalPolicy?, sandboxPolicy?, model?, effort?, summary? },
116
+ defaultThreadSettings?: { cwd?, approvalPolicy?, approvalsReviewer?, sandbox? },
117
+ defaultTurnSettings?: { cwd?, approvalPolicy?, approvalsReviewer?, sandboxPolicy?, model?, effort?, summary? },
118
118
  approvals?: { onCommandApproval?, onFileChangeApproval? },
119
119
  toolTimeoutMs?: number, // default: 30000
120
120
  interruptTimeoutMs?: number, // default: 10000
@@ -145,6 +145,28 @@ const codex = createCodexAppServer({
145
145
  });
146
146
  ```
147
147
 
148
+ Approval reviewer example:
149
+
150
+ Set `approvalsReviewer` to `"guardian_subagent"` to let Codex route approval decisions to its built-in reviewer agent instead of prompting the human user.
151
+
152
+ ```ts
153
+ const codex = createCodexAppServer({
154
+ defaultThreadSettings: {
155
+ approvalsReviewer: "guardian_subagent",
156
+ },
157
+ });
158
+
159
+ await streamText({
160
+ model: codex("gpt-5.3-codex"),
161
+ prompt: "Delete the old generated protocol files under src/protocol/app-server-protocol if they are no longer referenced, then regenerate the current ones.",
162
+ providerOptions: {
163
+ "@janole/ai-sdk-provider-codex-asp": {
164
+ approvalsReviewer: "user",
165
+ },
166
+ },
167
+ });
168
+ ```
169
+
148
170
  See [`src/provider.ts`](src/provider.ts) for full type definitions.
149
171
 
150
172
  ## Examples
package/dist/index.cjs CHANGED
@@ -935,7 +935,7 @@ var DynamicToolsDispatcher = class {
935
935
  // package.json
936
936
  var package_default = {
937
937
  name: "@janole/ai-sdk-provider-codex-asp",
938
- version: "0.4.0"};
938
+ version: "0.4.2"};
939
939
 
940
940
  // src/package-info.ts
941
941
  var PACKAGE_NAME = package_default.name;
@@ -949,6 +949,9 @@ function codexProviderMetadata(threadId, turnId) {
949
949
  }
950
950
  return { [CODEX_PROVIDER_ID]: stripUndefined({ threadId, turnId }) };
951
951
  }
952
+ function codexCallOptions(options) {
953
+ return { [CODEX_PROVIDER_ID]: options };
954
+ }
952
955
  function withProviderMetadata(part, threadId, turnId) {
953
956
  const meta = codexProviderMetadata(threadId, turnId);
954
957
  return meta ? { ...part, providerMetadata: meta } : part;
@@ -1899,6 +1902,7 @@ var CodexLanguageModel = class {
1899
1902
  }
1900
1903
  doStream(options) {
1901
1904
  const resumeThreadId = extractResumeThreadId(options.prompt);
1905
+ const callOptions = options.providerOptions?.[CODEX_PROVIDER_ID];
1902
1906
  const transport = this.config.providerSettings.transportFactory ? this.config.providerSettings.transportFactory(stripUndefined({ signal: options.abortSignal, threadId: resumeThreadId })) : this.config.providerSettings.transport?.type === "websocket" ? new WebSocketTransport(this.config.providerSettings.transport.websocket) : new StdioTransport(this.config.providerSettings.transport?.stdio);
1903
1907
  const packetLogger = this.config.providerSettings.debug?.logPackets === true ? this.config.providerSettings.debug.logger ?? ((packet) => {
1904
1908
  if (packet.direction === "inbound") {
@@ -2109,7 +2113,12 @@ var CodexLanguageModel = class {
2109
2113
  const resumeParams = stripUndefined({
2110
2114
  threadId: resumeThreadId,
2111
2115
  persistExtendedHistory: false,
2112
- developerInstructions
2116
+ developerInstructions,
2117
+ cwd: callOptions?.cwd ?? this.config.providerSettings.defaultThreadSettings?.cwd,
2118
+ approvalPolicy: callOptions?.approvalPolicy ?? this.config.providerSettings.defaultThreadSettings?.approvalPolicy,
2119
+ approvalsReviewer: callOptions?.approvalsReviewer ?? this.config.providerSettings.defaultThreadSettings?.approvalsReviewer,
2120
+ sandbox: callOptions?.sandbox ?? this.config.providerSettings.defaultThreadSettings?.sandbox,
2121
+ model: callOptions?.model ?? this.config.providerSettings.defaultModel
2113
2122
  });
2114
2123
  debugLog?.("outbound", "thread/resume", resumeParams);
2115
2124
  const resumeResult = await client.request(
@@ -2169,9 +2178,10 @@ var CodexLanguageModel = class {
2169
2178
  dynamicTools,
2170
2179
  developerInstructions,
2171
2180
  config,
2172
- cwd: this.config.providerSettings.defaultThreadSettings?.cwd,
2173
- approvalPolicy: this.config.providerSettings.defaultThreadSettings?.approvalPolicy,
2174
- sandbox: this.config.providerSettings.defaultThreadSettings?.sandbox
2181
+ cwd: callOptions?.cwd ?? this.config.providerSettings.defaultThreadSettings?.cwd,
2182
+ approvalPolicy: callOptions?.approvalPolicy ?? this.config.providerSettings.defaultThreadSettings?.approvalPolicy,
2183
+ approvalsReviewer: callOptions?.approvalsReviewer ?? this.config.providerSettings.defaultThreadSettings?.approvalsReviewer,
2184
+ sandbox: callOptions?.sandbox ?? this.config.providerSettings.defaultThreadSettings?.sandbox
2175
2185
  });
2176
2186
  debugLog?.("outbound", "thread/start", threadStartParams);
2177
2187
  const threadStartResult = await client.request(
@@ -2195,12 +2205,13 @@ var CodexLanguageModel = class {
2195
2205
  const turnStartParams = stripUndefined({
2196
2206
  threadId,
2197
2207
  input: turnInput,
2198
- cwd: this.config.providerSettings.defaultTurnSettings?.cwd,
2199
- approvalPolicy: this.config.providerSettings.defaultTurnSettings?.approvalPolicy,
2200
- sandboxPolicy: this.config.providerSettings.defaultTurnSettings?.sandboxPolicy,
2201
- model: this.config.providerSettings.defaultTurnSettings?.model,
2202
- effort: this.config.providerSettings.defaultTurnSettings?.effort,
2203
- summary: this.config.providerSettings.defaultTurnSettings?.summary,
2208
+ cwd: callOptions?.cwd ?? this.config.providerSettings.defaultTurnSettings?.cwd,
2209
+ approvalPolicy: callOptions?.approvalPolicy ?? this.config.providerSettings.defaultTurnSettings?.approvalPolicy,
2210
+ approvalsReviewer: callOptions?.approvalsReviewer ?? this.config.providerSettings.defaultTurnSettings?.approvalsReviewer,
2211
+ sandboxPolicy: callOptions?.sandboxPolicy ?? this.config.providerSettings.defaultTurnSettings?.sandboxPolicy,
2212
+ model: callOptions?.model ?? this.config.providerSettings.defaultTurnSettings?.model,
2213
+ effort: callOptions?.effort ?? this.config.providerSettings.defaultTurnSettings?.effort,
2214
+ summary: callOptions?.summary ?? this.config.providerSettings.defaultTurnSettings?.summary,
2204
2215
  outputSchema: options.responseFormat?.type === "json" ? options.responseFormat.schema : void 0
2205
2216
  });
2206
2217
  debugLog?.("outbound", "turn/start", turnStartParams);
@@ -2452,6 +2463,7 @@ exports.PromptFileResolver = PromptFileResolver;
2452
2463
  exports.StdioTransport = StdioTransport;
2453
2464
  exports.WebSocketTransport = WebSocketTransport;
2454
2465
  exports.codexAppServer = codexAppServer;
2466
+ exports.codexCallOptions = codexCallOptions;
2455
2467
  exports.codexProviderMetadata = codexProviderMetadata;
2456
2468
  exports.createCodexAppServer = createCodexAppServer;
2457
2469
  exports.createCodexProvider = createCodexProvider;