@desplega.ai/agent-swarm 2.7.4 → 2.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/acp-adapter-bp91d37f.js +15 -0
- package/dist/{actions-gfrr9vb7.js → actions-yj0eeaqh.js} +19 -18
- package/dist/{amp-adapter-0s58gm46.js → amp-adapter-4pg9h34q.js} +3 -3
- package/dist/{app-stvq692g.js → app-909e97cr.js} +3 -3
- package/dist/{assistant-5s37fr9n.js → assistant-qdyb5fyy.js} +32 -23
- package/dist/{boot-reembed-yzy1841n.js → boot-reembed-fk0s9z18.js} +1 -1
- package/dist/{boot-reembed-cv82gz7y.js → boot-reembed-gs1rzrnh.js} +1 -1
- package/dist/{boot-scrub-sweep-8k4q95ap.js → boot-scrub-sweep-4qfd4kfx.js} +4 -4
- package/dist/{boot-seeds-ftt9htah.js → boot-seeds-yr00k13d.js} +4 -4
- package/dist/{boxd-515v1t8z.js → boxd-vdmfssd9.js} +5 -5
- package/dist/{claude-adapter-t00wrzeh.js → claude-adapter-qta1f1xn.js} +7 -7
- package/dist/{claude-managed-adapter-g6vmjccb.js → claude-managed-adapter-dvs2xw5n.js} +2 -2
- package/dist/{claude-managed-setup-afpa82f7.js → claude-managed-setup-sc6j4dm0.js} +3 -3
- package/dist/{claude-sdk-session-vj0c2azx.js → claude-sdk-session-zgrz6yvc.js} +9175 -9076
- package/dist/{cli-gjr2y2xk.js → cli-0agcv1v5.js} +4 -1
- package/dist/{cli-edmm9d9y.js → cli-0at8w34w.js} +7 -7
- package/dist/{cli-a81qevyg.js → cli-0qatpy8q.js} +20 -36
- package/dist/{cli-bcz074zx.js → cli-0yv5z2pg.js} +1 -1
- package/dist/{cli-a4btqqft.js → cli-1b7btd38.js} +1 -1
- package/dist/{cli-a2jw6ee5.js → cli-1p89xny0.js} +1 -1
- package/dist/{cli-v726afdm.js → cli-2pnswgh8.js} +1 -1
- package/dist/{cli-jkt52mgt.js → cli-386tyxxg.js} +2 -2
- package/dist/{cli-az0bpf8p.js → cli-3ypk9vk1.js} +3 -3
- package/dist/{cli-wk9md5px.js → cli-436532ck.js} +4 -4
- package/dist/{cli-7n5sbw0z.js → cli-4necwtsv.js} +5 -5
- package/dist/cli-54t00gt8.js +151 -0
- package/dist/{cli-655xm9ms.js → cli-583frbyr.js} +1 -1
- package/dist/{cli-4r12t6w6.js → cli-5c4hjzne.js} +101 -4
- package/dist/{cli-hf6zt5m6.js → cli-69szn7w7.js} +17 -1
- package/dist/{cli-rtk9g7av.js → cli-73jzwksr.js} +6 -2
- package/dist/{cli-jg0nfda6.js → cli-75gkpjvw.js} +52 -21
- package/dist/{cli-wcmnan2g.js → cli-89knwags.js} +5 -5
- package/dist/{cli-pwyevs29.js → cli-8bc1w0tw.js} +22 -21
- package/dist/{cli-t282jgab.js → cli-8snvgs5r.js} +41 -16
- package/dist/{cli-vqgnyh76.js → cli-98rw5dt5.js} +15 -3
- package/dist/{cli-9cctx1tn.js → cli-a22h291q.js} +1 -1
- package/dist/{cli-ycm6180s.js → cli-a7v854rf.js} +5 -3
- package/dist/{cli-98pke4vk.js → cli-ae7mrdf9.js} +2 -2
- package/dist/{cli-je8yeyc5.js → cli-bjb3z51z.js} +5 -5
- package/dist/{cli-mc97xy2s.js → cli-c60vetmm.js} +16 -4
- package/dist/{cli-j4kw3rsx.js → cli-cm5yqn35.js} +18 -0
- package/dist/{cli-wndv9p7g.js → cli-decfb6v8.js} +6 -6
- package/dist/{cli-h55y2bjc.js → cli-dhar9qay.js} +2 -2
- package/dist/{cli-8yy525ad.js → cli-drr5v6av.js} +2 -2
- package/dist/{cli-5gr1g711.js → cli-dxae2yg7.js} +2 -2
- package/dist/{cli-pe09p6dv.js → cli-e3r2neck.js} +8 -7
- package/dist/{cli-13jvmew3.js → cli-ekwks2vs.js} +7 -7
- package/dist/{cli-jg4p5t36.js → cli-es6va8jk.js} +121 -51
- package/dist/{cli-j4kt1mpb.js → cli-faxe6thg.js} +3 -3
- package/dist/{cli-tzrpv5sc.js → cli-ftyxyspd.js} +1 -1
- package/dist/cli-fw2w0kva.js +47 -0
- package/dist/{cli-2dfbv8qr.js → cli-fy6x31ps.js} +1 -0
- package/dist/{cli-aq58fk5m.js → cli-g83s9ewh.js} +7 -1
- package/dist/cli-gdhpcbhf.js +55 -0
- package/dist/{cli-82jg7fp9.js → cli-he5nxaa8.js} +1 -1
- package/dist/{cli-8veytvbh.js → cli-he9wchme.js} +1 -1
- package/dist/{cli-k76tgq03.js → cli-hgaazk69.js} +2 -2
- package/dist/{cli-d2pzqej1.js → cli-hr2e2fft.js} +741 -7
- package/dist/{cli-dae4sbgy.js → cli-jm2vfpfd.js} +2 -2
- package/dist/{cli-1s1dqn1j.js → cli-k2gzwsj2.js} +297 -140
- package/dist/{cli-b1afgtj3.js → cli-kqdg1bsb.js} +3 -3
- package/dist/cli-m2z8jagn.js +12078 -0
- package/dist/{cli-mvckssyq.js → cli-m48g6p95.js} +5 -5
- package/dist/{cli-bwty35gx.js → cli-mthwvjre.js} +1 -1
- package/dist/{cli-41z8xwj0.js → cli-nhrvpaj7.js} +34 -8
- package/dist/{cli-ahd90bwt.js → cli-nwj0ee2w.js} +6 -6
- package/dist/{cli-kvtc7aez.js → cli-p5gp8pcx.js} +44 -14
- package/dist/{cli-avgcz4ra.js → cli-pd7vagab.js} +436 -171
- package/dist/{cli-zn15c46z.js → cli-q0k1w5zd.js} +1 -1
- package/dist/{cli-bq2pcphn.js → cli-rmmmrjkd.js} +1 -1
- package/dist/{cli-2qpvmmkw.js → cli-s0qnd4wv.js} +1 -1
- package/dist/{cli-kg8hchyg.js → cli-sa02jsqt.js} +1 -1
- package/dist/{cli-1yekbyqm.js → cli-shpbx5ee.js} +283 -82
- package/dist/{cli-9y354g3j.js → cli-srye3vdt.js} +1 -1
- package/dist/{cli-byqfbnjw.js → cli-svj5090z.js} +9 -9
- package/dist/{cli-gcbdjt47.js → cli-vfym7wmz.js} +6 -6
- package/dist/{cli-v1yw3wha.js → cli-vvpx3gsx.js} +4 -4
- package/dist/{cli-a1fhj4n9.js → cli-w6dt9ged.js} +2 -2
- package/dist/{cli-1gm8jcyr.js → cli-waqbxg08.js} +5232 -68
- package/dist/{cli-5hjced2v.js → cli-wp9sp1qb.js} +6 -6
- package/dist/{cli-eny54typ.js → cli-wx3rhnm0.js} +1 -1
- package/dist/{cli-s0exq74r.js → cli-xbbndvjy.js} +3 -3
- package/dist/{cli-f255yaqn.js → cli-xds5f77d.js} +3 -3
- package/dist/{cli-0sbkss7h.js → cli-xnqgpshy.js} +2 -2
- package/dist/{cli-0fgr1w9b.js → cli-xnrwazav.js} +20 -3
- package/dist/{cli-gf5hbmdr.js → cli-yjdgea32.js} +3 -3
- package/dist/{cli-cq1pf336.js → cli-yn4kxs06.js} +124 -11
- package/dist/{cli-224epwwf.js → cli-yx4kfngt.js} +3 -3
- package/dist/{cli-eqx6k993.js → cli-yy3rhsdw.js} +47 -13
- package/dist/{cli-36g23z21.js → cli-zbbwez0r.js} +4 -4
- package/dist/{cli-ktmvb20s.js → cli-zm72anhg.js} +12 -12
- package/dist/cli.js +26 -25
- package/dist/{codex-adapter-g0gctw29.js → codex-adapter-ayd1fb6h.js} +5 -5
- package/dist/{codex-hook-vrzz2xhr.js → codex-hook-9efm2x1m.js} +1 -1
- package/dist/{codex-login-0gg46ygn.js → codex-login-y0pmff1c.js} +1 -1
- package/dist/{codex-session-runner-dr2cxe1c.js → codex-session-runner-jesa32xc.js} +6 -6
- package/dist/{commands-1p07cvff.js → commands-hanewgf2.js} +9 -3
- package/dist/{controller-z0s7sv6r.js → controller-dt1n3c1q.js} +9 -4
- package/dist/{controllers-connect-x9kvvhyk.js → controllers-connect-xx8x64n5.js} +22 -21
- package/dist/{cursor-adapter-m5b98pvk.js → cursor-adapter-9s4dwwdw.js} +2 -2
- package/dist/{db-capk2raj.js → db-3vttcbv4.js} +3 -3
- package/dist/{db-rsh04kh3.js → db-9dv0g1ab.js} +12 -4
- package/dist/{devin-adapter-yxm87fe9.js → devin-adapter-r9phbnc9.js} +1 -1
- package/dist/{devtools-82fzqra8.js → devtools-qxfgbsqz.js} +1 -1
- package/dist/{dispatcher-304q6fwa.js → dispatcher-tx9hd1sv.js} +18 -17
- package/dist/{docker-7rxt0rry.js → docker-c1a3gqmf.js} +91 -24
- package/dist/{dsh-adapter-btewem0y.js → dsh-adapter-007y4ejs.js} +2 -2
- package/dist/{e2b-renc0k8q.js → e2b-a19d28rz.js} +4 -4
- package/dist/{e2b-7fc9b9bd.js → e2b-we6hs6q5.js} +6 -6
- package/dist/{easter-egg-3d-fm1p3n4d.js → easter-egg-3d-rgbrqb8s.js} +1 -1
- package/dist/{embedding-space-s68v49ct.js → embedding-space-ny1e2940.js} +6 -6
- package/dist/{embeddings-4ms3604w.js → embeddings-2t386t13.js} +1 -1
- package/dist/{event-bus-dfjx2qdh.js → event-bus-g0ka3pbw.js} +1 -1
- package/dist/{execute-mcdgccjs.js → execute-pksh0ceh.js} +1 -1
- package/dist/{external-channel-9dxwfztn.js → external-channel-phgmhmd7.js} +2 -2
- package/dist/fx-adapter-fy8rr921.js +18 -0
- package/dist/{google-generative-ai-yvmdxyxa.js → google-generative-ai-8y3m3k4b.js} +1 -1
- package/dist/{google-vertex-jrtdh9gs.js → google-vertex-w3v98n7b.js} +1 -1
- package/dist/{grok-adapter-05ecv4h0.js → grok-adapter-q0abvpaj.js} +8 -8
- package/dist/handlers-by3sfxyx.js +32 -0
- package/dist/{heartbeat-3n94heh3.js → heartbeat-kadyek8p.js} +21 -20
- package/dist/{hook-aadrn69x.js → hook-5zs3msf6.js} +6 -6
- package/dist/{hook-zxwje86c.js → hook-9k551xnj.js} +4 -4
- package/dist/{http-xzxk9mst.js → http-mhz9vw1f.js} +272 -103
- package/dist/index-4f2pvxae.js +37 -0
- package/dist/index-98gz7tmp.js +30 -0
- package/dist/{index-5rk6rfzr.js → index-fvzke5kx.js} +1 -1
- package/dist/index-k08z2cak.js +33 -0
- package/dist/{index-yqhz88yy.js → index-pxn30mse.js} +8 -8
- package/dist/{index-d34f6r87.js → index-q361cg2f.js} +1 -1
- package/dist/{index-9j4zwcht.js → index-rvr00sg7.js} +168 -675
- package/dist/{index-qeb82z37.js → index-vdygbq10.js} +1 -1
- package/dist/{keepalive-w4aakbyk.js → keepalive-w56f32cg.js} +4 -4
- package/dist/lead-enq35nqp.js +70 -0
- package/dist/{maintenance-hbptpk6p.js → maintenance-7mdgxcea.js} +1 -1
- package/dist/{oauth-refresh-sweep-217semrv.js → oauth-refresh-sweep-29txy9vk.js} +3 -3
- package/dist/{onboard-vz2s5df3.js → onboard-kpsrkarj.js} +5 -5
- package/dist/{opencode-adapter-gtfd7d7v.js → opencode-adapter-j25vm3rr.js} +5 -5
- package/dist/{otel-impl-aefave37.js → otel-impl-6kkct7a8.js} +2 -2
- package/dist/{pi-mono-adapter-f8h5yseh.js → pi-mono-adapter-exhkzhn2.js} +117 -23
- package/dist/{pricing-refresh-m1yhh9ya.js → pricing-refresh-n2x7jh6k.js} +3 -3
- package/dist/{rbac-roles-rrw8twdz.js → rbac-roles-81ypx6es.js} +1 -1
- package/dist/{rbac-roles-svj72cdf.js → rbac-roles-b5htkjby.js} +2 -2
- package/dist/{render-v2-amwbnfxh.js → render-v2-qn6jmpk4.js} +3 -3
- package/dist/{resume-9cd6wf6z.js → resume-wd30wx23.js} +7 -7
- package/dist/{runtime-fp4vrx7m.js → runtime-4hsg7h60.js} +1 -1
- package/dist/{session-access-21t6yjyg.js → session-access-5qvfevhk.js} +4 -4
- package/dist/{session-source-backfill-pxbzcsc6.js → session-source-backfill-n1czavbr.js} +3 -3
- package/dist/{setup-4592tqz4.js → setup-dnb56qy5.js} +3 -3
- package/dist/{virtual-modules-gzfnpmnz.js → virtual-modules-76xxv9fs.js} +2 -2
- package/dist/{work-objects-t9tcf174.js → work-objects-4n21tfkm.js} +21 -20
- package/dist/{worker-follow-up-q32jh4yk.js → worker-follow-up-77hvzxww.js} +18 -17
- package/dist/worker-gg1576j3.js +70 -0
- package/dist/{x-b6wxntdt.js → x-vmmye1kb.js} +2 -2
- package/openapi.json +189 -32
- package/package.json +8 -7
- package/src/be/db/script-runs.ts +23 -0
- package/src/be/db/session-summaries.ts +8 -2
- package/src/be/db/session-tree.ts +174 -61
- package/src/be/db/session-visibility.ts +5 -4
- package/src/be/db/tasks/read.ts +122 -3
- package/src/be/db-client.ts +8 -5
- package/src/be/db.ts +23 -8
- package/src/be/memory/providers/sqlite-store.ts +49 -12
- package/src/be/migrations/259_session_summaries_open_tasks.sql +111 -0
- package/src/be/migrations/260_runtime_pool_cache.sql +20 -0
- package/src/be/migrations/262_session_visibility_indexes.sql +18 -0
- package/src/be/migrations/263_task_list_filter_index.sql +11 -0
- package/src/be/migrations/264_slack_thread_cover_index.sql +9 -0
- package/src/be/migrations/266_script_runs_source_task.sql +11 -0
- package/src/be/model-validation.ts +5 -1
- package/src/be/pricing-normalize.ts +7 -2
- package/src/be/runtime-pools/cache-cleanup.ts +109 -0
- package/src/be/runtime-pools/db.ts +65 -6
- package/src/be/runtime-pools/remote-controller.ts +5 -0
- package/src/be/runtime-pools/supervisor.ts +33 -2
- package/src/be/scripts/typecheck.ts +23 -0
- package/src/be/seed/schedules-seeder.ts +135 -9
- package/src/be/seed/workflows-seeder.ts +65 -1
- package/src/be/seed-pricing.ts +23 -0
- package/src/be/seed-scripts/catalog/task-failure-audit.ts +5 -1
- package/src/be/steering.ts +50 -3
- package/src/be/swarm-config-guard.ts +1 -0
- package/src/commands/controller.ts +4 -0
- package/src/commands/entrypoint-api-readiness.ts +74 -0
- package/src/commands/provider-credentials.ts +29 -2
- package/src/commands/runner.ts +86 -5
- package/src/extensions/contract-types.generated.ts +1 -1
- package/src/extensions/contract.ts +27 -1
- package/src/extensions/dispatcher.ts +4 -0
- package/src/http/agents.ts +1 -0
- package/src/http/index.ts +1 -1
- package/src/http/list-total-cache.ts +14 -7
- package/src/http/mcp-bridge.ts +4 -0
- package/src/http/memory.ts +38 -9
- package/src/http/script-runs.ts +174 -5
- package/src/http/status.ts +10 -2
- package/src/http/tasks.ts +4 -2
- package/src/integrations/chat-sdk/inbound.ts +15 -5
- package/src/integrations/chat-sdk/steering.ts +3 -1
- package/src/kv-reserved-namespaces.ts +2 -0
- package/src/prompts/base-prompt.ts +4 -1
- package/src/prompts/session-templates.ts +26 -0
- package/src/providers/acp-adapter.ts +190 -26
- package/src/providers/acp-targets.ts +306 -6
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/codex-adapter.ts +9 -44
- package/src/providers/codex-oauth/flow.ts +24 -3
- package/src/providers/codex-oauth/storage.ts +56 -17
- package/src/providers/codex-oauth/subscription.ts +67 -0
- package/src/providers/fx-adapter.ts +211 -0
- package/src/providers/index.ts +5 -1
- package/src/providers/mcp-loopback-proxy.ts +94 -0
- package/src/providers/pi-mono-adapter.ts +98 -13
- package/src/providers/pricing-sources.md +8 -0
- package/src/providers/reasoning-effort.ts +17 -1
- package/src/providers/types.ts +2 -1
- package/src/runtime-providers/controller-protocol.ts +14 -1
- package/src/runtime-providers/controller.ts +5 -0
- package/src/runtime-providers/docker.ts +108 -23
- package/src/runtime-providers/types.ts +16 -0
- package/src/scheduler/scheduler.ts +36 -3
- package/src/script-workflows/workflow-ctx.ts +8 -0
- package/src/scripts-runtime/sdk-allowlist.ts +1 -0
- package/src/scripts-runtime/types/stdlib.d.ts +27 -0
- package/src/scripts-runtime/types/swarm-extension.d.ts +33 -0
- package/src/scripts-runtime/types/swarm-sdk.d.ts +27 -0
- package/src/server-user.ts +1 -0
- package/src/server.ts +7 -0
- package/src/slack/assistant.ts +17 -1
- package/src/slack/commands.ts +5 -1
- package/src/slack/handlers.ts +53 -5
- package/src/slack/left-threads.ts +88 -0
- package/src/slack/steering.ts +3 -0
- package/src/slack/thread-buffer.ts +40 -16
- package/src/tasks/follow-up-redelegation-guard.ts +155 -0
- package/src/tests/acp-adapter.test.ts +79 -0
- package/src/tests/base-prompt.test.ts +12 -0
- package/src/tests/chat-sdk-inbound.test.ts +30 -0
- package/src/tests/chatgpt-subscription-model-groups.test.ts +62 -0
- package/src/tests/chatgpt-subscription-pi.test.ts +170 -0
- package/src/tests/chatgpt-subscription-session-bench.test.ts +198 -0
- package/src/tests/claude-artifacts-read-script.test.ts +209 -0
- package/src/tests/codex-oauth-credential-info.test.ts +40 -0
- package/src/tests/codex-oauth-refresh-egress.test.ts +194 -0
- package/src/tests/context-window.test.ts +7 -0
- package/src/tests/db-client.test.ts +21 -0
- package/src/tests/db-task-read-contract.test.ts +8 -2
- package/src/tests/db-task-write-contract.test.ts +5 -1
- package/src/tests/entrypoint-api-readiness.test.ts +416 -210
- package/src/tests/explicit-model-validation.test.ts +113 -8
- package/src/tests/extensions-run-context.test.ts +11 -0
- package/src/tests/extensions-steering.test.ts +353 -0
- package/src/tests/extensions-validate.test.ts +5 -0
- package/src/tests/fixtures/extensions/steering-policy/hooks.ts +39 -0
- package/src/tests/fixtures/extensions/steering-policy/manifest.json +7 -0
- package/src/tests/fixtures/fake-fx.ts +167 -0
- package/src/tests/fixtures/fx/acp-responses-recorded.json +157 -0
- package/src/tests/fixtures/fx/acp-updates-recorded.jsonl +15 -0
- package/src/tests/follow-up-redelivery-guard.test.ts +432 -202
- package/src/tests/fx-adapter.test.ts +771 -0
- package/src/tests/grok-adapter.test.ts +36 -0
- package/src/tests/list-total-cache.test.ts +27 -2
- package/src/tests/mcp-loopback-proxy.test.ts +193 -0
- package/src/tests/memory-fts-populate.test.ts +11 -9
- package/src/tests/memory-retrieval-purge.test.ts +80 -0
- package/src/tests/migration-260-runtime-pool-cache.test.ts +118 -0
- package/src/tests/model-tier-resolution.test.ts +3 -3
- package/src/tests/pricing-refresh.test.ts +5 -5
- package/src/tests/prompt-template-session.test.ts +5 -3
- package/src/tests/provider-registration.test.ts +2 -1
- package/src/tests/query-audit-plans.test.ts +30 -2
- package/src/tests/runtime-cache-cleanup.test.ts +367 -0
- package/src/tests/runtime-e2b-pools.test.ts +41 -0
- package/src/tests/runtime-pools-db.test.ts +98 -0
- package/src/tests/runtime-pools-http.test.ts +29 -0
- package/src/tests/runtime-providers-docker.test.ts +253 -0
- package/src/tests/runtime-remote-controller.test.ts +66 -2
- package/src/tests/runtime-supervisor.test.ts +66 -2
- package/src/tests/script-connections.test.ts +13 -0
- package/src/tests/script-runs-http.test.ts +684 -2
- package/src/tests/seed-model-profiles.test.ts +2 -2
- package/src/tests/seed-schedules.test.ts +138 -0
- package/src/tests/seed-scripts.test.ts +26 -0
- package/src/tests/session-cost-recompute-unit.test.ts +39 -0
- package/src/tests/session-costs-golden.test.ts +26 -0
- package/src/tests/session-summaries-plans.test.ts +120 -0
- package/src/tests/session-summaries.test.ts +72 -12
- package/src/tests/sessions-tree.test.ts +11 -3
- package/src/tests/slack-leave-thread.test.ts +571 -0
- package/src/tests/slack-render-v2-query-plans.test.ts +24 -2
- package/src/tests/status.test.ts +11 -0
- package/src/tests/tasks-readable-row.test.ts +155 -0
- package/src/tests/tool-annotations.test.ts +2 -1
- package/src/tests/workflow-engine-v2.test.ts +42 -0
- package/src/tests/workflow-script-principal.test.ts +207 -7
- package/src/tools/send-task.ts +35 -47
- package/src/tools/slack-leave-thread.ts +104 -0
- package/src/tools/steer-task.ts +3 -2
- package/src/tools/task-dedup.ts +45 -21
- package/src/tools/tool-config.ts +2 -1
- package/src/types.ts +57 -0
- package/src/utils/codex-auth-failure.ts +30 -0
- package/src/utils/context-window.ts +4 -1
- package/src/utils/credentials.ts +7 -0
- package/src/utils/fx-models.ts +43 -0
- package/src/workflows/cooldown.ts +3 -2
- package/src/workflows/engine.ts +24 -9
- package/templates/schedules/dreaming-daily/config.json +1 -1
- package/templates/schedules/dreaming-daily/content.md +6 -14
- package/templates/skills/composio-google-docs/content.md +10 -0
- package/templates/skills/script-workflows/content.md +19 -1
- package/templates/skills/swarm-docs/content.md +2 -0
- package/templates/skills/swarm-scripts/SKILL.md +2 -0
- package/templates/skills/swarm-scripts/content.md +2 -0
- package/templates/workflows/dreaming/content.md +5 -1
- package/dist/acp-adapter-96dc64m2.js +0 -15
- package/dist/cli-dznrgaep.js +0 -30
- package/dist/cli-w3hcrxht.js +0 -6985
- package/dist/handlers-jg7v74ty.js +0 -31
- package/dist/index-8c1zbz59.js +0 -29
- package/dist/index-8k8tmfxd.js +0 -32
- package/dist/index-hq617xdj.js +0 -36
- package/dist/lead-567kw7x3.js +0 -68
- package/dist/worker-fjdqra6q.js +0 -68
|
@@ -91,7 +91,9 @@ import {
|
|
|
91
91
|
getAgentWorkingOnContextKey2,
|
|
92
92
|
getLatestActiveTaskByContextKey2,
|
|
93
93
|
getLatestLeadTaskByContextKey2,
|
|
94
|
-
|
|
94
|
+
findCompletedTasksInThread2,
|
|
95
|
+
findRecentFailedTaskInThread2,
|
|
96
|
+
countAgentDispatchesInThread2,
|
|
95
97
|
findRecentCancelledTaskInThread2,
|
|
96
98
|
init_read,
|
|
97
99
|
listModelProfiles,
|
|
@@ -165,11 +167,6 @@ import {
|
|
|
165
167
|
touchScratchScriptLastUsed,
|
|
166
168
|
restoreScratchScriptLastUsedIfUnchanged,
|
|
167
169
|
init_db3,
|
|
168
|
-
SteeringRequestError,
|
|
169
|
-
isSteeringEnabled,
|
|
170
|
-
carryUnhandledSteering,
|
|
171
|
-
requestSteering,
|
|
172
|
-
init_steering2,
|
|
173
170
|
getWorkflowRunTriggeredByAgentId,
|
|
174
171
|
getWorkflowRunSummary,
|
|
175
172
|
getWorkflowRunStepsSlimByRunId,
|
|
@@ -179,6 +176,12 @@ import {
|
|
|
179
176
|
getRunningSubWorkflowSteps,
|
|
180
177
|
getSettledChildRunParentSteps,
|
|
181
178
|
init_workflow_runs,
|
|
179
|
+
SteeringRequestError,
|
|
180
|
+
SteeringBlockedError,
|
|
181
|
+
isSteeringEnabled,
|
|
182
|
+
carryUnhandledSteering,
|
|
183
|
+
requestSteering,
|
|
184
|
+
init_steering2,
|
|
182
185
|
getPendingTaskForAgent2,
|
|
183
186
|
startTask2,
|
|
184
187
|
updateTaskClaudeSessionId2,
|
|
@@ -348,17 +351,17 @@ import {
|
|
|
348
351
|
recordInlineScriptRun2,
|
|
349
352
|
exports_db,
|
|
350
353
|
init_db4
|
|
351
|
-
} from "./cli-
|
|
354
|
+
} from "./cli-k2gzwsj2.js";
|
|
352
355
|
import {
|
|
353
356
|
getUserGrant2,
|
|
354
357
|
init_rbac_roles
|
|
355
|
-
} from "./cli-
|
|
358
|
+
} from "./cli-rmmmrjkd.js";
|
|
356
359
|
import {
|
|
357
360
|
ensurePricingSeeded2,
|
|
358
361
|
ensureRbacSeeded2,
|
|
359
362
|
ensureModelProfilesSeeded2,
|
|
360
363
|
init_boot_seeds
|
|
361
|
-
} from "./cli-
|
|
364
|
+
} from "./cli-zbbwez0r.js";
|
|
362
365
|
import {
|
|
363
366
|
buildCatalogEntries,
|
|
364
367
|
listModelCatalog,
|
|
@@ -370,11 +373,11 @@ import {
|
|
|
370
373
|
requestModelCatalogRefresh2,
|
|
371
374
|
startPricingRefreshLoop2,
|
|
372
375
|
init_pricing_refresh
|
|
373
|
-
} from "./cli-
|
|
376
|
+
} from "./cli-89knwags.js";
|
|
374
377
|
import {
|
|
375
378
|
workflowEventBus2,
|
|
376
379
|
init_event_bus
|
|
377
|
-
} from "./cli-
|
|
380
|
+
} from "./cli-wx3rhnm0.js";
|
|
378
381
|
import {
|
|
379
382
|
slackCode,
|
|
380
383
|
slackMissingScopeMessage,
|
|
@@ -383,7 +386,7 @@ import {
|
|
|
383
386
|
externalChannelToolError2,
|
|
384
387
|
getChannelBlockReason2,
|
|
385
388
|
init_external_channel
|
|
386
|
-
} from "./cli-
|
|
389
|
+
} from "./cli-w6dt9ged.js";
|
|
387
390
|
import {
|
|
388
391
|
noteSlackInboundSideEffect,
|
|
389
392
|
init_inbound_dispatch,
|
|
@@ -418,7 +421,7 @@ import {
|
|
|
418
421
|
startSlackApp2,
|
|
419
422
|
stopSlackApp2,
|
|
420
423
|
init_app3
|
|
421
|
-
} from "./cli-
|
|
424
|
+
} from "./cli-waqbxg08.js";
|
|
422
425
|
import {
|
|
423
426
|
shapeApprovalResolution,
|
|
424
427
|
init_approval_resolution,
|
|
@@ -442,7 +445,7 @@ import {
|
|
|
442
445
|
resumeFromChildRun2,
|
|
443
446
|
initWaitBusSubscriptions2,
|
|
444
447
|
init_resume
|
|
445
|
-
} from "./cli-
|
|
448
|
+
} from "./cli-m48g6p95.js";
|
|
446
449
|
import {
|
|
447
450
|
FilesError,
|
|
448
451
|
providerPath,
|
|
@@ -456,7 +459,7 @@ import {
|
|
|
456
459
|
import {
|
|
457
460
|
getRuntimePool2,
|
|
458
461
|
init_db2
|
|
459
|
-
} from "./cli-
|
|
462
|
+
} from "./cli-yn4kxs06.js";
|
|
460
463
|
import {
|
|
461
464
|
duplicateGuardedQueryKey,
|
|
462
465
|
parseQueryParams,
|
|
@@ -489,19 +492,19 @@ import {
|
|
|
489
492
|
findRoute,
|
|
490
493
|
route,
|
|
491
494
|
init_route_def
|
|
492
|
-
} from "./cli-
|
|
495
|
+
} from "./cli-4necwtsv.js";
|
|
493
496
|
import {
|
|
494
497
|
COMPOSIO_HTTP_METHODS,
|
|
495
498
|
executeComposioRequest,
|
|
496
499
|
composioArgsFromParts,
|
|
497
500
|
init_composio
|
|
498
|
-
} from "./cli-
|
|
501
|
+
} from "./cli-s0qnd4wv.js";
|
|
499
502
|
import {
|
|
500
503
|
ampPinProviderError,
|
|
501
504
|
ampPinCatalogError,
|
|
502
505
|
ampModelError,
|
|
503
506
|
init_amp_models
|
|
504
|
-
} from "./cli-
|
|
507
|
+
} from "./cli-q0k1w5zd.js";
|
|
505
508
|
import {
|
|
506
509
|
object,
|
|
507
510
|
init_v4_mini
|
|
@@ -522,7 +525,7 @@ import {
|
|
|
522
525
|
import {
|
|
523
526
|
loadModelsDevCache,
|
|
524
527
|
init_modelsdev_cache
|
|
525
|
-
} from "./cli-
|
|
528
|
+
} from "./cli-c60vetmm.js";
|
|
526
529
|
import {
|
|
527
530
|
require_dist2,
|
|
528
531
|
ConnectionAuthInputSchema,
|
|
@@ -562,6 +565,8 @@ import {
|
|
|
562
565
|
init_import_allowlist,
|
|
563
566
|
runScriptWithRunCredential,
|
|
564
567
|
init_run_credential,
|
|
568
|
+
seededWorkflowState,
|
|
569
|
+
init_workflows_seeder,
|
|
565
570
|
extractScriptSignature,
|
|
566
571
|
init_extract_signature,
|
|
567
572
|
extractArgsJsonSchema,
|
|
@@ -599,7 +604,7 @@ import {
|
|
|
599
604
|
init_typecheck,
|
|
600
605
|
parseSkillContent,
|
|
601
606
|
init_skill_parser
|
|
602
|
-
} from "./cli-
|
|
607
|
+
} from "./cli-hr2e2fft.js";
|
|
603
608
|
import {
|
|
604
609
|
detachedProcessGroup,
|
|
605
610
|
registerProcessGroup,
|
|
@@ -614,7 +619,7 @@ import {
|
|
|
614
619
|
ensureToken,
|
|
615
620
|
ensureTokenOrThrow,
|
|
616
621
|
init_ensure_token
|
|
617
|
-
} from "./cli-
|
|
622
|
+
} from "./cli-xnqgpshy.js";
|
|
618
623
|
import {
|
|
619
624
|
require_fast_deep_equal
|
|
620
625
|
} from "./cli-bhp11egn.js";
|
|
@@ -709,7 +714,7 @@ import {
|
|
|
709
714
|
validateDefinition,
|
|
710
715
|
applyDefinitionPatch,
|
|
711
716
|
init_definition2
|
|
712
|
-
} from "./cli-
|
|
717
|
+
} from "./cli-8bc1w0tw.js";
|
|
713
718
|
import {
|
|
714
719
|
isMultiRuntimeEnabled,
|
|
715
720
|
init_multi_runtime2
|
|
@@ -725,14 +730,20 @@ import {
|
|
|
725
730
|
import {
|
|
726
731
|
require_dist3
|
|
727
732
|
} from "./cli-k28wkapa.js";
|
|
733
|
+
import {
|
|
734
|
+
SLACK_LEAVE_THREAD_DISABLE,
|
|
735
|
+
isSlackLeaveThreadDisabled,
|
|
736
|
+
leaveSlackThread,
|
|
737
|
+
init_left_threads
|
|
738
|
+
} from "./cli-gdhpcbhf.js";
|
|
728
739
|
import {
|
|
729
740
|
publicEndpointSsrfOptions,
|
|
730
741
|
init_mcp_wrapper
|
|
731
|
-
} from "./cli-
|
|
742
|
+
} from "./cli-hgaazk69.js";
|
|
732
743
|
import {
|
|
733
744
|
canProvisionKind,
|
|
734
745
|
init_runtime_providers
|
|
735
|
-
} from "./cli-
|
|
746
|
+
} from "./cli-kqdg1bsb.js";
|
|
736
747
|
import {
|
|
737
748
|
findUserById,
|
|
738
749
|
findUserByExternalId,
|
|
@@ -747,7 +758,7 @@ import {
|
|
|
747
758
|
resolveSessionToken,
|
|
748
759
|
fingerprintApiKey,
|
|
749
760
|
init_users
|
|
750
|
-
} from "./cli-
|
|
761
|
+
} from "./cli-drr5v6av.js";
|
|
751
762
|
import {
|
|
752
763
|
isRbacEnabled,
|
|
753
764
|
decideAdmission,
|
|
@@ -818,7 +829,7 @@ import {
|
|
|
818
829
|
KvNamespaceSchema,
|
|
819
830
|
KvKeySchema,
|
|
820
831
|
init_types4
|
|
821
|
-
} from "./cli-
|
|
832
|
+
} from "./cli-nhrvpaj7.js";
|
|
822
833
|
import {
|
|
823
834
|
generateDefaultClaudeMd2,
|
|
824
835
|
generateDefaultSoulMd2,
|
|
@@ -829,7 +840,7 @@ import {
|
|
|
829
840
|
init_task_attachment_links,
|
|
830
841
|
contentSha256,
|
|
831
842
|
init_profile_sync
|
|
832
|
-
} from "./cli-
|
|
843
|
+
} from "./cli-a7v854rf.js";
|
|
833
844
|
import {
|
|
834
845
|
getSlackConfiguration,
|
|
835
846
|
init_config4
|
|
@@ -841,7 +852,7 @@ import {
|
|
|
841
852
|
import {
|
|
842
853
|
selectCredential,
|
|
843
854
|
init_credentials2
|
|
844
|
-
} from "./cli-
|
|
855
|
+
} from "./cli-g83s9ewh.js";
|
|
845
856
|
import {
|
|
846
857
|
findInterpolationTokens,
|
|
847
858
|
interpolate,
|
|
@@ -851,7 +862,7 @@ import {
|
|
|
851
862
|
init_registry3,
|
|
852
863
|
resolveTemplate,
|
|
853
864
|
init_resolver
|
|
854
|
-
} from "./cli-
|
|
865
|
+
} from "./cli-cm5yqn35.js";
|
|
855
866
|
import {
|
|
856
867
|
init_zod
|
|
857
868
|
} from "./cli-k5671be5.js";
|
|
@@ -890,7 +901,7 @@ import {
|
|
|
890
901
|
import {
|
|
891
902
|
init_package,
|
|
892
903
|
package_default
|
|
893
|
-
} from "./cli-
|
|
904
|
+
} from "./cli-e3r2neck.js";
|
|
894
905
|
import {
|
|
895
906
|
realtimeBus,
|
|
896
907
|
init_bus
|
|
@@ -925,8 +936,9 @@ import {
|
|
|
925
936
|
registerVolatileSecret,
|
|
926
937
|
registerSensitiveKeyName,
|
|
927
938
|
init_secret_scrubber
|
|
928
|
-
} from "./cli-
|
|
939
|
+
} from "./cli-1b7btd38.js";
|
|
929
940
|
import {
|
|
941
|
+
chatgptSubscriptionModelId,
|
|
930
942
|
isAlias,
|
|
931
943
|
parseAlias,
|
|
932
944
|
resolveAlias,
|
|
@@ -939,7 +951,7 @@ import {
|
|
|
939
951
|
openAICompatibleProviderIds,
|
|
940
952
|
claudeCatalogModelId,
|
|
941
953
|
init_src2
|
|
942
|
-
} from "./cli-
|
|
954
|
+
} from "./cli-5c4hjzne.js";
|
|
943
955
|
import {
|
|
944
956
|
__toESM,
|
|
945
957
|
__commonJS,
|
|
@@ -20308,6 +20320,9 @@ function isKnownCatalogModel(model, catalog) {
|
|
|
20308
20320
|
const id = model.trim().replace(CONTEXT_SUFFIX_RE, "");
|
|
20309
20321
|
if (!id)
|
|
20310
20322
|
return false;
|
|
20323
|
+
const subscriptionId = chatgptSubscriptionModelId(id);
|
|
20324
|
+
if (subscriptionId)
|
|
20325
|
+
return hasModel(catalog, "openai", subscriptionId);
|
|
20311
20326
|
const slash = id.indexOf("/");
|
|
20312
20327
|
if (slash > 0) {
|
|
20313
20328
|
const provider = id.slice(0, slash);
|
|
@@ -20864,7 +20879,7 @@ function startRetryPoller(registry, intervalMs = 5000) {
|
|
|
20864
20879
|
if (!waiting)
|
|
20865
20880
|
continue;
|
|
20866
20881
|
if (result.waitFor === "workflow.child.finished") {
|
|
20867
|
-
const { resumeFromChildRun } = await import("./resume-
|
|
20882
|
+
const { resumeFromChildRun } = await import("./resume-wd30wx23.js");
|
|
20868
20883
|
await resumeFromChildRun(step.id, registry);
|
|
20869
20884
|
}
|
|
20870
20885
|
} else {
|
|
@@ -21577,7 +21592,7 @@ var init_notify = __esm(() => {
|
|
|
21577
21592
|
}
|
|
21578
21593
|
}
|
|
21579
21594
|
case "slack": {
|
|
21580
|
-
const { getSlackApp } = await import("./app-
|
|
21595
|
+
const { getSlackApp } = await import("./app-909e97cr.js");
|
|
21581
21596
|
const app = getSlackApp();
|
|
21582
21597
|
if (!app) {
|
|
21583
21598
|
return {
|
|
@@ -22886,7 +22901,7 @@ async function dispatchScheduleTarget(schedule, extraTags = []) {
|
|
|
22886
22901
|
};
|
|
22887
22902
|
const runId = await startWorkflowExecution2(workflow, triggerData, registry, {
|
|
22888
22903
|
triggerType: "schedule",
|
|
22889
|
-
triggeredByAgentId: schedule
|
|
22904
|
+
triggeredByAgentId: await scheduledWorkflowPrincipal(schedule, workflow),
|
|
22890
22905
|
requestedByUserId: schedule.createdBy
|
|
22891
22906
|
});
|
|
22892
22907
|
await throwIfWorkflowNeedsSetup(schedule.id, [runId]);
|
|
@@ -22919,6 +22934,23 @@ async function dispatchScheduleTarget(schedule, extraTags = []) {
|
|
|
22919
22934
|
}
|
|
22920
22935
|
}
|
|
22921
22936
|
}
|
|
22937
|
+
async function scheduledWorkflowPrincipal(schedule, workflow) {
|
|
22938
|
+
if (schedule.createdByAgentId)
|
|
22939
|
+
return schedule.createdByAgentId;
|
|
22940
|
+
if (workflow.createdByAgentId)
|
|
22941
|
+
return;
|
|
22942
|
+
const seeded = await seededWorkflowState(workflow);
|
|
22943
|
+
if (seeded === "unseeded")
|
|
22944
|
+
return;
|
|
22945
|
+
if (seeded === "edited") {
|
|
22946
|
+
throw new Error(`Schedule "${schedule.name}" has no creator and the nodes or params of seeded workflow "${workflow.name}" were edited, so it will not run as the lead. Re-create the schedule as the agent it should run as.`);
|
|
22947
|
+
}
|
|
22948
|
+
const lead = await getLeadAgent2();
|
|
22949
|
+
if (!lead) {
|
|
22950
|
+
throw new Error(`Schedule "${schedule.name}" has no creator and the swarm has no lead to run its workflow as`);
|
|
22951
|
+
}
|
|
22952
|
+
return lead.id;
|
|
22953
|
+
}
|
|
22922
22954
|
async function throwIfWorkflowNeedsSetup(scheduleId, runIds) {
|
|
22923
22955
|
for (const runId of runIds) {
|
|
22924
22956
|
const run = await getWorkflowRun2(runId);
|
|
@@ -23164,6 +23196,7 @@ var init_scheduler = __esm(() => {
|
|
|
23164
23196
|
init_script_credential_broker();
|
|
23165
23197
|
init_db3();
|
|
23166
23198
|
init_run_credential();
|
|
23199
|
+
init_workflows_seeder();
|
|
23167
23200
|
init_telemetry();
|
|
23168
23201
|
init_workflows();
|
|
23169
23202
|
init_engine();
|
|
@@ -24240,6 +24273,7 @@ var init_sdk_allowlist = __esm(() => {
|
|
|
24240
24273
|
slack_downloadFile: "slack-download-file",
|
|
24241
24274
|
slack_delete: "slack-delete",
|
|
24242
24275
|
slack_update: "slack-update",
|
|
24276
|
+
slack_leaveThread: "slack-leave-thread",
|
|
24243
24277
|
chat_reply: "chat-reply",
|
|
24244
24278
|
chat_post: "chat-post",
|
|
24245
24279
|
chat_openDm: "chat-open-dm",
|
|
@@ -24882,7 +24916,7 @@ function setPreloadedTools(server, names) {
|
|
|
24882
24916
|
async function applyPreToolCall(name, args, requestInfo, inputSchema) {
|
|
24883
24917
|
if (requestInfo.callOrigin !== "mcp")
|
|
24884
24918
|
return { args };
|
|
24885
|
-
const dispatcher = await import("./dispatcher-
|
|
24919
|
+
const dispatcher = await import("./dispatcher-tx9hd1sv.js");
|
|
24886
24920
|
const result = await dispatcher.dispatchPre("pre.tool.call", { tool: name, args, requestInfo }, inputSchema ? {
|
|
24887
24921
|
validateModify: async (data) => {
|
|
24888
24922
|
const schema = normalizeObjectSchema(inputSchema) ?? inputSchema;
|
|
@@ -26946,6 +26980,10 @@ function runContext2(event, payload) {
|
|
|
26946
26980
|
agentId = stringField(payload, "workerAgentId");
|
|
26947
26981
|
subject = `task ${stringField(payload, "completedTask", "id") ?? "?"} ${stringField(payload, "status") ?? ""}`.trim();
|
|
26948
26982
|
break;
|
|
26983
|
+
case "pre.task.steer":
|
|
26984
|
+
agentId = stringField(payload, "sender", "agentId");
|
|
26985
|
+
subject = `${stringField(payload, "source") ?? "?"}: task ${stringField(payload, "task", "id") ?? "?"}`;
|
|
26986
|
+
break;
|
|
26949
26987
|
case "pre.slack.route":
|
|
26950
26988
|
case "post.slack.message":
|
|
26951
26989
|
subject = `channel ${stringField(payload, "channelId") ?? "?"}: ${snippet(field(payload, "text"), 60)}`;
|
|
@@ -32356,7 +32394,7 @@ async function loadAdapter(name, config, logger) {
|
|
|
32356
32394
|
});
|
|
32357
32395
|
}
|
|
32358
32396
|
case "slack": {
|
|
32359
|
-
const { createSlackAdapter } = await import("./index-
|
|
32397
|
+
const { createSlackAdapter } = await import("./index-pxn30mse.js");
|
|
32360
32398
|
return createSlackAdapter({
|
|
32361
32399
|
...base,
|
|
32362
32400
|
signingSecret: config.signingSecret ?? "",
|
|
@@ -32375,7 +32413,7 @@ async function loadAdapter(name, config, logger) {
|
|
|
32375
32413
|
});
|
|
32376
32414
|
}
|
|
32377
32415
|
case "teams": {
|
|
32378
|
-
const { createTeamsAdapter } = await import("./index-
|
|
32416
|
+
const { createTeamsAdapter } = await import("./index-fvzke5kx.js");
|
|
32379
32417
|
const { teamsWebhookVerifier, teamsToken } = getChatSdkTestHooks();
|
|
32380
32418
|
return createTeamsAdapter({
|
|
32381
32419
|
...base,
|
|
@@ -33980,6 +34018,8 @@ async function requestChatThreadSteering(args) {
|
|
|
33980
34018
|
});
|
|
33981
34019
|
return { task, result };
|
|
33982
34020
|
} catch (error) {
|
|
34021
|
+
if (error instanceof SteeringBlockedError)
|
|
34022
|
+
throw error;
|
|
33983
34023
|
const detail = error instanceof Error ? error.message : String(error);
|
|
33984
34024
|
const what = error instanceof SteeringRequestError ? "was refused" : "failed";
|
|
33985
34025
|
console.warn(scrubSecrets(`[chat-sdk] Steering task ${task.id} ${what} (${detail}); creating a follow-up task`));
|
|
@@ -34141,11 +34181,21 @@ async function handleChatInbound(thread, message, kind) {
|
|
|
34141
34181
|
addressed = unaddressed;
|
|
34142
34182
|
}
|
|
34143
34183
|
if (!immediate && attachments.length === 0 && text && !isChatThreadBuffered(thread.id)) {
|
|
34144
|
-
|
|
34145
|
-
|
|
34146
|
-
|
|
34147
|
-
|
|
34148
|
-
|
|
34184
|
+
let steering;
|
|
34185
|
+
try {
|
|
34186
|
+
steering = await requestChatThreadSteering({
|
|
34187
|
+
contextKey: chatSdkContextKey(thread.id),
|
|
34188
|
+
message: text,
|
|
34189
|
+
resolveSender: () => resolveChatSender(adapter, message.author.userId)
|
|
34190
|
+
});
|
|
34191
|
+
} catch (error) {
|
|
34192
|
+
if (!(error instanceof SteeringBlockedError))
|
|
34193
|
+
throw error;
|
|
34194
|
+
console.info(`[chat-sdk] ${thread.id}: steering blocked: ${error.reason}`);
|
|
34195
|
+
stopTypingKeepalive(thread.id);
|
|
34196
|
+
await setChatMessageReaction(adapter, thread.id, message.id, "failed");
|
|
34197
|
+
return;
|
|
34198
|
+
}
|
|
34149
34199
|
if (steering) {
|
|
34150
34200
|
console.log(`[chat-sdk] ${adapter} message steered task ${steering.task.id} (${steering.result.outcome})`);
|
|
34151
34201
|
await setChatMessageReaction(adapter, thread.id, message.id, "steered");
|
|
@@ -34488,6 +34538,7 @@ var init_inbound = __esm(() => {
|
|
|
34488
34538
|
init_db4();
|
|
34489
34539
|
init_session_labels();
|
|
34490
34540
|
init_identity();
|
|
34541
|
+
init_steering2();
|
|
34491
34542
|
init_unmapped_identities();
|
|
34492
34543
|
init_dispatcher();
|
|
34493
34544
|
init_resolver();
|
|
@@ -35830,7 +35881,7 @@ async function notifySlack(text) {
|
|
|
35830
35881
|
return;
|
|
35831
35882
|
}
|
|
35832
35883
|
try {
|
|
35833
|
-
const { getSlackApp } = await import("./app-
|
|
35884
|
+
const { getSlackApp } = await import("./app-909e97cr.js");
|
|
35834
35885
|
const app = getSlackApp();
|
|
35835
35886
|
if (!app) {
|
|
35836
35887
|
console.warn("[Jira webhook keepalive] Slack not available, cannot send notification");
|
|
@@ -35901,7 +35952,7 @@ async function deleteJiraWebhook(webhookId) {
|
|
|
35901
35952
|
console.log(`[Jira webhook keepalive] Deleted webhook id=${webhookId}`);
|
|
35902
35953
|
}
|
|
35903
35954
|
async function overwriteWebhookIds(next) {
|
|
35904
|
-
const { getDbClient } = await import("./db-
|
|
35955
|
+
const { getDbClient } = await import("./db-9dv0g1ab.js");
|
|
35905
35956
|
await getDbClient().transaction(async (tx) => {
|
|
35906
35957
|
const row = await tx.get("SELECT metadata FROM oauth_apps WHERE provider = 'jira'");
|
|
35907
35958
|
if (!row) {
|
|
@@ -109374,7 +109425,7 @@ async function reloadGlobalConfigsAndIntegrations() {
|
|
|
109374
109425
|
return runWithoutRequestAuth(() => reloadGlobalConfigsAndIntegrationsInner());
|
|
109375
109426
|
}
|
|
109376
109427
|
async function reloadGlobalConfigsAndIntegrationsInner() {
|
|
109377
|
-
const { getEmbeddingProvider, resetEmbeddingProvider } = await import("./index-
|
|
109428
|
+
const { getEmbeddingProvider, resetEmbeddingProvider } = await import("./index-vdygbq10.js");
|
|
109378
109429
|
const wasEmbeddingsConfigured = getEmbeddingProvider().isConfigured();
|
|
109379
109430
|
const updated = await loadGlobalConfigsIntoEnv(true);
|
|
109380
109431
|
await syncTelemetryEnabled("settings").catch((err) => {
|
|
@@ -109390,7 +109441,7 @@ async function reloadGlobalConfigsAndIntegrationsInner() {
|
|
|
109390
109441
|
integrations.push("embeddings");
|
|
109391
109442
|
}
|
|
109392
109443
|
if (isEmbeddingsConfigured) {
|
|
109393
|
-
import("./embedding-space-
|
|
109444
|
+
import("./embedding-space-ny1e2940.js").then(({ runEmbeddingMaintenance }) => runEmbeddingMaintenance({ backfill: !wasEmbeddingsConfigured })).catch((err) => {
|
|
109394
109445
|
console.error("[config-reload] embedding maintenance failed (non-fatal):", err);
|
|
109395
109446
|
});
|
|
109396
109447
|
}
|
|
@@ -119739,6 +119790,7 @@ var init_kv_reserved_namespaces = __esm(() => {
|
|
|
119739
119790
|
["heartbeat-checklist", "namespace is reserved for heartbeat checklist receipts"],
|
|
119740
119791
|
["worker", "namespace is reserved for worker nudges"],
|
|
119741
119792
|
["slack-external-alert", "namespace is reserved for Slack external channel alerts"],
|
|
119793
|
+
["slack-left-thread", "namespace is reserved for left Slack threads; use slack-leave-thread"],
|
|
119742
119794
|
[
|
|
119743
119795
|
"session-labels",
|
|
119744
119796
|
"namespace is reserved for session source labels; GET /api/session-tree returns them"
|
|
@@ -132687,10 +132739,27 @@ function jaccardSimilarity(a, b) {
|
|
|
132687
132739
|
const union = new Set([...wordsA, ...wordsB]).size;
|
|
132688
132740
|
return intersection / union;
|
|
132689
132741
|
}
|
|
132742
|
+
function matchSimilarTask(existing, opts) {
|
|
132743
|
+
const similarity = jaccardSimilarity(existing.task, opts.taskDescription);
|
|
132744
|
+
if (similarity > HIGH_SIMILARITY_THRESHOLD) {
|
|
132745
|
+
return {
|
|
132746
|
+
task: existing,
|
|
132747
|
+
reason: `similar task description (${(similarity * 100).toFixed(0)}% match)`
|
|
132748
|
+
};
|
|
132749
|
+
}
|
|
132750
|
+
if (opts.targetAgentId && existing.agentId === opts.targetAgentId && similarity > SAME_AGENT_SIMILARITY_THRESHOLD) {
|
|
132751
|
+
return {
|
|
132752
|
+
task: existing,
|
|
132753
|
+
reason: `similar task to same agent (${(similarity * 100).toFixed(0)}% match)`
|
|
132754
|
+
};
|
|
132755
|
+
}
|
|
132756
|
+
return null;
|
|
132757
|
+
}
|
|
132690
132758
|
async function findDuplicateTask(opts) {
|
|
132691
132759
|
const recentTasks = await findRecentSimilarTasks2({
|
|
132692
132760
|
creatorAgentId: opts.creatorAgentId,
|
|
132693
|
-
windowMinutes: opts.windowMinutes ?? 10
|
|
132761
|
+
windowMinutes: opts.windowMinutes ?? 10,
|
|
132762
|
+
limit: DEDUP_SCAN_LIMIT
|
|
132694
132763
|
});
|
|
132695
132764
|
for (const existing of recentTasks) {
|
|
132696
132765
|
if (opts.slackChannelId && opts.slackThreadTs && existing.slackChannelId === opts.slackChannelId && existing.slackThreadTs === opts.slackThreadTs) {
|
|
@@ -132699,25 +132768,77 @@ async function findDuplicateTask(opts) {
|
|
|
132699
132768
|
reason: `same Slack thread (${opts.slackChannelId}/${opts.slackThreadTs})`
|
|
132700
132769
|
};
|
|
132701
132770
|
}
|
|
132702
|
-
const
|
|
132703
|
-
if (
|
|
132704
|
-
return
|
|
132705
|
-
|
|
132706
|
-
|
|
132707
|
-
|
|
132708
|
-
|
|
132709
|
-
|
|
132771
|
+
const match = matchSimilarTask(existing, opts);
|
|
132772
|
+
if (match)
|
|
132773
|
+
return match;
|
|
132774
|
+
}
|
|
132775
|
+
return null;
|
|
132776
|
+
}
|
|
132777
|
+
var HIGH_SIMILARITY_THRESHOLD = 0.8, SAME_AGENT_SIMILARITY_THRESHOLD = 0.6, DEDUP_SCAN_LIMIT = 500;
|
|
132778
|
+
var init_task_dedup = __esm(() => {
|
|
132779
|
+
init_db4();
|
|
132780
|
+
});
|
|
132781
|
+
|
|
132782
|
+
// src/tasks/follow-up-redelegation-guard.ts
|
|
132783
|
+
async function followUpThreadForSourceTask(sourceTaskId) {
|
|
132784
|
+
if (!sourceTaskId)
|
|
132785
|
+
return null;
|
|
132786
|
+
const sourceTask = await getTaskById2(sourceTaskId);
|
|
132787
|
+
if (sourceTask?.taskType !== "follow-up" || !sourceTask.slackChannelId || !sourceTask.slackThreadTs) {
|
|
132788
|
+
return null;
|
|
132789
|
+
}
|
|
132790
|
+
return {
|
|
132791
|
+
channelId: sourceTask.slackChannelId,
|
|
132792
|
+
threadTs: sourceTask.slackThreadTs,
|
|
132793
|
+
userId: sourceTask.slackUserId
|
|
132794
|
+
};
|
|
132795
|
+
}
|
|
132796
|
+
async function findMatchingCompletedWork(args) {
|
|
132797
|
+
let before;
|
|
132798
|
+
for (;; ) {
|
|
132799
|
+
const page = await findCompletedTasksInThread2(args.channelId, args.threadTs, FOLLOW_UP_SAME_WORK_WINDOW_MINUTES, FOLLOW_UP_SAME_WORK_PAGE_SIZE, before);
|
|
132800
|
+
for (const existing of page) {
|
|
132801
|
+
const match = matchSimilarTask(existing, args);
|
|
132802
|
+
if (match)
|
|
132803
|
+
return match;
|
|
132804
|
+
}
|
|
132805
|
+
const last = page.at(-1);
|
|
132806
|
+
if (!last || page.length < FOLLOW_UP_SAME_WORK_PAGE_SIZE)
|
|
132807
|
+
return null;
|
|
132808
|
+
before = { lastUpdatedAt: last.lastUpdatedAt, id: last.id };
|
|
132809
|
+
}
|
|
132810
|
+
}
|
|
132811
|
+
async function evaluateFollowUpRedelegation(args) {
|
|
132812
|
+
const { channelId, threadTs } = args;
|
|
132813
|
+
const match = await findMatchingCompletedWork(args);
|
|
132814
|
+
if (match) {
|
|
132815
|
+
const existing = match.task;
|
|
132816
|
+
const [cancelled, failed] = await Promise.all([
|
|
132817
|
+
findRecentCancelledTaskInThread2(channelId, threadTs, FOLLOW_UP_SAME_WORK_WINDOW_MINUTES),
|
|
132818
|
+
findRecentFailedTaskInThread2(channelId, threadTs, FOLLOW_UP_SAME_WORK_WINDOW_MINUTES)
|
|
132819
|
+
]);
|
|
132820
|
+
const completedAt = new Date(existing.lastUpdatedAt).getTime();
|
|
132821
|
+
const interruptedLater = [cancelled, failed].some((t) => t && new Date(t.lastUpdatedAt).getTime() > completedAt);
|
|
132822
|
+
if (!interruptedLater) {
|
|
132710
132823
|
return {
|
|
132711
|
-
|
|
132712
|
-
|
|
132824
|
+
rule: "same-work",
|
|
132825
|
+
message: `Blocked by the follow-up re-delegation guard (same-work rule): this task matches completed task ${existing.id.slice(0, 8)} in this Slack thread (${match.reason}), so the work was already done. If it must run again, pass allowRedelegation: true.`
|
|
132713
132826
|
};
|
|
132714
132827
|
}
|
|
132715
132828
|
}
|
|
132829
|
+
const dispatched = await countAgentDispatchesInThread2(channelId, threadTs, args.creatorAgentId, FOLLOW_UP_DISPATCH_WINDOW_MINUTES);
|
|
132830
|
+
if (dispatched >= FOLLOW_UP_DISPATCH_CAP) {
|
|
132831
|
+
return {
|
|
132832
|
+
rule: "loop-cap",
|
|
132833
|
+
message: `Blocked by the follow-up re-delegation guard (loop-cap rule): you already dispatched ${dispatched} times into this Slack thread in the last ${FOLLOW_UP_DISPATCH_WINDOW_MINUTES / 60} hours (cap ${FOLLOW_UP_DISPATCH_CAP}; a durable script run counts once). If this is a deliberate next step and not a re-delegation loop, pass allowRedelegation: true.`
|
|
132834
|
+
};
|
|
132835
|
+
}
|
|
132716
132836
|
return null;
|
|
132717
132837
|
}
|
|
132718
|
-
var
|
|
132719
|
-
var
|
|
132838
|
+
var FOLLOW_UP_SAME_WORK_WINDOW_MINUTES = 2880, FOLLOW_UP_DISPATCH_CAP = 10, FOLLOW_UP_DISPATCH_WINDOW_MINUTES = 360, FOLLOW_UP_SAME_WORK_PAGE_SIZE = 200;
|
|
132839
|
+
var init_follow_up_redelegation_guard = __esm(() => {
|
|
132720
132840
|
init_db4();
|
|
132841
|
+
init_task_dedup();
|
|
132721
132842
|
});
|
|
132722
132843
|
|
|
132723
132844
|
// src/tools/send-task.ts
|
|
@@ -132761,6 +132882,7 @@ async function sendTaskHandler(ctx, {
|
|
|
132761
132882
|
effort,
|
|
132762
132883
|
profile,
|
|
132763
132884
|
allowDuplicate,
|
|
132885
|
+
allowRedelegation,
|
|
132764
132886
|
slackChannelId,
|
|
132765
132887
|
slackThreadTs,
|
|
132766
132888
|
slackUserId,
|
|
@@ -132780,6 +132902,7 @@ async function sendTaskHandler(ctx, {
|
|
|
132780
132902
|
const requestedLeadOnly = ctx.kind === "user" ? false : leadOnly;
|
|
132781
132903
|
const requestedCapabilities = ctx.kind === "user" ? undefined : requiredCapabilities;
|
|
132782
132904
|
const requestedAllowDuplicate = ctx.kind === "user" ? false : allowDuplicate;
|
|
132905
|
+
const requestedAllowRedelegation = ctx.kind === "user" ? false : allowRedelegation;
|
|
132783
132906
|
const requestedOverrideSlackContext = ctx.kind === "user" ? false : overrideSlackContext;
|
|
132784
132907
|
if (requestedAgentId !== undefined && requestedRoutingReason === undefined) {
|
|
132785
132908
|
return toolErr("routingReason is required when agentId is supplied.");
|
|
@@ -132944,7 +133067,7 @@ async function sendTaskHandler(ctx, {
|
|
|
132944
133067
|
if (ctx.kind === "user" && (taskOptions.agentId !== userLead.id || taskOptions.offeredTo !== undefined)) {
|
|
132945
133068
|
return toolErr("A pre.task.create extension cannot change the user task's Lead assignment.");
|
|
132946
133069
|
}
|
|
132947
|
-
const evaluateDedupGuards = async () => {
|
|
133070
|
+
const evaluateDedupGuards = async (logOverride) => {
|
|
132948
133071
|
const existingTrackerWork = await findExistingLinearTrackerContextWork2(effectiveParentTask?.contextKey, effectiveParentTask?.id);
|
|
132949
133072
|
if (existingTrackerWork) {
|
|
132950
133073
|
const msg = `Skipped: Linear tracker contextKey ${effectiveParentTask?.contextKey} already has ${existingTrackerWork.reason === "active_task" ? "active task" : "linked open PR"} ${existingTrackerWork.task.id.slice(0, 8)}.`;
|
|
@@ -132964,25 +133087,24 @@ async function sendTaskHandler(ctx, {
|
|
|
132964
133087
|
};
|
|
132965
133088
|
}
|
|
132966
133089
|
}
|
|
132967
|
-
|
|
132968
|
-
|
|
132969
|
-
|
|
132970
|
-
|
|
132971
|
-
|
|
132972
|
-
|
|
132973
|
-
|
|
132974
|
-
|
|
132975
|
-
|
|
132976
|
-
|
|
132977
|
-
|
|
132978
|
-
|
|
132979
|
-
|
|
132980
|
-
}
|
|
133090
|
+
const followUpThread = creatorAgentId ? await followUpThreadForSourceTask(sourceTaskId) : null;
|
|
133091
|
+
if (followUpThread && creatorAgentId) {
|
|
133092
|
+
const blocked = await evaluateFollowUpRedelegation({
|
|
133093
|
+
...followUpThread,
|
|
133094
|
+
creatorAgentId,
|
|
133095
|
+
taskDescription,
|
|
133096
|
+
targetAgentId: taskOptions.agentId ?? taskOptions.offeredTo
|
|
133097
|
+
});
|
|
133098
|
+
if (blocked && !requestedAllowRedelegation) {
|
|
133099
|
+
return { ok: false, message: blocked.message };
|
|
133100
|
+
}
|
|
133101
|
+
if (blocked && logOverride) {
|
|
133102
|
+
console.log(`[send-task] follow-up re-delegation override: rule=${blocked.rule} creatorAgentId=${creatorAgentId} sourceTaskId=${sourceTaskId} thread=${followUpThread.channelId}/${followUpThread.threadTs}`);
|
|
132981
133103
|
}
|
|
132982
133104
|
}
|
|
132983
133105
|
return null;
|
|
132984
133106
|
};
|
|
132985
|
-
const guard = await evaluateDedupGuards();
|
|
133107
|
+
const guard = await evaluateDedupGuards(true);
|
|
132986
133108
|
if (guard) {
|
|
132987
133109
|
const guardData = {
|
|
132988
133110
|
yourAgentId: creatorAgentId,
|
|
@@ -132991,7 +133113,7 @@ async function sendTaskHandler(ctx, {
|
|
|
132991
133113
|
return guard.ok ? toolOk(guard.message, { data: guardData }) : toolErr(guard.message, { data: guardData });
|
|
132992
133114
|
}
|
|
132993
133115
|
const created = getDbClient2().transaction(async () => {
|
|
132994
|
-
const raced = await evaluateDedupGuards();
|
|
133116
|
+
const raced = await evaluateDedupGuards(false);
|
|
132995
133117
|
if (raced)
|
|
132996
133118
|
return { success: raced.ok, message: raced.message, task: raced.task };
|
|
132997
133119
|
if (isLinearTrackerContextKey2(effectiveParentTask?.contextKey)) {
|
|
@@ -133096,6 +133218,7 @@ var init_send_task = __esm(() => {
|
|
|
133096
133218
|
init_model_validation();
|
|
133097
133219
|
init_apply_task_create();
|
|
133098
133220
|
init_rbac();
|
|
133221
|
+
init_follow_up_redelegation_guard();
|
|
133099
133222
|
init_slack_routing();
|
|
133100
133223
|
init_task_dedup();
|
|
133101
133224
|
init_task_tool_ctx();
|
|
@@ -133125,7 +133248,8 @@ var init_send_task = __esm(() => {
|
|
|
133125
133248
|
allowCustomModel: boolean().optional().describe("Accept a `model` the model catalog does not list. Without it an unknown model id is rejected. Only for ids the catalog cannot know yet (a fresh launch, a private deployment)."),
|
|
133126
133249
|
effort: ReasoningEffortSchema.optional().describe("Reasoning effort for this task: 'off', 'low', 'medium', 'high', 'xhigh', or 'max'. If omitted, the assignee's REASONING_EFFORT_OVERRIDE/default applies."),
|
|
133127
133250
|
profile: string2().trim().min(1).optional().describe("Model profile name (see list-model-profiles): a named harness + model + effort, applied when the task is claimed. Must run on the assignee's harness. Exclusive with model and modelTier. A set `effort` still wins over the profile's."),
|
|
133128
|
-
allowDuplicate: boolean().default(false).describe("If true, skip duplicate detection and create the task even if a similar one exists."),
|
|
133251
|
+
allowDuplicate: boolean().default(false).describe("If true, skip duplicate detection and create the task even if a similar one exists. Does not bypass the follow-up re-delegation guard; see allowRedelegation."),
|
|
133252
|
+
allowRedelegation: boolean().default(false).describe("Only matters when you call send-task from a follow-up task in a Slack thread. Such a dispatch is blocked when it repeats a task already completed in that thread (same-work rule, unless a task there was cancelled or failed after that completion), or when you already dispatched 10 tasks into the thread in the last 6 hours (loop-cap rule). Set true to dispatch anyway; the override is logged. Use it only for deliberate re-runs or long chains, never to retry a block you have not read."),
|
|
133129
133253
|
slackChannelId: string2().optional().describe("Slack channel ID to post progress updates to. Use this to propagate Slack context when delegating from a Slack thread."),
|
|
133130
133254
|
slackThreadTs: string2().optional().describe("Slack thread timestamp. Required with slackChannelId for thread-level updates."),
|
|
133131
133255
|
slackUserId: string2().optional().describe("Slack user ID of the original requester."),
|
|
@@ -135057,6 +135181,78 @@ var init_slack_invite_to_channel = __esm(() => {
|
|
|
135057
135181
|
init_utils();
|
|
135058
135182
|
});
|
|
135059
135183
|
|
|
135184
|
+
// src/tools/slack-leave-thread.ts
|
|
135185
|
+
var registerSlackLeaveThreadTool = (server) => {
|
|
135186
|
+
createToolRegistrar(server)("slack-leave-thread", {
|
|
135187
|
+
title: "Leave a Slack thread",
|
|
135188
|
+
description: "Stop following a Slack thread until someone @mentions the bot there again. Messages in the thread that do not @mention the bot are then ignored, with no task and no reply. Posts nothing to Slack. Pass taskId for the thread of your Slack-originated task, or (lead only) channelId and threadTs.",
|
|
135189
|
+
annotations: { openWorldHint: true, idempotentHint: true },
|
|
135190
|
+
inputSchema: object2({
|
|
135191
|
+
taskId: uuid().optional().describe("A task whose Slack thread to leave."),
|
|
135192
|
+
channelId: string2().min(1).optional().describe("The Slack channel ID of the thread."),
|
|
135193
|
+
threadTs: string2().min(1).optional().describe("Timestamp of the thread root (dotted, 'p' deep-link, or full permalink URL).")
|
|
135194
|
+
}),
|
|
135195
|
+
outputSchema: swarmToolOutputSchema({
|
|
135196
|
+
channelId: string2().optional(),
|
|
135197
|
+
threadTs: string2().optional()
|
|
135198
|
+
})
|
|
135199
|
+
}, async ({ taskId, channelId, threadTs }, requestInfo, _meta) => {
|
|
135200
|
+
if (isSlackLeaveThreadDisabled()) {
|
|
135201
|
+
return toolErr(`slack-leave-thread is disabled by ${SLACK_LEAVE_THREAD_DISABLE}.`);
|
|
135202
|
+
}
|
|
135203
|
+
if (!requestInfo.agentId) {
|
|
135204
|
+
return toolErr("Agent ID not found.");
|
|
135205
|
+
}
|
|
135206
|
+
const agent = await getAgentById2(requestInfo.agentId);
|
|
135207
|
+
if (!agent) {
|
|
135208
|
+
return toolErr("Agent not found.");
|
|
135209
|
+
}
|
|
135210
|
+
const mayLeaveAnyThread = can({
|
|
135211
|
+
principal: { kind: "agent", agentId: agent.id, isLead: agent.isLead },
|
|
135212
|
+
verb: "integration.slack.post",
|
|
135213
|
+
resource: { kind: "none" },
|
|
135214
|
+
source: "mcp"
|
|
135215
|
+
}).allow;
|
|
135216
|
+
let slackChannelId;
|
|
135217
|
+
let slackThreadTs;
|
|
135218
|
+
if (taskId) {
|
|
135219
|
+
if (channelId || threadTs) {
|
|
135220
|
+
return toolErr("Provide either taskId or channelId and threadTs, not both.");
|
|
135221
|
+
}
|
|
135222
|
+
const task = await getTaskById2(taskId);
|
|
135223
|
+
if (!task) {
|
|
135224
|
+
return toolErr("Task not found.");
|
|
135225
|
+
}
|
|
135226
|
+
if (!mayLeaveAnyThread && (task.agentId !== agent.id || task.source !== "slack" || !task.slackTriggerMessageTs)) {
|
|
135227
|
+
return toolErr("Only a lead or the agent assigned a Slack-originated task can leave its thread.");
|
|
135228
|
+
}
|
|
135229
|
+
slackChannelId = task.slackChannelId;
|
|
135230
|
+
slackThreadTs = task.slackThreadTs;
|
|
135231
|
+
} else if (channelId && threadTs) {
|
|
135232
|
+
if (!mayLeaveAnyThread) {
|
|
135233
|
+
return toolErr("Leaving a thread by channelId and threadTs requires lead privileges.");
|
|
135234
|
+
}
|
|
135235
|
+
slackChannelId = channelId;
|
|
135236
|
+
slackThreadTs = parseSlackTs(threadTs);
|
|
135237
|
+
} else {
|
|
135238
|
+
return toolErr("Must provide taskId, or both channelId and threadTs.");
|
|
135239
|
+
}
|
|
135240
|
+
if (!slackChannelId || !slackThreadTs) {
|
|
135241
|
+
return toolErr("No Slack thread context available.");
|
|
135242
|
+
}
|
|
135243
|
+
await leaveSlackThread(slackChannelId, slackThreadTs, { agentId: agent.id });
|
|
135244
|
+
return toolOk(`Left Slack thread ${slackChannelId}/${slackThreadTs}. Messages there are ignored until someone @mentions the bot.`, { data: { channelId: slackChannelId, threadTs: slackThreadTs } });
|
|
135245
|
+
});
|
|
135246
|
+
};
|
|
135247
|
+
var init_slack_leave_thread = __esm(() => {
|
|
135248
|
+
init_zod();
|
|
135249
|
+
init_db4();
|
|
135250
|
+
init_rbac();
|
|
135251
|
+
init_left_threads();
|
|
135252
|
+
init_message_text();
|
|
135253
|
+
init_utils();
|
|
135254
|
+
});
|
|
135255
|
+
|
|
135060
135256
|
// src/tools/slack-list-channels.ts
|
|
135061
135257
|
var SlackChannelSchema, registerSlackListChannelsTool = (server) => {
|
|
135062
135258
|
createToolRegistrar(server)("slack-list-channels", {
|
|
@@ -136116,7 +136312,7 @@ async function steerTaskHandler(ctx, { taskId, message, mode = "queue", onUnsupp
|
|
|
136116
136312
|
message,
|
|
136117
136313
|
mode,
|
|
136118
136314
|
onUnsupported,
|
|
136119
|
-
source: "mcp",
|
|
136315
|
+
source: ctx.kind === "owner" && ctx.requestInfo?.callOrigin === "script-sdk" ? "script" : "mcp",
|
|
136120
136316
|
createdByKind: ctx.kind === "owner" ? "agent" : "user",
|
|
136121
136317
|
createdByAgentId: ctx.kind === "owner" ? ctx.agentId : undefined,
|
|
136122
136318
|
createdByUserId: ctx.kind === "user" ? ctx.userId : undefined
|
|
@@ -136135,7 +136331,7 @@ async function steerTaskHandler(ctx, { taskId, message, mode = "queue", onUnsupp
|
|
|
136135
136331
|
var steerTaskInputSchema, steerTaskUserInputSchema, steerTaskOutputSchema, registerSteerTaskTool = (server) => {
|
|
136136
136332
|
createToolRegistrar(server)("steer-task", {
|
|
136137
136333
|
title: "Steer Task",
|
|
136138
|
-
description: 'Send a message to a task that is already running. `mode:"steer"` is honored on pi, claude-managed, codex and
|
|
136334
|
+
description: 'Send a message to a task that is already running. `mode:"steer"` is honored on pi, claude-managed, codex, cursor and fx (fx supports steer only); claude, devin, opencode and amp support queue only (amp delivery lands at the next tool result). Pass `onUnsupported:"fail"` to get an error instead of a downgrade.',
|
|
136139
136335
|
annotations: { destructiveHint: true },
|
|
136140
136336
|
inputSchema: steerTaskInputSchema,
|
|
136141
136337
|
outputSchema: steerTaskOutputSchema
|
|
@@ -137371,7 +137567,7 @@ async function emitBudgetRefusalSideEffects(ctx, inserted) {
|
|
|
137371
137567
|
console.warn(`[budget-refusal-notify] Failed to create follow-up task for budget refusal (task=${ctx.task.id.slice(0, 8)}): ${err}`);
|
|
137372
137568
|
}
|
|
137373
137569
|
}
|
|
137374
|
-
import("./event-bus-
|
|
137570
|
+
import("./event-bus-g0ka3pbw.js").then(({ workflowEventBus }) => {
|
|
137375
137571
|
workflowEventBus.emit("task.budget_refused", {
|
|
137376
137572
|
taskId: ctx.task.id,
|
|
137377
137573
|
agentId: ctx.agentId,
|
|
@@ -139660,6 +139856,9 @@ async function createServer(opts = {}) {
|
|
|
139660
139856
|
registerSlackDownloadFileTool(server);
|
|
139661
139857
|
registerSlackDeleteTool(server);
|
|
139662
139858
|
registerSlackUpdateTool(server);
|
|
139859
|
+
if (opts.fullSurface === true || !isSlackLeaveThreadDisabled()) {
|
|
139860
|
+
registerSlackLeaveThreadTool(server);
|
|
139861
|
+
}
|
|
139663
139862
|
}
|
|
139664
139863
|
if (hasCapability("prompt-templates")) {
|
|
139665
139864
|
registerListPromptTemplatesTool(server);
|
|
@@ -139717,6 +139916,7 @@ var init_server = __esm(() => {
|
|
|
139717
139916
|
init_resolver();
|
|
139718
139917
|
init_rbac();
|
|
139719
139918
|
init_config4();
|
|
139919
|
+
init_left_threads();
|
|
139720
139920
|
init_accept_steer();
|
|
139721
139921
|
init_app_action_run();
|
|
139722
139922
|
init_app_diff();
|
|
@@ -139805,6 +140005,7 @@ var init_server = __esm(() => {
|
|
|
139805
140005
|
init_slack_delete();
|
|
139806
140006
|
init_slack_download_file();
|
|
139807
140007
|
init_slack_invite_to_channel();
|
|
140008
|
+
init_slack_leave_thread();
|
|
139808
140009
|
init_slack_list_channels();
|
|
139809
140010
|
init_slack_post();
|
|
139810
140011
|
init_slack_read();
|
|
@@ -139871,4 +140072,4 @@ var init_server = __esm(() => {
|
|
|
139871
140072
|
loggedToolAllowlistWarnings = new Set;
|
|
139872
140073
|
});
|
|
139873
140074
|
|
|
139874
|
-
export { DEFAULT_NEGOTIATED_PROTOCOL_VERSION, SUPPORTED_PROTOCOL_VERSIONS, isJSONRPCRequest, isJSONRPCResultResponse, isJSONRPCErrorResponse, JSONRPCMessageSchema, isInitializeRequest, init_types, McpServer, init_mcp, repointTrackerSyncBySwarmId, init_tracker, isRuntimePoolWakeable, isAgentReachable, init_reachability, referencedBundlePaths, skillDirs, init_manifest_format, TaskCreationBlockedError, init_errors2, resolveIdentity, renderIdentity, init_identity, recordUnmappedIdentity, init_unmapped_identities, MAX_TASK_ATTACHMENT_BYTES, recordTaskAttachmentUpload, scopeFromAttachment, backingProviderId, init_task_attachment_store, taskModelPin, resumedTaskModelSelection, init_model_pin, listHarnessModelSupport, recordHarnessModelSupport, agentRanModel, getAgentHarnessCliVersion, setAgentHarnessCliVersion, init_harness_model_support, sanitizeModelTierOverrides, parseModelTierOverridesHeader, setAgentModelTierOverrides, previewModelTiers, recordClaimModelResolution, init_model_tier_resolution, harnessModelErrorFor, poolTaskRunsOnHarness, explicitModelError, explicitModelErrorForAgent, init_model_validation, stripSiblingBlock, init_sibling_block, createTaskWithSiblingAwareness, init_sibling_awareness, transcribeAudioNotes, init_transcription, init_templates, buildEffectiveText, bufferedFileFailures, fetchSlackFiles, createSlackTaskWithFiles, notifySlackFileFailures, init_inbound_files, isAddressedToOtherUser, broadcastMatches, routeMessage, extractTaskFromMessage, init_router, extractSlackMessageText, slackInboundMessageText, collectSlackMessageFiles, init_message_text, createAdditiveBuffer, init_additive_buffer, recoverIncompleteRuns, init_recovery, handleWebhookTrigger, verifyHmacSignature, WebhookError, init_triggers, snapshotAndUpdateWorkflow, init_version, RawLlmConfigSchema, RawLlmOutputSchema, executeRawLlm, init_raw_llm, getExecutorRegistry2, initWorkflows2, init_workflows, dispatchScheduleTarget, calculateNextRun2, startScheduler2, stopScheduler2, runScheduleNow2, init_scheduler, ExtensionAssetConflictError, init_assets, ExtensionOwnershipError, getExtensionFiles, getExtensionById, getExtensionByName, listExtensions, listExtensionVersions, updateExtensionMeta, listExtensionRuns, init_db, SDK_ALLOWLIST, mcpToolNameForSdkMethod, init_sdk_allowlist, MCP_OVERFLOW_NAMESPACE, mcpOverflowAuthError, init_kv_overflow, hasKvViewArgs, resolveKvView, init_kv_view, toolErr, createToolRegistrar, init_utils, handleMcpBridge, init_mcp_bridge, Redacted, init_redacted, SCRIPT_SDK_RESPONSE_LIMIT_BYTES, readScriptSdkJsonResponse, init_response_limit, ExtensionConfigError, init_loader, ExtensionLifecycleError, setExtensionLoopbackBaseUrl, enableExtension, disableExtension, activateVersion, ExtensionAssetsInvalidError, installExtensionWithAssets, uninstallExtension, reloadExtension, loadEnabledExtensions, stopExtensionRuntime, init_lifecycle, ExtensionAbortedError2, isRegistered2, isExtensionAgentId2, getExtensionBridgeToken2, resolveBridgeCallOrigin2, extensionIdForAgent2, runContext2, registerLoaded2, unregister2, listRegistered2, dispatchPre2, dispatchPost2, init_dispatcher, REBOOT_RETRY_PIN_TAG2, getPinCandidateAgent2, resolveLeadOnlyRecoveryAssignment2, getResumeGeneration2, getNextResumeGeneration2, inheritedModelSelection2, createWorkerTaskFollowUp2, createResumeFollowUp2, createRerouteDecisionTask2, createPoolStarvationDecisionTask2, init_worker_follow_up, isGitHubEnabled, initGitHub, verifyWebhookSignature, isAgentMailEnabled, initAgentMail, verifyAgentMailWebhook, isInboxAllowed, isSenderAllowed, handleMessageReceived, init_agentmail, isAzureDevOpsEnabled, initAzureDevOps, verifyAzureDevOpsWebhook, isAzureDevOpsUrl, canonicalAzureDevOpsRepoUrl, parseAzureDevOpsRepoUrl, init_azure_devops, createdPullRequestOf, commentedPayloadOf, handlePullRequestCreated, handlePullRequestCommented, handleWorkItemCreated, handleWorkItemUpdated, handleWorkItemCommented, handleWorkItemDeleted, handleWorkItemRestored, initAzureDevOpsOutbound, init_azure_devops2, enqueueAuditRow, enqueueAdmissionRow, flushAuditBuffer, startAuditWriter, stopAuditWriter, startAuditGc, stopAuditGc, init_rbac_audit, getTelemetryIngestAnchor, init_telemetry_ingest_anchor, initApiTelemetry, syncTelemetryEnabled, init_telemetry_enable, isBitbucketEnabled, initBitbucket, verifyBitbucketWebhook, isDuplicateDelivery, markDeliveryProcessed, pullRequestEventOf, pullRequestCommentEventOf, handlePullRequestCreated2, handlePullRequestCommentCreated, handlePullRequestClosed, init_bitbucket, handlePullRequest, handleIssue, handleComment, handlePullRequestReview, handleCheckRun, handleCheckSuite, handleWorkflowRun, init_github, isGitLabEnabled, initGitLab, verifyGitLabWebhook, handleMergeRequest, handleIssue2, handleNote, handlePipeline, init_gitlab, isChatSdkEnabled, getChatSdkConfig, init_config, errorMessage, init_logger, resolveAdapterApiUrl, init_adapters, trackBackground, init_background, TelegramBotApiError, callTelegramBotApi, init_telegram_api, isTrustedTeamsServiceUrl, init_teams_origin, getSessionLabels, rememberSessionLabel, init_session_labels, isChatSdkStopping, startChatSdk, getChatInstance, isChatAdapterConfigured, getChatSdkHealth, stopChatSdk, init_runtime, getJiraMetadata, updateJiraMetadata, clearJiraMetadata, init_metadata, registerJiraWebhook, deleteJiraWebhook, init_webhook_lifecycle, isJiraEnabled, initJira, init_app, handleJiraWebhook, init_webhook, init_jira, handleAgentSessionEvent, handleIssueUpdate, handleIssueDelete, handleAgentSessionPrompted, init_sync, isLinearEnabled, initLinear, init_app2, init_linear, init_slack, isCookieSafePageId, extractPageSession, extractLegacyPageSession, extractAndVerifyCookie, pageSessionSetCookies, init_page_session, resolveHttpRequestAuth, init_auth, getDeploymentEnvValue, loadGlobalConfigsIntoEnv, reloadGlobalConfigsAndIntegrations, scheduleIntegrationsReload, handleCore, init_core, MCP_MAX_TOOL_INPUT_ELEMENTS, MCP_MAX_REQUEST_BODY_BYTES, init_mcp_limits, userCtx, init_task_tool_ctx, requestPrincipal, agentFirstPrincipal, requireAuthKind, rejectGuest, init_request_principal, handleApps, init_apps, cancelApprovalRequest, cancelApprovalRequestAndRun, init_approval_cancel, getUserCommsPrefs, init_requester_comms, getTaskDetailsInputSchema, getTaskDetailsOutputSchema, getTaskDetailsHandler, init_get_task_details, cancelTaskInputSchema, cancelTaskOutputSchema, cancelTaskHandler, init_cancel_task, executeReadOnlyQuery, assertSelectOnlyQuery, handleDbQuery, init_db_query, snapshotMetric, init_version2, AssetKeyAuthorizationError, authorizeAssetKeyWrite, init_asset_key_auth, getPageEditCounter, init_page_versions, snapshotPage, init_version3, assertOAuthAppUrlsSafe, assertOAuthEgressUrlSafe, init_app_validation, listOAuthPresets, listOAuthPresetIds, getOAuthPreset, hydrateOAuthAppFromPreset, init_presets, scopedResourceScopeIdSchema, resolveScopedResourceId, init_scoped_resource, MemoryKeyError, init_key_guard, refreshLinks, init_link_resolver, indexMemoryContent, init_index_content, dedupeMemoryDocumentIds, recordMemoryAccesses, recordRetrievals, init_retrieval, ExplicitSelfDuplicateError, applyRating, init_store, shouldPersistAutomaticTaskMemory, init_automatic_task_gate, guardTerminalTaskResultWrite, init_terminal_result_guard, getTasksInputSchema, getTasksOutputSchema, getTasksHandler, init_get_tasks, reservedNamespaceError, privateNamespaceError, reservedRoomKeyError, init_kv_reserved_namespaces, updateMcpServerChecked, init_mcp_server_checked_update, updateTouchesStdioExecution, init_mcp_server_stdio_gate, canReadMemory, init_access, getLinksForMemory, init_links_store, expandCandidatesWithGraph, init_graph_expansion, isApiDraining, drainApi, init_api_drain, markKapsoMessageRead, sendKapsoReaction, init_client, getKapsoConfig, getKapsoNumberMapping, markKapsoMessageSeen, init_config2, changesAllowMerge, init_repo_merge_policy, updateSwarmRepoChecked, init_repo_checked_update, getCombConfig, init_config3, resolveRoomNamespace, roomRequestInfo, authorizeRoomNamespace, sessionAccessTopic, sessionPresenceRoot, init_auth2, RoomOperationSchema, init_document, removeAwarenessStates, init_awareness, roomTopic, decodeRoomSnapshot, roomView, getRoom, changeRoom, applyRoomUpdate, resetRoom, sweepRooms, closeRooms, removeNamespaceRooms, init_rooms, init_scheduler2, MEMORY_KEYS_DEFAULT_PREFIX, MEMORY_KEYS_MAX_LIMIT, estimateTokens, posteriorMean, listMemoryKeys, checkChunkIntegrity, getMemoryChunks, getPosteriorsByIds, init_key_browser, createEvent, createEventsBatch, getEventCountsFiltered, getEventsFiltered, init_events, mergeScheduleTiming, validateRecurringTiming, init_validate, checkOutputSchemaShape, sendTaskOutputSchema, sendTaskHandler, init_send_task, steerTaskUserInputSchema, steerTaskOutputSchema, steerTaskHandler, init_steer_task, canClaim, init_budget_admission, emitBudgetRefusalSideEffects, init_budget_refusal_notify, workflowModelErrors, init_model_validation2, patchWorkflowDefinition, init_patch_definition, idempotencyKeyHeader, readIdempotencyKey, replayAcceptedOperation, init_idempotency_key, resolveScriptsOnlyMode, init_scripts_only_mode, ALL_CAPABILITIES, hasCapability, getEnabledCapabilities, createServer, init_server };
|
|
140075
|
+
export { DEFAULT_NEGOTIATED_PROTOCOL_VERSION, SUPPORTED_PROTOCOL_VERSIONS, isJSONRPCRequest, isJSONRPCResultResponse, isJSONRPCErrorResponse, JSONRPCMessageSchema, isInitializeRequest, init_types, McpServer, init_mcp, repointTrackerSyncBySwarmId, init_tracker, isRuntimePoolWakeable, isAgentReachable, init_reachability, referencedBundlePaths, skillDirs, init_manifest_format, TaskCreationBlockedError, init_errors2, resolveIdentity, renderIdentity, init_identity, recordUnmappedIdentity, init_unmapped_identities, MAX_TASK_ATTACHMENT_BYTES, recordTaskAttachmentUpload, scopeFromAttachment, backingProviderId, init_task_attachment_store, taskModelPin, resumedTaskModelSelection, init_model_pin, listHarnessModelSupport, recordHarnessModelSupport, agentRanModel, getAgentHarnessCliVersion, setAgentHarnessCliVersion, init_harness_model_support, sanitizeModelTierOverrides, parseModelTierOverridesHeader, setAgentModelTierOverrides, previewModelTiers, recordClaimModelResolution, init_model_tier_resolution, harnessModelErrorFor, poolTaskRunsOnHarness, explicitModelError, explicitModelErrorForAgent, init_model_validation, stripSiblingBlock, init_sibling_block, createTaskWithSiblingAwareness, init_sibling_awareness, transcribeAudioNotes, init_transcription, init_templates, buildEffectiveText, bufferedFileFailures, fetchSlackFiles, createSlackTaskWithFiles, notifySlackFileFailures, init_inbound_files, isAddressedToOtherUser, broadcastMatches, routeMessage, extractTaskFromMessage, init_router, extractSlackMessageText, slackInboundMessageText, collectSlackMessageFiles, init_message_text, createAdditiveBuffer, init_additive_buffer, recoverIncompleteRuns, init_recovery, handleWebhookTrigger, verifyHmacSignature, WebhookError, init_triggers, snapshotAndUpdateWorkflow, init_version, RawLlmConfigSchema, RawLlmOutputSchema, executeRawLlm, init_raw_llm, getExecutorRegistry2, initWorkflows2, init_workflows, dispatchScheduleTarget, calculateNextRun2, startScheduler2, stopScheduler2, runScheduleNow2, init_scheduler, ExtensionAssetConflictError, init_assets, ExtensionOwnershipError, getExtensionFiles, getExtensionById, getExtensionByName, listExtensions, listExtensionVersions, updateExtensionMeta, listExtensionRuns, init_db, SDK_ALLOWLIST, mcpToolNameForSdkMethod, init_sdk_allowlist, MCP_OVERFLOW_NAMESPACE, mcpOverflowAuthError, init_kv_overflow, hasKvViewArgs, resolveKvView, init_kv_view, toolErr, createToolRegistrar, init_utils, handleMcpBridge, init_mcp_bridge, Redacted, init_redacted, SCRIPT_SDK_RESPONSE_LIMIT_BYTES, readScriptSdkJsonResponse, init_response_limit, ExtensionConfigError, init_loader, ExtensionLifecycleError, setExtensionLoopbackBaseUrl, enableExtension, disableExtension, activateVersion, ExtensionAssetsInvalidError, installExtensionWithAssets, uninstallExtension, reloadExtension, loadEnabledExtensions, stopExtensionRuntime, init_lifecycle, ExtensionAbortedError2, isRegistered2, isExtensionAgentId2, getExtensionBridgeToken2, resolveBridgeCallOrigin2, extensionIdForAgent2, runContext2, registerLoaded2, unregister2, listRegistered2, dispatchPre2, dispatchPost2, init_dispatcher, REBOOT_RETRY_PIN_TAG2, getPinCandidateAgent2, resolveLeadOnlyRecoveryAssignment2, getResumeGeneration2, getNextResumeGeneration2, inheritedModelSelection2, createWorkerTaskFollowUp2, createResumeFollowUp2, createRerouteDecisionTask2, createPoolStarvationDecisionTask2, init_worker_follow_up, isGitHubEnabled, initGitHub, verifyWebhookSignature, isAgentMailEnabled, initAgentMail, verifyAgentMailWebhook, isInboxAllowed, isSenderAllowed, handleMessageReceived, init_agentmail, isAzureDevOpsEnabled, initAzureDevOps, verifyAzureDevOpsWebhook, isAzureDevOpsUrl, canonicalAzureDevOpsRepoUrl, parseAzureDevOpsRepoUrl, init_azure_devops, createdPullRequestOf, commentedPayloadOf, handlePullRequestCreated, handlePullRequestCommented, handleWorkItemCreated, handleWorkItemUpdated, handleWorkItemCommented, handleWorkItemDeleted, handleWorkItemRestored, initAzureDevOpsOutbound, init_azure_devops2, enqueueAuditRow, enqueueAdmissionRow, flushAuditBuffer, startAuditWriter, stopAuditWriter, startAuditGc, stopAuditGc, init_rbac_audit, getTelemetryIngestAnchor, init_telemetry_ingest_anchor, initApiTelemetry, syncTelemetryEnabled, init_telemetry_enable, isBitbucketEnabled, initBitbucket, verifyBitbucketWebhook, isDuplicateDelivery, markDeliveryProcessed, pullRequestEventOf, pullRequestCommentEventOf, handlePullRequestCreated2, handlePullRequestCommentCreated, handlePullRequestClosed, init_bitbucket, handlePullRequest, handleIssue, handleComment, handlePullRequestReview, handleCheckRun, handleCheckSuite, handleWorkflowRun, init_github, isGitLabEnabled, initGitLab, verifyGitLabWebhook, handleMergeRequest, handleIssue2, handleNote, handlePipeline, init_gitlab, isChatSdkEnabled, getChatSdkConfig, init_config, errorMessage, init_logger, resolveAdapterApiUrl, init_adapters, trackBackground, init_background, TelegramBotApiError, callTelegramBotApi, init_telegram_api, isTrustedTeamsServiceUrl, init_teams_origin, getSessionLabels, rememberSessionLabel, init_session_labels, isChatSdkStopping, startChatSdk, getChatInstance, isChatAdapterConfigured, getChatSdkHealth, stopChatSdk, init_runtime, getJiraMetadata, updateJiraMetadata, clearJiraMetadata, init_metadata, registerJiraWebhook, deleteJiraWebhook, init_webhook_lifecycle, isJiraEnabled, initJira, init_app, handleJiraWebhook, init_webhook, init_jira, handleAgentSessionEvent, handleIssueUpdate, handleIssueDelete, handleAgentSessionPrompted, init_sync, isLinearEnabled, initLinear, init_app2, init_linear, init_slack, isCookieSafePageId, extractPageSession, extractLegacyPageSession, extractAndVerifyCookie, pageSessionSetCookies, init_page_session, resolveHttpRequestAuth, init_auth, getDeploymentEnvValue, loadGlobalConfigsIntoEnv, reloadGlobalConfigsAndIntegrations, scheduleIntegrationsReload, handleCore, init_core, MCP_MAX_TOOL_INPUT_ELEMENTS, MCP_MAX_REQUEST_BODY_BYTES, init_mcp_limits, userCtx, init_task_tool_ctx, requestPrincipal, agentFirstPrincipal, requireAuthKind, rejectGuest, init_request_principal, handleApps, init_apps, cancelApprovalRequest, cancelApprovalRequestAndRun, init_approval_cancel, getUserCommsPrefs, init_requester_comms, getTaskDetailsInputSchema, getTaskDetailsOutputSchema, getTaskDetailsHandler, init_get_task_details, cancelTaskInputSchema, cancelTaskOutputSchema, cancelTaskHandler, init_cancel_task, executeReadOnlyQuery, assertSelectOnlyQuery, handleDbQuery, init_db_query, snapshotMetric, init_version2, AssetKeyAuthorizationError, authorizeAssetKeyWrite, init_asset_key_auth, getPageEditCounter, init_page_versions, snapshotPage, init_version3, assertOAuthAppUrlsSafe, assertOAuthEgressUrlSafe, init_app_validation, listOAuthPresets, listOAuthPresetIds, getOAuthPreset, hydrateOAuthAppFromPreset, init_presets, scopedResourceScopeIdSchema, resolveScopedResourceId, init_scoped_resource, MemoryKeyError, init_key_guard, refreshLinks, init_link_resolver, indexMemoryContent, init_index_content, dedupeMemoryDocumentIds, recordMemoryAccesses, recordRetrievals, init_retrieval, ExplicitSelfDuplicateError, applyRating, init_store, shouldPersistAutomaticTaskMemory, init_automatic_task_gate, guardTerminalTaskResultWrite, init_terminal_result_guard, getTasksInputSchema, getTasksOutputSchema, getTasksHandler, init_get_tasks, reservedNamespaceError, privateNamespaceError, reservedRoomKeyError, init_kv_reserved_namespaces, updateMcpServerChecked, init_mcp_server_checked_update, updateTouchesStdioExecution, init_mcp_server_stdio_gate, canReadMemory, init_access, getLinksForMemory, init_links_store, expandCandidatesWithGraph, init_graph_expansion, isApiDraining, drainApi, init_api_drain, markKapsoMessageRead, sendKapsoReaction, init_client, getKapsoConfig, getKapsoNumberMapping, markKapsoMessageSeen, init_config2, changesAllowMerge, init_repo_merge_policy, updateSwarmRepoChecked, init_repo_checked_update, getCombConfig, init_config3, resolveRoomNamespace, roomRequestInfo, authorizeRoomNamespace, sessionAccessTopic, sessionPresenceRoot, init_auth2, RoomOperationSchema, init_document, removeAwarenessStates, init_awareness, roomTopic, decodeRoomSnapshot, roomView, getRoom, changeRoom, applyRoomUpdate, resetRoom, sweepRooms, closeRooms, removeNamespaceRooms, init_rooms, init_scheduler2, MEMORY_KEYS_DEFAULT_PREFIX, MEMORY_KEYS_MAX_LIMIT, estimateTokens, posteriorMean, listMemoryKeys, checkChunkIntegrity, getMemoryChunks, getPosteriorsByIds, init_key_browser, createEvent, createEventsBatch, getEventCountsFiltered, getEventsFiltered, init_events, mergeScheduleTiming, validateRecurringTiming, init_validate, followUpThreadForSourceTask, evaluateFollowUpRedelegation, init_follow_up_redelegation_guard, checkOutputSchemaShape, sendTaskOutputSchema, sendTaskHandler, init_send_task, steerTaskUserInputSchema, steerTaskOutputSchema, steerTaskHandler, init_steer_task, canClaim, init_budget_admission, emitBudgetRefusalSideEffects, init_budget_refusal_notify, workflowModelErrors, init_model_validation2, patchWorkflowDefinition, init_patch_definition, idempotencyKeyHeader, readIdempotencyKey, replayAcceptedOperation, init_idempotency_key, resolveScriptsOnlyMode, init_scripts_only_mode, ALL_CAPABILITIES, hasCapability, getEnabledCapabilities, createServer, init_server };
|