@desplega.ai/agent-swarm 2.7.5 → 2.7.7
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/{acp-adapter-g3ads55s.js → acp-adapter-7b4vk3h5.js} +5 -4
- package/dist/{actions-zwfykqqk.js → actions-3tt153af.js} +18 -17
- package/dist/{amp-adapter-z3s0ssdt.js → amp-adapter-njpts0yr.js} +1 -1
- package/dist/{anthropic-messages-x4q6rfq5.js → anthropic-messages-xey2skwx.js} +7 -7
- package/dist/{app-vmp4fgep.js → app-nky4378f.js} +3 -3
- package/dist/{assistant-vwde653f.js → assistant-jnb669pa.js} +24 -22
- package/dist/{azure-openai-responses-s1w5n70z.js → azure-openai-responses-26t7j9ra.js} +5 -5
- package/dist/{boot-reembed-375t7tbk.js → boot-reembed-9mgvaztt.js} +1 -1
- package/dist/{boot-reembed-gq9rcpnj.js → boot-reembed-qs2djdej.js} +1 -1
- package/dist/{boot-scrub-sweep-nd938kyf.js → boot-scrub-sweep-yjpdj7s1.js} +3 -3
- package/dist/{boot-seeds-aykx51v3.js → boot-seeds-5cm6ambd.js} +4 -4
- package/dist/{boxd-k1j26g3h.js → boxd-nv507va8.js} +5 -5
- package/dist/{claude-adapter-8j4hm099.js → claude-adapter-fn287zmm.js} +5 -4
- package/dist/{claude-managed-setup-0wyynpn1.js → claude-managed-setup-wtdz2mj2.js} +1 -1
- package/dist/{claude-sdk-session-q6wj5hmy.js → claude-sdk-session-x91kqyhm.js} +9677 -9514
- package/dist/{cli-j3jvnpe8.js → cli-08bmz9z9.js} +1 -1
- package/dist/{cli-gjr2y2xk.js → cli-0agcv1v5.js} +4 -1
- package/dist/{cli-y24sc29k.js → cli-1c6tzt8g.js} +30 -8
- package/dist/{cli-mjzynrse.js → cli-35rsp8ye.js} +1 -1
- package/dist/{cli-rpm2sgv0.js → cli-3fg0bdcv.js} +19 -2
- package/dist/{cli-nn4d8dne.js → cli-5b456bpf.js} +2 -2
- package/dist/{cli-bhjt02p8.js → cli-5jnhv72d.js} +1 -1
- package/dist/{cli-fqzx7gwa.js → cli-5zx699j9.js} +2 -2
- package/dist/{cli-hf6zt5m6.js → cli-69szn7w7.js} +17 -1
- package/dist/{cli-vqypxzh4.js → cli-6g0hb4cp.js} +8 -8
- package/dist/{cli-tqgg40ek.js → cli-6pfd54vx.js} +9 -8
- package/dist/{cli-bsn8nhrq.js → cli-6vcp76qk.js} +3 -3
- package/dist/{cli-zppwg9p9.js → cli-72v799xn.js} +1 -1
- package/dist/cli-82j36f2m.js +45 -0
- package/dist/{cli-hn9hxmz9.js → cli-8305gbq0.js} +29 -16
- package/dist/{cli-z8eh3ex8.js → cli-8sckt74b.js} +8 -8
- package/dist/{cli-bnz7a7qf.js → cli-95jzxcp3.js} +1 -1
- package/dist/{cli-0bxqnvq9.js → cli-adeegh7d.js} +29 -7
- package/dist/{cli-g61qxmge.js → cli-afkqkrtw.js} +3 -3
- package/dist/{cli-7a42nfy0.js → cli-ayayvfg4.js} +24 -4
- package/dist/{cli-bqt1mptt.js → cli-az48n0nr.js} +4 -4
- package/dist/{cli-z6jkx23q.js → cli-bfv7vdg6.js} +9 -9
- package/dist/{cli-pywf3eh5.js → cli-caj33vcq.js} +5 -5
- package/dist/{cli-5pag6rmn.js → cli-cb2a8pna.js} +1 -1
- package/dist/{cli-wvaawacd.js → cli-cppkf404.js} +5236 -72
- package/dist/{cli-mry0qzym.js → cli-ddaanqkd.js} +123 -10
- package/dist/{cli-0gey5fzy.js → cli-e0kmphd6.js} +2 -2
- package/dist/{cli-zh3fp8v2.js → cli-e46hg0xw.js} +1 -1
- package/dist/{cli-jm2vfpfd.js → cli-e5bzrn01.js} +1 -1
- package/dist/{cli-qxnf8z2z.js → cli-excnnjg2.js} +165 -153
- package/dist/{cli-71ptav7x.js → cli-ferkkrg9.js} +1 -1
- package/dist/{cli-vpf89f34.js → cli-fmjd0t1y.js} +3 -3
- package/dist/{cli-rm6hqj3z.js → cli-fyt2g4wd.js} +33 -139
- package/dist/cli-g08zdaec.js +55 -0
- package/dist/{cli-ehq736cn.js → cli-g7s47cc5.js} +4 -4
- package/dist/{cli-82ae98pz.js → cli-gz6q4eve.js} +3 -3
- package/dist/{cli-82jg7fp9.js → cli-he5nxaa8.js} +1 -1
- package/dist/{cli-rqkxrmgw.js → cli-je518txm.js} +39 -14
- package/dist/{cli-8hs41zy2.js → cli-jtjtabxe.js} +1 -1
- package/dist/{cli-611a1294.js → cli-k0wwfqbg.js} +18 -1
- package/dist/{cli-nzxr556s.js → cli-k1nje3v3.js} +38 -43
- package/dist/{cli-3h4nhjn8.js → cli-k8196sh2.js} +9 -7
- package/dist/{cli-afrrppsw.js → cli-k899ehvh.js} +2 -2
- package/dist/{cli-0731hvbw.js → cli-m0da8j35.js} +23 -9
- package/dist/cli-m2z8jagn.js +12078 -0
- package/dist/{cli-8veytvbh.js → cli-mkk9rnzz.js} +5 -5
- package/dist/{cli-7wspm5gm.js → cli-n6bv12jn.js} +528 -6
- package/dist/{cli-spknvxbq.js → cli-nmzhp1b5.js} +14 -12
- package/dist/{cli-p599f1qm.js → cli-p82cnnjq.js} +1 -1
- package/dist/{cli-xtjhfmpc.js → cli-pc6n7fre.js} +1 -1
- package/dist/{cli-vbyfwh92.js → cli-pjctyea3.js} +2 -2
- package/dist/{cli-nmbmy64z.js → cli-pq73h5mz.js} +3 -3
- package/dist/{cli-aa6yxc7m.js → cli-pz4rk021.js} +1 -1
- package/dist/{cli-7wcyk2s5.js → cli-q3tkegby.js} +1 -1
- package/dist/cli-qghe0h66.js +67 -0
- package/dist/{cli-6s7vdcta.js → cli-qh4d4tvk.js} +4 -4
- package/dist/{cli-mmwm7zbf.js → cli-rtt8g4v9.js} +1 -1
- package/dist/{cli-kg8hchyg.js → cli-sa02jsqt.js} +1 -1
- package/dist/{cli-1h3wcpbw.js → cli-snpj5zbj.js} +2 -2
- package/dist/{cli-a7v854rf.js → cli-tgrv9cjx.js} +263 -12
- package/dist/{cli-a47xy8eq.js → cli-vz22fyqv.js} +186 -54
- package/dist/{cli-1ayk1eas.js → cli-wk5yrfwd.js} +285 -42
- package/dist/{cli-1338796d.js → cli-ws19768n.js} +1755 -119
- package/dist/{cli-70r77n04.js → cli-xae4g51r.js} +1 -1
- package/dist/{cli-gf5hbmdr.js → cli-yjdgea32.js} +3 -3
- package/dist/{cli-xbkdm710.js → cli-yndmfxb3.js} +3 -3
- package/dist/{cli-rhw40jgb.js → cli-yyj3j5m4.js} +2 -2
- package/dist/cli.js +26 -25
- package/dist/{cloudflare-workers-ai-system-one-bm60fjm0.js → cloudflare-workers-ai-system-one-ef2a980q.js} +2 -2
- package/dist/{codex-adapter-q6k3gnyg.js → codex-adapter-cf2yxe9m.js} +3 -2
- package/dist/{codex-hook-9efm2x1m.js → codex-hook-a0c6g6t6.js} +1 -1
- package/dist/{codex-session-runner-3mwmk3d9.js → codex-session-runner-6vfzdgbd.js} +3 -2
- package/dist/{commands-evrenjn9.js → commands-t3mfy7vn.js} +9 -3
- package/dist/{controller-xjp8vswh.js → controller-q7xrbaz0.js} +8 -3
- package/dist/{controllers-connect-pp5jnxvc.js → controllers-connect-c6nm70kg.js} +20 -19
- package/dist/{cursor-adapter-yf47w4t0.js → cursor-adapter-ftd81ga8.js} +1 -1
- package/dist/{db-zxpw6aht.js → db-dk572x25.js} +3 -3
- package/dist/{db-rgfsh91f.js → db-vemtpmcc.js} +14 -4
- package/dist/{devtools-82fzqra8.js → devtools-qxfgbsqz.js} +1 -1
- package/dist/{dispatcher-smasgws7.js → dispatcher-kh7ecxh9.js} +17 -16
- package/dist/{docker-rrjhaqt9.js → docker-c1a3gqmf.js} +89 -22
- package/dist/{dsh-adapter-ftyy8dnp.js → dsh-adapter-v8628r89.js} +1 -1
- package/dist/{e2b-w1p0bnpm.js → e2b-fr12yccx.js} +5 -5
- package/dist/{e2b-qcaj675y.js → e2b-x6ywzak3.js} +3 -3
- package/dist/{easter-egg-3d-yyts7p16.js → easter-egg-3d-nenw4x63.js} +1 -1
- package/dist/{embedding-space-1z0mbg95.js → embedding-space-0jepb239.js} +6 -6
- package/dist/{embeddings-ygeg7tm7.js → embeddings-xxt49yxg.js} +1 -1
- package/dist/{execute-14qhqp4d.js → execute-1mhw6e4x.js} +1 -1
- package/dist/{external-channel-ttgrs3sx.js → external-channel-55v12e60.js} +2 -2
- package/dist/{fx-adapter-gt6pncj2.js → fx-adapter-bs8wqrk5.js} +6 -5
- package/dist/{google-generative-ai-yvmdxyxa.js → google-generative-ai-v94hr7h0.js} +5 -5
- package/dist/{google-vertex-jrtdh9gs.js → google-vertex-g7vr6cf8.js} +5 -5
- package/dist/{grok-adapter-sm4m5k4g.js → grok-adapter-gpjqmkcq.js} +6 -5
- package/dist/handlers-zxmp1ta4.js +32 -0
- package/dist/{heartbeat-qahz4p62.js → heartbeat-k42svnr0.js} +20 -19
- package/dist/{hook-4fd5wq5w.js → hook-114m7hap.js} +4 -3
- package/dist/{hook-kj3d398m.js → hook-6nphweh0.js} +24 -9
- package/dist/{http-1ted0j1k.js → http-r8cc4wz7.js} +1196 -211
- package/dist/index-a8phxqnk.js +37 -0
- package/dist/{index-q4b917zs.js → index-e3s8wmxy.js} +1 -1
- package/dist/{index-6rq3r5zb.js → index-fpk4bcd9.js} +1 -1
- package/dist/{index-5rk6rfzr.js → index-fvzke5kx.js} +1 -1
- package/dist/index-k6h00t4c.js +30 -0
- package/dist/{index-7v51awbn.js → index-nh3wyqdt.js} +1027 -577
- package/dist/{index-yqhz88yy.js → index-pxn30mse.js} +8 -8
- package/dist/index-xrz7te8h.js +33 -0
- package/dist/{keepalive-6cf311t5.js → keepalive-x060nt9p.js} +3 -3
- package/dist/lead-956sd2yc.js +71 -0
- package/dist/{maintenance-a4bm1bmt.js → maintenance-2xxfexhf.js} +1 -1
- package/dist/{mistral-conversations-4pmwj1c0.js → mistral-conversations-3gjpdb4b.js} +4 -4
- package/dist/{oauth-refresh-sweep-3h0dfw1k.js → oauth-refresh-sweep-fckc4ar5.js} +2 -2
- package/dist/{onboard-myn5hraa.js → onboard-zc48j237.js} +5 -5
- package/dist/{openai-codex-responses-44j573nm.js → openai-codex-responses-8pbxq9h5.js} +5 -5
- package/dist/{openai-completions-a4gee2a8.js → openai-completions-rm00s912.js} +4 -4
- package/dist/{openai-decisions-w4qkrcar.js → openai-decisions-8v957r2r.js} +1 -1
- package/dist/{openai-responses-rbp6h5kr.js → openai-responses-agxpf96k.js} +5 -5
- package/dist/{opencode-adapter-p2nkb5am.js → opencode-adapter-r690h1cr.js} +4 -3
- package/dist/{otel-impl-a1a0ef6b.js → otel-impl-r5xbh81q.js} +4 -4
- package/dist/{pi-mono-adapter-rzmpb72a.js → pi-mono-adapter-c7v8sdec.js} +7 -6
- package/dist/{pricing-refresh-83drrnxj.js → pricing-refresh-3pmre11v.js} +3 -3
- package/dist/{rbac-roles-s8y6ecb5.js → rbac-roles-3vbshwsb.js} +1 -1
- package/dist/{rbac-roles-0fb6e7pj.js → rbac-roles-910mmkgz.js} +2 -2
- package/dist/{render-v2-twmbgrz4.js → render-v2-pxykkbab.js} +3 -3
- package/dist/{resume-zfqc36xj.js → resume-adda0bwy.js} +6 -6
- package/dist/{runtime-qwggdpqr.js → runtime-fnbm7stk.js} +1 -1
- package/dist/{session-access-sc9pn9da.js → session-access-2fvamrdc.js} +4 -4
- package/dist/{session-source-backfill-qh07xr8g.js → session-source-backfill-08xvv0sm.js} +2 -2
- package/dist/{setup-4fr0m7a1.js → setup-1aqmvmh1.js} +3 -3
- package/dist/{typesafe-system-one-5mavm259.js → typesafe-system-one-0bmqcxfg.js} +2 -2
- package/dist/{virtual-modules-fh4ha15b.js → virtual-modules-d2pjk9j1.js} +5 -5
- package/dist/{work-objects-0wr8zxct.js → work-objects-9s0yrm5j.js} +20 -19
- package/dist/{worker-follow-up-ktyyazyp.js → worker-follow-up-3q78fqmr.js} +17 -16
- package/dist/worker-y15hy08h.js +71 -0
- package/openapi.json +289 -4
- package/package.json +9 -8
- package/src/apps/definition.ts +6 -5
- package/src/be/db/page-theme-tokens.ts +12 -0
- package/src/be/db/script-runs.ts +23 -0
- package/src/be/db/tasks/read.ts +131 -4
- package/src/be/db/tasks/write.ts +19 -0
- package/src/be/db-client.ts +114 -11
- package/src/be/db.ts +49 -6
- package/src/be/memory/providers/sqlite-store.ts +49 -12
- 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/migrations/269_pages_design_system.sql +23 -0
- 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 +22 -0
- package/src/be/seed/schedules-seeder.ts +0 -10
- package/src/be/seed-scripts/catalog/catalog-report.inline.ts +2 -0
- package/src/be/seed-scripts/catalog/catalog-report.ts +2 -0
- package/src/be/seed-scripts/catalog/memory-eval.ts +2 -0
- package/src/be/seed-scripts/catalog/swarm-update-check.ts +150 -0
- package/src/be/seed-scripts/catalog/task-failure-audit.ts +5 -1
- package/src/be/seed-scripts/index.ts +9 -0
- package/src/be/seed-skills/bundled-files.generated.json +3 -3
- package/src/be/swarm-config-guard.ts +32 -0
- package/src/be/task-auto-title-listener.ts +127 -0
- package/src/commands/controller.ts +4 -0
- package/src/commands/entrypoint-api-readiness.ts +74 -0
- package/src/commands/onboard/agent-fs-version.ts +1 -1
- package/src/commands/profile-sync.ts +151 -16
- package/src/commands/runner.ts +15 -7
- package/src/hooks/hook.ts +20 -9
- package/src/http/index.ts +4 -1
- package/src/http/list-total-cache.ts +14 -7
- package/src/http/memory.ts +38 -9
- package/src/http/pages-public.ts +93 -129
- package/src/http/pages.ts +94 -21
- package/src/http/script-runs.ts +174 -5
- package/src/http/status.ts +10 -2
- package/src/http/tasks.ts +4 -2
- package/src/pages/browser-sdk.ts +48 -21
- package/src/pages/color-literals.ts +115 -0
- package/src/pages/page-head.ts +766 -0
- package/src/pages/version.ts +3 -0
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/codex-adapter.ts +1 -0
- package/src/providers/codex-app-server.ts +27 -1
- package/src/providers/fx-adapter.ts +1 -1
- package/src/providers/pi-mono-extension.ts +30 -15
- 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/script-workflows/workflow-ctx.ts +8 -0
- package/src/scripts-runtime/types/stdlib.d.ts +22 -0
- package/src/scripts-runtime/types/swarm-sdk.d.ts +22 -0
- package/src/server-user.ts +1 -0
- package/src/slack/commands.ts +5 -1
- package/src/slack/handlers.ts +37 -2
- package/src/slack/left-threads.ts +27 -4
- package/src/tasks/follow-up-gate.ts +318 -0
- package/src/tasks/follow-up-redelegation-guard.ts +155 -0
- package/src/tasks/worker-follow-up.ts +21 -1
- package/src/tests/claude-artifacts-read-script.test.ts +209 -0
- package/src/tests/codex-app-server.test.ts +59 -0
- package/src/tests/codex-gateway-route.test.ts +50 -1
- package/src/tests/create-page-tool.test.ts +501 -0
- package/src/tests/db-client-busy-retry.test.ts +81 -0
- package/src/tests/db-client.test.ts +21 -0
- package/src/tests/db-task-read-contract.test.ts +9 -2
- package/src/tests/db-task-write-contract.test.ts +7 -1
- package/src/tests/db-tasks-read.test.ts +21 -0
- package/src/tests/entrypoint-api-readiness.test.ts +416 -210
- package/src/tests/explicit-model-validation.test.ts +14 -8
- package/src/tests/fixtures/pages/head-v1.html +56 -0
- package/src/tests/follow-up-gate-shadow.test.ts +513 -0
- package/src/tests/follow-up-redelivery-guard.test.ts +432 -202
- package/src/tests/identity-field-budget.test.ts +1 -1
- package/src/tests/internal-ai/credentials.test.ts +62 -0
- package/src/tests/internal-ai/task-title.test.ts +283 -0
- package/src/tests/list-total-cache.test.ts +27 -2
- package/src/tests/memory-fts-populate.test.ts +11 -9
- package/src/tests/memory-retrieval-purge.test.ts +80 -0
- package/src/tests/merge-gate-detect-changes.test.ts +145 -0
- package/src/tests/migration-260-runtime-pool-cache.test.ts +118 -0
- package/src/tests/page-proxy.test.ts +1 -1
- package/src/tests/page-session-dev-cookie.test.ts +188 -0
- package/src/tests/pages-frame-ancestors.test.ts +28 -1
- package/src/tests/pages-head-v2.test.ts +534 -0
- package/src/tests/pages-http.test.ts +330 -0
- package/src/tests/pages-public-html.test.ts +43 -0
- package/src/tests/pages-storage.test.ts +182 -0
- package/src/tests/pages-versioning.test.ts +72 -0
- package/src/tests/profile-sync-stale-writeback.test.ts +334 -0
- package/src/tests/profile-sync.test.ts +11 -15
- package/src/tests/query-audit-plans.test.ts +27 -0
- 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/scheduled-task-required-params-migration.test.ts +3 -1
- package/src/tests/script-connections.test.ts +13 -0
- package/src/tests/script-runs-http.test.ts +684 -2
- package/src/tests/seed-registry.test.ts +28 -6
- package/src/tests/seed-schedules.test.ts +61 -8
- package/src/tests/seed-scripts.test.ts +168 -2
- package/src/tests/slack-leave-thread.test.ts +145 -5
- package/src/tests/slack-render-v2-query-plans.test.ts +24 -2
- package/src/tests/status.test.ts +11 -0
- package/src/tests/swarm-diff.test.ts +121 -2
- package/src/tests/task-auto-title-config-guard.test.ts +37 -0
- package/src/tests/task-auto-title-listener.test.ts +165 -0
- package/src/tests/tasks-readable-row.test.ts +155 -0
- package/src/tests/theme-import.test.ts +758 -0
- package/src/tests/themes-page-theme.test.ts +155 -0
- package/src/tests/themes-presets.test.ts +172 -0
- package/src/tests/workflow-script-principal.test.ts +2 -1
- package/src/themes/classics.ts +949 -0
- package/src/themes/import.ts +420 -0
- package/src/themes/page-fields.ts +40 -0
- package/src/themes/page-theme.ts +102 -0
- package/src/themes/presets.ts +561 -0
- package/src/themes/tokens.ts +218 -0
- package/src/tools/app-upsert.ts +1 -1
- package/src/tools/create-page.ts +118 -12
- package/src/tools/send-task.ts +35 -47
- package/src/tools/slack-leave-thread.ts +1 -1
- package/src/tools/task-dedup.ts +45 -21
- package/src/tools/utils.ts +33 -0
- package/src/types.ts +83 -3
- package/src/utils/constants.ts +19 -0
- package/src/utils/follow-up-gate-schedule-ids.ts +13 -0
- package/src/utils/internal-ai/credentials.ts +146 -93
- package/src/utils/internal-ai/index.ts +10 -0
- package/src/utils/internal-ai/models.ts +18 -0
- package/src/utils/internal-ai/task-title.ts +282 -0
- package/src/utils/page-session.ts +37 -0
- package/templates/schedules/daily-status-report/content.md +88 -2
- package/templates/schedules/daily-swarm-update-check/content.md +16 -40
- package/templates/skills/apps/SKILL.md +1 -1
- package/templates/skills/apps/content.md +1 -1
- package/templates/skills/composio-google-docs/content.md +10 -0
- package/templates/skills/heartbeat-runbook/content.md +1 -1
- package/templates/skills/pages/config.json +1 -1
- package/templates/skills/pages/content.md +539 -86
- package/templates/skills/pages/files/examples/annotated-pr.html +21 -12
- package/templates/skills/pages/files/examples/multiplayer-board.html +41 -41
- package/templates/skills/pages/files/examples/report-page.html +125 -124
- package/templates/skills/script-workflows/content.md +19 -1
- package/templates/skills/swarm-docs/content.md +1 -0
- package/templates/skills/swarm-scripts/SKILL.md +2 -0
- package/templates/skills/swarm-scripts/content.md +2 -0
- package/dist/cli-2pnswgh8.js +0 -189
- package/dist/cli-dznrgaep.js +0 -30
- package/dist/cli-w3hcrxht.js +0 -6985
- package/dist/handlers-vwmba1m2.js +0 -31
- package/dist/index-5r71rf98.js +0 -32
- package/dist/index-anmwxs87.js +0 -29
- package/dist/index-spp0ra5c.js +0 -36
- package/dist/lead-fjy418cw.js +0 -69
- package/dist/worker-0c5tyzqe.js +0 -69
- package/templates/schedules/daily-workflow-health-audit/config.json +0 -19
- package/templates/schedules/daily-workflow-health-audit/content.md +0 -191
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
} from "./cli-6ecv5wm5.js";
|
|
10
10
|
import {
|
|
11
11
|
calculateCost,
|
|
12
|
-
|
|
13
|
-
} from "./cli-
|
|
12
|
+
init_models
|
|
13
|
+
} from "./cli-snpj5zbj.js";
|
|
14
14
|
import {
|
|
15
15
|
getIdentityHeaders,
|
|
16
16
|
init_identity2
|
|
@@ -103,7 +103,7 @@ function parseClassifierUsage(value, model) {
|
|
|
103
103
|
return usage;
|
|
104
104
|
}
|
|
105
105
|
var init_classifier_shared = __esm(() => {
|
|
106
|
-
|
|
106
|
+
init_models();
|
|
107
107
|
init_headers();
|
|
108
108
|
init_identity2();
|
|
109
109
|
init_provider_retry();
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
applyOpenRouterBaseUrlOverride2,
|
|
11
11
|
buildOpenAICompatibleProviderBlock2
|
|
12
|
-
} from "./cli-
|
|
12
|
+
} from "./cli-72v799xn.js";
|
|
13
13
|
import {
|
|
14
14
|
fetchInstalledMcpServers
|
|
15
15
|
} from "./cli-bst1vp7e.js";
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
import {
|
|
31
31
|
DEFAULT_MODEL_TIER_MAP,
|
|
32
32
|
init_types4
|
|
33
|
-
} from "./cli-
|
|
33
|
+
} from "./cli-n6bv12jn.js";
|
|
34
34
|
import {
|
|
35
35
|
resolveTemplateFromCode,
|
|
36
36
|
resolveTemplateAsync,
|
|
@@ -58,7 +58,7 @@ import {
|
|
|
58
58
|
import {
|
|
59
59
|
init_package,
|
|
60
60
|
package_default
|
|
61
|
-
} from "./cli-
|
|
61
|
+
} from "./cli-6pfd54vx.js";
|
|
62
62
|
import {
|
|
63
63
|
scrubSecrets,
|
|
64
64
|
init_secret_scrubber
|
|
@@ -1592,6 +1592,8 @@ var zSubagentUpdate = object2({
|
|
|
1592
1592
|
state: defaultOnError(zStateUpdate.nullish(), () => {
|
|
1593
1593
|
return;
|
|
1594
1594
|
}),
|
|
1595
|
+
cwd: string2().nullish(),
|
|
1596
|
+
additionalDirectories: array2(string2()).nullish(),
|
|
1595
1597
|
_meta: defaultOnError(record2(string2(), unknown()).nullish(), () => {
|
|
1596
1598
|
return;
|
|
1597
1599
|
})
|
|
@@ -2204,6 +2206,17 @@ var zCancelRequestNotification = object2({
|
|
|
2204
2206
|
|
|
2205
2207
|
// node_modules/@agentclientprotocol/sdk/dist/core/jsonrpc.js
|
|
2206
2208
|
var CANCEL_REQUEST_METHOD = "$/cancel_request";
|
|
2209
|
+
function treatSessionNotFoundAsSuccess(method, response, success) {
|
|
2210
|
+
if (method !== "session/close" && method !== "session/delete") {
|
|
2211
|
+
return response;
|
|
2212
|
+
}
|
|
2213
|
+
return response.catch((error) => {
|
|
2214
|
+
if (error instanceof RequestError && error.code === -32002) {
|
|
2215
|
+
return success();
|
|
2216
|
+
}
|
|
2217
|
+
throw error;
|
|
2218
|
+
});
|
|
2219
|
+
}
|
|
2207
2220
|
function isRequestMessage(value) {
|
|
2208
2221
|
return isJsonRpcEnvelope(value) && "id" in value && typeof value["method"] === "string" && isJsonRpcId(value["id"]);
|
|
2209
2222
|
}
|
|
@@ -2236,28 +2249,6 @@ function isJsonRpcId(value) {
|
|
|
2236
2249
|
function isResponseShapedMessage(value) {
|
|
2237
2250
|
return isRecord(value) && !("method" in value) && (("id" in value) || ("result" in value) || ("error" in value));
|
|
2238
2251
|
}
|
|
2239
|
-
function isResponseBatch(batch) {
|
|
2240
|
-
let hasValidCall = false;
|
|
2241
|
-
let hasValidResponse = false;
|
|
2242
|
-
let hasCallShape = false;
|
|
2243
|
-
let hasResponseShape = false;
|
|
2244
|
-
for (const entry of batch) {
|
|
2245
|
-
hasValidCall ||= isRequestMessage(entry) || isNotificationMessage(entry);
|
|
2246
|
-
hasValidResponse ||= isResponseMessage(entry);
|
|
2247
|
-
if (!isRecord(entry)) {
|
|
2248
|
-
continue;
|
|
2249
|
-
}
|
|
2250
|
-
hasCallShape ||= "method" in entry;
|
|
2251
|
-
hasResponseShape ||= "result" in entry || "error" in entry;
|
|
2252
|
-
}
|
|
2253
|
-
if (hasValidCall) {
|
|
2254
|
-
return false;
|
|
2255
|
-
}
|
|
2256
|
-
if (hasValidResponse) {
|
|
2257
|
-
return true;
|
|
2258
|
-
}
|
|
2259
|
-
return hasResponseShape && !hasCallShape;
|
|
2260
|
-
}
|
|
2261
2252
|
function cancelRequestId(params) {
|
|
2262
2253
|
if (!isRecord(params) || !isJsonRpcId(params["requestId"])) {
|
|
2263
2254
|
return;
|
|
@@ -2371,7 +2362,6 @@ class RequestResponder {
|
|
|
2371
2362
|
});
|
|
2372
2363
|
}
|
|
2373
2364
|
}
|
|
2374
|
-
var requestBatchSizes = new WeakMap;
|
|
2375
2365
|
var nullIdResponders = new WeakSet;
|
|
2376
2366
|
class HandlerRegistration {
|
|
2377
2367
|
disposeHandler;
|
|
@@ -2405,9 +2395,6 @@ class ConnectionContext {
|
|
|
2405
2395
|
sendNotification(method, params) {
|
|
2406
2396
|
return this.connection.sendNotification(method, params);
|
|
2407
2397
|
}
|
|
2408
|
-
sendBatch(entries) {
|
|
2409
|
-
return this.connection.sendBatch(entries);
|
|
2410
|
-
}
|
|
2411
2398
|
sendCancelRequest(requestId) {
|
|
2412
2399
|
return this.connection.sendCancelRequest(requestId);
|
|
2413
2400
|
}
|
|
@@ -2436,7 +2423,6 @@ class Connection {
|
|
|
2436
2423
|
retryQueue = [];
|
|
2437
2424
|
context = new ConnectionContext(this);
|
|
2438
2425
|
receiveReader;
|
|
2439
|
-
allowBatches = true;
|
|
2440
2426
|
constructor(requestHandlerOrStream, notificationHandlerOrHandlers, streamOrOptions, options) {
|
|
2441
2427
|
if (typeof requestHandlerOrStream === "function") {
|
|
2442
2428
|
const requestHandler = requestHandlerOrStream;
|
|
@@ -2497,55 +2483,13 @@ class Connection {
|
|
|
2497
2483
|
return rejectedPromise(this.closedReason());
|
|
2498
2484
|
}
|
|
2499
2485
|
const request = this.prepareRequest(method, params, mapResponse, options);
|
|
2500
|
-
const requestSent = this.
|
|
2486
|
+
const requestSent = this.sendMessage(request.message);
|
|
2501
2487
|
requestSent.catch(() => {});
|
|
2502
2488
|
if (options.cancellationSignal?.aborted) {
|
|
2503
2489
|
request.cancel();
|
|
2504
2490
|
}
|
|
2505
2491
|
return request.response;
|
|
2506
2492
|
}
|
|
2507
|
-
sendBatch(entries) {
|
|
2508
|
-
if (this.abortController.signal.aborted) {
|
|
2509
|
-
return rejectedPromise(this.closedReason());
|
|
2510
|
-
}
|
|
2511
|
-
if (!this.allowBatches) {
|
|
2512
|
-
return rejectedPromise(new TypeError("JSON-RPC batches are not supported on this connection"));
|
|
2513
|
-
}
|
|
2514
|
-
if (entries.length === 0) {
|
|
2515
|
-
return rejectedPromise(new TypeError("JSON-RPC batch must contain at least one entry"));
|
|
2516
|
-
}
|
|
2517
|
-
const messages = [];
|
|
2518
|
-
const cancellations = [];
|
|
2519
|
-
const outputs = [];
|
|
2520
|
-
for (const entry of entries) {
|
|
2521
|
-
if (entry.kind === "notification") {
|
|
2522
|
-
messages.push({
|
|
2523
|
-
jsonrpc: "2.0",
|
|
2524
|
-
method: entry.method,
|
|
2525
|
-
params: entry.params
|
|
2526
|
-
});
|
|
2527
|
-
outputs.push(Promise.resolve(undefined));
|
|
2528
|
-
continue;
|
|
2529
|
-
}
|
|
2530
|
-
const request = this.prepareRequest(entry.method, entry.params, entry.mapResponse, entry.options);
|
|
2531
|
-
messages.push(request.message);
|
|
2532
|
-
outputs.push(request.response);
|
|
2533
|
-
cancellations.push({
|
|
2534
|
-
signal: entry.options?.cancellationSignal,
|
|
2535
|
-
cancel: request.cancel
|
|
2536
|
-
});
|
|
2537
|
-
}
|
|
2538
|
-
const batch = messages;
|
|
2539
|
-
const batchSent = this.sendWireMessage(batch);
|
|
2540
|
-
for (const cancellation of cancellations) {
|
|
2541
|
-
if (cancellation.signal?.aborted) {
|
|
2542
|
-
cancellation.cancel();
|
|
2543
|
-
}
|
|
2544
|
-
}
|
|
2545
|
-
const response = Promise.all([batchSent, ...outputs]).then(([, ...resolved]) => resolved);
|
|
2546
|
-
response.catch(() => {});
|
|
2547
|
-
return response;
|
|
2548
|
-
}
|
|
2549
2493
|
sendCancelRequest(requestId) {
|
|
2550
2494
|
return this.sendNotification(CANCEL_REQUEST_METHOD, { requestId });
|
|
2551
2495
|
}
|
|
@@ -2553,7 +2497,7 @@ class Connection {
|
|
|
2553
2497
|
if (this.abortController.signal.aborted) {
|
|
2554
2498
|
return rejectedPromise(this.closedReason());
|
|
2555
2499
|
}
|
|
2556
|
-
return this.
|
|
2500
|
+
return this.sendMessage({ jsonrpc: "2.0", method, params });
|
|
2557
2501
|
}
|
|
2558
2502
|
prepareRequest(method, params, mapResponse, options = {}) {
|
|
2559
2503
|
const id = this.nextRequestId++;
|
|
@@ -2613,7 +2557,6 @@ class Connection {
|
|
|
2613
2557
|
this.stream = stream;
|
|
2614
2558
|
this.staticHandlers = handlers;
|
|
2615
2559
|
this.fallbackHandlers = [...options?.fallbackHandlers ?? []];
|
|
2616
|
-
this.allowBatches = options?.allowBatches ?? true;
|
|
2617
2560
|
this.closedPromise = new Promise((resolve) => {
|
|
2618
2561
|
this.abortController.signal.addEventListener("abort", () => resolve());
|
|
2619
2562
|
});
|
|
@@ -2646,7 +2589,7 @@ class Connection {
|
|
|
2646
2589
|
if (done) {
|
|
2647
2590
|
break;
|
|
2648
2591
|
}
|
|
2649
|
-
this.
|
|
2592
|
+
this.receiveUnvalidatedMessage(message);
|
|
2650
2593
|
}
|
|
2651
2594
|
} finally {
|
|
2652
2595
|
if (this.receiveReader === reader) {
|
|
@@ -2660,65 +2603,18 @@ class Connection {
|
|
|
2660
2603
|
this.close(closeError);
|
|
2661
2604
|
}
|
|
2662
2605
|
}
|
|
2663
|
-
|
|
2606
|
+
receiveUnvalidatedMessage(message) {
|
|
2664
2607
|
if (Array.isArray(message)) {
|
|
2665
|
-
|
|
2666
|
-
this.close(new TypeError("JSON-RPC batches are not supported on this connection"));
|
|
2667
|
-
return;
|
|
2668
|
-
}
|
|
2669
|
-
this.receiveBatch(message);
|
|
2608
|
+
this.sendMessage(protocolErrorResponse(RequestError.invalidRequest(undefined, "JSON-RPC batches are not supported"))).catch(() => {});
|
|
2670
2609
|
return;
|
|
2671
2610
|
}
|
|
2672
2611
|
if (!isRequestMessage(message) && !isNotificationMessage(message) && !isResponseShapedMessage(message)) {
|
|
2673
|
-
this.
|
|
2612
|
+
this.sendMessage(protocolErrorResponse(RequestError.invalidRequest(message))).catch(() => {});
|
|
2674
2613
|
return;
|
|
2675
2614
|
}
|
|
2676
2615
|
this.receiveMessage(message);
|
|
2677
2616
|
}
|
|
2678
|
-
|
|
2679
|
-
if (batch.length === 0) {
|
|
2680
|
-
this.sendWireMessage(protocolErrorResponse(RequestError.invalidRequest(batch))).catch(() => {});
|
|
2681
|
-
return;
|
|
2682
|
-
}
|
|
2683
|
-
const responseBatch = isResponseBatch(batch);
|
|
2684
|
-
const responseCount = responseBatch ? 0 : batch.reduce((count, message) => count + (isNotificationMessage(message) ? 0 : 1), 0);
|
|
2685
|
-
let remaining = responseCount;
|
|
2686
|
-
let remainingNotifications = batch.reduce((count, message) => count + (isNotificationMessage(message) ? 1 : 0), 0);
|
|
2687
|
-
let responseSent = false;
|
|
2688
|
-
const responses = [];
|
|
2689
|
-
const sendResponsesIfReady = async () => {
|
|
2690
|
-
if (responseSent || remaining !== 0 || remainingNotifications !== 0 || responses.length === 0) {
|
|
2691
|
-
return;
|
|
2692
|
-
}
|
|
2693
|
-
responseSent = true;
|
|
2694
|
-
await this.sendWireMessage(responses);
|
|
2695
|
-
};
|
|
2696
|
-
const collectResponse = async (response) => {
|
|
2697
|
-
responses.push(response);
|
|
2698
|
-
remaining -= 1;
|
|
2699
|
-
await sendResponsesIfReady();
|
|
2700
|
-
};
|
|
2701
|
-
for (const message of batch) {
|
|
2702
|
-
if (responseBatch) {
|
|
2703
|
-
if (isResponseShapedMessage(message)) {
|
|
2704
|
-
this.receiveMessage(message);
|
|
2705
|
-
}
|
|
2706
|
-
continue;
|
|
2707
|
-
}
|
|
2708
|
-
if (!isRequestMessage(message) && !isNotificationMessage(message)) {
|
|
2709
|
-
collectResponse(protocolErrorResponse(RequestError.invalidRequest(message))).catch(() => {});
|
|
2710
|
-
continue;
|
|
2711
|
-
}
|
|
2712
|
-
const processing = this.receiveMessage(message, isRequestMessage(message) ? collectResponse : undefined, batch.length);
|
|
2713
|
-
if (isNotificationMessage(message)) {
|
|
2714
|
-
processing.finally(() => {
|
|
2715
|
-
remainingNotifications -= 1;
|
|
2716
|
-
sendResponsesIfReady().catch((error) => this.close(error));
|
|
2717
|
-
});
|
|
2718
|
-
}
|
|
2719
|
-
}
|
|
2720
|
-
}
|
|
2721
|
-
receiveMessage(message, sendResponse, batchSize) {
|
|
2617
|
+
receiveMessage(message) {
|
|
2722
2618
|
if (this.abortController.signal.aborted) {
|
|
2723
2619
|
return Promise.resolve();
|
|
2724
2620
|
}
|
|
@@ -2730,7 +2626,7 @@ class Connection {
|
|
|
2730
2626
|
if (!("id" in message)) {
|
|
2731
2627
|
this.handleProtocolNotification(message);
|
|
2732
2628
|
}
|
|
2733
|
-
return this.processIncomingMessage(this.toIncomingMessage(message
|
|
2629
|
+
return this.processIncomingMessage(this.toIncomingMessage(message)).catch((error) => this.close(error));
|
|
2734
2630
|
} else if ("id" in message) {
|
|
2735
2631
|
this.handleResponse(message);
|
|
2736
2632
|
} else {
|
|
@@ -2785,7 +2681,7 @@ class Connection {
|
|
|
2785
2681
|
}
|
|
2786
2682
|
}
|
|
2787
2683
|
}
|
|
2788
|
-
toIncomingMessage(message
|
|
2684
|
+
toIncomingMessage(message) {
|
|
2789
2685
|
if ("id" in message) {
|
|
2790
2686
|
const abortController = new AbortController;
|
|
2791
2687
|
this.incomingRequests.set(message.id, abortController);
|
|
@@ -2800,11 +2696,8 @@ class Connection {
|
|
|
2800
2696
|
id: nullIdResponders.has(responder) ? null : message.id,
|
|
2801
2697
|
...result
|
|
2802
2698
|
};
|
|
2803
|
-
return
|
|
2699
|
+
return this.sendMessage(response);
|
|
2804
2700
|
}, abortController.signal, finishRequest);
|
|
2805
|
-
if (batchSize !== undefined) {
|
|
2806
|
-
requestBatchSizes.set(responder, batchSize);
|
|
2807
|
-
}
|
|
2808
2701
|
return {
|
|
2809
2702
|
kind: "request",
|
|
2810
2703
|
method: message.method,
|
|
@@ -2855,7 +2748,7 @@ class Connection {
|
|
|
2855
2748
|
closedReason() {
|
|
2856
2749
|
return this.abortController.signal.reason ?? new Error("ACP connection closed");
|
|
2857
2750
|
}
|
|
2858
|
-
async
|
|
2751
|
+
async sendMessage(message) {
|
|
2859
2752
|
if (this.abortController.signal.aborted) {
|
|
2860
2753
|
return rejectedPromise(this.closedReason());
|
|
2861
2754
|
}
|
|
@@ -3185,7 +3078,9 @@ function ndJsonStream(output, input, options = {}) {
|
|
|
3185
3078
|
await writeJson(protocolErrorResponse(RequestError.parseError()));
|
|
3186
3079
|
return;
|
|
3187
3080
|
}
|
|
3188
|
-
if (
|
|
3081
|
+
if (Array.isArray(message)) {
|
|
3082
|
+
await writeJson(protocolErrorResponse(RequestError.invalidRequest(undefined, "JSON-RPC batches are not supported")));
|
|
3083
|
+
} else if (isRecord(message)) {
|
|
3189
3084
|
controller.enqueue(message);
|
|
3190
3085
|
} else {
|
|
3191
3086
|
await writeJson(protocolErrorResponse(RequestError.invalidRequest(message)));
|
|
@@ -3513,7 +3408,7 @@ class ClientContext extends AcpContext {
|
|
|
3513
3408
|
}
|
|
3514
3409
|
request(method, params, options) {
|
|
3515
3410
|
const spec = agentRequestSpecsByMethod[method];
|
|
3516
|
-
return this.sendRequest(method, params, spec?.mapResponse, options);
|
|
3411
|
+
return treatSessionNotFoundAsSuccess(method, this.sendRequest(method, params, spec?.mapResponse, options), () => spec?.mapResponse ? spec.mapResponse({}) : {});
|
|
3517
3412
|
}
|
|
3518
3413
|
notify(method, params) {
|
|
3519
3414
|
return this.sendNotification(method, params);
|
|
@@ -3896,7 +3791,6 @@ function runConnectHandlers(connection, handlers) {
|
|
|
3896
3791
|
var appBuilder = Symbol("appBuilder");
|
|
3897
3792
|
var runAgentConnectHandlers = Symbol("runAgentConnectHandlers");
|
|
3898
3793
|
var runClientConnectHandlers = Symbol("runClientConnectHandlers");
|
|
3899
|
-
var stableConnectionOptions = { allowBatches: false };
|
|
3900
3794
|
function client(options) {
|
|
3901
3795
|
return new ClientApp(options);
|
|
3902
3796
|
}
|
|
@@ -3982,7 +3876,7 @@ class ClientApp {
|
|
|
3982
3876
|
return state;
|
|
3983
3877
|
}
|
|
3984
3878
|
const [thisStream, peerStream] = memoryStreamPair();
|
|
3985
|
-
const peerRawConnection = target[appBuilder]().connect(peerStream
|
|
3879
|
+
const peerRawConnection = target[appBuilder]().connect(peerStream);
|
|
3986
3880
|
const peerConnection = agentConnection(peerRawConnection);
|
|
3987
3881
|
const state = this.openStreamConnection(thisStream);
|
|
3988
3882
|
state.rawConnection.closed.then(() => peerConnection.close());
|
|
@@ -3998,7 +3892,7 @@ class ClientApp {
|
|
|
3998
3892
|
return state;
|
|
3999
3893
|
}
|
|
4000
3894
|
openStreamConnection(stream) {
|
|
4001
|
-
const rawConnection = this.builder.connect(stream
|
|
3895
|
+
const rawConnection = this.builder.connect(stream);
|
|
4002
3896
|
return {
|
|
4003
3897
|
rawConnection,
|
|
4004
3898
|
connection: clientConnection(rawConnection, this.connectHandlers)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getKv2,
|
|
3
|
+
upsertKv2,
|
|
4
|
+
deleteKv2,
|
|
5
|
+
init_db4
|
|
6
|
+
} from "./cli-wk5yrfwd.js";
|
|
7
|
+
import {
|
|
8
|
+
isEnvFlagEnabled,
|
|
9
|
+
init_env_flag
|
|
10
|
+
} from "./cli-cebvbc9t.js";
|
|
11
|
+
import {
|
|
12
|
+
__esm
|
|
13
|
+
} from "./cli-242037k3.js";
|
|
14
|
+
|
|
15
|
+
// src/slack/left-threads.ts
|
|
16
|
+
function isSlackLeaveThreadDisabled() {
|
|
17
|
+
return isEnvFlagEnabled(SLACK_LEAVE_THREAD_DISABLE, false);
|
|
18
|
+
}
|
|
19
|
+
function isSlackLeaveThreadCommand(text, botUserId) {
|
|
20
|
+
const withoutBotMentions = botUserId ? (text ?? "").replaceAll(`<@${botUserId}>`, "") : text ?? "";
|
|
21
|
+
return withoutBotMentions.trim() === "!leave";
|
|
22
|
+
}
|
|
23
|
+
function threadKey(channelId, threadTs) {
|
|
24
|
+
return `${channelId}:${threadTs}`;
|
|
25
|
+
}
|
|
26
|
+
async function leaveSlackThread(channelId, threadTs, leftBy) {
|
|
27
|
+
await upsertKv2({
|
|
28
|
+
namespace: SLACK_LEFT_THREAD_KV_NAMESPACE,
|
|
29
|
+
key: threadKey(channelId, threadTs),
|
|
30
|
+
value: { ...leftBy, leftAt: new Date().toISOString() },
|
|
31
|
+
valueType: "json"
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
async function isSlackThreadLeft(channelId, threadTs) {
|
|
35
|
+
return await getKv2(SLACK_LEFT_THREAD_KV_NAMESPACE, threadKey(channelId, threadTs)) !== null;
|
|
36
|
+
}
|
|
37
|
+
async function shouldSkipLeftSlackThread(channelId, threadTs, botMentioned) {
|
|
38
|
+
if (!threadTs)
|
|
39
|
+
return false;
|
|
40
|
+
const key = threadKey(channelId, threadTs);
|
|
41
|
+
if (botMentioned) {
|
|
42
|
+
if (await deleteKv2(SLACK_LEFT_THREAD_KV_NAMESPACE, key)) {
|
|
43
|
+
console.log(`[Slack] Rejoined left thread ${key}: bot mentioned`);
|
|
44
|
+
}
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
return isSlackThreadLeft(channelId, threadTs);
|
|
48
|
+
}
|
|
49
|
+
var SLACK_LEFT_THREAD_KV_NAMESPACE = "slack-left-thread", SLACK_LEAVE_THREAD_DISABLE = "SLACK_LEAVE_THREAD_DISABLE", SLACK_LEFT_THREAD_CONFIRMATION = "Left this thread. @mention the swarm to bring it back.";
|
|
50
|
+
var init_left_threads = __esm(() => {
|
|
51
|
+
init_db4();
|
|
52
|
+
init_env_flag();
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
export { SLACK_LEAVE_THREAD_DISABLE, isSlackLeaveThreadDisabled, SLACK_LEFT_THREAD_CONFIRMATION, isSlackLeaveThreadCommand, leaveSlackThread, isSlackThreadLeft, shouldSkipLeftSlackThread, init_left_threads };
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
splitErrorToolResultImages,
|
|
37
37
|
transformMessages,
|
|
38
38
|
init_transform_messages
|
|
39
|
-
} from "./cli-
|
|
39
|
+
} from "./cli-6vcp76qk.js";
|
|
40
40
|
import {
|
|
41
41
|
sanitizeSurrogates,
|
|
42
42
|
init_sanitize_unicode
|
|
@@ -63,8 +63,8 @@ import {
|
|
|
63
63
|
collapseSystemMessages,
|
|
64
64
|
init_transcript,
|
|
65
65
|
calculateCost,
|
|
66
|
-
|
|
67
|
-
} from "./cli-
|
|
66
|
+
init_models
|
|
67
|
+
} from "./cli-snpj5zbj.js";
|
|
68
68
|
import {
|
|
69
69
|
AssistantMessageEventStream,
|
|
70
70
|
init_event_stream,
|
|
@@ -4819,7 +4819,7 @@ function omit2(obj, ...keys) {
|
|
|
4819
4819
|
}
|
|
4820
4820
|
|
|
4821
4821
|
// node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js
|
|
4822
|
-
|
|
4822
|
+
init_models();
|
|
4823
4823
|
init_diagnostics();
|
|
4824
4824
|
init_error_body();
|
|
4825
4825
|
init_event_stream();
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from "./cli-dhar9qay.js";
|
|
6
6
|
import {
|
|
7
7
|
runStopHookSessionSummarySubprocess
|
|
8
|
-
} from "./cli-
|
|
8
|
+
} from "./cli-m0da8j35.js";
|
|
9
9
|
import {
|
|
10
10
|
redactRateLimitEventLine,
|
|
11
11
|
SessionErrorTracker,
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
import {
|
|
56
56
|
withFileLock,
|
|
57
57
|
init_file_lock
|
|
58
|
-
} from "./cli-
|
|
58
|
+
} from "./cli-tgrv9cjx.js";
|
|
59
59
|
import {
|
|
60
60
|
getOpenRouterAttributionHeaders,
|
|
61
61
|
init_openrouter_base_url
|
|
@@ -1263,7 +1263,7 @@ class ClaudeAdapter2 {
|
|
|
1263
1263
|
if (transport === "sdk" && isClaudeBridgeEffective(sourceEnv)) {
|
|
1264
1264
|
throw new Error("CLAUDE_TRANSPORT=sdk cannot run with an effective Claude Bridge configuration. Select CLI transport or disable the bridge.");
|
|
1265
1265
|
}
|
|
1266
|
-
const claudeSdk = transport === "sdk" ? await import("./claude-sdk-session-
|
|
1266
|
+
const claudeSdk = transport === "sdk" ? await import("./claude-sdk-session-x91kqyhm.js") : undefined;
|
|
1267
1267
|
claudeSdk?.validateClaudeSdkAdditionalArgs([
|
|
1268
1268
|
...claudeBinaryArgv.slice(1),
|
|
1269
1269
|
...config.additionalArgs ?? []
|
|
@@ -15393,7 +15393,7 @@ var styles_default = styles2;
|
|
|
15393
15393
|
// node_modules/ink/build/reconciler.js
|
|
15394
15394
|
if (process3.env["DEV"] === "true") {
|
|
15395
15395
|
try {
|
|
15396
|
-
await import("./devtools-
|
|
15396
|
+
await import("./devtools-qxfgbsqz.js");
|
|
15397
15397
|
} catch (error) {
|
|
15398
15398
|
if (error.code === "ERR_MODULE_NOT_FOUND") {
|
|
15399
15399
|
console.warn(`
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
CONTROLLER_COMMAND_TIMEOUT_MS,
|
|
5
5
|
RuntimeHandleSchema,
|
|
6
6
|
ControllerStatusResultSchema
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-3fg0bdcv.js";
|
|
8
8
|
import {
|
|
9
9
|
getDbClient2,
|
|
10
10
|
isRuntimePoolsEnabled,
|
|
@@ -21,8 +21,11 @@ import {
|
|
|
21
21
|
upsertSwarmConfig2,
|
|
22
22
|
getResolvedConfig2,
|
|
23
23
|
init_db4
|
|
24
|
-
} from "./cli-
|
|
24
|
+
} from "./cli-wk5yrfwd.js";
|
|
25
25
|
import {
|
|
26
|
+
getPoolCache,
|
|
27
|
+
reconcileCacheReleases,
|
|
28
|
+
init_cache_cleanup,
|
|
26
29
|
getRuntimeController2,
|
|
27
30
|
getRuntimeControllerTarget2,
|
|
28
31
|
checkE2bControllerConfig2,
|
|
@@ -32,7 +35,7 @@ import {
|
|
|
32
35
|
getPoolForAgent2,
|
|
33
36
|
resolvePoolDelivery2,
|
|
34
37
|
init_db2
|
|
35
|
-
} from "./cli-
|
|
38
|
+
} from "./cli-ddaanqkd.js";
|
|
36
39
|
import {
|
|
37
40
|
workflowEventBus2,
|
|
38
41
|
init_event_bus
|
|
@@ -42,7 +45,7 @@ import {
|
|
|
42
45
|
init_worker_follow_up,
|
|
43
46
|
canClaim,
|
|
44
47
|
init_budget_admission
|
|
45
|
-
} from "./cli-
|
|
48
|
+
} from "./cli-ws19768n.js";
|
|
46
49
|
import {
|
|
47
50
|
runtimeStaleThresholdMinutes,
|
|
48
51
|
getRuntimeInstanceById,
|
|
@@ -51,7 +54,7 @@ import {
|
|
|
51
54
|
listRuntimeInstancesForAgent,
|
|
52
55
|
listRuntimeInstancesForPool,
|
|
53
56
|
init_multi_runtime
|
|
54
|
-
} from "./cli-
|
|
57
|
+
} from "./cli-nmzhp1b5.js";
|
|
55
58
|
import {
|
|
56
59
|
isMultiRuntimeEnabled,
|
|
57
60
|
init_multi_runtime2
|
|
@@ -60,20 +63,20 @@ import {
|
|
|
60
63
|
canProvisionKind,
|
|
61
64
|
createRuntimeProvider,
|
|
62
65
|
init_runtime_providers
|
|
63
|
-
} from "./cli-
|
|
66
|
+
} from "./cli-yndmfxb3.js";
|
|
64
67
|
import {
|
|
65
68
|
mintRuntimeToken,
|
|
66
69
|
init_users
|
|
67
|
-
} from "./cli-
|
|
70
|
+
} from "./cli-5jnhv72d.js";
|
|
68
71
|
import {
|
|
69
72
|
import_websocket,
|
|
70
73
|
init_wrapper2
|
|
71
|
-
} from "./cli-
|
|
74
|
+
} from "./cli-69szn7w7.js";
|
|
72
75
|
import {
|
|
73
76
|
TERMINAL_TASK_STATUSES,
|
|
74
77
|
isTerminalTaskStatus,
|
|
75
78
|
init_types4
|
|
76
|
-
} from "./cli-
|
|
79
|
+
} from "./cli-n6bv12jn.js";
|
|
77
80
|
import {
|
|
78
81
|
init_zod
|
|
79
82
|
} from "./cli-k5671be5.js";
|
|
@@ -93,11 +96,11 @@ import {
|
|
|
93
96
|
import {
|
|
94
97
|
resolveWorkerApiUrl,
|
|
95
98
|
init_worker_api_url
|
|
96
|
-
} from "./cli-
|
|
99
|
+
} from "./cli-xae4g51r.js";
|
|
97
100
|
import {
|
|
98
101
|
RUNTIME_LABELS,
|
|
99
102
|
init_types5
|
|
100
|
-
} from "./cli-
|
|
103
|
+
} from "./cli-0agcv1v5.js";
|
|
101
104
|
import {
|
|
102
105
|
scrubSecrets,
|
|
103
106
|
registerVolatileSecret,
|
|
@@ -118,6 +121,7 @@ init_budget_admission();
|
|
|
118
121
|
init_db4();
|
|
119
122
|
init_multi_runtime();
|
|
120
123
|
init_users();
|
|
124
|
+
init_cache_cleanup();
|
|
121
125
|
|
|
122
126
|
// src/be/runtime-pools/controllers.ts
|
|
123
127
|
init_runtime_providers();
|
|
@@ -162,12 +166,17 @@ class RemoteController {
|
|
|
162
166
|
renew;
|
|
163
167
|
pause;
|
|
164
168
|
resume;
|
|
169
|
+
releaseCache;
|
|
165
170
|
constructor(id, ws, traits, workerApiUrl, timeouts = {}) {
|
|
166
171
|
this.id = id;
|
|
167
172
|
this.ws = ws;
|
|
168
173
|
this.traits = traits;
|
|
169
174
|
this.workerApiUrl = workerApiUrl;
|
|
170
175
|
this.timeouts = timeouts;
|
|
176
|
+
if (traits.persistentCache)
|
|
177
|
+
this.releaseCache = async (cache) => {
|
|
178
|
+
await this.call({ op: "release-cache", payload: cache });
|
|
179
|
+
};
|
|
171
180
|
if (traits.maxTtlSec)
|
|
172
181
|
this.renew = async (handle, ttlSec) => object2({ endAt: string2() }).parse(await this.call({ op: "renew", payload: { handle, ttlSec } }));
|
|
173
182
|
if (traits.supportsPause) {
|
|
@@ -537,7 +546,7 @@ async function recoverSessions(runtimeId, reason) {
|
|
|
537
546
|
}
|
|
538
547
|
if (!sessions.length)
|
|
539
548
|
return;
|
|
540
|
-
const { remediateTaskForDeadRuntime } = await import("./heartbeat-
|
|
549
|
+
const { remediateTaskForDeadRuntime } = await import("./heartbeat-k42svnr0.js");
|
|
541
550
|
for (const session of sessions) {
|
|
542
551
|
try {
|
|
543
552
|
const task = await getTaskById2(session.taskId);
|
|
@@ -818,6 +827,9 @@ async function provisionRuntime(pool, agent, controller, ownerId, now = new Date
|
|
|
818
827
|
if (templateId)
|
|
819
828
|
env.TEMPLATE_ID = templateId;
|
|
820
829
|
const ttlSec = pool.kind === "e2b" ? poolLeaseTtl(pool, controller) : undefined;
|
|
830
|
+
const currentPoolCache = await getPoolCache(pool.id);
|
|
831
|
+
const currentCache = currentPoolCache?.controllerId === pool.placements[0] ? currentPoolCache : null;
|
|
832
|
+
const cache = currentCache && controller.traits.persistentCache ? { key: currentCache.key, mountPath: currentCache.mountPath } : undefined;
|
|
821
833
|
signal?.throwIfAborted();
|
|
822
834
|
const handle = await controller.provision({
|
|
823
835
|
runtimeId,
|
|
@@ -828,6 +840,7 @@ async function provisionRuntime(pool, agent, controller, ownerId, now = new Date
|
|
|
828
840
|
...ttlSec === undefined ? {} : { ttlSec },
|
|
829
841
|
env,
|
|
830
842
|
resources: pool.resources ?? undefined,
|
|
843
|
+
...cache ? { cache } : {},
|
|
831
844
|
labels: {
|
|
832
845
|
[RUNTIME_LABELS.runtimeId]: runtimeId,
|
|
833
846
|
[RUNTIME_LABELS.poolId]: pool.id,
|
|
@@ -840,6 +853,17 @@ async function provisionRuntime(pool, agent, controller, ownerId, now = new Date
|
|
|
840
853
|
await markRuntimeTerminated(runtimeId, "Supervisor stopped during provision");
|
|
841
854
|
return false;
|
|
842
855
|
}
|
|
856
|
+
const cacheWarning = currentCache ? !controller.traits.persistentCache ? "Controller does not support persistent caches; runtime started without cache" : handle.meta?.cacheWarning : undefined;
|
|
857
|
+
const cacheErrorPrefix = "Persistent cache: ";
|
|
858
|
+
const cacheError = cacheWarning ? cacheErrorPrefix + scrubSecrets(cacheWarning) : null;
|
|
859
|
+
await getDbClient2().run(`UPDATE runtime_pools SET last_error = ?, last_error_at = ?
|
|
860
|
+
WHERE id = ? AND (last_error IS NULL OR substr(last_error, 1, ?) = ?)`, [
|
|
861
|
+
cacheError,
|
|
862
|
+
cacheError ? new Date().toISOString() : null,
|
|
863
|
+
pool.id,
|
|
864
|
+
cacheErrorPrefix.length,
|
|
865
|
+
cacheErrorPrefix
|
|
866
|
+
]);
|
|
843
867
|
await getDbClient2().run("UPDATE runtime_instances SET external_handle = ?, lease_expires_at = ?, created_at = COALESCE(?, created_at), updated_at = ? WHERE id = ?", [
|
|
844
868
|
JSON.stringify(handle),
|
|
845
869
|
ttlSec === undefined ? null : handle.meta?.leaseExpiresAt ?? new Date(now.getTime() + ttlSec * 1000).toISOString(),
|
|
@@ -1286,8 +1310,9 @@ async function reconcilePools(now, commands, signal) {
|
|
|
1286
1310
|
async function reconcileOnce(opts = {}) {
|
|
1287
1311
|
if (!isRuntimePoolsEnabled() || !isMultiRuntimeEnabled() || inFlight)
|
|
1288
1312
|
return;
|
|
1289
|
-
|
|
1290
|
-
|
|
1313
|
+
const tick = new AbortController;
|
|
1314
|
+
tickAbort = tick;
|
|
1315
|
+
inFlight = reconcilePools(opts.now ?? new Date, opts.getControllerCommands ?? getControllerCommands, tick.signal).then(() => reconcileCacheReleases(opts.getControllerCommands ?? getControllerCommands, tick.signal));
|
|
1291
1316
|
try {
|
|
1292
1317
|
await inFlight;
|
|
1293
1318
|
} catch (error) {
|