openai 7.25.0 → 7.27.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 +40 -0
- package/client.d.mts +5 -6
- package/client.d.mts.map +1 -1
- package/client.d.ts +5 -6
- package/client.d.ts.map +1 -1
- package/client.js +38 -10
- package/client.js.map +1 -1
- package/client.mjs +39 -11
- package/client.mjs.map +1 -1
- package/core/streaming.d.mts +4 -0
- package/core/streaming.d.mts.map +1 -1
- package/core/streaming.d.ts +4 -0
- package/core/streaming.d.ts.map +1 -1
- package/core/streaming.js +6 -0
- package/core/streaming.js.map +1 -1
- package/core/streaming.mjs +6 -0
- package/core/streaming.mjs.map +1 -1
- package/helpers/beta/agents/filesystem.d.mts +17 -0
- package/helpers/beta/agents/filesystem.d.mts.map +1 -0
- package/helpers/beta/agents/filesystem.d.ts +17 -0
- package/helpers/beta/agents/filesystem.d.ts.map +1 -0
- package/helpers/beta/agents/filesystem.js +168 -0
- package/helpers/beta/agents/filesystem.js.map +1 -0
- package/helpers/beta/agents/filesystem.mjs +162 -0
- package/helpers/beta/agents/filesystem.mjs.map +1 -0
- package/helpers/beta/agents/standard-schema.d.mts +7 -0
- package/helpers/beta/agents/standard-schema.d.mts.map +1 -0
- package/helpers/beta/agents/standard-schema.d.ts +7 -0
- package/helpers/beta/agents/standard-schema.d.ts.map +1 -0
- package/helpers/beta/agents/standard-schema.js +12 -0
- package/helpers/beta/agents/standard-schema.js.map +1 -0
- package/helpers/beta/agents/standard-schema.mjs +9 -0
- package/helpers/beta/agents/standard-schema.mjs.map +1 -0
- package/helpers/beta/agents/zod.d.mts +10 -0
- package/helpers/beta/agents/zod.d.mts.map +1 -0
- package/helpers/beta/agents/zod.d.ts +10 -0
- package/helpers/beta/agents/zod.d.ts.map +1 -0
- package/helpers/beta/agents/zod.js +12 -0
- package/helpers/beta/agents/zod.js.map +1 -0
- package/helpers/beta/agents/zod.mjs +9 -0
- package/helpers/beta/agents/zod.mjs.map +1 -0
- package/internal/realtime-credentials.d.mts +22 -1
- package/internal/realtime-credentials.d.mts.map +1 -1
- package/internal/realtime-credentials.d.ts +22 -1
- package/internal/realtime-credentials.d.ts.map +1 -1
- package/internal/realtime-credentials.js +48 -4
- package/internal/realtime-credentials.js.map +1 -1
- package/internal/realtime-credentials.mjs +45 -4
- package/internal/realtime-credentials.mjs.map +1 -1
- package/internal/responses-ws-credentials.d.mts +23 -0
- package/internal/responses-ws-credentials.d.mts.map +1 -0
- package/internal/responses-ws-credentials.d.ts +23 -0
- package/internal/responses-ws-credentials.d.ts.map +1 -0
- package/internal/responses-ws-credentials.js +108 -0
- package/internal/responses-ws-credentials.js.map +1 -0
- package/internal/responses-ws-credentials.mjs +104 -0
- package/internal/responses-ws-credentials.mjs.map +1 -0
- package/internal/shim-types.d.mts +9 -0
- package/internal/shim-types.d.mts.map +1 -1
- package/internal/shim-types.d.ts +9 -0
- package/internal/shim-types.d.ts.map +1 -1
- package/internal/tslib.js +4 -0
- package/internal/ws-adapter-node.d.mts +4 -0
- package/internal/ws-adapter-node.d.mts.map +1 -1
- package/internal/ws-adapter-node.d.ts +4 -0
- package/internal/ws-adapter-node.d.ts.map +1 -1
- package/internal/ws-adapter-node.js +56 -0
- package/internal/ws-adapter-node.js.map +1 -1
- package/internal/ws-adapter-node.mjs +55 -0
- package/internal/ws-adapter-node.mjs.map +1 -1
- package/internal/ws.d.mts +27 -4
- package/internal/ws.d.mts.map +1 -1
- package/internal/ws.d.ts +27 -4
- package/internal/ws.d.ts.map +1 -1
- package/internal/ws.js +105 -5
- package/internal/ws.js.map +1 -1
- package/internal/ws.mjs +102 -4
- package/internal/ws.mjs.map +1 -1
- package/lib/agents/agent-session-stream.d.mts +13 -4
- package/lib/agents/agent-session-stream.d.mts.map +1 -1
- package/lib/agents/agent-session-stream.d.ts +13 -4
- package/lib/agents/agent-session-stream.d.ts.map +1 -1
- package/lib/agents/agent-session-stream.js +24 -21
- package/lib/agents/agent-session-stream.js.map +1 -1
- package/lib/agents/agent-session-stream.mjs +24 -21
- package/lib/agents/agent-session-stream.mjs.map +1 -1
- package/lib/beta/agents/agent-session-create-stream.d.mts +15 -0
- package/lib/beta/agents/agent-session-create-stream.d.mts.map +1 -0
- package/lib/beta/agents/agent-session-create-stream.d.ts +15 -0
- package/lib/beta/agents/agent-session-create-stream.d.ts.map +1 -0
- package/lib/beta/agents/agent-session-create-stream.js +25 -0
- package/lib/beta/agents/agent-session-create-stream.js.map +1 -0
- package/lib/beta/agents/agent-session-create-stream.mjs +22 -0
- package/lib/beta/agents/agent-session-create-stream.mjs.map +1 -0
- package/lib/beta/agents/agent-turn-result-collector.d.mts +17 -0
- package/lib/beta/agents/agent-turn-result-collector.d.mts.map +1 -0
- package/lib/beta/agents/agent-turn-result-collector.d.ts +17 -0
- package/lib/beta/agents/agent-turn-result-collector.d.ts.map +1 -0
- package/lib/beta/agents/agent-turn-result-collector.js +99 -0
- package/lib/beta/agents/agent-turn-result-collector.js.map +1 -0
- package/lib/beta/agents/agent-turn-result-collector.mjs +95 -0
- package/lib/beta/agents/agent-turn-result-collector.mjs.map +1 -0
- package/lib/beta/agents/agent-turn-result-error.d.mts +16 -0
- package/lib/beta/agents/agent-turn-result-error.d.mts.map +1 -0
- package/lib/beta/agents/agent-turn-result-error.d.ts +16 -0
- package/lib/beta/agents/agent-turn-result-error.d.ts.map +1 -0
- package/lib/beta/agents/agent-turn-result-error.js +22 -0
- package/lib/beta/agents/agent-turn-result-error.js.map +1 -0
- package/lib/beta/agents/agent-turn-result-error.mjs +18 -0
- package/lib/beta/agents/agent-turn-result-error.mjs.map +1 -0
- package/lib/beta/agents/agent-turn-result.d.mts +12 -0
- package/lib/beta/agents/agent-turn-result.d.mts.map +1 -0
- package/lib/beta/agents/agent-turn-result.d.ts +12 -0
- package/lib/beta/agents/agent-turn-result.d.ts.map +1 -0
- package/lib/beta/agents/agent-turn-result.js +22 -0
- package/lib/beta/agents/agent-turn-result.js.map +1 -0
- package/lib/beta/agents/agent-turn-result.mjs +18 -0
- package/lib/beta/agents/agent-turn-result.mjs.map +1 -0
- package/lib/beta/agents/files.d.mts +33 -0
- package/lib/beta/agents/files.d.mts.map +1 -0
- package/lib/beta/agents/files.d.ts +33 -0
- package/lib/beta/agents/files.d.ts.map +1 -0
- package/lib/beta/agents/files.js +93 -0
- package/lib/beta/agents/files.js.map +1 -0
- package/lib/beta/agents/files.mjs +86 -0
- package/lib/beta/agents/files.mjs.map +1 -0
- package/lib/beta/agents/function-tool.d.mts +27 -0
- package/lib/beta/agents/function-tool.d.mts.map +1 -0
- package/lib/beta/agents/function-tool.d.ts +27 -0
- package/lib/beta/agents/function-tool.d.ts.map +1 -0
- package/lib/beta/agents/function-tool.js +48 -0
- package/lib/beta/agents/function-tool.js.map +1 -0
- package/lib/beta/agents/function-tool.mjs +45 -0
- package/lib/beta/agents/function-tool.mjs.map +1 -0
- package/lib/beta/agents/output-format-types.d.mts +11 -0
- package/lib/beta/agents/output-format-types.d.mts.map +1 -0
- package/lib/beta/agents/output-format-types.d.ts +11 -0
- package/lib/beta/agents/output-format-types.d.ts.map +1 -0
- package/lib/beta/agents/output-format-types.js +3 -0
- package/lib/beta/agents/output-format-types.js.map +1 -0
- package/lib/beta/agents/output-format-types.mjs +2 -0
- package/lib/beta/agents/output-format-types.mjs.map +1 -0
- package/lib/beta/agents/output-format.d.mts +8 -0
- package/lib/beta/agents/output-format.d.mts.map +1 -0
- package/lib/beta/agents/output-format.d.ts +8 -0
- package/lib/beta/agents/output-format.d.ts.map +1 -0
- package/lib/beta/agents/output-format.js +20 -0
- package/lib/beta/agents/output-format.js.map +1 -0
- package/lib/beta/agents/output-format.mjs +14 -0
- package/lib/beta/agents/output-format.mjs.map +1 -0
- package/lib/beta/agents/output-parse-error.d.mts +11 -0
- package/lib/beta/agents/output-parse-error.d.mts.map +1 -0
- package/lib/beta/agents/output-parse-error.d.ts +11 -0
- package/lib/beta/agents/output-parse-error.d.ts.map +1 -0
- package/lib/beta/agents/output-parse-error.js +22 -0
- package/lib/beta/agents/output-parse-error.js.map +1 -0
- package/lib/beta/agents/output-parse-error.mjs +18 -0
- package/lib/beta/agents/output-parse-error.mjs.map +1 -0
- package/lib/beta/agents/pages.d.mts +9 -0
- package/lib/beta/agents/pages.d.mts.map +1 -0
- package/lib/beta/agents/pages.d.ts +9 -0
- package/lib/beta/agents/pages.d.ts.map +1 -0
- package/lib/beta/agents/pages.js +32 -0
- package/lib/beta/agents/pages.js.map +1 -0
- package/lib/beta/agents/pages.mjs +29 -0
- package/lib/beta/agents/pages.mjs.map +1 -0
- package/lib/beta/agents/parse-result.d.mts +95 -0
- package/lib/beta/agents/parse-result.d.mts.map +1 -0
- package/lib/beta/agents/parse-result.d.ts +95 -0
- package/lib/beta/agents/parse-result.d.ts.map +1 -0
- package/lib/beta/agents/parse-result.js +116 -0
- package/lib/beta/agents/parse-result.js.map +1 -0
- package/lib/beta/agents/parse-result.mjs +110 -0
- package/lib/beta/agents/parse-result.mjs.map +1 -0
- package/lib/beta/agents/parsed-agent-turn-result.d.mts +8 -0
- package/lib/beta/agents/parsed-agent-turn-result.d.mts.map +1 -0
- package/lib/beta/agents/parsed-agent-turn-result.d.ts +8 -0
- package/lib/beta/agents/parsed-agent-turn-result.d.ts.map +1 -0
- package/lib/beta/agents/parsed-agent-turn-result.js +14 -0
- package/lib/beta/agents/parsed-agent-turn-result.js.map +1 -0
- package/lib/beta/agents/parsed-agent-turn-result.mjs +10 -0
- package/lib/beta/agents/parsed-agent-turn-result.mjs.map +1 -0
- package/lib/beta/agents/result-artifacts.d.mts +19 -0
- package/lib/beta/agents/result-artifacts.d.mts.map +1 -0
- package/lib/beta/agents/result-artifacts.d.ts +19 -0
- package/lib/beta/agents/result-artifacts.d.ts.map +1 -0
- package/lib/beta/agents/result-artifacts.js +67 -0
- package/lib/beta/agents/result-artifacts.js.map +1 -0
- package/lib/beta/agents/result-artifacts.mjs +63 -0
- package/lib/beta/agents/result-artifacts.mjs.map +1 -0
- package/lib/beta/agents/result-collection.d.mts +15 -0
- package/lib/beta/agents/result-collection.d.mts.map +1 -0
- package/lib/beta/agents/result-collection.d.ts +15 -0
- package/lib/beta/agents/result-collection.d.ts.map +1 -0
- package/lib/beta/agents/result-collection.js +110 -0
- package/lib/beta/agents/result-collection.js.map +1 -0
- package/lib/beta/agents/result-collection.mjs +106 -0
- package/lib/beta/agents/result-collection.mjs.map +1 -0
- package/lib/beta/agents/tool-output.d.mts +7 -0
- package/lib/beta/agents/tool-output.d.mts.map +1 -0
- package/lib/beta/agents/tool-output.d.ts +7 -0
- package/lib/beta/agents/tool-output.d.ts.map +1 -0
- package/lib/beta/agents/tool-output.js +26 -0
- package/lib/beta/agents/tool-output.js.map +1 -0
- package/lib/beta/agents/tool-output.mjs +23 -0
- package/lib/beta/agents/tool-output.mjs.map +1 -0
- package/lib/responses/responses-websocket-session.d.mts +1 -1
- package/lib/responses/responses-websocket-session.d.mts.map +1 -1
- package/lib/responses/responses-websocket-session.d.ts +1 -1
- package/lib/responses/responses-websocket-session.d.ts.map +1 -1
- package/lib/responses/responses-websocket-session.js +12 -2
- package/lib/responses/responses-websocket-session.js.map +1 -1
- package/lib/responses/responses-websocket-session.mjs +12 -2
- package/lib/responses/responses-websocket-session.mjs.map +1 -1
- package/package.json +1 -1
- package/resources/beta/agents/agents.d.mts +9 -0
- package/resources/beta/agents/agents.d.mts.map +1 -1
- package/resources/beta/agents/agents.d.ts +9 -0
- package/resources/beta/agents/agents.d.ts.map +1 -1
- package/resources/beta/agents/agents.js.map +1 -1
- package/resources/beta/agents/agents.mjs.map +1 -1
- package/resources/beta/agents/environments/files.d.mts +12 -0
- package/resources/beta/agents/environments/files.d.mts.map +1 -1
- package/resources/beta/agents/environments/files.d.ts +12 -0
- package/resources/beta/agents/environments/files.d.ts.map +1 -1
- package/resources/beta/agents/environments/files.js +9 -0
- package/resources/beta/agents/environments/files.js.map +1 -1
- package/resources/beta/agents/environments/files.mjs +9 -0
- package/resources/beta/agents/environments/files.mjs.map +1 -1
- package/resources/beta/agents/sessions/artifacts.d.mts +4 -0
- package/resources/beta/agents/sessions/artifacts.d.mts.map +1 -1
- package/resources/beta/agents/sessions/artifacts.d.ts +4 -0
- package/resources/beta/agents/sessions/artifacts.d.ts.map +1 -1
- package/resources/beta/agents/sessions/artifacts.js +5 -0
- package/resources/beta/agents/sessions/artifacts.js.map +1 -1
- package/resources/beta/agents/sessions/artifacts.mjs +5 -0
- package/resources/beta/agents/sessions/artifacts.mjs.map +1 -1
- package/resources/beta/agents/sessions/events.d.mts +6 -5
- package/resources/beta/agents/sessions/events.d.mts.map +1 -1
- package/resources/beta/agents/sessions/events.d.ts +6 -5
- package/resources/beta/agents/sessions/events.d.ts.map +1 -1
- package/resources/beta/agents/sessions/events.js +6 -5
- package/resources/beta/agents/sessions/events.js.map +1 -1
- package/resources/beta/agents/sessions/events.mjs +6 -5
- package/resources/beta/agents/sessions/events.mjs.map +1 -1
- package/resources/beta/agents/sessions/index.d.mts +1 -0
- package/resources/beta/agents/sessions/index.d.mts.map +1 -1
- package/resources/beta/agents/sessions/index.d.ts +1 -0
- package/resources/beta/agents/sessions/index.d.ts.map +1 -1
- package/resources/beta/agents/sessions/index.js +3 -1
- package/resources/beta/agents/sessions/index.js.map +1 -1
- package/resources/beta/agents/sessions/index.mjs +1 -0
- package/resources/beta/agents/sessions/index.mjs.map +1 -1
- package/resources/beta/agents/sessions/sessions.d.mts +16 -4
- package/resources/beta/agents/sessions/sessions.d.mts.map +1 -1
- package/resources/beta/agents/sessions/sessions.d.ts +16 -4
- package/resources/beta/agents/sessions/sessions.d.ts.map +1 -1
- package/resources/beta/agents/sessions/sessions.js +17 -4
- package/resources/beta/agents/sessions/sessions.js.map +1 -1
- package/resources/beta/agents/sessions/sessions.mjs +17 -4
- package/resources/beta/agents/sessions/sessions.mjs.map +1 -1
- package/resources/beta/agents/sessions/traces.d.mts +68 -0
- package/resources/beta/agents/sessions/traces.d.mts.map +1 -0
- package/resources/beta/agents/sessions/traces.d.ts +68 -0
- package/resources/beta/agents/sessions/traces.d.ts.map +1 -0
- package/resources/beta/agents/sessions/traces.js +81 -0
- package/resources/beta/agents/sessions/traces.js.map +1 -0
- package/resources/beta/agents/sessions/traces.mjs +77 -0
- package/resources/beta/agents/sessions/traces.mjs.map +1 -0
- package/resources/beta/responses/ws-base.d.mts +3 -1
- package/resources/beta/responses/ws-base.d.mts.map +1 -1
- package/resources/beta/responses/ws-base.d.ts +3 -1
- package/resources/beta/responses/ws-base.d.ts.map +1 -1
- package/resources/beta/responses/ws-base.js +35 -6
- package/resources/beta/responses/ws-base.js.map +1 -1
- package/resources/beta/responses/ws-base.mjs +35 -6
- package/resources/beta/responses/ws-base.mjs.map +1 -1
- package/resources/beta/responses/ws.d.mts +10 -0
- package/resources/beta/responses/ws.d.mts.map +1 -1
- package/resources/beta/responses/ws.d.ts +10 -0
- package/resources/beta/responses/ws.d.ts.map +1 -1
- package/resources/beta/responses/ws.js +23 -22
- package/resources/beta/responses/ws.js.map +1 -1
- package/resources/beta/responses/ws.mjs +24 -23
- package/resources/beta/responses/ws.mjs.map +1 -1
- package/resources/chat/completions/completions.d.mts +1 -1
- package/resources/chat/completions/completions.d.mts.map +1 -1
- package/resources/chat/completions/completions.d.ts +1 -1
- package/resources/chat/completions/completions.d.ts.map +1 -1
- package/resources/evals/runs/runs.js +1 -1
- package/resources/evals/runs/runs.js.map +1 -1
- package/resources/evals/runs/runs.mjs +1 -1
- package/resources/evals/runs/runs.mjs.map +1 -1
- package/resources/live/forks/forks.d.mts +5 -1
- package/resources/live/forks/forks.d.mts.map +1 -1
- package/resources/live/forks/forks.d.ts +5 -1
- package/resources/live/forks/forks.d.ts.map +1 -1
- package/resources/live/live.d.mts +5 -1
- package/resources/live/live.d.mts.map +1 -1
- package/resources/live/live.d.ts +5 -1
- package/resources/live/live.d.ts.map +1 -1
- package/resources/live/live.js.map +1 -1
- package/resources/live/live.mjs.map +1 -1
- package/resources/responses/ws-base.d.mts +3 -1
- package/resources/responses/ws-base.d.mts.map +1 -1
- package/resources/responses/ws-base.d.ts +3 -1
- package/resources/responses/ws-base.d.ts.map +1 -1
- package/resources/responses/ws-base.js +35 -6
- package/resources/responses/ws-base.js.map +1 -1
- package/resources/responses/ws-base.mjs +35 -6
- package/resources/responses/ws-base.mjs.map +1 -1
- package/resources/responses/ws.d.mts +10 -0
- package/resources/responses/ws.d.mts.map +1 -1
- package/resources/responses/ws.d.ts +10 -0
- package/resources/responses/ws.d.ts.map +1 -1
- package/resources/responses/ws.js +23 -22
- package/resources/responses/ws.js.map +1 -1
- package/resources/responses/ws.mjs +24 -23
- package/resources/responses/ws.mjs.map +1 -1
- package/src/client.ts +55 -19
- package/src/core/streaming.ts +9 -0
- package/src/helpers/beta/agents/filesystem.ts +187 -0
- package/src/helpers/beta/agents/standard-schema.ts +13 -0
- package/src/helpers/beta/agents/zod.ts +10 -0
- package/src/internal/realtime-credentials.ts +70 -4
- package/src/internal/responses-ws-credentials.ts +160 -0
- package/src/internal/shim-types.ts +17 -0
- package/src/internal/ws-adapter-node.ts +66 -0
- package/src/internal/ws.ts +139 -11
- package/src/lib/agents/agent-session-stream.ts +36 -24
- package/src/lib/beta/agents/agent-session-create-stream.ts +36 -0
- package/src/lib/beta/agents/agent-turn-result-collector.ts +122 -0
- package/src/lib/beta/agents/agent-turn-result-error.ts +33 -0
- package/src/lib/beta/agents/agent-turn-result.ts +22 -0
- package/src/lib/beta/agents/files.ts +119 -0
- package/src/lib/beta/agents/function-tool.ts +60 -0
- package/src/lib/beta/agents/output-format-types.ts +12 -0
- package/src/lib/beta/agents/output-format.ts +20 -0
- package/src/lib/beta/agents/output-parse-error.ts +16 -0
- package/src/lib/beta/agents/pages.ts +32 -0
- package/src/lib/beta/agents/parse-result.ts +133 -0
- package/src/lib/beta/agents/parsed-agent-turn-result.ts +12 -0
- package/src/lib/beta/agents/result-artifacts.ts +76 -0
- package/src/lib/beta/agents/result-collection.ts +115 -0
- package/src/lib/beta/agents/tool-output.ts +22 -0
- package/src/lib/responses/responses-websocket-session.ts +14 -3
- package/src/resources/beta/agents/agents.ts +11 -0
- package/src/resources/beta/agents/environments/files.ts +16 -0
- package/src/resources/beta/agents/sessions/artifacts.ts +7 -0
- package/src/resources/beta/agents/sessions/events.ts +6 -5
- package/src/resources/beta/agents/sessions/index.ts +1 -0
- package/src/resources/beta/agents/sessions/sessions.ts +48 -18
- package/src/resources/beta/agents/sessions/traces.ts +298 -0
- package/src/resources/beta/responses/ws-base.ts +40 -6
- package/src/resources/beta/responses/ws.ts +37 -27
- package/src/resources/chat/completions/completions.ts +1 -1
- package/src/resources/evals/runs/runs.ts +1 -1
- package/src/resources/live/forks/forks.ts +6 -1
- package/src/resources/live/live.ts +6 -1
- package/src/resources/responses/ws-base.ts +40 -6
- package/src/resources/responses/ws.ts +37 -27
- package/src/tsconfig.dist-src-node.d.ts +7 -0
- package/src/tsconfig.dist-src.d.ts +3 -1
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { WritableStream as AgentWritableStream } from "../../../internal/shim-types.js";
|
|
2
|
+
import type { StreamingFile } from "../../../internal/uploads.js";
|
|
3
|
+
import type { RequestOptions } from "../../../internal/request-options.js";
|
|
4
|
+
import type { Files } from "../../../resources/beta/agents/environments/files.js";
|
|
5
|
+
import type { PreparedAgentFiles } from "../../../lib/beta/agents/files.js";
|
|
6
|
+
/** Beta, Node.js: select an application-owned file in a stable directory for a lazy upload. */
|
|
7
|
+
export declare function agentFile(path: string): Promise<StreamingFile & {
|
|
8
|
+
size: number;
|
|
9
|
+
}>;
|
|
10
|
+
/** Beta, Node.js: prepare explicit files from a stable application-owned directory once. */
|
|
11
|
+
export declare function prepareAgentDirectory(resource: Files, directory: string, params: {
|
|
12
|
+
include: readonly string[];
|
|
13
|
+
to?: string;
|
|
14
|
+
}, options?: RequestOptions): Promise<PreparedAgentFiles>;
|
|
15
|
+
/** Beta, Node.js: an application-owned safe path in a stable directory, opened lazily for a download. */
|
|
16
|
+
export declare function agentFileDestination(path: string): AgentWritableStream<Uint8Array>;
|
|
17
|
+
//# sourceMappingURL=filesystem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../../src/helpers/beta/agents/filesystem.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,IAAI,mBAAmB,EAAE,wCAAqC;AAM1F,OAAO,KAAK,EAAE,aAAa,EAAE,qCAAkC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,6CAA0C;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,6DAA0D;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,0CAAuC;AA2EzE,+FAA+F;AAC/F,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAEvF;AAED,4FAA4F;AAC5F,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;IAAE,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,EACnD,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,kBAAkB,CAAC,CAwB7B;AAED,yGAAyG;AACzG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CA8DlF"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.agentFile = agentFile;
|
|
4
|
+
exports.prepareAgentDirectory = prepareAgentDirectory;
|
|
5
|
+
exports.agentFileDestination = agentFileDestination;
|
|
6
|
+
const tslib_1 = require("../../../internal/tslib.js");
|
|
7
|
+
const node_fs_1 = require("node:fs");
|
|
8
|
+
const promises_1 = require("node:fs/promises");
|
|
9
|
+
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
10
|
+
const error_1 = require("../../../core/error.js");
|
|
11
|
+
const uploads_1 = require("../../../internal/uploads.js");
|
|
12
|
+
async function checkedPath(path, boundary) {
|
|
13
|
+
const absolute = node_path_1.default.resolve(path);
|
|
14
|
+
const root = boundary ?? node_path_1.default.dirname(absolute);
|
|
15
|
+
let current = root;
|
|
16
|
+
let selected;
|
|
17
|
+
for (const component of node_path_1.default.relative(root, absolute).split(node_path_1.default.sep)) {
|
|
18
|
+
current = node_path_1.default.join(current, component);
|
|
19
|
+
// oxlint-disable-next-line no-await-in-loop -- Check each ancestor before following the next path component.
|
|
20
|
+
const info = await (0, promises_1.lstat)(current);
|
|
21
|
+
selected = info;
|
|
22
|
+
if (info.isSymbolicLink()) {
|
|
23
|
+
throw new error_1.OpenAIError('Agent file sources cannot contain symbolic links');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const resolved = await (0, promises_1.realpath)(absolute);
|
|
27
|
+
const info = await (0, promises_1.lstat)(resolved);
|
|
28
|
+
const relative = boundary ? node_path_1.default.relative(boundary, resolved) : '';
|
|
29
|
+
if (!selected ||
|
|
30
|
+
selected.dev !== info.dev ||
|
|
31
|
+
selected.ino !== info.ino ||
|
|
32
|
+
selected.size !== info.size ||
|
|
33
|
+
(boundary &&
|
|
34
|
+
(relative === '..' || relative.startsWith(`..${node_path_1.default.sep}`) || node_path_1.default.isAbsolute(relative)))) {
|
|
35
|
+
throw new error_1.OpenAIError('Selected agent file changed while resolving its path');
|
|
36
|
+
}
|
|
37
|
+
return { path: resolved, info: selected };
|
|
38
|
+
}
|
|
39
|
+
function selectedAgentFile({ path: absolute, info, }) {
|
|
40
|
+
if (!info.isFile()) {
|
|
41
|
+
throw new error_1.OpenAIError('Agent file sources must be regular files');
|
|
42
|
+
}
|
|
43
|
+
async function* bytes() {
|
|
44
|
+
// oxlint-disable-next-line no-bitwise -- Combine native filesystem open flags.
|
|
45
|
+
const handle = await (0, promises_1.open)(absolute, node_fs_1.constants.O_RDONLY | node_fs_1.constants.O_NOFOLLOW);
|
|
46
|
+
try {
|
|
47
|
+
const current = await handle.stat();
|
|
48
|
+
if (!current.isFile() ||
|
|
49
|
+
current.dev !== info.dev ||
|
|
50
|
+
current.ino !== info.ino ||
|
|
51
|
+
current.size !== info.size) {
|
|
52
|
+
throw new error_1.OpenAIError('Selected agent file changed before upload');
|
|
53
|
+
}
|
|
54
|
+
let received = 0;
|
|
55
|
+
if (info.size > 0) {
|
|
56
|
+
for await (const chunk of handle.createReadStream({ autoClose: false, end: info.size - 1 })) {
|
|
57
|
+
received += chunk.length;
|
|
58
|
+
yield chunk;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const finalInfo = await handle.stat();
|
|
62
|
+
if (received !== info.size || finalInfo.size !== info.size) {
|
|
63
|
+
throw new error_1.OpenAIError('Selected agent file changed while uploading');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
await handle.close();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return Object.assign((0, uploads_1.toStreamingFile)({ [Symbol.asyncIterator]: bytes }, node_path_1.default.basename(absolute)), {
|
|
71
|
+
size: info.size,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/** Beta, Node.js: select an application-owned file in a stable directory for a lazy upload. */
|
|
75
|
+
async function agentFile(path) {
|
|
76
|
+
return selectedAgentFile(await checkedPath(path));
|
|
77
|
+
}
|
|
78
|
+
/** Beta, Node.js: prepare explicit files from a stable application-owned directory once. */
|
|
79
|
+
async function prepareAgentDirectory(resource, directory, params, options) {
|
|
80
|
+
const include = [...params.include];
|
|
81
|
+
const destination = params.to ?? '/workspace';
|
|
82
|
+
const { path: root, info: rootInfo } = await checkedPath(directory);
|
|
83
|
+
if (!rootInfo.isDirectory()) {
|
|
84
|
+
throw new error_1.OpenAIError('Expected a directory');
|
|
85
|
+
}
|
|
86
|
+
const selected = {};
|
|
87
|
+
const seen = new Set();
|
|
88
|
+
for (const relative of include) {
|
|
89
|
+
if (relative.includes('\\') ||
|
|
90
|
+
relative.includes('\0') ||
|
|
91
|
+
relative.split('/').some((part) => part === '' || part === '.' || part === '..') ||
|
|
92
|
+
seen.has(relative)) {
|
|
93
|
+
throw new error_1.OpenAIError('Directory selections must be unique relative file paths');
|
|
94
|
+
}
|
|
95
|
+
seen.add(relative);
|
|
96
|
+
// oxlint-disable-next-line no-await-in-loop -- Prepare each explicitly selected source before any upload begins.
|
|
97
|
+
const source = await checkedPath(node_path_1.default.join(root, relative), root);
|
|
98
|
+
selected[`${destination}/${relative}`] = selectedAgentFile(source);
|
|
99
|
+
}
|
|
100
|
+
return resource.prepare(selected, options);
|
|
101
|
+
}
|
|
102
|
+
/** Beta, Node.js: an application-owned safe path in a stable directory, opened lazily for a download. */
|
|
103
|
+
function agentFileDestination(path) {
|
|
104
|
+
const absolute = node_path_1.default.resolve(path);
|
|
105
|
+
let handle;
|
|
106
|
+
const close = async () => {
|
|
107
|
+
await handle?.close();
|
|
108
|
+
handle = undefined;
|
|
109
|
+
};
|
|
110
|
+
const file = async () => {
|
|
111
|
+
if (handle) {
|
|
112
|
+
return handle;
|
|
113
|
+
}
|
|
114
|
+
let expected;
|
|
115
|
+
try {
|
|
116
|
+
expected = await (0, promises_1.lstat)(absolute);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
if (!(error instanceof Error && 'code' in error && error.code === 'ENOENT')) {
|
|
120
|
+
throw error;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (expected && !expected.isFile()) {
|
|
124
|
+
throw new error_1.OpenAIError('Agent artifact destinations must be regular files');
|
|
125
|
+
}
|
|
126
|
+
// Never truncate before verifying the opened entry. Exclusive creation also rejects dangling links.
|
|
127
|
+
/* oxlint-disable no-bitwise -- Combine native flags; identity validation also covers Windows. */
|
|
128
|
+
const flags = node_fs_1.constants.O_WRONLY |
|
|
129
|
+
(node_fs_1.constants.O_NOFOLLOW ?? 0) |
|
|
130
|
+
(node_fs_1.constants.O_NONBLOCK ?? 0) |
|
|
131
|
+
(expected ? 0 : node_fs_1.constants.O_CREAT | node_fs_1.constants.O_EXCL);
|
|
132
|
+
/* oxlint-enable no-bitwise */
|
|
133
|
+
const opened = await (0, promises_1.open)(absolute, flags);
|
|
134
|
+
try {
|
|
135
|
+
const current = await opened.stat();
|
|
136
|
+
if (!current.isFile() || (expected && (current.dev !== expected.dev || current.ino !== expected.ino))) {
|
|
137
|
+
throw new error_1.OpenAIError('Agent artifact destination changed before opening');
|
|
138
|
+
}
|
|
139
|
+
await opened.truncate(0);
|
|
140
|
+
handle = opened;
|
|
141
|
+
return handle;
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
await opened.close();
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
return new WritableStream({
|
|
149
|
+
async write(chunk) {
|
|
150
|
+
try {
|
|
151
|
+
const target = await file();
|
|
152
|
+
await target.writeFile(chunk);
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
await close();
|
|
156
|
+
throw error;
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
async close() {
|
|
160
|
+
await file();
|
|
161
|
+
await close();
|
|
162
|
+
},
|
|
163
|
+
async abort() {
|
|
164
|
+
await close();
|
|
165
|
+
},
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=filesystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../../src/helpers/beta/agents/filesystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { constants } from 'node:fs';
|
|
2
|
+
import { lstat, open, realpath } from 'node:fs/promises';
|
|
3
|
+
import nodePath from 'node:path';
|
|
4
|
+
import { OpenAIError } from "../../../core/error.mjs";
|
|
5
|
+
import { toStreamingFile } from "../../../internal/uploads.mjs";
|
|
6
|
+
async function checkedPath(path, boundary) {
|
|
7
|
+
const absolute = nodePath.resolve(path);
|
|
8
|
+
const root = boundary ?? nodePath.dirname(absolute);
|
|
9
|
+
let current = root;
|
|
10
|
+
let selected;
|
|
11
|
+
for (const component of nodePath.relative(root, absolute).split(nodePath.sep)) {
|
|
12
|
+
current = nodePath.join(current, component);
|
|
13
|
+
// oxlint-disable-next-line no-await-in-loop -- Check each ancestor before following the next path component.
|
|
14
|
+
const info = await lstat(current);
|
|
15
|
+
selected = info;
|
|
16
|
+
if (info.isSymbolicLink()) {
|
|
17
|
+
throw new OpenAIError('Agent file sources cannot contain symbolic links');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
const resolved = await realpath(absolute);
|
|
21
|
+
const info = await lstat(resolved);
|
|
22
|
+
const relative = boundary ? nodePath.relative(boundary, resolved) : '';
|
|
23
|
+
if (!selected ||
|
|
24
|
+
selected.dev !== info.dev ||
|
|
25
|
+
selected.ino !== info.ino ||
|
|
26
|
+
selected.size !== info.size ||
|
|
27
|
+
(boundary &&
|
|
28
|
+
(relative === '..' || relative.startsWith(`..${nodePath.sep}`) || nodePath.isAbsolute(relative)))) {
|
|
29
|
+
throw new OpenAIError('Selected agent file changed while resolving its path');
|
|
30
|
+
}
|
|
31
|
+
return { path: resolved, info: selected };
|
|
32
|
+
}
|
|
33
|
+
function selectedAgentFile({ path: absolute, info, }) {
|
|
34
|
+
if (!info.isFile()) {
|
|
35
|
+
throw new OpenAIError('Agent file sources must be regular files');
|
|
36
|
+
}
|
|
37
|
+
async function* bytes() {
|
|
38
|
+
// oxlint-disable-next-line no-bitwise -- Combine native filesystem open flags.
|
|
39
|
+
const handle = await open(absolute, constants.O_RDONLY | constants.O_NOFOLLOW);
|
|
40
|
+
try {
|
|
41
|
+
const current = await handle.stat();
|
|
42
|
+
if (!current.isFile() ||
|
|
43
|
+
current.dev !== info.dev ||
|
|
44
|
+
current.ino !== info.ino ||
|
|
45
|
+
current.size !== info.size) {
|
|
46
|
+
throw new OpenAIError('Selected agent file changed before upload');
|
|
47
|
+
}
|
|
48
|
+
let received = 0;
|
|
49
|
+
if (info.size > 0) {
|
|
50
|
+
for await (const chunk of handle.createReadStream({ autoClose: false, end: info.size - 1 })) {
|
|
51
|
+
received += chunk.length;
|
|
52
|
+
yield chunk;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const finalInfo = await handle.stat();
|
|
56
|
+
if (received !== info.size || finalInfo.size !== info.size) {
|
|
57
|
+
throw new OpenAIError('Selected agent file changed while uploading');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
finally {
|
|
61
|
+
await handle.close();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return Object.assign(toStreamingFile({ [Symbol.asyncIterator]: bytes }, nodePath.basename(absolute)), {
|
|
65
|
+
size: info.size,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/** Beta, Node.js: select an application-owned file in a stable directory for a lazy upload. */
|
|
69
|
+
export async function agentFile(path) {
|
|
70
|
+
return selectedAgentFile(await checkedPath(path));
|
|
71
|
+
}
|
|
72
|
+
/** Beta, Node.js: prepare explicit files from a stable application-owned directory once. */
|
|
73
|
+
export async function prepareAgentDirectory(resource, directory, params, options) {
|
|
74
|
+
const include = [...params.include];
|
|
75
|
+
const destination = params.to ?? '/workspace';
|
|
76
|
+
const { path: root, info: rootInfo } = await checkedPath(directory);
|
|
77
|
+
if (!rootInfo.isDirectory()) {
|
|
78
|
+
throw new OpenAIError('Expected a directory');
|
|
79
|
+
}
|
|
80
|
+
const selected = {};
|
|
81
|
+
const seen = new Set();
|
|
82
|
+
for (const relative of include) {
|
|
83
|
+
if (relative.includes('\\') ||
|
|
84
|
+
relative.includes('\0') ||
|
|
85
|
+
relative.split('/').some((part) => part === '' || part === '.' || part === '..') ||
|
|
86
|
+
seen.has(relative)) {
|
|
87
|
+
throw new OpenAIError('Directory selections must be unique relative file paths');
|
|
88
|
+
}
|
|
89
|
+
seen.add(relative);
|
|
90
|
+
// oxlint-disable-next-line no-await-in-loop -- Prepare each explicitly selected source before any upload begins.
|
|
91
|
+
const source = await checkedPath(nodePath.join(root, relative), root);
|
|
92
|
+
selected[`${destination}/${relative}`] = selectedAgentFile(source);
|
|
93
|
+
}
|
|
94
|
+
return resource.prepare(selected, options);
|
|
95
|
+
}
|
|
96
|
+
/** Beta, Node.js: an application-owned safe path in a stable directory, opened lazily for a download. */
|
|
97
|
+
export function agentFileDestination(path) {
|
|
98
|
+
const absolute = nodePath.resolve(path);
|
|
99
|
+
let handle;
|
|
100
|
+
const close = async () => {
|
|
101
|
+
await handle?.close();
|
|
102
|
+
handle = undefined;
|
|
103
|
+
};
|
|
104
|
+
const file = async () => {
|
|
105
|
+
if (handle) {
|
|
106
|
+
return handle;
|
|
107
|
+
}
|
|
108
|
+
let expected;
|
|
109
|
+
try {
|
|
110
|
+
expected = await lstat(absolute);
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
if (!(error instanceof Error && 'code' in error && error.code === 'ENOENT')) {
|
|
114
|
+
throw error;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (expected && !expected.isFile()) {
|
|
118
|
+
throw new OpenAIError('Agent artifact destinations must be regular files');
|
|
119
|
+
}
|
|
120
|
+
// Never truncate before verifying the opened entry. Exclusive creation also rejects dangling links.
|
|
121
|
+
/* oxlint-disable no-bitwise -- Combine native flags; identity validation also covers Windows. */
|
|
122
|
+
const flags = constants.O_WRONLY |
|
|
123
|
+
(constants.O_NOFOLLOW ?? 0) |
|
|
124
|
+
(constants.O_NONBLOCK ?? 0) |
|
|
125
|
+
(expected ? 0 : constants.O_CREAT | constants.O_EXCL);
|
|
126
|
+
/* oxlint-enable no-bitwise */
|
|
127
|
+
const opened = await open(absolute, flags);
|
|
128
|
+
try {
|
|
129
|
+
const current = await opened.stat();
|
|
130
|
+
if (!current.isFile() || (expected && (current.dev !== expected.dev || current.ino !== expected.ino))) {
|
|
131
|
+
throw new OpenAIError('Agent artifact destination changed before opening');
|
|
132
|
+
}
|
|
133
|
+
await opened.truncate(0);
|
|
134
|
+
handle = opened;
|
|
135
|
+
return handle;
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
await opened.close();
|
|
139
|
+
throw error;
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
return new WritableStream({
|
|
143
|
+
async write(chunk) {
|
|
144
|
+
try {
|
|
145
|
+
const target = await file();
|
|
146
|
+
await target.writeFile(chunk);
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
await close();
|
|
150
|
+
throw error;
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
async close() {
|
|
154
|
+
await file();
|
|
155
|
+
await close();
|
|
156
|
+
},
|
|
157
|
+
async abort() {
|
|
158
|
+
await close();
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=filesystem.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.mjs","sourceRoot":"","sources":["../../../src/helpers/beta/agents/filesystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { standardTextFormat } from "../../standard-schema.mjs";
|
|
2
|
+
import type { JSONSchema } from "../../../lib/jsonschema.mjs";
|
|
3
|
+
/** Beta: bind a synchronous Standard Schema validator to Agents output. */
|
|
4
|
+
export declare function standardAgentTextFormat<S extends Parameters<typeof standardTextFormat>[0]>(schema: S, jsonSchema?: JSONSchema): import("../../../lib/beta/agents/output-format-types.mjs").AgentOutputFormat<[NonNullable<S["~standard"]["types"]>] extends [never] ? unknown : NonNullable<S["~standard"]["types"]> extends {
|
|
5
|
+
readonly output: infer Output;
|
|
6
|
+
} ? Output : unknown>;
|
|
7
|
+
//# sourceMappingURL=standard-schema.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard-schema.d.mts","sourceRoot":"","sources":["../../../src/helpers/beta/agents/standard-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kCAA8B;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,oCAAgC;AAG1D,2EAA2E;AAC3E,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,EACxF,MAAM,EAAE,CAAC,EACT,UAAU,CAAC,EAAE,UAAU;;sBAKxB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { standardTextFormat } from "../../standard-schema.js";
|
|
2
|
+
import type { JSONSchema } from "../../../lib/jsonschema.js";
|
|
3
|
+
/** Beta: bind a synchronous Standard Schema validator to Agents output. */
|
|
4
|
+
export declare function standardAgentTextFormat<S extends Parameters<typeof standardTextFormat>[0]>(schema: S, jsonSchema?: JSONSchema): import("../../../lib/beta/agents/output-format-types.js").AgentOutputFormat<[NonNullable<S["~standard"]["types"]>] extends [never] ? unknown : NonNullable<S["~standard"]["types"]> extends {
|
|
5
|
+
readonly output: infer Output;
|
|
6
|
+
} ? Output : unknown>;
|
|
7
|
+
//# sourceMappingURL=standard-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard-schema.d.ts","sourceRoot":"","sources":["../../../src/helpers/beta/agents/standard-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,mCAAgC;AAG1D,2EAA2E;AAC3E,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,EACxF,MAAM,EAAE,CAAC,EACT,UAAU,CAAC,EAAE,UAAU;;sBAKxB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.standardAgentTextFormat = standardAgentTextFormat;
|
|
4
|
+
const standard_schema_1 = require("../../standard-schema.js");
|
|
5
|
+
const output_format_1 = require("../../../lib/beta/agents/output-format.js");
|
|
6
|
+
/** Beta: bind a synchronous Standard Schema validator to Agents output. */
|
|
7
|
+
function standardAgentTextFormat(schema, jsonSchema) {
|
|
8
|
+
const format = (0, standard_schema_1.standardTextFormat)(schema, 'agent_output', { schema: jsonSchema });
|
|
9
|
+
// SAFETY: The native Responses helper owns Standard Schema conversion and validation.
|
|
10
|
+
return (0, output_format_1.agentOutputFormat)(format.schema, format.$parseRaw);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=standard-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard-schema.js","sourceRoot":"","sources":["../../../src/helpers/beta/agents/standard-schema.ts"],"names":[],"mappings":";;AAKA,0DAOC;AAZD,8DAA2D;AAE3D,6EAA2E;AAE3E,2EAA2E;AAC3E,SAAgB,uBAAuB,CACrC,MAAS,EACT,UAAuB;IAEvB,MAAM,MAAM,GAAG,IAAA,oCAAkB,EAAC,MAAM,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAClF,sFAAsF;IACtF,OAAO,IAAA,iCAAiB,EAAC,MAAM,CAAC,MAAoB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { standardTextFormat } from "../../standard-schema.mjs";
|
|
2
|
+
import { agentOutputFormat } from "../../../lib/beta/agents/output-format.mjs";
|
|
3
|
+
/** Beta: bind a synchronous Standard Schema validator to Agents output. */
|
|
4
|
+
export function standardAgentTextFormat(schema, jsonSchema) {
|
|
5
|
+
const format = standardTextFormat(schema, 'agent_output', { schema: jsonSchema });
|
|
6
|
+
// SAFETY: The native Responses helper owns Standard Schema conversion and validation.
|
|
7
|
+
return agentOutputFormat(format.schema, format.$parseRaw);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=standard-schema.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard-schema.mjs","sourceRoot":"","sources":["../../../src/helpers/beta/agents/standard-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kCAA8B;AAE3D,OAAO,EAAE,iBAAiB,EAAE,mDAA+C;AAE3E,2EAA2E;AAC3E,MAAM,UAAU,uBAAuB,CACrC,MAAS,EACT,UAAuB;IAEvB,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAClF,sFAAsF;IACtF,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAoB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { zodTextFormat } from "../../zod.mjs";
|
|
2
|
+
/** Beta: bind a Zod v3/v4/Mini schema to an Agents text format and completed result. */
|
|
3
|
+
export declare function zodAgentTextFormat<S extends Parameters<typeof zodTextFormat>[0]>(schema: S): import("../../../lib/beta/agents/output-format-types.mjs").AgentOutputFormat<S extends {
|
|
4
|
+
_output: infer Output;
|
|
5
|
+
} ? Output : S extends {
|
|
6
|
+
_zod: {
|
|
7
|
+
output: infer Output_1;
|
|
8
|
+
};
|
|
9
|
+
} ? Output_1 : never>;
|
|
10
|
+
//# sourceMappingURL=zod.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.d.mts","sourceRoot":"","sources":["../../../src/helpers/beta/agents/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,sBAAkB;AAI1C,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;;;;;;sBAI1F"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { zodTextFormat } from "../../zod.js";
|
|
2
|
+
/** Beta: bind a Zod v3/v4/Mini schema to an Agents text format and completed result. */
|
|
3
|
+
export declare function zodAgentTextFormat<S extends Parameters<typeof zodTextFormat>[0]>(schema: S): import("../../../lib/beta/agents/output-format-types.js").AgentOutputFormat<S extends {
|
|
4
|
+
_output: infer Output;
|
|
5
|
+
} ? Output : S extends {
|
|
6
|
+
_zod: {
|
|
7
|
+
output: infer Output_1;
|
|
8
|
+
};
|
|
9
|
+
} ? Output_1 : never>;
|
|
10
|
+
//# sourceMappingURL=zod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../../src/helpers/beta/agents/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,qBAAkB;AAI1C,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;;;;;;sBAI1F"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.zodAgentTextFormat = zodAgentTextFormat;
|
|
4
|
+
const zod_1 = require("../../zod.js");
|
|
5
|
+
const output_format_1 = require("../../../lib/beta/agents/output-format.js");
|
|
6
|
+
/** Beta: bind a Zod v3/v4/Mini schema to an Agents text format and completed result. */
|
|
7
|
+
function zodAgentTextFormat(schema) {
|
|
8
|
+
const format = (0, zod_1.zodTextFormat)(schema, 'agent_output');
|
|
9
|
+
// SAFETY: The native Responses helper owns Zod schema conversion and validation.
|
|
10
|
+
return (0, output_format_1.agentOutputFormat)(format.schema, format.$parseRaw);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=zod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.js","sourceRoot":"","sources":["../../../src/helpers/beta/agents/zod.ts"],"names":[],"mappings":";;AAKA,gDAIC;AATD,sCAA0C;AAE1C,6EAA2E;AAE3E,wFAAwF;AACxF,SAAgB,kBAAkB,CAAgD,MAAS;IACzF,MAAM,MAAM,GAAG,IAAA,mBAAa,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrD,iFAAiF;IACjF,OAAO,IAAA,iCAAiB,EAAC,MAAM,CAAC,MAAoB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { zodTextFormat } from "../../zod.mjs";
|
|
2
|
+
import { agentOutputFormat } from "../../../lib/beta/agents/output-format.mjs";
|
|
3
|
+
/** Beta: bind a Zod v3/v4/Mini schema to an Agents text format and completed result. */
|
|
4
|
+
export function zodAgentTextFormat(schema) {
|
|
5
|
+
const format = zodTextFormat(schema, 'agent_output');
|
|
6
|
+
// SAFETY: The native Responses helper owns Zod schema conversion and validation.
|
|
7
|
+
return agentOutputFormat(format.schema, format.$parseRaw);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=zod.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.mjs","sourceRoot":"","sources":["../../../src/helpers/beta/agents/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,sBAAkB;AAE1C,OAAO,EAAE,iBAAiB,EAAE,mDAA+C;AAE3E,wFAAwF;AACxF,MAAM,UAAU,kBAAkB,CAAgD,MAAS;IACzF,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrD,iFAAiF;IACjF,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAoB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import type { OpenAI } from "../client.mjs";
|
|
2
|
+
export interface DeferredAPIKeyCache {
|
|
3
|
+
client: Pick<OpenAI, 'apiKey'>;
|
|
4
|
+
providerKey?: string;
|
|
5
|
+
commit: () => string | null;
|
|
6
|
+
}
|
|
7
|
+
interface RealtimeAPIKeyCacheContext {
|
|
8
|
+
run: <T>(cache: DeferredAPIKeyCache | undefined, operation: () => T) => T;
|
|
9
|
+
getStore: () => DeferredAPIKeyCache | undefined;
|
|
10
|
+
}
|
|
11
|
+
declare const realtimeCacheContext: unique symbol;
|
|
12
|
+
type CredentialClient = Pick<OpenAI, 'apiKey'> & {
|
|
13
|
+
[realtimeCacheContext]?: RealtimeAPIKeyCacheContext;
|
|
14
|
+
};
|
|
15
|
+
/** Installs the Node transport's invocation context without loading Node in the base client. @internal */
|
|
16
|
+
export declare function setRealtimeAPIKeyCacheContext(context: RealtimeAPIKeyCacheContext): void;
|
|
17
|
+
/** Reserves a deferred commit when the base hook is entered for this invocation. @internal */
|
|
18
|
+
export declare function getDeferredRealtimeAPIKeyCache(client: CredentialClient): DeferredAPIKeyCache | undefined;
|
|
19
|
+
/** Applies the Bedrock getter's validation when a captured credential does not enter the cache. @internal */
|
|
20
|
+
export declare function validateCapturedAPIKey(client: Pick<OpenAI, 'apiKey'>, credential: string | null): string | null;
|
|
2
21
|
/** Selects a captured credential without treating an explicit null as absent. @internal */
|
|
3
22
|
export declare function getRealtimeAPIKey(client: Pick<OpenAI, 'apiKey'> | undefined, captured: string | null | undefined): string | null | undefined;
|
|
4
23
|
/**
|
|
@@ -8,8 +27,10 @@ export declare function getRealtimeAPIKey(client: Pick<OpenAI, 'apiKey'> | undef
|
|
|
8
27
|
* synchronizing concurrent credential updates.
|
|
9
28
|
* @internal
|
|
10
29
|
*/
|
|
11
|
-
export declare function resolveRealtimeAPIKey(client: Pick<OpenAI, '
|
|
30
|
+
export declare function resolveRealtimeAPIKey(client: CredentialClient & Pick<OpenAI, '_callApiKey'>, deferCache?: boolean): Promise<{
|
|
12
31
|
apiKey: string | null;
|
|
13
32
|
isProvider: boolean;
|
|
33
|
+
commit: () => string | null;
|
|
14
34
|
}>;
|
|
35
|
+
export {};
|
|
15
36
|
//# sourceMappingURL=realtime-credentials.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime-credentials.d.mts","sourceRoot":"","sources":["../src/internal/realtime-credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,sBAAkB;
|
|
1
|
+
{"version":3,"file":"realtime-credentials.d.mts","sourceRoot":"","sources":["../src/internal/realtime-credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,sBAAkB;AAIxC,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CAC7B;AACD,UAAU,0BAA0B;IAClC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1E,QAAQ,EAAE,MAAM,mBAAmB,GAAG,SAAS,CAAC;CACjD;AAED,QAAA,MAAM,oBAAoB,eAAkD,CAAC;AAC7E,KAAK,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG;IAC/C,CAAC,oBAAoB,CAAC,CAAC,EAAE,0BAA0B,CAAC;CACrD,CAAC;AAGF,0GAA0G;AAC1G,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,CAEvF;AAED,8FAA8F;AAC9F,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,SAAS,CAGxG;AAED,6GAA6G;AAC7G,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,MAAM,GAAG,IAAI,CAKf;AAED,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,EAC1C,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,MAAM,GAAG,IAAI,GAAG,SAAS,CAE3B;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,EACtD,UAAU,UAAQ,GACjB,OAAO,CAAC;IACT,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC,CA4BD"}
|
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import type { OpenAI } from "../client.js";
|
|
2
|
+
export interface DeferredAPIKeyCache {
|
|
3
|
+
client: Pick<OpenAI, 'apiKey'>;
|
|
4
|
+
providerKey?: string;
|
|
5
|
+
commit: () => string | null;
|
|
6
|
+
}
|
|
7
|
+
interface RealtimeAPIKeyCacheContext {
|
|
8
|
+
run: <T>(cache: DeferredAPIKeyCache | undefined, operation: () => T) => T;
|
|
9
|
+
getStore: () => DeferredAPIKeyCache | undefined;
|
|
10
|
+
}
|
|
11
|
+
declare const realtimeCacheContext: unique symbol;
|
|
12
|
+
type CredentialClient = Pick<OpenAI, 'apiKey'> & {
|
|
13
|
+
[realtimeCacheContext]?: RealtimeAPIKeyCacheContext;
|
|
14
|
+
};
|
|
15
|
+
/** Installs the Node transport's invocation context without loading Node in the base client. @internal */
|
|
16
|
+
export declare function setRealtimeAPIKeyCacheContext(context: RealtimeAPIKeyCacheContext): void;
|
|
17
|
+
/** Reserves a deferred commit when the base hook is entered for this invocation. @internal */
|
|
18
|
+
export declare function getDeferredRealtimeAPIKeyCache(client: CredentialClient): DeferredAPIKeyCache | undefined;
|
|
19
|
+
/** Applies the Bedrock getter's validation when a captured credential does not enter the cache. @internal */
|
|
20
|
+
export declare function validateCapturedAPIKey(client: Pick<OpenAI, 'apiKey'>, credential: string | null): string | null;
|
|
2
21
|
/** Selects a captured credential without treating an explicit null as absent. @internal */
|
|
3
22
|
export declare function getRealtimeAPIKey(client: Pick<OpenAI, 'apiKey'> | undefined, captured: string | null | undefined): string | null | undefined;
|
|
4
23
|
/**
|
|
@@ -8,8 +27,10 @@ export declare function getRealtimeAPIKey(client: Pick<OpenAI, 'apiKey'> | undef
|
|
|
8
27
|
* synchronizing concurrent credential updates.
|
|
9
28
|
* @internal
|
|
10
29
|
*/
|
|
11
|
-
export declare function resolveRealtimeAPIKey(client: Pick<OpenAI, '
|
|
30
|
+
export declare function resolveRealtimeAPIKey(client: CredentialClient & Pick<OpenAI, '_callApiKey'>, deferCache?: boolean): Promise<{
|
|
12
31
|
apiKey: string | null;
|
|
13
32
|
isProvider: boolean;
|
|
33
|
+
commit: () => string | null;
|
|
14
34
|
}>;
|
|
35
|
+
export {};
|
|
15
36
|
//# sourceMappingURL=realtime-credentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime-credentials.d.ts","sourceRoot":"","sources":["../src/internal/realtime-credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,qBAAkB;
|
|
1
|
+
{"version":3,"file":"realtime-credentials.d.ts","sourceRoot":"","sources":["../src/internal/realtime-credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,qBAAkB;AAIxC,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CAC7B;AACD,UAAU,0BAA0B;IAClC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1E,QAAQ,EAAE,MAAM,mBAAmB,GAAG,SAAS,CAAC;CACjD;AAED,QAAA,MAAM,oBAAoB,eAAkD,CAAC;AAC7E,KAAK,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG;IAC/C,CAAC,oBAAoB,CAAC,CAAC,EAAE,0BAA0B,CAAC;CACrD,CAAC;AAGF,0GAA0G;AAC1G,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,CAEvF;AAED,8FAA8F;AAC9F,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,SAAS,CAGxG;AAED,6GAA6G;AAC7G,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,MAAM,GAAG,IAAI,CAKf;AAED,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,EAC1C,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,MAAM,GAAG,IAAI,GAAG,SAAS,CAE3B;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,EACtD,UAAU,UAAQ,GACjB,OAAO,CAAC;IACT,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC,CA4BD"}
|