@humain/terminal 0.0.2 → 0.0.3-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (680) hide show
  1. package/CHANGELOG.md +241 -24
  2. package/README.md +143 -119
  3. package/dist/cli/args.d.ts +4 -2
  4. package/dist/cli/args.d.ts.map +1 -1
  5. package/dist/cli/args.js +37 -39
  6. package/dist/cli/args.js.map +1 -1
  7. package/dist/cli/auth-check.d.ts +19 -0
  8. package/dist/cli/auth-check.d.ts.map +1 -0
  9. package/dist/cli/auth-check.js +50 -0
  10. package/dist/cli/auth-check.js.map +1 -0
  11. package/dist/cli/auth-command.d.ts +24 -0
  12. package/dist/cli/auth-command.d.ts.map +1 -0
  13. package/dist/cli/auth-command.js +103 -0
  14. package/dist/cli/auth-command.js.map +1 -0
  15. package/dist/cli/config-selector.d.ts.map +1 -1
  16. package/dist/cli/config-selector.js +2 -2
  17. package/dist/cli/config-selector.js.map +1 -1
  18. package/dist/cli/credential-print.d.ts +5 -15
  19. package/dist/cli/credential-print.d.ts.map +1 -1
  20. package/dist/cli/credential-print.js +42 -83
  21. package/dist/cli/credential-print.js.map +1 -1
  22. package/dist/cli/experimental/auth.d.ts +16 -0
  23. package/dist/cli/experimental/auth.d.ts.map +1 -0
  24. package/dist/cli/experimental/auth.js +13 -0
  25. package/dist/cli/experimental/auth.js.map +1 -0
  26. package/dist/cli/experimental/cli.d.ts +6 -0
  27. package/dist/cli/experimental/cli.d.ts.map +1 -0
  28. package/dist/cli/experimental/cli.js +5 -0
  29. package/dist/cli/experimental/cli.js.map +1 -0
  30. package/dist/cli/experimental/command-options.d.ts +17 -0
  31. package/dist/cli/experimental/command-options.d.ts.map +1 -0
  32. package/dist/cli/experimental/command-options.js +35 -0
  33. package/dist/cli/experimental/command-options.js.map +1 -0
  34. package/dist/cli/experimental/command.d.ts +63 -0
  35. package/dist/cli/experimental/command.d.ts.map +1 -0
  36. package/dist/cli/experimental/command.js +130 -0
  37. package/dist/cli/experimental/command.js.map +1 -0
  38. package/dist/cli/experimental/commands/client.d.ts +13 -0
  39. package/dist/cli/experimental/commands/client.d.ts.map +1 -0
  40. package/dist/cli/experimental/commands/client.js +25 -0
  41. package/dist/cli/experimental/commands/client.js.map +1 -0
  42. package/dist/cli/experimental/commands/pi.d.ts +15 -0
  43. package/dist/cli/experimental/commands/pi.d.ts.map +1 -0
  44. package/dist/cli/experimental/commands/pi.js +28 -0
  45. package/dist/cli/experimental/commands/pi.js.map +1 -0
  46. package/dist/cli/experimental/commands/server.d.ts +13 -0
  47. package/dist/cli/experimental/commands/server.d.ts.map +1 -0
  48. package/dist/cli/experimental/commands/server.js +25 -0
  49. package/dist/cli/experimental/commands/server.js.map +1 -0
  50. package/dist/cli/experimental/transport-address.d.ts +10 -0
  51. package/dist/cli/experimental/transport-address.d.ts.map +1 -0
  52. package/dist/cli/experimental/transport-address.js +38 -0
  53. package/dist/cli/experimental/transport-address.js.map +1 -0
  54. package/dist/cli/list-models.d.ts +1 -1
  55. package/dist/cli/list-models.d.ts.map +1 -1
  56. package/dist/cli/list-models.js +2 -2
  57. package/dist/cli/list-models.js.map +1 -1
  58. package/dist/cli/startup-ui.d.ts +1 -1
  59. package/dist/cli/startup-ui.d.ts.map +1 -1
  60. package/dist/cli/startup-ui.js +2 -2
  61. package/dist/cli/startup-ui.js.map +1 -1
  62. package/dist/client/index.d.ts +3 -0
  63. package/dist/client/index.d.ts.map +1 -0
  64. package/dist/client/index.js +3 -0
  65. package/dist/client/index.js.map +1 -0
  66. package/dist/client/remote-session.d.ts +53 -0
  67. package/dist/client/remote-session.d.ts.map +1 -0
  68. package/dist/client/remote-session.js +340 -0
  69. package/dist/client/remote-session.js.map +1 -0
  70. package/dist/client/transcript.d.ts +12 -0
  71. package/dist/client/transcript.d.ts.map +1 -0
  72. package/dist/client/transcript.js +98 -0
  73. package/dist/client/transcript.js.map +1 -0
  74. package/dist/core/agent-session-services.d.ts +1 -0
  75. package/dist/core/agent-session-services.d.ts.map +1 -1
  76. package/dist/core/agent-session-services.js +1 -0
  77. package/dist/core/agent-session-services.js.map +1 -1
  78. package/dist/core/agent-session.d.ts +1 -10
  79. package/dist/core/agent-session.d.ts.map +1 -1
  80. package/dist/core/agent-session.js +72 -70
  81. package/dist/core/agent-session.js.map +1 -1
  82. package/dist/core/auth-storage.d.ts +25 -9
  83. package/dist/core/auth-storage.d.ts.map +1 -1
  84. package/dist/core/auth-storage.js +237 -39
  85. package/dist/core/auth-storage.js.map +1 -1
  86. package/dist/core/extensions/index.d.ts +1 -1
  87. package/dist/core/extensions/index.d.ts.map +1 -1
  88. package/dist/core/extensions/index.js.map +1 -1
  89. package/dist/core/extensions/loader.d.ts.map +1 -1
  90. package/dist/core/extensions/loader.js +60 -41
  91. package/dist/core/extensions/loader.js.map +1 -1
  92. package/dist/core/extensions/runner.d.ts +2 -1
  93. package/dist/core/extensions/runner.d.ts.map +1 -1
  94. package/dist/core/extensions/runner.js +3 -0
  95. package/dist/core/extensions/runner.js.map +1 -1
  96. package/dist/core/extensions/types.d.ts +27 -4
  97. package/dist/core/extensions/types.d.ts.map +1 -1
  98. package/dist/core/extensions/types.js.map +1 -1
  99. package/dist/core/http-dispatcher.d.ts.map +1 -1
  100. package/dist/core/http-dispatcher.js +5 -0
  101. package/dist/core/http-dispatcher.js.map +1 -1
  102. package/dist/core/keybindings.d.ts +45 -5
  103. package/dist/core/keybindings.d.ts.map +1 -1
  104. package/dist/core/keybindings.js.map +1 -1
  105. package/dist/core/model-config.d.ts +29 -5
  106. package/dist/core/model-config.d.ts.map +1 -1
  107. package/dist/core/model-config.js +4 -0
  108. package/dist/core/model-config.js.map +1 -1
  109. package/dist/core/model-registry.d.ts +5 -3
  110. package/dist/core/model-registry.d.ts.map +1 -1
  111. package/dist/core/model-registry.js +13 -10
  112. package/dist/core/model-registry.js.map +1 -1
  113. package/dist/core/model-resolver.d.ts +4 -3
  114. package/dist/core/model-resolver.d.ts.map +1 -1
  115. package/dist/core/model-resolver.js +42 -10
  116. package/dist/core/model-resolver.js.map +1 -1
  117. package/dist/core/model-runtime.d.ts +30 -13
  118. package/dist/core/model-runtime.d.ts.map +1 -1
  119. package/dist/core/model-runtime.js +233 -73
  120. package/dist/core/model-runtime.js.map +1 -1
  121. package/dist/core/models-store.d.ts +12 -7
  122. package/dist/core/models-store.d.ts.map +1 -1
  123. package/dist/core/models-store.js +83 -14
  124. package/dist/core/models-store.js.map +1 -1
  125. package/dist/core/package-manager.d.ts +6 -3
  126. package/dist/core/package-manager.d.ts.map +1 -1
  127. package/dist/core/package-manager.js +80 -61
  128. package/dist/core/package-manager.js.map +1 -1
  129. package/dist/core/pi-manifest.d.ts +8 -0
  130. package/dist/core/pi-manifest.d.ts.map +1 -0
  131. package/dist/core/pi-manifest.js +28 -0
  132. package/dist/core/pi-manifest.js.map +1 -0
  133. package/dist/core/provider-composer.d.ts +4 -1
  134. package/dist/core/provider-composer.d.ts.map +1 -1
  135. package/dist/core/provider-composer.js +36 -15
  136. package/dist/core/provider-composer.js.map +1 -1
  137. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  138. package/dist/core/remote-catalog-provider.js +73 -67
  139. package/dist/core/remote-catalog-provider.js.map +1 -1
  140. package/dist/core/resource-loader.d.ts.map +1 -1
  141. package/dist/core/resource-loader.js +2 -2
  142. package/dist/core/resource-loader.js.map +1 -1
  143. package/dist/core/runtime-credentials.d.ts +5 -5
  144. package/dist/core/runtime-credentials.d.ts.map +1 -1
  145. package/dist/core/runtime-credentials.js +11 -8
  146. package/dist/core/runtime-credentials.js.map +1 -1
  147. package/dist/core/sdk.d.ts +1 -1
  148. package/dist/core/sdk.d.ts.map +1 -1
  149. package/dist/core/sdk.js +2 -2
  150. package/dist/core/sdk.js.map +1 -1
  151. package/dist/core/session-manager.d.ts.map +1 -1
  152. package/dist/core/session-manager.js +3 -1
  153. package/dist/core/session-manager.js.map +1 -1
  154. package/dist/core/settings-manager.d.ts +12 -0
  155. package/dist/core/settings-manager.d.ts.map +1 -1
  156. package/dist/core/settings-manager.js +40 -16
  157. package/dist/core/settings-manager.js.map +1 -1
  158. package/dist/core/system-prompt.d.ts.map +1 -1
  159. package/dist/core/system-prompt.js +8 -0
  160. package/dist/core/system-prompt.js.map +1 -1
  161. package/dist/core/tools/bash.d.ts +5 -1
  162. package/dist/core/tools/bash.d.ts.map +1 -1
  163. package/dist/core/tools/bash.js +16 -15
  164. package/dist/core/tools/bash.js.map +1 -1
  165. package/dist/core/tools/edit.d.ts +4 -0
  166. package/dist/core/tools/edit.d.ts.map +1 -1
  167. package/dist/core/tools/edit.js +11 -7
  168. package/dist/core/tools/edit.js.map +1 -1
  169. package/dist/core/tools/find.d.ts +7 -0
  170. package/dist/core/tools/find.d.ts.map +1 -1
  171. package/dist/core/tools/find.js +16 -19
  172. package/dist/core/tools/find.js.map +1 -1
  173. package/dist/core/tools/grep.d.ts +4 -0
  174. package/dist/core/tools/grep.d.ts.map +1 -1
  175. package/dist/core/tools/grep.js +5 -1
  176. package/dist/core/tools/grep.js.map +1 -1
  177. package/dist/core/tools/ls.d.ts +4 -0
  178. package/dist/core/tools/ls.d.ts.map +1 -1
  179. package/dist/core/tools/ls.js +5 -1
  180. package/dist/core/tools/ls.js.map +1 -1
  181. package/dist/core/tools/read.d.ts +4 -0
  182. package/dist/core/tools/read.d.ts.map +1 -1
  183. package/dist/core/tools/read.js +7 -3
  184. package/dist/core/tools/read.js.map +1 -1
  185. package/dist/core/tools/write.d.ts +4 -0
  186. package/dist/core/tools/write.d.ts.map +1 -1
  187. package/dist/core/tools/write.js +6 -2
  188. package/dist/core/tools/write.js.map +1 -1
  189. package/dist/extensions/llama/index.d.ts.map +1 -1
  190. package/dist/extensions/llama/index.js +11 -2
  191. package/dist/extensions/llama/index.js.map +1 -1
  192. package/dist/extensions/llama/provider.d.ts.map +1 -1
  193. package/dist/extensions/llama/provider.js +21 -7
  194. package/dist/extensions/llama/provider.js.map +1 -1
  195. package/dist/humain/agent-execution-protocol.d.ts +218 -0
  196. package/dist/humain/agent-execution-protocol.d.ts.map +1 -0
  197. package/dist/humain/agent-execution-protocol.js +204 -0
  198. package/dist/humain/agent-execution-protocol.js.map +1 -0
  199. package/dist/humain/agent-execution-runtime.d.ts +35 -0
  200. package/dist/humain/agent-execution-runtime.d.ts.map +1 -0
  201. package/dist/humain/agent-execution-runtime.js +170 -0
  202. package/dist/humain/agent-execution-runtime.js.map +1 -0
  203. package/dist/humain/index.d.ts.map +1 -1
  204. package/dist/humain/index.js +8 -7
  205. package/dist/humain/index.js.map +1 -1
  206. package/dist/humain/mcp-adapter/vendor/CHANGELOG.md +660 -0
  207. package/dist/humain/mcp-adapter/vendor/LICENSE +21 -0
  208. package/dist/humain/mcp-adapter/vendor/README.md +733 -0
  209. package/dist/humain/mcp-adapter/vendor/abort.ts +34 -0
  210. package/dist/humain/mcp-adapter/vendor/agent-dir.ts +60 -0
  211. package/dist/humain/mcp-adapter/vendor/agent-plugin-loader.ts +377 -0
  212. package/dist/humain/mcp-adapter/vendor/app-bridge.bundle.js +67 -0
  213. package/dist/humain/mcp-adapter/vendor/banner.png +0 -0
  214. package/dist/humain/mcp-adapter/vendor/cli.js +209 -0
  215. package/dist/humain/mcp-adapter/vendor/commands.ts +627 -0
  216. package/dist/humain/mcp-adapter/vendor/config.ts +1226 -0
  217. package/dist/humain/mcp-adapter/vendor/consent-manager.ts +64 -0
  218. package/dist/humain/mcp-adapter/vendor/direct-tools.ts +604 -0
  219. package/dist/humain/mcp-adapter/vendor/elicitation-handler.ts +348 -0
  220. package/dist/humain/mcp-adapter/vendor/error-signal.ts +21 -0
  221. package/dist/humain/mcp-adapter/vendor/errors.ts +223 -0
  222. package/dist/humain/mcp-adapter/vendor/glimpse-ui.ts +80 -0
  223. package/dist/humain/mcp-adapter/vendor/host-html-template.ts +461 -0
  224. package/dist/humain/mcp-adapter/vendor/index.bundle.d.mts +4 -0
  225. package/dist/humain/mcp-adapter/vendor/index.bundle.mjs +15923 -0
  226. package/dist/humain/mcp-adapter/vendor/index.ts +898 -0
  227. package/dist/humain/mcp-adapter/vendor/init.ts +649 -0
  228. package/dist/humain/mcp-adapter/vendor/json-schema-validator.ts +69 -0
  229. package/dist/humain/mcp-adapter/vendor/lifecycle.ts +147 -0
  230. package/dist/humain/mcp-adapter/vendor/logger.ts +169 -0
  231. package/dist/humain/mcp-adapter/vendor/mcp-auth-flow.ts +993 -0
  232. package/dist/humain/mcp-adapter/vendor/mcp-auth.ts +1000 -0
  233. package/dist/humain/mcp-adapter/vendor/mcp-callback-server.ts +510 -0
  234. package/dist/humain/mcp-adapter/vendor/mcp-code.ts +354 -0
  235. package/dist/humain/mcp-adapter/vendor/mcp-keyring-helper.cjs +89 -0
  236. package/dist/humain/mcp-adapter/vendor/mcp-oauth-provider.ts +616 -0
  237. package/dist/humain/mcp-adapter/vendor/mcp-output-guard.ts +408 -0
  238. package/dist/humain/mcp-adapter/vendor/mcp-panel.ts +1015 -0
  239. package/dist/humain/mcp-adapter/vendor/mcp-probe.ts +187 -0
  240. package/dist/humain/mcp-adapter/vendor/mcp-script-worker.mjs +130 -0
  241. package/dist/humain/mcp-adapter/vendor/mcp-setup-panel.ts +666 -0
  242. package/dist/humain/mcp-adapter/vendor/mcp-status.ts +109 -0
  243. package/dist/humain/mcp-adapter/vendor/mcp-trace.ts +306 -0
  244. package/dist/humain/mcp-adapter/vendor/metadata-cache.ts +353 -0
  245. package/dist/humain/mcp-adapter/vendor/npx-resolver.ts +543 -0
  246. package/dist/humain/mcp-adapter/vendor/oauth-handler.ts +30 -0
  247. package/dist/humain/mcp-adapter/vendor/oauth.ts +48 -0
  248. package/dist/humain/mcp-adapter/vendor/onboarding-state.ts +76 -0
  249. package/dist/humain/mcp-adapter/vendor/package.json +178 -0
  250. package/dist/humain/mcp-adapter/vendor/panel-keys.ts +53 -0
  251. package/dist/humain/mcp-adapter/vendor/prompts.ts +353 -0
  252. package/dist/humain/mcp-adapter/vendor/proxy-modes.ts +1331 -0
  253. package/dist/humain/mcp-adapter/vendor/resource-tools.ts +17 -0
  254. package/dist/humain/mcp-adapter/vendor/runtime-owner.ts +91 -0
  255. package/dist/humain/mcp-adapter/vendor/sampling-handler.ts +284 -0
  256. package/dist/humain/mcp-adapter/vendor/search-ranking.ts +206 -0
  257. package/dist/humain/mcp-adapter/vendor/server-manager.ts +1124 -0
  258. package/dist/humain/mcp-adapter/vendor/session-recovery.ts +151 -0
  259. package/dist/humain/mcp-adapter/vendor/skills/mcp-scripting/SKILL.md +38 -0
  260. package/dist/humain/mcp-adapter/vendor/state.ts +62 -0
  261. package/dist/humain/mcp-adapter/vendor/tool-approval.ts +182 -0
  262. package/dist/humain/mcp-adapter/vendor/tool-metadata.ts +276 -0
  263. package/dist/humain/mcp-adapter/vendor/tool-registrar.ts +253 -0
  264. package/dist/humain/mcp-adapter/vendor/tool-result-renderer.ts +423 -0
  265. package/dist/humain/mcp-adapter/vendor/ts-shape.ts +149 -0
  266. package/dist/humain/mcp-adapter/vendor/types.ts +859 -0
  267. package/dist/humain/mcp-adapter/vendor/ui-app-bridge-helpers.ts +40 -0
  268. package/dist/humain/mcp-adapter/vendor/ui-resource-handler.ts +250 -0
  269. package/dist/humain/mcp-adapter/vendor/ui-server.ts +866 -0
  270. package/dist/humain/mcp-adapter/vendor/ui-session.ts +570 -0
  271. package/dist/humain/mcp-adapter/vendor/ui-stream-types.ts +89 -0
  272. package/dist/humain/mcp-adapter/vendor/ui-tool-visibility.ts +25 -0
  273. package/dist/humain/mcp-adapter/vendor/unix-socket-transport.ts +85 -0
  274. package/dist/humain/mcp-adapter/vendor/utils.ts +310 -0
  275. package/dist/humain/mcp-adapter.d.ts +3 -0
  276. package/dist/humain/mcp-adapter.d.ts.map +1 -0
  277. package/dist/humain/mcp-adapter.js +5 -0
  278. package/dist/humain/mcp-adapter.js.map +1 -0
  279. package/dist/humain/pi-agent-execution-host.d.ts +34 -0
  280. package/dist/humain/pi-agent-execution-host.d.ts.map +1 -0
  281. package/dist/humain/pi-agent-execution-host.js +77 -0
  282. package/dist/humain/pi-agent-execution-host.js.map +1 -0
  283. package/dist/humain/web-access/host.d.ts +4 -0
  284. package/dist/humain/web-access/host.d.ts.map +1 -0
  285. package/dist/humain/web-access/host.js +3 -0
  286. package/dist/humain/web-access/host.js.map +1 -0
  287. package/dist/humain/web-access/index.d.ts +3 -0
  288. package/dist/humain/web-access/index.d.ts.map +1 -0
  289. package/dist/humain/web-access/index.js +5 -0
  290. package/dist/humain/web-access/index.js.map +1 -0
  291. package/dist/humain/web-access/vendor/activity.d.ts +34 -0
  292. package/dist/humain/web-access/vendor/activity.d.ts.map +1 -0
  293. package/dist/humain/web-access/vendor/activity.js +68 -0
  294. package/dist/humain/web-access/vendor/activity.js.map +1 -0
  295. package/dist/humain/web-access/vendor/anysearch.d.ts +8 -0
  296. package/dist/humain/web-access/vendor/anysearch.d.ts.map +1 -0
  297. package/dist/humain/web-access/vendor/anysearch.js +167 -0
  298. package/dist/humain/web-access/vendor/anysearch.js.map +1 -0
  299. package/dist/humain/web-access/vendor/bocha.d.ts +4 -0
  300. package/dist/humain/web-access/vendor/bocha.d.ts.map +1 -0
  301. package/dist/humain/web-access/vendor/bocha.js +219 -0
  302. package/dist/humain/web-access/vendor/bocha.js.map +1 -0
  303. package/dist/humain/web-access/vendor/brave.d.ts +4 -0
  304. package/dist/humain/web-access/vendor/brave.d.ts.map +1 -0
  305. package/dist/humain/web-access/vendor/brave.js +194 -0
  306. package/dist/humain/web-access/vendor/brave.js.map +1 -0
  307. package/dist/humain/web-access/vendor/brightdata-unlocker.d.ts +12 -0
  308. package/dist/humain/web-access/vendor/brightdata-unlocker.d.ts.map +1 -0
  309. package/dist/humain/web-access/vendor/brightdata-unlocker.js +230 -0
  310. package/dist/humain/web-access/vendor/brightdata-unlocker.js.map +1 -0
  311. package/dist/humain/web-access/vendor/brightdata.d.ts +8 -0
  312. package/dist/humain/web-access/vendor/brightdata.d.ts.map +1 -0
  313. package/dist/humain/web-access/vendor/brightdata.js +519 -0
  314. package/dist/humain/web-access/vendor/brightdata.js.map +1 -0
  315. package/dist/humain/web-access/vendor/chrome-cookies.d.ts +10 -0
  316. package/dist/humain/web-access/vendor/chrome-cookies.d.ts.map +1 -0
  317. package/dist/humain/web-access/vendor/chrome-cookies.js +438 -0
  318. package/dist/humain/web-access/vendor/chrome-cookies.js.map +1 -0
  319. package/dist/humain/web-access/vendor/content-find.d.ts +11 -0
  320. package/dist/humain/web-access/vendor/content-find.d.ts.map +1 -0
  321. package/dist/humain/web-access/vendor/content-find.js +117 -0
  322. package/dist/humain/web-access/vendor/content-find.js.map +1 -0
  323. package/dist/humain/web-access/vendor/credential-source.d.ts +28 -0
  324. package/dist/humain/web-access/vendor/credential-source.d.ts.map +1 -0
  325. package/dist/humain/web-access/vendor/credential-source.js +151 -0
  326. package/dist/humain/web-access/vendor/credential-source.js.map +1 -0
  327. package/dist/humain/web-access/vendor/curator-page.d.ts +29 -0
  328. package/dist/humain/web-access/vendor/curator-page.d.ts.map +1 -0
  329. package/dist/humain/web-access/vendor/curator-page.js +3554 -0
  330. package/dist/humain/web-access/vendor/curator-page.js.map +1 -0
  331. package/dist/humain/web-access/vendor/curator-server.d.ts +93 -0
  332. package/dist/humain/web-access/vendor/curator-server.d.ts.map +1 -0
  333. package/dist/humain/web-access/vendor/curator-server.js +688 -0
  334. package/dist/humain/web-access/vendor/curator-server.js.map +1 -0
  335. package/dist/humain/web-access/vendor/datalab-pdf-extract.d.ts +60 -0
  336. package/dist/humain/web-access/vendor/datalab-pdf-extract.d.ts.map +1 -0
  337. package/dist/humain/web-access/vendor/datalab-pdf-extract.js +416 -0
  338. package/dist/humain/web-access/vendor/datalab-pdf-extract.js.map +1 -0
  339. package/dist/humain/web-access/vendor/declared-web-links.d.ts +16 -0
  340. package/dist/humain/web-access/vendor/declared-web-links.d.ts.map +1 -0
  341. package/dist/humain/web-access/vendor/declared-web-links.js +168 -0
  342. package/dist/humain/web-access/vendor/declared-web-links.js.map +1 -0
  343. package/dist/humain/web-access/vendor/duckduckgo.d.ts +4 -0
  344. package/dist/humain/web-access/vendor/duckduckgo.d.ts.map +1 -0
  345. package/dist/humain/web-access/vendor/duckduckgo.js +123 -0
  346. package/dist/humain/web-access/vendor/duckduckgo.js.map +1 -0
  347. package/dist/humain/web-access/vendor/exa.d.ts +10 -0
  348. package/dist/humain/web-access/vendor/exa.d.ts.map +1 -0
  349. package/dist/humain/web-access/vendor/exa.js +426 -0
  350. package/dist/humain/web-access/vendor/exa.js.map +1 -0
  351. package/dist/humain/web-access/vendor/extract.d.ts +46 -0
  352. package/dist/humain/web-access/vendor/extract.d.ts.map +1 -0
  353. package/dist/humain/web-access/vendor/extract.js +1064 -0
  354. package/dist/humain/web-access/vendor/extract.js.map +1 -0
  355. package/dist/humain/web-access/vendor/feature-config.d.ts +3 -0
  356. package/dist/humain/web-access/vendor/feature-config.d.ts.map +1 -0
  357. package/dist/humain/web-access/vendor/feature-config.js +27 -0
  358. package/dist/humain/web-access/vendor/feature-config.js.map +1 -0
  359. package/dist/humain/web-access/vendor/fetch-params.d.ts +25 -0
  360. package/dist/humain/web-access/vendor/fetch-params.d.ts.map +1 -0
  361. package/dist/humain/web-access/vendor/fetch-params.js +57 -0
  362. package/dist/humain/web-access/vendor/fetch-params.js.map +1 -0
  363. package/dist/humain/web-access/vendor/firecrawl.d.ts +12 -0
  364. package/dist/humain/web-access/vendor/firecrawl.d.ts.map +1 -0
  365. package/dist/humain/web-access/vendor/firecrawl.js +239 -0
  366. package/dist/humain/web-access/vendor/firecrawl.js.map +1 -0
  367. package/dist/humain/web-access/vendor/gemini-api.d.ts +27 -0
  368. package/dist/humain/web-access/vendor/gemini-api.d.ts.map +1 -0
  369. package/dist/humain/web-access/vendor/gemini-api.js +230 -0
  370. package/dist/humain/web-access/vendor/gemini-api.js.map +1 -0
  371. package/dist/humain/web-access/vendor/gemini-pdf-extract.d.ts +9 -0
  372. package/dist/humain/web-access/vendor/gemini-pdf-extract.d.ts.map +1 -0
  373. package/dist/humain/web-access/vendor/gemini-pdf-extract.js +85 -0
  374. package/dist/humain/web-access/vendor/gemini-pdf-extract.js.map +1 -0
  375. package/dist/humain/web-access/vendor/gemini-search.d.ts +40 -0
  376. package/dist/humain/web-access/vendor/gemini-search.d.ts.map +1 -0
  377. package/dist/humain/web-access/vendor/gemini-search.js +814 -0
  378. package/dist/humain/web-access/vendor/gemini-search.js.map +1 -0
  379. package/dist/humain/web-access/vendor/gemini-url-context.d.ts +4 -0
  380. package/dist/humain/web-access/vendor/gemini-url-context.d.ts.map +1 -0
  381. package/dist/humain/web-access/vendor/gemini-url-context.js +101 -0
  382. package/dist/humain/web-access/vendor/gemini-url-context.js.map +1 -0
  383. package/dist/humain/web-access/vendor/gemini-web-config.d.ts +4 -0
  384. package/dist/humain/web-access/vendor/gemini-web-config.d.ts.map +1 -0
  385. package/dist/humain/web-access/vendor/gemini-web-config.js +42 -0
  386. package/dist/humain/web-access/vendor/gemini-web-config.js.map +1 -0
  387. package/dist/humain/web-access/vendor/gemini-web.d.ts +18 -0
  388. package/dist/humain/web-access/vendor/gemini-web.d.ts.map +1 -0
  389. package/dist/humain/web-access/vendor/gemini-web.js +385 -0
  390. package/dist/humain/web-access/vendor/gemini-web.js.map +1 -0
  391. package/dist/humain/web-access/vendor/github-api.d.ts +7 -0
  392. package/dist/humain/web-access/vendor/github-api.d.ts.map +1 -0
  393. package/dist/humain/web-access/vendor/github-api.js +160 -0
  394. package/dist/humain/web-access/vendor/github-api.js.map +1 -0
  395. package/dist/humain/web-access/vendor/github-extract.d.ts +13 -0
  396. package/dist/humain/web-access/vendor/github-extract.d.ts.map +1 -0
  397. package/dist/humain/web-access/vendor/github-extract.js +635 -0
  398. package/dist/humain/web-access/vendor/github-extract.js.map +1 -0
  399. package/dist/humain/web-access/vendor/index.d.ts +4 -0
  400. package/dist/humain/web-access/vendor/index.d.ts.map +1 -0
  401. package/dist/humain/web-access/vendor/index.js +3002 -0
  402. package/dist/humain/web-access/vendor/index.js.map +1 -0
  403. package/dist/humain/web-access/vendor/jina-search.d.ts +8 -0
  404. package/dist/humain/web-access/vendor/jina-search.d.ts.map +1 -0
  405. package/dist/humain/web-access/vendor/jina-search.js +255 -0
  406. package/dist/humain/web-access/vendor/jina-search.js.map +1 -0
  407. package/dist/humain/web-access/vendor/kagi.d.ts +15 -0
  408. package/dist/humain/web-access/vendor/kagi.d.ts.map +1 -0
  409. package/dist/humain/web-access/vendor/kagi.js +262 -0
  410. package/dist/humain/web-access/vendor/kagi.js.map +1 -0
  411. package/dist/humain/web-access/vendor/ollama.d.ts +15 -0
  412. package/dist/humain/web-access/vendor/ollama.d.ts.map +1 -0
  413. package/dist/humain/web-access/vendor/ollama.js +216 -0
  414. package/dist/humain/web-access/vendor/ollama.js.map +1 -0
  415. package/dist/humain/web-access/vendor/openai-search.d.ts +15 -0
  416. package/dist/humain/web-access/vendor/openai-search.d.ts.map +1 -0
  417. package/dist/humain/web-access/vendor/openai-search.js +459 -0
  418. package/dist/humain/web-access/vendor/openai-search.js.map +1 -0
  419. package/dist/humain/web-access/vendor/page-query.d.ts +16 -0
  420. package/dist/humain/web-access/vendor/page-query.d.ts.map +1 -0
  421. package/dist/humain/web-access/vendor/page-query.js +79 -0
  422. package/dist/humain/web-access/vendor/page-query.js.map +1 -0
  423. package/dist/humain/web-access/vendor/parallel.d.ts +12 -0
  424. package/dist/humain/web-access/vendor/parallel.d.ts.map +1 -0
  425. package/dist/humain/web-access/vendor/parallel.js +343 -0
  426. package/dist/humain/web-access/vendor/parallel.js.map +1 -0
  427. package/dist/humain/web-access/vendor/pdf-extract.d.ts +44 -0
  428. package/dist/humain/web-access/vendor/pdf-extract.d.ts.map +1 -0
  429. package/dist/humain/web-access/vendor/pdf-extract.js +298 -0
  430. package/dist/humain/web-access/vendor/pdf-extract.js.map +1 -0
  431. package/dist/humain/web-access/vendor/perplexity.d.ts +20 -0
  432. package/dist/humain/web-access/vendor/perplexity.d.ts.map +1 -0
  433. package/dist/humain/web-access/vendor/perplexity.js +159 -0
  434. package/dist/humain/web-access/vendor/perplexity.js.map +1 -0
  435. package/dist/humain/web-access/vendor/querit.d.ts +10 -0
  436. package/dist/humain/web-access/vendor/querit.d.ts.map +1 -0
  437. package/dist/humain/web-access/vendor/querit.js +335 -0
  438. package/dist/humain/web-access/vendor/querit.js.map +1 -0
  439. package/dist/humain/web-access/vendor/render-search-error.d.ts +57 -0
  440. package/dist/humain/web-access/vendor/render-search-error.d.ts.map +1 -0
  441. package/dist/humain/web-access/vendor/render-search-error.js +130 -0
  442. package/dist/humain/web-access/vendor/render-search-error.js.map +1 -0
  443. package/dist/humain/web-access/vendor/rsc-extract.d.ts +12 -0
  444. package/dist/humain/web-access/vendor/rsc-extract.d.ts.map +1 -0
  445. package/dist/humain/web-access/vendor/rsc-extract.js +329 -0
  446. package/dist/humain/web-access/vendor/rsc-extract.js.map +1 -0
  447. package/dist/humain/web-access/vendor/search1api.d.ts +10 -0
  448. package/dist/humain/web-access/vendor/search1api.d.ts.map +1 -0
  449. package/dist/humain/web-access/vendor/search1api.js +251 -0
  450. package/dist/humain/web-access/vendor/search1api.js.map +1 -0
  451. package/dist/humain/web-access/vendor/searchinfinity.d.ts +8 -0
  452. package/dist/humain/web-access/vendor/searchinfinity.d.ts.map +1 -0
  453. package/dist/humain/web-access/vendor/searchinfinity.js +229 -0
  454. package/dist/humain/web-access/vendor/searchinfinity.js.map +1 -0
  455. package/dist/humain/web-access/vendor/searxng.d.ts +4 -0
  456. package/dist/humain/web-access/vendor/searxng.d.ts.map +1 -0
  457. package/dist/humain/web-access/vendor/searxng.js +238 -0
  458. package/dist/humain/web-access/vendor/searxng.js.map +1 -0
  459. package/dist/humain/web-access/vendor/serpbase.d.ts +4 -0
  460. package/dist/humain/web-access/vendor/serpbase.d.ts.map +1 -0
  461. package/dist/humain/web-access/vendor/serpbase.js +211 -0
  462. package/dist/humain/web-access/vendor/serpbase.js.map +1 -0
  463. package/dist/humain/web-access/vendor/serpdive.d.ts +8 -0
  464. package/dist/humain/web-access/vendor/serpdive.d.ts.map +1 -0
  465. package/dist/humain/web-access/vendor/serpdive.js +267 -0
  466. package/dist/humain/web-access/vendor/serpdive.js.map +1 -0
  467. package/dist/humain/web-access/vendor/source-check.d.ts +99 -0
  468. package/dist/humain/web-access/vendor/source-check.d.ts.map +1 -0
  469. package/dist/humain/web-access/vendor/source-check.js +205 -0
  470. package/dist/humain/web-access/vendor/source-check.js.map +1 -0
  471. package/dist/humain/web-access/vendor/ssrf-protection.d.ts +50 -0
  472. package/dist/humain/web-access/vendor/ssrf-protection.d.ts.map +1 -0
  473. package/dist/humain/web-access/vendor/ssrf-protection.js +466 -0
  474. package/dist/humain/web-access/vendor/ssrf-protection.js.map +1 -0
  475. package/dist/humain/web-access/vendor/storage.d.ts +55 -0
  476. package/dist/humain/web-access/vendor/storage.d.ts.map +1 -0
  477. package/dist/humain/web-access/vendor/storage.js +485 -0
  478. package/dist/humain/web-access/vendor/storage.js.map +1 -0
  479. package/dist/humain/web-access/vendor/summary-model-scope.d.ts +25 -0
  480. package/dist/humain/web-access/vendor/summary-model-scope.d.ts.map +1 -0
  481. package/dist/humain/web-access/vendor/summary-model-scope.js +98 -0
  482. package/dist/humain/web-access/vendor/summary-model-scope.js.map +1 -0
  483. package/dist/humain/web-access/vendor/summary-review.d.ts +24 -0
  484. package/dist/humain/web-access/vendor/summary-review.d.ts.map +1 -0
  485. package/dist/humain/web-access/vendor/summary-review.js +341 -0
  486. package/dist/humain/web-access/vendor/summary-review.js.map +1 -0
  487. package/dist/humain/web-access/vendor/tavily.d.ts +8 -0
  488. package/dist/humain/web-access/vendor/tavily.d.ts.map +1 -0
  489. package/dist/humain/web-access/vendor/tavily.js +194 -0
  490. package/dist/humain/web-access/vendor/tavily.js.map +1 -0
  491. package/dist/humain/web-access/vendor/tinyfish.d.ts +11 -0
  492. package/dist/humain/web-access/vendor/tinyfish.d.ts.map +1 -0
  493. package/dist/humain/web-access/vendor/tinyfish.js +331 -0
  494. package/dist/humain/web-access/vendor/tinyfish.js.map +1 -0
  495. package/dist/humain/web-access/vendor/utils.d.ts +20 -0
  496. package/dist/humain/web-access/vendor/utils.d.ts.map +1 -0
  497. package/dist/humain/web-access/vendor/utils.js +91 -0
  498. package/dist/humain/web-access/vendor/utils.js.map +1 -0
  499. package/dist/humain/web-access/vendor/video-extract.d.ts +16 -0
  500. package/dist/humain/web-access/vendor/video-extract.d.ts.map +1 -0
  501. package/dist/humain/web-access/vendor/video-extract.js +335 -0
  502. package/dist/humain/web-access/vendor/video-extract.js.map +1 -0
  503. package/dist/humain/web-access/vendor/xai-search.d.ts +13 -0
  504. package/dist/humain/web-access/vendor/xai-search.d.ts.map +1 -0
  505. package/dist/humain/web-access/vendor/xai-search.js +331 -0
  506. package/dist/humain/web-access/vendor/xai-search.js.map +1 -0
  507. package/dist/humain/web-access/vendor/youtube-extract.d.ts +27 -0
  508. package/dist/humain/web-access/vendor/youtube-extract.d.ts.map +1 -0
  509. package/dist/humain/web-access/vendor/youtube-extract.js +282 -0
  510. package/dist/humain/web-access/vendor/youtube-extract.js.map +1 -0
  511. package/dist/index.d.ts +7 -4
  512. package/dist/index.d.ts.map +1 -1
  513. package/dist/index.js +5 -2
  514. package/dist/index.js.map +1 -1
  515. package/dist/main.d.ts +2 -2
  516. package/dist/main.d.ts.map +1 -1
  517. package/dist/main.js +169 -102
  518. package/dist/main.js.map +1 -1
  519. package/dist/modes/agent-exec-mode.d.ts +14 -0
  520. package/dist/modes/agent-exec-mode.d.ts.map +1 -0
  521. package/dist/modes/agent-exec-mode.js +92 -0
  522. package/dist/modes/agent-exec-mode.js.map +1 -0
  523. package/dist/modes/index.d.ts +4 -2
  524. package/dist/modes/index.d.ts.map +1 -1
  525. package/dist/modes/index.js +2 -1
  526. package/dist/modes/index.js.map +1 -1
  527. package/dist/modes/interactive/components/assistant-message.d.ts +5 -2
  528. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  529. package/dist/modes/interactive/components/assistant-message.js +13 -4
  530. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  531. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  532. package/dist/modes/interactive/components/custom-editor.js +7 -0
  533. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  534. package/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
  535. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
  536. package/dist/modes/interactive/components/earendil-announcement.js +40 -0
  537. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
  538. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  539. package/dist/modes/interactive/components/footer.js +1 -1
  540. package/dist/modes/interactive/components/footer.js.map +1 -1
  541. package/dist/modes/interactive/components/markdown-transform.d.ts +3 -0
  542. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
  543. package/dist/modes/interactive/components/markdown-transform.js +19 -0
  544. package/dist/modes/interactive/components/markdown-transform.js.map +1 -0
  545. package/dist/modes/interactive/components/mermaid.d.ts +11 -0
  546. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
  547. package/dist/modes/interactive/components/mermaid.js +75 -0
  548. package/dist/modes/interactive/components/mermaid.js.map +1 -0
  549. package/dist/modes/interactive/components/model-selector.d.ts +1 -1
  550. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  551. package/dist/modes/interactive/components/model-selector.js +16 -4
  552. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  553. package/dist/modes/interactive/components/scoped-models-selector.d.ts +4 -0
  554. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  555. package/dist/modes/interactive/components/scoped-models-selector.js +26 -0
  556. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  557. package/dist/modes/interactive/components/settings-selector.d.ts +8 -2
  558. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  559. package/dist/modes/interactive/components/settings-selector.js +30 -0
  560. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  561. package/dist/modes/interactive/components/user-message.d.ts +3 -1
  562. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  563. package/dist/modes/interactive/components/user-message.js +9 -2
  564. package/dist/modes/interactive/components/user-message.js.map +1 -1
  565. package/dist/modes/interactive/interactive-mode.d.ts +45 -9
  566. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  567. package/dist/modes/interactive/interactive-mode.js +581 -211
  568. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  569. package/dist/modes/interactive/theme/dark.json +1 -0
  570. package/dist/modes/interactive/theme/light.json +1 -0
  571. package/dist/modes/interactive/theme/theme-controller.d.ts +3 -0
  572. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  573. package/dist/modes/interactive/theme/theme-controller.js +10 -1
  574. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  575. package/dist/modes/interactive/theme/theme-schema.json +5 -1
  576. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  577. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  578. package/dist/modes/interactive/theme/theme.js +24 -6
  579. package/dist/modes/interactive/theme/theme.js.map +1 -1
  580. package/dist/modes/json-event.d.ts +28 -0
  581. package/dist/modes/json-event.d.ts.map +1 -0
  582. package/dist/modes/json-event.js +12 -0
  583. package/dist/modes/json-event.js.map +1 -0
  584. package/dist/modes/print-mode.d.ts.map +1 -1
  585. package/dist/modes/print-mode.js +12 -2
  586. package/dist/modes/print-mode.js.map +1 -1
  587. package/dist/modes/rpc/rpc-client.d.ts +12 -5
  588. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  589. package/dist/modes/rpc/rpc-client.js +55 -1
  590. package/dist/modes/rpc/rpc-client.js.map +1 -1
  591. package/dist/modes/rpc/rpc-mode.d.ts +1 -1
  592. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  593. package/dist/modes/rpc/rpc-mode.js +13 -3
  594. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  595. package/dist/modes/rpc/rpc-types.d.ts +15 -0
  596. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  597. package/dist/modes/rpc/rpc-types.js.map +1 -1
  598. package/dist/package-manager-cli.d.ts.map +1 -1
  599. package/dist/package-manager-cli.js +11 -9
  600. package/dist/package-manager-cli.js.map +1 -1
  601. package/dist/rpc-entry.d.ts.map +1 -1
  602. package/dist/rpc-entry.js +3 -2
  603. package/dist/rpc-entry.js.map +1 -1
  604. package/dist/server/create-harness.d.ts +26 -0
  605. package/dist/server/create-harness.d.ts.map +1 -0
  606. package/dist/server/create-harness.js +104 -0
  607. package/dist/server/create-harness.js.map +1 -0
  608. package/dist/utils/abort.d.ts +5 -0
  609. package/dist/utils/abort.d.ts.map +1 -0
  610. package/dist/utils/abort.js +48 -0
  611. package/dist/utils/abort.js.map +1 -0
  612. package/dist/utils/clipboard.d.ts +1 -1
  613. package/dist/utils/clipboard.d.ts.map +1 -1
  614. package/dist/utils/clipboard.js +22 -2
  615. package/dist/utils/clipboard.js.map +1 -1
  616. package/dist/utils/management-http.d.ts +23 -0
  617. package/dist/utils/management-http.d.ts.map +1 -0
  618. package/dist/utils/management-http.js +50 -0
  619. package/dist/utils/management-http.js.map +1 -0
  620. package/dist/utils/paths.d.ts +3 -0
  621. package/dist/utils/paths.d.ts.map +1 -1
  622. package/dist/utils/paths.js +23 -1
  623. package/dist/utils/paths.js.map +1 -1
  624. package/dist/utils/tool-result-images.d.ts +19 -0
  625. package/dist/utils/tool-result-images.d.ts.map +1 -0
  626. package/dist/utils/tool-result-images.js +45 -0
  627. package/dist/utils/tool-result-images.js.map +1 -0
  628. package/dist/utils/tools-manager.d.ts.map +1 -1
  629. package/dist/utils/tools-manager.js +13 -25
  630. package/dist/utils/tools-manager.js.map +1 -1
  631. package/dist/utils/version-check.d.ts +4 -0
  632. package/dist/utils/version-check.d.ts.map +1 -1
  633. package/dist/utils/version-check.js +23 -5
  634. package/dist/utils/version-check.js.map +1 -1
  635. package/docs/compaction.md +2 -2
  636. package/docs/custom-provider.md +7 -5
  637. package/docs/extensions.md +30 -5
  638. package/docs/humain-terminal.md +21 -1
  639. package/docs/json.md +24 -19
  640. package/docs/keybindings.md +46 -14
  641. package/docs/models.md +32 -11
  642. package/docs/providers.md +9 -1
  643. package/docs/quickstart.md +39 -37
  644. package/docs/rpc.md +31 -11
  645. package/docs/sdk.md +21 -2
  646. package/docs/security.md +21 -21
  647. package/docs/session-format.md +14 -14
  648. package/docs/settings.md +4 -1
  649. package/docs/themes.md +5 -3
  650. package/docs/usage.md +7 -0
  651. package/examples/extensions/custom-compaction.ts +3 -18
  652. package/examples/extensions/custom-provider-anthropic/index.ts +5 -1
  653. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  654. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  655. package/examples/extensions/custom-provider-gitlab-duo/index.ts +5 -1
  656. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  657. package/examples/extensions/doom-overlay/wad-finder.ts +7 -3
  658. package/examples/extensions/gondolin/package-lock.json +2 -2
  659. package/examples/extensions/gondolin/package.json +1 -1
  660. package/examples/extensions/handoff.ts +4 -13
  661. package/examples/extensions/qna.ts +5 -9
  662. package/examples/extensions/sandbox/package-lock.json +2 -2
  663. package/examples/extensions/sandbox/package.json +1 -1
  664. package/examples/extensions/summarize.ts +9 -20
  665. package/examples/extensions/with-deps/package-lock.json +2 -2
  666. package/examples/extensions/with-deps/package.json +1 -1
  667. package/examples/rpc-extension-ui.ts +11 -2
  668. package/examples/sdk/02-custom-model.ts +2 -3
  669. package/examples/sdk/09-api-keys-and-oauth.ts +1 -1
  670. package/examples/sdk/12-full-control.ts +1 -1
  671. package/examples/sdk/README.md +1 -1
  672. package/npm-shrinkwrap.json +2771 -535
  673. package/package.json +40 -11
  674. package/src/humain/mcp-adapter/UPSTREAM.md +15 -0
  675. package/src/humain/mcp-adapter/upstream.json +7 -0
  676. package/src/humain/mcp-adapter/vendor/CHANGELOG.md +660 -0
  677. package/src/humain/mcp-adapter/vendor/LICENSE +21 -0
  678. package/src/humain/web-access/UPSTREAM.md +17 -0
  679. package/src/humain/web-access/upstream.json +23 -0
  680. package/src/humain/web-access/vendor/LICENSE +21 -0
@@ -0,0 +1,218 @@
1
+ import { type Static, Type } from "typebox";
2
+ export declare const HUMAIN_AGENT_EXECUTION_SCHEMA_VERSION: 1;
3
+ export declare const HumainAgentRouteRefSchema: Type.TUnion<[Type.TLiteral<"route:fast">, Type.TLiteral<"route:balanced">, Type.TLiteral<"route:thorough">]>;
4
+ export type HumainAgentRouteRef = Static<typeof HumainAgentRouteRefSchema>;
5
+ export declare const HumainAgentArtifactSchema: Type.TObject<{
6
+ readonly id: Type.TString;
7
+ readonly kind: Type.TUnion<[Type.TLiteral<"candidate-patch">, Type.TLiteral<"dependency-output">, Type.TLiteral<"source-observation">, Type.TLiteral<"validation-report">]>;
8
+ readonly reference: Type.TString;
9
+ readonly digest: Type.TString;
10
+ }>;
11
+ export type HumainAgentArtifact = Static<typeof HumainAgentArtifactSchema>;
12
+ export declare const HumainAgentExecutionControlsSchema: Type.TObject<{
13
+ readonly maxConcurrency: Type.TInteger;
14
+ readonly maxDepth: Type.TInteger;
15
+ readonly depth: Type.TInteger;
16
+ readonly timeoutMs: Type.TInteger;
17
+ }>;
18
+ export type HumainAgentExecutionControls = Static<typeof HumainAgentExecutionControlsSchema>;
19
+ export declare const HumainAgentExecutionClaimSchema: Type.TObject<{
20
+ readonly workUnitId: Type.TString;
21
+ readonly nodeId: Type.TString;
22
+ readonly attemptNumber: Type.TInteger;
23
+ readonly attemptFence: Type.TInteger;
24
+ readonly segmentFence: Type.TInteger;
25
+ readonly routeRef: Type.TUnion<[Type.TLiteral<"route:fast">, Type.TLiteral<"route:balanced">, Type.TLiteral<"route:thorough">]>;
26
+ readonly task: Type.TString;
27
+ readonly controls: Type.TObject<{
28
+ readonly maxConcurrency: Type.TInteger;
29
+ readonly maxDepth: Type.TInteger;
30
+ readonly depth: Type.TInteger;
31
+ readonly timeoutMs: Type.TInteger;
32
+ }>;
33
+ readonly input: Type.TObject<{
34
+ readonly artifacts: Type.TArray<Type.TObject<{
35
+ readonly id: Type.TString;
36
+ readonly kind: Type.TUnion<[Type.TLiteral<"candidate-patch">, Type.TLiteral<"dependency-output">, Type.TLiteral<"source-observation">, Type.TLiteral<"validation-report">]>;
37
+ readonly reference: Type.TString;
38
+ readonly digest: Type.TString;
39
+ }>>;
40
+ }>;
41
+ }>;
42
+ export type HumainAgentExecutionClaim = Static<typeof HumainAgentExecutionClaimSchema>;
43
+ export declare const HumainAgentExecutionRequestSchema: Type.TObject<{
44
+ readonly schemaVersion: Type.TLiteral<1>;
45
+ readonly kind: Type.TLiteral<"execute">;
46
+ readonly mode: Type.TUnion<[Type.TLiteral<"node">, Type.TLiteral<"workflow">]>;
47
+ readonly invocationId: Type.TString;
48
+ readonly batchId: Type.TOptional<Type.TString>;
49
+ readonly claims: Type.TArray<Type.TObject<{
50
+ readonly workUnitId: Type.TString;
51
+ readonly nodeId: Type.TString;
52
+ readonly attemptNumber: Type.TInteger;
53
+ readonly attemptFence: Type.TInteger;
54
+ readonly segmentFence: Type.TInteger;
55
+ readonly routeRef: Type.TUnion<[Type.TLiteral<"route:fast">, Type.TLiteral<"route:balanced">, Type.TLiteral<"route:thorough">]>;
56
+ readonly task: Type.TString;
57
+ readonly controls: Type.TObject<{
58
+ readonly maxConcurrency: Type.TInteger;
59
+ readonly maxDepth: Type.TInteger;
60
+ readonly depth: Type.TInteger;
61
+ readonly timeoutMs: Type.TInteger;
62
+ }>;
63
+ readonly input: Type.TObject<{
64
+ readonly artifacts: Type.TArray<Type.TObject<{
65
+ readonly id: Type.TString;
66
+ readonly kind: Type.TUnion<[Type.TLiteral<"candidate-patch">, Type.TLiteral<"dependency-output">, Type.TLiteral<"source-observation">, Type.TLiteral<"validation-report">]>;
67
+ readonly reference: Type.TString;
68
+ readonly digest: Type.TString;
69
+ }>>;
70
+ }>;
71
+ }>>;
72
+ }>;
73
+ export type HumainAgentExecutionRequest = Static<typeof HumainAgentExecutionRequestSchema>;
74
+ export declare const HumainAgentUsageSchema: Type.TUnion<[Type.TObject<{
75
+ readonly status: Type.TLiteral<"unknown">;
76
+ }>, Type.TObject<{
77
+ readonly status: Type.TLiteral<"measured">;
78
+ readonly totalCalls: Type.TOptional<Type.TInteger>;
79
+ readonly totalTurns: Type.TOptional<Type.TInteger>;
80
+ readonly totalTokens: Type.TInteger;
81
+ readonly costMicrocents: Type.TInteger;
82
+ }>]>;
83
+ export type HumainAgentUsage = Static<typeof HumainAgentUsageSchema>;
84
+ export declare const HUMAIN_AGENT_EXECUTION_FAILURE_CODES: readonly ["adapter_execution_failed", "incompatible_adapter_capability", "invalid_adapter_result", "invalid_execution_request", "provider_timeout", "provider_unavailable", "reused_execution_context", "transport_interrupted"];
85
+ export type HumainAgentExecutionFailureCode = (typeof HUMAIN_AGENT_EXECUTION_FAILURE_CODES)[number];
86
+ export declare const HumainAgentExecutionOutcomeSchema: Type.TUnion<[Type.TObject<{
87
+ readonly workUnitId: Type.TString;
88
+ readonly nodeId: Type.TString;
89
+ readonly attemptNumber: Type.TInteger;
90
+ readonly attemptFence: Type.TInteger;
91
+ readonly segmentFence: Type.TInteger;
92
+ readonly kind: Type.TLiteral<"succeeded">;
93
+ readonly output: Type.TObject<{
94
+ readonly summary: Type.TString;
95
+ readonly artifacts: Type.TArray<Type.TObject<{
96
+ readonly id: Type.TString;
97
+ readonly kind: Type.TUnion<[Type.TLiteral<"candidate-patch">, Type.TLiteral<"dependency-output">, Type.TLiteral<"source-observation">, Type.TLiteral<"validation-report">]>;
98
+ readonly reference: Type.TString;
99
+ readonly digest: Type.TString;
100
+ }>>;
101
+ }>;
102
+ readonly usage: Type.TUnion<[Type.TObject<{
103
+ readonly status: Type.TLiteral<"unknown">;
104
+ }>, Type.TObject<{
105
+ readonly status: Type.TLiteral<"measured">;
106
+ readonly totalCalls: Type.TOptional<Type.TInteger>;
107
+ readonly totalTurns: Type.TOptional<Type.TInteger>;
108
+ readonly totalTokens: Type.TInteger;
109
+ readonly costMicrocents: Type.TInteger;
110
+ }>]>;
111
+ }>, Type.TObject<{
112
+ readonly workUnitId: Type.TString;
113
+ readonly nodeId: Type.TString;
114
+ readonly attemptNumber: Type.TInteger;
115
+ readonly attemptFence: Type.TInteger;
116
+ readonly segmentFence: Type.TInteger;
117
+ readonly kind: Type.TLiteral<"failed">;
118
+ readonly failureCode: Type.TUnion<[Type.TLiteral<"adapter_execution_failed">, Type.TLiteral<"incompatible_adapter_capability">, Type.TLiteral<"invalid_adapter_result">, Type.TLiteral<"invalid_execution_request">, Type.TLiteral<"provider_timeout">, Type.TLiteral<"provider_unavailable">, Type.TLiteral<"reused_execution_context">, Type.TLiteral<"transport_interrupted">]>;
119
+ readonly usage: Type.TUnion<[Type.TObject<{
120
+ readonly status: Type.TLiteral<"unknown">;
121
+ }>, Type.TObject<{
122
+ readonly status: Type.TLiteral<"measured">;
123
+ readonly totalCalls: Type.TOptional<Type.TInteger>;
124
+ readonly totalTurns: Type.TOptional<Type.TInteger>;
125
+ readonly totalTokens: Type.TInteger;
126
+ readonly costMicrocents: Type.TInteger;
127
+ }>]>;
128
+ }>, Type.TObject<{
129
+ readonly workUnitId: Type.TString;
130
+ readonly nodeId: Type.TString;
131
+ readonly attemptNumber: Type.TInteger;
132
+ readonly attemptFence: Type.TInteger;
133
+ readonly segmentFence: Type.TInteger;
134
+ readonly kind: Type.TLiteral<"cancelled">;
135
+ readonly terminationConfirmed: Type.TBoolean;
136
+ readonly usage: Type.TUnion<[Type.TObject<{
137
+ readonly status: Type.TLiteral<"unknown">;
138
+ }>, Type.TObject<{
139
+ readonly status: Type.TLiteral<"measured">;
140
+ readonly totalCalls: Type.TOptional<Type.TInteger>;
141
+ readonly totalTurns: Type.TOptional<Type.TInteger>;
142
+ readonly totalTokens: Type.TInteger;
143
+ readonly costMicrocents: Type.TInteger;
144
+ }>]>;
145
+ }>]>;
146
+ export type HumainAgentExecutionOutcome = Static<typeof HumainAgentExecutionOutcomeSchema>;
147
+ export declare const HumainAgentExecutionResponseSchema: Type.TObject<{
148
+ readonly schemaVersion: Type.TLiteral<1>;
149
+ readonly kind: Type.TLiteral<"result">;
150
+ readonly mode: Type.TUnion<[Type.TLiteral<"node">, Type.TLiteral<"workflow">]>;
151
+ readonly invocationId: Type.TString;
152
+ readonly batchId: Type.TOptional<Type.TString>;
153
+ readonly termination: Type.TUnion<[Type.TLiteral<"not-requested">, Type.TLiteral<"confirmed">, Type.TLiteral<"unconfirmed">]>;
154
+ readonly outcomes: Type.TArray<Type.TUnion<[Type.TObject<{
155
+ readonly workUnitId: Type.TString;
156
+ readonly nodeId: Type.TString;
157
+ readonly attemptNumber: Type.TInteger;
158
+ readonly attemptFence: Type.TInteger;
159
+ readonly segmentFence: Type.TInteger;
160
+ readonly kind: Type.TLiteral<"succeeded">;
161
+ readonly output: Type.TObject<{
162
+ readonly summary: Type.TString;
163
+ readonly artifacts: Type.TArray<Type.TObject<{
164
+ readonly id: Type.TString;
165
+ readonly kind: Type.TUnion<[Type.TLiteral<"candidate-patch">, Type.TLiteral<"dependency-output">, Type.TLiteral<"source-observation">, Type.TLiteral<"validation-report">]>;
166
+ readonly reference: Type.TString;
167
+ readonly digest: Type.TString;
168
+ }>>;
169
+ }>;
170
+ readonly usage: Type.TUnion<[Type.TObject<{
171
+ readonly status: Type.TLiteral<"unknown">;
172
+ }>, Type.TObject<{
173
+ readonly status: Type.TLiteral<"measured">;
174
+ readonly totalCalls: Type.TOptional<Type.TInteger>;
175
+ readonly totalTurns: Type.TOptional<Type.TInteger>;
176
+ readonly totalTokens: Type.TInteger;
177
+ readonly costMicrocents: Type.TInteger;
178
+ }>]>;
179
+ }>, Type.TObject<{
180
+ readonly workUnitId: Type.TString;
181
+ readonly nodeId: Type.TString;
182
+ readonly attemptNumber: Type.TInteger;
183
+ readonly attemptFence: Type.TInteger;
184
+ readonly segmentFence: Type.TInteger;
185
+ readonly kind: Type.TLiteral<"failed">;
186
+ readonly failureCode: Type.TUnion<[Type.TLiteral<"adapter_execution_failed">, Type.TLiteral<"incompatible_adapter_capability">, Type.TLiteral<"invalid_adapter_result">, Type.TLiteral<"invalid_execution_request">, Type.TLiteral<"provider_timeout">, Type.TLiteral<"provider_unavailable">, Type.TLiteral<"reused_execution_context">, Type.TLiteral<"transport_interrupted">]>;
187
+ readonly usage: Type.TUnion<[Type.TObject<{
188
+ readonly status: Type.TLiteral<"unknown">;
189
+ }>, Type.TObject<{
190
+ readonly status: Type.TLiteral<"measured">;
191
+ readonly totalCalls: Type.TOptional<Type.TInteger>;
192
+ readonly totalTurns: Type.TOptional<Type.TInteger>;
193
+ readonly totalTokens: Type.TInteger;
194
+ readonly costMicrocents: Type.TInteger;
195
+ }>]>;
196
+ }>, Type.TObject<{
197
+ readonly workUnitId: Type.TString;
198
+ readonly nodeId: Type.TString;
199
+ readonly attemptNumber: Type.TInteger;
200
+ readonly attemptFence: Type.TInteger;
201
+ readonly segmentFence: Type.TInteger;
202
+ readonly kind: Type.TLiteral<"cancelled">;
203
+ readonly terminationConfirmed: Type.TBoolean;
204
+ readonly usage: Type.TUnion<[Type.TObject<{
205
+ readonly status: Type.TLiteral<"unknown">;
206
+ }>, Type.TObject<{
207
+ readonly status: Type.TLiteral<"measured">;
208
+ readonly totalCalls: Type.TOptional<Type.TInteger>;
209
+ readonly totalTurns: Type.TOptional<Type.TInteger>;
210
+ readonly totalTokens: Type.TInteger;
211
+ readonly costMicrocents: Type.TInteger;
212
+ }>]>;
213
+ }>]>>;
214
+ }>;
215
+ export type HumainAgentExecutionResponse = Static<typeof HumainAgentExecutionResponseSchema>;
216
+ export declare function parseHumainAgentExecutionRequest(input: unknown): HumainAgentExecutionRequest;
217
+ export declare function parseHumainAgentExecutionResponse(requestInput: unknown, responseInput: unknown): HumainAgentExecutionResponse;
218
+ //# sourceMappingURL=agent-execution-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-execution-protocol.d.ts","sourceRoot":"","sources":["../../src/humain/agent-execution-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG5C,eAAO,MAAM,qCAAqC,GAAa,CAAC;AAchE,eAAO,MAAM,yBAAyB,8GAIpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE3E,eAAO,MAAM,yBAAyB;;;;;EAUpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE3E,eAAO,MAAM,kCAAkC;;;;;EAK7C,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE7F,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;EAY1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAEvF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO5C,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE3F,eAAO,MAAM,sBAAsB;;;;;;;;IASjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAErE,eAAO,MAAM,oCAAoC,kOASvC,CAAC;AACX,MAAM,MAAM,+BAA+B,GAAG,CAAC,OAAO,oCAAoC,CAAC,CAAC,MAAM,CAAC,CAAC;AAqBpG,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsB5C,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE3F,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ7C,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAK7F,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,2BAA2B,CAmB5F;AAED,wBAAgB,iCAAiC,CAChD,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,OAAO,GACpB,4BAA4B,CA2C9B","sourcesContent":["import { type Static, Type } from \"typebox\";\nimport { Compile } from \"typebox/compile\";\n\nexport const HUMAIN_AGENT_EXECUTION_SCHEMA_VERSION = 1 as const;\n\nconst StrictObject = <const T extends Parameters<typeof Type.Object>[0]>(properties: T) =>\n\tType.Object(properties, { additionalProperties: false });\nconst StableIdentifier = Type.String({ minLength: 1, maxLength: 256 });\nconst PositiveInteger = Type.Integer({ minimum: 1, maximum: Number.MAX_SAFE_INTEGER });\nconst NonnegativeInteger = Type.Integer({ minimum: 0, maximum: Number.MAX_SAFE_INTEGER });\nconst Digest = Type.String({ pattern: \"^[a-f0-9]{64}$\" });\nconst SafeArtifactReference = Type.String({\n\tminLength: 1,\n\tmaxLength: 512,\n\tpattern: \"^(?!/)(?!.*(?:^|/)\\\\.\\\\.(?:/|$))[A-Za-z0-9._-]+(?:/[A-Za-z0-9._-]+)*$\",\n});\n\nexport const HumainAgentRouteRefSchema = Type.Union([\n\tType.Literal(\"route:fast\"),\n\tType.Literal(\"route:balanced\"),\n\tType.Literal(\"route:thorough\"),\n]);\nexport type HumainAgentRouteRef = Static<typeof HumainAgentRouteRefSchema>;\n\nexport const HumainAgentArtifactSchema = StrictObject({\n\tid: StableIdentifier,\n\tkind: Type.Union([\n\t\tType.Literal(\"candidate-patch\"),\n\t\tType.Literal(\"dependency-output\"),\n\t\tType.Literal(\"source-observation\"),\n\t\tType.Literal(\"validation-report\"),\n\t]),\n\treference: SafeArtifactReference,\n\tdigest: Digest,\n});\nexport type HumainAgentArtifact = Static<typeof HumainAgentArtifactSchema>;\n\nexport const HumainAgentExecutionControlsSchema = StrictObject({\n\tmaxConcurrency: Type.Integer({ minimum: 1, maximum: 16 }),\n\tmaxDepth: Type.Integer({ minimum: 1, maximum: 16 }),\n\tdepth: Type.Integer({ minimum: 0, maximum: 16 }),\n\ttimeoutMs: Type.Integer({ minimum: 1, maximum: 86_400_000 }),\n});\nexport type HumainAgentExecutionControls = Static<typeof HumainAgentExecutionControlsSchema>;\n\nexport const HumainAgentExecutionClaimSchema = StrictObject({\n\tworkUnitId: StableIdentifier,\n\tnodeId: StableIdentifier,\n\tattemptNumber: PositiveInteger,\n\tattemptFence: PositiveInteger,\n\tsegmentFence: PositiveInteger,\n\trouteRef: HumainAgentRouteRefSchema,\n\ttask: Type.String({ minLength: 1, maxLength: 100_000 }),\n\tcontrols: HumainAgentExecutionControlsSchema,\n\tinput: StrictObject({\n\t\tartifacts: Type.Array(HumainAgentArtifactSchema, { maxItems: 16 }),\n\t}),\n});\nexport type HumainAgentExecutionClaim = Static<typeof HumainAgentExecutionClaimSchema>;\n\nexport const HumainAgentExecutionRequestSchema = StrictObject({\n\tschemaVersion: Type.Literal(HUMAIN_AGENT_EXECUTION_SCHEMA_VERSION),\n\tkind: Type.Literal(\"execute\"),\n\tmode: Type.Union([Type.Literal(\"node\"), Type.Literal(\"workflow\")]),\n\tinvocationId: StableIdentifier,\n\tbatchId: Type.Optional(StableIdentifier),\n\tclaims: Type.Array(HumainAgentExecutionClaimSchema, { minItems: 1, maxItems: 8 }),\n});\nexport type HumainAgentExecutionRequest = Static<typeof HumainAgentExecutionRequestSchema>;\n\nexport const HumainAgentUsageSchema = Type.Union([\n\tStrictObject({ status: Type.Literal(\"unknown\") }),\n\tStrictObject({\n\t\tstatus: Type.Literal(\"measured\"),\n\t\ttotalCalls: Type.Optional(NonnegativeInteger),\n\t\ttotalTurns: Type.Optional(NonnegativeInteger),\n\t\ttotalTokens: NonnegativeInteger,\n\t\tcostMicrocents: NonnegativeInteger,\n\t}),\n]);\nexport type HumainAgentUsage = Static<typeof HumainAgentUsageSchema>;\n\nexport const HUMAIN_AGENT_EXECUTION_FAILURE_CODES = [\n\t\"adapter_execution_failed\",\n\t\"incompatible_adapter_capability\",\n\t\"invalid_adapter_result\",\n\t\"invalid_execution_request\",\n\t\"provider_timeout\",\n\t\"provider_unavailable\",\n\t\"reused_execution_context\",\n\t\"transport_interrupted\",\n] as const;\nexport type HumainAgentExecutionFailureCode = (typeof HUMAIN_AGENT_EXECUTION_FAILURE_CODES)[number];\n\nconst HumainAgentExecutionFailureCodeSchema = Type.Union([\n\tType.Literal(\"adapter_execution_failed\"),\n\tType.Literal(\"incompatible_adapter_capability\"),\n\tType.Literal(\"invalid_adapter_result\"),\n\tType.Literal(\"invalid_execution_request\"),\n\tType.Literal(\"provider_timeout\"),\n\tType.Literal(\"provider_unavailable\"),\n\tType.Literal(\"reused_execution_context\"),\n\tType.Literal(\"transport_interrupted\"),\n]);\n\nconst OutcomeIdentity = {\n\tworkUnitId: StableIdentifier,\n\tnodeId: StableIdentifier,\n\tattemptNumber: PositiveInteger,\n\tattemptFence: PositiveInteger,\n\tsegmentFence: PositiveInteger,\n};\n\nexport const HumainAgentExecutionOutcomeSchema = Type.Union([\n\tStrictObject({\n\t\t...OutcomeIdentity,\n\t\tkind: Type.Literal(\"succeeded\"),\n\t\toutput: StrictObject({\n\t\t\tsummary: Type.String({ minLength: 1, maxLength: 512 }),\n\t\t\tartifacts: Type.Array(HumainAgentArtifactSchema, { maxItems: 16 }),\n\t\t}),\n\t\tusage: HumainAgentUsageSchema,\n\t}),\n\tStrictObject({\n\t\t...OutcomeIdentity,\n\t\tkind: Type.Literal(\"failed\"),\n\t\tfailureCode: HumainAgentExecutionFailureCodeSchema,\n\t\tusage: HumainAgentUsageSchema,\n\t}),\n\tStrictObject({\n\t\t...OutcomeIdentity,\n\t\tkind: Type.Literal(\"cancelled\"),\n\t\tterminationConfirmed: Type.Boolean(),\n\t\tusage: HumainAgentUsageSchema,\n\t}),\n]);\nexport type HumainAgentExecutionOutcome = Static<typeof HumainAgentExecutionOutcomeSchema>;\n\nexport const HumainAgentExecutionResponseSchema = StrictObject({\n\tschemaVersion: Type.Literal(HUMAIN_AGENT_EXECUTION_SCHEMA_VERSION),\n\tkind: Type.Literal(\"result\"),\n\tmode: Type.Union([Type.Literal(\"node\"), Type.Literal(\"workflow\")]),\n\tinvocationId: StableIdentifier,\n\tbatchId: Type.Optional(StableIdentifier),\n\ttermination: Type.Union([Type.Literal(\"not-requested\"), Type.Literal(\"confirmed\"), Type.Literal(\"unconfirmed\")]),\n\toutcomes: Type.Array(HumainAgentExecutionOutcomeSchema, { minItems: 1, maxItems: 8 }),\n});\nexport type HumainAgentExecutionResponse = Static<typeof HumainAgentExecutionResponseSchema>;\n\nconst RequestValidator = Compile(HumainAgentExecutionRequestSchema);\nconst ResponseValidator = Compile(HumainAgentExecutionResponseSchema);\n\nexport function parseHumainAgentExecutionRequest(input: unknown): HumainAgentExecutionRequest {\n\tif (!RequestValidator.Check(input)) {\n\t\tthrow new Error(\"Invalid HUMAIN agent execution request\");\n\t}\n\tif (input.mode === \"node\" && (input.claims.length !== 1 || input.batchId !== undefined)) {\n\t\tthrow new Error(\"Invalid HUMAIN agent execution request: node mode requires one claim and no batch identity\");\n\t}\n\tif (input.mode === \"workflow\" && input.batchId === undefined) {\n\t\tthrow new Error(\"Invalid HUMAIN agent execution request: workflow mode requires a batch identity\");\n\t}\n\tconst workUnitIds = new Set(input.claims.map(({ workUnitId }) => workUnitId));\n\tconst nodeIds = new Set(input.claims.map(({ nodeId }) => nodeId));\n\tif (workUnitIds.size !== input.claims.length || nodeIds.size !== input.claims.length) {\n\t\tthrow new Error(\"Invalid HUMAIN agent execution request: claim identities must be unique\");\n\t}\n\tif (input.claims.some(({ controls }) => controls.depth >= controls.maxDepth)) {\n\t\tthrow new Error(\"Invalid HUMAIN agent execution request: delegation depth limit is exhausted\");\n\t}\n\treturn deepFreeze(structuredClone(input));\n}\n\nexport function parseHumainAgentExecutionResponse(\n\trequestInput: unknown,\n\tresponseInput: unknown,\n): HumainAgentExecutionResponse {\n\tconst request = parseHumainAgentExecutionRequest(requestInput);\n\tif (!ResponseValidator.Check(responseInput)) {\n\t\tthrow new Error(\"Invalid HUMAIN agent execution response\");\n\t}\n\tconst response = responseInput;\n\tif (response.outcomes.some((outcome) => outcome.kind === \"succeeded\" && !isSafeSummary(outcome.output.summary))) {\n\t\tthrow new Error(\"Invalid HUMAIN agent execution response\");\n\t}\n\tif (\n\t\tresponse.mode !== request.mode ||\n\t\tresponse.invocationId !== request.invocationId ||\n\t\tresponse.batchId !== request.batchId\n\t) {\n\t\tthrow new Error(\"HUMAIN agent result envelope mismatch\");\n\t}\n\tif (response.outcomes.length !== request.claims.length) {\n\t\tthrow new Error(\"HUMAIN agent result cardinality mismatch\");\n\t}\n\tfor (const [index, outcome] of response.outcomes.entries()) {\n\t\tconst claim = request.claims[index];\n\t\tif (\n\t\t\t!claim ||\n\t\t\toutcome.workUnitId !== claim.workUnitId ||\n\t\t\toutcome.nodeId !== claim.nodeId ||\n\t\t\toutcome.attemptNumber !== claim.attemptNumber ||\n\t\t\toutcome.attemptFence !== claim.attemptFence ||\n\t\t\toutcome.segmentFence !== claim.segmentFence\n\t\t) {\n\t\t\tthrow new Error(\"HUMAIN agent result identity mismatch\");\n\t\t}\n\t}\n\tconst cancelled = response.outcomes.filter((outcome) => outcome.kind === \"cancelled\");\n\tconst expectedTermination =\n\t\tcancelled.length === 0\n\t\t\t? \"not-requested\"\n\t\t\t: cancelled.every((outcome) => outcome.terminationConfirmed)\n\t\t\t\t? \"confirmed\"\n\t\t\t\t: \"unconfirmed\";\n\tif (response.termination !== expectedTermination) {\n\t\tthrow new Error(\"HUMAIN agent result termination evidence mismatch\");\n\t}\n\treturn deepFreeze(structuredClone(response));\n}\n\nfunction isSafeSummary(value: string): boolean {\n\treturn (\n\t\tvalue === value.trim() &&\n\t\t/^[\\p{L}\\p{N}][\\p{L}\\p{N} .,;:!?()&'-]*$/u.test(value) &&\n\t\t!/\\b(?:[A-Za-z0-9-]+\\.)+[A-Za-z]{2,}(?::\\d{1,5})?\\b/u.test(value) &&\n\t\t!/\\b(?:\\d{1,3}\\.){3}\\d{1,3}(?::\\d{1,5})?\\b/u.test(value) &&\n\t\t!/^(?:rm|curl|wget|sh|bash|zsh|fish|pwsh|powershell|cmd|node|bun|deno|npx|npm|pnpm|yarn|python(?:3)?|perl|ruby|git|docker|kubectl|ssh|scp|sudo|cat|ls|cd|mkdir|touch|chmod|chown|env|export|set|eval|exec)\\b/iu.test(\n\t\t\tvalue,\n\t\t) &&\n\t\t!/\\b(?:api[- ]?key|secret|token|credential|password)\\s*:/iu.test(value) &&\n\t\t!/\\b(?:claude|gpt|gemini|llama|mistral)[-_:][A-Za-z0-9._:-]+\\b/iu.test(value)\n\t);\n}\n\nfunction deepFreeze<T>(value: T): T {\n\tif (value === null || typeof value !== \"object\" || Object.isFrozen(value)) return value;\n\tObject.freeze(value);\n\tfor (const child of Object.values(value)) deepFreeze(child);\n\treturn value;\n}\n"]}
@@ -0,0 +1,204 @@
1
+ import { Type } from "typebox";
2
+ import { Compile } from "typebox/compile";
3
+ export const HUMAIN_AGENT_EXECUTION_SCHEMA_VERSION = 1;
4
+ const StrictObject = (properties) => Type.Object(properties, { additionalProperties: false });
5
+ const StableIdentifier = Type.String({ minLength: 1, maxLength: 256 });
6
+ const PositiveInteger = Type.Integer({ minimum: 1, maximum: Number.MAX_SAFE_INTEGER });
7
+ const NonnegativeInteger = Type.Integer({ minimum: 0, maximum: Number.MAX_SAFE_INTEGER });
8
+ const Digest = Type.String({ pattern: "^[a-f0-9]{64}$" });
9
+ const SafeArtifactReference = Type.String({
10
+ minLength: 1,
11
+ maxLength: 512,
12
+ pattern: "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))[A-Za-z0-9._-]+(?:/[A-Za-z0-9._-]+)*$",
13
+ });
14
+ export const HumainAgentRouteRefSchema = Type.Union([
15
+ Type.Literal("route:fast"),
16
+ Type.Literal("route:balanced"),
17
+ Type.Literal("route:thorough"),
18
+ ]);
19
+ export const HumainAgentArtifactSchema = StrictObject({
20
+ id: StableIdentifier,
21
+ kind: Type.Union([
22
+ Type.Literal("candidate-patch"),
23
+ Type.Literal("dependency-output"),
24
+ Type.Literal("source-observation"),
25
+ Type.Literal("validation-report"),
26
+ ]),
27
+ reference: SafeArtifactReference,
28
+ digest: Digest,
29
+ });
30
+ export const HumainAgentExecutionControlsSchema = StrictObject({
31
+ maxConcurrency: Type.Integer({ minimum: 1, maximum: 16 }),
32
+ maxDepth: Type.Integer({ minimum: 1, maximum: 16 }),
33
+ depth: Type.Integer({ minimum: 0, maximum: 16 }),
34
+ timeoutMs: Type.Integer({ minimum: 1, maximum: 86_400_000 }),
35
+ });
36
+ export const HumainAgentExecutionClaimSchema = StrictObject({
37
+ workUnitId: StableIdentifier,
38
+ nodeId: StableIdentifier,
39
+ attemptNumber: PositiveInteger,
40
+ attemptFence: PositiveInteger,
41
+ segmentFence: PositiveInteger,
42
+ routeRef: HumainAgentRouteRefSchema,
43
+ task: Type.String({ minLength: 1, maxLength: 100_000 }),
44
+ controls: HumainAgentExecutionControlsSchema,
45
+ input: StrictObject({
46
+ artifacts: Type.Array(HumainAgentArtifactSchema, { maxItems: 16 }),
47
+ }),
48
+ });
49
+ export const HumainAgentExecutionRequestSchema = StrictObject({
50
+ schemaVersion: Type.Literal(HUMAIN_AGENT_EXECUTION_SCHEMA_VERSION),
51
+ kind: Type.Literal("execute"),
52
+ mode: Type.Union([Type.Literal("node"), Type.Literal("workflow")]),
53
+ invocationId: StableIdentifier,
54
+ batchId: Type.Optional(StableIdentifier),
55
+ claims: Type.Array(HumainAgentExecutionClaimSchema, { minItems: 1, maxItems: 8 }),
56
+ });
57
+ export const HumainAgentUsageSchema = Type.Union([
58
+ StrictObject({ status: Type.Literal("unknown") }),
59
+ StrictObject({
60
+ status: Type.Literal("measured"),
61
+ totalCalls: Type.Optional(NonnegativeInteger),
62
+ totalTurns: Type.Optional(NonnegativeInteger),
63
+ totalTokens: NonnegativeInteger,
64
+ costMicrocents: NonnegativeInteger,
65
+ }),
66
+ ]);
67
+ export const HUMAIN_AGENT_EXECUTION_FAILURE_CODES = [
68
+ "adapter_execution_failed",
69
+ "incompatible_adapter_capability",
70
+ "invalid_adapter_result",
71
+ "invalid_execution_request",
72
+ "provider_timeout",
73
+ "provider_unavailable",
74
+ "reused_execution_context",
75
+ "transport_interrupted",
76
+ ];
77
+ const HumainAgentExecutionFailureCodeSchema = Type.Union([
78
+ Type.Literal("adapter_execution_failed"),
79
+ Type.Literal("incompatible_adapter_capability"),
80
+ Type.Literal("invalid_adapter_result"),
81
+ Type.Literal("invalid_execution_request"),
82
+ Type.Literal("provider_timeout"),
83
+ Type.Literal("provider_unavailable"),
84
+ Type.Literal("reused_execution_context"),
85
+ Type.Literal("transport_interrupted"),
86
+ ]);
87
+ const OutcomeIdentity = {
88
+ workUnitId: StableIdentifier,
89
+ nodeId: StableIdentifier,
90
+ attemptNumber: PositiveInteger,
91
+ attemptFence: PositiveInteger,
92
+ segmentFence: PositiveInteger,
93
+ };
94
+ export const HumainAgentExecutionOutcomeSchema = Type.Union([
95
+ StrictObject({
96
+ ...OutcomeIdentity,
97
+ kind: Type.Literal("succeeded"),
98
+ output: StrictObject({
99
+ summary: Type.String({ minLength: 1, maxLength: 512 }),
100
+ artifacts: Type.Array(HumainAgentArtifactSchema, { maxItems: 16 }),
101
+ }),
102
+ usage: HumainAgentUsageSchema,
103
+ }),
104
+ StrictObject({
105
+ ...OutcomeIdentity,
106
+ kind: Type.Literal("failed"),
107
+ failureCode: HumainAgentExecutionFailureCodeSchema,
108
+ usage: HumainAgentUsageSchema,
109
+ }),
110
+ StrictObject({
111
+ ...OutcomeIdentity,
112
+ kind: Type.Literal("cancelled"),
113
+ terminationConfirmed: Type.Boolean(),
114
+ usage: HumainAgentUsageSchema,
115
+ }),
116
+ ]);
117
+ export const HumainAgentExecutionResponseSchema = StrictObject({
118
+ schemaVersion: Type.Literal(HUMAIN_AGENT_EXECUTION_SCHEMA_VERSION),
119
+ kind: Type.Literal("result"),
120
+ mode: Type.Union([Type.Literal("node"), Type.Literal("workflow")]),
121
+ invocationId: StableIdentifier,
122
+ batchId: Type.Optional(StableIdentifier),
123
+ termination: Type.Union([Type.Literal("not-requested"), Type.Literal("confirmed"), Type.Literal("unconfirmed")]),
124
+ outcomes: Type.Array(HumainAgentExecutionOutcomeSchema, { minItems: 1, maxItems: 8 }),
125
+ });
126
+ const RequestValidator = Compile(HumainAgentExecutionRequestSchema);
127
+ const ResponseValidator = Compile(HumainAgentExecutionResponseSchema);
128
+ export function parseHumainAgentExecutionRequest(input) {
129
+ if (!RequestValidator.Check(input)) {
130
+ throw new Error("Invalid HUMAIN agent execution request");
131
+ }
132
+ if (input.mode === "node" && (input.claims.length !== 1 || input.batchId !== undefined)) {
133
+ throw new Error("Invalid HUMAIN agent execution request: node mode requires one claim and no batch identity");
134
+ }
135
+ if (input.mode === "workflow" && input.batchId === undefined) {
136
+ throw new Error("Invalid HUMAIN agent execution request: workflow mode requires a batch identity");
137
+ }
138
+ const workUnitIds = new Set(input.claims.map(({ workUnitId }) => workUnitId));
139
+ const nodeIds = new Set(input.claims.map(({ nodeId }) => nodeId));
140
+ if (workUnitIds.size !== input.claims.length || nodeIds.size !== input.claims.length) {
141
+ throw new Error("Invalid HUMAIN agent execution request: claim identities must be unique");
142
+ }
143
+ if (input.claims.some(({ controls }) => controls.depth >= controls.maxDepth)) {
144
+ throw new Error("Invalid HUMAIN agent execution request: delegation depth limit is exhausted");
145
+ }
146
+ return deepFreeze(structuredClone(input));
147
+ }
148
+ export function parseHumainAgentExecutionResponse(requestInput, responseInput) {
149
+ const request = parseHumainAgentExecutionRequest(requestInput);
150
+ if (!ResponseValidator.Check(responseInput)) {
151
+ throw new Error("Invalid HUMAIN agent execution response");
152
+ }
153
+ const response = responseInput;
154
+ if (response.outcomes.some((outcome) => outcome.kind === "succeeded" && !isSafeSummary(outcome.output.summary))) {
155
+ throw new Error("Invalid HUMAIN agent execution response");
156
+ }
157
+ if (response.mode !== request.mode ||
158
+ response.invocationId !== request.invocationId ||
159
+ response.batchId !== request.batchId) {
160
+ throw new Error("HUMAIN agent result envelope mismatch");
161
+ }
162
+ if (response.outcomes.length !== request.claims.length) {
163
+ throw new Error("HUMAIN agent result cardinality mismatch");
164
+ }
165
+ for (const [index, outcome] of response.outcomes.entries()) {
166
+ const claim = request.claims[index];
167
+ if (!claim ||
168
+ outcome.workUnitId !== claim.workUnitId ||
169
+ outcome.nodeId !== claim.nodeId ||
170
+ outcome.attemptNumber !== claim.attemptNumber ||
171
+ outcome.attemptFence !== claim.attemptFence ||
172
+ outcome.segmentFence !== claim.segmentFence) {
173
+ throw new Error("HUMAIN agent result identity mismatch");
174
+ }
175
+ }
176
+ const cancelled = response.outcomes.filter((outcome) => outcome.kind === "cancelled");
177
+ const expectedTermination = cancelled.length === 0
178
+ ? "not-requested"
179
+ : cancelled.every((outcome) => outcome.terminationConfirmed)
180
+ ? "confirmed"
181
+ : "unconfirmed";
182
+ if (response.termination !== expectedTermination) {
183
+ throw new Error("HUMAIN agent result termination evidence mismatch");
184
+ }
185
+ return deepFreeze(structuredClone(response));
186
+ }
187
+ function isSafeSummary(value) {
188
+ return (value === value.trim() &&
189
+ /^[\p{L}\p{N}][\p{L}\p{N} .,;:!?()&'-]*$/u.test(value) &&
190
+ !/\b(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,}(?::\d{1,5})?\b/u.test(value) &&
191
+ !/\b(?:\d{1,3}\.){3}\d{1,3}(?::\d{1,5})?\b/u.test(value) &&
192
+ !/^(?:rm|curl|wget|sh|bash|zsh|fish|pwsh|powershell|cmd|node|bun|deno|npx|npm|pnpm|yarn|python(?:3)?|perl|ruby|git|docker|kubectl|ssh|scp|sudo|cat|ls|cd|mkdir|touch|chmod|chown|env|export|set|eval|exec)\b/iu.test(value) &&
193
+ !/\b(?:api[- ]?key|secret|token|credential|password)\s*:/iu.test(value) &&
194
+ !/\b(?:claude|gpt|gemini|llama|mistral)[-_:][A-Za-z0-9._:-]+\b/iu.test(value));
195
+ }
196
+ function deepFreeze(value) {
197
+ if (value === null || typeof value !== "object" || Object.isFrozen(value))
198
+ return value;
199
+ Object.freeze(value);
200
+ for (const child of Object.values(value))
201
+ deepFreeze(child);
202
+ return value;
203
+ }
204
+ //# sourceMappingURL=agent-execution-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-execution-protocol.js","sourceRoot":"","sources":["../../src/humain/agent-execution-protocol.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Static, Type } from \"typebox\";\nimport { Compile } from \"typebox/compile\";\n\nexport const HUMAIN_AGENT_EXECUTION_SCHEMA_VERSION = 1 as const;\n\nconst StrictObject = <const T extends Parameters<typeof Type.Object>[0]>(properties: T) =>\n\tType.Object(properties, { additionalProperties: false });\nconst StableIdentifier = Type.String({ minLength: 1, maxLength: 256 });\nconst PositiveInteger = Type.Integer({ minimum: 1, maximum: Number.MAX_SAFE_INTEGER });\nconst NonnegativeInteger = Type.Integer({ minimum: 0, maximum: Number.MAX_SAFE_INTEGER });\nconst Digest = Type.String({ pattern: \"^[a-f0-9]{64}$\" });\nconst SafeArtifactReference = Type.String({\n\tminLength: 1,\n\tmaxLength: 512,\n\tpattern: \"^(?!/)(?!.*(?:^|/)\\\\.\\\\.(?:/|$))[A-Za-z0-9._-]+(?:/[A-Za-z0-9._-]+)*$\",\n});\n\nexport const HumainAgentRouteRefSchema = Type.Union([\n\tType.Literal(\"route:fast\"),\n\tType.Literal(\"route:balanced\"),\n\tType.Literal(\"route:thorough\"),\n]);\nexport type HumainAgentRouteRef = Static<typeof HumainAgentRouteRefSchema>;\n\nexport const HumainAgentArtifactSchema = StrictObject({\n\tid: StableIdentifier,\n\tkind: Type.Union([\n\t\tType.Literal(\"candidate-patch\"),\n\t\tType.Literal(\"dependency-output\"),\n\t\tType.Literal(\"source-observation\"),\n\t\tType.Literal(\"validation-report\"),\n\t]),\n\treference: SafeArtifactReference,\n\tdigest: Digest,\n});\nexport type HumainAgentArtifact = Static<typeof HumainAgentArtifactSchema>;\n\nexport const HumainAgentExecutionControlsSchema = StrictObject({\n\tmaxConcurrency: Type.Integer({ minimum: 1, maximum: 16 }),\n\tmaxDepth: Type.Integer({ minimum: 1, maximum: 16 }),\n\tdepth: Type.Integer({ minimum: 0, maximum: 16 }),\n\ttimeoutMs: Type.Integer({ minimum: 1, maximum: 86_400_000 }),\n});\nexport type HumainAgentExecutionControls = Static<typeof HumainAgentExecutionControlsSchema>;\n\nexport const HumainAgentExecutionClaimSchema = StrictObject({\n\tworkUnitId: StableIdentifier,\n\tnodeId: StableIdentifier,\n\tattemptNumber: PositiveInteger,\n\tattemptFence: PositiveInteger,\n\tsegmentFence: PositiveInteger,\n\trouteRef: HumainAgentRouteRefSchema,\n\ttask: Type.String({ minLength: 1, maxLength: 100_000 }),\n\tcontrols: HumainAgentExecutionControlsSchema,\n\tinput: StrictObject({\n\t\tartifacts: Type.Array(HumainAgentArtifactSchema, { maxItems: 16 }),\n\t}),\n});\nexport type HumainAgentExecutionClaim = Static<typeof HumainAgentExecutionClaimSchema>;\n\nexport const HumainAgentExecutionRequestSchema = StrictObject({\n\tschemaVersion: Type.Literal(HUMAIN_AGENT_EXECUTION_SCHEMA_VERSION),\n\tkind: Type.Literal(\"execute\"),\n\tmode: Type.Union([Type.Literal(\"node\"), Type.Literal(\"workflow\")]),\n\tinvocationId: StableIdentifier,\n\tbatchId: Type.Optional(StableIdentifier),\n\tclaims: Type.Array(HumainAgentExecutionClaimSchema, { minItems: 1, maxItems: 8 }),\n});\nexport type HumainAgentExecutionRequest = Static<typeof HumainAgentExecutionRequestSchema>;\n\nexport const HumainAgentUsageSchema = Type.Union([\n\tStrictObject({ status: Type.Literal(\"unknown\") }),\n\tStrictObject({\n\t\tstatus: Type.Literal(\"measured\"),\n\t\ttotalCalls: Type.Optional(NonnegativeInteger),\n\t\ttotalTurns: Type.Optional(NonnegativeInteger),\n\t\ttotalTokens: NonnegativeInteger,\n\t\tcostMicrocents: NonnegativeInteger,\n\t}),\n]);\nexport type HumainAgentUsage = Static<typeof HumainAgentUsageSchema>;\n\nexport const HUMAIN_AGENT_EXECUTION_FAILURE_CODES = [\n\t\"adapter_execution_failed\",\n\t\"incompatible_adapter_capability\",\n\t\"invalid_adapter_result\",\n\t\"invalid_execution_request\",\n\t\"provider_timeout\",\n\t\"provider_unavailable\",\n\t\"reused_execution_context\",\n\t\"transport_interrupted\",\n] as const;\nexport type HumainAgentExecutionFailureCode = (typeof HUMAIN_AGENT_EXECUTION_FAILURE_CODES)[number];\n\nconst HumainAgentExecutionFailureCodeSchema = Type.Union([\n\tType.Literal(\"adapter_execution_failed\"),\n\tType.Literal(\"incompatible_adapter_capability\"),\n\tType.Literal(\"invalid_adapter_result\"),\n\tType.Literal(\"invalid_execution_request\"),\n\tType.Literal(\"provider_timeout\"),\n\tType.Literal(\"provider_unavailable\"),\n\tType.Literal(\"reused_execution_context\"),\n\tType.Literal(\"transport_interrupted\"),\n]);\n\nconst OutcomeIdentity = {\n\tworkUnitId: StableIdentifier,\n\tnodeId: StableIdentifier,\n\tattemptNumber: PositiveInteger,\n\tattemptFence: PositiveInteger,\n\tsegmentFence: PositiveInteger,\n};\n\nexport const HumainAgentExecutionOutcomeSchema = Type.Union([\n\tStrictObject({\n\t\t...OutcomeIdentity,\n\t\tkind: Type.Literal(\"succeeded\"),\n\t\toutput: StrictObject({\n\t\t\tsummary: Type.String({ minLength: 1, maxLength: 512 }),\n\t\t\tartifacts: Type.Array(HumainAgentArtifactSchema, { maxItems: 16 }),\n\t\t}),\n\t\tusage: HumainAgentUsageSchema,\n\t}),\n\tStrictObject({\n\t\t...OutcomeIdentity,\n\t\tkind: Type.Literal(\"failed\"),\n\t\tfailureCode: HumainAgentExecutionFailureCodeSchema,\n\t\tusage: HumainAgentUsageSchema,\n\t}),\n\tStrictObject({\n\t\t...OutcomeIdentity,\n\t\tkind: Type.Literal(\"cancelled\"),\n\t\tterminationConfirmed: Type.Boolean(),\n\t\tusage: HumainAgentUsageSchema,\n\t}),\n]);\nexport type HumainAgentExecutionOutcome = Static<typeof HumainAgentExecutionOutcomeSchema>;\n\nexport const HumainAgentExecutionResponseSchema = StrictObject({\n\tschemaVersion: Type.Literal(HUMAIN_AGENT_EXECUTION_SCHEMA_VERSION),\n\tkind: Type.Literal(\"result\"),\n\tmode: Type.Union([Type.Literal(\"node\"), Type.Literal(\"workflow\")]),\n\tinvocationId: StableIdentifier,\n\tbatchId: Type.Optional(StableIdentifier),\n\ttermination: Type.Union([Type.Literal(\"not-requested\"), Type.Literal(\"confirmed\"), Type.Literal(\"unconfirmed\")]),\n\toutcomes: Type.Array(HumainAgentExecutionOutcomeSchema, { minItems: 1, maxItems: 8 }),\n});\nexport type HumainAgentExecutionResponse = Static<typeof HumainAgentExecutionResponseSchema>;\n\nconst RequestValidator = Compile(HumainAgentExecutionRequestSchema);\nconst ResponseValidator = Compile(HumainAgentExecutionResponseSchema);\n\nexport function parseHumainAgentExecutionRequest(input: unknown): HumainAgentExecutionRequest {\n\tif (!RequestValidator.Check(input)) {\n\t\tthrow new Error(\"Invalid HUMAIN agent execution request\");\n\t}\n\tif (input.mode === \"node\" && (input.claims.length !== 1 || input.batchId !== undefined)) {\n\t\tthrow new Error(\"Invalid HUMAIN agent execution request: node mode requires one claim and no batch identity\");\n\t}\n\tif (input.mode === \"workflow\" && input.batchId === undefined) {\n\t\tthrow new Error(\"Invalid HUMAIN agent execution request: workflow mode requires a batch identity\");\n\t}\n\tconst workUnitIds = new Set(input.claims.map(({ workUnitId }) => workUnitId));\n\tconst nodeIds = new Set(input.claims.map(({ nodeId }) => nodeId));\n\tif (workUnitIds.size !== input.claims.length || nodeIds.size !== input.claims.length) {\n\t\tthrow new Error(\"Invalid HUMAIN agent execution request: claim identities must be unique\");\n\t}\n\tif (input.claims.some(({ controls }) => controls.depth >= controls.maxDepth)) {\n\t\tthrow new Error(\"Invalid HUMAIN agent execution request: delegation depth limit is exhausted\");\n\t}\n\treturn deepFreeze(structuredClone(input));\n}\n\nexport function parseHumainAgentExecutionResponse(\n\trequestInput: unknown,\n\tresponseInput: unknown,\n): HumainAgentExecutionResponse {\n\tconst request = parseHumainAgentExecutionRequest(requestInput);\n\tif (!ResponseValidator.Check(responseInput)) {\n\t\tthrow new Error(\"Invalid HUMAIN agent execution response\");\n\t}\n\tconst response = responseInput;\n\tif (response.outcomes.some((outcome) => outcome.kind === \"succeeded\" && !isSafeSummary(outcome.output.summary))) {\n\t\tthrow new Error(\"Invalid HUMAIN agent execution response\");\n\t}\n\tif (\n\t\tresponse.mode !== request.mode ||\n\t\tresponse.invocationId !== request.invocationId ||\n\t\tresponse.batchId !== request.batchId\n\t) {\n\t\tthrow new Error(\"HUMAIN agent result envelope mismatch\");\n\t}\n\tif (response.outcomes.length !== request.claims.length) {\n\t\tthrow new Error(\"HUMAIN agent result cardinality mismatch\");\n\t}\n\tfor (const [index, outcome] of response.outcomes.entries()) {\n\t\tconst claim = request.claims[index];\n\t\tif (\n\t\t\t!claim ||\n\t\t\toutcome.workUnitId !== claim.workUnitId ||\n\t\t\toutcome.nodeId !== claim.nodeId ||\n\t\t\toutcome.attemptNumber !== claim.attemptNumber ||\n\t\t\toutcome.attemptFence !== claim.attemptFence ||\n\t\t\toutcome.segmentFence !== claim.segmentFence\n\t\t) {\n\t\t\tthrow new Error(\"HUMAIN agent result identity mismatch\");\n\t\t}\n\t}\n\tconst cancelled = response.outcomes.filter((outcome) => outcome.kind === \"cancelled\");\n\tconst expectedTermination =\n\t\tcancelled.length === 0\n\t\t\t? \"not-requested\"\n\t\t\t: cancelled.every((outcome) => outcome.terminationConfirmed)\n\t\t\t\t? \"confirmed\"\n\t\t\t\t: \"unconfirmed\";\n\tif (response.termination !== expectedTermination) {\n\t\tthrow new Error(\"HUMAIN agent result termination evidence mismatch\");\n\t}\n\treturn deepFreeze(structuredClone(response));\n}\n\nfunction isSafeSummary(value: string): boolean {\n\treturn (\n\t\tvalue === value.trim() &&\n\t\t/^[\\p{L}\\p{N}][\\p{L}\\p{N} .,;:!?()&'-]*$/u.test(value) &&\n\t\t!/\\b(?:[A-Za-z0-9-]+\\.)+[A-Za-z]{2,}(?::\\d{1,5})?\\b/u.test(value) &&\n\t\t!/\\b(?:\\d{1,3}\\.){3}\\d{1,3}(?::\\d{1,5})?\\b/u.test(value) &&\n\t\t!/^(?:rm|curl|wget|sh|bash|zsh|fish|pwsh|powershell|cmd|node|bun|deno|npx|npm|pnpm|yarn|python(?:3)?|perl|ruby|git|docker|kubectl|ssh|scp|sudo|cat|ls|cd|mkdir|touch|chmod|chown|env|export|set|eval|exec)\\b/iu.test(\n\t\t\tvalue,\n\t\t) &&\n\t\t!/\\b(?:api[- ]?key|secret|token|credential|password)\\s*:/iu.test(value) &&\n\t\t!/\\b(?:claude|gpt|gemini|llama|mistral)[-_:][A-Za-z0-9._:-]+\\b/iu.test(value)\n\t);\n}\n\nfunction deepFreeze<T>(value: T): T {\n\tif (value === null || typeof value !== \"object\" || Object.isFrozen(value)) return value;\n\tObject.freeze(value);\n\tfor (const child of Object.values(value)) deepFreeze(child);\n\treturn value;\n}\n"]}
@@ -0,0 +1,35 @@
1
+ import { type HumainAgentArtifact, type HumainAgentExecutionResponse, type HumainAgentRouteRef, type HumainAgentUsage } from "./agent-execution-protocol.ts";
2
+ export type HumainAgentHostCompletion = {
3
+ kind: "succeeded";
4
+ output: {
5
+ summary: string;
6
+ artifacts: HumainAgentArtifact[];
7
+ };
8
+ usage: HumainAgentUsage;
9
+ } | {
10
+ kind: "failed";
11
+ failureCode: "adapter_execution_failed" | "invalid_adapter_result";
12
+ usage: HumainAgentUsage;
13
+ } | {
14
+ kind: "cancelled";
15
+ terminationConfirmed: boolean;
16
+ usage: HumainAgentUsage;
17
+ };
18
+ export interface HumainAgentExecutionHandle {
19
+ completion: Promise<HumainAgentHostCompletion>;
20
+ cancel(reason: string): Promise<{
21
+ terminationConfirmed: boolean;
22
+ }>;
23
+ dispose(): void;
24
+ }
25
+ export interface HumainAgentExecutionHost {
26
+ launch(request: {
27
+ routeRef: HumainAgentRouteRef;
28
+ task: string;
29
+ artifacts: HumainAgentArtifact[];
30
+ }): Promise<HumainAgentExecutionHandle | null>;
31
+ }
32
+ export declare function executeHumainAgentRequest(input: unknown, host: HumainAgentExecutionHost, options?: {
33
+ signal?: AbortSignal;
34
+ }): Promise<HumainAgentExecutionResponse>;
35
+ //# sourceMappingURL=agent-execution-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-execution-runtime.d.ts","sourceRoot":"","sources":["../../src/humain/agent-execution-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,mBAAmB,EAKxB,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EAGrB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,MAAM,yBAAyB,GAClC;IACA,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,mBAAmB,EAAE,CAAA;KAAE,CAAC;IAC9D,KAAK,EAAE,gBAAgB,CAAC;CACvB,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,0BAA0B,GAAG,wBAAwB,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,GAC/G;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,oBAAoB,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAEjF,MAAM,WAAW,0BAA0B;IAC1C,UAAU,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC/C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,oBAAoB,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnE,OAAO,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACxC,MAAM,CAAC,OAAO,EAAE;QACf,QAAQ,EAAE,mBAAmB,CAAC;QAC9B,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,mBAAmB,EAAE,CAAC;KACjC,GAAG,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAAC;CAC/C;AAID,wBAAsB,yBAAyB,CAC9C,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,wBAAwB,EAC9B,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACpC,OAAO,CAAC,4BAA4B,CAAC,CAyHvC","sourcesContent":["import {\n\ttype HumainAgentArtifact,\n\ttype HumainAgentExecutionClaim,\n\ttype HumainAgentExecutionFailureCode,\n\ttype HumainAgentExecutionOutcome,\n\ttype HumainAgentExecutionRequest,\n\ttype HumainAgentExecutionResponse,\n\ttype HumainAgentRouteRef,\n\ttype HumainAgentUsage,\n\tparseHumainAgentExecutionRequest,\n\tparseHumainAgentExecutionResponse,\n} from \"./agent-execution-protocol.ts\";\n\nexport type HumainAgentHostCompletion =\n\t| {\n\t\t\tkind: \"succeeded\";\n\t\t\toutput: { summary: string; artifacts: HumainAgentArtifact[] };\n\t\t\tusage: HumainAgentUsage;\n\t }\n\t| { kind: \"failed\"; failureCode: \"adapter_execution_failed\" | \"invalid_adapter_result\"; usage: HumainAgentUsage }\n\t| { kind: \"cancelled\"; terminationConfirmed: boolean; usage: HumainAgentUsage };\n\nexport interface HumainAgentExecutionHandle {\n\tcompletion: Promise<HumainAgentHostCompletion>;\n\tcancel(reason: string): Promise<{ terminationConfirmed: boolean }>;\n\tdispose(): void;\n}\n\nexport interface HumainAgentExecutionHost {\n\tlaunch(request: {\n\t\trouteRef: HumainAgentRouteRef;\n\t\ttask: string;\n\t\tartifacts: HumainAgentArtifact[];\n\t}): Promise<HumainAgentExecutionHandle | null>;\n}\n\nconst UNKNOWN_USAGE = { status: \"unknown\" } as const;\n\nexport async function executeHumainAgentRequest(\n\tinput: unknown,\n\thost: HumainAgentExecutionHost,\n\toptions: { signal?: AbortSignal } = {},\n): Promise<HumainAgentExecutionResponse> {\n\tconst request = parseHumainAgentExecutionRequest(input);\n\tif (request.mode === \"workflow\") {\n\t\treturn checkedResponse(request, {\n\t\t\tschemaVersion: 1,\n\t\t\tkind: \"result\",\n\t\t\tmode: request.mode,\n\t\t\tinvocationId: request.invocationId,\n\t\t\tbatchId: request.batchId,\n\t\t\ttermination: \"not-requested\",\n\t\t\toutcomes: request.claims.map((claim) => failedOutcome(claim, \"incompatible_adapter_capability\")),\n\t\t});\n\t}\n\n\tconst claim = request.claims[0];\n\tif (!claim) throw new Error(\"Parsed node execution request has no claim\");\n\tif (options.signal?.aborted) {\n\t\treturn cancelledResponse(request, claim, false);\n\t}\n\n\tconst launchStartedAt = Date.now();\n\tlet cancelLaunch: ((reason: string) => void) | undefined;\n\tconst launchCancellation = new Promise<string>((resolve) => {\n\t\tcancelLaunch = resolve;\n\t});\n\tconst launchTimeout = setTimeout(() => cancelLaunch?.(\"execution timeout\"), claim.controls.timeoutMs);\n\tconst onLaunchAbort = () => cancelLaunch?.(\"execution cancelled\");\n\toptions.signal?.addEventListener(\"abort\", onLaunchAbort, { once: true });\n\tif (options.signal?.aborted) onLaunchAbort();\n\tlet launchPromise: ReturnType<HumainAgentExecutionHost[\"launch\"]>;\n\ttry {\n\t\tlaunchPromise = host.launch({\n\t\t\trouteRef: claim.routeRef,\n\t\t\ttask: claim.task,\n\t\t\tartifacts: claim.input.artifacts,\n\t\t});\n\t} catch {\n\t\tclearTimeout(launchTimeout);\n\t\toptions.signal?.removeEventListener(\"abort\", onLaunchAbort);\n\t\treturn singleOutcomeResponse(request, failedOutcome(claim, \"adapter_execution_failed\"));\n\t}\n\tconst launchResult = await Promise.race([\n\t\tlaunchPromise.then(\n\t\t\t(handle) => ({ kind: \"launched\" as const, handle }),\n\t\t\t() => ({ kind: \"failed\" as const }),\n\t\t),\n\t\tlaunchCancellation.then((reason) => ({ kind: \"cancelled\" as const, reason })),\n\t]);\n\tclearTimeout(launchTimeout);\n\toptions.signal?.removeEventListener(\"abort\", onLaunchAbort);\n\tif (launchResult.kind === \"cancelled\") {\n\t\tvoid launchPromise\n\t\t\t.then(async (lateHandle) => {\n\t\t\t\tif (!lateHandle) return;\n\t\t\t\ttry {\n\t\t\t\t\tawait lateHandle.cancel(launchResult.reason);\n\t\t\t\t} catch {\n\t\t\t\t\t// The correlated response remains honestly unconfirmed.\n\t\t\t\t} finally {\n\t\t\t\t\tlateHandle.dispose();\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n\t\treturn cancelledResponse(request, claim, false);\n\t}\n\tif (launchResult.kind === \"failed\") {\n\t\treturn singleOutcomeResponse(request, failedOutcome(claim, \"adapter_execution_failed\"));\n\t}\n\tconst handle = launchResult.handle;\n\tif (!handle) {\n\t\treturn singleOutcomeResponse(request, failedOutcome(claim, \"incompatible_adapter_capability\"));\n\t}\n\n\tlet timeout: ReturnType<typeof setTimeout> | undefined;\n\tlet removeAbortListener: (() => void) | undefined;\n\tlet cancellationInFlight: Promise<void> | undefined;\n\tlet cancellationCompletion: HumainAgentHostCompletion | undefined;\n\ttry {\n\t\tconst cancellation = new Promise<HumainAgentHostCompletion>((resolve) => {\n\t\t\tconst cancel = (reason: string) => {\n\t\t\t\tif (cancellationInFlight) return;\n\t\t\t\tcancellationInFlight = (async () => {\n\t\t\t\t\tlet terminationConfirmed = false;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tterminationConfirmed = (await handle.cancel(reason)).terminationConfirmed;\n\t\t\t\t\t} catch {\n\t\t\t\t\t\tterminationConfirmed = false;\n\t\t\t\t\t}\n\t\t\t\t\tcancellationCompletion = { kind: \"cancelled\", terminationConfirmed, usage: UNKNOWN_USAGE };\n\t\t\t\t\tresolve(cancellationCompletion);\n\t\t\t\t})();\n\t\t\t};\n\t\t\tconst remainingTimeoutMs = Math.max(1, claim.controls.timeoutMs - (Date.now() - launchStartedAt));\n\t\t\ttimeout = setTimeout(() => cancel(\"execution timeout\"), remainingTimeoutMs);\n\t\t\tif (options.signal) {\n\t\t\t\tconst onAbort = () => cancel(\"execution cancelled\");\n\t\t\t\toptions.signal.addEventListener(\"abort\", onAbort, { once: true });\n\t\t\t\tremoveAbortListener = () => options.signal?.removeEventListener(\"abort\", onAbort);\n\t\t\t\tif (options.signal.aborted) onAbort();\n\t\t\t}\n\t\t});\n\t\tlet completion = await Promise.race([handle.completion, cancellation]);\n\t\tif (cancellationInFlight) {\n\t\t\tawait cancellationInFlight;\n\t\t\tif (cancellationCompletion) completion = cancellationCompletion;\n\t\t}\n\t\ttry {\n\t\t\treturn singleOutcomeResponse(request, toOutcome(claim, completion));\n\t\t} catch {\n\t\t\treturn singleOutcomeResponse(request, failedOutcome(claim, \"invalid_adapter_result\"));\n\t\t}\n\t} finally {\n\t\tif (timeout) clearTimeout(timeout);\n\t\tremoveAbortListener?.();\n\t\tawait cancellationInFlight;\n\t\ttry {\n\t\t\thandle.dispose();\n\t\t} catch {\n\t\t\t// Cleanup failure cannot replace the already-correlated protocol result.\n\t\t}\n\t}\n}\n\nfunction toOutcome(\n\tclaim: HumainAgentExecutionClaim,\n\tcompletion: HumainAgentHostCompletion,\n): HumainAgentExecutionOutcome {\n\treturn { ...claimIdentity(claim), ...completion };\n}\n\nfunction failedOutcome(\n\tclaim: HumainAgentExecutionClaim,\n\tfailureCode: HumainAgentExecutionFailureCode,\n): HumainAgentExecutionOutcome {\n\treturn { ...claimIdentity(claim), kind: \"failed\", failureCode, usage: UNKNOWN_USAGE };\n}\n\nfunction claimIdentity(claim: HumainAgentExecutionClaim) {\n\treturn {\n\t\tworkUnitId: claim.workUnitId,\n\t\tnodeId: claim.nodeId,\n\t\tattemptNumber: claim.attemptNumber,\n\t\tattemptFence: claim.attemptFence,\n\t\tsegmentFence: claim.segmentFence,\n\t};\n}\n\nfunction singleOutcomeResponse(\n\trequest: HumainAgentExecutionRequest,\n\toutcome: HumainAgentExecutionOutcome,\n): HumainAgentExecutionResponse {\n\tconst termination =\n\t\toutcome.kind !== \"cancelled\" ? \"not-requested\" : outcome.terminationConfirmed ? \"confirmed\" : \"unconfirmed\";\n\treturn checkedResponse(request, {\n\t\tschemaVersion: 1,\n\t\tkind: \"result\",\n\t\tmode: \"node\",\n\t\tinvocationId: request.invocationId,\n\t\ttermination,\n\t\toutcomes: [outcome],\n\t});\n}\n\nfunction cancelledResponse(\n\trequest: HumainAgentExecutionRequest,\n\tclaim: HumainAgentExecutionClaim,\n\tterminationConfirmed: boolean,\n): HumainAgentExecutionResponse {\n\treturn singleOutcomeResponse(request, {\n\t\t...claimIdentity(claim),\n\t\tkind: \"cancelled\",\n\t\tterminationConfirmed,\n\t\tusage: UNKNOWN_USAGE,\n\t});\n}\n\nfunction checkedResponse(\n\trequest: HumainAgentExecutionRequest,\n\tresponse: HumainAgentExecutionResponse,\n): HumainAgentExecutionResponse {\n\treturn parseHumainAgentExecutionResponse(request, response);\n}\n"]}