@0xmaxma/claude-gateway 2.0.10 → 2.0.11
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 +15 -0
- package/config.template.json +1 -1
- package/dist/agent/runner.d.ts +119 -11
- package/dist/agent/runner.d.ts.map +1 -1
- package/dist/agent/runner.js +58 -8
- package/dist/agent/runner.js.map +1 -1
- package/dist/api/browser-bindings-router.d.ts +6 -0
- package/dist/api/browser-bindings-router.d.ts.map +1 -0
- package/dist/api/browser-bindings-router.js +150 -0
- package/dist/api/browser-bindings-router.js.map +1 -0
- package/dist/api/connectors-router.js +1 -1
- package/dist/api/connectors-router.js.map +1 -1
- package/dist/api/gateway-router.d.ts.map +1 -1
- package/dist/api/gateway-router.js +30 -2
- package/dist/api/gateway-router.js.map +1 -1
- package/dist/api/jev-router.d.ts +8 -0
- package/dist/api/jev-router.d.ts.map +1 -0
- package/dist/api/jev-router.js +128 -0
- package/dist/api/jev-router.js.map +1 -0
- package/dist/api/router.d.ts.map +1 -1
- package/dist/api/router.js +53 -6
- package/dist/api/router.js.map +1 -1
- package/dist/api/voice-router.d.ts.map +1 -1
- package/dist/api/voice-router.js +42 -3
- package/dist/api/voice-router.js.map +1 -1
- package/dist/automation/browser-command.d.ts +79 -0
- package/dist/automation/browser-command.d.ts.map +1 -0
- package/dist/automation/browser-command.js +118 -0
- package/dist/automation/browser-command.js.map +1 -0
- package/dist/automation/browser-outcome.d.ts +3 -0
- package/dist/automation/browser-outcome.d.ts.map +1 -0
- package/dist/automation/browser-outcome.js +78 -0
- package/dist/automation/browser-outcome.js.map +1 -0
- package/dist/automation/browser-steps.d.ts +33 -0
- package/dist/automation/browser-steps.d.ts.map +1 -0
- package/dist/automation/browser-steps.js +293 -0
- package/dist/automation/browser-steps.js.map +1 -0
- package/dist/automation/browser-trace.d.ts +60 -0
- package/dist/automation/browser-trace.d.ts.map +1 -0
- package/dist/automation/browser-trace.js +24 -0
- package/dist/automation/browser-trace.js.map +1 -0
- package/dist/automation/browser-use.d.ts +210 -0
- package/dist/automation/browser-use.d.ts.map +1 -0
- package/dist/automation/browser-use.js +1271 -0
- package/dist/automation/browser-use.js.map +1 -0
- package/dist/automation/command-speech.d.ts +33 -0
- package/dist/automation/command-speech.d.ts.map +1 -0
- package/dist/automation/command-speech.js +117 -0
- package/dist/automation/command-speech.js.map +1 -0
- package/dist/automation/command-steps.d.ts +35 -0
- package/dist/automation/command-steps.d.ts.map +1 -0
- package/dist/automation/command-steps.js +155 -0
- package/dist/automation/command-steps.js.map +1 -0
- package/dist/automation/computer-choice-ids.d.ts +7 -0
- package/dist/automation/computer-choice-ids.d.ts.map +1 -0
- package/dist/automation/computer-choice-ids.js +24 -0
- package/dist/automation/computer-choice-ids.js.map +1 -0
- package/dist/automation/computer-command.d.ts +126 -0
- package/dist/automation/computer-command.d.ts.map +1 -0
- package/dist/automation/computer-command.js +313 -0
- package/dist/automation/computer-command.js.map +1 -0
- package/dist/automation/computer-outcome.d.ts +8 -0
- package/dist/automation/computer-outcome.d.ts.map +1 -0
- package/dist/automation/computer-outcome.js +82 -0
- package/dist/automation/computer-outcome.js.map +1 -0
- package/dist/automation/computer-policy.d.ts +84 -0
- package/dist/automation/computer-policy.d.ts.map +1 -0
- package/dist/automation/computer-policy.js +56 -0
- package/dist/automation/computer-policy.js.map +1 -0
- package/dist/automation/computer-safety.d.ts +27 -0
- package/dist/automation/computer-safety.d.ts.map +1 -0
- package/dist/automation/computer-safety.js +47 -0
- package/dist/automation/computer-safety.js.map +1 -0
- package/dist/automation/computer-steps.d.ts +20 -0
- package/dist/automation/computer-steps.d.ts.map +1 -0
- package/dist/automation/computer-steps.js +251 -0
- package/dist/automation/computer-steps.js.map +1 -0
- package/dist/automation/computer-use.d.ts +315 -0
- package/dist/automation/computer-use.d.ts.map +1 -0
- package/dist/automation/computer-use.js +864 -0
- package/dist/automation/computer-use.js.map +1 -0
- package/dist/automation/direct-command.d.ts +51 -0
- package/dist/automation/direct-command.d.ts.map +1 -0
- package/dist/automation/direct-command.js +152 -0
- package/dist/automation/direct-command.js.map +1 -0
- package/dist/automation/interrupt.d.ts +4 -0
- package/dist/automation/interrupt.d.ts.map +1 -0
- package/dist/automation/interrupt.js +26 -0
- package/dist/automation/interrupt.js.map +1 -0
- package/dist/build-provenance.json +4 -4
- package/dist/child-env-exclusions.d.ts +4 -0
- package/dist/child-env-exclusions.d.ts.map +1 -0
- package/dist/child-env-exclusions.js +23 -0
- package/dist/child-env-exclusions.js.map +1 -0
- package/dist/cli/startup-diagnostics.d.ts.map +1 -1
- package/dist/cli/startup-diagnostics.js +19 -0
- package/dist/cli/startup-diagnostics.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +4 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/reload-policy.d.ts.map +1 -1
- package/dist/config/reload-policy.js +2 -1
- package/dist/config/reload-policy.js.map +1 -1
- package/dist/jev/automatic-browser-bindings.d.ts +15 -0
- package/dist/jev/automatic-browser-bindings.d.ts.map +1 -0
- package/dist/jev/automatic-browser-bindings.js +115 -0
- package/dist/jev/automatic-browser-bindings.js.map +1 -0
- package/dist/jev/browser-connector.d.ts +29 -0
- package/dist/jev/browser-connector.d.ts.map +1 -0
- package/dist/jev/browser-connector.js +347 -0
- package/dist/jev/browser-connector.js.map +1 -0
- package/dist/jev/browser-consent.d.ts +6 -0
- package/dist/jev/browser-consent.d.ts.map +1 -0
- package/dist/jev/browser-consent.js +50 -0
- package/dist/jev/browser-consent.js.map +1 -0
- package/dist/jev/browser-contract.d.ts +215 -0
- package/dist/jev/browser-contract.d.ts.map +1 -0
- package/dist/jev/browser-contract.js +10 -0
- package/dist/jev/browser-contract.js.map +1 -0
- package/dist/jev/browser-evidence-summary.d.ts +73 -0
- package/dist/jev/browser-evidence-summary.d.ts.map +1 -0
- package/dist/jev/browser-evidence-summary.js +22 -0
- package/dist/jev/browser-evidence-summary.js.map +1 -0
- package/dist/jev/browser-module-import.d.ts +3 -0
- package/dist/jev/browser-module-import.d.ts.map +1 -0
- package/dist/jev/browser-module-import.js +6 -0
- package/dist/jev/browser-module-import.js.map +1 -0
- package/dist/jev/child-env.d.ts +11 -0
- package/dist/jev/child-env.d.ts.map +1 -0
- package/dist/jev/child-env.js +60 -0
- package/dist/jev/child-env.js.map +1 -0
- package/dist/jev/computer-connector.d.ts +34 -0
- package/dist/jev/computer-connector.d.ts.map +1 -0
- package/dist/jev/computer-connector.js +82 -0
- package/dist/jev/computer-connector.js.map +1 -0
- package/dist/jev/computer-inputs.d.ts +41 -0
- package/dist/jev/computer-inputs.d.ts.map +1 -0
- package/dist/jev/computer-inputs.js +7 -0
- package/dist/jev/computer-inputs.js.map +1 -0
- package/dist/jev/index.d.ts +6 -0
- package/dist/jev/index.d.ts.map +1 -0
- package/dist/jev/index.js +25 -0
- package/dist/jev/index.js.map +1 -0
- package/dist/jev/relay-grants.d.ts +9 -0
- package/dist/jev/relay-grants.d.ts.map +1 -0
- package/dist/jev/relay-grants.js +49 -0
- package/dist/jev/relay-grants.js.map +1 -0
- package/dist/jev/service.d.ts +27 -0
- package/dist/jev/service.d.ts.map +1 -0
- package/dist/jev/service.js +264 -0
- package/dist/jev/service.js.map +1 -0
- package/dist/jev/thinking-provider.d.ts +7 -0
- package/dist/jev/thinking-provider.d.ts.map +1 -0
- package/dist/jev/thinking-provider.js +25 -0
- package/dist/jev/thinking-provider.js.map +1 -0
- package/dist/jev/types.d.ts +124 -0
- package/dist/jev/types.d.ts.map +1 -0
- package/dist/jev/types.js +13 -0
- package/dist/jev/types.js.map +1 -0
- package/dist/jev/validation.d.ts +45 -0
- package/dist/jev/validation.d.ts.map +1 -0
- package/dist/jev/validation.js +179 -0
- package/dist/jev/validation.js.map +1 -0
- package/dist/load-dotenv.d.ts.map +1 -1
- package/dist/load-dotenv.js +5 -1
- package/dist/load-dotenv.js.map +1 -1
- package/dist/orchestration/agent-tool-schemas.d.ts.map +1 -1
- package/dist/orchestration/agent-tool-schemas.js +12 -7
- package/dist/orchestration/agent-tool-schemas.js.map +1 -1
- package/dist/orchestration/background-work.d.ts +1 -0
- package/dist/orchestration/background-work.d.ts.map +1 -1
- package/dist/orchestration/background-work.js +1 -0
- package/dist/orchestration/background-work.js.map +1 -1
- package/dist/orchestration/bridge.d.ts +4 -0
- package/dist/orchestration/bridge.d.ts.map +1 -1
- package/dist/orchestration/bridge.js +176 -41
- package/dist/orchestration/bridge.js.map +1 -1
- package/dist/orchestration/browser-fields.d.ts +25 -0
- package/dist/orchestration/browser-fields.d.ts.map +1 -0
- package/dist/orchestration/browser-fields.js +23 -0
- package/dist/orchestration/browser-fields.js.map +1 -0
- package/dist/orchestration/browser-routing.d.ts +1 -1
- package/dist/orchestration/browser-routing.d.ts.map +1 -1
- package/dist/orchestration/browser-routing.js +7 -3
- package/dist/orchestration/browser-routing.js.map +1 -1
- package/dist/orchestration/capabilities.d.ts +4 -1
- package/dist/orchestration/capabilities.d.ts.map +1 -1
- package/dist/orchestration/capabilities.js +15 -9
- package/dist/orchestration/capabilities.js.map +1 -1
- package/dist/orchestration/channel-controls.js +1 -1
- package/dist/orchestration/channel-controls.js.map +1 -1
- package/dist/orchestration/cli-skills.d.ts.map +1 -1
- package/dist/orchestration/cli-skills.js +3 -2
- package/dist/orchestration/cli-skills.js.map +1 -1
- package/dist/orchestration/computer-end-screenshot.d.ts +11 -0
- package/dist/orchestration/computer-end-screenshot.d.ts.map +1 -0
- package/dist/orchestration/computer-end-screenshot.js +37 -0
- package/dist/orchestration/computer-end-screenshot.js.map +1 -0
- package/dist/orchestration/computer-prompt.d.ts +6 -0
- package/dist/orchestration/computer-prompt.d.ts.map +1 -0
- package/dist/orchestration/computer-prompt.js +24 -0
- package/dist/orchestration/computer-prompt.js.map +1 -0
- package/dist/orchestration/config.d.ts +17 -0
- package/dist/orchestration/config.d.ts.map +1 -1
- package/dist/orchestration/config.js +10 -4
- package/dist/orchestration/config.js.map +1 -1
- package/dist/orchestration/container-tool-schemas.d.ts +47 -3
- package/dist/orchestration/container-tool-schemas.d.ts.map +1 -1
- package/dist/orchestration/container-tool-schemas.js +41 -6
- package/dist/orchestration/container-tool-schemas.js.map +1 -1
- package/dist/orchestration/container.d.ts +4 -1
- package/dist/orchestration/container.d.ts.map +1 -1
- package/dist/orchestration/container.js +48 -29
- package/dist/orchestration/container.js.map +1 -1
- package/dist/orchestration/context-footprint.d.ts +1 -1
- package/dist/orchestration/context-footprint.d.ts.map +1 -1
- package/dist/orchestration/context-footprint.js +5 -5
- package/dist/orchestration/context-footprint.js.map +1 -1
- package/dist/orchestration/control-notification.d.ts +6 -0
- package/dist/orchestration/control-notification.d.ts.map +1 -0
- package/dist/orchestration/control-notification.js +23 -0
- package/dist/orchestration/control-notification.js.map +1 -0
- package/dist/orchestration/dashboard-reader-worker.js +2 -2
- package/dist/orchestration/dashboard-reader-worker.js.map +1 -1
- package/dist/orchestration/execution-observation.d.ts +3 -0
- package/dist/orchestration/execution-observation.d.ts.map +1 -1
- package/dist/orchestration/execution-observation.js.map +1 -1
- package/dist/orchestration/gateway-tasks/browser.d.ts +59 -0
- package/dist/orchestration/gateway-tasks/browser.d.ts.map +1 -0
- package/dist/orchestration/gateway-tasks/browser.js +426 -0
- package/dist/orchestration/gateway-tasks/browser.js.map +1 -0
- package/dist/orchestration/gateway-tasks/computer-context.d.ts +6 -0
- package/dist/orchestration/gateway-tasks/computer-context.d.ts.map +1 -0
- package/dist/orchestration/gateway-tasks/computer-context.js +19 -0
- package/dist/orchestration/gateway-tasks/computer-context.js.map +1 -0
- package/dist/orchestration/gateway-tasks/computer.d.ts +123 -0
- package/dist/orchestration/gateway-tasks/computer.d.ts.map +1 -0
- package/dist/orchestration/gateway-tasks/computer.js +519 -0
- package/dist/orchestration/gateway-tasks/computer.js.map +1 -0
- package/dist/orchestration/gateway-tasks/controller.d.ts +40 -6
- package/dist/orchestration/gateway-tasks/controller.d.ts.map +1 -1
- package/dist/orchestration/gateway-tasks/controller.js +118 -12
- package/dist/orchestration/gateway-tasks/controller.js.map +1 -1
- package/dist/orchestration/gateway-tasks/safemode.d.ts.map +1 -1
- package/dist/orchestration/gateway-tasks/safemode.js +2 -1
- package/dist/orchestration/gateway-tasks/safemode.js.map +1 -1
- package/dist/orchestration/jev-gateway.d.ts +25 -0
- package/dist/orchestration/jev-gateway.d.ts.map +1 -0
- package/dist/orchestration/jev-gateway.js +103 -0
- package/dist/orchestration/jev-gateway.js.map +1 -0
- package/dist/orchestration/jev-tool.d.ts +45 -0
- package/dist/orchestration/jev-tool.d.ts.map +1 -0
- package/dist/orchestration/jev-tool.js +10 -0
- package/dist/orchestration/jev-tool.js.map +1 -0
- package/dist/orchestration/live-execution-input.d.ts +26 -0
- package/dist/orchestration/live-execution-input.d.ts.map +1 -0
- package/dist/orchestration/live-execution-input.js +70 -0
- package/dist/orchestration/live-execution-input.js.map +1 -0
- package/dist/orchestration/notification-mailbox.d.ts.map +1 -1
- package/dist/orchestration/notification-mailbox.js +5 -2
- package/dist/orchestration/notification-mailbox.js.map +1 -1
- package/dist/orchestration/process-platform.d.ts +0 -3
- package/dist/orchestration/process-platform.d.ts.map +1 -1
- package/dist/orchestration/process-platform.js +0 -4
- package/dist/orchestration/process-platform.js.map +1 -1
- package/dist/orchestration/process-turn.d.ts +8 -0
- package/dist/orchestration/process-turn.d.ts.map +1 -1
- package/dist/orchestration/process-turn.js +65 -8
- package/dist/orchestration/process-turn.js.map +1 -1
- package/dist/orchestration/response-errors.d.ts.map +1 -1
- package/dist/orchestration/response-errors.js +1 -0
- package/dist/orchestration/response-errors.js.map +1 -1
- package/dist/orchestration/runtime.d.ts +51 -1
- package/dist/orchestration/runtime.d.ts.map +1 -1
- package/dist/orchestration/runtime.js +383 -27
- package/dist/orchestration/runtime.js.map +1 -1
- package/dist/orchestration/skill-catalog-budget.d.ts +6 -0
- package/dist/orchestration/skill-catalog-budget.d.ts.map +1 -0
- package/dist/orchestration/skill-catalog-budget.js +9 -0
- package/dist/orchestration/skill-catalog-budget.js.map +1 -0
- package/dist/orchestration/skills.d.ts +4 -2
- package/dist/orchestration/skills.d.ts.map +1 -1
- package/dist/orchestration/skills.js +44 -3
- package/dist/orchestration/skills.js.map +1 -1
- package/dist/orchestration/store.d.ts +1 -0
- package/dist/orchestration/store.d.ts.map +1 -1
- package/dist/orchestration/store.js +2 -0
- package/dist/orchestration/store.js.map +1 -1
- package/dist/orchestration/task-controls.d.ts +78 -8
- package/dist/orchestration/task-controls.d.ts.map +1 -1
- package/dist/orchestration/task-controls.js +6 -1
- package/dist/orchestration/task-controls.js.map +1 -1
- package/dist/orchestration/tasks/automation-session.d.ts +25 -0
- package/dist/orchestration/tasks/automation-session.d.ts.map +1 -0
- package/dist/orchestration/tasks/automation-session.js +68 -0
- package/dist/orchestration/tasks/automation-session.js.map +1 -0
- package/dist/orchestration/tasks/driver.d.ts.map +1 -1
- package/dist/orchestration/tasks/driver.js +3 -2
- package/dist/orchestration/tasks/driver.js.map +1 -1
- package/dist/orchestration/tasks/service.d.ts +68 -7
- package/dist/orchestration/tasks/service.d.ts.map +1 -1
- package/dist/orchestration/tasks/service.js +646 -44
- package/dist/orchestration/tasks/service.js.map +1 -1
- package/dist/orchestration/types.d.ts +82 -3
- package/dist/orchestration/types.d.ts.map +1 -1
- package/dist/orchestration/types.js.map +1 -1
- package/dist/session/codex-extension-discovery.d.ts.map +1 -1
- package/dist/session/codex-extension-discovery.js +4 -2
- package/dist/session/codex-extension-discovery.js.map +1 -1
- package/dist/session/codex-native-mcp-client.d.ts.map +1 -1
- package/dist/session/codex-native-mcp-client.js +2 -1
- package/dist/session/codex-native-mcp-client.js.map +1 -1
- package/dist/session/codex-process.d.ts.map +1 -1
- package/dist/session/codex-process.js +9 -4
- package/dist/session/codex-process.js.map +1 -1
- package/dist/session/process.d.ts +16 -4
- package/dist/session/process.d.ts.map +1 -1
- package/dist/session/process.js +153 -75
- package/dist/session/process.js.map +1 -1
- package/dist/session/runtime-profile.d.ts +10 -5
- package/dist/session/runtime-profile.d.ts.map +1 -1
- package/dist/session/runtime-profile.js +5 -5
- package/dist/session/runtime-profile.js.map +1 -1
- package/dist/session/worker-extensions.d.ts.map +1 -1
- package/dist/session/worker-extensions.js +2 -1
- package/dist/session/worker-extensions.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/dashboard-client.d.ts.map +1 -1
- package/dist/ui/dashboard-client.js +33 -3
- package/dist/ui/dashboard-client.js.map +1 -1
- package/dist/ui/web-ui.js +1 -1
- package/lib/automation/browser-thinking.cjs +9 -0
- package/lib/automation/browser-thinking.d.cts +2 -0
- package/lib/automation/computer-thinking.cjs +10 -0
- package/lib/automation/computer-thinking.d.cts +2 -0
- package/lib/automation/index.cjs +47 -0
- package/lib/automation/index.d.cts +3 -0
- package/lib/automation/reasoning-instructions.cjs +5 -0
- package/lib/automation/thinking.cjs +35 -0
- package/lib/automation/thinking.d.cts +2 -0
- package/mcp/capability-catalog.ts +2 -2
- package/mcp/server.ts +1 -1
- package/mcp/tools/tasks/module.ts +9 -0
- package/package.json +5 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computer-inputs.d.ts","sourceRoot":"","sources":["../../src/jev/computer-inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,eAAO,MAAM,cAAc;;;;;;mBAAuN,CAAC;AACnP,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAmkB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.COMPUTER_INPUTS_SCHEMA = exports.ComputerInputs = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.ComputerInputs = zod_1.z.array(zod_1.z.object({ application: zod_1.z.string().min(1).max(200), label: zod_1.z.string().min(1).max(500), text: zod_1.z.string().max(2000), role: zod_1.z.string().max(100).optional(), windowTitle: zod_1.z.string().max(500).optional() }).strict()).max(30);
|
|
6
|
+
exports.COMPUTER_INPUTS_SCHEMA = { type: 'array', maxItems: 30, description: 'Computer tasks only. Prepare literal field values from the user request so the loop need not infer them again. Match application bundle ID and field label from evidence; do not invent personal facts. Resubmit the complete list on a goal update.', items: { type: 'object', additionalProperties: false, required: ['application', 'label', 'text'], properties: { application: { type: 'string', maxLength: 200 }, label: { type: 'string', maxLength: 500 }, text: { type: 'string', maxLength: 2000 }, role: { type: 'string', maxLength: 100 }, windowTitle: { type: 'string', maxLength: 500 } } } };
|
|
7
|
+
//# sourceMappingURL=computer-inputs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computer-inputs.js","sourceRoot":"","sources":["../../src/jev/computer-inputs.ts"],"names":[],"mappings":";;;AAAA,6BAAsB;AACT,QAAA,cAAc,GAAC,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC,EAAC,WAAW,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAC,KAAK,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAC,IAAI,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAC,WAAW,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACtO,QAAA,sBAAsB,GAAC,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,EAAE,EAAC,WAAW,EAAC,sPAAsP,EAAC,KAAK,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,oBAAoB,EAAC,KAAK,EAAC,QAAQ,EAAC,CAAC,aAAa,EAAC,OAAO,EAAC,MAAM,CAAC,EAAC,UAAU,EAAC,EAAC,WAAW,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,GAAG,EAAC,EAAC,KAAK,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,GAAG,EAAC,EAAC,IAAI,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,EAAC,IAAI,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,GAAG,EAAC,EAAC,WAAW,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jev/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.validateBrowserIntegration = exports.BrowserConnectorRegistry = void 0;
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
__exportStar(require("./validation"), exports);
|
|
20
|
+
__exportStar(require("./service"), exports);
|
|
21
|
+
__exportStar(require("./browser-contract"), exports);
|
|
22
|
+
var browser_connector_1 = require("./browser-connector");
|
|
23
|
+
Object.defineProperty(exports, "BrowserConnectorRegistry", { enumerable: true, get: function () { return browser_connector_1.BrowserConnectorRegistry; } });
|
|
24
|
+
Object.defineProperty(exports, "validateBrowserIntegration", { enumerable: true, get: function () { return browser_connector_1.validateBrowserIntegration; } });
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jev/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,+CAA6B;AAC7B,4CAA0B;AAC1B,qDAAmC;AACnC,yDAA2F;AAAlF,6HAAA,wBAAwB,OAAA;AAAE,+HAAA,0BAA0B,OAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Most bytes a relay grant list may take; larger replies are rejected unread. */
|
|
2
|
+
export declare const RELAY_GRANTS_MAX_BYTES = 262144;
|
|
3
|
+
/**
|
|
4
|
+
* A relay's grant list, read with a byte cap while streaming (never buffered
|
|
5
|
+
* whole first) and parsed without throwing raw SyntaxErrors. Any malformed
|
|
6
|
+
* reply becomes the caller's own discovery code.
|
|
7
|
+
*/
|
|
8
|
+
export declare function readRelayGrants(response: Response, invalid: string): Promise<any[]>;
|
|
9
|
+
//# sourceMappingURL=relay-grants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-grants.d.ts","sourceRoot":"","sources":["../../src/jev/relay-grants.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAC7C;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAoBzF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RELAY_GRANTS_MAX_BYTES = void 0;
|
|
4
|
+
exports.readRelayGrants = readRelayGrants;
|
|
5
|
+
/** Most bytes a relay grant list may take; larger replies are rejected unread. */
|
|
6
|
+
exports.RELAY_GRANTS_MAX_BYTES = 262144;
|
|
7
|
+
/**
|
|
8
|
+
* A relay's grant list, read with a byte cap while streaming (never buffered
|
|
9
|
+
* whole first) and parsed without throwing raw SyntaxErrors. Any malformed
|
|
10
|
+
* reply becomes the caller's own discovery code.
|
|
11
|
+
*/
|
|
12
|
+
async function readRelayGrants(response, invalid) {
|
|
13
|
+
const declared = Number(response.headers.get('content-length'));
|
|
14
|
+
if (Number.isFinite(declared) && declared > exports.RELAY_GRANTS_MAX_BYTES) {
|
|
15
|
+
void response.body?.cancel().catch(() => undefined);
|
|
16
|
+
throw Error(invalid);
|
|
17
|
+
}
|
|
18
|
+
const reader = response.body?.getReader();
|
|
19
|
+
if (!reader)
|
|
20
|
+
throw Error(invalid);
|
|
21
|
+
const chunks = [];
|
|
22
|
+
let bytes = 0;
|
|
23
|
+
try {
|
|
24
|
+
for (;;) {
|
|
25
|
+
const chunk = await reader.read();
|
|
26
|
+
if (chunk.done)
|
|
27
|
+
break;
|
|
28
|
+
bytes += chunk.value.length;
|
|
29
|
+
if (bytes > exports.RELAY_GRANTS_MAX_BYTES)
|
|
30
|
+
throw Error(invalid);
|
|
31
|
+
chunks.push(chunk.value);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
await reader.cancel().catch(() => undefined);
|
|
36
|
+
reader.releaseLock();
|
|
37
|
+
}
|
|
38
|
+
let body;
|
|
39
|
+
try {
|
|
40
|
+
body = JSON.parse(Buffer.concat(chunks).toString('utf8'));
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
throw Error(invalid);
|
|
44
|
+
}
|
|
45
|
+
if (!Array.isArray(body?.grants))
|
|
46
|
+
throw Error(invalid);
|
|
47
|
+
return body.grants;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=relay-grants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-grants.js","sourceRoot":"","sources":["../../src/jev/relay-grants.ts"],"names":[],"mappings":";;;AAOA,0CAoBC;AA3BD,kFAAkF;AACrE,QAAA,sBAAsB,GAAG,MAAM,CAAC;AAC7C;;;;GAIG;AACI,KAAK,UAAU,eAAe,CAAC,QAAkB,EAAE,OAAe;IACvE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,8BAAsB,EAAE,CAAC;QAAC,KAAK,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAAC,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAClJ,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;IAC1C,IAAI,CAAC,MAAM;QAAE,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC;QACH,SAAS,CAAC;YACR,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,IAAI;gBAAE,MAAM;YACtB,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YAC5B,IAAI,KAAK,GAAG,8BAAsB;gBAAE,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;YACzD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;YAAS,CAAC;QAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAAC,CAAC;IACjF,IAAI,IAAS,CAAC;IACd,IAAI,CAAC;QAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAClG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { JevConfig, JevConnection, JevContext, JevEvaluationEvent, JevRequest, JevResult } from './types';
|
|
2
|
+
export declare function jevEndpoint(connection: JevConnection, provider: JevConfig['provider']): URL;
|
|
3
|
+
export declare function resolveDirectJevConnection(config: JevConfig): Promise<JevConnection>;
|
|
4
|
+
interface Options {
|
|
5
|
+
getConfig: () => JevConfig | undefined;
|
|
6
|
+
resolveConnection?: (config: JevConfig) => Promise<JevConnection>;
|
|
7
|
+
fetch?: typeof fetch;
|
|
8
|
+
onEvaluation?: (event: JevEvaluationEvent) => void;
|
|
9
|
+
}
|
|
10
|
+
/** The single queue is shared across config generations. No retries or source fallback. */
|
|
11
|
+
export declare class JevService {
|
|
12
|
+
private readonly options;
|
|
13
|
+
private active;
|
|
14
|
+
private queue;
|
|
15
|
+
private requests;
|
|
16
|
+
constructor(options: Options);
|
|
17
|
+
evaluate(input: JevRequest, context: JevContext): Promise<JevResult>;
|
|
18
|
+
private run;
|
|
19
|
+
private authorized;
|
|
20
|
+
private errorMetadata;
|
|
21
|
+
private readResponse;
|
|
22
|
+
private abortable;
|
|
23
|
+
private acquire;
|
|
24
|
+
private drain;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/jev/service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAA0B,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIlI,wBAAgB,WAAW,CAAC,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,GAAG,CAS3F;AACD,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAQ1F;AACD,UAAU,OAAO;IACf,SAAS,EAAE,MAAM,SAAS,GAAG,SAAS,CAAC;IACvC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAClE,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACpD;AAGD,2FAA2F;AAC3F,qBAAa,UAAU;IAIT,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,QAAQ,CAAiG;gBACpF,OAAO,EAAE,OAAO;IAC7C,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;YAoCtD,GAAG;IAuDjB,OAAO,CAAC,UAAU;IAGlB,OAAO,CAAC,aAAa;YAKP,YAAY;IAU1B,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,KAAK;CAOd"}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JevService = void 0;
|
|
4
|
+
exports.jevEndpoint = jevEndpoint;
|
|
5
|
+
exports.resolveDirectJevConnection = resolveDirectJevConnection;
|
|
6
|
+
const node_crypto_1 = require("node:crypto");
|
|
7
|
+
const promises_1 = require("node:fs/promises");
|
|
8
|
+
const types_1 = require("./types");
|
|
9
|
+
const validation_1 = require("./validation");
|
|
10
|
+
const child_env_1 = require("./child-env");
|
|
11
|
+
function jevEndpoint(connection, provider) {
|
|
12
|
+
let url;
|
|
13
|
+
try {
|
|
14
|
+
url = new URL(connection.baseUrl);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
throw new types_1.JevError('INVALID_CONFIG', 'Invalid Jev endpoint URL.');
|
|
18
|
+
}
|
|
19
|
+
const loopback = ['localhost', '127.0.0.1', '[::1]'].includes(url.hostname);
|
|
20
|
+
if ((url.protocol !== 'https:' && !(url.protocol === 'http:' && loopback)) || url.username || url.password || url.search || url.hash)
|
|
21
|
+
throw new types_1.JevError('INVALID_CONFIG', 'Jev requires HTTPS (or local loopback HTTP), without URL credentials, query or fragment.');
|
|
22
|
+
const suffix = provider === 'typesafe' ? '/v1/systemone' : '/v1/jev/evaluate';
|
|
23
|
+
const path = url.pathname.replace(/\/+$/, '');
|
|
24
|
+
url.pathname = path.endsWith(suffix) ? path : path.endsWith('/v1') ? `${path}${suffix.slice(3)}` : `${path}${suffix}`;
|
|
25
|
+
return url;
|
|
26
|
+
}
|
|
27
|
+
async function resolveDirectJevConnection(config) {
|
|
28
|
+
if (config.provider !== 'typesafe')
|
|
29
|
+
throw new types_1.JevError('INVALID_CONFIG', 'An upstream connection resolver is required.');
|
|
30
|
+
if (config.apiKeyFile && config.apiKeyEnv)
|
|
31
|
+
throw new types_1.JevError('INVALID_CONFIG', 'Choose one Jev credential reference.');
|
|
32
|
+
let apiKey = '';
|
|
33
|
+
try {
|
|
34
|
+
apiKey = config.apiKeyFile ? (await (0, promises_1.readFile)(config.apiKeyFile, 'utf8')).trim() : (process.env[config.apiKeyEnv ?? child_env_1.JEV_DEFAULT_API_KEY_ENV] ?? '').trim();
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
throw new types_1.JevError('AUTHENTICATION_FAILED', 'The Jev credential file cannot be read.');
|
|
38
|
+
}
|
|
39
|
+
if (!apiKey || apiKey.length > 16384 || /[\r\n]/.test(apiKey))
|
|
40
|
+
throw new types_1.JevError('AUTHENTICATION_FAILED', 'A valid Jev credential is required.');
|
|
41
|
+
return { baseUrl: config.baseUrl ?? 'https://api.typesafe.ai', apiKey };
|
|
42
|
+
}
|
|
43
|
+
const LEDGER_MAX = 4096, LEDGER_PER_PRINCIPAL = 1024;
|
|
44
|
+
/** The single queue is shared across config generations. No retries or source fallback. */
|
|
45
|
+
class JevService {
|
|
46
|
+
constructor(options) {
|
|
47
|
+
this.options = options;
|
|
48
|
+
this.active = 0;
|
|
49
|
+
this.queue = [];
|
|
50
|
+
this.requests = new Map();
|
|
51
|
+
}
|
|
52
|
+
evaluate(input, context) {
|
|
53
|
+
const config = structuredClone(this.options.getConfig());
|
|
54
|
+
if (!config?.enabled)
|
|
55
|
+
return Promise.reject(new types_1.JevError('DISABLED', 'Jev is not enabled.'));
|
|
56
|
+
try {
|
|
57
|
+
(0, validation_1.validateJevConfig)(config);
|
|
58
|
+
if (!context.principalId || !context.consumer)
|
|
59
|
+
throw new types_1.JevError('ACCESS_DENIED', 'An authenticated evaluation context is required.');
|
|
60
|
+
if (context.authorize && !context.authorize())
|
|
61
|
+
throw new types_1.JevError('ACCESS_DENIED', 'Jev access was denied.');
|
|
62
|
+
const request = (0, validation_1.validateJevRequest)(input, config);
|
|
63
|
+
const requestId = request.requestId ?? (0, node_crypto_1.randomUUID)();
|
|
64
|
+
const key = `${context.principalId.length}:${context.principalId}:${requestId}`;
|
|
65
|
+
const digest = (0, node_crypto_1.createHash)('sha256').update(JSON.stringify({ request, config })).digest('hex');
|
|
66
|
+
const now = Date.now();
|
|
67
|
+
for (const [k, entry] of this.requests)
|
|
68
|
+
if (entry.settled && entry.expires < now)
|
|
69
|
+
this.requests.delete(k);
|
|
70
|
+
const existing = this.requests.get(key);
|
|
71
|
+
if (existing) {
|
|
72
|
+
if (existing.digest !== digest)
|
|
73
|
+
throw new types_1.JevError('REQUEST_CONFLICT', 'Request ID already identifies a different evaluation.');
|
|
74
|
+
// Never let a second caller detach the original cancellation/deadline contract.
|
|
75
|
+
throw new types_1.JevError('REQUEST_CONFLICT', 'Request ID has already been submitted; inspect the original evaluation result.');
|
|
76
|
+
}
|
|
77
|
+
const result = () => this.run(request, requestId, config, context);
|
|
78
|
+
// Only a caller-chosen request ID can be submitted twice; a generated one
|
|
79
|
+
// needs no idempotency entry and must not consume the shared ledger.
|
|
80
|
+
if (!request.requestId)
|
|
81
|
+
return result();
|
|
82
|
+
// One principal's burst fills only its own share; settled entries yield to new work.
|
|
83
|
+
let own = 0;
|
|
84
|
+
for (const entry of this.requests.values())
|
|
85
|
+
if (entry.principalId === context.principalId)
|
|
86
|
+
own++;
|
|
87
|
+
if (own >= LEDGER_PER_PRINCIPAL)
|
|
88
|
+
throw new types_1.JevError('QUEUE_FULL', 'Too many recent Jev request IDs for this caller; retry later.');
|
|
89
|
+
for (const [k, entry] of this.requests) {
|
|
90
|
+
if (this.requests.size < LEDGER_MAX)
|
|
91
|
+
break;
|
|
92
|
+
if (entry.settled)
|
|
93
|
+
this.requests.delete(k);
|
|
94
|
+
}
|
|
95
|
+
if (this.requests.size >= LEDGER_MAX)
|
|
96
|
+
throw new types_1.JevError('QUEUE_FULL', 'The Jev request ledger is full; retry later.');
|
|
97
|
+
const entry = { principalId: context.principalId, digest, expires: now + 300000, settled: false };
|
|
98
|
+
const pending = result();
|
|
99
|
+
this.requests.set(key, entry);
|
|
100
|
+
void pending.then(() => { entry.settled = true; entry.expires = Date.now() + 300000; }, () => { entry.settled = true; entry.expires = Date.now() + 300000; });
|
|
101
|
+
return pending;
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
return Promise.reject(error);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
async run(request, requestId, config, context) {
|
|
108
|
+
const startedAt = Date.now();
|
|
109
|
+
const wireRequestId = (0, node_crypto_1.createHash)('sha256').update(`${context.principalId.length}:${context.principalId}:${requestId}`).digest('hex');
|
|
110
|
+
const controller = new AbortController();
|
|
111
|
+
let expired = false;
|
|
112
|
+
const timeout = Math.min(config.timeoutMs ?? 5000, context.deadlineMs === undefined ? Infinity : context.deadlineMs - startedAt);
|
|
113
|
+
const abort = () => controller.abort();
|
|
114
|
+
const timer = setTimeout(() => { expired = true; controller.abort(); }, Math.max(0, timeout));
|
|
115
|
+
context.signal?.addEventListener('abort', abort, { once: true });
|
|
116
|
+
if (context.signal?.aborted)
|
|
117
|
+
abort();
|
|
118
|
+
if (timeout <= 0) {
|
|
119
|
+
expired = true;
|
|
120
|
+
abort();
|
|
121
|
+
}
|
|
122
|
+
let acquired = false;
|
|
123
|
+
let result;
|
|
124
|
+
let failure;
|
|
125
|
+
try {
|
|
126
|
+
await this.acquire(config, controller.signal);
|
|
127
|
+
acquired = true;
|
|
128
|
+
this.authorized(context);
|
|
129
|
+
const connection = await this.abortable((this.options.resolveConnection ?? resolveDirectJevConnection)(config), controller.signal);
|
|
130
|
+
this.authorized(context);
|
|
131
|
+
if (!connection.apiKey || /[\r\n]/.test(connection.apiKey))
|
|
132
|
+
throw new types_1.JevError('AUTHENTICATION_FAILED', 'A valid Jev credential is required.');
|
|
133
|
+
const endpoint = jevEndpoint(connection, config.provider);
|
|
134
|
+
const response = await this.abortable((this.options.fetch ?? fetch)(endpoint, {
|
|
135
|
+
method: 'POST', redirect: 'error', signal: controller.signal,
|
|
136
|
+
headers: { authorization: `Bearer ${connection.apiKey}`, 'content-type': 'application/json', 'x-request-id': wireRequestId },
|
|
137
|
+
body: JSON.stringify({ model: config.model, state: request.state, questions: request.questions, ...(config.provider === 'upstream' ? { request_id: wireRequestId } : {}) }),
|
|
138
|
+
}), controller.signal);
|
|
139
|
+
if (!response.ok) {
|
|
140
|
+
let code = response.status === 401 ? 'AUTHENTICATION_FAILED' : response.status === 403 ? 'ACCESS_DENIED' : response.status === 402 ? 'QUOTA_EXCEEDED' : response.status === 429 ? 'RATE_LIMITED' : response.status === 409 ? 'REQUEST_CONFLICT' : response.status === 504 ? 'DEADLINE_EXCEEDED' : response.status === 404 ? 'MODEL_UNAVAILABLE' : response.status === 400 || response.status === 413 || response.status === 422 ? 'INVALID_REQUEST' : 'PROVIDER_UNAVAILABLE';
|
|
141
|
+
const metadata = this.errorMetadata(response);
|
|
142
|
+
// Read only bounded structured codes/reset metadata. Provider prose can echo secrets or state.
|
|
143
|
+
if (config.provider === 'upstream' && response.headers.get('content-type')?.includes('application/json')) {
|
|
144
|
+
try {
|
|
145
|
+
const body = await this.abortable(this.readResponse(response, 16384), controller.signal);
|
|
146
|
+
const mapped = { QUOTA_EXHAUSTED: 'QUOTA_EXCEEDED', QUOTA_EXCEEDED: 'QUOTA_EXCEEDED', MODEL_DISABLED: 'MODEL_UNAVAILABLE', UNKNOWN_MODEL: 'MODEL_UNAVAILABLE', UPSTREAM_AUTH_ERROR: 'AUTHENTICATION_FAILED', UPSTREAM_RATE_LIMITED: 'RATE_LIMITED', REQUEST_CONFLICT: 'REQUEST_CONFLICT', UPSTREAM_TIMEOUT: 'OUTCOME_UNKNOWN', UPSTREAM_OUTCOME_UNKNOWN: 'OUTCOME_UNKNOWN', CANCELLED_OUTCOME_UNKNOWN: 'OUTCOME_UNKNOWN', RESERVATION_UNKNOWN: 'OUTCOME_UNKNOWN', SETTLEMENT_UNKNOWN: 'OUTCOME_UNKNOWN' };
|
|
147
|
+
if (body?.error?.code && Object.prototype.hasOwnProperty.call(mapped, body.error.code))
|
|
148
|
+
code = mapped[body.error.code];
|
|
149
|
+
const reset = body?.error?.resets_at ?? body?.error?.resetAt;
|
|
150
|
+
if (typeof reset === 'string' && reset.length < 128 && /^[\w\s,:.+-]+$/.test(reset))
|
|
151
|
+
metadata.resetAt = reset;
|
|
152
|
+
}
|
|
153
|
+
catch { /* Keep the HTTP failure; never turn a malformed error into success. */ }
|
|
154
|
+
}
|
|
155
|
+
else
|
|
156
|
+
void response.body?.cancel().catch(() => undefined);
|
|
157
|
+
throw new types_1.JevError(code, code === 'OUTCOME_UNKNOWN' ? 'Jev outcome and charges require reconciliation. Do not retry automatically.' : `Jev evaluation failed (HTTP ${response.status}).`, { status: response.status, ...metadata });
|
|
158
|
+
}
|
|
159
|
+
const raw = await this.abortable(this.readResponse(response), controller.signal);
|
|
160
|
+
result = { ...(0, validation_1.validateJevResponse)(raw, request, config.model, wireRequestId), requestId };
|
|
161
|
+
this.authorized(context);
|
|
162
|
+
if (controller.signal.aborted)
|
|
163
|
+
throw new types_1.JevError('CANCELLED', 'Jev evaluation cancelled.');
|
|
164
|
+
return result;
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
failure = controller.signal.aborted ? new types_1.JevError(expired ? 'DEADLINE_EXCEEDED' : 'CANCELLED', expired ? 'Jev evaluation deadline exceeded.' : 'Jev evaluation cancelled.') : error instanceof types_1.JevError ? error : new types_1.JevError('PROVIDER_UNAVAILABLE', 'Jev could not complete the evaluation.');
|
|
168
|
+
throw failure;
|
|
169
|
+
}
|
|
170
|
+
finally {
|
|
171
|
+
clearTimeout(timer);
|
|
172
|
+
context.signal?.removeEventListener('abort', abort);
|
|
173
|
+
if (acquired) {
|
|
174
|
+
this.active--;
|
|
175
|
+
this.drain();
|
|
176
|
+
}
|
|
177
|
+
try {
|
|
178
|
+
this.options.onEvaluation?.({ requestId, principalId: context.principalId, consumer: context.consumer, agentId: context.agentId, sessionId: context.sessionId, taskId: context.taskId, requestedModel: config.model, model: result?.model, startedAt, elapsedMs: Date.now() - startedAt, outcome: failure ? 'failed' : 'completed', errorCode: failure?.code, validationReason: failure?.metadata.validationReason, usage: result?.usage, billing: result?.billing });
|
|
179
|
+
}
|
|
180
|
+
catch { /* Accounting observers cannot change an already-issued inference outcome. */ }
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
authorized(context) {
|
|
184
|
+
if (!this.options.getConfig()?.enabled || (context.authorize && !context.authorize()))
|
|
185
|
+
throw new types_1.JevError('ACCESS_DENIED', 'Jev access was revoked.');
|
|
186
|
+
}
|
|
187
|
+
errorMetadata(response) {
|
|
188
|
+
const retryAfter = response.headers.get('retry-after');
|
|
189
|
+
const resetAt = response.headers.get('x-ratelimit-reset');
|
|
190
|
+
return { ...(retryAfter && retryAfter.length < 128 && /^[\w\s,:.+-]+$/.test(retryAfter) ? { retryAfter } : {}), ...(resetAt && resetAt.length < 128 && /^[\w\s,:.+-]+$/.test(resetAt) ? { resetAt } : {}) };
|
|
191
|
+
}
|
|
192
|
+
async readResponse(response, maxBytes = 2097152) {
|
|
193
|
+
if (!response.headers.get('content-type')?.toLowerCase().includes('application/json'))
|
|
194
|
+
throw new types_1.JevError('INVALID_RESPONSE', 'Jev returned a non-JSON response.');
|
|
195
|
+
const reader = response.body?.getReader();
|
|
196
|
+
if (!reader)
|
|
197
|
+
throw new types_1.JevError('INVALID_RESPONSE', 'Jev returned an empty response.');
|
|
198
|
+
const chunks = [];
|
|
199
|
+
let bytes = 0;
|
|
200
|
+
try {
|
|
201
|
+
for (;;) {
|
|
202
|
+
const chunk = await reader.read();
|
|
203
|
+
if (chunk.done)
|
|
204
|
+
break;
|
|
205
|
+
bytes += chunk.value.length;
|
|
206
|
+
if (bytes > maxBytes)
|
|
207
|
+
throw new types_1.JevError('INVALID_RESPONSE', 'Jev response exceeds the byte limit.');
|
|
208
|
+
chunks.push(chunk.value);
|
|
209
|
+
}
|
|
210
|
+
try {
|
|
211
|
+
return JSON.parse(Buffer.concat(chunks).toString('utf8'));
|
|
212
|
+
}
|
|
213
|
+
catch {
|
|
214
|
+
throw new types_1.JevError('INVALID_RESPONSE', 'Jev returned malformed JSON.');
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
finally {
|
|
218
|
+
await reader.cancel().catch(() => undefined);
|
|
219
|
+
reader.releaseLock();
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
abortable(promise, signal) {
|
|
223
|
+
return new Promise((resolve, reject) => {
|
|
224
|
+
const abort = () => reject(new types_1.JevError('CANCELLED', 'Jev evaluation cancelled.'));
|
|
225
|
+
if (signal.aborted) {
|
|
226
|
+
void promise.catch(() => undefined);
|
|
227
|
+
abort();
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
signal.addEventListener('abort', abort, { once: true });
|
|
231
|
+
promise.then(resolve, reject).finally(() => signal.removeEventListener('abort', abort));
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
acquire(config, signal) {
|
|
235
|
+
if (signal.aborted)
|
|
236
|
+
return Promise.reject(new types_1.JevError('CANCELLED', 'Jev evaluation cancelled.'));
|
|
237
|
+
const limit = config.maxConcurrentRequests ?? 4;
|
|
238
|
+
if (!this.queue.length && this.active < limit) {
|
|
239
|
+
this.active++;
|
|
240
|
+
return Promise.resolve();
|
|
241
|
+
}
|
|
242
|
+
if (this.queue.length >= (config.maxQueueSize ?? 16))
|
|
243
|
+
return Promise.reject(new types_1.JevError('QUEUE_FULL', 'Jev evaluation queue is full.'));
|
|
244
|
+
return new Promise((resolve, reject) => {
|
|
245
|
+
const waiter = { limit, accept: resolve, reject, signal, abort: () => { this.queue = this.queue.filter(x => x !== waiter); reject(new types_1.JevError('CANCELLED', 'Jev evaluation cancelled.')); this.drain(); } };
|
|
246
|
+
this.queue.push(waiter);
|
|
247
|
+
signal.addEventListener('abort', waiter.abort, { once: true });
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
drain() {
|
|
251
|
+
while (this.queue.length && this.active < this.queue[0].limit) {
|
|
252
|
+
const next = this.queue.shift();
|
|
253
|
+
next.signal.removeEventListener('abort', next.abort);
|
|
254
|
+
if (next.signal.aborted) {
|
|
255
|
+
next.reject(new types_1.JevError('CANCELLED', 'Jev evaluation cancelled.'));
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
258
|
+
this.active++;
|
|
259
|
+
next.accept();
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
exports.JevService = JevService;
|
|
264
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/jev/service.ts"],"names":[],"mappings":";;;AAMA,kCASC;AACD,gEAQC;AAxBD,6CAAqD;AACrD,+CAA4C;AAC5C,mCAAkI;AAClI,6CAA0F;AAC1F,2CAAsD;AAEtD,SAAgB,WAAW,CAAC,UAAyB,EAAE,QAA+B;IACpF,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QAAC,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,IAAI,gBAAQ,CAAC,gBAAgB,EAAE,2BAA2B,CAAC,CAAC;IAAC,CAAC;IACvH,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5E,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI;QAAE,MAAM,IAAI,gBAAQ,CAAC,gBAAgB,EAAE,0FAA0F,CAAC,CAAC;IACvQ,MAAM,MAAM,GAAG,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAC9E,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9C,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;IACtH,OAAO,GAAG,CAAC;AACb,CAAC;AACM,KAAK,UAAU,0BAA0B,CAAC,MAAiB;IAChE,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU;QAAE,MAAM,IAAI,gBAAQ,CAAC,gBAAgB,EAAE,8CAA8C,CAAC,CAAC;IACzH,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS;QAAE,MAAM,IAAI,gBAAQ,CAAC,gBAAgB,EAAE,sCAAsC,CAAC,CAAC;IACxH,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC;QAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,IAAA,mBAAQ,EAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,mCAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IAClK,MAAM,CAAC;QAAC,MAAM,IAAI,gBAAQ,CAAC,uBAAuB,EAAE,yCAAyC,CAAC,CAAC;IAAC,CAAC;IACjG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,gBAAQ,CAAC,uBAAuB,EAAE,qCAAqC,CAAC,CAAC;IAClJ,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,yBAAyB,EAAE,MAAM,EAAE,CAAC;AAC1E,CAAC;AAOD,MAAM,UAAU,GAAG,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAAC;AAErD,2FAA2F;AAC3F,MAAa,UAAU;IAIrB,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAHrC,WAAM,GAAG,CAAC,CAAC;QACX,UAAK,GAAa,EAAE,CAAC;QACrB,aAAQ,GAAG,IAAI,GAAG,EAAsF,CAAC;IACjE,CAAC;IACjD,QAAQ,CAAC,KAAiB,EAAE,OAAmB;QAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,EAAE,OAAO;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,gBAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC;YACH,IAAA,8BAAiB,EAAC,MAAM,CAAC,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAAE,MAAM,IAAI,gBAAQ,CAAC,eAAe,EAAE,kDAAkD,CAAC,CAAC;YACvI,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBAAE,MAAM,IAAI,gBAAQ,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAC;YAC7G,MAAM,OAAO,GAAG,IAAA,+BAAkB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAA,wBAAU,GAAE,CAAC;YACpD,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,IAAI,OAAO,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC;YAChF,MAAM,MAAM,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9F,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,GAAG,GAAG;oBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1G,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM;oBAAE,MAAM,IAAI,gBAAQ,CAAC,kBAAkB,EAAE,uDAAuD,CAAC,CAAC;gBAChI,gFAAgF;gBAChF,MAAM,IAAI,gBAAQ,CAAC,kBAAkB,EAAE,gFAAgF,CAAC,CAAC;YAC3H,CAAC;YACD,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACnE,0EAA0E;YAC1E,qEAAqE;YACrE,IAAI,CAAC,OAAO,CAAC,SAAS;gBAAE,OAAO,MAAM,EAAE,CAAC;YACxC,qFAAqF;YACrF,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAAE,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW;oBAAE,GAAG,EAAE,CAAC;YACjG,IAAI,GAAG,IAAI,oBAAoB;gBAAE,MAAM,IAAI,gBAAQ,CAAC,YAAY,EAAE,+DAA+D,CAAC,CAAC;YACnI,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,UAAU;oBAAE,MAAM;gBAAC,IAAI,KAAK,CAAC,OAAO;oBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC;YACnI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU;gBAAE,MAAM,IAAI,gBAAQ,CAAC,YAAY,EAAE,8CAA8C,CAAC,CAAC;YACvH,MAAM,KAAK,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAClG,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9J,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACnD,CAAC;IACO,KAAK,CAAC,GAAG,CAAC,OAAmB,EAAE,SAAiB,EAAE,MAAiB,EAAE,OAAmB;QAC9F,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,aAAa,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,IAAI,OAAO,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrI,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;QACjI,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9F,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,KAAK,EAAE,CAAC;QACrC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YAAC,OAAO,GAAG,IAAI,CAAC;YAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QAC9C,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,MAA6B,CAAC;QAClC,IAAI,OAA6B,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YAAC,QAAQ,GAAG,IAAI,CAAC;YAC/D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,0BAA0B,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YACnI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,MAAM,IAAI,gBAAQ,CAAC,uBAAuB,EAAE,qCAAqC,CAAC,CAAC;YAC/I,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,QAAQ,EAAE;gBAC5E,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM;gBAC5D,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,UAAU,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE;gBAC5H,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;aAC5K,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,IAAI,IAAI,GAAiB,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,sBAAsB,CAAC;gBAC3d,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC9C,+FAA+F;gBAC/F,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACzG,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,MAAM,CAAoE,CAAC;wBAC5J,MAAM,MAAM,GAAgC,EAAC,eAAe,EAAC,gBAAgB,EAAC,cAAc,EAAC,gBAAgB,EAAC,cAAc,EAAC,mBAAmB,EAAC,aAAa,EAAC,mBAAmB,EAAC,mBAAmB,EAAC,uBAAuB,EAAC,qBAAqB,EAAC,cAAc,EAAC,gBAAgB,EAAC,kBAAkB,EAAC,gBAAgB,EAAC,iBAAiB,EAAC,wBAAwB,EAAC,iBAAiB,EAAC,yBAAyB,EAAC,iBAAiB,EAAC,mBAAmB,EAAC,iBAAiB,EAAC,kBAAkB,EAAC,iBAAiB,EAAC,CAAC;wBAC9e,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;4BAAE,IAAI,GAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACpH,MAAM,KAAK,GAAC,IAAI,EAAE,KAAK,EAAE,SAAS,IAAI,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;wBAC3D,IAAG,OAAO,KAAK,KAAG,QAAQ,IAAE,KAAK,CAAC,MAAM,GAAC,GAAG,IAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;4BAAE,QAAQ,CAAC,OAAO,GAAC,KAAK,CAAC;oBACrG,CAAC;oBAAC,MAAM,CAAC,CAAC,uEAAuE,CAAC,CAAC;gBACrF,CAAC;;oBAAM,KAAK,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC3D,MAAM,IAAI,gBAAQ,CAAC,IAAI,EAAE,IAAI,KAAG,iBAAiB,CAAA,CAAC,CAAA,6EAA6E,CAAA,CAAC,CAAA,+BAA+B,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;YAChO,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YACjF,MAAM,GAAG,EAAE,GAAG,IAAA,gCAAmB,EAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,KAAM,EAAE,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;YAC3F,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACzB,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,IAAI,gBAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;YAC5F,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,gBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,gBAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,gBAAQ,CAAC,sBAAsB,EAAE,wCAAwC,CAAC,CAAC;YAClS,MAAM,OAAO,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;YAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACzE,IAAI,QAAQ,EAAE,CAAC;gBAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,CAAC;YAC9C,IAAI,CAAC;gBAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,KAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,6EAA6E,CAAC,CAAC;QACziB,CAAC;IACH,CAAC;IACO,UAAU,CAAC,OAAmB;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAAE,MAAM,IAAI,gBAAQ,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAC;IACxJ,CAAC;IACO,aAAa,CAAC,QAAkB;QACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC1D,OAAO,EAAE,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9M,CAAC;IACO,KAAK,CAAC,YAAY,CAAC,QAAkB,EAAE,QAAQ,GAAC,OAAO;QAC7D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAAE,MAAM,IAAI,gBAAQ,CAAC,kBAAkB,EAAE,mCAAmC,CAAC,CAAC;QACnK,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,gBAAQ,CAAC,kBAAkB,EAAE,iCAAiC,CAAC,CAAC;QACvF,MAAM,MAAM,GAAiB,EAAE,CAAC;QAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,SAAS,CAAC;gBAAC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAAC,IAAI,KAAK,CAAC,IAAI;oBAAE,MAAM;gBAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAC,IAAI,KAAK,GAAG,QAAQ;oBAAE,MAAM,IAAI,gBAAQ,CAAC,kBAAkB,EAAE,sCAAsC,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YACnO,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,MAAM,IAAI,gBAAQ,CAAC,kBAAkB,EAAE,8BAA8B,CAAC,CAAC;YAAC,CAAC;QACtJ,CAAC;gBAAS,CAAC;YAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAAC,CAAC;IACnF,CAAC;IACO,SAAS,CAAI,OAAmB,EAAE,MAAmB;QAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,gBAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC,CAAC;YACnF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAAC,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAAC,KAAK,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC7E,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;IACL,CAAC;IACO,OAAO,CAAC,MAAiB,EAAE,MAAmB;QACpD,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,gBAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC,CAAC;QAClG,MAAM,KAAK,GAAG,MAAM,CAAC,qBAAqB,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAAC,CAAC;QAC3F,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,gBAAQ,CAAC,YAAY,EAAE,+BAA+B,CAAC,CAAC,CAAC;QACzI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,gBAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;IACL,CAAC;IACO,KAAK;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAG,CAAC;YAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACvF,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,CAAC,MAAM,CAAC,IAAI,gBAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YAC3G,IAAI,CAAC,MAAM,EAAE,CAAC;YAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;CACF;AA3ID,gCA2IC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ThinkingConfig } from '../../lib/automation/thinking.cjs';
|
|
2
|
+
import type { BrowserTextHelperConfig } from './browser-contract';
|
|
3
|
+
/** Credentials stay in the host; reasoning instructions belong to the built-in controller. */
|
|
4
|
+
export declare function thinkingProvider(config: BrowserTextHelperConfig): Promise<ThinkingConfig>;
|
|
5
|
+
/** Provider transport/config errors are blockers, never a request for missing user facts. */
|
|
6
|
+
export declare function thinkingFailure(error: unknown): Error;
|
|
7
|
+
//# sourceMappingURL=thinking-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thinking-provider.d.ts","sourceRoot":"","sources":["../../src/jev/thinking-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,oBAAoB,CAAC;AAChE,8FAA8F;AAC9F,wBAAsB,gBAAgB,CAAC,MAAM,EAAC,uBAAuB,GAAE,OAAO,CAAC,cAAc,CAAC,CAM7F;AAED,6FAA6F;AAC7F,wBAAgB,eAAe,CAAC,KAAK,EAAC,OAAO,GAAE,KAAK,CAGnD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.thinkingProvider = thinkingProvider;
|
|
4
|
+
exports.thinkingFailure = thinkingFailure;
|
|
5
|
+
const promises_1 = require("node:fs/promises");
|
|
6
|
+
/** Credentials stay in the host; reasoning instructions belong to the built-in controller. */
|
|
7
|
+
async function thinkingProvider(config) {
|
|
8
|
+
let apiKey;
|
|
9
|
+
if (config.apiKeyFile) {
|
|
10
|
+
if ((await (0, promises_1.stat)(config.apiKeyFile)).size > 16384)
|
|
11
|
+
throw Error('THINKING_CREDENTIAL_INVALID');
|
|
12
|
+
apiKey = (await (0, promises_1.readFile)(config.apiKeyFile, 'utf8')).trim();
|
|
13
|
+
}
|
|
14
|
+
else
|
|
15
|
+
apiKey = process.env[config.apiKeyEnv ?? ''] ?? '';
|
|
16
|
+
if (!apiKey || apiKey.length > 16384 || /[\x00-\x20\x7f]/.test(apiKey))
|
|
17
|
+
throw Error('THINKING_CREDENTIAL_UNAVAILABLE');
|
|
18
|
+
return { api: config.api, baseUrl: config.baseUrl, model: config.model, apiKey };
|
|
19
|
+
}
|
|
20
|
+
/** Provider transport/config errors are blockers, never a request for missing user facts. */
|
|
21
|
+
function thinkingFailure(error) {
|
|
22
|
+
const code = error instanceof Error ? error.message : '';
|
|
23
|
+
return Error(/^THINKING_(?:HTTP_[0-9]{3}|[A-Z_]{1,64})$/.test(code) ? code : 'THINKING_PROVIDER_FAILED');
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=thinking-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thinking-provider.js","sourceRoot":"","sources":["../../src/jev/thinking-provider.ts"],"names":[],"mappings":";;AAIA,4CAMC;AAGD,0CAGC;AAhBD,+CAA+C;AAG/C,8FAA8F;AACvF,KAAK,UAAU,gBAAgB,CAAC,MAA8B;IACpE,IAAI,MAAa,CAAC;IAClB,IAAG,MAAM,CAAC,UAAU,EAAC,CAAC;QAAA,IAAG,CAAC,MAAM,IAAA,eAAI,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAC,KAAK;YAAC,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAAA,MAAM,GAAC,CAAC,MAAM,IAAA,mBAAQ,EAAC,MAAM,CAAC,UAAU,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAAA,CAAC;;QACpK,MAAM,GAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAE,EAAE,CAAC,IAAE,EAAE,CAAC;IAClD,IAAG,CAAC,MAAM,IAAE,MAAM,CAAC,MAAM,GAAC,KAAK,IAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;QAAC,MAAM,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC/G,OAAO,EAAC,GAAG,EAAC,MAAM,CAAC,GAAG,EAAC,OAAO,EAAC,MAAM,CAAC,OAAO,EAAC,KAAK,EAAC,MAAM,CAAC,KAAK,EAAC,MAAM,EAAC,CAAC;AAC1E,CAAC;AAED,6FAA6F;AAC7F,SAAgB,eAAe,CAAC,KAAa;IAC5C,MAAM,IAAI,GAAC,KAAK,YAAY,KAAK,CAAA,CAAC,CAAA,KAAK,CAAC,OAAO,CAAA,CAAC,CAAA,EAAE,CAAC;IACnD,OAAO,KAAK,CAAC,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,0BAA0B,CAAC,CAAC;AACtG,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
export type JsonValue = null | boolean | number | string | JsonValue[] | {
|
|
2
|
+
[key: string]: JsonValue;
|
|
3
|
+
};
|
|
4
|
+
export type JevContent = string | JsonValue[] | {
|
|
5
|
+
[key: string]: JsonValue;
|
|
6
|
+
};
|
|
7
|
+
export type JevQuestion = {
|
|
8
|
+
type: 'noul';
|
|
9
|
+
instructions: JevContent;
|
|
10
|
+
criteria?: {
|
|
11
|
+
true?: JevContent;
|
|
12
|
+
false?: JevContent;
|
|
13
|
+
};
|
|
14
|
+
} | {
|
|
15
|
+
type: 'choice';
|
|
16
|
+
instructions: JevContent;
|
|
17
|
+
criteria: Record<string, JevContent | null>;
|
|
18
|
+
} | {
|
|
19
|
+
type: 'score';
|
|
20
|
+
instructions: JevContent;
|
|
21
|
+
criteria: JevContent[];
|
|
22
|
+
};
|
|
23
|
+
export type JevAnswer = {
|
|
24
|
+
type: 'noul';
|
|
25
|
+
noul: number;
|
|
26
|
+
} | {
|
|
27
|
+
type: 'choice';
|
|
28
|
+
choice: string;
|
|
29
|
+
confidence: number;
|
|
30
|
+
probabilities: Record<string, number>;
|
|
31
|
+
} | {
|
|
32
|
+
type: 'score';
|
|
33
|
+
score: number;
|
|
34
|
+
confidence: number;
|
|
35
|
+
probabilities: Record<string, number>;
|
|
36
|
+
legend: Record<string, string>;
|
|
37
|
+
};
|
|
38
|
+
export interface JevRequest {
|
|
39
|
+
state: JevContent;
|
|
40
|
+
questions: Record<string, JevQuestion>;
|
|
41
|
+
requestId?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface JevConfig {
|
|
44
|
+
/** Tool-free reasoning connection; instructions and output contracts live in Jev Loop. */
|
|
45
|
+
thinking?: import('./browser-contract').BrowserTextHelperConfig;
|
|
46
|
+
browser?: import('./browser-contract').BrowserIntegrationConfig;
|
|
47
|
+
enabled?: boolean;
|
|
48
|
+
provider?: 'typesafe' | 'upstream';
|
|
49
|
+
model?: string;
|
|
50
|
+
baseUrl?: string;
|
|
51
|
+
apiKeyFile?: string;
|
|
52
|
+
apiKeyEnv?: string;
|
|
53
|
+
timeoutMs?: number;
|
|
54
|
+
maxConcurrentRequests?: number;
|
|
55
|
+
maxQueueSize?: number;
|
|
56
|
+
maxInputBytes?: number;
|
|
57
|
+
maxQuestions?: number;
|
|
58
|
+
allowedAgentIds?: string[];
|
|
59
|
+
features?: Partial<Record<'computerTasks' | 'computerSteps' | 'browserTasks' | 'browserSteps', {
|
|
60
|
+
enabled?: boolean;
|
|
61
|
+
}>>;
|
|
62
|
+
}
|
|
63
|
+
export interface JevResult {
|
|
64
|
+
requestId: string;
|
|
65
|
+
requestedModel: string;
|
|
66
|
+
model: string;
|
|
67
|
+
answers: Record<string, JevAnswer>;
|
|
68
|
+
usage: {
|
|
69
|
+
input_tokens: number;
|
|
70
|
+
output_tokens: number;
|
|
71
|
+
};
|
|
72
|
+
billing?: {
|
|
73
|
+
charged_credits: number;
|
|
74
|
+
rate_version?: string;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export interface JevContext {
|
|
78
|
+
principalId: string;
|
|
79
|
+
consumer: string;
|
|
80
|
+
agentId?: string;
|
|
81
|
+
sessionId?: string;
|
|
82
|
+
taskId?: string;
|
|
83
|
+
signal?: AbortSignal;
|
|
84
|
+
deadlineMs?: number;
|
|
85
|
+
authorize?: () => boolean;
|
|
86
|
+
}
|
|
87
|
+
export interface JevConnection {
|
|
88
|
+
baseUrl: string;
|
|
89
|
+
apiKey: string;
|
|
90
|
+
}
|
|
91
|
+
export type JevErrorCode = 'DISABLED' | 'ACCESS_DENIED' | 'INVALID_CONFIG' | 'INVALID_REQUEST' | 'QUEUE_FULL' | 'CANCELLED' | 'DEADLINE_EXCEEDED' | 'AUTHENTICATION_FAILED' | 'MODEL_UNAVAILABLE' | 'QUOTA_EXCEEDED' | 'RATE_LIMITED' | 'PROVIDER_UNAVAILABLE' | 'INVALID_RESPONSE' | 'REQUEST_CONFLICT' | 'OUTCOME_UNKNOWN';
|
|
92
|
+
export declare class JevError extends Error {
|
|
93
|
+
readonly code: JevErrorCode;
|
|
94
|
+
readonly metadata: {
|
|
95
|
+
status?: number;
|
|
96
|
+
retryAfter?: string;
|
|
97
|
+
resetAt?: string;
|
|
98
|
+
validationReason?: string;
|
|
99
|
+
};
|
|
100
|
+
constructor(code: JevErrorCode, message: string, metadata?: {
|
|
101
|
+
status?: number;
|
|
102
|
+
retryAfter?: string;
|
|
103
|
+
resetAt?: string;
|
|
104
|
+
validationReason?: string;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
export interface JevEvaluationEvent {
|
|
108
|
+
requestId: string;
|
|
109
|
+
principalId: string;
|
|
110
|
+
consumer: string;
|
|
111
|
+
agentId?: string;
|
|
112
|
+
sessionId?: string;
|
|
113
|
+
taskId?: string;
|
|
114
|
+
requestedModel: string;
|
|
115
|
+
model?: string;
|
|
116
|
+
startedAt: number;
|
|
117
|
+
elapsedMs: number;
|
|
118
|
+
outcome: 'completed' | 'failed';
|
|
119
|
+
errorCode?: JevErrorCode;
|
|
120
|
+
validationReason?: string;
|
|
121
|
+
usage?: JevResult['usage'];
|
|
122
|
+
billing?: JevResult['billing'];
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/jev/types.ts"],"names":[],"mappings":"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"}
|