@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.
Files changed (345) hide show
  1. package/README.md +15 -0
  2. package/config.template.json +1 -1
  3. package/dist/agent/runner.d.ts +119 -11
  4. package/dist/agent/runner.d.ts.map +1 -1
  5. package/dist/agent/runner.js +58 -8
  6. package/dist/agent/runner.js.map +1 -1
  7. package/dist/api/browser-bindings-router.d.ts +6 -0
  8. package/dist/api/browser-bindings-router.d.ts.map +1 -0
  9. package/dist/api/browser-bindings-router.js +150 -0
  10. package/dist/api/browser-bindings-router.js.map +1 -0
  11. package/dist/api/connectors-router.js +1 -1
  12. package/dist/api/connectors-router.js.map +1 -1
  13. package/dist/api/gateway-router.d.ts.map +1 -1
  14. package/dist/api/gateway-router.js +30 -2
  15. package/dist/api/gateway-router.js.map +1 -1
  16. package/dist/api/jev-router.d.ts +8 -0
  17. package/dist/api/jev-router.d.ts.map +1 -0
  18. package/dist/api/jev-router.js +128 -0
  19. package/dist/api/jev-router.js.map +1 -0
  20. package/dist/api/router.d.ts.map +1 -1
  21. package/dist/api/router.js +53 -6
  22. package/dist/api/router.js.map +1 -1
  23. package/dist/api/voice-router.d.ts.map +1 -1
  24. package/dist/api/voice-router.js +42 -3
  25. package/dist/api/voice-router.js.map +1 -1
  26. package/dist/automation/browser-command.d.ts +79 -0
  27. package/dist/automation/browser-command.d.ts.map +1 -0
  28. package/dist/automation/browser-command.js +118 -0
  29. package/dist/automation/browser-command.js.map +1 -0
  30. package/dist/automation/browser-outcome.d.ts +3 -0
  31. package/dist/automation/browser-outcome.d.ts.map +1 -0
  32. package/dist/automation/browser-outcome.js +78 -0
  33. package/dist/automation/browser-outcome.js.map +1 -0
  34. package/dist/automation/browser-steps.d.ts +33 -0
  35. package/dist/automation/browser-steps.d.ts.map +1 -0
  36. package/dist/automation/browser-steps.js +293 -0
  37. package/dist/automation/browser-steps.js.map +1 -0
  38. package/dist/automation/browser-trace.d.ts +60 -0
  39. package/dist/automation/browser-trace.d.ts.map +1 -0
  40. package/dist/automation/browser-trace.js +24 -0
  41. package/dist/automation/browser-trace.js.map +1 -0
  42. package/dist/automation/browser-use.d.ts +210 -0
  43. package/dist/automation/browser-use.d.ts.map +1 -0
  44. package/dist/automation/browser-use.js +1271 -0
  45. package/dist/automation/browser-use.js.map +1 -0
  46. package/dist/automation/command-speech.d.ts +33 -0
  47. package/dist/automation/command-speech.d.ts.map +1 -0
  48. package/dist/automation/command-speech.js +117 -0
  49. package/dist/automation/command-speech.js.map +1 -0
  50. package/dist/automation/command-steps.d.ts +35 -0
  51. package/dist/automation/command-steps.d.ts.map +1 -0
  52. package/dist/automation/command-steps.js +155 -0
  53. package/dist/automation/command-steps.js.map +1 -0
  54. package/dist/automation/computer-choice-ids.d.ts +7 -0
  55. package/dist/automation/computer-choice-ids.d.ts.map +1 -0
  56. package/dist/automation/computer-choice-ids.js +24 -0
  57. package/dist/automation/computer-choice-ids.js.map +1 -0
  58. package/dist/automation/computer-command.d.ts +126 -0
  59. package/dist/automation/computer-command.d.ts.map +1 -0
  60. package/dist/automation/computer-command.js +313 -0
  61. package/dist/automation/computer-command.js.map +1 -0
  62. package/dist/automation/computer-outcome.d.ts +8 -0
  63. package/dist/automation/computer-outcome.d.ts.map +1 -0
  64. package/dist/automation/computer-outcome.js +82 -0
  65. package/dist/automation/computer-outcome.js.map +1 -0
  66. package/dist/automation/computer-policy.d.ts +84 -0
  67. package/dist/automation/computer-policy.d.ts.map +1 -0
  68. package/dist/automation/computer-policy.js +56 -0
  69. package/dist/automation/computer-policy.js.map +1 -0
  70. package/dist/automation/computer-safety.d.ts +27 -0
  71. package/dist/automation/computer-safety.d.ts.map +1 -0
  72. package/dist/automation/computer-safety.js +47 -0
  73. package/dist/automation/computer-safety.js.map +1 -0
  74. package/dist/automation/computer-steps.d.ts +20 -0
  75. package/dist/automation/computer-steps.d.ts.map +1 -0
  76. package/dist/automation/computer-steps.js +251 -0
  77. package/dist/automation/computer-steps.js.map +1 -0
  78. package/dist/automation/computer-use.d.ts +315 -0
  79. package/dist/automation/computer-use.d.ts.map +1 -0
  80. package/dist/automation/computer-use.js +864 -0
  81. package/dist/automation/computer-use.js.map +1 -0
  82. package/dist/automation/direct-command.d.ts +51 -0
  83. package/dist/automation/direct-command.d.ts.map +1 -0
  84. package/dist/automation/direct-command.js +152 -0
  85. package/dist/automation/direct-command.js.map +1 -0
  86. package/dist/automation/interrupt.d.ts +4 -0
  87. package/dist/automation/interrupt.d.ts.map +1 -0
  88. package/dist/automation/interrupt.js +26 -0
  89. package/dist/automation/interrupt.js.map +1 -0
  90. package/dist/build-provenance.json +4 -4
  91. package/dist/child-env-exclusions.d.ts +4 -0
  92. package/dist/child-env-exclusions.d.ts.map +1 -0
  93. package/dist/child-env-exclusions.js +23 -0
  94. package/dist/child-env-exclusions.js.map +1 -0
  95. package/dist/cli/startup-diagnostics.d.ts.map +1 -1
  96. package/dist/cli/startup-diagnostics.js +19 -0
  97. package/dist/cli/startup-diagnostics.js.map +1 -1
  98. package/dist/config/loader.d.ts.map +1 -1
  99. package/dist/config/loader.js +4 -0
  100. package/dist/config/loader.js.map +1 -1
  101. package/dist/config/reload-policy.d.ts.map +1 -1
  102. package/dist/config/reload-policy.js +2 -1
  103. package/dist/config/reload-policy.js.map +1 -1
  104. package/dist/jev/automatic-browser-bindings.d.ts +15 -0
  105. package/dist/jev/automatic-browser-bindings.d.ts.map +1 -0
  106. package/dist/jev/automatic-browser-bindings.js +115 -0
  107. package/dist/jev/automatic-browser-bindings.js.map +1 -0
  108. package/dist/jev/browser-connector.d.ts +29 -0
  109. package/dist/jev/browser-connector.d.ts.map +1 -0
  110. package/dist/jev/browser-connector.js +347 -0
  111. package/dist/jev/browser-connector.js.map +1 -0
  112. package/dist/jev/browser-consent.d.ts +6 -0
  113. package/dist/jev/browser-consent.d.ts.map +1 -0
  114. package/dist/jev/browser-consent.js +50 -0
  115. package/dist/jev/browser-consent.js.map +1 -0
  116. package/dist/jev/browser-contract.d.ts +215 -0
  117. package/dist/jev/browser-contract.d.ts.map +1 -0
  118. package/dist/jev/browser-contract.js +10 -0
  119. package/dist/jev/browser-contract.js.map +1 -0
  120. package/dist/jev/browser-evidence-summary.d.ts +73 -0
  121. package/dist/jev/browser-evidence-summary.d.ts.map +1 -0
  122. package/dist/jev/browser-evidence-summary.js +22 -0
  123. package/dist/jev/browser-evidence-summary.js.map +1 -0
  124. package/dist/jev/browser-module-import.d.ts +3 -0
  125. package/dist/jev/browser-module-import.d.ts.map +1 -0
  126. package/dist/jev/browser-module-import.js +6 -0
  127. package/dist/jev/browser-module-import.js.map +1 -0
  128. package/dist/jev/child-env.d.ts +11 -0
  129. package/dist/jev/child-env.d.ts.map +1 -0
  130. package/dist/jev/child-env.js +60 -0
  131. package/dist/jev/child-env.js.map +1 -0
  132. package/dist/jev/computer-connector.d.ts +34 -0
  133. package/dist/jev/computer-connector.d.ts.map +1 -0
  134. package/dist/jev/computer-connector.js +82 -0
  135. package/dist/jev/computer-connector.js.map +1 -0
  136. package/dist/jev/computer-inputs.d.ts +41 -0
  137. package/dist/jev/computer-inputs.d.ts.map +1 -0
  138. package/dist/jev/computer-inputs.js +7 -0
  139. package/dist/jev/computer-inputs.js.map +1 -0
  140. package/dist/jev/index.d.ts +6 -0
  141. package/dist/jev/index.d.ts.map +1 -0
  142. package/dist/jev/index.js +25 -0
  143. package/dist/jev/index.js.map +1 -0
  144. package/dist/jev/relay-grants.d.ts +9 -0
  145. package/dist/jev/relay-grants.d.ts.map +1 -0
  146. package/dist/jev/relay-grants.js +49 -0
  147. package/dist/jev/relay-grants.js.map +1 -0
  148. package/dist/jev/service.d.ts +27 -0
  149. package/dist/jev/service.d.ts.map +1 -0
  150. package/dist/jev/service.js +264 -0
  151. package/dist/jev/service.js.map +1 -0
  152. package/dist/jev/thinking-provider.d.ts +7 -0
  153. package/dist/jev/thinking-provider.d.ts.map +1 -0
  154. package/dist/jev/thinking-provider.js +25 -0
  155. package/dist/jev/thinking-provider.js.map +1 -0
  156. package/dist/jev/types.d.ts +124 -0
  157. package/dist/jev/types.d.ts.map +1 -0
  158. package/dist/jev/types.js +13 -0
  159. package/dist/jev/types.js.map +1 -0
  160. package/dist/jev/validation.d.ts +45 -0
  161. package/dist/jev/validation.d.ts.map +1 -0
  162. package/dist/jev/validation.js +179 -0
  163. package/dist/jev/validation.js.map +1 -0
  164. package/dist/load-dotenv.d.ts.map +1 -1
  165. package/dist/load-dotenv.js +5 -1
  166. package/dist/load-dotenv.js.map +1 -1
  167. package/dist/orchestration/agent-tool-schemas.d.ts.map +1 -1
  168. package/dist/orchestration/agent-tool-schemas.js +12 -7
  169. package/dist/orchestration/agent-tool-schemas.js.map +1 -1
  170. package/dist/orchestration/background-work.d.ts +1 -0
  171. package/dist/orchestration/background-work.d.ts.map +1 -1
  172. package/dist/orchestration/background-work.js +1 -0
  173. package/dist/orchestration/background-work.js.map +1 -1
  174. package/dist/orchestration/bridge.d.ts +4 -0
  175. package/dist/orchestration/bridge.d.ts.map +1 -1
  176. package/dist/orchestration/bridge.js +176 -41
  177. package/dist/orchestration/bridge.js.map +1 -1
  178. package/dist/orchestration/browser-fields.d.ts +25 -0
  179. package/dist/orchestration/browser-fields.d.ts.map +1 -0
  180. package/dist/orchestration/browser-fields.js +23 -0
  181. package/dist/orchestration/browser-fields.js.map +1 -0
  182. package/dist/orchestration/browser-routing.d.ts +1 -1
  183. package/dist/orchestration/browser-routing.d.ts.map +1 -1
  184. package/dist/orchestration/browser-routing.js +7 -3
  185. package/dist/orchestration/browser-routing.js.map +1 -1
  186. package/dist/orchestration/capabilities.d.ts +4 -1
  187. package/dist/orchestration/capabilities.d.ts.map +1 -1
  188. package/dist/orchestration/capabilities.js +15 -9
  189. package/dist/orchestration/capabilities.js.map +1 -1
  190. package/dist/orchestration/channel-controls.js +1 -1
  191. package/dist/orchestration/channel-controls.js.map +1 -1
  192. package/dist/orchestration/cli-skills.d.ts.map +1 -1
  193. package/dist/orchestration/cli-skills.js +3 -2
  194. package/dist/orchestration/cli-skills.js.map +1 -1
  195. package/dist/orchestration/computer-end-screenshot.d.ts +11 -0
  196. package/dist/orchestration/computer-end-screenshot.d.ts.map +1 -0
  197. package/dist/orchestration/computer-end-screenshot.js +37 -0
  198. package/dist/orchestration/computer-end-screenshot.js.map +1 -0
  199. package/dist/orchestration/computer-prompt.d.ts +6 -0
  200. package/dist/orchestration/computer-prompt.d.ts.map +1 -0
  201. package/dist/orchestration/computer-prompt.js +24 -0
  202. package/dist/orchestration/computer-prompt.js.map +1 -0
  203. package/dist/orchestration/config.d.ts +17 -0
  204. package/dist/orchestration/config.d.ts.map +1 -1
  205. package/dist/orchestration/config.js +10 -4
  206. package/dist/orchestration/config.js.map +1 -1
  207. package/dist/orchestration/container-tool-schemas.d.ts +47 -3
  208. package/dist/orchestration/container-tool-schemas.d.ts.map +1 -1
  209. package/dist/orchestration/container-tool-schemas.js +41 -6
  210. package/dist/orchestration/container-tool-schemas.js.map +1 -1
  211. package/dist/orchestration/container.d.ts +4 -1
  212. package/dist/orchestration/container.d.ts.map +1 -1
  213. package/dist/orchestration/container.js +48 -29
  214. package/dist/orchestration/container.js.map +1 -1
  215. package/dist/orchestration/context-footprint.d.ts +1 -1
  216. package/dist/orchestration/context-footprint.d.ts.map +1 -1
  217. package/dist/orchestration/context-footprint.js +5 -5
  218. package/dist/orchestration/context-footprint.js.map +1 -1
  219. package/dist/orchestration/control-notification.d.ts +6 -0
  220. package/dist/orchestration/control-notification.d.ts.map +1 -0
  221. package/dist/orchestration/control-notification.js +23 -0
  222. package/dist/orchestration/control-notification.js.map +1 -0
  223. package/dist/orchestration/dashboard-reader-worker.js +2 -2
  224. package/dist/orchestration/dashboard-reader-worker.js.map +1 -1
  225. package/dist/orchestration/execution-observation.d.ts +3 -0
  226. package/dist/orchestration/execution-observation.d.ts.map +1 -1
  227. package/dist/orchestration/execution-observation.js.map +1 -1
  228. package/dist/orchestration/gateway-tasks/browser.d.ts +59 -0
  229. package/dist/orchestration/gateway-tasks/browser.d.ts.map +1 -0
  230. package/dist/orchestration/gateway-tasks/browser.js +426 -0
  231. package/dist/orchestration/gateway-tasks/browser.js.map +1 -0
  232. package/dist/orchestration/gateway-tasks/computer-context.d.ts +6 -0
  233. package/dist/orchestration/gateway-tasks/computer-context.d.ts.map +1 -0
  234. package/dist/orchestration/gateway-tasks/computer-context.js +19 -0
  235. package/dist/orchestration/gateway-tasks/computer-context.js.map +1 -0
  236. package/dist/orchestration/gateway-tasks/computer.d.ts +123 -0
  237. package/dist/orchestration/gateway-tasks/computer.d.ts.map +1 -0
  238. package/dist/orchestration/gateway-tasks/computer.js +519 -0
  239. package/dist/orchestration/gateway-tasks/computer.js.map +1 -0
  240. package/dist/orchestration/gateway-tasks/controller.d.ts +40 -6
  241. package/dist/orchestration/gateway-tasks/controller.d.ts.map +1 -1
  242. package/dist/orchestration/gateway-tasks/controller.js +118 -12
  243. package/dist/orchestration/gateway-tasks/controller.js.map +1 -1
  244. package/dist/orchestration/gateway-tasks/safemode.d.ts.map +1 -1
  245. package/dist/orchestration/gateway-tasks/safemode.js +2 -1
  246. package/dist/orchestration/gateway-tasks/safemode.js.map +1 -1
  247. package/dist/orchestration/jev-gateway.d.ts +25 -0
  248. package/dist/orchestration/jev-gateway.d.ts.map +1 -0
  249. package/dist/orchestration/jev-gateway.js +103 -0
  250. package/dist/orchestration/jev-gateway.js.map +1 -0
  251. package/dist/orchestration/jev-tool.d.ts +45 -0
  252. package/dist/orchestration/jev-tool.d.ts.map +1 -0
  253. package/dist/orchestration/jev-tool.js +10 -0
  254. package/dist/orchestration/jev-tool.js.map +1 -0
  255. package/dist/orchestration/live-execution-input.d.ts +26 -0
  256. package/dist/orchestration/live-execution-input.d.ts.map +1 -0
  257. package/dist/orchestration/live-execution-input.js +70 -0
  258. package/dist/orchestration/live-execution-input.js.map +1 -0
  259. package/dist/orchestration/notification-mailbox.d.ts.map +1 -1
  260. package/dist/orchestration/notification-mailbox.js +5 -2
  261. package/dist/orchestration/notification-mailbox.js.map +1 -1
  262. package/dist/orchestration/process-platform.d.ts +0 -3
  263. package/dist/orchestration/process-platform.d.ts.map +1 -1
  264. package/dist/orchestration/process-platform.js +0 -4
  265. package/dist/orchestration/process-platform.js.map +1 -1
  266. package/dist/orchestration/process-turn.d.ts +8 -0
  267. package/dist/orchestration/process-turn.d.ts.map +1 -1
  268. package/dist/orchestration/process-turn.js +65 -8
  269. package/dist/orchestration/process-turn.js.map +1 -1
  270. package/dist/orchestration/response-errors.d.ts.map +1 -1
  271. package/dist/orchestration/response-errors.js +1 -0
  272. package/dist/orchestration/response-errors.js.map +1 -1
  273. package/dist/orchestration/runtime.d.ts +51 -1
  274. package/dist/orchestration/runtime.d.ts.map +1 -1
  275. package/dist/orchestration/runtime.js +383 -27
  276. package/dist/orchestration/runtime.js.map +1 -1
  277. package/dist/orchestration/skill-catalog-budget.d.ts +6 -0
  278. package/dist/orchestration/skill-catalog-budget.d.ts.map +1 -0
  279. package/dist/orchestration/skill-catalog-budget.js +9 -0
  280. package/dist/orchestration/skill-catalog-budget.js.map +1 -0
  281. package/dist/orchestration/skills.d.ts +4 -2
  282. package/dist/orchestration/skills.d.ts.map +1 -1
  283. package/dist/orchestration/skills.js +44 -3
  284. package/dist/orchestration/skills.js.map +1 -1
  285. package/dist/orchestration/store.d.ts +1 -0
  286. package/dist/orchestration/store.d.ts.map +1 -1
  287. package/dist/orchestration/store.js +2 -0
  288. package/dist/orchestration/store.js.map +1 -1
  289. package/dist/orchestration/task-controls.d.ts +78 -8
  290. package/dist/orchestration/task-controls.d.ts.map +1 -1
  291. package/dist/orchestration/task-controls.js +6 -1
  292. package/dist/orchestration/task-controls.js.map +1 -1
  293. package/dist/orchestration/tasks/automation-session.d.ts +25 -0
  294. package/dist/orchestration/tasks/automation-session.d.ts.map +1 -0
  295. package/dist/orchestration/tasks/automation-session.js +68 -0
  296. package/dist/orchestration/tasks/automation-session.js.map +1 -0
  297. package/dist/orchestration/tasks/driver.d.ts.map +1 -1
  298. package/dist/orchestration/tasks/driver.js +3 -2
  299. package/dist/orchestration/tasks/driver.js.map +1 -1
  300. package/dist/orchestration/tasks/service.d.ts +68 -7
  301. package/dist/orchestration/tasks/service.d.ts.map +1 -1
  302. package/dist/orchestration/tasks/service.js +646 -44
  303. package/dist/orchestration/tasks/service.js.map +1 -1
  304. package/dist/orchestration/types.d.ts +82 -3
  305. package/dist/orchestration/types.d.ts.map +1 -1
  306. package/dist/orchestration/types.js.map +1 -1
  307. package/dist/session/codex-extension-discovery.d.ts.map +1 -1
  308. package/dist/session/codex-extension-discovery.js +4 -2
  309. package/dist/session/codex-extension-discovery.js.map +1 -1
  310. package/dist/session/codex-native-mcp-client.d.ts.map +1 -1
  311. package/dist/session/codex-native-mcp-client.js +2 -1
  312. package/dist/session/codex-native-mcp-client.js.map +1 -1
  313. package/dist/session/codex-process.d.ts.map +1 -1
  314. package/dist/session/codex-process.js +9 -4
  315. package/dist/session/codex-process.js.map +1 -1
  316. package/dist/session/process.d.ts +16 -4
  317. package/dist/session/process.d.ts.map +1 -1
  318. package/dist/session/process.js +153 -75
  319. package/dist/session/process.js.map +1 -1
  320. package/dist/session/runtime-profile.d.ts +10 -5
  321. package/dist/session/runtime-profile.d.ts.map +1 -1
  322. package/dist/session/runtime-profile.js +5 -5
  323. package/dist/session/runtime-profile.js.map +1 -1
  324. package/dist/session/worker-extensions.d.ts.map +1 -1
  325. package/dist/session/worker-extensions.js +2 -1
  326. package/dist/session/worker-extensions.js.map +1 -1
  327. package/dist/types.d.ts +5 -0
  328. package/dist/types.d.ts.map +1 -1
  329. package/dist/ui/dashboard-client.d.ts.map +1 -1
  330. package/dist/ui/dashboard-client.js +33 -3
  331. package/dist/ui/dashboard-client.js.map +1 -1
  332. package/dist/ui/web-ui.js +1 -1
  333. package/lib/automation/browser-thinking.cjs +9 -0
  334. package/lib/automation/browser-thinking.d.cts +2 -0
  335. package/lib/automation/computer-thinking.cjs +10 -0
  336. package/lib/automation/computer-thinking.d.cts +2 -0
  337. package/lib/automation/index.cjs +47 -0
  338. package/lib/automation/index.d.cts +3 -0
  339. package/lib/automation/reasoning-instructions.cjs +5 -0
  340. package/lib/automation/thinking.cjs +35 -0
  341. package/lib/automation/thinking.d.cts +2 -0
  342. package/mcp/capability-catalog.ts +2 -2
  343. package/mcp/server.ts +1 -1
  344. package/mcp/tools/tasks/module.ts +9 -0
  345. 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,6 @@
1
+ export * from './types';
2
+ export * from './validation';
3
+ export * from './service';
4
+ export * from './browser-contract';
5
+ export { BrowserConnectorRegistry, validateBrowserIntegration } from './browser-connector';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -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":"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"}
@@ -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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"}