@pixelzx/genesis 2026.5.3-2 → 2026.5.3-3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/.buildstamp +1 -1
- package/dist/abort-91r4UulC.js +201 -0
- package/dist/abort.runtime-B9mJXpA7.js +2 -0
- package/dist/abort.runtime.js +1 -1
- package/dist/accounts-47VdxmAV.js +2 -0
- package/dist/accounts-CuCpc987.js +107 -0
- package/dist/accounts-xW4yEmC0.js +104 -0
- package/dist/acp-cli-NxFXWO1M.js +2193 -0
- package/dist/acp-spawn-DbkpHyE1.js +1093 -0
- package/dist/acp-spawn-QASKm_on.js +2 -0
- package/dist/acp-stateful-target-driver-BHyMcz1t.js +89 -0
- package/dist/action-agents-6PpsUM02.js +67 -0
- package/dist/action-focus-B4kHRvRY.js +132 -0
- package/dist/action-help-C5lxx1KX.js +7 -0
- package/dist/action-info-oy2vw7kF.js +101 -0
- package/dist/action-kill-CD139kh2.js +33 -0
- package/dist/action-list-DZ9teqOY.js +21 -0
- package/dist/action-log-gxlq_2Rp.js +30 -0
- package/dist/action-send-BurQ0zyV.js +39 -0
- package/dist/action-spawn-DxOHnNm7.js +47 -0
- package/dist/action-unfocus-CugM3XlM.js +29 -0
- package/dist/actions.runtime--ihN7Wd6.js +5 -0
- package/dist/actions.runtime-ib-izjF7.js +18 -0
- package/dist/actions.runtime.js +1 -1
- package/dist/agent-command-C2ZVqozq.js +874 -0
- package/dist/agent-harness-runtime-DgUskfxp.js +144 -0
- package/dist/agent-lSBQDJ_c.js +2 -0
- package/dist/agent-runner-utils-CQHnUCgQ.js +239 -0
- package/dist/agent-runner.runtime-CVwomI1B.js +3455 -0
- package/dist/agent-runner.runtime.js +1 -1
- package/dist/agent-runtime-DJ7En7GB.js +18 -0
- package/dist/agents-CDEITLQb.js +5 -0
- package/dist/agents-NqAmW65Y.js +952 -0
- package/dist/aliases-8yRNckmx.js +2 -0
- package/dist/aliases-DA8MRgQS.js +96 -0
- package/dist/api-CJi25G9E.js +139 -0
- package/dist/api-Cu958cYM.js +5 -0
- package/dist/api-DkzCGtG_.js +3 -0
- package/dist/approval-gateway-resolver-DOKXw6ku.js +29 -0
- package/dist/approval-gateway-runtime-Bv8CqHQS.js +2 -0
- package/dist/approval-handler-runtime-ZtFxOtrw.js +439 -0
- package/dist/approval-native-runtime-DAtNdlUh.js +729 -0
- package/dist/attempt-execution.runtime-RtO9GkMH.js +509 -0
- package/dist/attempt-execution.runtime.js +1 -1
- package/dist/attempt.prompt-helpers-CBqQ9_m3.js +218 -0
- package/dist/attempt.tool-run-context-DpZtz1o7.js +933 -0
- package/dist/audit-C-2uIqda.js +939 -0
- package/dist/audit.runtime-CmbX_Mhw.js +7 -0
- package/dist/audit.runtime.js +1 -1
- package/dist/auth-DQKEcU2i.js +2 -0
- package/dist/auth-kVluPSY6.js +383 -0
- package/dist/auth-order-BrWB3inY.js +96 -0
- package/dist/auth-order-DCT4hb8Z.js +2 -0
- package/dist/bash-tools-CfLkHd-r.js +2824 -0
- package/dist/bash-tools-xGRQBXVi.js +3 -0
- package/dist/binding-routing-DcVihFHn.js +85 -0
- package/dist/binding-targets-CM036UnT.js +121 -0
- package/dist/bridge-server-IJqt4FlL.js +113 -0
- package/dist/browser-control-auth-D_ENihgB.js +2 -0
- package/dist/browser-node-runtime-CgC9vaCW.js +12 -0
- package/dist/browser-profiles-DXSDH0AX.js +2 -0
- package/dist/browser-runtime-DlIrKgom.js +387 -0
- package/dist/browser-setup-tools-CzwG2Hi7.js +13 -0
- package/dist/build-DyITSIDX.js +550 -0
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +1 -1
- package/dist/call-45FewBaL.js +329 -0
- package/dist/call-BqBKDI9u.js +3 -0
- package/dist/call.runtime-6-vv8hKu.js +2 -0
- package/dist/call.runtime.js +1 -1
- package/dist/capability-cli-mXxaAg87.js +1401 -0
- package/dist/catchup-DZItnQoF.js +300 -0
- package/dist/channel-4_07fZor.js +1174 -0
- package/dist/channel-BypEOihB.js +226 -0
- package/dist/channel-CPaewlgu.js +1802 -0
- package/dist/channel-CZ55XiAG.js +1320 -0
- package/dist/channel-Ccfv73or.js +595 -0
- package/dist/channel-CzsHgYiG.js +350 -0
- package/dist/channel-D4vHC37-.js +491 -0
- package/dist/channel-DRykWnyQ.js +1100 -0
- package/dist/channel-Dv_sqItB.js +840 -0
- package/dist/channel-Rka7SmcE.js +453 -0
- package/dist/channel-YXjNVZ70.js +297 -0
- package/dist/channel-core-BWePKW2T.js +5 -0
- package/dist/channel-inbound-B8tlgRz9.js +31 -0
- package/dist/channel-plugin-runtime-BSquEWfT.js +771 -0
- package/dist/channel-runtime-DyoiUzHM.js +425 -0
- package/dist/channel.runtime-BNUQYyCS.js +34702 -0
- package/dist/channel.runtime-BSYg7-dS.js +109 -0
- package/dist/channel.runtime-C3YAtGah.js +2364 -0
- package/dist/channel.runtime-CZggGgop.js +430 -0
- package/dist/channel.runtime-ZWHikPHo.js +89 -0
- package/dist/channel.runtime-aOaQbZea.js +4 -0
- package/dist/channel.runtime-puS1jfmK.js +576 -0
- package/dist/channel.runtime.js +1 -1
- package/dist/channel.setup-B2_426hq.js +10 -0
- package/dist/channels-cli-jNLEPssf.js +267 -0
- package/dist/channels-eG2v9IVY.js +827 -0
- package/dist/chat-BQEVN8XR.js +2757 -0
- package/dist/clawbot-cli-CSsLvJhI.js +9 -0
- package/dist/cli/daemon-cli.js +3 -3
- package/dist/cli-7D9AzMj2.js +219 -0
- package/dist/cli-CfP5iSkW.js +2 -0
- package/dist/cli-KSwNK8zo.js +72 -0
- package/dist/cli-LF3vrSmQ.js +2 -0
- package/dist/cli-runner-C-yyW9Mw.js +286 -0
- package/dist/cli-runner.runtime-BPTwiZtI.js +4 -0
- package/dist/cli-runner.runtime-CZ7aFUiV.js +3 -0
- package/dist/cli-runner.runtime.js +1 -1
- package/dist/cli-startup-metadata.json +2 -2
- package/dist/cli.runtime-BkxOxJn0.js +1261 -0
- package/dist/cli.runtime.js +1 -1
- package/dist/client-BeAVbxBQ.js +138 -0
- package/dist/client-DWrM2Yms.js +2742 -0
- package/dist/command-auth-TXkwHike.js +76 -0
- package/dist/command-config-resolution-BQUvy5ZL.js +2 -0
- package/dist/command-config-resolution-CiffKnhz.js +23 -0
- package/dist/command-config-resolution.runtime-DWe34jdz.js +2 -0
- package/dist/command-config-resolution.runtime.js +1 -1
- package/dist/command-registry-BI5Ce-0X.js +9 -0
- package/dist/command-registry-CZ-Rk9No.js +4 -0
- package/dist/command-registry-core-CqSjfb7e.js +104 -0
- package/dist/command-secret-gateway-RYlrkM8e.js +528 -0
- package/dist/command-status.runtime-9RuTTw7H.js +87 -0
- package/dist/command-status.runtime.js +1 -1
- package/dist/commands-acp-DNlM5COD.js +77 -0
- package/dist/commands-compact.runtime-Dbbx-Ps6.js +10 -0
- package/dist/commands-compact.runtime.js +1 -1
- package/dist/commands-handlers.runtime-J4HmYPML.js +4596 -0
- package/dist/commands-handlers.runtime.js +1 -1
- package/dist/commands-status-BpCtSlHL.js +16 -0
- package/dist/commands-status.runtime-B5lz9wwA.js +3 -0
- package/dist/commands-status.runtime.js +1 -1
- package/dist/commands-subagents-control.runtime-BlMDlblZ.js +2 -0
- package/dist/commands-subagents-control.runtime-RvrJJSNg.js +3 -0
- package/dist/commands-subagents-control.runtime.js +1 -1
- package/dist/commands-system-prompt-DuLI1Zhj.js +158 -0
- package/dist/commands-system-prompt-aXNuSW_q.js +2 -0
- package/dist/commands.runtime-Cvb5f7IP.js +166 -0
- package/dist/commands.runtime.js +1 -1
- package/dist/compact-CEtFY3x7.js +1118 -0
- package/dist/compact.runtime-BEuz-f53.js +12 -0
- package/dist/compact.runtime.js +1 -1
- package/dist/completion-cli-Du1dkhoP.js +313 -0
- package/dist/config-Mu4QhWzJ.js +248 -0
- package/dist/config-cli-DUUIMEUP.js +1073 -0
- package/dist/configure-DLxdFMCs.js +2 -0
- package/dist/configure-DQZRoD0Y.js +1244 -0
- package/dist/connect-options-CR5cdO4W.js +699 -0
- package/dist/control-auth-DLnHsBZt.js +125 -0
- package/dist/control-service-B035Oo8M.js +156 -0
- package/dist/control-ui/assets/agents-1LSJ-6PP.js +949 -0
- package/dist/control-ui/assets/channel-config-extras-BQz7hQLy.js +2 -0
- package/dist/control-ui/assets/channels-Pd3YLhy4.js +353 -0
- package/dist/control-ui/assets/cron-DME74GWr.js +933 -0
- package/dist/control-ui/assets/de-C0ZR8sDB.js +2 -0
- package/dist/control-ui/assets/debug-B4No9QzL.js +94 -0
- package/dist/control-ui/assets/es-C6bU_TtU.js +2 -0
- package/dist/control-ui/assets/format-CU5rVzG3.js +9 -0
- package/dist/control-ui/assets/fr-D5DeTmNv.js +2 -0
- package/dist/control-ui/assets/id-D2rVEDjJ.js +2 -0
- package/dist/control-ui/assets/index-BL88Y9ha.js +6308 -0
- package/dist/control-ui/assets/instances-BrcIASdv.js +57 -0
- package/dist/control-ui/assets/ja-JP-Dn3lisLY.js +2 -0
- package/dist/control-ui/assets/ko-DxD_1Zk0.js +2 -0
- package/dist/control-ui/assets/logs-BCK7QB61.js +74 -0
- package/dist/control-ui/assets/nodes-DBgRvAW9.js +436 -0
- package/dist/control-ui/assets/pl-DqfELhXe.js +2 -0
- package/dist/control-ui/assets/pt-BR-CyYqgZQ0.js +2 -0
- package/dist/control-ui/assets/sessions-xAeiynNF.js +306 -0
- package/dist/control-ui/assets/skills-DnzXHEWh.js +314 -0
- package/dist/control-ui/assets/skills-shared-DUcVMOWy.js +11 -0
- package/dist/control-ui/assets/string-coerce-Cdiw640X.js +3 -0
- package/dist/control-ui/assets/th-Cdunu1Yf.js +2 -0
- package/dist/control-ui/assets/tr-BVk27ysg.js +2 -0
- package/dist/control-ui/assets/uk-CI_KWzZt.js +2 -0
- package/dist/control-ui/assets/wallet-BDUGnhoA.js +195 -0
- package/dist/control-ui/assets/zh-CN-Iit1vnHx.js +2 -0
- package/dist/control-ui/assets/zh-TW-hVvjG-ie.js +2 -0
- package/dist/control-ui/index.html +3 -3
- package/dist/control-ui-BdRLK7I-.js +664 -0
- package/dist/conversation-id-BM-V07Pl.js +235 -0
- package/dist/conversation-id-BghRIfxG.js +38 -0
- package/dist/conversation-runtime-C4gObsh2.js +31 -0
- package/dist/core-ChqnJuFH.js +275 -0
- package/dist/cron-cli-C5Gndyos.js +713 -0
- package/dist/daemon-cli-ZzTGcINw.js +12 -0
- package/dist/delegate-BulXNglP.js +64 -0
- package/dist/detached-task-runtime-vv5lDMJn.js +73 -0
- package/dist/devices-cli-DIvpz4kL.js +496 -0
- package/dist/diagnostics-C8iZ-TW3.js +154 -0
- package/dist/direct-dm-DtDot5lO.js +64 -0
- package/dist/dispatch-CswKkiWZ.js +1131 -0
- package/dist/dispatch-acp-B6BY7PnM.js +981 -0
- package/dist/dispatch-acp-manager.runtime-9d1-ds6W.js +3 -0
- package/dist/dispatch-acp-manager.runtime.js +1 -1
- package/dist/dispatch-acp.runtime-B3XBEEra.js +19 -0
- package/dist/dispatch-acp.runtime.js +1 -1
- package/dist/doctor-device-pairing-B9xoU-b0.js +307 -0
- package/dist/doctor-gateway-daemon-flow-CBRay2wn.js +250 -0
- package/dist/doctor-gateway-health-Pv5QfyCN.js +60 -0
- package/dist/doctor-health-contributions-BQZqHOsI.js +486 -0
- package/dist/doctor-health-sIYTca3Z.js +59 -0
- package/dist/doctor-prompter-Bl7VEFRB.js +56 -0
- package/dist/doctor-workspace-status-COpJU_Sy.js +75 -0
- package/dist/dreaming-B-Ij18RW.js +1574 -0
- package/dist/dreaming-narrative-Dlq1B1wL.js +595 -0
- package/dist/embedded-gateway-stub.runtime-DxH4W_Ct.js +9 -0
- package/dist/embedded-gateway-stub.runtime.js +1 -1
- package/dist/embeddings-http-Dwm0-7xN.js +205 -0
- package/dist/entry.js +2 -2
- package/dist/exec-approvals-cli-NfwQ3x1C.js +498 -0
- package/dist/extensionAPI.js +1 -1
- package/dist/extensions/active-memory/index.js +1 -1
- package/dist/extensions/bluebubbles/api.js +3 -3
- package/dist/extensions/bluebubbles/channel-plugin-api.js +1 -1
- package/dist/extensions/browser/browser-bridge.js +1 -1
- package/dist/extensions/browser/browser-config.js +4 -4
- package/dist/extensions/browser/browser-control-auth.js +2 -2
- package/dist/extensions/browser/browser-doctor.js +2 -2
- package/dist/extensions/browser/browser-maintenance.js +2 -2
- package/dist/extensions/browser/browser-profiles.js +2 -2
- package/dist/extensions/browser/browser-runtime-api.js +10 -10
- package/dist/extensions/browser/index.js +1 -1
- package/dist/extensions/browser/plugin-registration.js +1 -1
- package/dist/extensions/browser/register.runtime.js +3 -3
- package/dist/extensions/browser/runtime-api.js +11 -11
- package/dist/extensions/browser/test-support.js +1 -1
- package/dist/extensions/device-pair/api.js +1 -1
- package/dist/extensions/device-pair/index.js +3 -3
- package/dist/extensions/device-pair/notify.js +1 -1
- package/dist/extensions/device-pair/pair-command-approve.js +1 -1
- package/dist/extensions/google-meet/index.js +2 -2
- package/dist/extensions/imessage/api.js +3 -3
- package/dist/extensions/imessage/channel-plugin-api.js +1 -1
- package/dist/extensions/imessage/runtime-api.js +3 -3
- package/dist/extensions/irc/api.js +2 -2
- package/dist/extensions/irc/channel-plugin-api.js +1 -1
- package/dist/extensions/line/api.js +2 -2
- package/dist/extensions/line/channel-plugin-api.js +1 -1
- package/dist/extensions/line/contract-api.js +1 -1
- package/dist/extensions/line/runtime-api.js +4 -4
- package/dist/extensions/line/setup-api.js +1 -1
- package/dist/extensions/llm-task/index.js +2 -2
- package/dist/extensions/lobster/index.js +3 -3
- package/dist/extensions/lobster/runtime-api.js +1 -1
- package/dist/extensions/mattermost/api.js +1 -1
- package/dist/extensions/mattermost/channel-plugin-api.js +1 -1
- package/dist/extensions/mattermost/channel-plugin-runtime.js +1 -1
- package/dist/extensions/mattermost/policy-api.js +1 -1
- package/dist/extensions/mattermost/runtime-api.js +4 -4
- package/dist/extensions/mattermost/slash-route-api.js +1 -1
- package/dist/extensions/memory-core/api.js +1 -1
- package/dist/extensions/memory-core/cli-metadata.js +2 -2
- package/dist/extensions/memory-core/index.js +3 -3
- package/dist/extensions/memory-lancedb/cli-metadata.js +1 -1
- package/dist/extensions/msteams/api.js +1 -1
- package/dist/extensions/msteams/channel-plugin-api.js +1 -1
- package/dist/extensions/msteams/runtime-api.js +3 -3
- package/dist/extensions/msteams/test-api.js +1 -1
- package/dist/extensions/nextcloud-talk/api.js +1 -1
- package/dist/extensions/nextcloud-talk/channel-plugin-api.js +1 -1
- package/dist/extensions/nextcloud-talk/runtime-api.js +2 -2
- package/dist/extensions/openshell/index.js +2 -2
- package/dist/extensions/signal/api.js +6 -6
- package/dist/extensions/signal/channel-plugin-api.js +1 -1
- package/dist/extensions/signal/reaction-runtime-api.js +1 -1
- package/dist/extensions/signal/runtime-api.js +7 -7
- package/dist/extensions/skill-workshop/api.js +1 -1
- package/dist/extensions/skill-workshop/index.js +1 -1
- package/dist/extensions/synology-chat/api.js +1 -1
- package/dist/extensions/synology-chat/channel-plugin-api.js +1 -1
- package/dist/extensions/tlon/api.js +2 -2
- package/dist/extensions/tlon/channel-plugin-api.js +1 -1
- package/dist/extensions/tlon/runtime-api.js +1 -1
- package/dist/extensions/tlon/test-api.js +1 -1
- package/dist/extensions/twitch/api.js +1 -1
- package/dist/extensions/twitch/channel-plugin-api.js +1 -1
- package/dist/extensions/twitch/setup-plugin-api.js +1 -1
- package/dist/extensions/zalo/api.js +3 -3
- package/dist/extensions/zalo/channel-plugin-api.js +1 -1
- package/dist/extensions/zalo/runtime-api.js +2 -2
- package/dist/extensions/zalo/setup-api.js +2 -2
- package/dist/extensions/zalouser/api.js +3 -3
- package/dist/extensions/zalouser/channel-plugin-api.js +1 -1
- package/dist/extensions/zalouser/runtime-api.js +6 -6
- package/dist/extensions/zalouser/setup-plugin-api.js +1 -1
- package/dist/extensions/zalouser/test-api.js +1 -1
- package/dist/fallbacks-BFYvKUnY.js +31 -0
- package/dist/fallbacks-Dln-Fm7a.js +2 -0
- package/dist/fallbacks-shared-BtC9lu5P.js +111 -0
- package/dist/gateway-CLjt4Ubu.js +115 -0
- package/dist/gateway-cli-jaaJ3fg-.js +1325 -0
- package/dist/gateway-rpc-B0bKGYQt.js +14 -0
- package/dist/gateway-rpc.runtime-CDyIcCe7.js +23 -0
- package/dist/gateway-rpc.runtime.js +1 -1
- package/dist/gateway-runtime-BxG-mEQr.js +15 -0
- package/dist/gateway-status-v2j9MIsq.js +584 -0
- package/dist/genesis-tools-CES2sMWo.js +8998 -0
- package/dist/genesis-tools.runtime-BzLXBcui.js +2 -0
- package/dist/genesis-tools.runtime.js +1 -1
- package/dist/get-reply-7p41dlff.js +3879 -0
- package/dist/get-reply-from-config.runtime-u3yCD2PM.js +2 -0
- package/dist/get-reply-from-config.runtime.js +1 -1
- package/dist/graph-users-IT2wmMx0.js +1337 -0
- package/dist/health-BFcoKWr0.js +469 -0
- package/dist/health-DRvLyY-r.js +3 -0
- package/dist/heartbeat-runner-BHjLQL2M.js +1292 -0
- package/dist/heartbeat-runner-DqEJGTLj.js +5 -0
- package/dist/heartbeat-runner.runtime-Cmx1SSZn.js +4 -0
- package/dist/heartbeat-runner.runtime.js +1 -1
- package/dist/hooks-cli-DDT-e8cJ.js +433 -0
- package/dist/http-endpoint-helpers-Dj8t0Siy.js +41 -0
- package/dist/http-utils-Dwz38Ezf.js +924 -0
- package/dist/image-fallbacks-D7OPvToB.js +31 -0
- package/dist/image-fallbacks-Dz8AR8dy.js +2 -0
- package/dist/inbound-reply-dispatch-DAPsCNCR.js +73 -0
- package/dist/index.js +2 -2
- package/dist/infra-runtime-DwyCbqnF.js +39 -0
- package/dist/init-ff-VGINj.js +59 -0
- package/dist/library-DJHGahez.js +45 -0
- package/dist/lifecycle-Wn699Yk2.js +229 -0
- package/dist/lifecycle-jhG_0376.js +571 -0
- package/dist/lifecycle.runtime-DEQnEWhs.js +2 -0
- package/dist/lifecycle.runtime.js +1 -1
- package/dist/list-BpmdsUg2.js +2 -0
- package/dist/list-Bx1ShIyl.js +1201 -0
- package/dist/list-CrwKhvg6.js +130 -0
- package/dist/list-DMu11V_u.js +2 -0
- package/dist/list.probe-uEkIls1j.js +419 -0
- package/dist/llm-slug-generator-CLSA0uws.js +79 -0
- package/dist/llm-slug-generator.js +1 -1
- package/dist/load-config-Dez1SxKa.js +35 -0
- package/dist/local-dispatch.runtime-Dxyktykf.js +8 -0
- package/dist/local-dispatch.runtime.js +1 -1
- package/dist/logs-cli-DrKLI45U.js +265 -0
- package/dist/logs-cli.runtime-WU3d8rj3.js +2 -0
- package/dist/logs-cli.runtime.js +1 -1
- package/dist/main-session-restart-recovery-CDpXwlsb.js +206 -0
- package/dist/managed-image-attachments-CTfAUhir.js +2 -0
- package/dist/managed-image-attachments-DwCKRLRN.js +635 -0
- package/dist/manager-C8C_r6-q.js +2057 -0
- package/dist/manager-DNh85N31.js +2 -0
- package/dist/markdown-to-line-CeMQCPsl.js +790 -0
- package/dist/mcp/plugin-tools-serve.js +1 -1
- package/dist/mcp-cli-CilsONVQ.js +724 -0
- package/dist/mcp-http-DMgw2M1d.js +529 -0
- package/dist/memory-core-host-runtime-cli-C4pnPS3_.js +9 -0
- package/dist/message-BodHPIzX.js +231 -0
- package/dist/message-action-runner-PKW742hU.js +1406 -0
- package/dist/message-action-runner-VdRgHq0O.js +2 -0
- package/dist/message-actions-C6yR-dy_.js +143 -0
- package/dist/message.gateway.runtime-CXGM9Aaa.js +2 -0
- package/dist/message.gateway.runtime.js +1 -1
- package/dist/method-scopes-Dut0EB9J.js +209 -0
- package/dist/models-cli-CZt8Jsll.js +219 -0
- package/dist/models-http-Dcpveulc.js +92 -0
- package/dist/monitor--Wv4TIXO.js +671 -0
- package/dist/monitor-82G9E74P.js +1237 -0
- package/dist/monitor-BbRyKgwH.js +2 -0
- package/dist/monitor-CC0s4dOX.js +1459 -0
- package/dist/monitor-CQsFb8eQ.js +788 -0
- package/dist/monitor-Co1hvULI.js +1661 -0
- package/dist/monitor-auth-6Kflwyie.js +207 -0
- package/dist/monitor-processing-B7uKpWo4.js +1974 -0
- package/dist/monitor.runtime-CSS_UmaS.js +2 -0
- package/dist/monitor.runtime.js +1 -1
- package/dist/monitor.webhook-DGN7_Sjs.js +180 -0
- package/dist/msteams-Cq2ldWey.js +35 -0
- package/dist/native-hook-relay-DtU42QnM.js +519 -0
- package/dist/nextcloud-talk-CkxtLN3A.js +17 -0
- package/dist/node-cli-BlCoOoMf.js +2506 -0
- package/dist/nodes-cli-BspoieXR.js +1046 -0
- package/dist/nodes-utils-CbFMjmDs.js +84 -0
- package/dist/nodes.helpers-K9f4_mBF.js +34 -0
- package/dist/notify-CyQE1_Xr.js +315 -0
- package/dist/onboard-BvLD3Wm8.js +632 -0
- package/dist/onboard-helpers-0XhcwDte.js +204 -0
- package/dist/onboard-helpers-B8ISwJON.js +6 -0
- package/dist/onboard-remote-BRM4DH6p.js +193 -0
- package/dist/onboard-remote-Blun0y8J.js +2 -0
- package/dist/onboard-skills-CTHeVmHt.js +2 -0
- package/dist/onboard-skills-D_29CQ3l.js +134 -0
- package/dist/openai-http-CFWiPGqM.js +500 -0
- package/dist/openresponses-http-8gJVvkvj.js +1128 -0
- package/dist/operator-approvals-client-CD4Ta4mU.js +68 -0
- package/dist/outbound.runtime-djlPw0h_.js +2 -0
- package/dist/outbound.runtime.js +1 -1
- package/dist/pair-command-approve-CJX4gh1-.js +44 -0
- package/dist/persistent-bindings.lifecycle-BW_emuP7.js +85 -0
- package/dist/persistent-bindings.lifecycle-C1SX_Q_K.js +2 -0
- package/dist/pi-embedded-DD7aPF12.js +2905 -0
- package/dist/pi-embedded-PW48UsXW.js +4 -0
- package/dist/pi-embedded.runtime-CqhLxSYX.js +4 -0
- package/dist/pi-embedded.runtime.js +1 -1
- package/dist/pi-tool-definition-adapter-C1Prxd-M.js +217 -0
- package/dist/pi-tools-pw6Tseqi.js +1057 -0
- package/dist/pi-tools.before-tool-call-BSfbqmdy.js +433 -0
- package/dist/pi-tools.before-tool-call-Vdpw6m1Q.js +2 -0
- package/dist/plugin-Bkk7yfMh.js +12195 -0
- package/dist/plugin-enabled-B7310bjm.js +140 -0
- package/dist/plugin-registration-ClydMGPd.js +23 -0
- package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
- package/dist/plugin-sdk/acp-binding-runtime.js +1 -1
- package/dist/plugin-sdk/acp-runtime.js +2 -2
- package/dist/plugin-sdk/agent-harness-runtime.js +5 -5
- package/dist/plugin-sdk/agent-harness.js +6 -6
- package/dist/plugin-sdk/agent-runtime.js +2 -2
- package/dist/plugin-sdk/approval-gateway-runtime.js +2 -2
- package/dist/plugin-sdk/approval-handler-runtime.js +3 -3
- package/dist/plugin-sdk/approval-runtime.js +1 -1
- package/dist/plugin-sdk/browser-node-runtime.js +4 -4
- package/dist/plugin-sdk/browser-setup-tools.js +3 -3
- package/dist/plugin-sdk/browser-support.js +7 -7
- package/dist/plugin-sdk/channel-core.js +2 -2
- package/dist/plugin-sdk/channel-inbound.js +2 -2
- package/dist/plugin-sdk/command-auth.js +1 -1
- package/dist/plugin-sdk/command-status-runtime.js +1 -1
- package/dist/plugin-sdk/compat.js +1 -1
- package/dist/plugin-sdk/conversation-binding-runtime.js +1 -1
- package/dist/plugin-sdk/conversation-runtime.js +3 -3
- package/dist/plugin-sdk/core.js +2 -2
- package/dist/plugin-sdk/direct-dm.js +1 -1
- package/dist/plugin-sdk/gateway-runtime.js +3 -3
- package/dist/plugin-sdk/inbound-reply-dispatch.js +1 -1
- package/dist/plugin-sdk/index.js +1 -1
- package/dist/plugin-sdk/infra-runtime.js +2 -2
- package/dist/plugin-sdk/irc.js +2 -2
- package/dist/plugin-sdk/matrix.js +1 -1
- package/dist/plugin-sdk/memory-core-host-runtime-cli.js +2 -2
- package/dist/plugin-sdk/memory-core.js +2 -2
- package/dist/plugin-sdk/msteams.js +2 -2
- package/dist/plugin-sdk/nextcloud-talk.js +2 -2
- package/dist/plugin-sdk/nostr.js +1 -1
- package/dist/plugin-sdk/reply-dispatch-runtime.js +1 -1
- package/dist/plugin-sdk/reply-runtime.js +4 -4
- package/dist/plugin-sdk/runtime-secret-resolution.js +1 -1
- package/dist/plugin-sdk/runtime.js +2 -2
- package/dist/plugin-sdk/session-visibility.js +1 -1
- package/dist/plugin-sdk/src/gateway/protocol/index.d.ts +43 -3
- package/dist/plugin-sdk/src/gateway/protocol/schema/protocol-schemas.d.ts +40 -0
- package/dist/plugin-sdk/src/gateway/protocol/schema/wallet.d.ts +44 -0
- package/dist/plugin-sdk/testing.js +4 -4
- package/dist/plugin-sdk/tlon.js +1 -1
- package/dist/plugin-sdk/zalo.js +1 -1
- package/dist/plugin-sdk/zalouser.js +1 -1
- package/dist/plugin-service-BuKwEFP2.js +2890 -0
- package/dist/plugins/runtime/index.js +1 -1
- package/dist/policy-B-SG_MoX.js +328 -0
- package/dist/postinstall-inventory.json +440 -440
- package/dist/prepare.runtime-DCvn4PA9.js +815 -0
- package/dist/prepare.runtime.js +1 -1
- package/dist/probe-BM2lSGpq.js +1443 -0
- package/dist/probe-C-OcrhHU.js +241 -0
- package/dist/probe-C-zomfHC.js +74 -0
- package/dist/probe-CktNHncO.js +2 -0
- package/dist/probe-DvEzC7Yt.js +2 -0
- package/dist/probe-UYnzau7s.js +2205 -0
- package/dist/probe-VShtyoQP.js +45 -0
- package/dist/program-B1Zbl29n.js +111 -0
- package/dist/prompt-select-styled-BFiy7KFb.js +20 -0
- package/dist/provider-dispatcher-C_R0buEs.js +22 -0
- package/dist/provider-dispatcher-DMjvnMg1.js +2 -0
- package/dist/qr-cli-CIMpiVqT.js +2 -0
- package/dist/qr-cli-Chl8J_dU.js +349 -0
- package/dist/reaction-runtime-api-BNJMHeSk.js +116 -0
- package/dist/reactions-2lggXKxe.js +998 -0
- package/dist/register-service-commands-ayYMhoTG.js +71 -0
- package/dist/register.agent-j81xGvIr.js +247 -0
- package/dist/register.configure-Ceqf8SV4.js +15 -0
- package/dist/register.maintenance-CS92zJrF.js +438 -0
- package/dist/register.message-BYxUGLpc.js +329 -0
- package/dist/register.onboard-YkI-xo9t.js +81 -0
- package/dist/register.runtime-CmvxwCiw.js +81 -0
- package/dist/register.runtime.js +1 -1
- package/dist/register.setup-CNdTgu3R.js +150 -0
- package/dist/register.status-health-sessions-BX2GmWTc.js +1215 -0
- package/dist/register.subclis-BeGY5cHF.js +3 -0
- package/dist/register.subclis-COA10rio.js +29 -0
- package/dist/register.subclis-core-DBrCeLqN.js +243 -0
- package/dist/register.wallet-D2TECwG5.js +159 -0
- package/dist/reply-dispatch-runtime-CNsrlQxq.js +13 -0
- package/dist/reply-runtime-Cqu1YNSD.js +11 -0
- package/dist/reply.runtime-DjHQKkER.js +2 -0
- package/dist/reply.runtime.js +1 -1
- package/dist/restart-health-BvQlMuSR.js +2 -0
- package/dist/restart-health-Ddm7Ehby.js +202 -0
- package/dist/root-help-3kWD5VLI.js +44 -0
- package/dist/routes-BCZzdzw2.js +2 -0
- package/dist/routes-CA0DoP7S.js +3340 -0
- package/dist/rpc-BzPBQ5ql.js +61 -0
- package/dist/rpc.runtime-B8NzeUIK.js +21 -0
- package/dist/rpc.runtime.js +1 -1
- package/dist/run-delivery.runtime-Cx2tDADi.js +530 -0
- package/dist/run-delivery.runtime.js +1 -1
- package/dist/run-embedded.runtime-B9SGhBV5.js +4 -0
- package/dist/run-embedded.runtime.js +1 -1
- package/dist/run-execution-cli.runtime-D3gnOlIV.js +4 -0
- package/dist/run-execution-cli.runtime.js +1 -1
- package/dist/run-executor.runtime-BwsKj4NN.js +277 -0
- package/dist/run-executor.runtime.js +1 -1
- package/dist/run-main-CJYy9aeX.js +516 -0
- package/dist/run-subagent-registry.runtime-CNCRhpSK.js +2 -0
- package/dist/run-subagent-registry.runtime.js +1 -1
- package/dist/run-wait-o2Yo35xt.js +135 -0
- package/dist/runtime-Co5LW-cY.js +973 -0
- package/dist/runtime-D98eGt1z.js +9 -0
- package/dist/runtime-api-DLRKboKD.js +4 -0
- package/dist/runtime-api-DW1jDnXG.js +9 -0
- package/dist/runtime-api-DqL2zvW_.js +14 -0
- package/dist/runtime-api-DtRkIQdm.js +9 -0
- package/dist/runtime-embedded-pi.runtime-_1BnpUsH.js +2 -0
- package/dist/runtime-embedded-pi.runtime.js +1 -1
- package/dist/runtime-internal-OmAlLFWl.js +2 -0
- package/dist/runtime-options-DXi_dUFt.js +275 -0
- package/dist/runtime-schema-Cao36tlZ.js +27748 -0
- package/dist/scan-CMs-eSKD.js +523 -0
- package/dist/scan-DaCjqwXa.js +2 -0
- package/dist/secrets-cli-DsCbOPd8.js +2101 -0
- package/dist/security-cli-DWpmdyKz.js +486 -0
- package/dist/selection-BY0XwQb0.js +7737 -0
- package/dist/selection-UBLsVuoF.js +2 -0
- package/dist/send-B7W0wAaA.js +156 -0
- package/dist/send-DVXD9_3G.js +102 -0
- package/dist/send.runtime-BkSytPZj.js +2 -0
- package/dist/send.runtime.js +1 -1
- package/dist/server-7ozS-gsn.js +77 -0
- package/dist/server-LmKuO2X1.js +13 -0
- package/dist/server-context-BdRn7wbe.js +2 -0
- package/dist/server-context-CC4pOAPX.js +846 -0
- package/dist/server-node-events-B677Q3os.js +481 -0
- package/dist/server-plugin-bootstrap-CR8RjVLB.js +2 -0
- package/dist/server-plugin-bootstrap-CYpLXOkm.js +11124 -0
- package/dist/server-restart-sentinel-Btcc7BTE.js +697 -0
- package/dist/server.impl-BkehWe_p.js +12726 -0
- package/dist/service-BWLndtz9.js +941 -0
- package/dist/session-kill-http-BN9Ql6UD.js +110 -0
- package/dist/session-reset-service-hNFKFmB3.js +471 -0
- package/dist/session-route-DErqiFgk.js +93 -0
- package/dist/session-status.runtime-Cu7JU8_U.js +2 -0
- package/dist/session-status.runtime.js +1 -1
- package/dist/session-subagent-reactivation.runtime-Bbagi0__.js +2 -0
- package/dist/session-subagent-reactivation.runtime.js +1 -1
- package/dist/session-tab-registry-D-OCT26z.js +491 -0
- package/dist/session-visibility-Ddr5Ae9L.js +147 -0
- package/dist/sessions-helpers-D0Kf9Ps4.js +304 -0
- package/dist/sessions-history-http-BmKrK99v.js +383 -0
- package/dist/sessions-patch-BtQ1tAvw.js +309 -0
- package/dist/sessions-resolve-BGLrS6vF.js +174 -0
- package/dist/sessions.runtime-CsAKVqcP.js +2 -0
- package/dist/sessions.runtime.js +1 -1
- package/dist/setup-C7ziOemv.js +495 -0
- package/dist/setup-api-CFdE6Bv6.js +29 -0
- package/dist/setup-core-DWygxvIO.js +176 -0
- package/dist/setup-core-IwixXKp3.js +171 -0
- package/dist/setup-surface--KMZi-cs.js +286 -0
- package/dist/setup-surface-Bo-J3N7I.js +403 -0
- package/dist/setup-surface-C-7l8TcU.js +219 -0
- package/dist/setup.finalize-D7dPxVDl.js +539 -0
- package/dist/setup.gateway-config-DmLcj4KK.js +250 -0
- package/dist/shared-CpqCPySw.js +76 -0
- package/dist/shared-D-tbPAY5.js +198 -0
- package/dist/shared-Dlx0gCmP.js +121 -0
- package/dist/slash-state-Cfz0x49w.js +1911 -0
- package/dist/src-BcGXLl_7.js +3974 -0
- package/dist/startup-context-oaWUXB8r.js +312 -0
- package/dist/status-B6NTLfIA.js +2 -0
- package/dist/status-BH2PSbt-.js +3 -0
- package/dist/status-BdqF0YGr.js +397 -0
- package/dist/status-C8o-eOFh.js +209 -0
- package/dist/status-D9GTZEx3.js +190 -0
- package/dist/status-all-CYFjOCcB.js +498 -0
- package/dist/status-json-command-DRbt8OgF.js +84 -0
- package/dist/status-json-wzJiFRSB.js +14 -0
- package/dist/status-runtime-shared-CI8_EqUP.js +257 -0
- package/dist/status-subagents.runtime-DrQmaLAc.js +18 -0
- package/dist/status-subagents.runtime.js +1 -1
- package/dist/status-text-DyIs2f8P.js +236 -0
- package/dist/status-yhOw1Z3M.js +2 -0
- package/dist/status.gateway-connection.runtime-Bjp2AscT.js +2 -0
- package/dist/status.gateway-connection.runtime.js +1 -1
- package/dist/status.gather-Blc_DKTK.js +2 -0
- package/dist/status.gather-CqgbE6TR.js +292 -0
- package/dist/status.runtime-DkTncdN7.js +2 -0
- package/dist/status.runtime.js +1 -1
- package/dist/status.scan-Dc4FTGEf.js +65 -0
- package/dist/status.scan-overview-B0rKBZWW.js +379 -0
- package/dist/status.scan.fast-json-BhqvblxV.js +2 -0
- package/dist/status.scan.fast-json-DI6a0Tv9.js +132 -0
- package/dist/status.summary-CoKGnSoy.js +214 -0
- package/dist/status.summary-DrWqIllD.js +2 -0
- package/dist/subagent-announce-CgnWmHmH.js +351 -0
- package/dist/subagent-announce-delivery-DHVVJyea.js +726 -0
- package/dist/subagent-announce-output-d58DNnV0.js +364 -0
- package/dist/subagent-control-DsUeBdrz.js +506 -0
- package/dist/subagent-followup.runtime-BKyKE6nN.js +68 -0
- package/dist/subagent-followup.runtime.js +1 -1
- package/dist/subagent-orphan-recovery-_O6G65C-.js +305 -0
- package/dist/subagent-registry-BYuzIniG.js +1753 -0
- package/dist/subagent-registry-D0GzSMp0.js +3 -0
- package/dist/subagent-registry.runtime.js +1 -1
- package/dist/subagent-spawn-B6iHzxd0.js +1005 -0
- package/dist/system-cli-DPiT7dwA.js +59 -0
- package/dist/targets-DOHhYtK7.js +67 -0
- package/dist/task-executor-Bxg0f08x.js +360 -0
- package/dist/task-owner-access-Ymx7tKev.js +74 -0
- package/dist/task-registry-CQnnTGmN.js +2366 -0
- package/dist/task-registry-delivery-runtime-BSBXpDV6.js +2 -0
- package/dist/task-registry-delivery-runtime-D-Za0_P9.js +3 -0
- package/dist/task-registry.maintenance-BZpViOdb.js +2 -0
- package/dist/task-registry.maintenance-r46lgwwF.js +416 -0
- package/dist/telegram/token.js +1 -1
- package/dist/testing-2KPIcA5D.js +575 -0
- package/dist/text-report-BJwJgnEZ.js +587 -0
- package/dist/tool-resolution-CjlqPoX2.js +90 -0
- package/dist/tools-effective-inventory-C5X-_cBY.js +152 -0
- package/dist/tools-invoke-http-Cza5U0A9.js +206 -0
- package/dist/trash-K2na6Iz1.js +24 -0
- package/dist/tui-cli-l39_SXF6.js +4573 -0
- package/dist/update-cli-Iq8wyl0W.js +1728 -0
- package/dist/upgrade-1nwb0oPp.js +1226 -0
- package/dist/video-generation-task-status-Du2MUfI2.js +163 -0
- package/dist/wait-for-idle-before-flush-hJ-dtR6o.js +5986 -0
- package/package.json +1 -1
- package/dist/abort-BSgJMMy0.js +0 -201
- package/dist/abort.runtime-DSaqOkLi.js +0 -2
- package/dist/accounts-BYrE99V8.js +0 -107
- package/dist/accounts-Cw3U0GZS.js +0 -104
- package/dist/accounts-D3rbUrwm.js +0 -2
- package/dist/acp-cli-DeB5Rsjc.js +0 -2193
- package/dist/acp-spawn-CB_1HLYK.js +0 -1093
- package/dist/acp-spawn-DC-CjxhI.js +0 -2
- package/dist/acp-stateful-target-driver-B5hgjDME.js +0 -89
- package/dist/action-agents-de8OAj0v.js +0 -67
- package/dist/action-focus-CrHvpYTM.js +0 -132
- package/dist/action-help-DPabNXHZ.js +0 -7
- package/dist/action-info-CWAj-tKU.js +0 -101
- package/dist/action-kill-BvKs859S.js +0 -33
- package/dist/action-list-fiRrNbSX.js +0 -21
- package/dist/action-log-dn5JEtP_.js +0 -30
- package/dist/action-send-8A83W-vV.js +0 -39
- package/dist/action-spawn-VIuLWipE.js +0 -47
- package/dist/action-unfocus-D70HiUtC.js +0 -29
- package/dist/actions.runtime-BR7boyHX.js +0 -18
- package/dist/actions.runtime-GiNRcV0z.js +0 -5
- package/dist/agent-63D0MSuN.js +0 -2
- package/dist/agent-command-DpCldQUr.js +0 -874
- package/dist/agent-harness-runtime-CuxCjKHu.js +0 -144
- package/dist/agent-runner-utils-2KK7Tvwt.js +0 -239
- package/dist/agent-runner.runtime-B7-jeAE1.js +0 -3455
- package/dist/agent-runtime-B0LeqEC4.js +0 -18
- package/dist/agents-BKMfctCm.js +0 -5
- package/dist/agents-C_pD02YQ.js +0 -952
- package/dist/aliases-COyeblK9.js +0 -2
- package/dist/aliases-y-1ktZ4q.js +0 -96
- package/dist/api-C4eLLyHi.js +0 -139
- package/dist/api-DDQ1U9Y1.js +0 -3
- package/dist/api-DE42IEbe.js +0 -5
- package/dist/approval-gateway-resolver-B1vyfdsY.js +0 -29
- package/dist/approval-gateway-runtime-BspnMTAu.js +0 -2
- package/dist/approval-handler-runtime-BrOWxNQ7.js +0 -439
- package/dist/approval-native-runtime-amzGMScp.js +0 -729
- package/dist/attempt-execution.runtime-Bmw2z2TO.js +0 -509
- package/dist/attempt.prompt-helpers-BI35hO5A.js +0 -218
- package/dist/attempt.tool-run-context-CdMIupu1.js +0 -933
- package/dist/audit-CHoh7JgT.js +0 -939
- package/dist/audit.runtime-CZORspf5.js +0 -7
- package/dist/auth-9Vcx6Cmf.js +0 -383
- package/dist/auth-Dm3T2Azg.js +0 -2
- package/dist/auth-order-D4kOyxOC.js +0 -96
- package/dist/auth-order-XAV7PznW.js +0 -2
- package/dist/bash-tools-DCcnMXV5.js +0 -3
- package/dist/bash-tools-RvcvKJ6T.js +0 -2824
- package/dist/binding-routing-Bn1RJI3D.js +0 -85
- package/dist/binding-targets-DOB7nrnI.js +0 -121
- package/dist/bridge-server-CNv6vH_N.js +0 -113
- package/dist/browser-control-auth-BW5AsYZM.js +0 -2
- package/dist/browser-node-runtime-e_5J-t2m.js +0 -12
- package/dist/browser-profiles-V--grSvf.js +0 -2
- package/dist/browser-runtime-K7qKfdJO.js +0 -387
- package/dist/browser-setup-tools-RQ8B4E_8.js +0 -13
- package/dist/build-IWaXKaQo.js +0 -550
- package/dist/call-DMoCOQgN.js +0 -329
- package/dist/call-DR29cjQ8.js +0 -3
- package/dist/call.runtime-CPFzabci.js +0 -2
- package/dist/capability-cli-BqaYg27d.js +0 -1401
- package/dist/catchup-CkMkjMjm.js +0 -300
- package/dist/channel-7-Cy5vdE.js +0 -1320
- package/dist/channel-B0LKbN9a.js +0 -1802
- package/dist/channel-C5SikvTn.js +0 -1174
- package/dist/channel-CGef-OxR.js +0 -1100
- package/dist/channel-CqHnAQJn.js +0 -350
- package/dist/channel-D3_wWplf.js +0 -595
- package/dist/channel-DRek8wwh.js +0 -453
- package/dist/channel-DYRwgk_C.js +0 -297
- package/dist/channel-DxbCZT0P.js +0 -226
- package/dist/channel-core-a5qj8qsH.js +0 -5
- package/dist/channel-inbound-CozRn3n-.js +0 -31
- package/dist/channel-plugin-runtime-DsiFaHL9.js +0 -771
- package/dist/channel-runtime-C8zLNzEP.js +0 -425
- package/dist/channel-v0PxXI_J.js +0 -491
- package/dist/channel-yHVk-YRx.js +0 -840
- package/dist/channel.runtime-C1rseTPL.js +0 -430
- package/dist/channel.runtime-Ci6Q1Cuv.js +0 -576
- package/dist/channel.runtime-CvOa3gYA.js +0 -109
- package/dist/channel.runtime-CwZodUOR.js +0 -34702
- package/dist/channel.runtime-DaP1Ann2.js +0 -89
- package/dist/channel.runtime-ie3egHX0.js +0 -4
- package/dist/channel.runtime-p_ELA91e.js +0 -2364
- package/dist/channel.setup-D1_1xjgF.js +0 -10
- package/dist/channels-Cx8uAXLx.js +0 -827
- package/dist/channels-cli-BCCSvZCu.js +0 -267
- package/dist/chat-CjH9IZPG.js +0 -2757
- package/dist/clawbot-cli-BW8txesR.js +0 -9
- package/dist/cli-BosrhIZ9.js +0 -72
- package/dist/cli-CHvS1B5Q.js +0 -2
- package/dist/cli-DJz9OCkF.js +0 -219
- package/dist/cli-DOiNFMc7.js +0 -2
- package/dist/cli-runner-CHk3q2MH.js +0 -286
- package/dist/cli-runner.runtime-mvuDOXO3.js +0 -4
- package/dist/cli-runner.runtime-rlm7f8Qi.js +0 -3
- package/dist/cli.runtime-BbTMs2tV.js +0 -1261
- package/dist/client-D1dJTyU7.js +0 -2722
- package/dist/client-JBM4I6b2.js +0 -138
- package/dist/command-auth-BbFsneAK.js +0 -76
- package/dist/command-config-resolution-DXhw734i.js +0 -23
- package/dist/command-config-resolution-poOTs26D.js +0 -2
- package/dist/command-config-resolution.runtime-BgBhROMr.js +0 -2
- package/dist/command-registry-BVFXhcOs.js +0 -4
- package/dist/command-registry-ClQXv5Dl.js +0 -9
- package/dist/command-registry-core-CAhTYQrv.js +0 -104
- package/dist/command-secret-gateway-DFTMkW7_.js +0 -528
- package/dist/command-status.runtime-DGPtSexy.js +0 -87
- package/dist/commands-acp-_nV8wWKt.js +0 -77
- package/dist/commands-compact.runtime-_vHyAiKz.js +0 -10
- package/dist/commands-handlers.runtime-CLi0aZTH.js +0 -4596
- package/dist/commands-status-HRJORs2e.js +0 -16
- package/dist/commands-status.runtime-CM9-gifT.js +0 -3
- package/dist/commands-subagents-control.runtime-BKBLELS1.js +0 -3
- package/dist/commands-subagents-control.runtime-Bv0x4ibi.js +0 -2
- package/dist/commands-system-prompt-B139cQlX.js +0 -2
- package/dist/commands-system-prompt-DuaobSBO.js +0 -158
- package/dist/commands.runtime-DSCXdZki.js +0 -166
- package/dist/compact-LzyN5PMu.js +0 -1118
- package/dist/compact.runtime-BJLpfnFS.js +0 -12
- package/dist/completion-cli-D8STecUS.js +0 -313
- package/dist/config-BrdI5ZyV.js +0 -248
- package/dist/config-cli-CdYXdQ9l.js +0 -1073
- package/dist/configure-07tFzclw.js +0 -1244
- package/dist/configure-CbEEjQYo.js +0 -2
- package/dist/connect-options-DqbkNROZ.js +0 -699
- package/dist/control-auth-DoDKg0VV.js +0 -125
- package/dist/control-service-BGluFHoB.js +0 -156
- package/dist/control-ui/assets/agents-DIlUBXrj.js +0 -949
- package/dist/control-ui/assets/channel-config-extras-BGlC1vk-.js +0 -2
- package/dist/control-ui/assets/channels-DkrHc4ne.js +0 -353
- package/dist/control-ui/assets/cron-B-r1qhzN.js +0 -933
- package/dist/control-ui/assets/de-4NcQrfyt.js +0 -2
- package/dist/control-ui/assets/debug-BNsI96cZ.js +0 -94
- package/dist/control-ui/assets/es-CrrRGWtR.js +0 -2
- package/dist/control-ui/assets/format-DPX2rt4X.js +0 -9
- package/dist/control-ui/assets/fr-D5W-tLOJ.js +0 -2
- package/dist/control-ui/assets/id-D553RZfz.js +0 -2
- package/dist/control-ui/assets/index-BNEyEtwP.js +0 -6308
- package/dist/control-ui/assets/instances-18Qi3xmu.js +0 -57
- package/dist/control-ui/assets/ja-JP-BqS1ssGF.js +0 -2
- package/dist/control-ui/assets/ko-CaE3K0VZ.js +0 -2
- package/dist/control-ui/assets/logs-DLWCXFsv.js +0 -74
- package/dist/control-ui/assets/nodes-BYrv5bpJ.js +0 -436
- package/dist/control-ui/assets/pl-CvV8uM6B.js +0 -2
- package/dist/control-ui/assets/pt-BR-DhkGCPIb.js +0 -2
- package/dist/control-ui/assets/sessions-Dzj0Stfl.js +0 -306
- package/dist/control-ui/assets/skills-CTsU9T-x.js +0 -314
- package/dist/control-ui/assets/skills-shared-DkdwCfRw.js +0 -11
- package/dist/control-ui/assets/string-coerce-Dq6kwRii.js +0 -3
- package/dist/control-ui/assets/th-BWa0iFp9.js +0 -2
- package/dist/control-ui/assets/tr-CIyWcYOQ.js +0 -2
- package/dist/control-ui/assets/uk-Dddui7S3.js +0 -2
- package/dist/control-ui/assets/wallet-DRK53ouz.js +0 -93
- package/dist/control-ui/assets/zh-CN-DrnaMCjT.js +0 -2
- package/dist/control-ui/assets/zh-TW-AAoU4b-j.js +0 -2
- package/dist/control-ui-e8ifrzMw.js +0 -664
- package/dist/conversation-id-D_Z9mqfh.js +0 -235
- package/dist/conversation-id-Dp8o7Hf7.js +0 -38
- package/dist/conversation-runtime-B1TCRdfm.js +0 -31
- package/dist/core-BTxiBxhe.js +0 -275
- package/dist/cron-cli-D5WHyG5z.js +0 -713
- package/dist/daemon-cli-CbJ5WTkZ.js +0 -12
- package/dist/delegate-Bvy2iFqj.js +0 -64
- package/dist/detached-task-runtime-CdQlbOaF.js +0 -73
- package/dist/devices-cli-CHKYPFQk.js +0 -496
- package/dist/diagnostics-DXBnZZDV.js +0 -154
- package/dist/direct-dm-DscQrdWj.js +0 -64
- package/dist/dispatch-CsJVa2_C.js +0 -1131
- package/dist/dispatch-acp-C5r7kMjF.js +0 -981
- package/dist/dispatch-acp-manager.runtime-BmaeIQYw.js +0 -3
- package/dist/dispatch-acp.runtime-CrPqsjE7.js +0 -19
- package/dist/doctor-device-pairing-BIWNe_Jn.js +0 -307
- package/dist/doctor-gateway-daemon-flow-B1w_mTCi.js +0 -250
- package/dist/doctor-gateway-health-PGrHhbuk.js +0 -60
- package/dist/doctor-health-CjIXOYaZ.js +0 -59
- package/dist/doctor-health-contributions-Gewam3A0.js +0 -486
- package/dist/doctor-prompter-C_nZk0eT.js +0 -56
- package/dist/doctor-workspace-status-HNtMY9tr.js +0 -75
- package/dist/dreaming-6bEi10m2.js +0 -1574
- package/dist/dreaming-narrative-C8-bcUG0.js +0 -595
- package/dist/embedded-gateway-stub.runtime-DBFo1O2n.js +0 -9
- package/dist/embeddings-http-DI8wVPpp.js +0 -205
- package/dist/exec-approvals-cli-CElurcBk.js +0 -498
- package/dist/fallbacks-B5Ph7HO-.js +0 -31
- package/dist/fallbacks-DVBCWaCR.js +0 -2
- package/dist/fallbacks-shared-DJEGkADy.js +0 -111
- package/dist/gateway-CjtKuAFO.js +0 -115
- package/dist/gateway-cli-UeLtu8Gv.js +0 -1325
- package/dist/gateway-rpc-E2ZcD2Pb.js +0 -14
- package/dist/gateway-rpc.runtime-D9oxEGVM.js +0 -23
- package/dist/gateway-runtime-DUkvmYNT.js +0 -15
- package/dist/gateway-status-B2yemMI1.js +0 -584
- package/dist/genesis-tools-DkQyKJJH.js +0 -8998
- package/dist/genesis-tools.runtime-C--92dxG.js +0 -2
- package/dist/get-reply-from-config.runtime-DVW2Z3Xz.js +0 -2
- package/dist/get-reply-qcf7h9-q.js +0 -3879
- package/dist/graph-users-C-ZMFjxP.js +0 -1337
- package/dist/health-CQgtKb-a.js +0 -469
- package/dist/health-CVQcF_SU.js +0 -3
- package/dist/heartbeat-runner-BMpI76oC.js +0 -1292
- package/dist/heartbeat-runner-tlqZ2QRH.js +0 -5
- package/dist/heartbeat-runner.runtime-BLaJ1moj.js +0 -4
- package/dist/hooks-cli-UJV1DwY_.js +0 -433
- package/dist/http-endpoint-helpers-BKYK0lXJ.js +0 -41
- package/dist/http-utils-CSMhLOmU.js +0 -924
- package/dist/image-fallbacks-B1kkwX5i.js +0 -31
- package/dist/image-fallbacks-BLVKYnSI.js +0 -2
- package/dist/inbound-reply-dispatch-KxpaEPy-.js +0 -73
- package/dist/infra-runtime-B7Bioutr.js +0 -39
- package/dist/init-BbDgno6y.js +0 -59
- package/dist/library-wOAms75w.js +0 -45
- package/dist/lifecycle--fVDSapD.js +0 -229
- package/dist/lifecycle-DsoPNmHR.js +0 -571
- package/dist/lifecycle.runtime-B6D7-MbQ.js +0 -2
- package/dist/list-B99x_eEq.js +0 -2
- package/dist/list-Bg9vO-vK.js +0 -1201
- package/dist/list-CJFvAL5B.js +0 -130
- package/dist/list-CXO2Pv7s.js +0 -2
- package/dist/list.probe-DvT83QeD.js +0 -419
- package/dist/llm-slug-generator-Dk-2o6wu.js +0 -79
- package/dist/load-config-DcSdLvU4.js +0 -35
- package/dist/local-dispatch.runtime-CeUL5zUz.js +0 -8
- package/dist/logs-cli-CkO4A9e_.js +0 -265
- package/dist/logs-cli.runtime-CjZMd8Ps.js +0 -2
- package/dist/main-session-restart-recovery-Yaowxz1V.js +0 -206
- package/dist/managed-image-attachments-BRkGH8id.js +0 -635
- package/dist/managed-image-attachments-CVQmQz19.js +0 -2
- package/dist/manager-ClvLmUep.js +0 -2057
- package/dist/manager-DLd5DOHM.js +0 -2
- package/dist/markdown-to-line-DdcFUlNP.js +0 -790
- package/dist/mcp-cli-Bg0n1yvO.js +0 -724
- package/dist/mcp-http-DwN4JtLF.js +0 -529
- package/dist/memory-core-host-runtime-cli-DokggwF4.js +0 -9
- package/dist/message-A6K1Uln8.js +0 -231
- package/dist/message-action-runner-By12iwmY.js +0 -1406
- package/dist/message-action-runner-DB7vQjDX.js +0 -2
- package/dist/message-actions-p0tyiJsp.js +0 -143
- package/dist/message.gateway.runtime-x9oPkfCV.js +0 -2
- package/dist/method-scopes-C2W7BZE-.js +0 -208
- package/dist/models-cli-BLajRwW5.js +0 -219
- package/dist/models-http-CbY-2ddw.js +0 -92
- package/dist/monitor-2gr47zvz.js +0 -2
- package/dist/monitor-CG9Xn5kb.js +0 -1237
- package/dist/monitor-CJXWP42d.js +0 -1661
- package/dist/monitor-V8PDbadr.js +0 -1459
- package/dist/monitor-Yea6MUcs.js +0 -671
- package/dist/monitor-_RMYsKC-.js +0 -788
- package/dist/monitor-auth-Ds-_E_h_.js +0 -207
- package/dist/monitor-processing-C7thbjUR.js +0 -1974
- package/dist/monitor.runtime-TBmnIKD-.js +0 -2
- package/dist/monitor.webhook-DSkuylzE.js +0 -180
- package/dist/msteams-KM-ToWtn.js +0 -35
- package/dist/native-hook-relay-BDz0eLdj.js +0 -519
- package/dist/nextcloud-talk-Bx1j4jh0.js +0 -17
- package/dist/node-cli-aEN8rLyY.js +0 -2506
- package/dist/nodes-cli-Dv0SFhFx.js +0 -1046
- package/dist/nodes-utils-DQExHgOK.js +0 -84
- package/dist/nodes.helpers-BkElz_SG.js +0 -34
- package/dist/notify-DH8p0jbK.js +0 -315
- package/dist/onboard-DKgQvVgg.js +0 -632
- package/dist/onboard-helpers-BLaaRiIQ.js +0 -204
- package/dist/onboard-helpers-CxDujxN_.js +0 -6
- package/dist/onboard-remote-BHcS99gt.js +0 -193
- package/dist/onboard-remote-CxD-xQ89.js +0 -2
- package/dist/onboard-skills-D2X91a-l.js +0 -2
- package/dist/onboard-skills-Z8VWQOTM.js +0 -134
- package/dist/openai-http-D6U8-gsV.js +0 -500
- package/dist/openresponses-http-8Gzpx-dY.js +0 -1128
- package/dist/operator-approvals-client-CPBdQHpS.js +0 -68
- package/dist/outbound.runtime-DyUVsM-o.js +0 -2
- package/dist/pair-command-approve-iifXVm-A.js +0 -44
- package/dist/persistent-bindings.lifecycle-D0KiOOHL.js +0 -2
- package/dist/persistent-bindings.lifecycle-Dg5f2-ZX.js +0 -85
- package/dist/pi-embedded-CIvfsFDK.js +0 -2905
- package/dist/pi-embedded-DfKObnKr.js +0 -4
- package/dist/pi-embedded.runtime-CSRgPcMe.js +0 -4
- package/dist/pi-tool-definition-adapter-BK1Jgz8u.js +0 -217
- package/dist/pi-tools-xZFkQObl.js +0 -1057
- package/dist/pi-tools.before-tool-call-Cvql1Guc.js +0 -433
- package/dist/pi-tools.before-tool-call-DM-LeYVv.js +0 -2
- package/dist/plugin-BCMcHdm8.js +0 -12195
- package/dist/plugin-enabled-CfU6MzpX.js +0 -140
- package/dist/plugin-registration-5A3P83yn.js +0 -23
- package/dist/plugin-service-C3tJzbuH.js +0 -2890
- package/dist/policy-C4Ko4jxG.js +0 -328
- package/dist/prepare.runtime-D73JEx7U.js +0 -815
- package/dist/probe-3YRw5INl.js +0 -2
- package/dist/probe-B1B8f2xn.js +0 -74
- package/dist/probe-BOowi-Kq.js +0 -45
- package/dist/probe-BTjPGJW1.js +0 -2
- package/dist/probe-BcltnB3e.js +0 -2205
- package/dist/probe-DIRzDUPK.js +0 -1443
- package/dist/probe-r4-jBkoJ.js +0 -241
- package/dist/program-Dfu5UhC1.js +0 -111
- package/dist/prompt-select-styled-Dbu9qalJ.js +0 -20
- package/dist/provider-dispatcher-4wt-ZeZZ.js +0 -2
- package/dist/provider-dispatcher-C2UhWO1m.js +0 -22
- package/dist/qr-cli-BuDd3ifv.js +0 -2
- package/dist/qr-cli-DqP37LYz.js +0 -349
- package/dist/reaction-runtime-api-Bvz0Pveq.js +0 -116
- package/dist/reactions-DN1UVx3u.js +0 -998
- package/dist/register-service-commands-DwSQt0X_.js +0 -71
- package/dist/register.agent-clbTKCyG.js +0 -247
- package/dist/register.configure-ByRQumwS.js +0 -15
- package/dist/register.maintenance-irO_yFnN.js +0 -438
- package/dist/register.message-BV2yRYIp.js +0 -329
- package/dist/register.onboard-DNcKmHVS.js +0 -81
- package/dist/register.runtime-BfeanYPK.js +0 -81
- package/dist/register.setup-DtWiNL2V.js +0 -150
- package/dist/register.status-health-sessions-D0SdMPNv.js +0 -1215
- package/dist/register.subclis-CQQMGIv7.js +0 -3
- package/dist/register.subclis-CYMsqdxE.js +0 -29
- package/dist/register.subclis-core-DWDlwb58.js +0 -243
- package/dist/register.wallet-CR3_wMxj.js +0 -159
- package/dist/reply-dispatch-runtime-C3eU1JDN.js +0 -13
- package/dist/reply-runtime-CDVJcLIY.js +0 -11
- package/dist/reply.runtime-CreZjwrI.js +0 -2
- package/dist/restart-health-D6gHXWN7.js +0 -202
- package/dist/restart-health-DPEaVmNm.js +0 -2
- package/dist/root-help-CtpK6G48.js +0 -44
- package/dist/routes-BLmIMxHE.js +0 -2
- package/dist/routes-DVK0yoCk.js +0 -3340
- package/dist/rpc-B284aspW.js +0 -61
- package/dist/rpc.runtime-_Lr6h1P2.js +0 -21
- package/dist/run-delivery.runtime-Vl9zviox.js +0 -530
- package/dist/run-embedded.runtime-BxfpUMvk.js +0 -4
- package/dist/run-execution-cli.runtime-DuoOsLmQ.js +0 -4
- package/dist/run-executor.runtime-CnNmatiS.js +0 -277
- package/dist/run-main-Bk3B1Ycl.js +0 -516
- package/dist/run-subagent-registry.runtime-DYsO0_RA.js +0 -2
- package/dist/run-wait-BMbf92lX.js +0 -135
- package/dist/runtime-CVfSbgJg.js +0 -973
- package/dist/runtime-D83Zw8_L.js +0 -9
- package/dist/runtime-api-BjXPh772.js +0 -9
- package/dist/runtime-api-BqLJECf1.js +0 -14
- package/dist/runtime-api-D0lP9bs_.js +0 -9
- package/dist/runtime-api-SC4yZOqC.js +0 -4
- package/dist/runtime-embedded-pi.runtime-BqxRowCu.js +0 -2
- package/dist/runtime-internal-BoBPttX5.js +0 -2
- package/dist/runtime-options-0mbgwVcn.js +0 -275
- package/dist/runtime-schema-DnS1dcv9.js +0 -27748
- package/dist/scan-0tDfQcbh.js +0 -523
- package/dist/scan-kap7E7fQ.js +0 -2
- package/dist/secrets-cli-C-MP3qxL.js +0 -2101
- package/dist/security-cli-YiMwABOV.js +0 -486
- package/dist/selection-B1YFEfhn.js +0 -7737
- package/dist/selection-yj1VeFgc.js +0 -2
- package/dist/send-ChDswQ8K.js +0 -102
- package/dist/send-m-3Wh6Ul.js +0 -156
- package/dist/send.runtime-HuAZWRMT.js +0 -2
- package/dist/server-1tAvo2uk.js +0 -77
- package/dist/server-CgWhiZaZ.js +0 -13
- package/dist/server-context-DC7VPNrP.js +0 -846
- package/dist/server-context-fbmj6rsw.js +0 -2
- package/dist/server-node-events-BMfbJz4h.js +0 -481
- package/dist/server-plugin-bootstrap-32-_V8s1.js +0 -11103
- package/dist/server-plugin-bootstrap-BOy3f_kr.js +0 -2
- package/dist/server-restart-sentinel-JaqT_c7z.js +0 -697
- package/dist/server.impl-ozoUfbJY.js +0 -12724
- package/dist/service-CHmvDejV.js +0 -926
- package/dist/session-kill-http-Bi16FXzX.js +0 -110
- package/dist/session-reset-service-0D6xi-ak.js +0 -471
- package/dist/session-route-CdIF_-j8.js +0 -93
- package/dist/session-status.runtime-BenL5h6z.js +0 -2
- package/dist/session-subagent-reactivation.runtime-VrwlEPse.js +0 -2
- package/dist/session-tab-registry-Cch43wvs.js +0 -491
- package/dist/session-visibility-BUY4AKE8.js +0 -147
- package/dist/sessions-helpers-C1ie4VY2.js +0 -304
- package/dist/sessions-history-http-DvqOoKZP.js +0 -383
- package/dist/sessions-patch-DIqqzD_r.js +0 -309
- package/dist/sessions-resolve-BI24rrsW.js +0 -174
- package/dist/sessions.runtime-B8dy_jZO.js +0 -2
- package/dist/setup-CIGRiYma.js +0 -495
- package/dist/setup-api-C2z6aEmf.js +0 -29
- package/dist/setup-core-DwswrxD9.js +0 -171
- package/dist/setup-core-OrNOJ5Dt.js +0 -176
- package/dist/setup-surface-DRkiJObE.js +0 -286
- package/dist/setup-surface-Duar853m.js +0 -403
- package/dist/setup-surface-te0vyu3k.js +0 -219
- package/dist/setup.finalize-C4D2iTZK.js +0 -539
- package/dist/setup.gateway-config-js5kJWDU.js +0 -250
- package/dist/shared-BjQB2kM2.js +0 -76
- package/dist/shared-CJH2czP-.js +0 -121
- package/dist/shared-CcLhf2wk.js +0 -198
- package/dist/slash-state-CKJGZHok.js +0 -1911
- package/dist/src-CZ8XTjkB.js +0 -3974
- package/dist/startup-context-BMpCePC2.js +0 -312
- package/dist/status-BFeYb9-f.js +0 -2
- package/dist/status-BOleDqu5.js +0 -190
- package/dist/status-BgCUJLW2.js +0 -397
- package/dist/status-DJ1sF6YO.js +0 -209
- package/dist/status-DYJ_8ZJ7.js +0 -2
- package/dist/status-all-CtEWqGEX.js +0 -498
- package/dist/status-json-DTxIuLgj.js +0 -14
- package/dist/status-json-command-CcMv7nYt.js +0 -84
- package/dist/status-runtime-shared-DZDRmXg3.js +0 -257
- package/dist/status-subagents.runtime-C-hQle1W.js +0 -18
- package/dist/status-tDmBvO9G.js +0 -3
- package/dist/status-text-BUpcmvrn.js +0 -236
- package/dist/status.gateway-connection.runtime-wLOiGcpu.js +0 -2
- package/dist/status.gather-B6sN0B8c.js +0 -2
- package/dist/status.gather-BuL7jLue.js +0 -292
- package/dist/status.runtime-_vK1iN8J.js +0 -2
- package/dist/status.scan-CzfgmgTG.js +0 -65
- package/dist/status.scan-overview-D_a6XXNl.js +0 -379
- package/dist/status.scan.fast-json-Cyohwc40.js +0 -2
- package/dist/status.scan.fast-json-EjCk_IC5.js +0 -132
- package/dist/status.summary-DOPlWkvO.js +0 -2
- package/dist/status.summary-SF9yDHoG.js +0 -214
- package/dist/subagent-announce-delivery-BETmbzks.js +0 -726
- package/dist/subagent-announce-eXVKLvvC.js +0 -351
- package/dist/subagent-announce-output-DCnvTZwP.js +0 -364
- package/dist/subagent-control-DOW_fAs-.js +0 -506
- package/dist/subagent-followup.runtime-Bfdcsho3.js +0 -68
- package/dist/subagent-orphan-recovery-B-_eOw_g.js +0 -305
- package/dist/subagent-registry-B1giKhqf.js +0 -1753
- package/dist/subagent-registry-C5VQw19R.js +0 -3
- package/dist/subagent-spawn-C9Tn7SaR.js +0 -1005
- package/dist/system-cli-CxNpT3gx.js +0 -59
- package/dist/targets-dj8UJRJ6.js +0 -67
- package/dist/task-executor-ICSmgHPw.js +0 -360
- package/dist/task-owner-access-Do_-kA0r.js +0 -74
- package/dist/task-registry-D5vWx8tX.js +0 -2366
- package/dist/task-registry-delivery-runtime-NVZZb9QU.js +0 -3
- package/dist/task-registry-delivery-runtime-yimT8mwg.js +0 -2
- package/dist/task-registry.maintenance-B-hFV6uU.js +0 -2
- package/dist/task-registry.maintenance-vCNDvYID.js +0 -416
- package/dist/testing-DggItyHP.js +0 -575
- package/dist/text-report-kxNx8vB8.js +0 -587
- package/dist/tool-resolution-CfvU1QKh.js +0 -90
- package/dist/tools-effective-inventory-JUjxx1jC.js +0 -152
- package/dist/tools-invoke-http-B67672Wx.js +0 -206
- package/dist/trash--zyy7_il.js +0 -24
- package/dist/tui-cli-C9l1W8a5.js +0 -4573
- package/dist/update-cli-CWD6kp5u.js +0 -1728
- package/dist/upgrade-CtywVoEi.js +0 -1226
- package/dist/video-generation-task-status-DtZ_rioL.js +0 -163
- package/dist/wait-for-idle-before-flush-s-nJUXPe.js +0 -5986
|
@@ -0,0 +1,924 @@
|
|
|
1
|
+
import { a as normalizeLowercaseStringOrEmpty, c as normalizeOptionalString, f as readStringValue } from "./string-coerce-C1IzJjqi.js";
|
|
2
|
+
import { n as emitDiagnosticEvent } from "./diagnostic-events-CD7YG9TK.js";
|
|
3
|
+
import { s as resolveConfigPathCandidate } from "./paths-DmR9mjUX.js";
|
|
4
|
+
import { r as authorizeHttpGatewayConnect } from "./auth-I7fIjFrM.js";
|
|
5
|
+
import { a as loadConfig, i as getRuntimeConfig } from "./io-CRPT2IUI.js";
|
|
6
|
+
import { o as parseAgentSessionKey } from "./session-key-utils-BT0y7mVK.js";
|
|
7
|
+
import { c as normalizeAgentId, r as buildAgentMainSessionKey } from "./session-key-EpIbK3Oz.js";
|
|
8
|
+
import { r as listChannelPlugins } from "./registry-DXDC8Wqv.js";
|
|
9
|
+
import { g as listAgentIds, x as resolveDefaultAgentId } from "./agent-scope-CDjZLqNk.js";
|
|
10
|
+
import "./config-DcheqK7J.js";
|
|
11
|
+
import { u as normalizeMessageChannel } from "./message-channel-D2Y7UhTM.js";
|
|
12
|
+
import { n as normalizeMessageChannel$1 } from "./message-channel-core-CtbksRwN.js";
|
|
13
|
+
import { n as authorizeOperatorScopesForMethod, o as ADMIN_SCOPE, t as CLI_DEFAULT_OPERATOR_SCOPES } from "./method-scopes-Dut0EB9J.js";
|
|
14
|
+
import "./plugins-CV-ZD2kz.js";
|
|
15
|
+
import { x as parseModelRef, y as modelKey } from "./model-selection-shared-CyTG48aO.js";
|
|
16
|
+
import { o as resolveDefaultModelForAgent, t as buildAllowedModelSet } from "./model-selection-CKrtE2-6.js";
|
|
17
|
+
import { r as loadModelCatalog, s as resetModelCatalogCacheForTest } from "./model-catalog-B7Gss5Xr.js";
|
|
18
|
+
import { c as requestBodyErrorToText, o as readJsonBodyWithLimit } from "./http-body-DmMOHMx8.js";
|
|
19
|
+
import { n as resolveFunctionModuleExport, t as importFileModule } from "./module-loader-B2u3ajxy.js";
|
|
20
|
+
import { t as resolveAllowedAgentIds } from "./hooks-policy-D0pHpNLz.js";
|
|
21
|
+
import fs from "node:fs";
|
|
22
|
+
import path from "node:path";
|
|
23
|
+
import { randomUUID } from "node:crypto";
|
|
24
|
+
//#region src/logging/diagnostic-payload.ts
|
|
25
|
+
function logLargePayload(params) {
|
|
26
|
+
emitDiagnosticEvent({
|
|
27
|
+
type: "payload.large",
|
|
28
|
+
...params
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
function logRejectedLargePayload(params) {
|
|
32
|
+
logLargePayload({
|
|
33
|
+
action: "rejected",
|
|
34
|
+
...params
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
function parseContentLengthHeader(raw) {
|
|
38
|
+
const value = Array.isArray(raw) ? raw[0] : raw;
|
|
39
|
+
if (typeof value !== "string") return;
|
|
40
|
+
const trimmed = value.trim();
|
|
41
|
+
if (trimmed.length === 0 || !/^\d+$/.test(trimmed)) return;
|
|
42
|
+
const parsed = Number.parseInt(trimmed, 10);
|
|
43
|
+
return Number.isSafeInteger(parsed) && parsed >= 0 ? parsed : void 0;
|
|
44
|
+
}
|
|
45
|
+
//#endregion
|
|
46
|
+
//#region src/gateway/hooks-mapping.ts
|
|
47
|
+
const hookPresetMappings = { gmail: [{
|
|
48
|
+
id: "gmail",
|
|
49
|
+
match: { path: "gmail" },
|
|
50
|
+
action: "agent",
|
|
51
|
+
wakeMode: "now",
|
|
52
|
+
name: "Gmail",
|
|
53
|
+
sessionKey: "hook:gmail:{{messages[0].id}}",
|
|
54
|
+
messageTemplate: "New email from {{messages[0].from}}\nSubject: {{messages[0].subject}}\n{{messages[0].snippet}}\n{{messages[0].body}}"
|
|
55
|
+
}] };
|
|
56
|
+
const transformCache = /* @__PURE__ */ new Map();
|
|
57
|
+
function resolveHookMappings(hooks, opts) {
|
|
58
|
+
const presets = hooks?.presets ?? [];
|
|
59
|
+
const gmailAllowUnsafe = hooks?.gmail?.allowUnsafeExternalContent;
|
|
60
|
+
const mappings = [];
|
|
61
|
+
if (hooks?.mappings) mappings.push(...hooks.mappings);
|
|
62
|
+
for (const preset of presets) {
|
|
63
|
+
const presetMappings = hookPresetMappings[preset];
|
|
64
|
+
if (!presetMappings) continue;
|
|
65
|
+
if (preset === "gmail" && typeof gmailAllowUnsafe === "boolean") {
|
|
66
|
+
mappings.push(...presetMappings.map((mapping) => ({
|
|
67
|
+
...mapping,
|
|
68
|
+
allowUnsafeExternalContent: gmailAllowUnsafe
|
|
69
|
+
})));
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
mappings.push(...presetMappings);
|
|
73
|
+
}
|
|
74
|
+
if (mappings.length === 0) return [];
|
|
75
|
+
const configDir = path.resolve(opts?.configDir ?? path.dirname(resolveConfigPathCandidate()));
|
|
76
|
+
const transformsDir = resolveOptionalContainedPath(path.join(configDir, "hooks", "transforms"), hooks?.transformsDir, "Hook transformsDir");
|
|
77
|
+
return mappings.map((mapping, index) => normalizeHookMapping(mapping, index, transformsDir));
|
|
78
|
+
}
|
|
79
|
+
async function applyHookMappings(mappings, ctx) {
|
|
80
|
+
if (mappings.length === 0) return null;
|
|
81
|
+
for (const mapping of mappings) {
|
|
82
|
+
if (!mappingMatches(mapping, ctx)) continue;
|
|
83
|
+
const base = buildActionFromMapping(mapping, ctx);
|
|
84
|
+
if (!base.ok) return base;
|
|
85
|
+
let override = null;
|
|
86
|
+
if (mapping.transform) {
|
|
87
|
+
override = await (await loadTransform(mapping.transform))(ctx);
|
|
88
|
+
if (override === null) return {
|
|
89
|
+
ok: true,
|
|
90
|
+
action: null,
|
|
91
|
+
skipped: true
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
if (!base.action) return {
|
|
95
|
+
ok: true,
|
|
96
|
+
action: null,
|
|
97
|
+
skipped: true
|
|
98
|
+
};
|
|
99
|
+
const merged = mergeAction(base.action, override, mapping.action);
|
|
100
|
+
if (!merged.ok) return merged;
|
|
101
|
+
return merged;
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
function normalizeHookMapping(mapping, index, transformsDir) {
|
|
106
|
+
const id = normalizeOptionalString(mapping.id) || `mapping-${index + 1}`;
|
|
107
|
+
const matchPath = normalizeMatchPath(mapping.match?.path);
|
|
108
|
+
const matchSource = mapping.match?.source?.trim();
|
|
109
|
+
const action = mapping.action ?? "agent";
|
|
110
|
+
const wakeMode = mapping.wakeMode ?? "now";
|
|
111
|
+
const transform = mapping.transform ? {
|
|
112
|
+
modulePath: resolveContainedPath(transformsDir, mapping.transform.module, "Hook transform"),
|
|
113
|
+
exportName: normalizeOptionalString(mapping.transform.export)
|
|
114
|
+
} : void 0;
|
|
115
|
+
return {
|
|
116
|
+
id,
|
|
117
|
+
matchPath,
|
|
118
|
+
matchSource,
|
|
119
|
+
action,
|
|
120
|
+
wakeMode,
|
|
121
|
+
name: mapping.name,
|
|
122
|
+
agentId: normalizeOptionalString(mapping.agentId),
|
|
123
|
+
sessionKey: mapping.sessionKey,
|
|
124
|
+
messageTemplate: mapping.messageTemplate,
|
|
125
|
+
textTemplate: mapping.textTemplate,
|
|
126
|
+
deliver: mapping.deliver,
|
|
127
|
+
allowUnsafeExternalContent: mapping.allowUnsafeExternalContent,
|
|
128
|
+
channel: mapping.channel,
|
|
129
|
+
to: mapping.to,
|
|
130
|
+
model: mapping.model,
|
|
131
|
+
thinking: mapping.thinking,
|
|
132
|
+
timeoutSeconds: mapping.timeoutSeconds,
|
|
133
|
+
transform
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function mappingMatches(mapping, ctx) {
|
|
137
|
+
if (mapping.matchPath) {
|
|
138
|
+
if (mapping.matchPath !== normalizeMatchPath(ctx.path)) return false;
|
|
139
|
+
}
|
|
140
|
+
if (mapping.matchSource) {
|
|
141
|
+
const source = readStringValue(ctx.payload.source);
|
|
142
|
+
if (!source || source !== mapping.matchSource) return false;
|
|
143
|
+
}
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
function buildActionFromMapping(mapping, ctx) {
|
|
147
|
+
if (mapping.action === "wake") return {
|
|
148
|
+
ok: true,
|
|
149
|
+
action: {
|
|
150
|
+
kind: "wake",
|
|
151
|
+
text: renderTemplate(mapping.textTemplate ?? "", ctx),
|
|
152
|
+
mode: mapping.wakeMode ?? "now"
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
return {
|
|
156
|
+
ok: true,
|
|
157
|
+
action: {
|
|
158
|
+
kind: "agent",
|
|
159
|
+
message: renderTemplate(mapping.messageTemplate ?? "", ctx),
|
|
160
|
+
name: renderOptional(mapping.name, ctx),
|
|
161
|
+
agentId: mapping.agentId,
|
|
162
|
+
wakeMode: mapping.wakeMode ?? "now",
|
|
163
|
+
sessionKey: renderOptional(mapping.sessionKey, ctx),
|
|
164
|
+
sessionKeySource: getSessionKeyTemplateSource(mapping.sessionKey),
|
|
165
|
+
deliver: mapping.deliver,
|
|
166
|
+
allowUnsafeExternalContent: mapping.allowUnsafeExternalContent,
|
|
167
|
+
channel: mapping.channel,
|
|
168
|
+
to: renderOptional(mapping.to, ctx),
|
|
169
|
+
model: renderOptional(mapping.model, ctx),
|
|
170
|
+
thinking: renderOptional(mapping.thinking, ctx),
|
|
171
|
+
timeoutSeconds: mapping.timeoutSeconds
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
function mergeAction(base, override, defaultAction) {
|
|
176
|
+
if (!override) return validateAction(base);
|
|
177
|
+
if ((override.kind ?? base.kind ?? defaultAction) === "wake") {
|
|
178
|
+
const baseWake = base.kind === "wake" ? base : void 0;
|
|
179
|
+
return validateAction({
|
|
180
|
+
kind: "wake",
|
|
181
|
+
text: typeof override.text === "string" ? override.text : baseWake?.text ?? "",
|
|
182
|
+
mode: override.mode === "next-heartbeat" ? "next-heartbeat" : baseWake?.mode ?? "now"
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
const baseAgent = base.kind === "agent" ? base : void 0;
|
|
186
|
+
return validateAction({
|
|
187
|
+
kind: "agent",
|
|
188
|
+
message: typeof override.message === "string" ? override.message : baseAgent?.message ?? "",
|
|
189
|
+
wakeMode: override.wakeMode === "next-heartbeat" ? "next-heartbeat" : baseAgent?.wakeMode ?? "now",
|
|
190
|
+
name: override.name ?? baseAgent?.name,
|
|
191
|
+
agentId: override.agentId ?? baseAgent?.agentId,
|
|
192
|
+
sessionKey: override.sessionKey ?? baseAgent?.sessionKey,
|
|
193
|
+
sessionKeySource: resolveMergedSessionKeySource(baseAgent, override),
|
|
194
|
+
deliver: typeof override.deliver === "boolean" ? override.deliver : baseAgent?.deliver,
|
|
195
|
+
allowUnsafeExternalContent: typeof override.allowUnsafeExternalContent === "boolean" ? override.allowUnsafeExternalContent : baseAgent?.allowUnsafeExternalContent,
|
|
196
|
+
channel: override.channel ?? baseAgent?.channel,
|
|
197
|
+
to: override.to ?? baseAgent?.to,
|
|
198
|
+
model: override.model ?? baseAgent?.model,
|
|
199
|
+
thinking: override.thinking ?? baseAgent?.thinking,
|
|
200
|
+
timeoutSeconds: override.timeoutSeconds ?? baseAgent?.timeoutSeconds
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
function validateAction(action) {
|
|
204
|
+
if (action.kind === "wake") {
|
|
205
|
+
if (!action.text?.trim()) return {
|
|
206
|
+
ok: false,
|
|
207
|
+
error: "hook mapping requires text"
|
|
208
|
+
};
|
|
209
|
+
return {
|
|
210
|
+
ok: true,
|
|
211
|
+
action
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
if (!action.message?.trim()) return {
|
|
215
|
+
ok: false,
|
|
216
|
+
error: "hook mapping requires message"
|
|
217
|
+
};
|
|
218
|
+
return {
|
|
219
|
+
ok: true,
|
|
220
|
+
action
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
function getSessionKeyTemplateSource(sessionKeyTemplate) {
|
|
224
|
+
const normalizedTemplate = normalizeOptionalString(sessionKeyTemplate);
|
|
225
|
+
if (!normalizedTemplate) return;
|
|
226
|
+
return hasHookTemplateExpressions(normalizedTemplate) ? "templated" : "static";
|
|
227
|
+
}
|
|
228
|
+
function resolveMergedSessionKeySource(baseAgent, override) {
|
|
229
|
+
if (typeof override.sessionKey === "string") {
|
|
230
|
+
if (!normalizeOptionalString(override.sessionKey)) return;
|
|
231
|
+
return override.sessionKeySource === "static" ? "static" : "templated";
|
|
232
|
+
}
|
|
233
|
+
return baseAgent?.sessionKeySource;
|
|
234
|
+
}
|
|
235
|
+
function hasHookTemplateExpressions(template) {
|
|
236
|
+
return /\{\{\s*[^}]+\s*\}\}/.test(template);
|
|
237
|
+
}
|
|
238
|
+
async function loadTransform(transform) {
|
|
239
|
+
const cacheKey = `${transform.modulePath}::${transform.exportName ?? "default"}`;
|
|
240
|
+
const cached = transformCache.get(cacheKey);
|
|
241
|
+
if (cached) return cached;
|
|
242
|
+
const fn = resolveTransformFn(await importFileModule({ modulePath: transform.modulePath }), transform.exportName);
|
|
243
|
+
transformCache.set(cacheKey, fn);
|
|
244
|
+
return fn;
|
|
245
|
+
}
|
|
246
|
+
function resolveTransformFn(mod, exportName) {
|
|
247
|
+
const candidate = resolveFunctionModuleExport({
|
|
248
|
+
mod,
|
|
249
|
+
exportName,
|
|
250
|
+
fallbackExportNames: ["default", "transform"]
|
|
251
|
+
});
|
|
252
|
+
if (!candidate) throw new Error("hook transform module must export a function");
|
|
253
|
+
return candidate;
|
|
254
|
+
}
|
|
255
|
+
function resolvePath(baseDir, target) {
|
|
256
|
+
if (!target) return path.resolve(baseDir);
|
|
257
|
+
return path.isAbsolute(target) ? path.resolve(target) : path.resolve(baseDir, target);
|
|
258
|
+
}
|
|
259
|
+
function escapesBase(baseDir, candidate) {
|
|
260
|
+
const relative = path.relative(baseDir, candidate);
|
|
261
|
+
return relative === ".." || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative);
|
|
262
|
+
}
|
|
263
|
+
function safeRealpathSync(candidate) {
|
|
264
|
+
try {
|
|
265
|
+
const nativeRealpath = fs.realpathSync.native;
|
|
266
|
+
return nativeRealpath ? nativeRealpath(candidate) : fs.realpathSync(candidate);
|
|
267
|
+
} catch {
|
|
268
|
+
return null;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
function resolveExistingAncestor(candidate) {
|
|
272
|
+
let current = path.resolve(candidate);
|
|
273
|
+
while (true) {
|
|
274
|
+
if (fs.existsSync(current)) return current;
|
|
275
|
+
const parent = path.dirname(current);
|
|
276
|
+
if (parent === current) return null;
|
|
277
|
+
current = parent;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
function resolveContainedPath(baseDir, target, label) {
|
|
281
|
+
const base = path.resolve(baseDir);
|
|
282
|
+
const trimmed = target?.trim();
|
|
283
|
+
if (!trimmed) throw new Error(`${label} module path is required`);
|
|
284
|
+
const resolved = resolvePath(base, trimmed);
|
|
285
|
+
if (escapesBase(base, resolved)) throw new Error(`${label} module path must be within ${base}: ${target}`);
|
|
286
|
+
const baseRealpath = safeRealpathSync(base);
|
|
287
|
+
const existingAncestor = resolveExistingAncestor(resolved);
|
|
288
|
+
const existingAncestorRealpath = existingAncestor ? safeRealpathSync(existingAncestor) : null;
|
|
289
|
+
if (baseRealpath && existingAncestorRealpath && escapesBase(baseRealpath, existingAncestorRealpath)) throw new Error(`${label} module path must be within ${base}: ${target}`);
|
|
290
|
+
return resolved;
|
|
291
|
+
}
|
|
292
|
+
function resolveOptionalContainedPath(baseDir, target, label) {
|
|
293
|
+
const trimmed = target?.trim();
|
|
294
|
+
if (!trimmed) return path.resolve(baseDir);
|
|
295
|
+
return resolveContainedPath(baseDir, trimmed, label);
|
|
296
|
+
}
|
|
297
|
+
function normalizeMatchPath(raw) {
|
|
298
|
+
if (!raw) return;
|
|
299
|
+
const trimmed = raw.trim();
|
|
300
|
+
if (!trimmed) return;
|
|
301
|
+
return trimmed.replace(/^\/+/, "").replace(/\/+$/, "");
|
|
302
|
+
}
|
|
303
|
+
function renderOptional(value, ctx) {
|
|
304
|
+
if (!value) return;
|
|
305
|
+
const rendered = renderTemplate(value, ctx).trim();
|
|
306
|
+
return rendered ? rendered : void 0;
|
|
307
|
+
}
|
|
308
|
+
function renderTemplate(template, ctx) {
|
|
309
|
+
if (!template) return "";
|
|
310
|
+
return template.replace(/\{\{\s*([^}]+)\s*\}\}/g, (_, expr) => {
|
|
311
|
+
const value = resolveTemplateExpr(expr.trim(), ctx);
|
|
312
|
+
if (value === void 0 || value === null) return "";
|
|
313
|
+
if (typeof value === "string") return value;
|
|
314
|
+
if (typeof value === "number" || typeof value === "boolean") return String(value);
|
|
315
|
+
return JSON.stringify(value);
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
function resolveTemplateExpr(expr, ctx) {
|
|
319
|
+
if (expr === "path") return ctx.path;
|
|
320
|
+
if (expr === "now") return (/* @__PURE__ */ new Date()).toISOString();
|
|
321
|
+
if (expr.startsWith("headers.")) return getByPath(ctx.headers, expr.slice(8));
|
|
322
|
+
if (expr.startsWith("query.")) return getByPath(Object.fromEntries(ctx.url.searchParams.entries()), expr.slice(6));
|
|
323
|
+
if (expr.startsWith("payload.")) return getByPath(ctx.payload, expr.slice(8));
|
|
324
|
+
return getByPath(ctx.payload, expr);
|
|
325
|
+
}
|
|
326
|
+
const BLOCKED_PATH_KEYS = new Set([
|
|
327
|
+
"__proto__",
|
|
328
|
+
"prototype",
|
|
329
|
+
"constructor"
|
|
330
|
+
]);
|
|
331
|
+
function getByPath(input, pathExpr) {
|
|
332
|
+
if (!pathExpr) return;
|
|
333
|
+
const parts = [];
|
|
334
|
+
const re = /([^.[\]]+)|(\[(\d+)\])/g;
|
|
335
|
+
let match = re.exec(pathExpr);
|
|
336
|
+
while (match) {
|
|
337
|
+
if (match[1]) parts.push(match[1]);
|
|
338
|
+
else if (match[3]) parts.push(Number(match[3]));
|
|
339
|
+
match = re.exec(pathExpr);
|
|
340
|
+
}
|
|
341
|
+
let current = input;
|
|
342
|
+
for (const part of parts) {
|
|
343
|
+
if (current === null || current === void 0) return;
|
|
344
|
+
if (typeof part === "number") {
|
|
345
|
+
if (!Array.isArray(current)) return;
|
|
346
|
+
current = current[part];
|
|
347
|
+
continue;
|
|
348
|
+
}
|
|
349
|
+
if (BLOCKED_PATH_KEYS.has(part)) return;
|
|
350
|
+
if (typeof current !== "object") return;
|
|
351
|
+
current = current[part];
|
|
352
|
+
}
|
|
353
|
+
return current;
|
|
354
|
+
}
|
|
355
|
+
//#endregion
|
|
356
|
+
//#region src/gateway/hooks.ts
|
|
357
|
+
const DEFAULT_HOOKS_PATH = "/hooks";
|
|
358
|
+
const DEFAULT_HOOKS_MAX_BODY_BYTES = 256 * 1024;
|
|
359
|
+
const MAX_HOOK_IDEMPOTENCY_KEY_LENGTH = 256;
|
|
360
|
+
function resolveHooksConfig(cfg) {
|
|
361
|
+
if (cfg.hooks?.enabled !== true) return null;
|
|
362
|
+
const token = normalizeOptionalString(cfg.hooks?.token);
|
|
363
|
+
if (!token) throw new Error("hooks.enabled requires hooks.token");
|
|
364
|
+
const rawPath = normalizeOptionalString(cfg.hooks?.path) || DEFAULT_HOOKS_PATH;
|
|
365
|
+
const withSlash = rawPath.startsWith("/") ? rawPath : `/${rawPath}`;
|
|
366
|
+
const trimmed = withSlash.length > 1 ? withSlash.replace(/\/+$/, "") : withSlash;
|
|
367
|
+
if (trimmed === "/") throw new Error("hooks.path may not be '/'");
|
|
368
|
+
const maxBodyBytes = cfg.hooks?.maxBodyBytes && cfg.hooks.maxBodyBytes > 0 ? cfg.hooks.maxBodyBytes : DEFAULT_HOOKS_MAX_BODY_BYTES;
|
|
369
|
+
const mappings = resolveHookMappings(cfg.hooks);
|
|
370
|
+
const defaultAgentId = resolveDefaultAgentId(cfg);
|
|
371
|
+
const knownAgentIds = resolveKnownAgentIds(cfg, defaultAgentId);
|
|
372
|
+
const allowedAgentIds = resolveAllowedAgentIds(cfg.hooks?.allowedAgentIds);
|
|
373
|
+
const defaultSessionKey = resolveSessionKey$1(cfg.hooks?.defaultSessionKey);
|
|
374
|
+
const allowedSessionKeyPrefixes = resolveAllowedSessionKeyPrefixes(cfg.hooks?.allowedSessionKeyPrefixes);
|
|
375
|
+
if (defaultSessionKey && allowedSessionKeyPrefixes && !isSessionKeyAllowedByPrefix(defaultSessionKey, allowedSessionKeyPrefixes)) throw new Error("hooks.defaultSessionKey must match hooks.allowedSessionKeyPrefixes");
|
|
376
|
+
if (!defaultSessionKey && allowedSessionKeyPrefixes && !isSessionKeyAllowedByPrefix("hook:example", allowedSessionKeyPrefixes)) throw new Error("hooks.allowedSessionKeyPrefixes must include 'hook:' when hooks.defaultSessionKey is unset");
|
|
377
|
+
if (hasEffectiveTemplatedHookSessionKeyMapping(mappings) && !allowedSessionKeyPrefixes) throw new Error("hooks.allowedSessionKeyPrefixes is required when a hook mapping sessionKey uses templates, even if hooks.allowRequestSessionKey=true");
|
|
378
|
+
return {
|
|
379
|
+
basePath: trimmed,
|
|
380
|
+
token,
|
|
381
|
+
maxBodyBytes,
|
|
382
|
+
mappings,
|
|
383
|
+
agentPolicy: {
|
|
384
|
+
defaultAgentId,
|
|
385
|
+
knownAgentIds,
|
|
386
|
+
allowedAgentIds
|
|
387
|
+
},
|
|
388
|
+
sessionPolicy: {
|
|
389
|
+
defaultSessionKey,
|
|
390
|
+
allowRequestSessionKey: cfg.hooks?.allowRequestSessionKey === true,
|
|
391
|
+
allowedSessionKeyPrefixes
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
function resolveKnownAgentIds(cfg, defaultAgentId) {
|
|
396
|
+
const known = new Set(listAgentIds(cfg));
|
|
397
|
+
known.add(defaultAgentId);
|
|
398
|
+
return known;
|
|
399
|
+
}
|
|
400
|
+
function resolveSessionKey$1(raw) {
|
|
401
|
+
return normalizeOptionalString(raw);
|
|
402
|
+
}
|
|
403
|
+
function normalizeSessionKeyPrefix(raw) {
|
|
404
|
+
const value = normalizeLowercaseStringOrEmpty(raw);
|
|
405
|
+
return value ? value : void 0;
|
|
406
|
+
}
|
|
407
|
+
function resolveAllowedSessionKeyPrefixes(raw) {
|
|
408
|
+
if (!Array.isArray(raw)) return;
|
|
409
|
+
const set = /* @__PURE__ */ new Set();
|
|
410
|
+
for (const prefix of raw) {
|
|
411
|
+
const normalized = normalizeSessionKeyPrefix(prefix);
|
|
412
|
+
if (!normalized) continue;
|
|
413
|
+
set.add(normalized);
|
|
414
|
+
}
|
|
415
|
+
return set.size > 0 ? Array.from(set) : void 0;
|
|
416
|
+
}
|
|
417
|
+
function isSessionKeyAllowedByPrefix(sessionKey, prefixes) {
|
|
418
|
+
const normalized = normalizeLowercaseStringOrEmpty(sessionKey);
|
|
419
|
+
if (!normalized) return false;
|
|
420
|
+
return prefixes.some((prefix) => normalized.startsWith(prefix));
|
|
421
|
+
}
|
|
422
|
+
function extractHookToken(req) {
|
|
423
|
+
const auth = normalizeOptionalString(req.headers.authorization) ?? "";
|
|
424
|
+
if (normalizeLowercaseStringOrEmpty(auth).startsWith("bearer ")) {
|
|
425
|
+
const token = auth.slice(7).trim();
|
|
426
|
+
if (token) return token;
|
|
427
|
+
}
|
|
428
|
+
const headerToken = normalizeOptionalString(req.headers["x-genesis-token"]) ?? "";
|
|
429
|
+
if (headerToken) return headerToken;
|
|
430
|
+
}
|
|
431
|
+
async function readJsonBody(req, maxBytes) {
|
|
432
|
+
const result = await readJsonBodyWithLimit(req, {
|
|
433
|
+
maxBytes,
|
|
434
|
+
emptyObjectOnEmpty: true
|
|
435
|
+
});
|
|
436
|
+
if (result.ok) return result;
|
|
437
|
+
if (result.code === "PAYLOAD_TOO_LARGE") return {
|
|
438
|
+
ok: false,
|
|
439
|
+
error: "payload too large"
|
|
440
|
+
};
|
|
441
|
+
if (result.code === "REQUEST_BODY_TIMEOUT") return {
|
|
442
|
+
ok: false,
|
|
443
|
+
error: "request body timeout"
|
|
444
|
+
};
|
|
445
|
+
if (result.code === "CONNECTION_CLOSED") return {
|
|
446
|
+
ok: false,
|
|
447
|
+
error: requestBodyErrorToText("CONNECTION_CLOSED")
|
|
448
|
+
};
|
|
449
|
+
return {
|
|
450
|
+
ok: false,
|
|
451
|
+
error: result.error
|
|
452
|
+
};
|
|
453
|
+
}
|
|
454
|
+
function normalizeHookHeaders(req) {
|
|
455
|
+
const headers = {};
|
|
456
|
+
for (const [key, value] of Object.entries(req.headers)) {
|
|
457
|
+
const normalizedKey = normalizeLowercaseStringOrEmpty(key);
|
|
458
|
+
if (typeof value === "string") headers[normalizedKey] = value;
|
|
459
|
+
else if (Array.isArray(value) && value.length > 0) headers[normalizedKey] = value.join(", ");
|
|
460
|
+
}
|
|
461
|
+
return headers;
|
|
462
|
+
}
|
|
463
|
+
function normalizeWakePayload(payload) {
|
|
464
|
+
const normalizedText = normalizeOptionalString(payload.text) ?? "";
|
|
465
|
+
if (!normalizedText) return {
|
|
466
|
+
ok: false,
|
|
467
|
+
error: "text required"
|
|
468
|
+
};
|
|
469
|
+
return {
|
|
470
|
+
ok: true,
|
|
471
|
+
value: {
|
|
472
|
+
text: normalizedText,
|
|
473
|
+
mode: payload.mode === "next-heartbeat" ? "next-heartbeat" : "now"
|
|
474
|
+
}
|
|
475
|
+
};
|
|
476
|
+
}
|
|
477
|
+
const listHookChannelValues = () => ["last", ...listChannelPlugins().map((plugin) => plugin.id)];
|
|
478
|
+
const getHookChannelSet = () => new Set(listHookChannelValues());
|
|
479
|
+
const getHookChannelError = () => `channel must be ${listHookChannelValues().join("|")}`;
|
|
480
|
+
function resolveHookChannel(raw) {
|
|
481
|
+
if (raw === void 0) return "last";
|
|
482
|
+
if (typeof raw !== "string") return null;
|
|
483
|
+
const normalized = normalizeMessageChannel$1(raw);
|
|
484
|
+
if (!normalized || !getHookChannelSet().has(normalized)) return null;
|
|
485
|
+
return normalized;
|
|
486
|
+
}
|
|
487
|
+
function resolveHookDeliver(raw) {
|
|
488
|
+
return raw !== false;
|
|
489
|
+
}
|
|
490
|
+
function resolveOptionalHookIdempotencyKey(raw) {
|
|
491
|
+
if (typeof raw !== "string") return;
|
|
492
|
+
const trimmed = raw.trim();
|
|
493
|
+
if (!trimmed || trimmed.length > MAX_HOOK_IDEMPOTENCY_KEY_LENGTH) return;
|
|
494
|
+
return trimmed;
|
|
495
|
+
}
|
|
496
|
+
function resolveHookIdempotencyKey(params) {
|
|
497
|
+
return resolveOptionalHookIdempotencyKey(params.headers?.["idempotency-key"]) || resolveOptionalHookIdempotencyKey(params.headers?.["x-genesis-idempotency-key"]) || resolveOptionalHookIdempotencyKey(params.payload.idempotencyKey);
|
|
498
|
+
}
|
|
499
|
+
function resolveHookTargetAgentId(hooksConfig, agentId) {
|
|
500
|
+
const raw = normalizeOptionalString(agentId);
|
|
501
|
+
if (!raw) return;
|
|
502
|
+
const normalized = normalizeAgentId(raw);
|
|
503
|
+
if (hooksConfig.agentPolicy.knownAgentIds.has(normalized)) return normalized;
|
|
504
|
+
return hooksConfig.agentPolicy.defaultAgentId;
|
|
505
|
+
}
|
|
506
|
+
function isHookAgentAllowed(hooksConfig, agentId) {
|
|
507
|
+
const raw = normalizeOptionalString(agentId);
|
|
508
|
+
if (!raw) return true;
|
|
509
|
+
const allowed = hooksConfig.agentPolicy.allowedAgentIds;
|
|
510
|
+
if (allowed === void 0) return true;
|
|
511
|
+
const resolved = resolveHookTargetAgentId(hooksConfig, raw);
|
|
512
|
+
return resolved ? allowed.has(resolved) : false;
|
|
513
|
+
}
|
|
514
|
+
const getHookAgentPolicyError = () => "agentId is not allowed by hooks.allowedAgentIds";
|
|
515
|
+
const getHookSessionKeyRequestPolicyError = () => "sessionKey is disabled for externally supplied hook payload values; set hooks.allowRequestSessionKey=true to enable";
|
|
516
|
+
const getHookSessionKeyPrefixError = (prefixes) => `sessionKey must start with one of: ${prefixes.join(", ")}`;
|
|
517
|
+
function resolveHookSessionKey(params) {
|
|
518
|
+
const requested = resolveSessionKey$1(params.sessionKey);
|
|
519
|
+
if (requested) {
|
|
520
|
+
if ((params.source === "request" || params.source === "mapping-templated") && !params.hooksConfig.sessionPolicy.allowRequestSessionKey) return {
|
|
521
|
+
ok: false,
|
|
522
|
+
error: getHookSessionKeyRequestPolicyError()
|
|
523
|
+
};
|
|
524
|
+
const allowedPrefixes = params.hooksConfig.sessionPolicy.allowedSessionKeyPrefixes;
|
|
525
|
+
if (allowedPrefixes && !isSessionKeyAllowedByPrefix(requested, allowedPrefixes)) return {
|
|
526
|
+
ok: false,
|
|
527
|
+
error: getHookSessionKeyPrefixError(allowedPrefixes)
|
|
528
|
+
};
|
|
529
|
+
return {
|
|
530
|
+
ok: true,
|
|
531
|
+
value: requested
|
|
532
|
+
};
|
|
533
|
+
}
|
|
534
|
+
const defaultSessionKey = params.hooksConfig.sessionPolicy.defaultSessionKey;
|
|
535
|
+
if (defaultSessionKey) return {
|
|
536
|
+
ok: true,
|
|
537
|
+
value: defaultSessionKey
|
|
538
|
+
};
|
|
539
|
+
const generated = `hook:${(params.idFactory ?? randomUUID)()}`;
|
|
540
|
+
const allowedPrefixes = params.hooksConfig.sessionPolicy.allowedSessionKeyPrefixes;
|
|
541
|
+
if (allowedPrefixes && !isSessionKeyAllowedByPrefix(generated, allowedPrefixes)) return {
|
|
542
|
+
ok: false,
|
|
543
|
+
error: getHookSessionKeyPrefixError(allowedPrefixes)
|
|
544
|
+
};
|
|
545
|
+
return {
|
|
546
|
+
ok: true,
|
|
547
|
+
value: generated
|
|
548
|
+
};
|
|
549
|
+
}
|
|
550
|
+
function hasTemplatedHookSessionKey(sessionKey) {
|
|
551
|
+
return typeof sessionKey === "string" && hasHookTemplateExpressions(sessionKey);
|
|
552
|
+
}
|
|
553
|
+
function hasEffectiveTemplatedHookSessionKeyMapping(mappings) {
|
|
554
|
+
const effectiveMappings = [];
|
|
555
|
+
for (const mapping of mappings) {
|
|
556
|
+
if (isHookMappingShadowed(mapping, effectiveMappings)) continue;
|
|
557
|
+
effectiveMappings.push(mapping);
|
|
558
|
+
if (mapping.action === "agent" && hasTemplatedHookSessionKey(mapping.sessionKey)) return true;
|
|
559
|
+
}
|
|
560
|
+
return false;
|
|
561
|
+
}
|
|
562
|
+
function isHookMappingShadowed(mapping, earlierMappings) {
|
|
563
|
+
return earlierMappings.some((earlier) => {
|
|
564
|
+
if (earlier.matchPath && earlier.matchPath !== mapping.matchPath) return false;
|
|
565
|
+
return !earlier.matchSource || earlier.matchSource === mapping.matchSource;
|
|
566
|
+
});
|
|
567
|
+
}
|
|
568
|
+
function normalizeHookDispatchSessionKey(params) {
|
|
569
|
+
const trimmed = normalizeOptionalString(params.sessionKey) ?? "";
|
|
570
|
+
if (!trimmed || !params.targetAgentId) return trimmed;
|
|
571
|
+
const parsed = parseAgentSessionKey(trimmed);
|
|
572
|
+
if (!parsed) return trimmed;
|
|
573
|
+
return `agent:${normalizeAgentId(params.targetAgentId)}:${parsed.rest}`;
|
|
574
|
+
}
|
|
575
|
+
function normalizeAgentPayload(payload) {
|
|
576
|
+
const message = normalizeOptionalString(payload.message) ?? "";
|
|
577
|
+
if (!message) return {
|
|
578
|
+
ok: false,
|
|
579
|
+
error: "message required"
|
|
580
|
+
};
|
|
581
|
+
const nameRaw = payload.name;
|
|
582
|
+
const name = normalizeOptionalString(nameRaw) ?? "Hook";
|
|
583
|
+
const agentIdRaw = payload.agentId;
|
|
584
|
+
const agentId = normalizeOptionalString(agentIdRaw);
|
|
585
|
+
const idempotencyKey = resolveOptionalHookIdempotencyKey(payload.idempotencyKey);
|
|
586
|
+
const wakeMode = payload.wakeMode === "next-heartbeat" ? "next-heartbeat" : "now";
|
|
587
|
+
const sessionKeyRaw = payload.sessionKey;
|
|
588
|
+
const sessionKey = normalizeOptionalString(sessionKeyRaw);
|
|
589
|
+
const channel = resolveHookChannel(payload.channel);
|
|
590
|
+
if (!channel) return {
|
|
591
|
+
ok: false,
|
|
592
|
+
error: getHookChannelError()
|
|
593
|
+
};
|
|
594
|
+
const toRaw = payload.to;
|
|
595
|
+
const to = normalizeOptionalString(toRaw);
|
|
596
|
+
const modelRaw = payload.model;
|
|
597
|
+
const model = normalizeOptionalString(modelRaw);
|
|
598
|
+
if (modelRaw !== void 0 && !model) return {
|
|
599
|
+
ok: false,
|
|
600
|
+
error: "model required"
|
|
601
|
+
};
|
|
602
|
+
const deliver = resolveHookDeliver(payload.deliver);
|
|
603
|
+
const thinkingRaw = payload.thinking;
|
|
604
|
+
const thinking = normalizeOptionalString(thinkingRaw);
|
|
605
|
+
const timeoutRaw = payload.timeoutSeconds;
|
|
606
|
+
return {
|
|
607
|
+
ok: true,
|
|
608
|
+
value: {
|
|
609
|
+
message,
|
|
610
|
+
name,
|
|
611
|
+
agentId,
|
|
612
|
+
idempotencyKey,
|
|
613
|
+
wakeMode,
|
|
614
|
+
sessionKey,
|
|
615
|
+
deliver,
|
|
616
|
+
channel,
|
|
617
|
+
to,
|
|
618
|
+
model,
|
|
619
|
+
thinking,
|
|
620
|
+
timeoutSeconds: typeof timeoutRaw === "number" && Number.isFinite(timeoutRaw) && timeoutRaw > 0 ? Math.floor(timeoutRaw) : void 0
|
|
621
|
+
}
|
|
622
|
+
};
|
|
623
|
+
}
|
|
624
|
+
//#endregion
|
|
625
|
+
//#region src/gateway/http-common.ts
|
|
626
|
+
/**
|
|
627
|
+
* Apply baseline security headers that are safe for all response types (API JSON,
|
|
628
|
+
* HTML pages, static assets, SSE streams). Headers that restrict framing or set a
|
|
629
|
+
* Content-Security-Policy are intentionally omitted here because some handlers
|
|
630
|
+
* (canvas host, A2UI) serve content that may be loaded inside frames.
|
|
631
|
+
*/
|
|
632
|
+
function setDefaultSecurityHeaders(res, opts) {
|
|
633
|
+
res.setHeader("X-Content-Type-Options", "nosniff");
|
|
634
|
+
res.setHeader("Referrer-Policy", "no-referrer");
|
|
635
|
+
res.setHeader("Permissions-Policy", "camera=(), microphone=(self), geolocation=()");
|
|
636
|
+
const strictTransportSecurity = opts?.strictTransportSecurity;
|
|
637
|
+
if (typeof strictTransportSecurity === "string" && strictTransportSecurity.length > 0) res.setHeader("Strict-Transport-Security", strictTransportSecurity);
|
|
638
|
+
}
|
|
639
|
+
function sendJson(res, status, body) {
|
|
640
|
+
res.statusCode = status;
|
|
641
|
+
res.setHeader("Content-Type", "application/json; charset=utf-8");
|
|
642
|
+
res.end(JSON.stringify(body));
|
|
643
|
+
}
|
|
644
|
+
function sendText(res, status, body) {
|
|
645
|
+
res.statusCode = status;
|
|
646
|
+
res.setHeader("Content-Type", "text/plain; charset=utf-8");
|
|
647
|
+
res.end(body);
|
|
648
|
+
}
|
|
649
|
+
function sendMethodNotAllowed(res, allow = "POST") {
|
|
650
|
+
res.setHeader("Allow", allow);
|
|
651
|
+
sendText(res, 405, "Method Not Allowed");
|
|
652
|
+
}
|
|
653
|
+
function sendUnauthorized(res) {
|
|
654
|
+
sendJson(res, 401, { error: {
|
|
655
|
+
message: "Unauthorized",
|
|
656
|
+
type: "unauthorized"
|
|
657
|
+
} });
|
|
658
|
+
}
|
|
659
|
+
function sendRateLimited(res, retryAfterMs) {
|
|
660
|
+
if (retryAfterMs && retryAfterMs > 0) res.setHeader("Retry-After", String(Math.ceil(retryAfterMs / 1e3)));
|
|
661
|
+
sendJson(res, 429, { error: {
|
|
662
|
+
message: "Too many failed authentication attempts. Please try again later.",
|
|
663
|
+
type: "rate_limited"
|
|
664
|
+
} });
|
|
665
|
+
}
|
|
666
|
+
function sendGatewayAuthFailure(res, authResult) {
|
|
667
|
+
if (authResult.rateLimited) {
|
|
668
|
+
sendRateLimited(res, authResult.retryAfterMs);
|
|
669
|
+
return;
|
|
670
|
+
}
|
|
671
|
+
sendUnauthorized(res);
|
|
672
|
+
}
|
|
673
|
+
function sendInvalidRequest(res, message) {
|
|
674
|
+
sendJson(res, 400, { error: {
|
|
675
|
+
message,
|
|
676
|
+
type: "invalid_request_error"
|
|
677
|
+
} });
|
|
678
|
+
}
|
|
679
|
+
async function readJsonBodyOrError(req, res, maxBytes) {
|
|
680
|
+
const body = await readJsonBody(req, maxBytes);
|
|
681
|
+
if (!body.ok) {
|
|
682
|
+
if (body.error === "payload too large") {
|
|
683
|
+
const contentLength = parseContentLengthHeader(req.headers?.["content-length"]);
|
|
684
|
+
logRejectedLargePayload({
|
|
685
|
+
surface: "gateway.http.json",
|
|
686
|
+
limitBytes: maxBytes,
|
|
687
|
+
reason: "json_body_limit",
|
|
688
|
+
...contentLength !== void 0 ? { bytes: contentLength } : {}
|
|
689
|
+
});
|
|
690
|
+
sendJson(res, 413, { error: {
|
|
691
|
+
message: "Payload too large",
|
|
692
|
+
type: "invalid_request_error"
|
|
693
|
+
} });
|
|
694
|
+
return;
|
|
695
|
+
}
|
|
696
|
+
if (body.error === "request body timeout") {
|
|
697
|
+
sendJson(res, 408, { error: {
|
|
698
|
+
message: "Request body timeout",
|
|
699
|
+
type: "invalid_request_error"
|
|
700
|
+
} });
|
|
701
|
+
return;
|
|
702
|
+
}
|
|
703
|
+
sendInvalidRequest(res, body.error);
|
|
704
|
+
return;
|
|
705
|
+
}
|
|
706
|
+
return body.value;
|
|
707
|
+
}
|
|
708
|
+
function writeDone(res) {
|
|
709
|
+
res.write("data: [DONE]\n\n");
|
|
710
|
+
}
|
|
711
|
+
function setSseHeaders(res) {
|
|
712
|
+
res.statusCode = 200;
|
|
713
|
+
res.setHeader("Content-Type", "text/event-stream; charset=utf-8");
|
|
714
|
+
res.setHeader("Cache-Control", "no-cache");
|
|
715
|
+
res.setHeader("Connection", "keep-alive");
|
|
716
|
+
res.flushHeaders?.();
|
|
717
|
+
}
|
|
718
|
+
function watchClientDisconnect(req, res, abortController, onDisconnect) {
|
|
719
|
+
const sockets = Array.from(new Set([req.socket, res.socket].filter((socket) => socket !== null)));
|
|
720
|
+
if (sockets.length === 0) return () => {};
|
|
721
|
+
const handleClose = () => {
|
|
722
|
+
onDisconnect?.();
|
|
723
|
+
if (!abortController.signal.aborted) abortController.abort();
|
|
724
|
+
};
|
|
725
|
+
for (const socket of sockets) socket.on("close", handleClose);
|
|
726
|
+
return () => {
|
|
727
|
+
for (const socket of sockets) socket.off("close", handleClose);
|
|
728
|
+
};
|
|
729
|
+
}
|
|
730
|
+
//#endregion
|
|
731
|
+
//#region src/gateway/server-model-catalog.ts
|
|
732
|
+
function __resetModelCatalogCacheForTest() {
|
|
733
|
+
resetModelCatalogCacheForTest();
|
|
734
|
+
}
|
|
735
|
+
async function loadGatewayModelCatalog(params) {
|
|
736
|
+
return await loadModelCatalog({ config: (params?.getConfig ?? getRuntimeConfig)() });
|
|
737
|
+
}
|
|
738
|
+
//#endregion
|
|
739
|
+
//#region src/gateway/http-utils.ts
|
|
740
|
+
const GENESIS_MODEL_ID = "genesis";
|
|
741
|
+
const GENESIS_DEFAULT_MODEL_ID = "genesis/default";
|
|
742
|
+
function getHeader(req, name) {
|
|
743
|
+
const raw = req.headers[normalizeLowercaseStringOrEmpty(name)];
|
|
744
|
+
if (typeof raw === "string") return raw;
|
|
745
|
+
if (Array.isArray(raw)) return raw[0];
|
|
746
|
+
}
|
|
747
|
+
function getBearerToken(req) {
|
|
748
|
+
const raw = normalizeOptionalString(getHeader(req, "authorization")) ?? "";
|
|
749
|
+
if (!normalizeLowercaseStringOrEmpty(raw).startsWith("bearer ")) return;
|
|
750
|
+
return normalizeOptionalString(raw.slice(7));
|
|
751
|
+
}
|
|
752
|
+
function resolveHttpBrowserOriginPolicy(req, cfg = loadConfig()) {
|
|
753
|
+
return {
|
|
754
|
+
requestHost: getHeader(req, "host"),
|
|
755
|
+
origin: getHeader(req, "origin"),
|
|
756
|
+
allowedOrigins: cfg.gateway?.controlUi?.allowedOrigins,
|
|
757
|
+
allowHostHeaderOriginFallback: cfg.gateway?.controlUi?.dangerouslyAllowHostHeaderOriginFallback === true
|
|
758
|
+
};
|
|
759
|
+
}
|
|
760
|
+
function usesSharedSecretHttpAuth(auth) {
|
|
761
|
+
return auth?.mode === "token" || auth?.mode === "password";
|
|
762
|
+
}
|
|
763
|
+
function usesSharedSecretGatewayMethod(method) {
|
|
764
|
+
return method === "token" || method === "password";
|
|
765
|
+
}
|
|
766
|
+
function shouldTrustDeclaredHttpOperatorScopes(req, authOrRequest) {
|
|
767
|
+
if (authOrRequest && "trustDeclaredOperatorScopes" in authOrRequest) return authOrRequest.trustDeclaredOperatorScopes;
|
|
768
|
+
return !isGatewayBearerHttpRequest(req, authOrRequest);
|
|
769
|
+
}
|
|
770
|
+
async function authorizeGatewayHttpRequestOrReply(params) {
|
|
771
|
+
const result = await checkGatewayHttpRequestAuth(params);
|
|
772
|
+
if (!result.ok) {
|
|
773
|
+
sendGatewayAuthFailure(params.res, result.authResult);
|
|
774
|
+
return null;
|
|
775
|
+
}
|
|
776
|
+
return result.requestAuth;
|
|
777
|
+
}
|
|
778
|
+
async function checkGatewayHttpRequestAuth(params) {
|
|
779
|
+
const token = getBearerToken(params.req);
|
|
780
|
+
const browserOriginPolicy = resolveHttpBrowserOriginPolicy(params.req, params.cfg);
|
|
781
|
+
const authResult = await authorizeHttpGatewayConnect({
|
|
782
|
+
auth: params.auth,
|
|
783
|
+
connectAuth: token ? {
|
|
784
|
+
token,
|
|
785
|
+
password: token
|
|
786
|
+
} : null,
|
|
787
|
+
req: params.req,
|
|
788
|
+
trustedProxies: params.trustedProxies,
|
|
789
|
+
allowRealIpFallback: params.allowRealIpFallback,
|
|
790
|
+
rateLimiter: params.rateLimiter,
|
|
791
|
+
browserOriginPolicy
|
|
792
|
+
});
|
|
793
|
+
if (!authResult.ok) return {
|
|
794
|
+
ok: false,
|
|
795
|
+
authResult
|
|
796
|
+
};
|
|
797
|
+
return {
|
|
798
|
+
ok: true,
|
|
799
|
+
requestAuth: {
|
|
800
|
+
authMethod: authResult.method,
|
|
801
|
+
trustDeclaredOperatorScopes: !usesSharedSecretGatewayMethod(authResult.method)
|
|
802
|
+
}
|
|
803
|
+
};
|
|
804
|
+
}
|
|
805
|
+
async function authorizeScopedGatewayHttpRequestOrReply(params) {
|
|
806
|
+
const cfg = loadConfig();
|
|
807
|
+
const requestAuth = await authorizeGatewayHttpRequestOrReply({
|
|
808
|
+
req: params.req,
|
|
809
|
+
res: params.res,
|
|
810
|
+
auth: params.auth,
|
|
811
|
+
trustedProxies: params.trustedProxies ?? cfg.gateway?.trustedProxies,
|
|
812
|
+
allowRealIpFallback: params.allowRealIpFallback ?? cfg.gateway?.allowRealIpFallback,
|
|
813
|
+
rateLimiter: params.rateLimiter
|
|
814
|
+
});
|
|
815
|
+
if (!requestAuth) return null;
|
|
816
|
+
const requestedScopes = params.resolveOperatorScopes(params.req, requestAuth);
|
|
817
|
+
const scopeAuth = authorizeOperatorScopesForMethod(params.operatorMethod, requestedScopes);
|
|
818
|
+
if (!scopeAuth.allowed) {
|
|
819
|
+
sendJson(params.res, 403, {
|
|
820
|
+
ok: false,
|
|
821
|
+
error: {
|
|
822
|
+
type: "forbidden",
|
|
823
|
+
message: `missing scope: ${scopeAuth.missingScope}`
|
|
824
|
+
}
|
|
825
|
+
});
|
|
826
|
+
return null;
|
|
827
|
+
}
|
|
828
|
+
return {
|
|
829
|
+
cfg,
|
|
830
|
+
requestAuth
|
|
831
|
+
};
|
|
832
|
+
}
|
|
833
|
+
function isGatewayBearerHttpRequest(req, auth) {
|
|
834
|
+
return usesSharedSecretHttpAuth(auth) && Boolean(getBearerToken(req));
|
|
835
|
+
}
|
|
836
|
+
function resolveTrustedHttpOperatorScopes(req, authOrRequest) {
|
|
837
|
+
if (!shouldTrustDeclaredHttpOperatorScopes(req, authOrRequest)) return [];
|
|
838
|
+
const headerValue = getHeader(req, "x-genesis-scopes");
|
|
839
|
+
if (headerValue === void 0) return [...CLI_DEFAULT_OPERATOR_SCOPES];
|
|
840
|
+
const raw = headerValue.trim();
|
|
841
|
+
if (!raw) return [];
|
|
842
|
+
return raw.split(",").map((scope) => scope.trim()).filter((scope) => scope.length > 0);
|
|
843
|
+
}
|
|
844
|
+
function resolveOpenAiCompatibleHttpOperatorScopes(req, requestAuth) {
|
|
845
|
+
if (usesSharedSecretGatewayMethod(requestAuth.authMethod)) return [...CLI_DEFAULT_OPERATOR_SCOPES];
|
|
846
|
+
return resolveTrustedHttpOperatorScopes(req, requestAuth);
|
|
847
|
+
}
|
|
848
|
+
function resolveHttpSenderIsOwner(req, authOrRequest) {
|
|
849
|
+
return resolveTrustedHttpOperatorScopes(req, authOrRequest).includes(ADMIN_SCOPE);
|
|
850
|
+
}
|
|
851
|
+
function resolveOpenAiCompatibleHttpSenderIsOwner(req, requestAuth) {
|
|
852
|
+
if (usesSharedSecretGatewayMethod(requestAuth.authMethod)) return true;
|
|
853
|
+
return resolveHttpSenderIsOwner(req, requestAuth);
|
|
854
|
+
}
|
|
855
|
+
function resolveAgentIdFromHeader(req) {
|
|
856
|
+
const raw = normalizeOptionalString(getHeader(req, "x-genesis-agent-id")) || normalizeOptionalString(getHeader(req, "x-genesis-agent")) || "";
|
|
857
|
+
if (!raw) return;
|
|
858
|
+
return normalizeAgentId(raw);
|
|
859
|
+
}
|
|
860
|
+
function resolveAgentIdFromModel(model, cfg = loadConfig()) {
|
|
861
|
+
const raw = model?.trim();
|
|
862
|
+
if (!raw) return;
|
|
863
|
+
const lowered = normalizeLowercaseStringOrEmpty(raw);
|
|
864
|
+
if (lowered === "genesis" || lowered === "genesis/default") return resolveDefaultAgentId(cfg);
|
|
865
|
+
const agentId = (raw.match(/^genesis[:/](?<agentId>[a-z0-9][a-z0-9_-]{0,63})$/i) ?? raw.match(/^agent:(?<agentId>[a-z0-9][a-z0-9_-]{0,63})$/i))?.groups?.agentId;
|
|
866
|
+
if (!agentId) return;
|
|
867
|
+
return normalizeAgentId(agentId);
|
|
868
|
+
}
|
|
869
|
+
async function resolveOpenAiCompatModelOverride(params) {
|
|
870
|
+
const requestModel = params.model?.trim();
|
|
871
|
+
if (requestModel && !resolveAgentIdFromModel(requestModel)) return { errorMessage: "Invalid `model`. Use `genesis` or `genesis/<agentId>`." };
|
|
872
|
+
const raw = getHeader(params.req, "x-genesis-model")?.trim();
|
|
873
|
+
if (!raw) return {};
|
|
874
|
+
const cfg = loadConfig();
|
|
875
|
+
const defaultProvider = resolveDefaultModelForAgent({
|
|
876
|
+
cfg,
|
|
877
|
+
agentId: params.agentId
|
|
878
|
+
}).provider;
|
|
879
|
+
const parsed = parseModelRef(raw, defaultProvider);
|
|
880
|
+
if (!parsed) return { errorMessage: "Invalid `x-genesis-model`." };
|
|
881
|
+
const allowed = buildAllowedModelSet({
|
|
882
|
+
cfg,
|
|
883
|
+
catalog: await loadGatewayModelCatalog(),
|
|
884
|
+
defaultProvider,
|
|
885
|
+
agentId: params.agentId
|
|
886
|
+
});
|
|
887
|
+
const normalized = modelKey(parsed.provider, parsed.model);
|
|
888
|
+
if (!allowed.allowAny && !allowed.allowedKeys.has(normalized)) return { errorMessage: `Model '${normalized}' is not allowed for agent '${params.agentId}'.` };
|
|
889
|
+
return { modelOverride: raw };
|
|
890
|
+
}
|
|
891
|
+
function resolveAgentIdForRequest(params) {
|
|
892
|
+
const cfg = loadConfig();
|
|
893
|
+
const fromHeader = resolveAgentIdFromHeader(params.req);
|
|
894
|
+
if (fromHeader) return fromHeader;
|
|
895
|
+
return resolveAgentIdFromModel(params.model, cfg) ?? resolveDefaultAgentId(cfg);
|
|
896
|
+
}
|
|
897
|
+
function resolveSessionKey(params) {
|
|
898
|
+
const explicit = getHeader(params.req, "x-genesis-session-key")?.trim();
|
|
899
|
+
if (explicit) return explicit;
|
|
900
|
+
const user = params.user?.trim();
|
|
901
|
+
const mainKey = user ? `${params.prefix}-user:${user}` : `${params.prefix}:${randomUUID()}`;
|
|
902
|
+
return buildAgentMainSessionKey({
|
|
903
|
+
agentId: params.agentId,
|
|
904
|
+
mainKey
|
|
905
|
+
});
|
|
906
|
+
}
|
|
907
|
+
function resolveGatewayRequestContext(params) {
|
|
908
|
+
const agentId = resolveAgentIdForRequest({
|
|
909
|
+
req: params.req,
|
|
910
|
+
model: params.model
|
|
911
|
+
});
|
|
912
|
+
return {
|
|
913
|
+
agentId,
|
|
914
|
+
sessionKey: resolveSessionKey({
|
|
915
|
+
req: params.req,
|
|
916
|
+
agentId,
|
|
917
|
+
user: params.user,
|
|
918
|
+
prefix: params.sessionPrefix
|
|
919
|
+
}),
|
|
920
|
+
messageChannel: params.useMessageChannelHeader ? normalizeMessageChannel(getHeader(params.req, "x-genesis-message-channel")) ?? params.defaultMessageChannel : params.defaultMessageChannel
|
|
921
|
+
};
|
|
922
|
+
}
|
|
923
|
+
//#endregion
|
|
924
|
+
export { getHookSessionKeyPrefixError as A, resolveHookIdempotencyKey as B, setDefaultSecurityHeaders as C, extractHookToken as D, writeDone as E, normalizeHookHeaders as F, logLargePayload as G, resolveHookTargetAgentId as H, normalizeWakePayload as I, logRejectedLargePayload as K, readJsonBody as L, isSessionKeyAllowedByPrefix as M, normalizeAgentPayload as N, getHookAgentPolicyError as O, normalizeHookDispatchSessionKey as P, resolveHookChannel as R, sendMethodNotAllowed as S, watchClientDisconnect as T, resolveHooksConfig as U, resolveHookSessionKey as V, applyHookMappings as W, loadGatewayModelCatalog as _, checkGatewayHttpRequestAuth as a, sendInvalidRequest as b, resolveAgentIdForRequest as c, resolveHttpBrowserOriginPolicy as d, resolveOpenAiCompatModelOverride as f, __resetModelCatalogCacheForTest as g, resolveTrustedHttpOperatorScopes as h, authorizeScopedGatewayHttpRequestOrReply as i, isHookAgentAllowed as j, getHookChannelError as k, resolveAgentIdFromModel as l, resolveOpenAiCompatibleHttpSenderIsOwner as m, GENESIS_MODEL_ID as n, getBearerToken as o, resolveOpenAiCompatibleHttpOperatorScopes as p, authorizeGatewayHttpRequestOrReply as r, getHeader as s, GENESIS_DEFAULT_MODEL_ID as t, resolveGatewayRequestContext as u, readJsonBodyOrError as v, setSseHeaders as w, sendJson as x, sendGatewayAuthFailure as y, resolveHookDeliver as z };
|