@nikolasp98/minion 2026.6.16-dev.20260703022951 → 2026.7.2-dev
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/dist/{accounts-BuvRfQ9w.js → accounts-BXfCjq1s.js} +1 -1
- package/dist/{accounts-ZaxCwsI7.js → accounts-CgVj_ZvT.js} +1 -1
- package/dist/{accounts-BXGQwBCy.js → accounts-D0IauaHf.js} +1 -1
- package/dist/{accounts-D085lEm1.js → accounts-xwGx4GiG.js} +1 -1
- package/dist/{acp-cli-B33pR8aO.js → acp-cli-BofVv1S4.js} +3 -3
- package/dist/{acp-cli-B4TQ6ceB.js → acp-cli-KgewsPtq.js} +3 -3
- package/dist/{agent-ZEu8LatG.js → agent-h6HcO0Nb.js} +12 -12
- package/dist/{agent-step-GW1K3X_z.js → agent-step-CW6Vc9VA.js} +3 -3
- package/dist/{agent-step-CIwF1fe4.js → agent-step-DIqiZqN6.js} +3 -3
- package/dist/{agents-B-tnV6jT.js → agents-CRuMaUxh.js} +8 -8
- package/dist/{agents-list-tool-CpeEmvE6.js → agents-list-tool-DHrkIYwP.js} +3 -3
- package/dist/{agents-list-tool-C4DN0VKm.js → agents-list-tool-mV9-nOC8.js} +2 -2
- package/dist/{agents-list-tool-B1yRv0qo.js → agents-list-tool-qgS6iC-S.js} +3 -3
- package/dist/{agents.config-DU05dCcQ.js → agents.config-D6xx-kCm.js} +11 -11
- package/dist/{audit-Ck8w3i0g.js → audit-C4vWcnRT.js} +10 -10
- package/dist/{audit-BlADGCfR.js → audit-yMw0xC1H.js} +10 -10
- package/dist/{auth-choice-_HdhC1Ax.js → auth-choice-B3sdr0yr.js} +4 -4
- package/dist/{auth-choice-DXK-xwEZ.js → auth-choice-wAcjEzAw.js} +4 -4
- package/dist/{banner-DyN6sF2C.js → banner-XDf4LEG4.js} +1 -1
- package/dist/booking-cancel-tool-BQ4a7cOG.js +34 -0
- package/dist/booking-cancel-tool-D5WT2e71.js +34 -0
- package/dist/booking-cancel-tool-T0j0NEYJ.js +34 -0
- package/dist/booking-create-tool-B9OhlsCV.js +50 -0
- package/dist/booking-create-tool-C4mnxn4s.js +50 -0
- package/dist/booking-create-tool-DoK1URaw.js +50 -0
- package/dist/booking-reschedule-tool-BBRT8BeA.js +54 -0
- package/dist/booking-reschedule-tool-BbCUsgsS.js +54 -0
- package/dist/booking-reschedule-tool-szF6zAV5.js +54 -0
- package/dist/bookings-query-tool-BeUjMBd7.js +39 -0
- package/dist/bookings-query-tool-C82uomRU.js +39 -0
- package/dist/bookings-query-tool-CKBaEz6v.js +39 -0
- package/dist/brain-remember-tool-5GpyMh2L.js +54 -0
- package/dist/brain-remember-tool-C0NYC-xc.js +54 -0
- package/dist/brain-remember-tool-C6nzb0DB.js +54 -0
- package/dist/brain-search-tool-CISjpiVH.js +37 -0
- package/dist/brain-search-tool-CroWlajo.js +37 -0
- package/dist/brain-search-tool-D8benSIw.js +37 -0
- package/dist/brains-list-tool-CgKa84V3.js +27 -0
- package/dist/brains-list-tool-D6S8eSfu.js +27 -0
- package/dist/brains-list-tool-QygvDpW2.js +27 -0
- package/dist/{browser-cli-B61sRYcg.js → browser-cli-ChMgod93.js} +4 -4
- package/dist/{browser-cli-CmTcAyLB.js → browser-cli-DAsazj7c.js} +4 -4
- package/dist/{browser-tool-DcFsvT1U.js → browser-tool-CMPuFbvY.js} +6 -6
- package/dist/{browser-tool-BssHihtr.js → browser-tool-Ed0u_AOB.js} +7 -7
- package/dist/{browser-tool-BkX_TrBo.js → browser-tool-fWwWyaEp.js} +7 -7
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +1566 -11
- package/dist/bundled/kg-message-sync/handler.js +1 -1
- package/dist/{call-ByUO9iKO.js → call-BEIi33qI.js} +1 -1
- package/dist/{call-DtlNtNVA.js → call-BPWvRjRm.js} +2 -2
- package/dist/{call-_kPuw-vU.js → call-BtA9WrCC.js} +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{canvas-tool-WyTrg2j9.js → canvas-tool-CRjzdRXW.js} +2 -2
- package/dist/{canvas-tool-DEtMG6i2.js → canvas-tool-Ctyu2how.js} +2 -2
- package/dist/{canvas-tool-CzpnmWAn.js → canvas-tool-ftxzYBaK.js} +2 -2
- package/dist/{channel-options-Cnz3IGd9.js → channel-options-CQYFDEhv.js} +2 -2
- package/dist/{channel-options-DopXFSyZ.js → channel-options-ax7LAM0A.js} +2 -2
- package/dist/{channel-selection-CYImJUQg.js → channel-selection-CEx__vtW.js} +1 -1
- package/dist/{channel-selection-iTEcjxYC.js → channel-selection-SE_1hB_M.js} +1 -1
- package/dist/{channel-web-C61ymAAy.js → channel-web-BBuKa6h3.js} +11 -11
- package/dist/{channels-cli-CG1PrWEi.js → channels-cli-B9G06Fmo.js} +13 -13
- package/dist/{channels-cli-B5AFLqYY.js → channels-cli-CMytcEwb.js} +13 -13
- package/dist/{channels-status-issues-CruUpZ5_.js → channels-status-issues-2UslYkyj.js} +1 -1
- package/dist/{channels-status-issues-DQudmpKi.js → channels-status-issues-D-Uign2B.js} +1 -1
- package/dist/{chrome-SXjxMlpf.js → chrome-8ypx9Y_Q.js} +2 -2
- package/dist/{chrome-BXvOfh_S.js → chrome-Bm0i3JJ5.js} +1 -1
- package/dist/{chrome-BiJw-KLb.js → chrome-CKpv4Nqu.js} +2 -2
- package/dist/{clawbot-cli-BqIjHYyO.js → clawbot-cli-B0dcEO3n.js} +1 -1
- package/dist/{clawbot-cli-DEFNc0eF.js → clawbot-cli-BhkD8jAi.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-BOOG9rRa.js → cli-Bb8BwFKn.js} +3 -3
- package/dist/{cli-XfQlZlkf.js → cli-BkYzSkm4.js} +3 -3
- package/dist/{client-CS7cx9Im.js → client-CFTzdF7N.js} +4 -4
- package/dist/{client-BWtnXqf6.js → client-Ct-X1nzk.js} +4 -4
- package/dist/{client-0oQQSzns.js → client-DkJ5jqsl.js} +4 -4
- package/dist/{command-registry-JmDW6Nn6.js → command-registry-DYwO0GeY.js} +14 -14
- package/dist/{commands-registry-BAl7QGCh.js → commands-registry-CTh_zaQh.js} +2 -2
- package/dist/{commands-registry-apXzRQIt.js → commands-registry-eYNgWaeM.js} +2 -2
- package/dist/{completion-cli-CLXHz8g6.js → completion-cli-BR3ceW8A.js} +2 -2
- package/dist/{completion-cli-hYHXI1uh.js → completion-cli-DF_9tlQG.js} +1 -1
- package/dist/{config-D0cZAiW5.js → config-DKbC00-8.js} +1 -1
- package/dist/{config-C4ygZaLQ.js → config-GA90_ZLO.js} +1 -1
- package/dist/{config-cli-WVl6fLmt.js → config-cli-BFBb_KPM.js} +3 -3
- package/dist/{config-cli-a6kX0DWm.js → config-cli-DqrSBbB0.js} +3 -3
- package/dist/{config-guard-CLHcu3Wq.js → config-guard-CUaqhHD3.js} +3 -3
- package/dist/config-guard-CljBFSot.js +2 -0
- package/dist/{config-validation-uXqheWDj.js → config-validation-B7WbrARG.js} +2 -2
- package/dist/{config-validation-BUM-4lnJ.js → config-validation-BLe1mTWt.js} +2 -2
- package/dist/{config-UjWeYUCv.js → config-yRiIX18Z.js} +1 -1
- package/dist/{configure-DqZ20Fm1.js → configure-BVS7Uoe1.js} +16 -16
- package/dist/{configure-W7doYXjc.js → configure-Y4orl1oO.js} +16 -16
- package/dist/contact-tag-tool-B2IwH12w.js +43 -0
- package/dist/contact-tag-tool-BCTLI9AF.js +43 -0
- package/dist/contact-tag-tool-D-ow4Isv.js +43 -0
- package/dist/contact-update-tool-BUqDMu6g.js +48 -0
- package/dist/contact-update-tool-BtNz3sPT.js +48 -0
- package/dist/contact-update-tool-CuE27eki.js +48 -0
- package/dist/{cron-cli-D8dfzuy8.js → cron-cli-CMq19JHd.js} +3 -3
- package/dist/{cron-cli-abqQP_b7.js → cron-cli-DnZ4sbsM.js} +2 -2
- package/dist/{cron-tool-DT-Juzd0.js → cron-tool-BwIsBYaw.js} +5 -5
- package/dist/{cron-tool-CfZIJWk_.js → cron-tool-CsOKL3c2.js} +4 -4
- package/dist/{cron-tool-CvjJ7eWq.js → cron-tool-DyEs4iFg.js} +5 -5
- package/dist/{daemon-cli-LfpGMPoH.js → daemon-cli-CueUsD00.js} +9 -9
- package/dist/{daemon-cli-Dk4HnYpN.js → daemon-cli-of4aZf7x.js} +9 -9
- package/dist/daemon-cli.js +1 -1
- package/dist/daemon-install-helpers-BTrwyLn2.js +2 -0
- package/dist/daemon-install-helpers-DrlG4q0g.js +2 -0
- package/dist/{daemon-runtime-CWwiPJlC.js → daemon-runtime-Bc1wF1kV.js} +1 -1
- package/dist/{daemon-runtime-CYbnHdnj.js → daemon-runtime-DDr_cMqE.js} +1 -1
- package/dist/{deliver-BL-x0LSd.js → deliver-9LL4m3Lu.js} +6 -6
- package/dist/{deliver-W1AG1DOn.js → deliver-BQbh88Tj.js} +4 -4
- package/dist/{deliver-Cl_KmOId.js → deliver-UZw-uP-N.js} +5 -5
- package/dist/{deps-nXmpIQZI.js → deps-BDdvdX9C.js} +7 -7
- package/dist/{devices-cli-DnCpjN6g.js → devices-cli-C4beZBw0.js} +1 -1
- package/dist/{devices-cli-BRK10uvX.js → devices-cli-DLos0jsr.js} +1 -1
- package/dist/{diagnostic-BzRwZgem.js → diagnostic-VfvbQ5fw.js} +2 -2
- package/dist/{diagnostic-session-state-DxmmFAAh.js → diagnostic-session-state-CBHZ89g9.js} +1 -1
- package/dist/{directory-cli-C5N6RWl4.js → directory-cli-Bnn8FmVY.js} +4 -4
- package/dist/{directory-cli-BL_qihxU.js → directory-cli-DqwjijGj.js} +4 -4
- package/dist/{dispatcher-D1AyKtq_.js → dispatcher-D0-a_KPL.js} +7 -7
- package/dist/{dispatcher-zNWlur8g.js → dispatcher-DiHR8NYb.js} +7 -7
- package/dist/{dm-policy-shared-ClqzKx9w.js → dm-policy-shared-COFFISSw.js} +2 -2
- package/dist/{dm-policy-shared-C48I2hKE.js → dm-policy-shared-Db1R5Al0.js} +2 -2
- package/dist/{dns-cli-6CZeX7fy.js → dns-cli-BLIp6tn8.js} +2 -2
- package/dist/{dns-cli-C1Zhq42E.js → dns-cli-DU4VfG3C.js} +2 -2
- package/dist/{doctor-completion-Bpn4-Oq7.js → doctor-completion-8taj147x.js} +1 -1
- package/dist/doctor-completion-Bu80Av1s.js +2 -0
- package/dist/doctor-completion-BzTZPUY3.js +2 -0
- package/dist/{doctor-completion-DvFl76Xq.js → doctor-completion-lFqnioUo.js} +1 -1
- package/dist/{doctor-config-flow-CR7fJOuO.js → doctor-config-flow-3lyK6GXd.js} +5 -5
- package/dist/{doctor-config-flow-B_rg9smn.js → doctor-config-flow-DPD_mReb.js} +5 -5
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-CgGc4dVa.js → exec-approvals-cli-BfC19d1o.js} +2 -2
- package/dist/{exec-approvals-cli-BHbQggLt.js → exec-approvals-cli-CljRgEuO.js} +2 -2
- package/dist/extensionAPI.js +2 -2
- package/dist/finance-query-tool-7NGJzyjQ.js +43 -0
- package/dist/finance-query-tool-Bc-nST7-.js +43 -0
- package/dist/finance-query-tool-DEh-8uf3.js +43 -0
- package/dist/{gateway-CDqi7AYG.js → gateway-CrExAmqV.js} +2 -2
- package/dist/{gateway-DnQbLapC.js → gateway-DE7-sAMu.js} +3 -3
- package/dist/{gateway-BZ_rGbzx.js → gateway-Dt8tSFHA.js} +3 -3
- package/dist/{gateway-cli-DHMb1UuP.js → gateway-cli-BNdl5ETB.js} +40 -40
- package/dist/{gateway-cli-C5N07CtU.js → gateway-cli-avHq5s28.js} +44 -44
- package/dist/{gateway-rpc-BbkbWt3G.js → gateway-rpc-14Q1TtPH.js} +1 -1
- package/dist/{gateway-rpc-D4kSkkPS.js → gateway-rpc-l0Ix-6Kp.js} +1 -1
- package/dist/{gateway-tool-z8-vPF0-.js → gateway-tool-BWSVz3lE.js} +3 -3
- package/dist/{gateway-tool-koliixkR.js → gateway-tool-CX6hKwWR.js} +3 -3
- package/dist/{gateway-tool-D_6Uf9GQ.js → gateway-tool-CavUON8u.js} +3 -3
- package/dist/{github-copilot-auth-DXRIXhwE.js → github-copilot-auth-BVranXiA.js} +2 -2
- package/dist/{github-copilot-auth-vZIh62h7.js → github-copilot-auth-LevK6DQr.js} +2 -2
- package/dist/{gmail-C67NcH03.js → gmail-C1xWwBqt.js} +1 -1
- package/dist/{gmail-CKdlz_2l.js → gmail-rJdWhPq_.js} +1 -1
- package/dist/{health-B68NlCPU.js → health-CmEEKiew.js} +8 -8
- package/dist/{health-BH4SZIqw.js → health-DPusbWbK.js} +8 -8
- package/dist/{helpers-DX7IrTxf.js → helpers-DrKNVVVu.js} +1 -1
- package/dist/{helpers-DfUDP_7P.js → helpers-v9HeNa7s.js} +1 -1
- package/dist/{hooks-cli-fogVtYj5.js → hooks-cli-Di-nx8CI.js} +2 -2
- package/dist/{hooks-cli-C2Wx1UBL.js → hooks-cli-DqnwazMm.js} +2 -2
- package/dist/hub-common-BXMO3y1A.js +58 -0
- package/dist/hub-common-D7t3vbq1.js +58 -0
- package/dist/hub-pages-tool-CcT1qxV9.js +27 -0
- package/dist/hub-pages-tool-D-3FEFsZ.js +27 -0
- package/dist/hub-pages-tool-DoDvLDFh.js +27 -0
- package/dist/{image-tool-DrPrAhPE.js → image-tool-BjcTww_z.js} +2 -2
- package/dist/{image-tool-BjwEfIHS.js → image-tool-CZln47nw.js} +2 -2
- package/dist/{image-tool-t2URJv9Q.js → image-tool-CqG2fJgM.js} +2 -2
- package/dist/index.js +10 -10
- package/dist/{io-D6HAGfRj.js → io-CUOJNJs6.js} +1 -1
- package/dist/{io-e4Yx5ZqN.js → io-DsXKMvz3.js} +1 -1
- package/dist/{ir-CRQw8rC-.js → ir-B5YPvQFJ.js} +1 -1
- package/dist/{ir-Dw5why5w.js → ir-D89aqXPf.js} +4 -4
- package/dist/{ir-CXYhC_s0.js → ir-Dc6AWYIi.js} +1 -1
- package/dist/{knowledge-graph-DY3hX2id.js → knowledge-graph-MfRaP31I.js} +1 -1
- package/dist/{lifecycle-core-DodDF7fD.js → lifecycle-core-B5yxpQrN.js} +3 -3
- package/dist/{lifecycle-core-eActrcsn.js → lifecycle-core-BgBdMtfY.js} +3 -3
- package/dist/{logs-cli-BOKzwD3q.js → logs-cli-DCwto3gl.js} +2 -2
- package/dist/{logs-cli-Dogt71JB.js → logs-cli-DhL544qw.js} +2 -2
- package/dist/{manager-BEO63FwF.js → manager-DaF7qlnz.js} +1 -1
- package/dist/{memory-cli-DYHzddiH.js → memory-cli-BnAPYY9h.js} +2 -2
- package/dist/{memory-cli-QIIevuLL.js → memory-cli-DcenbgYg.js} +2 -2
- package/dist/{message-action-runner-BHH2obtO.js → message-action-runner-B_XqOBWe.js} +10 -10
- package/dist/{message-action-runner-BZPZrbfZ.js → message-action-runner-Dg2rHhif.js} +10 -10
- package/dist/{message-ledger-wjhcg6Ko.js → message-ledger-BeuUbcUn.js} +6 -6
- package/dist/{message-tool-Dx0lcq57.js → message-tool-BtCKP0ZG.js} +6 -6
- package/dist/{message-tool-BqzlpxAL.js → message-tool-CXE6QSaq.js} +8 -8
- package/dist/{message-tool-BdZMbP-_.js → message-tool-fWXuQrLW.js} +6 -6
- package/dist/{minion-tools-BCsEknBS.js → minion-tools-CExlnRRN.js} +438 -48
- package/dist/{model-catalog-BzwXHdrf.js → model-catalog-BUOrFywx.js} +3 -3
- package/dist/{model-catalog-C6s-YmOC.js → model-catalog-DAHly2DA.js} +3 -3
- package/dist/{model-fallback-CItMxzEx.js → model-fallback-BFGscvIF.js} +2 -2
- package/dist/{model-fallback-rLmQ9WJ2.js → model-fallback-Bu5IXWCs.js} +2 -2
- package/dist/{model-fallback-CSdDdf18.js → model-fallback-D7bL5w9a.js} +3 -3
- package/dist/{model-picker-Jl9cR9lZ.js → model-picker-BXHv9gwd.js} +2 -2
- package/dist/{model-picker-B-XiL2OH.js → model-picker-BlVeWarh.js} +2 -2
- package/dist/{models-CzO1PoHi.js → models-DrdU8zCR.js} +11 -11
- package/dist/{models-cli-DDqRod8M.js → models-cli-ClloOmLf.js} +11 -11
- package/dist/{models-cli-CJZPgBfF.js → models-cli-Cs1chbdr.js} +2 -2
- package/dist/{models-config-BNdF-IMY.js → models-config-CYz1Jl9f.js} +2 -2
- package/dist/{models-config-gGtRsN8J.js → models-config-DYWSuEYm.js} +2 -2
- package/dist/{node-cli-C07JlIhT.js → node-cli-DfNXXKfW.js} +7 -7
- package/dist/{node-cli-KTuDPtLV.js → node-cli-DuTW318s.js} +7 -7
- package/dist/{nodes-cli-D2NSRkr9.js → nodes-cli-C4DbIhxT.js} +4 -4
- package/dist/{nodes-cli-CtuZ7NoK.js → nodes-cli-dNo0GV28.js} +4 -4
- package/dist/{nodes-tool-DEEg33kl.js → nodes-tool-BMyerIV8.js} +3 -3
- package/dist/{nodes-tool-C64_5SUR.js → nodes-tool-CdRBRg3n.js} +2 -2
- package/dist/{nodes-tool-DytMlT0G.js → nodes-tool-xWih4JM4.js} +2 -2
- package/dist/{nodes-utils-CPn-ghlx.js → nodes-utils-CufLKNGe.js} +1 -1
- package/dist/{nodes-utils-BCfYRkSd.js → nodes-utils-DVWS0DJm.js} +1 -1
- package/dist/{nodes-utils-BTHUGnyH.js → nodes-utils-DsbuELKY.js} +1 -1
- package/dist/notify-user-tool-BQ9QLglp.js +41 -0
- package/dist/notify-user-tool-BuELqNes.js +41 -0
- package/dist/notify-user-tool-DLae7l_c.js +41 -0
- package/dist/{onboard-DUvfso4l.js → onboard-B-avLisX.js} +8 -8
- package/dist/{onboard-DofGeN8U.js → onboard-SJUelwfO.js} +8 -8
- package/dist/{onboard-channels-Bt9VQkRB.js → onboard-channels-2zt_gaYa.js} +3 -3
- package/dist/{onboard-channels-0yScPK4U.js → onboard-channels-B4YkPT_I.js} +1 -1
- package/dist/{onboard-channels-Vjny7vl1.js → onboard-channels-BfdH44jV.js} +1 -1
- package/dist/{onboard-channels-DaLKz8R4.js → onboard-channels-PE0DJeP3.js} +3 -3
- package/dist/{onboard-custom-rWmaWITc.js → onboard-custom-AFW2y9Fw.js} +2 -2
- package/dist/{onboard-custom-BDGt1kja.js → onboard-custom-DiGxyF1W.js} +2 -2
- package/dist/{onboard-custom-BysGgJiB.js → onboard-custom-sOaQBqZH.js} +1 -1
- package/dist/{onboard-custom-C3f0dVEB.js → onboard-custom-zDWUbUye.js} +1 -1
- package/dist/{onboard-helpers-BrndIk2N.js → onboard-helpers-0Ck3IoqE.js} +4 -4
- package/dist/{onboard-helpers-BAGJ5Lo1.js → onboard-helpers-Bat8F04f.js} +1 -1
- package/dist/{onboard-helpers-Dd4P1QbH.js → onboard-helpers-Bt6lH884.js} +4 -4
- package/dist/{onboard-helpers-DV9yuQ1d.js → onboard-helpers-CGpNOsa3.js} +1 -1
- package/dist/{onboard-remote-DRzZ9kQN.js → onboard-remote-CGoat8Ht.js} +1 -1
- package/dist/{onboard-remote-JIG7iYFa.js → onboard-remote-fxQZypsD.js} +1 -1
- package/dist/{onboard-skills-Ce5HO8VV.js → onboard-skills-CLrW7_vF.js} +1 -1
- package/dist/{onboard-skills-DMVLngVN.js → onboard-skills-GK6OUUuS.js} +1 -1
- package/dist/{onboarding-wYvukFyg.js → onboarding-C7aodLA2.js} +12 -12
- package/dist/{onboarding-CbhR0emG.js → onboarding-lIh5Eq03.js} +12 -12
- package/dist/{onboarding.finalize-DcDS7RiE.js → onboarding.finalize-Cpr_6eTb.js} +9 -9
- package/dist/{onboarding.finalize-nhs02n-T.js → onboarding.finalize-Wqrm-aWj.js} +9 -9
- package/dist/{onboarding.gateway-config-Bn1-Rp-H.js → onboarding.gateway-config-Bxm6nU1u.js} +2 -2
- package/dist/{onboarding.gateway-config-CtPOA3D5.js → onboarding.gateway-config-DKCE85Y-.js} +2 -2
- package/dist/order-update-status-tool-CMFqE714.js +43 -0
- package/dist/order-update-status-tool-CNX4uu2U.js +43 -0
- package/dist/order-update-status-tool-Dkv-jcX1.js +43 -0
- package/dist/orders-query-tool-Cox-HkmB.js +40 -0
- package/dist/orders-query-tool-CrWjRlWq.js +40 -0
- package/dist/orders-query-tool-DoTV3it7.js +40 -0
- package/dist/{outbound-send-deps-B6gAQhTt.js → outbound-send-deps-BaQy-H2c.js} +7 -7
- package/dist/{outbound-session-DRsIRtcz.js → outbound-session-CQu7MwtX.js} +6 -6
- package/dist/{outbound-session-Bw7QohlD.js → outbound-session-CX_XRDHU.js} +6 -6
- package/dist/{pairing-cli-Dgd0Wbso.js → pairing-cli-Y4cWvmqV.js} +4 -4
- package/dist/{pairing-cli-DNxLtDAs.js → pairing-cli-YKXsh9qq.js} +4 -4
- package/dist/{pairing-store-Dt3zHbxc.js → pairing-store-Cw5GsbNo.js} +2 -2
- package/dist/{pairing-store-BOjF78Ox.js → pairing-store-Da_7uUr_.js} +2 -2
- package/dist/{pi-embedded-helpers-CEkySDxp.js → pi-embedded-helpers-CDWmWyvU.js} +1 -1
- package/dist/{pi-embedded-helpers-DscGMv73.js → pi-embedded-helpers-CHtXwjlA.js} +27 -4
- package/dist/{pi-embedded-helpers-DL7FHGmT.js → pi-embedded-helpers-CwDskpRg.js} +1 -1
- package/dist/{pi-embedded-utils-kgdOppBK.js → pi-embedded-utils-BNN3Mb-q.js} +1 -1
- package/dist/{pi-embedded-utils-ByF51tTS.js → pi-embedded-utils-Cb_StxCN.js} +1 -1
- package/dist/{pi-embedded-utils-CbID52rD.js → pi-embedded-utils-MWdH9ypO.js} +1 -1
- package/dist/{pi-model-discovery-p8TFZjTo.js → pi-model-discovery-CKRiDFp0.js} +1 -1
- package/dist/{pi-tools.policy-BGMUkXoJ.js → pi-tools.policy-BJl7_IWm.js} +3 -3
- package/dist/{plugin-auto-enable-DDudeIWk.js → plugin-auto-enable-BuWdv2za.js} +1 -1
- package/dist/{plugin-auto-enable-3NRefTC0.js → plugin-auto-enable-DmQbCYAk.js} +1 -1
- package/dist/{plugin-registry-BsmJvnZM.js → plugin-registry-6dOOzi3y.js} +3 -3
- package/dist/{plugin-registry-5x3uvlGH.js → plugin-registry-CC5mfGuh.js} +3 -3
- package/dist/plugin-sdk/agents/tools/hub/booking-cancel-tool.d.ts +8 -0
- package/dist/plugin-sdk/agents/tools/hub/booking-create-tool.d.ts +10 -0
- package/dist/plugin-sdk/agents/tools/hub/booking-reschedule-tool.d.ts +12 -0
- package/dist/plugin-sdk/agents/tools/hub/bookings-query-tool.d.ts +9 -0
- package/dist/plugin-sdk/agents/tools/hub/brain-remember-tool.d.ts +14 -0
- package/dist/plugin-sdk/agents/tools/hub/brain-search-tool.d.ts +9 -0
- package/dist/plugin-sdk/agents/tools/hub/brains-list-tool.d.ts +10 -0
- package/dist/plugin-sdk/agents/tools/hub/contact-tag-tool.d.ts +8 -0
- package/dist/plugin-sdk/agents/tools/hub/contact-update-tool.d.ts +10 -0
- package/dist/plugin-sdk/agents/tools/hub/finance-query-tool.d.ts +11 -0
- package/dist/plugin-sdk/agents/tools/hub/hub-common.d.ts +17 -0
- package/dist/plugin-sdk/agents/tools/hub/hub-pages-tool.d.ts +10 -0
- package/dist/plugin-sdk/agents/tools/hub/notify-user-tool.d.ts +11 -0
- package/dist/plugin-sdk/agents/tools/hub/order-update-status-tool.d.ts +8 -0
- package/dist/plugin-sdk/agents/tools/hub/orders-query-tool.d.ts +8 -0
- package/dist/plugin-sdk/agents/tools/hub/projects-query-tool.d.ts +8 -0
- package/dist/plugin-sdk/agents/tools/hub/stock-entry-create-tool.d.ts +10 -0
- package/dist/plugin-sdk/agents/tools/hub/stock-query-tool.d.ts +8 -0
- package/dist/plugin-sdk/agents/tools/hub/task-create-tool.d.ts +8 -0
- package/dist/plugin-sdk/agents/tools/hub/task-update-tool.d.ts +9 -0
- package/dist/plugin-sdk/agents/tools/hub/ticket-comment-tool.d.ts +9 -0
- package/dist/plugin-sdk/agents/tools/hub/ticket-create-tool.d.ts +8 -0
- package/dist/plugin-sdk/agents/tools/hub/ticket-update-tool.d.ts +9 -0
- package/dist/plugin-sdk/agents/tools/hub/tickets-query-tool.d.ts +8 -0
- package/dist/plugin-sdk/channels/discord.js +1566 -11
- package/dist/plugin-sdk/channels/imessage.js +1566 -11
- package/dist/plugin-sdk/channels/line.js +1566 -11
- package/dist/plugin-sdk/channels/signal.js +1566 -11
- package/dist/plugin-sdk/channels/slack.js +1566 -11
- package/dist/plugin-sdk/channels/telegram.js +1566 -11
- package/dist/plugin-sdk/channels/whatsapp.js +1566 -11
- package/dist/plugin-sdk/core.js +1 -1
- package/dist/plugin-sdk/index.js +1566 -11
- package/dist/{plugins-C3wcf7MF.js → plugins-C_QBgBKj.js} +1 -1
- package/dist/{plugins-B3EcsJ93.js → plugins-D6vuz-44.js} +1 -1
- package/dist/{plugins-BL_DwVqV.js → plugins-Dt-7Y5wv.js} +1 -1
- package/dist/{plugins-cli-BmazY7y6.js → plugins-cli-BYANyisq.js} +3 -3
- package/dist/{plugins-cli-CbT4Ivfy.js → plugins-cli-z-gXEkiv.js} +3 -3
- package/dist/{program-DbljxDPq.js → program-D_3DwSCA.js} +7 -7
- package/dist/{program-context-DiDgk5Zh.js → program-context-DRlcBXyK.js} +42 -42
- package/dist/projects-query-tool-BMFyd6JA.js +36 -0
- package/dist/projects-query-tool-BfpS0jf3.js +36 -0
- package/dist/projects-query-tool-DDIbxa_y.js +36 -0
- package/dist/{prompt-select-styled-CBtk-g6b.js → prompt-select-styled-2x3TaE5T.js} +18 -18
- package/dist/{prompt-select-styled-DQkPX023.js → prompt-select-styled-CkFtjmG1.js} +18 -18
- package/dist/{push-apns-BOeMCPZo.js → push-apns-BYXttBeJ.js} +1 -1
- package/dist/{push-apns-DpoIe7e2.js → push-apns-D879xbRP.js} +1 -1
- package/dist/{pw-ai-BJyHhYQF.js → pw-ai-BXS_o6SX.js} +2 -2
- package/dist/{pw-ai-BEWrwUFs.js → pw-ai-CfC7b26r.js} +2 -2
- package/dist/{pw-ai-HlMa6FG6.js → pw-ai-D9HAap-o.js} +2 -2
- package/dist/{pw-session-CWDEi5Nc.js → pw-session-ClplWKdd.js} +1 -1
- package/dist/{pw-session-CwWxQG1I.js → pw-session-FNaJjvLM.js} +1 -1
- package/dist/{pw-session-CGsc7KWi.js → pw-session-m7067XiE.js} +1 -1
- package/dist/{qr-cli-Dhlzz33G.js → qr-cli-CReHqOud.js} +2 -2
- package/dist/{qr-cli-Dldb8C1U.js → qr-cli-CdiCMQGN.js} +2 -2
- package/dist/{register.agent-_wkQQgzp.js → register.agent-BhnXw_dx.js} +8 -8
- package/dist/{register.agent-DnR7m134.js → register.agent-gVjDby1v.js} +12 -12
- package/dist/{register.channel-DtMJW1B2.js → register.channel-BWFep3ht.js} +2 -2
- package/dist/{register.channel-ByOxBY8q.js → register.channel-Cs5mrRZK.js} +2 -2
- package/dist/{register.configure-nrRrsu0C.js → register.configure-BeA7rzcV.js} +1 -1
- package/dist/{register.configure-BPniagxi.js → register.configure-CfW9D0gg.js} +1 -1
- package/dist/{register.drone-Cf5hsWJV.js → register.drone-C3ko3f4m.js} +1 -1
- package/dist/{register.drone-GMUhMhB4.js → register.drone-N_X5a2wS.js} +1 -1
- package/dist/{register.maintenance-BgfUvt-j.js → register.maintenance-BdJvIKSK.js} +5 -5
- package/dist/{register.maintenance-1tmxCGJO.js → register.maintenance-CEXQ4BMG.js} +5 -5
- package/dist/{register.message-sfK4pC7Q.js → register.message-CSdDkTF6.js} +9 -9
- package/dist/{register.message-o5rsaNxX.js → register.message-D4L-RQzY.js} +8 -8
- package/dist/{register.onboard-Dyb6qoBi.js → register.onboard-CYI56giZ.js} +1 -1
- package/dist/{register.onboard-Q56EmCd1.js → register.onboard-DEsoSYVM.js} +1 -1
- package/dist/{register.setup-LmUXe-fJ.js → register.setup-ChlFvsQj.js} +4 -4
- package/dist/{register.setup-DFN-ma50.js → register.setup-CpMcHooI.js} +4 -4
- package/dist/{register.status-health-sessions-ChRIvGGx.js → register.status-health-sessions-CESGadbE.js} +6 -6
- package/dist/{register.status-health-sessions-CH55XELQ.js → register.status-health-sessions-CIBXSHl0.js} +4 -4
- package/dist/{register.subclis-BV7bN9SK.js → register.subclis-BFXE6TvY.js} +29 -29
- package/dist/{reply-BvB01BRa.js → reply-Dy4Gl8EU.js} +436 -46
- package/dist/{reply-payloads-BxIDP7AE.js → reply-payloads-haUxLKio.js} +6 -6
- package/dist/{reply-prefix-Caipj1Jf.js → reply-prefix-BQo8iEBd.js} +1 -1
- package/dist/{reply-prefix-DY3LhS4c.js → reply-prefix-CUl0tQo3.js} +1 -1
- package/dist/{resolve-route-_uEmZcg2.js → resolve-route-CQNeFCbt.js} +4 -4
- package/dist/{resolve-route-DMoFSOUO.js → resolve-route-Cm40tM17.js} +2 -2
- package/dist/{routes-BsjQsdNd.js → routes-B3alP22i.js} +5 -5
- package/dist/{routes-BzfGuFnh.js → routes-DLBS9sHq.js} +5 -5
- package/dist/{rpc-gxwxRHlK.js → rpc-CtI1iVqG.js} +1 -1
- package/dist/{rpc-LOiW9xrJ.js → rpc-DZXtmnqh.js} +1 -1
- package/dist/{run-main-BiEp_qc-.js → run-main-De6Qk8Ng.js} +20 -20
- package/dist/{sandbox-0BpaF17S.js → sandbox-Co0HrQB2.js} +29 -6
- package/dist/{sandbox-opcHUJfc.js → sandbox-Dh_zn6nH.js} +29 -6
- package/dist/{sandbox-cli-Ca6I34Pd.js → sandbox-cli-DXUvqdbh.js} +4 -4
- package/dist/{sandbox-cli-B3hI0p9M.js → sandbox-cli-LZRCHMKQ.js} +4 -4
- package/dist/{security-cli-B1FLTWRz.js → security-cli-BlgNK6T8.js} +4 -4
- package/dist/{security-cli-wN-U3m9U.js → security-cli-COv-kz1U.js} +4 -4
- package/dist/{send-rKIFHSnf.js → send-B-l_LQjz.js} +6 -6
- package/dist/{send-ucLRBq08.js → send-BI100vN5.js} +4 -4
- package/dist/{send-BYUhkXPy.js → send-Bo3iRRV4.js} +5 -5
- package/dist/{send-CdgyDwpI.js → send-C1WQ3CSg.js} +5 -5
- package/dist/{send-mMi3QyjT.js → send-D3OXHEbY.js} +6 -6
- package/dist/{send-x8u-elit.js → send-DWGmd1lt.js} +5 -5
- package/dist/{send-DYI3wQww.js → send-Dnl8Mt0b.js} +5 -5
- package/dist/{send-B3692clO.js → send-nbmNq53I.js} +4 -4
- package/dist/{send-CGfg9v0J.js → send-oPMRcy46.js} +6 -6
- package/dist/{server-context-BQP316jT.js → server-context-BeBZl8zi.js} +7 -7
- package/dist/{server-context-BphUkFsU.js → server-context-DagQm3En.js} +22 -13
- package/dist/{server-context-B-cxcvtx.js → server-context-DecHp93O.js} +7 -7
- package/dist/{server-node-events-OgwlQNLw.js → server-node-events-Bo8YlLSF.js} +11 -11
- package/dist/{server-node-events-D5Xh_Y3M.js → server-node-events-uT9otrnW.js} +9 -9
- package/dist/{session-status-tool-BNOPtPyp.js → session-status-tool-CORFonZM.js} +6 -6
- package/dist/{session-status-tool-fkINR0b7.js → session-status-tool-DOqbETnH.js} +4 -4
- package/dist/{session-status-tool-Bsup3FG3.js → session-status-tool-DWSIlGFt.js} +7 -7
- package/dist/{session-utils-BhtdagqA.js → session-utils-Csw9JX2F.js} +4 -4
- package/dist/{sessions-Xhs8V4aT.js → sessions-BdTwFSod.js} +5 -5
- package/dist/{sessions-Cnxo_ndD.js → sessions-Bxcso1A4.js} +4 -4
- package/dist/{sessions-helpers-B5BjpGie.js → sessions-helpers-BpXiixPk.js} +3 -3
- package/dist/{sessions-helpers-BscA64r4.js → sessions-helpers-CmL5of8k.js} +3 -3
- package/dist/{sessions-helpers-C08Phzso.js → sessions-helpers-DcPYyi87.js} +3 -3
- package/dist/{sessions-history-tool-D3gAndpg.js → sessions-history-tool-BQOJ7xuQ.js} +5 -5
- package/dist/{sessions-history-tool-Br3I5NQV.js → sessions-history-tool-ClVtna5z.js} +4 -4
- package/dist/{sessions-history-tool-BS2CEMeV.js → sessions-history-tool-wBp39NZW.js} +5 -5
- package/dist/{sessions-list-tool-D9haQlmB.js → sessions-list-tool-C0O6mqWz.js} +5 -5
- package/dist/{sessions-list-tool-BqcU9vby.js → sessions-list-tool-CH113G82.js} +5 -5
- package/dist/{sessions-list-tool-D0ZSfep3.js → sessions-list-tool-DWfvM5MD.js} +4 -4
- package/dist/{sessions-F6cK8l_1.js → sessions-lzLAfYqN.js} +2 -2
- package/dist/{sessions-send-tool-BOQTRsUE.js → sessions-send-tool-BIN3x_Tj.js} +4 -4
- package/dist/{sessions-send-tool-Bfg4pkkA.js → sessions-send-tool-BIoLJtEy.js} +6 -6
- package/dist/{sessions-send-tool-endz3GxW.js → sessions-send-tool-dV7l6L-a.js} +6 -6
- package/dist/{sessions-spawn-tool-CzR5BUIZ.js → sessions-spawn-tool-BtjzxdZj.js} +1 -1
- package/dist/{sessions-spawn-tool-DaJfWSEQ.js → sessions-spawn-tool-C5XN2MAW.js} +1 -1
- package/dist/{sessions-spawn-tool-OkqKciwd.js → sessions-spawn-tool-DXkgQ1c1.js} +1 -1
- package/dist/{sessions-DQF8fZS5.js → sessions-wZjDzkQG.js} +5 -5
- package/dist/{shared-B1dSlQWp.js → shared-B6M3Crny.js} +2 -2
- package/dist/{shared-CTyE2G7t.js → shared-D-22sIu6.js} +2 -2
- package/dist/{skills-cli-DV341ngV.js → skills-cli-Bz3cwPj_.js} +2 -2
- package/dist/{skills-cli-Mxzv9u2e.js → skills-cli-CmaLyEtb.js} +2 -2
- package/dist/{status-BTlLe0ON.js → status-B4sO93X3.js} +13 -13
- package/dist/{status-DJTNPoQJ.js → status-CHylpoRy.js} +3 -3
- package/dist/{status-BJ4KXOo4.js → status-CjmAMIhE.js} +3 -3
- package/dist/{status-_f9Uj4h_.js → status-DowOkHsW.js} +14 -14
- package/dist/{status.update-C0dSEZaW.js → status.update-BvmD1bXY.js} +1 -1
- package/dist/{status.update-BLkpPZhg.js → status.update-D8oMtrQX.js} +1 -1
- package/dist/stock-entry-create-tool-DfNIrQzF.js +65 -0
- package/dist/stock-entry-create-tool-DkDA256U.js +65 -0
- package/dist/stock-entry-create-tool-JrqollnX.js +65 -0
- package/dist/stock-query-tool-3bjENU9A.js +40 -0
- package/dist/stock-query-tool-B2OY0tLg.js +40 -0
- package/dist/stock-query-tool-Bsr6eYmx.js +40 -0
- package/dist/{subagent-registry-Dctvgiur.js → subagent-registry-Ii11UQhV.js} +437 -47
- package/dist/{subagents-tool-MpxHOawd.js → subagents-tool-DTZpiDFG.js} +6 -6
- package/dist/{subagents-tool-ByM5O-ce.js → subagents-tool-DdprLwOY.js} +6 -6
- package/dist/{subagents-tool-BCrHvFRR.js → subagents-tool-QLFj9isA.js} +5 -5
- package/dist/{system-cli-COUy2PIL.js → system-cli-B6ybt64_.js} +1 -1
- package/dist/{system-cli-cLZOHCpV.js → system-cli-CMB9gLS1.js} +1 -1
- package/dist/{systemd-hints-BX82rgwJ.js → systemd-hints-BzOt_XFu.js} +1 -1
- package/dist/{systemd-hints-BmHO3vGm.js → systemd-hints-DmsFHA7q.js} +1 -1
- package/dist/{tables-BoNY2PMq.js → tables-CvGD4xT4.js} +1 -1
- package/dist/{tables-CnpzK-sx.js → tables-s_KxXF6r.js} +1 -1
- package/dist/{targets-vjobqKDT.js → targets-DbWZn0md.js} +1 -1
- package/dist/{targets-CJj3TAfL.js → targets-j9B_CT6R.js} +2 -2
- package/dist/{targets-CeBejFtg.js → targets-mUIc5_ub.js} +1 -1
- package/dist/task-create-tool-B-wyPaLW.js +57 -0
- package/dist/task-create-tool-CfhgqDpn.js +57 -0
- package/dist/task-create-tool-R0RYIlSC.js +57 -0
- package/dist/task-update-tool-B_ujDPoz.js +60 -0
- package/dist/task-update-tool-CyCYpo5t.js +60 -0
- package/dist/task-update-tool-DI5TYHQT.js +60 -0
- package/dist/ticket-comment-tool-BgSUbC6T.js +37 -0
- package/dist/ticket-comment-tool-BtjOiFwD.js +37 -0
- package/dist/ticket-comment-tool-DRqPzvJk.js +37 -0
- package/dist/ticket-create-tool-CPO6AKPb.js +47 -0
- package/dist/ticket-create-tool-DWQBJHsn.js +47 -0
- package/dist/ticket-create-tool-lWSiDlYL.js +47 -0
- package/dist/ticket-update-tool-BeD2z9ZY.js +58 -0
- package/dist/ticket-update-tool-CjpJcT7m.js +58 -0
- package/dist/ticket-update-tool-eCjmYW_F.js +58 -0
- package/dist/tickets-query-tool-6MsgLSkO.js +48 -0
- package/dist/tickets-query-tool-C3YCslkG.js +48 -0
- package/dist/tickets-query-tool-D0y1ebEc.js +48 -0
- package/dist/{tools-cli-Drw57lNT.js → tools-cli-BcqfTXH3.js} +3 -3
- package/dist/{tools-cli-Da3xpL2N.js → tools-cli-CsSY7v2U.js} +3 -3
- package/dist/trash-CAuria7l.js +30 -0
- package/dist/trash-MreuHnUR.js +30 -0
- package/dist/{tts-DOuWQCl0.js → tts-BID2aWnP.js} +1 -1
- package/dist/{tts-C8sci73b.js → tts-C3AwA748.js} +1 -1
- package/dist/{tts-DT16K-Mg.js → tts-DCwuFqIs.js} +1 -1
- package/dist/{tts-tool-D1xTgy6g.js → tts-tool-93YXtjYQ.js} +3 -3
- package/dist/{tts-tool-0BxHJ75w.js → tts-tool-Dp3bbxji.js} +3 -3
- package/dist/{tts-tool-D9A3NRZE.js → tts-tool-mOELbBEX.js} +2 -2
- package/dist/{tui-CICAogKo.js → tui-BblnJk5A.js} +5 -5
- package/dist/{tui-CW99vGjf.js → tui-Dqvb7RGr.js} +5 -5
- package/dist/{tui-cli-Bz_Y0kQF.js → tui-cli-DTuLv6YU.js} +1 -1
- package/dist/{tui-cli-Bde9FKc6.js → tui-cli-iijuUo1d.js} +1 -1
- package/dist/{update-cli-D6WNU0LC.js → update-cli-Bxtp7C-D.js} +8 -8
- package/dist/{update-cli-LVqEOX8z.js → update-cli-kEGnxFk2.js} +8 -8
- package/dist/{web-yADrkaRA.js → web-B95TAk7m.js} +12 -12
- package/dist/web-BAY_a6tU.js +2 -0
- package/dist/{web-search-B7JFlIV1.js → web-search-BR1c-hlF.js} +3 -3
- package/dist/{web-search-CcsH3zdM.js → web-search-CgNIDJss.js} +4 -4
- package/dist/{web-search-CotaJGI9.js → web-search-DKL6hJzo.js} +4 -4
- package/dist/{webhooks-cli-DEXYEmNX.js → webhooks-cli-Do-F-mnF.js} +3 -3
- package/dist/{webhooks-cli-BJgyjOoC.js → webhooks-cli-DqngLhaB.js} +3 -3
- package/dist/{workspace-dirs-0d7swJWd.js → workspace-dirs-CG9EsWKG.js} +3 -3
- package/package.json +1 -1
- package/dist/config-guard-B_1VhFji.js +0 -2
- package/dist/daemon-install-helpers-CHeRULJH.js +0 -2
- package/dist/daemon-install-helpers-CMbh4Lp7.js +0 -2
- package/dist/doctor-completion-FuFJd6IQ.js +0 -2
- package/dist/doctor-completion-KAdCjzsy.js +0 -2
- package/dist/trash-DPd6fFGH.js +0 -21
- package/dist/trash-DYakNGQh.js +0 -21
- package/dist/web-OUk9Is6v.js +0 -2
|
@@ -3817,7 +3817,7 @@ var init_shell_env = __esmMin((() => {
|
|
|
3817
3817
|
//#region src/version.ts
|
|
3818
3818
|
var VERSION;
|
|
3819
3819
|
var init_version$1 = __esmMin((() => {
|
|
3820
|
-
VERSION = "2026.
|
|
3820
|
+
VERSION = "2026.7.2-dev";
|
|
3821
3821
|
}));
|
|
3822
3822
|
//#endregion
|
|
3823
3823
|
//#region src/sessions/session-key-utils.ts
|
|
@@ -23985,29 +23985,52 @@ var init__groups_generated = __esmMin((() => {
|
|
|
23985
23985
|
"group:minion": [
|
|
23986
23986
|
"agents_list",
|
|
23987
23987
|
"architect_pipeline",
|
|
23988
|
+
"booking_cancel",
|
|
23989
|
+
"booking_create",
|
|
23990
|
+
"booking_reschedule",
|
|
23991
|
+
"bookings_query",
|
|
23992
|
+
"brain_remember",
|
|
23993
|
+
"brain_search",
|
|
23994
|
+
"brains_list",
|
|
23988
23995
|
"browser",
|
|
23989
23996
|
"canvas",
|
|
23997
|
+
"contact_tag",
|
|
23998
|
+
"contact_update",
|
|
23990
23999
|
"crm_insight",
|
|
23991
24000
|
"crm_query",
|
|
23992
24001
|
"crm_search",
|
|
23993
24002
|
"cron",
|
|
24003
|
+
"finance_query",
|
|
23994
24004
|
"gateway",
|
|
23995
24005
|
"gws_auth_revoke",
|
|
23996
24006
|
"gws_auth_start",
|
|
23997
24007
|
"gws_auth_status",
|
|
23998
24008
|
"gws_exec",
|
|
24009
|
+
"hub_pages",
|
|
23999
24010
|
"image",
|
|
24000
24011
|
"knowledge_graph",
|
|
24001
24012
|
"message",
|
|
24002
24013
|
"nodes",
|
|
24014
|
+
"notify_user",
|
|
24015
|
+
"order_update_status",
|
|
24016
|
+
"orders_query",
|
|
24017
|
+
"projects_query",
|
|
24003
24018
|
"session_status",
|
|
24004
24019
|
"sessions_history",
|
|
24005
24020
|
"sessions_list",
|
|
24006
24021
|
"sessions_send",
|
|
24007
24022
|
"sessions_spawn",
|
|
24008
24023
|
"skill_view",
|
|
24024
|
+
"stock_entry_create",
|
|
24025
|
+
"stock_query",
|
|
24009
24026
|
"subagents",
|
|
24010
24027
|
"summarize",
|
|
24028
|
+
"task_create",
|
|
24029
|
+
"task_update",
|
|
24030
|
+
"ticket_comment",
|
|
24031
|
+
"ticket_create",
|
|
24032
|
+
"ticket_update",
|
|
24033
|
+
"tickets_query",
|
|
24011
24034
|
"tts",
|
|
24012
24035
|
"update_behaviour",
|
|
24013
24036
|
"venture_studio",
|
|
@@ -31027,16 +31050,26 @@ async function movePathToTrash(targetPath) {
|
|
|
31027
31050
|
await runExec("trash", [targetPath], { timeoutMs: 1e4 });
|
|
31028
31051
|
return targetPath;
|
|
31029
31052
|
} catch {
|
|
31030
|
-
|
|
31031
|
-
|
|
31032
|
-
|
|
31033
|
-
|
|
31034
|
-
|
|
31035
|
-
|
|
31036
|
-
|
|
31053
|
+
try {
|
|
31054
|
+
const trashDir = path.join(os.homedir(), ".Trash");
|
|
31055
|
+
fs.mkdirSync(trashDir, { recursive: true });
|
|
31056
|
+
const base = path.basename(targetPath);
|
|
31057
|
+
let dest = path.join(trashDir, `${base}-${Date.now()}`);
|
|
31058
|
+
if (fs.existsSync(dest)) dest = path.join(trashDir, `${base}-${Date.now()}-${Math.random()}`);
|
|
31059
|
+
fs.renameSync(targetPath, dest);
|
|
31060
|
+
return dest;
|
|
31061
|
+
} catch {
|
|
31062
|
+
logWarn(`trash: falling back to fs.rm for "${targetPath}" (trash and rename both failed)`);
|
|
31063
|
+
await fs.promises.rm(targetPath, {
|
|
31064
|
+
recursive: true,
|
|
31065
|
+
force: true
|
|
31066
|
+
});
|
|
31067
|
+
return targetPath;
|
|
31068
|
+
}
|
|
31037
31069
|
}
|
|
31038
31070
|
}
|
|
31039
31071
|
var init_trash = __esmMin((() => {
|
|
31072
|
+
init_logger$2();
|
|
31040
31073
|
init_exec();
|
|
31041
31074
|
}));
|
|
31042
31075
|
//#endregion
|
|
@@ -81248,6 +81281,1138 @@ var init_hub_rest_registry = __esmMin((() => {
|
|
|
81248
81281
|
rest = null;
|
|
81249
81282
|
}));
|
|
81250
81283
|
//#endregion
|
|
81284
|
+
//#region src/agents/tools/hub/hub-common.ts
|
|
81285
|
+
/**
|
|
81286
|
+
* Shared plumbing for the hub module tool pack (finance/bookings/tickets/
|
|
81287
|
+
* orders/projects/pages read tools + booking/ticket/order/task/contact/notify
|
|
81288
|
+
* write tools). Mirrors crm_insight/crm_query's gate + fetch shape — do not
|
|
81289
|
+
* invent a new one. Gated on (a) a resolved hub REST link and (b) a personal
|
|
81290
|
+
* agent id: the hub derives the owning user (and org membership) from
|
|
81291
|
+
* `personal-<uuid>`, so a non-personal agent can't use these.
|
|
81292
|
+
*/
|
|
81293
|
+
function hubToolsAvailable(agentId) {
|
|
81294
|
+
return !!agentId && agentId.startsWith("personal-") && !!getHubRest();
|
|
81295
|
+
}
|
|
81296
|
+
async function parseResponse(res) {
|
|
81297
|
+
const body = await res.json().catch(() => void 0);
|
|
81298
|
+
if (!res.ok) return { error: (body && typeof body === "object" ? body.error : void 0) ?? `request failed: ${res.status}` };
|
|
81299
|
+
return body ?? {};
|
|
81300
|
+
}
|
|
81301
|
+
/** GET a `/api/gateway/<path>` endpoint with the trusted agentId + optional orgId. */
|
|
81302
|
+
async function hubGet(path, agentId, query = {}) {
|
|
81303
|
+
const rest = getHubRest();
|
|
81304
|
+
if (!rest) return { error: "hub is not connected." };
|
|
81305
|
+
const qs = new URLSearchParams({ agentId });
|
|
81306
|
+
for (const [key, value] of Object.entries(query)) if (value !== void 0) qs.set(key, value);
|
|
81307
|
+
try {
|
|
81308
|
+
return await parseResponse(await fetch(`${rest.hubUrl.replace(/\/$/, "")}/api/gateway/${path}?${qs}`, {
|
|
81309
|
+
method: "GET",
|
|
81310
|
+
headers: { Authorization: `Bearer ${rest.serverToken}` }
|
|
81311
|
+
}));
|
|
81312
|
+
} catch (err) {
|
|
81313
|
+
return { error: err instanceof Error ? err.message : String(err) };
|
|
81314
|
+
}
|
|
81315
|
+
}
|
|
81316
|
+
/** POST to a `/api/gateway/<path>` endpoint with the trusted agentId + optional orgId. */
|
|
81317
|
+
async function hubPost(path, agentId, body, orgId) {
|
|
81318
|
+
const rest = getHubRest();
|
|
81319
|
+
if (!rest) return { error: "hub is not connected." };
|
|
81320
|
+
const qs = new URLSearchParams({ agentId });
|
|
81321
|
+
if (orgId) qs.set("orgId", orgId);
|
|
81322
|
+
try {
|
|
81323
|
+
return await parseResponse(await fetch(`${rest.hubUrl.replace(/\/$/, "")}/api/gateway/${path}?${qs}`, {
|
|
81324
|
+
method: "POST",
|
|
81325
|
+
headers: {
|
|
81326
|
+
Authorization: `Bearer ${rest.serverToken}`,
|
|
81327
|
+
"content-type": "application/json"
|
|
81328
|
+
},
|
|
81329
|
+
body: JSON.stringify(body)
|
|
81330
|
+
}));
|
|
81331
|
+
} catch (err) {
|
|
81332
|
+
return { error: err instanceof Error ? err.message : String(err) };
|
|
81333
|
+
}
|
|
81334
|
+
}
|
|
81335
|
+
var CONFIRM_FIELD, ORG_ID_FIELD;
|
|
81336
|
+
var init_hub_common = __esmMin((() => {
|
|
81337
|
+
init_hub_rest_registry();
|
|
81338
|
+
CONFIRM_FIELD = Type.Boolean({ description: "Required. First present the exact action (entity, fields, effect) to the user and ask for confirmation. Only call with confirm=true after the user explicitly agrees. Calls with confirm=false return a preview, not a mutation." });
|
|
81339
|
+
ORG_ID_FIELD = Type.Optional(Type.String({ description: "Organization id to scope to, ONLY when the page-context envelope gave you an active_org_id and the user has more than one org. Omit otherwise — the hub defaults to the user's primary org. The hub rejects any org the user isn't a member of." }));
|
|
81340
|
+
}));
|
|
81341
|
+
//#endregion
|
|
81342
|
+
//#region src/agents/tools/hub/booking-cancel-tool.ts
|
|
81343
|
+
var booking_cancel_tool_exports = /* @__PURE__ */ __exportAll({ createBookingCancelTool: () => createBookingCancelTool });
|
|
81344
|
+
/**
|
|
81345
|
+
* Cancel an existing booking. WRITE — confirm contract: confirm=false
|
|
81346
|
+
* returns a preview, confirm=true only after the user explicitly agrees.
|
|
81347
|
+
*/
|
|
81348
|
+
function createBookingCancelTool(options) {
|
|
81349
|
+
const agentId = options.agentId;
|
|
81350
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
81351
|
+
return wrapToolWithTracking({
|
|
81352
|
+
label: "Booking Cancel",
|
|
81353
|
+
name: "booking_cancel",
|
|
81354
|
+
description: "Cancel an existing booking. First present the exact action (which booking) and ask for confirmation. Call with confirm=false for a validated preview (no write); only call with confirm=true after the user explicitly agrees.",
|
|
81355
|
+
parameters: BookingCancelSchema,
|
|
81356
|
+
execute: async (_toolCallId, args) => {
|
|
81357
|
+
const params = args;
|
|
81358
|
+
const orgId = readStringParam(params, "orgId");
|
|
81359
|
+
return jsonResult(await hubPost("actions/booking-cancel", agentId, {
|
|
81360
|
+
bookingId: readStringParam(params, "bookingId", { required: true }),
|
|
81361
|
+
confirm: params.confirm === true
|
|
81362
|
+
}, orgId));
|
|
81363
|
+
}
|
|
81364
|
+
}, "builtin:booking_cancel");
|
|
81365
|
+
}
|
|
81366
|
+
var BookingCancelSchema;
|
|
81367
|
+
var init_booking_cancel_tool = __esmMin((() => {
|
|
81368
|
+
init_tool_tracking();
|
|
81369
|
+
init_common();
|
|
81370
|
+
init_hub_common();
|
|
81371
|
+
BookingCancelSchema = Type.Object({
|
|
81372
|
+
bookingId: Type.String({ description: "The booking to cancel." }),
|
|
81373
|
+
confirm: CONFIRM_FIELD,
|
|
81374
|
+
orgId: ORG_ID_FIELD
|
|
81375
|
+
});
|
|
81376
|
+
}));
|
|
81377
|
+
//#endregion
|
|
81378
|
+
//#region src/agents/tools/hub/booking-create-tool.ts
|
|
81379
|
+
var booking_create_tool_exports = /* @__PURE__ */ __exportAll({ createBookingCreateTool: () => createBookingCreateTool });
|
|
81380
|
+
/**
|
|
81381
|
+
* Create a scheduling booking. WRITE — confirm contract: call with
|
|
81382
|
+
* confirm=false first to get a preview of what would be created; only call
|
|
81383
|
+
* with confirm=true after the user has explicitly agreed to the exact
|
|
81384
|
+
* booking (attendee, time, service).
|
|
81385
|
+
*/
|
|
81386
|
+
function createBookingCreateTool(options) {
|
|
81387
|
+
const agentId = options.agentId;
|
|
81388
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
81389
|
+
return wrapToolWithTracking({
|
|
81390
|
+
label: "Booking Create",
|
|
81391
|
+
name: "booking_create",
|
|
81392
|
+
description: "Create a new appointment/booking. First present the exact action (attendee, service, start time) to the user and ask for confirmation. Call with confirm=false to get a validated preview (no write); only call with confirm=true after the user explicitly agrees. On success, present the result with a deep link like [booking](/scheduling/bookings?contact={contactId}).",
|
|
81393
|
+
parameters: BookingCreateSchema,
|
|
81394
|
+
execute: async (_toolCallId, args) => {
|
|
81395
|
+
const params = args;
|
|
81396
|
+
const orgId = readStringParam(params, "orgId");
|
|
81397
|
+
return jsonResult(await hubPost("actions/booking-create", agentId, {
|
|
81398
|
+
eventTypeId: readStringParam(params, "eventTypeId", { required: true }),
|
|
81399
|
+
start: readStringParam(params, "start", { required: true }),
|
|
81400
|
+
crmContactId: readStringParam(params, "crmContactId"),
|
|
81401
|
+
attendeeName: readStringParam(params, "attendeeName"),
|
|
81402
|
+
attendeeEmail: readStringParam(params, "attendeeEmail"),
|
|
81403
|
+
attendeePhone: readStringParam(params, "attendeePhone"),
|
|
81404
|
+
resourceId: readStringParam(params, "resourceId"),
|
|
81405
|
+
notes: readStringParam(params, "notes"),
|
|
81406
|
+
confirm: params.confirm === true
|
|
81407
|
+
}, orgId));
|
|
81408
|
+
}
|
|
81409
|
+
}, "builtin:booking_create");
|
|
81410
|
+
}
|
|
81411
|
+
var BookingCreateSchema;
|
|
81412
|
+
var init_booking_create_tool = __esmMin((() => {
|
|
81413
|
+
init_tool_tracking();
|
|
81414
|
+
init_common();
|
|
81415
|
+
init_hub_common();
|
|
81416
|
+
BookingCreateSchema = Type.Object({
|
|
81417
|
+
eventTypeId: Type.String({ description: "Which scheduling event type/service to book (required)." }),
|
|
81418
|
+
start: Type.String({ description: "ISO 8601 start time, e.g. 2026-07-10T15:00:00-05:00." }),
|
|
81419
|
+
crmContactId: Type.Optional(Type.String({ description: "CRM contact id, if the attendee is a known contact." })),
|
|
81420
|
+
attendeeName: Type.Optional(Type.String({ description: "Attendee name, required if crmContactId is not known." })),
|
|
81421
|
+
attendeeEmail: Type.Optional(Type.String({ description: "Attendee email address." })),
|
|
81422
|
+
attendeePhone: Type.Optional(Type.String({ description: "Attendee phone number." })),
|
|
81423
|
+
resourceId: Type.Optional(Type.String({ description: "Specific resource/staff id to book, if not left to auto-assign." })),
|
|
81424
|
+
notes: Type.Optional(Type.String({ description: "Free-text booking notes." })),
|
|
81425
|
+
confirm: CONFIRM_FIELD,
|
|
81426
|
+
orgId: ORG_ID_FIELD
|
|
81427
|
+
});
|
|
81428
|
+
}));
|
|
81429
|
+
//#endregion
|
|
81430
|
+
//#region src/agents/tools/hub/booking-reschedule-tool.ts
|
|
81431
|
+
var booking_reschedule_tool_exports = /* @__PURE__ */ __exportAll({ createBookingRescheduleTool: () => createBookingRescheduleTool });
|
|
81432
|
+
/**
|
|
81433
|
+
* Reschedule an existing booking. The hub implements this as cancel-old +
|
|
81434
|
+
* create-new (no atomic "move" service call exists), so this tool must send
|
|
81435
|
+
* the FULL new-slot payload — same shape as booking_create — plus the
|
|
81436
|
+
* bookingId being cancelled. WRITE — confirm contract: confirm=false returns
|
|
81437
|
+
* a preview (cancels + new start), confirm=true only after the user
|
|
81438
|
+
* explicitly agrees.
|
|
81439
|
+
*/
|
|
81440
|
+
function createBookingRescheduleTool(options) {
|
|
81441
|
+
const agentId = options.agentId;
|
|
81442
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
81443
|
+
return wrapToolWithTracking({
|
|
81444
|
+
label: "Booking Reschedule",
|
|
81445
|
+
name: "booking_reschedule",
|
|
81446
|
+
description: "Move an existing booking to a new time. Under the hood the hub cancels the old booking and creates a new one, so this needs the full new-slot details (event type, start time, attendee), not just a new time. First present the exact change (which booking, old time → new time) and ask for confirmation. Call with confirm=false for a validated preview (no write); only call with confirm=true after the user explicitly agrees. Present the result with a deep link like [booking](/scheduling/bookings?contact={contactId}).",
|
|
81447
|
+
parameters: BookingRescheduleSchema,
|
|
81448
|
+
execute: async (_toolCallId, args) => {
|
|
81449
|
+
const params = args;
|
|
81450
|
+
const orgId = readStringParam(params, "orgId");
|
|
81451
|
+
return jsonResult(await hubPost("actions/booking-reschedule", agentId, {
|
|
81452
|
+
bookingId: readStringParam(params, "bookingId", { required: true }),
|
|
81453
|
+
eventTypeId: readStringParam(params, "eventTypeId", { required: true }),
|
|
81454
|
+
start: readStringParam(params, "start", { required: true }),
|
|
81455
|
+
crmContactId: readStringParam(params, "crmContactId"),
|
|
81456
|
+
attendeeName: readStringParam(params, "attendeeName"),
|
|
81457
|
+
attendeeEmail: readStringParam(params, "attendeeEmail"),
|
|
81458
|
+
attendeePhone: readStringParam(params, "attendeePhone"),
|
|
81459
|
+
resourceId: readStringParam(params, "resourceId"),
|
|
81460
|
+
notes: readStringParam(params, "notes"),
|
|
81461
|
+
confirm: params.confirm === true
|
|
81462
|
+
}, orgId));
|
|
81463
|
+
}
|
|
81464
|
+
}, "builtin:booking_reschedule");
|
|
81465
|
+
}
|
|
81466
|
+
var BookingRescheduleSchema;
|
|
81467
|
+
var init_booking_reschedule_tool = __esmMin((() => {
|
|
81468
|
+
init_tool_tracking();
|
|
81469
|
+
init_common();
|
|
81470
|
+
init_hub_common();
|
|
81471
|
+
BookingRescheduleSchema = Type.Object({
|
|
81472
|
+
bookingId: Type.String({ description: "The booking to reschedule (will be cancelled)." }),
|
|
81473
|
+
eventTypeId: Type.String({ description: "Event type/service for the new slot (required)." }),
|
|
81474
|
+
start: Type.String({ description: "New ISO 8601 start time, e.g. 2026-07-10T15:00:00-05:00." }),
|
|
81475
|
+
crmContactId: Type.Optional(Type.String({ description: "CRM contact id, if the attendee is a known contact." })),
|
|
81476
|
+
attendeeName: Type.Optional(Type.String({ description: "Attendee name, required if crmContactId is not known." })),
|
|
81477
|
+
attendeeEmail: Type.Optional(Type.String({ description: "Attendee email address." })),
|
|
81478
|
+
attendeePhone: Type.Optional(Type.String({ description: "Attendee phone number." })),
|
|
81479
|
+
resourceId: Type.Optional(Type.String({ description: "Specific resource/staff id to book, if not left to auto-assign." })),
|
|
81480
|
+
notes: Type.Optional(Type.String({ description: "Free-text booking notes for the new slot." })),
|
|
81481
|
+
confirm: CONFIRM_FIELD,
|
|
81482
|
+
orgId: ORG_ID_FIELD
|
|
81483
|
+
});
|
|
81484
|
+
}));
|
|
81485
|
+
//#endregion
|
|
81486
|
+
//#region src/agents/tools/hub/bookings-query-tool.ts
|
|
81487
|
+
var bookings_query_tool_exports = /* @__PURE__ */ __exportAll({ createBookingsQueryTool: () => createBookingsQueryTool });
|
|
81488
|
+
/**
|
|
81489
|
+
* Scheduling module read: upcoming/past bookings, optionally filtered by
|
|
81490
|
+
* contact or date range. Calls the hub's /api/gateway/query/bookings with
|
|
81491
|
+
* the session's personal agent id (org + membership resolved server-side).
|
|
81492
|
+
*/
|
|
81493
|
+
function createBookingsQueryTool(options) {
|
|
81494
|
+
const agentId = options.agentId;
|
|
81495
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
81496
|
+
return wrapToolWithTracking({
|
|
81497
|
+
label: "Bookings Query",
|
|
81498
|
+
name: "bookings_query",
|
|
81499
|
+
description: "List appointments/bookings — upcoming, past, or a date range, optionally filtered to one contact. Use for 'what's on the schedule today', 'when is X's next appointment'. To create/change/cancel a booking use booking_create/booking_reschedule/booking_cancel. Present results with a deep link like [bookings](/scheduling/bookings) or, for one contact, [bookings](/scheduling/bookings?contact={contactId}).",
|
|
81500
|
+
parameters: BookingsQuerySchema,
|
|
81501
|
+
execute: async (_toolCallId, args) => {
|
|
81502
|
+
const params = args;
|
|
81503
|
+
return jsonResult(await hubGet("query/bookings", agentId, {
|
|
81504
|
+
status: readStringParam(params, "status"),
|
|
81505
|
+
contact: readStringParam(params, "contactId"),
|
|
81506
|
+
from: readStringParam(params, "dateFrom"),
|
|
81507
|
+
to: readStringParam(params, "dateTo"),
|
|
81508
|
+
orgId: readStringParam(params, "orgId")
|
|
81509
|
+
}));
|
|
81510
|
+
}
|
|
81511
|
+
}, "builtin:bookings_query");
|
|
81512
|
+
}
|
|
81513
|
+
var BookingsQuerySchema;
|
|
81514
|
+
var init_bookings_query_tool = __esmMin((() => {
|
|
81515
|
+
init_tool_tracking();
|
|
81516
|
+
init_common();
|
|
81517
|
+
init_hub_common();
|
|
81518
|
+
BookingsQuerySchema = Type.Object({
|
|
81519
|
+
status: Type.Optional(Type.String({ description: "Comma-separated booking status filter, e.g. 'accepted,pending'. Valid values: accepted | pending | cancelled | rejected | completed | no_show. Omit for all statuses." })),
|
|
81520
|
+
contactId: Type.Optional(Type.String({ description: "Filter to one CRM contact's bookings." })),
|
|
81521
|
+
dateFrom: Type.Optional(Type.String({ description: "ISO date/time, inclusive lower bound on start time." })),
|
|
81522
|
+
dateTo: Type.Optional(Type.String({ description: "ISO date/time, inclusive upper bound on start time." })),
|
|
81523
|
+
orgId: ORG_ID_FIELD
|
|
81524
|
+
});
|
|
81525
|
+
}));
|
|
81526
|
+
//#endregion
|
|
81527
|
+
//#region src/agents/tools/hub/brain-remember-tool.ts
|
|
81528
|
+
var brain_remember_tool_exports = /* @__PURE__ */ __exportAll({ createBrainRememberTool: () => createBrainRememberTool });
|
|
81529
|
+
/**
|
|
81530
|
+
* Knowledge-brain module write: add a `note` document to a brain.
|
|
81531
|
+
* WRITE — confirm contract: confirm=false returns a preview, confirm=true
|
|
81532
|
+
* only after the user explicitly agrees.
|
|
81533
|
+
*
|
|
81534
|
+
* The hub's /api/gateway/brain-remember endpoint is a plain, idempotent-per-
|
|
81535
|
+
* call write with no confirm/preview support of its own (by design — see the
|
|
81536
|
+
* hub handler's docstring), so the preview gate is enforced here rather than
|
|
81537
|
+
* forwarded like the other write tools.
|
|
81538
|
+
*/
|
|
81539
|
+
function createBrainRememberTool(options) {
|
|
81540
|
+
const agentId = options.agentId;
|
|
81541
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
81542
|
+
return wrapToolWithTracking({
|
|
81543
|
+
label: "Brain Remember",
|
|
81544
|
+
name: "brain_remember",
|
|
81545
|
+
description: "Save a note into a knowledge brain. First present the exact action (brain, title, content) and ask for confirmation. Call with confirm=false for a preview (no write); only call with confirm=true after the user explicitly agrees. If you don't already know the brainId, call brains_list first.",
|
|
81546
|
+
parameters: BrainRememberSchema,
|
|
81547
|
+
execute: async (_toolCallId, args) => {
|
|
81548
|
+
const params = args;
|
|
81549
|
+
const brainId = readStringParam(params, "brainId", { required: true });
|
|
81550
|
+
const title = readStringParam(params, "title", { required: true });
|
|
81551
|
+
const contentMd = readStringParam(params, "contentMd", { required: true });
|
|
81552
|
+
const orgId = readStringParam(params, "orgId");
|
|
81553
|
+
if (params.confirm !== true) return jsonResult({
|
|
81554
|
+
preview: {
|
|
81555
|
+
brainId,
|
|
81556
|
+
title,
|
|
81557
|
+
contentMd
|
|
81558
|
+
},
|
|
81559
|
+
note: "Preview only — not written. Call again with confirm=true after the user agrees."
|
|
81560
|
+
});
|
|
81561
|
+
return jsonResult(await hubPost("brain-remember", agentId, {
|
|
81562
|
+
brainId,
|
|
81563
|
+
title,
|
|
81564
|
+
contentMd
|
|
81565
|
+
}, orgId));
|
|
81566
|
+
}
|
|
81567
|
+
}, "builtin:brain_remember");
|
|
81568
|
+
}
|
|
81569
|
+
var BrainRememberSchema;
|
|
81570
|
+
var init_brain_remember_tool = __esmMin((() => {
|
|
81571
|
+
init_tool_tracking();
|
|
81572
|
+
init_common();
|
|
81573
|
+
init_hub_common();
|
|
81574
|
+
BrainRememberSchema = Type.Object({
|
|
81575
|
+
brainId: Type.String({ description: "Brain to write to. If unknown, call brains_list first — do not guess." }),
|
|
81576
|
+
title: Type.String({ description: "Short title for the note document." }),
|
|
81577
|
+
contentMd: Type.String({ description: "Note body, markdown." }),
|
|
81578
|
+
confirm: CONFIRM_FIELD,
|
|
81579
|
+
orgId: ORG_ID_FIELD
|
|
81580
|
+
});
|
|
81581
|
+
}));
|
|
81582
|
+
//#endregion
|
|
81583
|
+
//#region src/agents/tools/hub/brain-search-tool.ts
|
|
81584
|
+
var brain_search_tool_exports = /* @__PURE__ */ __exportAll({ createBrainSearchTool: () => createBrainSearchTool });
|
|
81585
|
+
/**
|
|
81586
|
+
* Knowledge-brain module read: semantic search over one brain's chunks.
|
|
81587
|
+
* Calls the hub's /api/gateway/brain-search with the session's personal
|
|
81588
|
+
* agent id; per-brain access is enforced again on the hub (fail-closed).
|
|
81589
|
+
*/
|
|
81590
|
+
function createBrainSearchTool(options) {
|
|
81591
|
+
const agentId = options.agentId;
|
|
81592
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
81593
|
+
return wrapToolWithTracking({
|
|
81594
|
+
label: "Brain Search",
|
|
81595
|
+
name: "brain_search",
|
|
81596
|
+
description: "Semantic search over one knowledge brain's documents. Requires brainId — if you're not sure which brain to target, call brains_list first rather than guessing. Use for 'what does the X brain say about...' style questions.",
|
|
81597
|
+
parameters: BrainSearchSchema,
|
|
81598
|
+
execute: async (_toolCallId, args) => {
|
|
81599
|
+
const params = args;
|
|
81600
|
+
const orgId = readStringParam(params, "orgId");
|
|
81601
|
+
return jsonResult(await hubPost("brain-search", agentId, {
|
|
81602
|
+
brainId: readStringParam(params, "brainId", { required: true }),
|
|
81603
|
+
query: readStringParam(params, "query", { required: true }),
|
|
81604
|
+
limit: readNumberParam(params, "limit")
|
|
81605
|
+
}, orgId));
|
|
81606
|
+
}
|
|
81607
|
+
}, "builtin:brain_search");
|
|
81608
|
+
}
|
|
81609
|
+
var BrainSearchSchema;
|
|
81610
|
+
var init_brain_search_tool = __esmMin((() => {
|
|
81611
|
+
init_tool_tracking();
|
|
81612
|
+
init_common();
|
|
81613
|
+
init_hub_common();
|
|
81614
|
+
BrainSearchSchema = Type.Object({
|
|
81615
|
+
brainId: Type.String({ description: "Brain to search. If unknown, call brains_list first — do not guess." }),
|
|
81616
|
+
query: Type.String({ description: "Natural-language search query." }),
|
|
81617
|
+
limit: Type.Optional(Type.Number({ description: "Max hits to return. Hub default applies." })),
|
|
81618
|
+
orgId: ORG_ID_FIELD
|
|
81619
|
+
});
|
|
81620
|
+
}));
|
|
81621
|
+
//#endregion
|
|
81622
|
+
//#region src/agents/tools/hub/brains-list-tool.ts
|
|
81623
|
+
var brains_list_tool_exports = /* @__PURE__ */ __exportAll({ createBrainsListTool: () => createBrainsListTool });
|
|
81624
|
+
/**
|
|
81625
|
+
* Knowledge-brain module read: list the brains the calling agent's owner can
|
|
81626
|
+
* access. Calls the hub's /api/gateway/brains with the session's personal
|
|
81627
|
+
* agent id. Call this before brain_search/brain_remember whenever the target
|
|
81628
|
+
* brainId isn't already known.
|
|
81629
|
+
*/
|
|
81630
|
+
function createBrainsListTool(options) {
|
|
81631
|
+
const agentId = options.agentId;
|
|
81632
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
81633
|
+
return wrapToolWithTracking({
|
|
81634
|
+
label: "Brains List",
|
|
81635
|
+
name: "brains_list",
|
|
81636
|
+
description: "List the knowledge brains available to the current user (id, name, access). Call this first whenever you don't already know which brainId to target for brain_search or brain_remember — do not guess a brainId.",
|
|
81637
|
+
parameters: BrainsListSchema,
|
|
81638
|
+
execute: async (_toolCallId, args) => {
|
|
81639
|
+
return jsonResult(await hubGet("brains", agentId, { orgId: readStringParam(args, "orgId") }));
|
|
81640
|
+
}
|
|
81641
|
+
}, "builtin:brains_list");
|
|
81642
|
+
}
|
|
81643
|
+
var BrainsListSchema;
|
|
81644
|
+
var init_brains_list_tool = __esmMin((() => {
|
|
81645
|
+
init_tool_tracking();
|
|
81646
|
+
init_common();
|
|
81647
|
+
init_hub_common();
|
|
81648
|
+
BrainsListSchema = Type.Object({ orgId: ORG_ID_FIELD });
|
|
81649
|
+
}));
|
|
81650
|
+
//#endregion
|
|
81651
|
+
//#region src/agents/tools/hub/contact-tag-tool.ts
|
|
81652
|
+
var contact_tag_tool_exports = /* @__PURE__ */ __exportAll({ createContactTagTool: () => createContactTagTool });
|
|
81653
|
+
/**
|
|
81654
|
+
* Add or remove a CRM contact tag. WRITE — confirm contract: confirm=false
|
|
81655
|
+
* returns a preview, confirm=true only after the user explicitly agrees.
|
|
81656
|
+
*/
|
|
81657
|
+
function createContactTagTool(options) {
|
|
81658
|
+
const agentId = options.agentId;
|
|
81659
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
81660
|
+
return wrapToolWithTracking({
|
|
81661
|
+
label: "Contact Tag",
|
|
81662
|
+
name: "contact_tag",
|
|
81663
|
+
description: "Add or remove a tag on a CRM contact by tag NAME (preferred; the hub resolves or creates it) or exact tagId. First present the exact action (contact, tag, add or remove) and ask for confirmation. Call with confirm=false for a validated preview (no write; preview.willCreateTag tells you if a new tag would be created); only call with confirm=true after the user explicitly agrees. Present the result with a deep link like [contact](/crm/{contactId}).",
|
|
81664
|
+
parameters: ContactTagSchema,
|
|
81665
|
+
execute: async (_toolCallId, args) => {
|
|
81666
|
+
const params = args;
|
|
81667
|
+
const orgId = readStringParam(params, "orgId");
|
|
81668
|
+
const tag = readStringParam(params, "tag");
|
|
81669
|
+
const tagId = readStringParam(params, "tagId");
|
|
81670
|
+
if (!tag && !tagId) return jsonResult({ error: "tag (name) or tagId is required" });
|
|
81671
|
+
return jsonResult(await hubPost("actions/contact-tag", agentId, {
|
|
81672
|
+
contactId: readStringParam(params, "contactId", { required: true }),
|
|
81673
|
+
...tag ? { tag } : {},
|
|
81674
|
+
...tagId ? { tagId } : {},
|
|
81675
|
+
op: readStringParam(params, "op") ?? "add",
|
|
81676
|
+
confirm: params.confirm === true
|
|
81677
|
+
}, orgId));
|
|
81678
|
+
}
|
|
81679
|
+
}, "builtin:contact_tag");
|
|
81680
|
+
}
|
|
81681
|
+
var ContactTagSchema;
|
|
81682
|
+
var init_contact_tag_tool = __esmMin((() => {
|
|
81683
|
+
init_tool_tracking();
|
|
81684
|
+
init_common();
|
|
81685
|
+
init_hub_common();
|
|
81686
|
+
ContactTagSchema = Type.Object({
|
|
81687
|
+
contactId: Type.String({ description: "The CRM contact to tag." }),
|
|
81688
|
+
tag: Type.Optional(Type.String({ description: "Tag NAME (case-insensitive). The hub resolves it to an existing tag, or creates a manual tag on 'add'. Preferred over tagId." })),
|
|
81689
|
+
tagId: Type.Optional(Type.String({ description: "Exact tag id — only when you already have it (e.g. from a prior result)." })),
|
|
81690
|
+
op: Type.Optional(Type.Union([Type.Literal("add"), Type.Literal("remove")], { description: "'add' (default) or 'remove'." })),
|
|
81691
|
+
confirm: CONFIRM_FIELD,
|
|
81692
|
+
orgId: ORG_ID_FIELD
|
|
81693
|
+
});
|
|
81694
|
+
}));
|
|
81695
|
+
//#endregion
|
|
81696
|
+
//#region src/agents/tools/hub/contact-update-tool.ts
|
|
81697
|
+
var contact_update_tool_exports = /* @__PURE__ */ __exportAll({ createContactUpdateTool: () => createContactUpdateTool });
|
|
81698
|
+
/**
|
|
81699
|
+
* Update a CRM contact's name/phone/email/funnel stage/notes. WRITE —
|
|
81700
|
+
* confirm contract: confirm=false returns a preview, confirm=true only
|
|
81701
|
+
* after the user explicitly agrees. Only whitelisted fields are accepted;
|
|
81702
|
+
* use contact_tag for tags, not this tool.
|
|
81703
|
+
*/
|
|
81704
|
+
function createContactUpdateTool(options) {
|
|
81705
|
+
const agentId = options.agentId;
|
|
81706
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
81707
|
+
return wrapToolWithTracking({
|
|
81708
|
+
label: "Contact Update",
|
|
81709
|
+
name: "contact_update",
|
|
81710
|
+
description: "Update a CRM contact's name, phone, email, funnel stage, or notes (at least one required). First present the exact change (which field, old → new value) and ask for confirmation. Call with confirm=false for a validated preview (no write); only call with confirm=true after the user explicitly agrees. Pass expectedUpdatedAt from the last read to avoid clobbering a concurrent edit (returns {error:'stale',current} on conflict). Use contact_tag to add/remove tags instead. Present the result with a deep link like [contact](/crm/{contactId}).",
|
|
81711
|
+
parameters: ContactUpdateSchema,
|
|
81712
|
+
execute: async (_toolCallId, args) => {
|
|
81713
|
+
const params = args;
|
|
81714
|
+
const orgId = readStringParam(params, "orgId");
|
|
81715
|
+
return jsonResult(await hubPost("actions/contact-update", agentId, {
|
|
81716
|
+
contactId: readStringParam(params, "contactId", { required: true }),
|
|
81717
|
+
name: readStringParam(params, "name"),
|
|
81718
|
+
phone: readStringParam(params, "phone"),
|
|
81719
|
+
email: readStringParam(params, "email"),
|
|
81720
|
+
funnelStage: readStringParam(params, "funnelStage"),
|
|
81721
|
+
notes: readStringParam(params, "notes"),
|
|
81722
|
+
expectedUpdatedAt: readStringParam(params, "expectedUpdatedAt"),
|
|
81723
|
+
confirm: params.confirm === true
|
|
81724
|
+
}, orgId));
|
|
81725
|
+
}
|
|
81726
|
+
}, "builtin:contact_update");
|
|
81727
|
+
}
|
|
81728
|
+
var ContactUpdateSchema;
|
|
81729
|
+
var init_contact_update_tool = __esmMin((() => {
|
|
81730
|
+
init_tool_tracking();
|
|
81731
|
+
init_common();
|
|
81732
|
+
init_hub_common();
|
|
81733
|
+
ContactUpdateSchema = Type.Object({
|
|
81734
|
+
contactId: Type.String({ description: "The CRM contact to update." }),
|
|
81735
|
+
name: Type.Optional(Type.String({ description: "New display name." })),
|
|
81736
|
+
phone: Type.Optional(Type.String({ description: "New phone number." })),
|
|
81737
|
+
email: Type.Optional(Type.String({ description: "New email address." })),
|
|
81738
|
+
funnelStage: Type.Optional(Type.String({ description: "New CRM funnel/lifecycle stage." })),
|
|
81739
|
+
notes: Type.Optional(Type.String({ description: "New/appended free-text notes." })),
|
|
81740
|
+
expectedUpdatedAt: Type.Optional(Type.String({ description: "The contact's updatedAt you last read. Used for optimistic concurrency — the hub rejects the write (409) if the contact changed since." })),
|
|
81741
|
+
confirm: CONFIRM_FIELD,
|
|
81742
|
+
orgId: ORG_ID_FIELD
|
|
81743
|
+
});
|
|
81744
|
+
}));
|
|
81745
|
+
//#endregion
|
|
81746
|
+
//#region src/agents/tools/hub/finance-query-tool.ts
|
|
81747
|
+
var finance_query_tool_exports = /* @__PURE__ */ __exportAll({ createFinanceQueryTool: () => createFinanceQueryTool });
|
|
81748
|
+
/**
|
|
81749
|
+
* Finance module summary (invoices/payments) for a date range, optionally
|
|
81750
|
+
* grouped by product or contact. Calls the hub's Bearer-authed
|
|
81751
|
+
* /api/gateway/query/finance with the session's personal agent id; the hub
|
|
81752
|
+
* derives the owning user, scopes to their org (membership-checked), and
|
|
81753
|
+
* respects the same masking/owner rules the human finance dashboard uses.
|
|
81754
|
+
*/
|
|
81755
|
+
function createFinanceQueryTool(options) {
|
|
81756
|
+
const agentId = options.agentId;
|
|
81757
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
81758
|
+
return wrapToolWithTracking({
|
|
81759
|
+
label: "Finance Query",
|
|
81760
|
+
name: "finance_query",
|
|
81761
|
+
description: "Summarize invoices/payments for a date range — totals, payment status, a revenue time series, and top products/clients (always included, no separate breakdown toggle). Use for 'how much revenue this month', 'unpaid invoices', 'top products by revenue in Q1'. For per-customer ranking questions use crm_insight/crm_query instead. Present figures with a deep link like [invoices](/finances/invoices) or, for one contact, [invoices](/finances/invoices?contact={contactId}).",
|
|
81762
|
+
parameters: FinanceQuerySchema,
|
|
81763
|
+
execute: async (_toolCallId, args) => {
|
|
81764
|
+
const params = args;
|
|
81765
|
+
return jsonResult(await hubGet("query/finance", agentId, {
|
|
81766
|
+
from: readStringParam(params, "dateFrom"),
|
|
81767
|
+
to: readStringParam(params, "dateTo"),
|
|
81768
|
+
bucket: readStringParam(params, "bucket"),
|
|
81769
|
+
orgId: readStringParam(params, "orgId")
|
|
81770
|
+
}));
|
|
81771
|
+
}
|
|
81772
|
+
}, "builtin:finance_query");
|
|
81773
|
+
}
|
|
81774
|
+
var FinanceQuerySchema;
|
|
81775
|
+
var init_finance_query_tool = __esmMin((() => {
|
|
81776
|
+
init_tool_tracking();
|
|
81777
|
+
init_common();
|
|
81778
|
+
init_hub_common();
|
|
81779
|
+
FinanceQuerySchema = Type.Object({
|
|
81780
|
+
dateFrom: Type.Optional(Type.String({ description: "ISO date, inclusive lower bound." })),
|
|
81781
|
+
dateTo: Type.Optional(Type.String({ description: "ISO date, inclusive upper bound." })),
|
|
81782
|
+
bucket: Type.Optional(Type.Union([
|
|
81783
|
+
Type.Literal("day"),
|
|
81784
|
+
Type.Literal("week"),
|
|
81785
|
+
Type.Literal("month")
|
|
81786
|
+
], { description: "Granularity of the revenue time series. Defaults to 'month'." })),
|
|
81787
|
+
orgId: ORG_ID_FIELD
|
|
81788
|
+
});
|
|
81789
|
+
}));
|
|
81790
|
+
//#endregion
|
|
81791
|
+
//#region src/agents/tools/hub/hub-pages-tool.ts
|
|
81792
|
+
var hub_pages_tool_exports = /* @__PURE__ */ __exportAll({ createHubPagesTool: () => createHubPagesTool });
|
|
81793
|
+
/**
|
|
81794
|
+
* Discovery tool: fetches the hub's route-hint map from
|
|
81795
|
+
* /api/gateway/pages (route, title, what the page shows, accepted query
|
|
81796
|
+
* params) so the agent can generate accurate, navigable deep links instead
|
|
81797
|
+
* of guessing paths.
|
|
81798
|
+
*/
|
|
81799
|
+
function createHubPagesTool(options) {
|
|
81800
|
+
const agentId = options.agentId;
|
|
81801
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
81802
|
+
return wrapToolWithTracking({
|
|
81803
|
+
label: "Hub Pages",
|
|
81804
|
+
name: "hub_pages",
|
|
81805
|
+
description: "List the hub's pages — route, title, what it shows, and query params it accepts. Call this before linking to a page you're not sure about, then present the link as e.g. [invoices](/finances/invoices?contact={contactId}) using the exact path + param names returned here.",
|
|
81806
|
+
parameters: HubPagesSchema,
|
|
81807
|
+
execute: async () => {
|
|
81808
|
+
return jsonResult(await hubGet("pages", agentId));
|
|
81809
|
+
}
|
|
81810
|
+
}, "builtin:hub_pages");
|
|
81811
|
+
}
|
|
81812
|
+
var HubPagesSchema;
|
|
81813
|
+
var init_hub_pages_tool = __esmMin((() => {
|
|
81814
|
+
init_tool_tracking();
|
|
81815
|
+
init_common();
|
|
81816
|
+
init_hub_common();
|
|
81817
|
+
HubPagesSchema = Type.Object({});
|
|
81818
|
+
}));
|
|
81819
|
+
//#endregion
|
|
81820
|
+
//#region src/agents/tools/hub/notify-user-tool.ts
|
|
81821
|
+
var notify_user_tool_exports = /* @__PURE__ */ __exportAll({ createNotifyUserTool: () => createNotifyUserTool });
|
|
81822
|
+
/**
|
|
81823
|
+
* Send a free-text email to an org member. WRITE — confirm contract:
|
|
81824
|
+
* confirm=false returns a preview, confirm=true only after the user
|
|
81825
|
+
* explicitly agrees. The hub verifies the target is an org member (and has
|
|
81826
|
+
* an email on file) before sending; there is no template system and no
|
|
81827
|
+
* internal messaging channel — this always sends via email.
|
|
81828
|
+
*/
|
|
81829
|
+
function createNotifyUserTool(options) {
|
|
81830
|
+
const agentId = options.agentId;
|
|
81831
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
81832
|
+
return wrapToolWithTracking({
|
|
81833
|
+
label: "Notify User",
|
|
81834
|
+
name: "notify_user",
|
|
81835
|
+
description: "Email a fellow org member (not an external customer) — there is no in-app/SMS channel, this always sends a capped free-text email. First present the exact message and recipient and ask for confirmation. Call with confirm=false for a validated preview (no send); only call with confirm=true after the user explicitly agrees.",
|
|
81836
|
+
parameters: NotifyUserSchema,
|
|
81837
|
+
execute: async (_toolCallId, args) => {
|
|
81838
|
+
const params = args;
|
|
81839
|
+
const orgId = readStringParam(params, "orgId");
|
|
81840
|
+
return jsonResult(await hubPost("actions/notify-user", agentId, {
|
|
81841
|
+
recipientProfileId: readStringParam(params, "recipientProfileId", { required: true }),
|
|
81842
|
+
subject: readStringParam(params, "subject"),
|
|
81843
|
+
body: readStringParam(params, "body", { required: true }),
|
|
81844
|
+
confirm: params.confirm === true
|
|
81845
|
+
}, orgId));
|
|
81846
|
+
}
|
|
81847
|
+
}, "builtin:notify_user");
|
|
81848
|
+
}
|
|
81849
|
+
var NotifyUserSchema;
|
|
81850
|
+
var init_notify_user_tool = __esmMin((() => {
|
|
81851
|
+
init_tool_tracking();
|
|
81852
|
+
init_common();
|
|
81853
|
+
init_hub_common();
|
|
81854
|
+
NotifyUserSchema = Type.Object({
|
|
81855
|
+
recipientProfileId: Type.String({ description: "The org member/profile id to notify (must be a member of the org)." }),
|
|
81856
|
+
subject: Type.Optional(Type.String({ description: "Email subject line." })),
|
|
81857
|
+
body: Type.String({ description: "Message body (1-2000 chars). Sent as a capped free-text email." }),
|
|
81858
|
+
confirm: CONFIRM_FIELD,
|
|
81859
|
+
orgId: ORG_ID_FIELD
|
|
81860
|
+
});
|
|
81861
|
+
}));
|
|
81862
|
+
//#endregion
|
|
81863
|
+
//#region src/agents/tools/hub/order-update-status-tool.ts
|
|
81864
|
+
var order_update_status_tool_exports = /* @__PURE__ */ __exportAll({ createOrderUpdateStatusTool: () => createOrderUpdateStatusTool });
|
|
81865
|
+
/**
|
|
81866
|
+
* Change a sales order's status. WRITE — confirm contract: confirm=false
|
|
81867
|
+
* returns a preview, confirm=true only after the user explicitly agrees.
|
|
81868
|
+
*/
|
|
81869
|
+
function createOrderUpdateStatusTool(options) {
|
|
81870
|
+
const agentId = options.agentId;
|
|
81871
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
81872
|
+
return wrapToolWithTracking({
|
|
81873
|
+
label: "Order Update Status",
|
|
81874
|
+
name: "order_update_status",
|
|
81875
|
+
description: "Change a sales order's status to draft, confirmed, invoiced, or cancelled. First present the exact change (which order, old → new status) and ask for confirmation. Call with confirm=false for a validated preview (no write); only call with confirm=true after the user explicitly agrees. Pass expectedUpdatedAt from the last read to avoid clobbering a concurrent edit. Present the result with a deep link like [order](/sales/{orderId}).",
|
|
81876
|
+
parameters: OrderUpdateStatusSchema,
|
|
81877
|
+
execute: async (_toolCallId, args) => {
|
|
81878
|
+
const params = args;
|
|
81879
|
+
const orgId = readStringParam(params, "orgId");
|
|
81880
|
+
return jsonResult(await hubPost("actions/order-update-status", agentId, {
|
|
81881
|
+
orderId: readStringParam(params, "orderId", { required: true }),
|
|
81882
|
+
status: readStringParam(params, "status", { required: true }),
|
|
81883
|
+
expectedUpdatedAt: readStringParam(params, "expectedUpdatedAt"),
|
|
81884
|
+
confirm: params.confirm === true
|
|
81885
|
+
}, orgId));
|
|
81886
|
+
}
|
|
81887
|
+
}, "builtin:order_update_status");
|
|
81888
|
+
}
|
|
81889
|
+
var OrderUpdateStatusSchema;
|
|
81890
|
+
var init_order_update_status_tool = __esmMin((() => {
|
|
81891
|
+
init_tool_tracking();
|
|
81892
|
+
init_common();
|
|
81893
|
+
init_hub_common();
|
|
81894
|
+
OrderUpdateStatusSchema = Type.Object({
|
|
81895
|
+
orderId: Type.String({ description: "The sales order to update." }),
|
|
81896
|
+
status: Type.Union([
|
|
81897
|
+
Type.Literal("draft"),
|
|
81898
|
+
Type.Literal("confirmed"),
|
|
81899
|
+
Type.Literal("invoiced"),
|
|
81900
|
+
Type.Literal("cancelled")
|
|
81901
|
+
], { description: "New order status." }),
|
|
81902
|
+
expectedUpdatedAt: Type.Optional(Type.String({ description: "The order's updatedAt you last read (from orders_query). Used for optimistic concurrency — the hub rejects the write (409) if the order changed since." })),
|
|
81903
|
+
confirm: CONFIRM_FIELD,
|
|
81904
|
+
orgId: ORG_ID_FIELD
|
|
81905
|
+
});
|
|
81906
|
+
}));
|
|
81907
|
+
//#endregion
|
|
81908
|
+
//#region src/agents/tools/hub/orders-query-tool.ts
|
|
81909
|
+
var orders_query_tool_exports = /* @__PURE__ */ __exportAll({ createOrdersQueryTool: () => createOrdersQueryTool });
|
|
81910
|
+
/**
|
|
81911
|
+
* Sales module read: orders by status/date range. Calls the hub's
|
|
81912
|
+
* /api/gateway/query/orders with the session's personal agent id.
|
|
81913
|
+
*/
|
|
81914
|
+
function createOrdersQueryTool(options) {
|
|
81915
|
+
const agentId = options.agentId;
|
|
81916
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
81917
|
+
return wrapToolWithTracking({
|
|
81918
|
+
label: "Orders Query",
|
|
81919
|
+
name: "orders_query",
|
|
81920
|
+
description: "List sales orders, filterable by status or CRM contact (no date-range filter). Use for 'pending orders', 'open orders'. To change an order's status use order_update_status. Present results with a deep link like [order](/sales/{orderId}).",
|
|
81921
|
+
parameters: OrdersQuerySchema,
|
|
81922
|
+
execute: async (_toolCallId, args) => {
|
|
81923
|
+
const params = args;
|
|
81924
|
+
return jsonResult(await hubGet("query/orders", agentId, {
|
|
81925
|
+
status: readStringParam(params, "status"),
|
|
81926
|
+
contact: readStringParam(params, "contactId"),
|
|
81927
|
+
orgId: readStringParam(params, "orgId")
|
|
81928
|
+
}));
|
|
81929
|
+
}
|
|
81930
|
+
}, "builtin:orders_query");
|
|
81931
|
+
}
|
|
81932
|
+
var OrdersQuerySchema;
|
|
81933
|
+
var init_orders_query_tool = __esmMin((() => {
|
|
81934
|
+
init_tool_tracking();
|
|
81935
|
+
init_common();
|
|
81936
|
+
init_hub_common();
|
|
81937
|
+
OrdersQuerySchema = Type.Object({
|
|
81938
|
+
status: Type.Optional(Type.Union([
|
|
81939
|
+
Type.Literal("open"),
|
|
81940
|
+
Type.Literal("draft"),
|
|
81941
|
+
Type.Literal("confirmed"),
|
|
81942
|
+
Type.Literal("invoiced"),
|
|
81943
|
+
Type.Literal("cancelled")
|
|
81944
|
+
], { description: "'open' covers all non-terminal statuses (matches the human sales dashboard default)." })),
|
|
81945
|
+
contactId: Type.Optional(Type.String({ description: "Filter to one CRM contact's orders." })),
|
|
81946
|
+
orgId: ORG_ID_FIELD
|
|
81947
|
+
});
|
|
81948
|
+
}));
|
|
81949
|
+
//#endregion
|
|
81950
|
+
//#region src/agents/tools/hub/projects-query-tool.ts
|
|
81951
|
+
var projects_query_tool_exports = /* @__PURE__ */ __exportAll({ createProjectsQueryTool: () => createProjectsQueryTool });
|
|
81952
|
+
/**
|
|
81953
|
+
* Projects module read: projects + tasks by status/assignee. Calls the hub's
|
|
81954
|
+
* /api/gateway/query/projects with the session's personal agent id.
|
|
81955
|
+
*/
|
|
81956
|
+
function createProjectsQueryTool(options) {
|
|
81957
|
+
const agentId = options.agentId;
|
|
81958
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
81959
|
+
return wrapToolWithTracking({
|
|
81960
|
+
label: "Projects Query",
|
|
81961
|
+
name: "projects_query",
|
|
81962
|
+
description: "List projects and their tasks, filterable by project, status, or assignee. Use for 'what's overdue', 'my open tasks', 'status of project X'. To create/update a task use task_create/task_update. Present results with a deep link like [project](/work).",
|
|
81963
|
+
parameters: ProjectsQuerySchema,
|
|
81964
|
+
execute: async (_toolCallId, args) => {
|
|
81965
|
+
const params = args;
|
|
81966
|
+
return jsonResult(await hubGet("query/projects", agentId, {
|
|
81967
|
+
projectId: readStringParam(params, "projectId"),
|
|
81968
|
+
status: readStringParam(params, "status"),
|
|
81969
|
+
assignee: readStringParam(params, "assignee"),
|
|
81970
|
+
orgId: readStringParam(params, "orgId")
|
|
81971
|
+
}));
|
|
81972
|
+
}
|
|
81973
|
+
}, "builtin:projects_query");
|
|
81974
|
+
}
|
|
81975
|
+
var ProjectsQuerySchema;
|
|
81976
|
+
var init_projects_query_tool = __esmMin((() => {
|
|
81977
|
+
init_tool_tracking();
|
|
81978
|
+
init_common();
|
|
81979
|
+
init_hub_common();
|
|
81980
|
+
ProjectsQuerySchema = Type.Object({
|
|
81981
|
+
projectId: Type.Optional(Type.String({ description: "Filter tasks to one project." })),
|
|
81982
|
+
status: Type.Optional(Type.String({ description: "Project status (open|active|on_hold|completed|cancelled) or task status (backlog|todo|in_progress|in_review|done|blocked|cancelled) filter — applied to whichever list it matches." })),
|
|
81983
|
+
assignee: Type.Optional(Type.String({ description: "Filter tasks by assignee party id." })),
|
|
81984
|
+
orgId: ORG_ID_FIELD
|
|
81985
|
+
});
|
|
81986
|
+
}));
|
|
81987
|
+
//#endregion
|
|
81988
|
+
//#region src/agents/tools/hub/stock-entry-create-tool.ts
|
|
81989
|
+
var stock_entry_create_tool_exports = /* @__PURE__ */ __exportAll({ createStockEntryCreateTool: () => createStockEntryCreateTool });
|
|
81990
|
+
function readLines(params) {
|
|
81991
|
+
return (Array.isArray(params.lines) ? params.lines : []).map((l) => ({
|
|
81992
|
+
itemId: typeof l.itemId === "string" ? l.itemId : "",
|
|
81993
|
+
qty: typeof l.qty === "number" ? l.qty : Number(l.qty),
|
|
81994
|
+
uom: typeof l.uom === "string" ? l.uom : null,
|
|
81995
|
+
rate: typeof l.rate === "number" ? l.rate : l.rate == null ? null : Number(l.rate),
|
|
81996
|
+
fromWarehouseId: typeof l.fromWarehouseId === "string" ? l.fromWarehouseId : null,
|
|
81997
|
+
toWarehouseId: typeof l.toWarehouseId === "string" ? l.toWarehouseId : null
|
|
81998
|
+
}));
|
|
81999
|
+
}
|
|
82000
|
+
/**
|
|
82001
|
+
* Create a DRAFT stock entry. WRITE — confirm contract: confirm=false returns
|
|
82002
|
+
* a preview, confirm=true only after the user explicitly agrees. This never
|
|
82003
|
+
* submits/posts the entry (that would move stock and write the ledger) —
|
|
82004
|
+
* submission is a deliberate separate step done from the hub's /stock UI.
|
|
82005
|
+
*/
|
|
82006
|
+
function createStockEntryCreateTool(options) {
|
|
82007
|
+
const agentId = options.agentId;
|
|
82008
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
82009
|
+
return wrapToolWithTracking({
|
|
82010
|
+
label: "Stock Entry Create",
|
|
82011
|
+
name: "stock_entry_create",
|
|
82012
|
+
description: "Create a DRAFT stock entry (receipt, issue, transfer, or adjustment) with its lines. This only creates a draft — it does NOT submit/post the entry, so stock levels and the ledger are unaffected until a human submits it from the hub /stock UI. First present the exact action (type, lines, party) and ask for confirmation. Call with confirm=false for a validated preview (no write); only call with confirm=true after the user explicitly agrees. Present the result with a deep link like [stock entry](/stock/entries/{entryId}).",
|
|
82013
|
+
parameters: StockEntryCreateSchema,
|
|
82014
|
+
execute: async (_toolCallId, args) => {
|
|
82015
|
+
const params = args;
|
|
82016
|
+
const orgId = readStringParam(params, "orgId");
|
|
82017
|
+
return jsonResult(await hubPost("actions/stock-entry-create", agentId, {
|
|
82018
|
+
type: readStringParam(params, "type", { required: true }),
|
|
82019
|
+
partyId: readStringParam(params, "partyId"),
|
|
82020
|
+
note: readStringParam(params, "note"),
|
|
82021
|
+
lines: readLines(params),
|
|
82022
|
+
confirm: params.confirm === true
|
|
82023
|
+
}, orgId));
|
|
82024
|
+
}
|
|
82025
|
+
}, "builtin:stock_entry_create");
|
|
82026
|
+
}
|
|
82027
|
+
var StockEntryLineSchema, StockEntryCreateSchema;
|
|
82028
|
+
var init_stock_entry_create_tool = __esmMin((() => {
|
|
82029
|
+
init_tool_tracking();
|
|
82030
|
+
init_common();
|
|
82031
|
+
init_hub_common();
|
|
82032
|
+
StockEntryLineSchema = Type.Object({
|
|
82033
|
+
itemId: Type.String({ description: "Stock item id." }),
|
|
82034
|
+
qty: Type.Number({ description: "Quantity for this line. Must be positive." }),
|
|
82035
|
+
uom: Type.Optional(Type.String({ description: "Unit of measure override." })),
|
|
82036
|
+
rate: Type.Optional(Type.Number({ description: "Per-unit valuation rate. Required for receipt lines and positive adjustments." })),
|
|
82037
|
+
fromWarehouseId: Type.Optional(Type.String({ description: "Source warehouse. Required for issue and transfer lines." })),
|
|
82038
|
+
toWarehouseId: Type.Optional(Type.String({ description: "Destination warehouse. Required for receipt and transfer lines." }))
|
|
82039
|
+
});
|
|
82040
|
+
StockEntryCreateSchema = Type.Object({
|
|
82041
|
+
type: Type.Union([
|
|
82042
|
+
Type.Literal("receipt"),
|
|
82043
|
+
Type.Literal("issue"),
|
|
82044
|
+
Type.Literal("transfer"),
|
|
82045
|
+
Type.Literal("adjustment")
|
|
82046
|
+
], { description: "Entry type." }),
|
|
82047
|
+
partyId: Type.Optional(Type.String({ description: "Supplier/customer party id this entry is for, if known." })),
|
|
82048
|
+
note: Type.Optional(Type.String({ description: "Free-text note." })),
|
|
82049
|
+
lines: Type.Array(StockEntryLineSchema, { description: "One or more entry lines." }),
|
|
82050
|
+
confirm: CONFIRM_FIELD,
|
|
82051
|
+
orgId: ORG_ID_FIELD
|
|
82052
|
+
});
|
|
82053
|
+
}));
|
|
82054
|
+
//#endregion
|
|
82055
|
+
//#region src/agents/tools/hub/stock-query-tool.ts
|
|
82056
|
+
var stock_query_tool_exports = /* @__PURE__ */ __exportAll({ createStockQueryTool: () => createStockQueryTool });
|
|
82057
|
+
/**
|
|
82058
|
+
* Stock module read: bin levels, ledger movements, or valuation totals. Calls
|
|
82059
|
+
* the hub's /api/gateway/query/stock with the session's personal agent id.
|
|
82060
|
+
*/
|
|
82061
|
+
function createStockQueryTool(options) {
|
|
82062
|
+
const agentId = options.agentId;
|
|
82063
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
82064
|
+
return wrapToolWithTracking({
|
|
82065
|
+
label: "Stock Query",
|
|
82066
|
+
name: "stock_query",
|
|
82067
|
+
description: "Read stock levels, movement history (ledger), or valuation. Use mode='levels' for 'how much of X do we have', mode='movements' with itemId for an item's movement history, mode='valuation' for total stock value. To create a stock entry use stock_entry_create. Present results with a deep link like [stock](/stock).",
|
|
82068
|
+
parameters: StockQuerySchema,
|
|
82069
|
+
execute: async (_toolCallId, args) => {
|
|
82070
|
+
const params = args;
|
|
82071
|
+
return jsonResult(await hubGet("query/stock", agentId, {
|
|
82072
|
+
mode: readStringParam(params, "mode"),
|
|
82073
|
+
itemId: readStringParam(params, "itemId"),
|
|
82074
|
+
warehouseId: readStringParam(params, "warehouseId"),
|
|
82075
|
+
orgId: readStringParam(params, "orgId")
|
|
82076
|
+
}));
|
|
82077
|
+
}
|
|
82078
|
+
}, "builtin:stock_query");
|
|
82079
|
+
}
|
|
82080
|
+
var StockQuerySchema;
|
|
82081
|
+
var init_stock_query_tool = __esmMin((() => {
|
|
82082
|
+
init_tool_tracking();
|
|
82083
|
+
init_common();
|
|
82084
|
+
init_hub_common();
|
|
82085
|
+
StockQuerySchema = Type.Object({
|
|
82086
|
+
mode: Type.Optional(Type.Union([
|
|
82087
|
+
Type.Literal("levels"),
|
|
82088
|
+
Type.Literal("movements"),
|
|
82089
|
+
Type.Literal("valuation")
|
|
82090
|
+
], { description: "'levels' (default) — current bin quantities. 'movements' — ledger history for one item (itemId required). 'valuation' — bin levels plus the summed stock value." })),
|
|
82091
|
+
itemId: Type.Optional(Type.String({ description: "Filter to one item. Required when mode='movements'." })),
|
|
82092
|
+
warehouseId: Type.Optional(Type.String({ description: "Filter to one warehouse." })),
|
|
82093
|
+
orgId: ORG_ID_FIELD
|
|
82094
|
+
});
|
|
82095
|
+
}));
|
|
82096
|
+
//#endregion
|
|
82097
|
+
//#region src/agents/tools/hub/task-create-tool.ts
|
|
82098
|
+
var task_create_tool_exports = /* @__PURE__ */ __exportAll({ createTaskCreateTool: () => createTaskCreateTool });
|
|
82099
|
+
/**
|
|
82100
|
+
* Create a project task. WRITE — confirm contract: confirm=false returns a
|
|
82101
|
+
* preview, confirm=true only after the user explicitly agrees.
|
|
82102
|
+
*/
|
|
82103
|
+
function createTaskCreateTool(options) {
|
|
82104
|
+
const agentId = options.agentId;
|
|
82105
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
82106
|
+
return wrapToolWithTracking({
|
|
82107
|
+
label: "Task Create",
|
|
82108
|
+
name: "task_create",
|
|
82109
|
+
description: "Create a new task under a project. First present the exact action (project, title, assignee, status) and ask for confirmation. Call with confirm=false for a validated preview (no write); only call with confirm=true after the user explicitly agrees. Present the result with a deep link like [task](/work).",
|
|
82110
|
+
parameters: TaskCreateSchema,
|
|
82111
|
+
execute: async (_toolCallId, args) => {
|
|
82112
|
+
const params = args;
|
|
82113
|
+
const orgId = readStringParam(params, "orgId");
|
|
82114
|
+
return jsonResult(await hubPost("actions/task-create", agentId, {
|
|
82115
|
+
projectId: readStringParam(params, "projectId", { required: true }),
|
|
82116
|
+
title: readStringParam(params, "title", { required: true }),
|
|
82117
|
+
description: readStringParam(params, "description"),
|
|
82118
|
+
status: readStringParam(params, "status"),
|
|
82119
|
+
priority: readStringParam(params, "priority"),
|
|
82120
|
+
assigneePartyId: readStringParam(params, "assigneePartyId"),
|
|
82121
|
+
confirm: params.confirm === true
|
|
82122
|
+
}, orgId));
|
|
82123
|
+
}
|
|
82124
|
+
}, "builtin:task_create");
|
|
82125
|
+
}
|
|
82126
|
+
var TaskCreateSchema;
|
|
82127
|
+
var init_task_create_tool = __esmMin((() => {
|
|
82128
|
+
init_tool_tracking();
|
|
82129
|
+
init_common();
|
|
82130
|
+
init_hub_common();
|
|
82131
|
+
TaskCreateSchema = Type.Object({
|
|
82132
|
+
projectId: Type.String({ description: "The project this task belongs to." }),
|
|
82133
|
+
title: Type.String({ description: "Task title." }),
|
|
82134
|
+
description: Type.Optional(Type.String({ description: "Task description." })),
|
|
82135
|
+
status: Type.Optional(Type.Union([
|
|
82136
|
+
Type.Literal("backlog"),
|
|
82137
|
+
Type.Literal("todo"),
|
|
82138
|
+
Type.Literal("in_progress"),
|
|
82139
|
+
Type.Literal("in_review"),
|
|
82140
|
+
Type.Literal("done"),
|
|
82141
|
+
Type.Literal("blocked"),
|
|
82142
|
+
Type.Literal("cancelled")
|
|
82143
|
+
], { description: "Initial status. Defaults to 'backlog'." })),
|
|
82144
|
+
priority: Type.Optional(Type.Union([
|
|
82145
|
+
Type.Literal("low"),
|
|
82146
|
+
Type.Literal("medium"),
|
|
82147
|
+
Type.Literal("high"),
|
|
82148
|
+
Type.Literal("urgent")
|
|
82149
|
+
], { description: "Task priority." })),
|
|
82150
|
+
assigneePartyId: Type.Optional(Type.String({ description: "Assignee party id." })),
|
|
82151
|
+
confirm: CONFIRM_FIELD,
|
|
82152
|
+
orgId: ORG_ID_FIELD
|
|
82153
|
+
});
|
|
82154
|
+
}));
|
|
82155
|
+
//#endregion
|
|
82156
|
+
//#region src/agents/tools/hub/task-update-tool.ts
|
|
82157
|
+
var task_update_tool_exports = /* @__PURE__ */ __exportAll({ createTaskUpdateTool: () => createTaskUpdateTool });
|
|
82158
|
+
/**
|
|
82159
|
+
* Update a project task's status/assignee. WRITE — confirm contract:
|
|
82160
|
+
* confirm=false returns a preview, confirm=true only after the user
|
|
82161
|
+
* explicitly agrees.
|
|
82162
|
+
*/
|
|
82163
|
+
function createTaskUpdateTool(options) {
|
|
82164
|
+
const agentId = options.agentId;
|
|
82165
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
82166
|
+
return wrapToolWithTracking({
|
|
82167
|
+
label: "Task Update",
|
|
82168
|
+
name: "task_update",
|
|
82169
|
+
description: "Change a task's title, description, status, priority, or assignee. First present the exact change (which task, field, old → new value) and ask for confirmation. Call with confirm=false for a validated preview (no write); only call with confirm=true after the user explicitly agrees. Pass expectedUpdatedAt from the last read to avoid clobbering a concurrent edit. Present the result with a deep link like [task](/work).",
|
|
82170
|
+
parameters: TaskUpdateSchema,
|
|
82171
|
+
execute: async (_toolCallId, args) => {
|
|
82172
|
+
const params = args;
|
|
82173
|
+
const orgId = readStringParam(params, "orgId");
|
|
82174
|
+
return jsonResult(await hubPost("actions/task-update", agentId, {
|
|
82175
|
+
taskId: readStringParam(params, "taskId", { required: true }),
|
|
82176
|
+
title: readStringParam(params, "title"),
|
|
82177
|
+
description: readStringParam(params, "description"),
|
|
82178
|
+
status: readStringParam(params, "status"),
|
|
82179
|
+
priority: readStringParam(params, "priority"),
|
|
82180
|
+
assigneePartyId: readStringParam(params, "assigneePartyId"),
|
|
82181
|
+
expectedUpdatedAt: readStringParam(params, "expectedUpdatedAt"),
|
|
82182
|
+
confirm: params.confirm === true
|
|
82183
|
+
}, orgId));
|
|
82184
|
+
}
|
|
82185
|
+
}, "builtin:task_update");
|
|
82186
|
+
}
|
|
82187
|
+
var TaskUpdateSchema;
|
|
82188
|
+
var init_task_update_tool = __esmMin((() => {
|
|
82189
|
+
init_tool_tracking();
|
|
82190
|
+
init_common();
|
|
82191
|
+
init_hub_common();
|
|
82192
|
+
TaskUpdateSchema = Type.Object({
|
|
82193
|
+
taskId: Type.String({ description: "The task to update." }),
|
|
82194
|
+
title: Type.Optional(Type.String({ description: "New title." })),
|
|
82195
|
+
description: Type.Optional(Type.String({ description: "New description." })),
|
|
82196
|
+
status: Type.Optional(Type.Union([
|
|
82197
|
+
Type.Literal("backlog"),
|
|
82198
|
+
Type.Literal("todo"),
|
|
82199
|
+
Type.Literal("in_progress"),
|
|
82200
|
+
Type.Literal("in_review"),
|
|
82201
|
+
Type.Literal("done"),
|
|
82202
|
+
Type.Literal("blocked"),
|
|
82203
|
+
Type.Literal("cancelled")
|
|
82204
|
+
], { description: "New status." })),
|
|
82205
|
+
priority: Type.Optional(Type.Union([
|
|
82206
|
+
Type.Literal("low"),
|
|
82207
|
+
Type.Literal("medium"),
|
|
82208
|
+
Type.Literal("high"),
|
|
82209
|
+
Type.Literal("urgent")
|
|
82210
|
+
], { description: "New priority." })),
|
|
82211
|
+
assigneePartyId: Type.Optional(Type.String({ description: "New assignee party id." })),
|
|
82212
|
+
expectedUpdatedAt: Type.Optional(Type.String({ description: "The task's updatedAt you last read (from projects_query). Used for optimistic concurrency — the hub rejects the write (409) if the task changed since." })),
|
|
82213
|
+
confirm: CONFIRM_FIELD,
|
|
82214
|
+
orgId: ORG_ID_FIELD
|
|
82215
|
+
});
|
|
82216
|
+
}));
|
|
82217
|
+
//#endregion
|
|
82218
|
+
//#region src/agents/tools/hub/ticket-comment-tool.ts
|
|
82219
|
+
var ticket_comment_tool_exports = /* @__PURE__ */ __exportAll({ createTicketCommentTool: () => createTicketCommentTool });
|
|
82220
|
+
/**
|
|
82221
|
+
* Add a comment to a support ticket's activity log. WRITE — confirm
|
|
82222
|
+
* contract: confirm=false returns a preview, confirm=true only after the
|
|
82223
|
+
* user explicitly agrees.
|
|
82224
|
+
*/
|
|
82225
|
+
function createTicketCommentTool(options) {
|
|
82226
|
+
const agentId = options.agentId;
|
|
82227
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
82228
|
+
return wrapToolWithTracking({
|
|
82229
|
+
label: "Ticket Comment",
|
|
82230
|
+
name: "ticket_comment",
|
|
82231
|
+
description: "Add a comment to a support ticket's activity log. First present the exact comment text and which ticket it goes on, and ask for confirmation. Call with confirm=false for a validated preview (no write); only call with confirm=true after the user explicitly agrees. Present the result with a deep link like [ticket](/support/{ticketId}).",
|
|
82232
|
+
parameters: TicketCommentSchema,
|
|
82233
|
+
execute: async (_toolCallId, args) => {
|
|
82234
|
+
const params = args;
|
|
82235
|
+
const orgId = readStringParam(params, "orgId");
|
|
82236
|
+
return jsonResult(await hubPost("actions/ticket-comment", agentId, {
|
|
82237
|
+
issueId: readStringParam(params, "issueId", { required: true }),
|
|
82238
|
+
body: readStringParam(params, "body", { required: true }),
|
|
82239
|
+
confirm: params.confirm === true
|
|
82240
|
+
}, orgId));
|
|
82241
|
+
}
|
|
82242
|
+
}, "builtin:ticket_comment");
|
|
82243
|
+
}
|
|
82244
|
+
var TicketCommentSchema;
|
|
82245
|
+
var init_ticket_comment_tool = __esmMin((() => {
|
|
82246
|
+
init_tool_tracking();
|
|
82247
|
+
init_common();
|
|
82248
|
+
init_hub_common();
|
|
82249
|
+
TicketCommentSchema = Type.Object({
|
|
82250
|
+
issueId: Type.String({ description: "The ticket to comment on." }),
|
|
82251
|
+
body: Type.String({ description: "Comment body to add to the ticket's activity log." }),
|
|
82252
|
+
confirm: CONFIRM_FIELD,
|
|
82253
|
+
orgId: ORG_ID_FIELD
|
|
82254
|
+
});
|
|
82255
|
+
}));
|
|
82256
|
+
//#endregion
|
|
82257
|
+
//#region src/agents/tools/hub/ticket-create-tool.ts
|
|
82258
|
+
var ticket_create_tool_exports = /* @__PURE__ */ __exportAll({ createTicketCreateTool: () => createTicketCreateTool });
|
|
82259
|
+
/**
|
|
82260
|
+
* Create a support ticket. WRITE — confirm contract: confirm=false returns
|
|
82261
|
+
* a preview, confirm=true only after the user explicitly agrees.
|
|
82262
|
+
*/
|
|
82263
|
+
function createTicketCreateTool(options) {
|
|
82264
|
+
const agentId = options.agentId;
|
|
82265
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
82266
|
+
return wrapToolWithTracking({
|
|
82267
|
+
label: "Ticket Create",
|
|
82268
|
+
name: "ticket_create",
|
|
82269
|
+
description: "Open a new support ticket. First present the exact action (subject, description, contact, priority) and ask for confirmation. Call with confirm=false for a validated preview (no write); only call with confirm=true after the user explicitly agrees. Present the result with a deep link like [ticket](/support/{ticketId}).",
|
|
82270
|
+
parameters: TicketCreateSchema,
|
|
82271
|
+
execute: async (_toolCallId, args) => {
|
|
82272
|
+
const params = args;
|
|
82273
|
+
const orgId = readStringParam(params, "orgId");
|
|
82274
|
+
return jsonResult(await hubPost("actions/ticket-create", agentId, {
|
|
82275
|
+
subject: readStringParam(params, "subject", { required: true }),
|
|
82276
|
+
description: readStringParam(params, "description"),
|
|
82277
|
+
crmContactId: readStringParam(params, "crmContactId"),
|
|
82278
|
+
partyId: readStringParam(params, "partyId"),
|
|
82279
|
+
priority: readStringParam(params, "priority"),
|
|
82280
|
+
confirm: params.confirm === true
|
|
82281
|
+
}, orgId));
|
|
82282
|
+
}
|
|
82283
|
+
}, "builtin:ticket_create");
|
|
82284
|
+
}
|
|
82285
|
+
var TicketCreateSchema;
|
|
82286
|
+
var init_ticket_create_tool = __esmMin((() => {
|
|
82287
|
+
init_tool_tracking();
|
|
82288
|
+
init_common();
|
|
82289
|
+
init_hub_common();
|
|
82290
|
+
TicketCreateSchema = Type.Object({
|
|
82291
|
+
subject: Type.String({ description: "Short ticket subject/title." }),
|
|
82292
|
+
description: Type.Optional(Type.String({ description: "Full issue description." })),
|
|
82293
|
+
crmContactId: Type.Optional(Type.String({ description: "CRM contact this ticket is for, if known." })),
|
|
82294
|
+
partyId: Type.Optional(Type.String({ description: "Party (org member/staff) this ticket is for, if known." })),
|
|
82295
|
+
priority: Type.Optional(Type.Union([
|
|
82296
|
+
Type.Literal("urgent"),
|
|
82297
|
+
Type.Literal("high"),
|
|
82298
|
+
Type.Literal("medium"),
|
|
82299
|
+
Type.Literal("low")
|
|
82300
|
+
], { description: "Priority. Defaults to 'medium'." })),
|
|
82301
|
+
confirm: CONFIRM_FIELD,
|
|
82302
|
+
orgId: ORG_ID_FIELD
|
|
82303
|
+
});
|
|
82304
|
+
}));
|
|
82305
|
+
//#endregion
|
|
82306
|
+
//#region src/agents/tools/hub/ticket-update-tool.ts
|
|
82307
|
+
var ticket_update_tool_exports = /* @__PURE__ */ __exportAll({ createTicketUpdateTool: () => createTicketUpdateTool });
|
|
82308
|
+
/**
|
|
82309
|
+
* Update a support ticket's status/assignee/priority. WRITE — confirm
|
|
82310
|
+
* contract: confirm=false returns a preview, confirm=true only after the
|
|
82311
|
+
* user explicitly agrees.
|
|
82312
|
+
*/
|
|
82313
|
+
function createTicketUpdateTool(options) {
|
|
82314
|
+
const agentId = options.agentId;
|
|
82315
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
82316
|
+
return wrapToolWithTracking({
|
|
82317
|
+
label: "Ticket Update",
|
|
82318
|
+
name: "ticket_update",
|
|
82319
|
+
description: "Change a support ticket's subject, description, status, owner, or priority. First present the exact change (which ticket, field, old → new value) and ask for confirmation. Call with confirm=false for a validated preview (no write); only call with confirm=true after the user explicitly agrees. Pass expectedUpdatedAt from the last read to avoid clobbering a concurrent edit. Present the result with a deep link like [ticket](/support/{ticketId}).",
|
|
82320
|
+
parameters: TicketUpdateSchema,
|
|
82321
|
+
execute: async (_toolCallId, args) => {
|
|
82322
|
+
const params = args;
|
|
82323
|
+
const orgId = readStringParam(params, "orgId");
|
|
82324
|
+
return jsonResult(await hubPost("actions/ticket-update", agentId, {
|
|
82325
|
+
issueId: readStringParam(params, "issueId", { required: true }),
|
|
82326
|
+
subject: readStringParam(params, "subject"),
|
|
82327
|
+
description: readStringParam(params, "description"),
|
|
82328
|
+
status: readStringParam(params, "status"),
|
|
82329
|
+
ownerId: readStringParam(params, "ownerId"),
|
|
82330
|
+
priority: readStringParam(params, "priority"),
|
|
82331
|
+
expectedUpdatedAt: readStringParam(params, "expectedUpdatedAt"),
|
|
82332
|
+
confirm: params.confirm === true
|
|
82333
|
+
}, orgId));
|
|
82334
|
+
}
|
|
82335
|
+
}, "builtin:ticket_update");
|
|
82336
|
+
}
|
|
82337
|
+
var TicketUpdateSchema;
|
|
82338
|
+
var init_ticket_update_tool = __esmMin((() => {
|
|
82339
|
+
init_tool_tracking();
|
|
82340
|
+
init_common();
|
|
82341
|
+
init_hub_common();
|
|
82342
|
+
TicketUpdateSchema = Type.Object({
|
|
82343
|
+
issueId: Type.String({ description: "The ticket to update." }),
|
|
82344
|
+
subject: Type.Optional(Type.String({ description: "New subject/title." })),
|
|
82345
|
+
description: Type.Optional(Type.String({ description: "New description." })),
|
|
82346
|
+
status: Type.Optional(Type.Union([
|
|
82347
|
+
Type.Literal("open"),
|
|
82348
|
+
Type.Literal("replied"),
|
|
82349
|
+
Type.Literal("on_hold"),
|
|
82350
|
+
Type.Literal("resolved"),
|
|
82351
|
+
Type.Literal("closed")
|
|
82352
|
+
], { description: "New status." })),
|
|
82353
|
+
ownerId: Type.Optional(Type.String({ description: "New owner/assignee party id." })),
|
|
82354
|
+
priority: Type.Optional(Type.Union([
|
|
82355
|
+
Type.Literal("urgent"),
|
|
82356
|
+
Type.Literal("high"),
|
|
82357
|
+
Type.Literal("medium"),
|
|
82358
|
+
Type.Literal("low")
|
|
82359
|
+
], { description: "New priority." })),
|
|
82360
|
+
expectedUpdatedAt: Type.Optional(Type.String({ description: "The ticket's updatedAt you last read (from tickets_query). Used for optimistic concurrency — the hub rejects the write if the ticket changed since." })),
|
|
82361
|
+
confirm: CONFIRM_FIELD,
|
|
82362
|
+
orgId: ORG_ID_FIELD
|
|
82363
|
+
});
|
|
82364
|
+
}));
|
|
82365
|
+
//#endregion
|
|
82366
|
+
//#region src/agents/tools/hub/tickets-query-tool.ts
|
|
82367
|
+
var tickets_query_tool_exports = /* @__PURE__ */ __exportAll({ createTicketsQueryTool: () => createTicketsQueryTool });
|
|
82368
|
+
/**
|
|
82369
|
+
* Support module read: tickets by status/assignee/contact. Calls the hub's
|
|
82370
|
+
* /api/gateway/query/tickets with the session's personal agent id.
|
|
82371
|
+
*/
|
|
82372
|
+
function createTicketsQueryTool(options) {
|
|
82373
|
+
const agentId = options.agentId;
|
|
82374
|
+
if (!hubToolsAvailable(agentId)) return null;
|
|
82375
|
+
return wrapToolWithTracking({
|
|
82376
|
+
label: "Tickets Query",
|
|
82377
|
+
name: "tickets_query",
|
|
82378
|
+
description: "List support tickets, filterable by status, priority, or contact. 'Tickets assigned to me' is applied automatically server-side for owner-scoped roles, not via a parameter. Use for 'what's open right now', 'X's open tickets'. To create/update a ticket or add a comment use ticket_create/ticket_update/ticket_comment. Present results with a deep link like [ticket](/support/{ticketId}) or [tickets](/support?contact={contactId}).",
|
|
82379
|
+
parameters: TicketsQuerySchema,
|
|
82380
|
+
execute: async (_toolCallId, args) => {
|
|
82381
|
+
const params = args;
|
|
82382
|
+
return jsonResult(await hubGet("query/tickets", agentId, {
|
|
82383
|
+
status: readStringParam(params, "status"),
|
|
82384
|
+
priority: readStringParam(params, "priority"),
|
|
82385
|
+
contact: readStringParam(params, "contactId"),
|
|
82386
|
+
orgId: readStringParam(params, "orgId")
|
|
82387
|
+
}));
|
|
82388
|
+
}
|
|
82389
|
+
}, "builtin:tickets_query");
|
|
82390
|
+
}
|
|
82391
|
+
var TicketsQuerySchema;
|
|
82392
|
+
var init_tickets_query_tool = __esmMin((() => {
|
|
82393
|
+
init_tool_tracking();
|
|
82394
|
+
init_common();
|
|
82395
|
+
init_hub_common();
|
|
82396
|
+
TicketsQuerySchema = Type.Object({
|
|
82397
|
+
status: Type.Optional(Type.Union([
|
|
82398
|
+
Type.Literal("open"),
|
|
82399
|
+
Type.Literal("replied"),
|
|
82400
|
+
Type.Literal("on_hold"),
|
|
82401
|
+
Type.Literal("resolved"),
|
|
82402
|
+
Type.Literal("closed"),
|
|
82403
|
+
Type.Literal("open_all")
|
|
82404
|
+
], { description: "'open_all' covers open+replied+on_hold in one call. Defaults to 'open_all'." })),
|
|
82405
|
+
priority: Type.Optional(Type.Union([
|
|
82406
|
+
Type.Literal("low"),
|
|
82407
|
+
Type.Literal("medium"),
|
|
82408
|
+
Type.Literal("high"),
|
|
82409
|
+
Type.Literal("urgent")
|
|
82410
|
+
], { description: "Priority filter." })),
|
|
82411
|
+
contactId: Type.Optional(Type.String({ description: "Filter to one CRM contact's tickets." })),
|
|
82412
|
+
orgId: ORG_ID_FIELD
|
|
82413
|
+
});
|
|
82414
|
+
}));
|
|
82415
|
+
//#endregion
|
|
81251
82416
|
//#region src/agents/tools/knowledge/crm-insight-tool.ts
|
|
81252
82417
|
var crm_insight_tool_exports = /* @__PURE__ */ __exportAll({ createCrmInsightTool: () => createCrmInsightTool });
|
|
81253
82418
|
/**
|
|
@@ -94470,6 +95635,349 @@ var init__registry_generated = __esmMin((() => {
|
|
|
94470
95635
|
},
|
|
94471
95636
|
load: () => Promise.resolve().then(() => (init_gateway_tool(), gateway_tool_exports))
|
|
94472
95637
|
},
|
|
95638
|
+
booking_cancel: {
|
|
95639
|
+
meta: {
|
|
95640
|
+
id: "booking_cancel",
|
|
95641
|
+
factory: "createBookingCancelTool",
|
|
95642
|
+
groups: ["group:minion"],
|
|
95643
|
+
display: {
|
|
95644
|
+
emoji: "❌",
|
|
95645
|
+
title: "Booking Cancel",
|
|
95646
|
+
detailKeys: ["bookingId", "confirm"]
|
|
95647
|
+
},
|
|
95648
|
+
mcpExport: true
|
|
95649
|
+
},
|
|
95650
|
+
load: () => Promise.resolve().then(() => (init_booking_cancel_tool(), booking_cancel_tool_exports))
|
|
95651
|
+
},
|
|
95652
|
+
booking_create: {
|
|
95653
|
+
meta: {
|
|
95654
|
+
id: "booking_create",
|
|
95655
|
+
factory: "createBookingCreateTool",
|
|
95656
|
+
groups: ["group:minion"],
|
|
95657
|
+
display: {
|
|
95658
|
+
emoji: "📅",
|
|
95659
|
+
title: "Booking Create",
|
|
95660
|
+
detailKeys: ["start", "confirm"]
|
|
95661
|
+
},
|
|
95662
|
+
mcpExport: true
|
|
95663
|
+
},
|
|
95664
|
+
load: () => Promise.resolve().then(() => (init_booking_create_tool(), booking_create_tool_exports))
|
|
95665
|
+
},
|
|
95666
|
+
booking_reschedule: {
|
|
95667
|
+
meta: {
|
|
95668
|
+
id: "booking_reschedule",
|
|
95669
|
+
factory: "createBookingRescheduleTool",
|
|
95670
|
+
groups: ["group:minion"],
|
|
95671
|
+
display: {
|
|
95672
|
+
emoji: "🔁",
|
|
95673
|
+
title: "Booking Reschedule",
|
|
95674
|
+
detailKeys: ["bookingId", "confirm"]
|
|
95675
|
+
},
|
|
95676
|
+
mcpExport: true
|
|
95677
|
+
},
|
|
95678
|
+
load: () => Promise.resolve().then(() => (init_booking_reschedule_tool(), booking_reschedule_tool_exports))
|
|
95679
|
+
},
|
|
95680
|
+
bookings_query: {
|
|
95681
|
+
meta: {
|
|
95682
|
+
id: "bookings_query",
|
|
95683
|
+
factory: "createBookingsQueryTool",
|
|
95684
|
+
groups: ["group:minion"],
|
|
95685
|
+
display: {
|
|
95686
|
+
emoji: "📅",
|
|
95687
|
+
title: "Bookings Query",
|
|
95688
|
+
detailKeys: ["status", "contactId"]
|
|
95689
|
+
},
|
|
95690
|
+
mcpExport: true
|
|
95691
|
+
},
|
|
95692
|
+
load: () => Promise.resolve().then(() => (init_bookings_query_tool(), bookings_query_tool_exports))
|
|
95693
|
+
},
|
|
95694
|
+
brain_remember: {
|
|
95695
|
+
meta: {
|
|
95696
|
+
id: "brain_remember",
|
|
95697
|
+
factory: "createBrainRememberTool",
|
|
95698
|
+
groups: ["group:minion"],
|
|
95699
|
+
display: {
|
|
95700
|
+
emoji: "🧠",
|
|
95701
|
+
title: "Brain Remember",
|
|
95702
|
+
detailKeys: [
|
|
95703
|
+
"brainId",
|
|
95704
|
+
"title",
|
|
95705
|
+
"confirm"
|
|
95706
|
+
]
|
|
95707
|
+
},
|
|
95708
|
+
mcpExport: true
|
|
95709
|
+
},
|
|
95710
|
+
load: () => Promise.resolve().then(() => (init_brain_remember_tool(), brain_remember_tool_exports))
|
|
95711
|
+
},
|
|
95712
|
+
brain_search: {
|
|
95713
|
+
meta: {
|
|
95714
|
+
id: "brain_search",
|
|
95715
|
+
factory: "createBrainSearchTool",
|
|
95716
|
+
groups: ["group:minion"],
|
|
95717
|
+
display: {
|
|
95718
|
+
emoji: "🔎",
|
|
95719
|
+
title: "Brain Search",
|
|
95720
|
+
detailKeys: ["brainId", "query"]
|
|
95721
|
+
},
|
|
95722
|
+
mcpExport: true
|
|
95723
|
+
},
|
|
95724
|
+
load: () => Promise.resolve().then(() => (init_brain_search_tool(), brain_search_tool_exports))
|
|
95725
|
+
},
|
|
95726
|
+
brains_list: {
|
|
95727
|
+
meta: {
|
|
95728
|
+
id: "brains_list",
|
|
95729
|
+
factory: "createBrainsListTool",
|
|
95730
|
+
groups: ["group:minion"],
|
|
95731
|
+
display: {
|
|
95732
|
+
emoji: "🧠",
|
|
95733
|
+
title: "Brains List",
|
|
95734
|
+
detailKeys: ["orgId"]
|
|
95735
|
+
},
|
|
95736
|
+
mcpExport: true
|
|
95737
|
+
},
|
|
95738
|
+
load: () => Promise.resolve().then(() => (init_brains_list_tool(), brains_list_tool_exports))
|
|
95739
|
+
},
|
|
95740
|
+
contact_tag: {
|
|
95741
|
+
meta: {
|
|
95742
|
+
id: "contact_tag",
|
|
95743
|
+
factory: "createContactTagTool",
|
|
95744
|
+
groups: ["group:minion"],
|
|
95745
|
+
display: {
|
|
95746
|
+
emoji: "🏷️",
|
|
95747
|
+
title: "Contact Tag",
|
|
95748
|
+
detailKeys: [
|
|
95749
|
+
"contactId",
|
|
95750
|
+
"tag",
|
|
95751
|
+
"tagId",
|
|
95752
|
+
"confirm"
|
|
95753
|
+
]
|
|
95754
|
+
},
|
|
95755
|
+
mcpExport: true
|
|
95756
|
+
},
|
|
95757
|
+
load: () => Promise.resolve().then(() => (init_contact_tag_tool(), contact_tag_tool_exports))
|
|
95758
|
+
},
|
|
95759
|
+
contact_update: {
|
|
95760
|
+
meta: {
|
|
95761
|
+
id: "contact_update",
|
|
95762
|
+
factory: "createContactUpdateTool",
|
|
95763
|
+
groups: ["group:minion"],
|
|
95764
|
+
display: {
|
|
95765
|
+
emoji: "📇",
|
|
95766
|
+
title: "Contact Update",
|
|
95767
|
+
detailKeys: ["contactId", "confirm"]
|
|
95768
|
+
},
|
|
95769
|
+
mcpExport: true
|
|
95770
|
+
},
|
|
95771
|
+
load: () => Promise.resolve().then(() => (init_contact_update_tool(), contact_update_tool_exports))
|
|
95772
|
+
},
|
|
95773
|
+
finance_query: {
|
|
95774
|
+
meta: {
|
|
95775
|
+
id: "finance_query",
|
|
95776
|
+
factory: "createFinanceQueryTool",
|
|
95777
|
+
groups: ["group:minion"],
|
|
95778
|
+
display: {
|
|
95779
|
+
emoji: "💰",
|
|
95780
|
+
title: "Finance Query",
|
|
95781
|
+
detailKeys: ["dateFrom", "dateTo"]
|
|
95782
|
+
},
|
|
95783
|
+
mcpExport: true
|
|
95784
|
+
},
|
|
95785
|
+
load: () => Promise.resolve().then(() => (init_finance_query_tool(), finance_query_tool_exports))
|
|
95786
|
+
},
|
|
95787
|
+
hub_pages: {
|
|
95788
|
+
meta: {
|
|
95789
|
+
id: "hub_pages",
|
|
95790
|
+
factory: "createHubPagesTool",
|
|
95791
|
+
groups: ["group:minion"],
|
|
95792
|
+
display: {
|
|
95793
|
+
emoji: "🧭",
|
|
95794
|
+
title: "Hub Pages",
|
|
95795
|
+
detailKeys: []
|
|
95796
|
+
},
|
|
95797
|
+
mcpExport: true
|
|
95798
|
+
},
|
|
95799
|
+
load: () => Promise.resolve().then(() => (init_hub_pages_tool(), hub_pages_tool_exports))
|
|
95800
|
+
},
|
|
95801
|
+
notify_user: {
|
|
95802
|
+
meta: {
|
|
95803
|
+
id: "notify_user",
|
|
95804
|
+
factory: "createNotifyUserTool",
|
|
95805
|
+
groups: ["group:minion"],
|
|
95806
|
+
display: {
|
|
95807
|
+
emoji: "🔔",
|
|
95808
|
+
title: "Notify User",
|
|
95809
|
+
detailKeys: ["recipientProfileId", "confirm"]
|
|
95810
|
+
},
|
|
95811
|
+
mcpExport: true
|
|
95812
|
+
},
|
|
95813
|
+
load: () => Promise.resolve().then(() => (init_notify_user_tool(), notify_user_tool_exports))
|
|
95814
|
+
},
|
|
95815
|
+
order_update_status: {
|
|
95816
|
+
meta: {
|
|
95817
|
+
id: "order_update_status",
|
|
95818
|
+
factory: "createOrderUpdateStatusTool",
|
|
95819
|
+
groups: ["group:minion"],
|
|
95820
|
+
display: {
|
|
95821
|
+
emoji: "🛒",
|
|
95822
|
+
title: "Order Update Status",
|
|
95823
|
+
detailKeys: [
|
|
95824
|
+
"orderId",
|
|
95825
|
+
"status",
|
|
95826
|
+
"confirm"
|
|
95827
|
+
]
|
|
95828
|
+
},
|
|
95829
|
+
mcpExport: true
|
|
95830
|
+
},
|
|
95831
|
+
load: () => Promise.resolve().then(() => (init_order_update_status_tool(), order_update_status_tool_exports))
|
|
95832
|
+
},
|
|
95833
|
+
orders_query: {
|
|
95834
|
+
meta: {
|
|
95835
|
+
id: "orders_query",
|
|
95836
|
+
factory: "createOrdersQueryTool",
|
|
95837
|
+
groups: ["group:minion"],
|
|
95838
|
+
display: {
|
|
95839
|
+
emoji: "🛒",
|
|
95840
|
+
title: "Orders Query",
|
|
95841
|
+
detailKeys: ["status"]
|
|
95842
|
+
},
|
|
95843
|
+
mcpExport: true
|
|
95844
|
+
},
|
|
95845
|
+
load: () => Promise.resolve().then(() => (init_orders_query_tool(), orders_query_tool_exports))
|
|
95846
|
+
},
|
|
95847
|
+
projects_query: {
|
|
95848
|
+
meta: {
|
|
95849
|
+
id: "projects_query",
|
|
95850
|
+
factory: "createProjectsQueryTool",
|
|
95851
|
+
groups: ["group:minion"],
|
|
95852
|
+
display: {
|
|
95853
|
+
emoji: "🗂️",
|
|
95854
|
+
title: "Projects Query",
|
|
95855
|
+
detailKeys: ["status", "assignee"]
|
|
95856
|
+
},
|
|
95857
|
+
mcpExport: true
|
|
95858
|
+
},
|
|
95859
|
+
load: () => Promise.resolve().then(() => (init_projects_query_tool(), projects_query_tool_exports))
|
|
95860
|
+
},
|
|
95861
|
+
stock_entry_create: {
|
|
95862
|
+
meta: {
|
|
95863
|
+
id: "stock_entry_create",
|
|
95864
|
+
factory: "createStockEntryCreateTool",
|
|
95865
|
+
groups: ["group:minion"],
|
|
95866
|
+
display: {
|
|
95867
|
+
emoji: "📦",
|
|
95868
|
+
title: "Stock Entry Create",
|
|
95869
|
+
detailKeys: ["type", "confirm"]
|
|
95870
|
+
},
|
|
95871
|
+
mcpExport: true
|
|
95872
|
+
},
|
|
95873
|
+
load: () => Promise.resolve().then(() => (init_stock_entry_create_tool(), stock_entry_create_tool_exports))
|
|
95874
|
+
},
|
|
95875
|
+
stock_query: {
|
|
95876
|
+
meta: {
|
|
95877
|
+
id: "stock_query",
|
|
95878
|
+
factory: "createStockQueryTool",
|
|
95879
|
+
groups: ["group:minion"],
|
|
95880
|
+
display: {
|
|
95881
|
+
emoji: "📦",
|
|
95882
|
+
title: "Stock Query",
|
|
95883
|
+
detailKeys: ["mode", "itemId"]
|
|
95884
|
+
},
|
|
95885
|
+
mcpExport: true
|
|
95886
|
+
},
|
|
95887
|
+
load: () => Promise.resolve().then(() => (init_stock_query_tool(), stock_query_tool_exports))
|
|
95888
|
+
},
|
|
95889
|
+
task_create: {
|
|
95890
|
+
meta: {
|
|
95891
|
+
id: "task_create",
|
|
95892
|
+
factory: "createTaskCreateTool",
|
|
95893
|
+
groups: ["group:minion"],
|
|
95894
|
+
display: {
|
|
95895
|
+
emoji: "✅",
|
|
95896
|
+
title: "Task Create",
|
|
95897
|
+
detailKeys: ["title", "confirm"]
|
|
95898
|
+
},
|
|
95899
|
+
mcpExport: true
|
|
95900
|
+
},
|
|
95901
|
+
load: () => Promise.resolve().then(() => (init_task_create_tool(), task_create_tool_exports))
|
|
95902
|
+
},
|
|
95903
|
+
task_update: {
|
|
95904
|
+
meta: {
|
|
95905
|
+
id: "task_update",
|
|
95906
|
+
factory: "createTaskUpdateTool",
|
|
95907
|
+
groups: ["group:minion"],
|
|
95908
|
+
display: {
|
|
95909
|
+
emoji: "✅",
|
|
95910
|
+
title: "Task Update",
|
|
95911
|
+
detailKeys: [
|
|
95912
|
+
"taskId",
|
|
95913
|
+
"status",
|
|
95914
|
+
"confirm"
|
|
95915
|
+
]
|
|
95916
|
+
},
|
|
95917
|
+
mcpExport: true
|
|
95918
|
+
},
|
|
95919
|
+
load: () => Promise.resolve().then(() => (init_task_update_tool(), task_update_tool_exports))
|
|
95920
|
+
},
|
|
95921
|
+
ticket_comment: {
|
|
95922
|
+
meta: {
|
|
95923
|
+
id: "ticket_comment",
|
|
95924
|
+
factory: "createTicketCommentTool",
|
|
95925
|
+
groups: ["group:minion"],
|
|
95926
|
+
display: {
|
|
95927
|
+
emoji: "💬",
|
|
95928
|
+
title: "Ticket Comment",
|
|
95929
|
+
detailKeys: ["issueId", "confirm"]
|
|
95930
|
+
},
|
|
95931
|
+
mcpExport: true
|
|
95932
|
+
},
|
|
95933
|
+
load: () => Promise.resolve().then(() => (init_ticket_comment_tool(), ticket_comment_tool_exports))
|
|
95934
|
+
},
|
|
95935
|
+
ticket_create: {
|
|
95936
|
+
meta: {
|
|
95937
|
+
id: "ticket_create",
|
|
95938
|
+
factory: "createTicketCreateTool",
|
|
95939
|
+
groups: ["group:minion"],
|
|
95940
|
+
display: {
|
|
95941
|
+
emoji: "🎫",
|
|
95942
|
+
title: "Ticket Create",
|
|
95943
|
+
detailKeys: ["subject", "confirm"]
|
|
95944
|
+
},
|
|
95945
|
+
mcpExport: true
|
|
95946
|
+
},
|
|
95947
|
+
load: () => Promise.resolve().then(() => (init_ticket_create_tool(), ticket_create_tool_exports))
|
|
95948
|
+
},
|
|
95949
|
+
ticket_update: {
|
|
95950
|
+
meta: {
|
|
95951
|
+
id: "ticket_update",
|
|
95952
|
+
factory: "createTicketUpdateTool",
|
|
95953
|
+
groups: ["group:minion"],
|
|
95954
|
+
display: {
|
|
95955
|
+
emoji: "✏️",
|
|
95956
|
+
title: "Ticket Update",
|
|
95957
|
+
detailKeys: [
|
|
95958
|
+
"issueId",
|
|
95959
|
+
"status",
|
|
95960
|
+
"confirm"
|
|
95961
|
+
]
|
|
95962
|
+
},
|
|
95963
|
+
mcpExport: true
|
|
95964
|
+
},
|
|
95965
|
+
load: () => Promise.resolve().then(() => (init_ticket_update_tool(), ticket_update_tool_exports))
|
|
95966
|
+
},
|
|
95967
|
+
tickets_query: {
|
|
95968
|
+
meta: {
|
|
95969
|
+
id: "tickets_query",
|
|
95970
|
+
factory: "createTicketsQueryTool",
|
|
95971
|
+
groups: ["group:minion"],
|
|
95972
|
+
display: {
|
|
95973
|
+
emoji: "🎫",
|
|
95974
|
+
title: "Tickets Query",
|
|
95975
|
+
detailKeys: ["status", "priority"]
|
|
95976
|
+
},
|
|
95977
|
+
mcpExport: true
|
|
95978
|
+
},
|
|
95979
|
+
load: () => Promise.resolve().then(() => (init_tickets_query_tool(), tickets_query_tool_exports))
|
|
95980
|
+
},
|
|
94473
95981
|
crm_insight: {
|
|
94474
95982
|
meta: {
|
|
94475
95983
|
id: "crm_insight",
|
|
@@ -95426,6 +96934,29 @@ function buildToolOptions(id, ctx) {
|
|
|
95426
96934
|
agentId: ctx.agentId
|
|
95427
96935
|
};
|
|
95428
96936
|
case "crm_query": return { agentId: ctx.agentId };
|
|
96937
|
+
case "finance_query":
|
|
96938
|
+
case "bookings_query":
|
|
96939
|
+
case "tickets_query":
|
|
96940
|
+
case "orders_query":
|
|
96941
|
+
case "projects_query":
|
|
96942
|
+
case "hub_pages":
|
|
96943
|
+
case "stock_query":
|
|
96944
|
+
case "booking_create":
|
|
96945
|
+
case "booking_reschedule":
|
|
96946
|
+
case "booking_cancel":
|
|
96947
|
+
case "ticket_create":
|
|
96948
|
+
case "ticket_update":
|
|
96949
|
+
case "ticket_comment":
|
|
96950
|
+
case "order_update_status":
|
|
96951
|
+
case "task_create":
|
|
96952
|
+
case "task_update":
|
|
96953
|
+
case "contact_update":
|
|
96954
|
+
case "contact_tag":
|
|
96955
|
+
case "notify_user":
|
|
96956
|
+
case "stock_entry_create":
|
|
96957
|
+
case "brains_list":
|
|
96958
|
+
case "brain_search":
|
|
96959
|
+
case "brain_remember": return { agentId: ctx.agentId };
|
|
95429
96960
|
default: return;
|
|
95430
96961
|
}
|
|
95431
96962
|
}
|
|
@@ -95531,7 +97062,30 @@ var init_minion_tools = __esmMin((() => {
|
|
|
95531
97062
|
"summarize",
|
|
95532
97063
|
"crm_search",
|
|
95533
97064
|
"crm_insight",
|
|
95534
|
-
"crm_query"
|
|
97065
|
+
"crm_query",
|
|
97066
|
+
"finance_query",
|
|
97067
|
+
"bookings_query",
|
|
97068
|
+
"tickets_query",
|
|
97069
|
+
"orders_query",
|
|
97070
|
+
"projects_query",
|
|
97071
|
+
"hub_pages",
|
|
97072
|
+
"stock_query",
|
|
97073
|
+
"booking_create",
|
|
97074
|
+
"booking_reschedule",
|
|
97075
|
+
"booking_cancel",
|
|
97076
|
+
"ticket_create",
|
|
97077
|
+
"ticket_update",
|
|
97078
|
+
"ticket_comment",
|
|
97079
|
+
"order_update_status",
|
|
97080
|
+
"task_create",
|
|
97081
|
+
"task_update",
|
|
97082
|
+
"contact_update",
|
|
97083
|
+
"contact_tag",
|
|
97084
|
+
"notify_user",
|
|
97085
|
+
"stock_entry_create",
|
|
97086
|
+
"brains_list",
|
|
97087
|
+
"brain_search",
|
|
97088
|
+
"brain_remember"
|
|
95535
97089
|
];
|
|
95536
97090
|
}));
|
|
95537
97091
|
//#endregion
|
|
@@ -103048,7 +104602,8 @@ function loadOpenClawPlugins(options = {}) {
|
|
|
103048
104602
|
config: cfg,
|
|
103049
104603
|
pluginConfig: validatedConfig.value
|
|
103050
104604
|
});
|
|
103051
|
-
const
|
|
104605
|
+
const manifestDeclaredChannelLinkMode = record.channelLink?.mode;
|
|
104606
|
+
const manifestDeclaredChannelLink = Boolean(manifestDeclaredChannelLinkMode);
|
|
103052
104607
|
try {
|
|
103053
104608
|
const result = register(api);
|
|
103054
104609
|
if (result && typeof result.then === "function") {
|
|
@@ -103063,7 +104618,7 @@ function loadOpenClawPlugins(options = {}) {
|
|
|
103063
104618
|
});
|
|
103064
104619
|
}
|
|
103065
104620
|
const codeRegisteredChannelLink = Boolean(record.channelLinkRegistered);
|
|
103066
|
-
if (manifestDeclaredChannelLink && !codeRegisteredChannelLink) registry.diagnostics.push({
|
|
104621
|
+
if (manifestDeclaredChannelLink && manifestDeclaredChannelLinkMode !== "managed" && !codeRegisteredChannelLink) registry.diagnostics.push({
|
|
103067
104622
|
level: "warn",
|
|
103068
104623
|
pluginId: record.id,
|
|
103069
104624
|
source: record.source,
|