@desplega.ai/agent-swarm 1.150.0 → 1.152.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/dist/{acp-adapter-d5mzggyk.js → acp-adapter-d05sg0q4.js} +5 -5
- package/dist/{actions-wn6ew0p7.js → actions-4sc0v342.js} +38 -11
- package/dist/{anthropic-messages-ec35ktvx.js → anthropic-messages-2y8nktar.js} +16 -16
- package/dist/{app-dty7p9hg.js → app-2d0v6kt6.js} +7 -7
- package/dist/{assistant-q4vhgjtx.js → assistant-zs6wdnrf.js} +41 -16
- package/dist/{azure-openai-responses-g85jv7m8.js → azure-openai-responses-f38x2avq.js} +13 -13
- package/dist/{boot-reembed-n15q6s9x.js → boot-reembed-3dwdnnsr.js} +13 -15
- package/dist/{boot-reembed-92292pgf.js → boot-reembed-vhh33520.js} +8 -8
- package/dist/{boot-scrub-logs-44pc955m.js → boot-scrub-logs-e1fnabcg.js} +5 -5
- package/dist/{claude-adapter-cjegjbje.js → claude-adapter-h58xqzzd.js} +12 -13
- package/dist/{claude-managed-adapter-p3ts5m9m.js → claude-managed-adapter-dsmkcrjy.js} +3 -3
- package/dist/{claude-sdk-session-7ywbn12v.js → claude-sdk-session-pbaczbgt.js} +12 -13
- package/dist/{cli-9gqddmxs.js → cli-4fqn2vpg.js} +8 -8
- package/dist/{cli-mzb0n642.js → cli-4wppfkcm.js} +350 -20
- package/dist/{cli-h505yhex.js → cli-5bqt4gwa.js} +2 -2
- package/dist/{cli-hbagregr.js → cli-5p007m2q.js} +88 -13
- package/dist/{cli-3ckzxdt1.js → cli-6k2athpf.js} +94 -81
- package/dist/{cli-3mh119qv.js → cli-72vksk1n.js} +9855 -693
- package/dist/{cli-taym3dmg.js → cli-87hdfyde.js} +13 -13
- package/dist/{cli-zthatyrx.js → cli-8fy9dmpv.js} +5 -5
- package/dist/{cli-asvrh7kj.js → cli-9xvdm3bx.js} +1 -1
- package/dist/{cli-72xdszyx.js → cli-awb59f08.js} +2 -2
- package/dist/{cli-vr6qj104.js → cli-cs9z1hw3.js} +1 -1
- package/dist/{cli-kt7wevqh.js → cli-cwvey7n1.js} +164 -56
- package/dist/{cli-5my3bjsd.js → cli-d3p82erb.js} +7 -7
- package/dist/{cli-7kwmt3r5.js → cli-evgy5w3y.js} +9 -3
- package/dist/{cli-111ey3ra.js → cli-f1f9n77e.js} +5 -5
- package/dist/{cli-ttje5a4z.js → cli-fhdssm2v.js} +105 -56
- package/dist/{cli-a45d5v9b.js → cli-fm4ytsdk.js} +2 -2
- package/dist/{cli-qp69dd5d.js → cli-gacq5hg8.js} +116 -14
- package/dist/{cli-hmyynq9b.js → cli-ht5rs63n.js} +1 -1
- package/dist/{cli-dyx0237s.js → cli-j4nv2wqy.js} +2 -4
- package/dist/{cli-gm0fhz13.js → cli-jh9txj4n.js} +2 -1
- package/dist/{cli-8chp8xab.js → cli-nd5s3m4y.js} +2 -2
- package/dist/{cli-zd21jrrc.js → cli-p2hx1pxm.js} +9872 -424
- package/dist/cli-pf9q3696.js +172 -0
- package/dist/{cli-7fesa1ky.js → cli-pgj4a5fb.js} +1 -1
- package/dist/{cli-07jd68a1.js → cli-re8z5p8p.js} +1 -1
- package/dist/{cli-ryz8q8p1.js → cli-t1mykkng.js} +40 -40
- package/dist/{cli-ck1vqzdj.js → cli-t6axtdcg.js} +9 -4
- package/dist/{cli-1mx65de9.js → cli-wbyk465z.js} +1 -1
- package/dist/{cli-kyysm7m3.js → cli-wp7cejrg.js} +1 -1
- package/dist/{cli-n75jt793.js → cli-z61ykvam.js} +6 -5
- package/dist/{cli-ceb5y160.js → cli-zdcdh02m.js} +1 -1
- package/dist/{cli-cmp8g3sw.js → cli-zfzznn7c.js} +45 -9
- package/dist/cli.js +22 -21
- package/dist/{codex-adapter-rn3aq7jm.js → codex-adapter-v3cz462q.js} +8 -9
- package/dist/{codex-hook-gthcmm0g.js → codex-hook-8jexc34x.js} +2 -2
- package/dist/{codex-session-runner-bge0cbsw.js → codex-session-runner-de1a5g5z.js} +8 -9
- package/dist/{commands-26phw0pc.js → commands-wfqqpn95.js} +5 -5
- package/dist/{db-jxjx6s1b.js → db-9zzv5y05.js} +5 -5
- package/dist/dispatcher-hfm1jbgx.js +74 -0
- package/dist/{google-generative-ai-tsskx7te.js → google-generative-ai-ndjmj5fa.js} +7 -7
- package/dist/{google-vertex-pkhpkbq9.js → google-vertex-fr665tqs.js} +10 -10
- package/dist/handlers-wrrhsack.js +65 -0
- package/dist/{hook-jw0ztn96.js → hook-9skye8zd.js} +9 -10
- package/dist/{hook-t6fqsggw.js → hook-fgjv62k5.js} +9 -10
- package/dist/{http-hyc7s57s.js → http-7grttjfq.js} +1434 -579
- package/dist/{index-bcyx5djw.js → index-29gxx9ar.js} +25 -17
- package/dist/{index-wtwpthe1.js → index-30pz2h9w.js} +25 -19
- package/dist/{index-1d9r6a74.js → index-4ek1df87.js} +26 -20
- package/dist/{index-sfhaq59d.js → index-myfwqqyq.js} +120 -102
- package/dist/index-pfhzrh1d.js +25 -0
- package/dist/{keepalive-fbsak4ya.js → keepalive-j75m2m7k.js} +7 -7
- package/dist/{lead-rdzdm627.js → lead-a1hpjt0a.js} +41 -49
- package/dist/{maintenance-25z1c1vf.js → maintenance-tngjzqdq.js} +8 -8
- package/dist/{node-209sxmg3.js → node-x1g4v0pq.js} +9 -9
- package/dist/{oauth-refresh-sweep-j3d7gtse.js → oauth-refresh-sweep-em1fn044.js} +6 -6
- package/dist/{onboard-dkcwrc75.js → onboard-fv7ezvwx.js} +13 -4
- package/dist/{openai-codex-responses-pm5gnyfa.js → openai-codex-responses-wy6a43wd.js} +11 -11
- package/dist/{openai-responses-vwvk1taj.js → openai-responses-6xwf7bzg.js} +13 -13
- package/dist/{opencode-adapter-dce4wskd.js → opencode-adapter-28axqa09.js} +4 -4
- package/dist/{otel-impl-8rgyy3j8.js → otel-impl-6vbb568y.js} +1 -1
- package/dist/{pi-mono-adapter-4s2bbkgq.js → pi-mono-adapter-jcqt71cg.js} +14 -16
- package/dist/{pricing-refresh-9cek71nq.js → pricing-refresh-nmm949an.js} +7 -7
- package/dist/{rbac-roles-vk8mqp9v.js → rbac-roles-0fz5qryx.js} +7 -7
- package/dist/{rbac-roles-z98s2ypy.js → rbac-roles-xtp05syf.js} +13 -9
- package/dist/{render-v2-3j26g0qh.js → render-v2-fpb8whme.js} +7 -7
- package/dist/{seed-pricing-7rxhcnzm.js → seed-pricing-zwa8bs3t.js} +6 -6
- package/dist/{setup-e2t7vz0c.js → setup-3ybwbdpd.js} +2 -2
- package/dist/{work-objects-8d3nd3x2.js → work-objects-rmayxcx7.js} +41 -16
- package/dist/{worker-0x9fn7nq.js → worker-rng4jhnh.js} +41 -49
- package/openapi.json +1351 -265
- package/package.json +2 -1
- package/src/agentmail/handlers.ts +95 -71
- package/src/be/db-client.ts +5 -0
- package/src/be/db.ts +12 -4
- package/src/be/extensions/db.ts +461 -0
- package/src/be/extensions/validate.ts +107 -0
- package/src/be/memory/boot-reembed.ts +17 -12
- package/src/be/memory/index.ts +12 -0
- package/src/be/memory/providers/openai-embedding.ts +4 -0
- package/src/be/memory/types.ts +2 -0
- package/src/be/migrations/155_extensions.sql +66 -0
- package/src/be/migrations/156_inbox_item_state_read_at.sql +7 -0
- package/src/be/rbac-roles.ts +3 -2
- package/src/be/scripts/typecheck.ts +56 -38
- package/src/be/seed-skills/index.ts +7 -0
- package/src/be/swarm-config-guard.ts +10 -2
- package/src/commands/onboard/compose-generator.ts +14 -2
- package/src/commands/onboard/env-generator.ts +7 -0
- package/src/commands/runner.ts +1 -1
- package/src/extensions/apply-task-create.ts +135 -0
- package/src/extensions/bundle-path.ts +10 -0
- package/src/extensions/contract-runtime.ts +7 -0
- package/src/extensions/contract-types.generated.ts +4 -0
- package/src/extensions/contract.ts +270 -0
- package/src/extensions/ctx.ts +186 -0
- package/src/extensions/dispatcher.ts +479 -0
- package/src/extensions/identity.ts +44 -0
- package/src/extensions/lifecycle.ts +303 -0
- package/src/extensions/loader.ts +207 -0
- package/src/extensions/post-bridge.ts +161 -0
- package/src/github/handlers.ts +185 -149
- package/src/gitlab/handlers.ts +97 -81
- package/src/heartbeat/heartbeat.ts +152 -83
- package/src/http/agents.ts +1 -1
- package/src/http/all-routes.ts +1 -0
- package/src/http/apps.ts +14 -10
- package/src/http/core.ts +34 -0
- package/src/http/extensions.ts +552 -0
- package/src/http/inbox-state.ts +2 -0
- package/src/http/index.ts +25 -0
- package/src/http/mcp-bridge.ts +96 -62
- package/src/http/mcp.ts +1 -1
- package/src/http/status.ts +6 -4
- package/src/http/tasks.ts +51 -35
- package/src/integrations/kapso/inbound.ts +15 -11
- package/src/jira/sync.ts +26 -18
- package/src/linear/sync.ts +26 -18
- package/src/prompts/session-templates.ts +5 -4
- package/src/rbac/admission.ts +1 -1
- package/src/rbac/elevated-agents.ts +24 -0
- package/src/rbac/legacy-policy.ts +47 -6
- package/src/rbac/permissions.ts +8 -0
- package/src/scheduler/deferred-task-waits.ts +133 -51
- package/src/scheduler/schedule-task.ts +50 -24
- package/src/scheduler/scheduler.ts +4 -2
- package/src/scripts-runtime/executors/native.ts +5 -1
- package/src/scripts-runtime/executors/types.ts +5 -0
- package/src/scripts-runtime/import-allowlist.ts +79 -19
- package/src/scripts-runtime/sdk-allowlist.ts +8 -0
- package/src/scripts-runtime/swarm-config.ts +8 -0
- package/src/scripts-runtime/swarm-sdk.ts +3 -0
- package/src/scripts-runtime/types/stdlib.d.ts +13 -0
- package/src/scripts-runtime/types/swarm-extension.d.ts +562 -0
- package/src/scripts-runtime/types/swarm-sdk.d.ts +13 -0
- package/src/server.ts +18 -0
- package/src/slack/HEURISTICS.md +1 -1
- package/src/slack/actions.ts +21 -17
- package/src/slack/blocks.ts +1 -1
- package/src/slack/handlers.ts +98 -5
- package/src/slack/inbound-files.ts +6 -2
- package/src/slack/render-v2.ts +181 -39
- package/src/slack/responses.ts +7 -4
- package/src/slack/router.ts +13 -3
- package/src/slack/steering.ts +3 -3
- package/src/slack/task-output.ts +21 -0
- package/src/slack/watcher.ts +3 -2
- package/src/slack/work-objects.ts +2 -1
- package/src/tasks/errors.ts +9 -0
- package/src/tasks/sibling-awareness.ts +35 -1
- package/src/tasks/worker-follow-up.ts +64 -12
- package/src/tests/base-prompt.test.ts +1 -0
- package/src/tests/deferred-task-wake.test.ts +161 -9
- package/src/tests/docs-index-footprint.test.js +3 -3
- package/src/tests/env-flag.test.ts +1 -0
- package/src/tests/extensions-db.test.ts +216 -0
- package/src/tests/extensions-dispatcher.test.ts +275 -0
- package/src/tests/extensions-example-heartbeat-remediate.test.ts +69 -0
- package/src/tests/extensions-example-mcp-install.test.ts +63 -0
- package/src/tests/extensions-example-no-exclamation-marks.test.ts +72 -0
- package/src/tests/extensions-example-rewrite-and-suppress.test.ts +70 -0
- package/src/tests/extensions-example-route-slack-channel.test.ts +217 -0
- package/src/tests/extensions-heartbeat.test.ts +291 -0
- package/src/tests/extensions-http.test.ts +512 -0
- package/src/tests/extensions-lead-equivalence.test.ts +70 -0
- package/src/tests/extensions-lifecycle.test.ts +209 -0
- package/src/tests/extensions-loader.test.ts +95 -0
- package/src/tests/extensions-mcp-tools.test.ts +353 -0
- package/src/tests/extensions-pre-task.test.ts +487 -0
- package/src/tests/extensions-run-context.test.ts +41 -0
- package/src/tests/extensions-tool-call.test.ts +288 -0
- package/src/tests/extensions-validate.test.ts +196 -0
- package/src/tests/fixtures/extensions/bad-import/hooks.ts +8 -0
- package/src/tests/fixtures/extensions/bad-import/manifest.json +9 -0
- package/src/tests/fixtures/extensions/bad-return-shape/hooks.ts +10 -0
- package/src/tests/fixtures/extensions/bad-return-shape/manifest.json +9 -0
- package/src/tests/fixtures/extensions/block-tasks-from-source/hooks.ts +22 -0
- package/src/tests/fixtures/extensions/block-tasks-from-source/manifest.json +9 -0
- package/src/tests/fixtures/extensions/ignore-channel/hooks.ts +22 -0
- package/src/tests/fixtures/extensions/ignore-channel/manifest.json +9 -0
- package/src/tests/fixtures/extensions/load.ts +10 -0
- package/src/tests/fixtures/extensions/minimal/hooks.ts +7 -0
- package/src/tests/fixtures/extensions/minimal/manifest.json +9 -0
- package/src/tests/fixtures/extensions/never-fail-long-tasks/hooks.ts +11 -0
- package/src/tests/fixtures/extensions/never-fail-long-tasks/manifest.json +9 -0
- package/src/tests/fixtures/extensions/no-exclamation-marks/hooks.ts +23 -0
- package/src/tests/fixtures/extensions/no-exclamation-marks/manifest.json +9 -0
- package/src/tests/fixtures/extensions/post-logger/hooks.ts +9 -0
- package/src/tests/fixtures/extensions/post-logger/manifest.json +9 -0
- package/src/tests/fixtures/extensions/priority-a/hooks.ts +7 -0
- package/src/tests/fixtures/extensions/priority-a/manifest.json +9 -0
- package/src/tests/fixtures/extensions/priority-b/hooks.ts +7 -0
- package/src/tests/fixtures/extensions/priority-b/manifest.json +9 -0
- package/src/tests/fixtures/extensions/record-only-on-tag/hooks.ts +16 -0
- package/src/tests/fixtures/extensions/record-only-on-tag/manifest.json +9 -0
- package/src/tests/fixtures/extensions/reserved-assets/hooks.ts +5 -0
- package/src/tests/fixtures/extensions/reserved-assets/manifest.json +10 -0
- package/src/tests/fixtures/extensions/rewrite-progress-prefix/hooks.ts +22 -0
- package/src/tests/fixtures/extensions/rewrite-progress-prefix/manifest.json +9 -0
- package/src/tests/fixtures/extensions/rewrite-task-priority/hooks.ts +7 -0
- package/src/tests/fixtures/extensions/rewrite-task-priority/manifest.json +9 -0
- package/src/tests/fixtures/extensions/route-channel-to-agent/hooks.ts +26 -0
- package/src/tests/fixtures/extensions/route-channel-to-agent/manifest.json +9 -0
- package/src/tests/fixtures/extensions/slow/hooks.ts +10 -0
- package/src/tests/fixtures/extensions/slow/manifest.json +9 -0
- package/src/tests/fixtures/extensions/suppress-lead-follow-up/hooks.ts +12 -0
- package/src/tests/fixtures/extensions/suppress-lead-follow-up/manifest.json +9 -0
- package/src/tests/fixtures/extensions/throws/hooks.ts +12 -0
- package/src/tests/fixtures/extensions/throws/manifest.json +9 -0
- package/src/tests/fixtures/extensions/worker-runtime/hooks.ts +5 -0
- package/src/tests/fixtures/extensions/worker-runtime/manifest.json +9 -0
- package/src/tests/fixtures/store-progress-malformed-output.json +4 -0
- package/src/tests/memory-edit-authorization.test.ts +32 -0
- package/src/tests/multi-runtime-enabled-stats.test.ts +2 -2
- package/src/tests/multi-runtime-registration.test.ts +14 -14
- package/src/tests/onboard-compose.test.ts +44 -0
- package/src/tests/preload.ts +5 -0
- package/src/tests/rbac-admission-e2e.test.ts +35 -4
- package/src/tests/rbac-admission.test.ts +18 -3
- package/src/tests/rbac-e2e-helpers.ts +18 -0
- package/src/tests/rbac-engine.test.ts +39 -0
- package/src/tests/rbac-mcp-admission-e2e.test.ts +22 -4
- package/src/tests/realtime-room-auth.test.ts +1 -1
- package/src/tests/reload-config.test.ts +61 -0
- package/src/tests/routing-affinity-inventory.test.ts +1 -1
- package/src/tests/script-connections.test.ts +2 -0
- package/src/tests/scripts-boot-reembed.test.ts +4 -0
- package/src/tests/scripts-embeddings.test.ts +4 -0
- package/src/tests/scripts-import-allowlist.test.ts +44 -1
- package/src/tests/scripts-mcp-e2e.test.ts +80 -0
- package/src/tests/scripts-only-gating.test.ts +6 -0
- package/src/tests/scripts-runtime-identity.test.ts +1 -1
- package/src/tests/slack-blocks.test.ts +12 -1
- package/src/tests/slack-render-v2.test.ts +100 -5
- package/src/tests/slack-router.test.ts +17 -2
- package/src/tests/slack-steering.test.ts +19 -0
- package/src/tests/slack-task-output.test.ts +36 -0
- package/src/tests/status.test.ts +12 -0
- package/src/tests/steering-enabled.test.ts +6 -8
- package/src/tests/store-progress-attachments-handler.test.ts +100 -1
- package/src/tests/swarm-config-reserved-keys.test.ts +6 -1
- package/src/tests/task-tool-preload-mcp.test.ts +4 -1
- package/src/tests/tool-annotations.test.ts +1 -1
- package/src/tests/tool-registrar-no-input.test.ts +42 -1
- package/src/tools/defer-task.ts +1 -1
- package/src/tools/extension-activate-version.ts +38 -0
- package/src/tools/extension-common.ts +85 -0
- package/src/tools/extension-delete.ts +29 -0
- package/src/tools/extension-disable.ts +36 -0
- package/src/tools/extension-enable.ts +36 -0
- package/src/tools/extension-install.ts +65 -0
- package/src/tools/extension-list.ts +66 -0
- package/src/tools/script-common.ts +43 -18
- package/src/tools/send-task.ts +69 -107
- package/src/tools/store-progress.ts +30 -0
- package/src/tools/task-action.ts +43 -22
- package/src/tools/task-tool-ctx.ts +2 -0
- package/src/tools/tool-config.ts +7 -1
- package/src/tools/utils.ts +140 -16
- package/src/types.ts +133 -0
- package/src/utils/multi-runtime.ts +2 -2
- package/src/utils/steering-enabled.ts +4 -4
- package/src/workflows/executors/agent-task.ts +13 -3
- package/templates/extensions/README.md +17 -0
- package/templates/extensions/notify-on-complete/README.md +11 -0
- package/templates/extensions/notify-on-complete/hooks.ts +61 -0
- package/templates/extensions/notify-on-complete/manifest.json +7 -0
- package/templates/extensions/require-ticket-ref/README.md +11 -0
- package/templates/extensions/require-ticket-ref/hooks.ts +30 -0
- package/templates/extensions/require-ticket-ref/manifest.json +7 -0
- package/templates/extensions/require-verification-note/README.md +11 -0
- package/templates/extensions/require-verification-note/hooks.ts +32 -0
- package/templates/extensions/require-verification-note/manifest.json +7 -0
- package/templates/skills/agent-browser/SKILL.md +84 -0
- package/templates/skills/agent-browser/content.md +21 -0
- package/templates/skills/scheduling/content.md +2 -0
- package/templates/skills/swarm-extensions/config.json +14 -0
- package/templates/skills/swarm-extensions/content.md +120 -0
- package/dist/cli-b8x19vbh.js +0 -823
- package/dist/cli-n1yj5fd5.js +0 -164
- package/dist/cli-q04q68be.js +0 -3066
- package/dist/cli-qgm2pfpq.js +0 -6377
- package/dist/cli-rnsr8asm.js +0 -4323
- package/dist/cli-rwp3ksm7.js +0 -545
- package/dist/cli-xjb9wghj.js +0 -668
- package/dist/cli-xvkmedgn.js +0 -332
- package/dist/cli-ydk0wjj8.js +0 -338
- package/dist/handlers-vr1djg4n.js +0 -41
- package/dist/{claude-managed-setup-f5pmsyrp.js → claude-managed-setup-48dwg9bv.js} +3 -3
- package/dist/{cli-81r683bv.js → cli-ch38q5z4.js} +0 -0
- package/dist/{cli-wk0gjrn3.js → cli-kj76p1ez.js} +6 -6
- package/dist/{cli-c71mg51n.js → cli-r2fpe7cx.js} +5 -5
- package/dist/{cli-8qx7jnrk.js → cli-y6x0gqtg.js} +16 -16
- package/dist/{index-aa3sa6s8.js → index-2wsdsnmm.js} +1 -1
- package/dist/{mistral-conversations-4ryk7h83.js → mistral-conversations-qhr84ph3.js} +9 -9
- package/dist/{openai-completions-qdcmkfnr.js → openai-completions-32rdwmze.js} +17 -17
- package/dist/{openrouter-images-qx18fyp8.js → openrouter-images-9f9ek4rw.js} +3 -3
- package/dist/{pi-messages-79jvzz1d.js → pi-messages-b1mbr6gp.js} +4 -4
|
@@ -5,32 +5,36 @@ import {
|
|
|
5
5
|
instantFlush,
|
|
6
6
|
requestSlackThreadSteering,
|
|
7
7
|
wasEventSeen
|
|
8
|
-
} from "./cli-
|
|
8
|
+
} from "./cli-4fqn2vpg.js";
|
|
9
9
|
import {
|
|
10
|
+
enrichSlackUserEmail,
|
|
11
|
+
resolveSlackUserId,
|
|
12
|
+
rewriteSlackMentions
|
|
13
|
+
} from "./cli-awb59f08.js";
|
|
14
|
+
import {
|
|
15
|
+
TaskCreationBlockedError,
|
|
16
|
+
broadcastMatches,
|
|
10
17
|
buildEffectiveText,
|
|
11
18
|
createSlackTaskWithFiles,
|
|
19
|
+
dispatchPre,
|
|
12
20
|
extractSlackMessageText,
|
|
13
21
|
extractTaskFromMessage,
|
|
14
22
|
fetchSlackFiles,
|
|
15
23
|
hasOtherUserMention,
|
|
16
24
|
notifySlackFileFailures,
|
|
17
25
|
routeMessage
|
|
18
|
-
} from "./cli-
|
|
19
|
-
import {
|
|
20
|
-
enrichSlackUserEmail,
|
|
21
|
-
resolveSlackUserId,
|
|
22
|
-
rewriteSlackMentions
|
|
23
|
-
} from "./cli-72xdszyx.js";
|
|
26
|
+
} from "./cli-72vksk1n.js";
|
|
24
27
|
import {
|
|
25
28
|
ackSlackMessage,
|
|
26
29
|
buildTreeBlocks,
|
|
27
30
|
ensureSlackThreadTree,
|
|
28
31
|
isSlackRenderV2Enabled,
|
|
29
32
|
registerTreeMessage
|
|
30
|
-
} from "./cli-
|
|
33
|
+
} from "./cli-cwvey7n1.js";
|
|
31
34
|
import {
|
|
32
35
|
getAgentById,
|
|
33
36
|
getAgentWorkingOnThread,
|
|
37
|
+
getAllAgents,
|
|
34
38
|
getLeadAgent,
|
|
35
39
|
getMostRecentTaskInThread,
|
|
36
40
|
getTasksByAgentId,
|
|
@@ -38,15 +42,25 @@ import {
|
|
|
38
42
|
init_db,
|
|
39
43
|
reactionName,
|
|
40
44
|
slackContextKey
|
|
41
|
-
} from "./cli-
|
|
45
|
+
} from "./cli-gacq5hg8.js";
|
|
42
46
|
import {
|
|
43
47
|
init_resolver,
|
|
44
48
|
resolveTemplate
|
|
45
|
-
} from "./cli-
|
|
49
|
+
} from "./cli-z61ykvam.js";
|
|
46
50
|
import {
|
|
47
51
|
init_env_flag,
|
|
48
52
|
isEnvFlagEnabled
|
|
49
53
|
} from "./cli-ej6gbxfb.js";
|
|
54
|
+
import {
|
|
55
|
+
init_zod
|
|
56
|
+
} from "./cli-sd0mxa3c.js";
|
|
57
|
+
import {
|
|
58
|
+
exports_external
|
|
59
|
+
} from "./cli-w5e1d1vv.js";
|
|
60
|
+
import {
|
|
61
|
+
init_secret_scrubber,
|
|
62
|
+
scrubSecrets
|
|
63
|
+
} from "./cli-r2ap2czm.js";
|
|
50
64
|
import {
|
|
51
65
|
init_event_bus,
|
|
52
66
|
workflowEventBus
|
|
@@ -57,11 +71,20 @@ import {
|
|
|
57
71
|
} from "./cli-bc05qbss.js";
|
|
58
72
|
|
|
59
73
|
// src/slack/handlers.ts
|
|
74
|
+
init_zod();
|
|
60
75
|
init_db();
|
|
61
76
|
init_resolver();
|
|
62
77
|
init_context_key();
|
|
78
|
+
init_secret_scrubber();
|
|
63
79
|
init_event_bus();
|
|
64
80
|
init_env_flag();
|
|
81
|
+
var SlackRouteModifySchema = exports_external.object({
|
|
82
|
+
target: exports_external.discriminatedUnion("kind", [
|
|
83
|
+
exports_external.object({ kind: exports_external.literal("agent"), agentId: exports_external.string().min(1) }).strict(),
|
|
84
|
+
exports_external.object({ kind: exports_external.literal("lead") }).strict(),
|
|
85
|
+
exports_external.object({ kind: exports_external.literal("broadcast") }).strict()
|
|
86
|
+
])
|
|
87
|
+
}).strict();
|
|
65
88
|
var allowedEmailDomains = (process.env.SLACK_ALLOWED_EMAIL_DOMAINS || "").split(",").map((d) => d.trim().toLowerCase()).filter(Boolean);
|
|
66
89
|
var allowedUserIds = (process.env.SLACK_ALLOWED_USER_IDS || "").split(",").map((id) => id.trim()).filter(Boolean);
|
|
67
90
|
var filteringEnabled = allowedEmailDomains.length > 0 || allowedUserIds.length > 0;
|
|
@@ -274,8 +297,10 @@ function registerMessageHandler(app) {
|
|
|
274
297
|
});
|
|
275
298
|
workflowEventBus.emit("slack.message", {
|
|
276
299
|
channel: msg.channel,
|
|
300
|
+
channelId: msg.channel,
|
|
277
301
|
text: msg.text,
|
|
278
302
|
user: msg.user,
|
|
303
|
+
userId: msg.user,
|
|
279
304
|
ts: msg.ts,
|
|
280
305
|
threadTs: msg.thread_ts
|
|
281
306
|
});
|
|
@@ -323,7 +348,45 @@ function registerMessageHandler(app) {
|
|
|
323
348
|
}
|
|
324
349
|
const routingText = msg.text || effectiveText;
|
|
325
350
|
const routingThreadContext = msg.thread_ts ? { channelId: msg.channel, threadTs: msg.thread_ts } : undefined;
|
|
326
|
-
const
|
|
351
|
+
const routeResult = await dispatchPre("pre.slack.route", {
|
|
352
|
+
channelId: msg.channel,
|
|
353
|
+
userId: msg.user,
|
|
354
|
+
text: routingText,
|
|
355
|
+
...msg.thread_ts ? { threadTs: msg.thread_ts } : {},
|
|
356
|
+
botMentioned: botMentioned || isImplicitMention,
|
|
357
|
+
...routingThreadContext ? { threadContext: routingThreadContext } : {}
|
|
358
|
+
}, {
|
|
359
|
+
validateModify: (data) => {
|
|
360
|
+
const parsed = SlackRouteModifySchema.safeParse(data);
|
|
361
|
+
return parsed.success ? { success: true, data: parsed.data } : { success: false, error: new Error(parsed.error.message) };
|
|
362
|
+
}
|
|
363
|
+
});
|
|
364
|
+
if (routeResult.action === "block") {
|
|
365
|
+
console.info("[Slack] Extension blocked message routing:", scrubSecrets(routeResult.reason));
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
let matches;
|
|
369
|
+
if (routeResult.action === "modify") {
|
|
370
|
+
const { target } = routeResult.data;
|
|
371
|
+
if (target.kind === "agent") {
|
|
372
|
+
const agent = await getAgentById(target.agentId);
|
|
373
|
+
if (agent) {
|
|
374
|
+
matches = [{ agent, matchedText: "extension" }];
|
|
375
|
+
} else {
|
|
376
|
+
console.warn("[Slack] Extension selected an unknown agent. Using the built-in router:", scrubSecrets(target.agentId));
|
|
377
|
+
}
|
|
378
|
+
} else if (target.kind === "lead") {
|
|
379
|
+
const leadAgent = await getLeadAgent();
|
|
380
|
+
if (leadAgent) {
|
|
381
|
+
matches = [{ agent: leadAgent, matchedText: "extension" }];
|
|
382
|
+
} else {
|
|
383
|
+
console.warn(scrubSecrets("[Slack] Extension selected the lead, but no lead exists. Using the built-in router."));
|
|
384
|
+
}
|
|
385
|
+
} else {
|
|
386
|
+
matches = broadcastMatches(await getAllAgents());
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
matches ??= await routeMessage(routingText, botUserId, botMentioned || isImplicitMention, routingThreadContext);
|
|
327
390
|
if (matches.length === 0) {
|
|
328
391
|
let __stack = [];
|
|
329
392
|
try {
|
|
@@ -494,8 +557,11 @@ ${taskDescription}`;
|
|
|
494
557
|
} else {
|
|
495
558
|
results.assigned.push({ agentName: agent.name, taskId: task.id });
|
|
496
559
|
}
|
|
497
|
-
} catch {
|
|
498
|
-
results.failed.push({
|
|
560
|
+
} catch (error) {
|
|
561
|
+
results.failed.push({
|
|
562
|
+
agentName: agent.name,
|
|
563
|
+
reason: error instanceof TaskCreationBlockedError ? error.reason : "error"
|
|
564
|
+
});
|
|
499
565
|
}
|
|
500
566
|
}
|
|
501
567
|
if (results.assigned.length + results.queued.length > 0) {
|
|
@@ -507,6 +573,15 @@ ${taskDescription}`;
|
|
|
507
573
|
if (isSlackRenderV2Enabled()) {
|
|
508
574
|
if (successfulTaskIds.length > 0)
|
|
509
575
|
await ensureSlackThreadTree(successfulTaskIds);
|
|
576
|
+
if (results.failed.length > 0) {
|
|
577
|
+
const failedLines = results.failed.map((f) => `⚠️ Could not assign to: *${f.agentName}* — ${f.reason}`).join(`
|
|
578
|
+
`);
|
|
579
|
+
await say({
|
|
580
|
+
text: `Could not assign to: ${results.failed.map((f) => f.agentName).join(", ")}`,
|
|
581
|
+
blocks: [{ type: "context", elements: [{ type: "mrkdwn", text: failedLines }] }],
|
|
582
|
+
thread_ts: msg.thread_ts || msg.ts
|
|
583
|
+
});
|
|
584
|
+
}
|
|
510
585
|
} else {
|
|
511
586
|
const initialNodes = results.assigned.map(({ agentName, taskId }) => ({
|
|
512
587
|
taskId,
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SYSTEM_COLUMN_KINDS,
|
|
3
|
-
listAppRecords
|
|
4
|
-
} from "./cli-q04q68be.js";
|
|
5
|
-
import {
|
|
6
3
|
getScriptApiTypes,
|
|
7
4
|
getScriptMcpTypes,
|
|
5
|
+
listAppRecords,
|
|
8
6
|
require_typescript
|
|
9
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-p2hx1pxm.js";
|
|
10
8
|
import {
|
|
11
9
|
deleteSwarmConfigByKey,
|
|
12
10
|
getAgentById,
|
|
@@ -15,7 +13,7 @@ import {
|
|
|
15
13
|
getSwarmConfigs,
|
|
16
14
|
init_db,
|
|
17
15
|
upsertSwarmConfig
|
|
18
|
-
} from "./cli-
|
|
16
|
+
} from "./cli-gacq5hg8.js";
|
|
19
17
|
import {
|
|
20
18
|
init_secret_scrubber,
|
|
21
19
|
scrubSecrets
|
|
@@ -577,52 +575,9 @@ async function getScriptAppTypes(_context = {}) {
|
|
|
577
575
|
}
|
|
578
576
|
}
|
|
579
577
|
|
|
580
|
-
// src/be/scripts/extract-schema.ts
|
|
581
|
-
import { fileURLToPath } from "node:url";
|
|
582
|
-
var TIMEOUT_MS = 5000;
|
|
583
|
-
function extractorPath() {
|
|
584
|
-
return fileURLToPath(new URL("../../scripts-runtime/extract-args-schema.ts", import.meta.url));
|
|
585
|
-
}
|
|
586
|
-
async function extractArgsJsonSchema(source) {
|
|
587
|
-
const tmpdir = `${process.env.TMPDIR ?? "/tmp"}/schema-extract-${crypto.randomUUID()}`;
|
|
588
|
-
try {
|
|
589
|
-
await Bun.$`mkdir -p ${tmpdir}`.quiet();
|
|
590
|
-
const sourceFile = `${tmpdir}/source.ts`;
|
|
591
|
-
const resultFile = `${tmpdir}/result.json`;
|
|
592
|
-
await Bun.write(sourceFile, source);
|
|
593
|
-
const proc = Bun.spawn(["bun", "run", extractorPath()], {
|
|
594
|
-
env: {
|
|
595
|
-
PATH: process.env.PATH ?? "/usr/bin:/bin",
|
|
596
|
-
HOME: process.env.HOME ?? "/tmp",
|
|
597
|
-
TMPDIR: tmpdir,
|
|
598
|
-
SWARM_SCHEMA_SOURCE_FILE: sourceFile,
|
|
599
|
-
SWARM_SCHEMA_RESULT_FILE: resultFile,
|
|
600
|
-
SWARM_SCHEMA_TMPDIR: tmpdir
|
|
601
|
-
},
|
|
602
|
-
cwd: tmpdir,
|
|
603
|
-
stdout: "ignore",
|
|
604
|
-
stderr: "ignore"
|
|
605
|
-
});
|
|
606
|
-
const timeout = setTimeout(() => proc.kill(), TIMEOUT_MS);
|
|
607
|
-
const exitCode = await proc.exited.catch(() => 1);
|
|
608
|
-
clearTimeout(timeout);
|
|
609
|
-
if (exitCode !== 0)
|
|
610
|
-
return null;
|
|
611
|
-
const result = await Bun.file(resultFile).text();
|
|
612
|
-
const parsed = JSON.parse(result);
|
|
613
|
-
if (parsed === null)
|
|
614
|
-
return null;
|
|
615
|
-
return JSON.stringify(parsed);
|
|
616
|
-
} catch {
|
|
617
|
-
return null;
|
|
618
|
-
} finally {
|
|
619
|
-
await Bun.$`rm -rf ${tmpdir}`.quiet().nothrow();
|
|
620
|
-
}
|
|
621
|
-
}
|
|
622
|
-
|
|
623
578
|
// src/be/scripts/typecheck.ts
|
|
624
579
|
var import_typescript = __toESM(require_typescript(), 1);
|
|
625
|
-
import { fileURLToPath
|
|
580
|
+
import { fileURLToPath } from "node:url";
|
|
626
581
|
var SCRIPT_SDK_TYPES = `
|
|
627
582
|
export type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue };
|
|
628
583
|
export type ScriptScope = "agent" | "global";
|
|
@@ -909,6 +864,14 @@ export interface SwarmSdk {
|
|
|
909
864
|
script_getRun(args: { id: string }): Promise<unknown>;
|
|
910
865
|
script_listRuns(args?: { status?: "running" | "paused" | "completed" | "failed" | "cancelled" | "aborted_limit"; agentId?: string; limit?: number; offset?: number }): Promise<unknown>;
|
|
911
866
|
|
|
867
|
+
// --- write: extensions ---
|
|
868
|
+
extension_install(args: { manifest: Record<string, unknown>; files: Record<string, string>; priority?: number; config?: Record<string, unknown> }): Promise<unknown>;
|
|
869
|
+
extension_list(args?: { enabledOnly?: boolean }): Promise<unknown>;
|
|
870
|
+
extension_delete(args: { id: string }): Promise<unknown>;
|
|
871
|
+
extension_enable(args: { id: string }): Promise<unknown>;
|
|
872
|
+
extension_disable(args: { id: string }): Promise<unknown>;
|
|
873
|
+
extension_activate_version(args: { id: string; version: number }): Promise<unknown>;
|
|
874
|
+
|
|
912
875
|
// --- write: repos ---
|
|
913
876
|
repo_update(args: Record<string, unknown>): Promise<unknown>;
|
|
914
877
|
|
|
@@ -1057,7 +1020,7 @@ ${mcpTypes}
|
|
|
1057
1020
|
${resolvedAppTypes}
|
|
1058
1021
|
`;
|
|
1059
1022
|
}
|
|
1060
|
-
var
|
|
1023
|
+
var SCRIPT_STDLIB_MODULE_TYPES = `
|
|
1061
1024
|
declare module "stdlib" {
|
|
1062
1025
|
export interface Redacted<T> {
|
|
1063
1026
|
readonly __redactedBrand?: T;
|
|
@@ -1077,7 +1040,7 @@ declare module "stdlib" {
|
|
|
1077
1040
|
}
|
|
1078
1041
|
`;
|
|
1079
1042
|
function stdlibTypesFor(sdkModuleBody) {
|
|
1080
|
-
return `${
|
|
1043
|
+
return `${SCRIPT_STDLIB_MODULE_TYPES}
|
|
1081
1044
|
declare module "swarm-sdk" {
|
|
1082
1045
|
${sdkModuleBody.replace(/^/gm, " ")}
|
|
1083
1046
|
}
|
|
@@ -1411,16 +1374,14 @@ interface Window {
|
|
|
1411
1374
|
`;
|
|
1412
1375
|
var USER_FILE = "/virtual/user-script.ts";
|
|
1413
1376
|
var CHECK_FILE = "/virtual/check.ts";
|
|
1414
|
-
var SDK_FILE = "/virtual/swarm-sdk.d.ts";
|
|
1415
|
-
var STDLIB_FILE = "/virtual/stdlib.d.ts";
|
|
1416
1377
|
var RUNTIME_GLOBALS_FILE = "/virtual/runtime-globals.d.ts";
|
|
1417
1378
|
function scriptTypesBase() {
|
|
1418
1379
|
const dir = process.env.SCRIPT_TYPES_DIR;
|
|
1419
1380
|
if (dir)
|
|
1420
1381
|
return `${dir}/index.ts`;
|
|
1421
|
-
return
|
|
1382
|
+
return fileURLToPath(new URL("../../index.ts", import.meta.url));
|
|
1422
1383
|
}
|
|
1423
|
-
function createCompilerHost(files, options) {
|
|
1384
|
+
function createCompilerHost(files, options, virtualModules = new Map) {
|
|
1424
1385
|
const host = import_typescript.default.createCompilerHost(options, true);
|
|
1425
1386
|
const originalGetSourceFile = host.getSourceFile.bind(host);
|
|
1426
1387
|
host.getSourceFile = (fileName, languageVersion, onError, shouldCreateNewSourceFile) => {
|
|
@@ -1444,11 +1405,9 @@ function createCompilerHost(files, options) {
|
|
|
1444
1405
|
if (moduleName === "./user-script") {
|
|
1445
1406
|
return { resolvedFileName: USER_FILE, extension: import_typescript.default.Extension.Ts };
|
|
1446
1407
|
}
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
if (moduleName === "stdlib") {
|
|
1451
|
-
return { resolvedFileName: STDLIB_FILE, extension: import_typescript.default.Extension.Dts };
|
|
1408
|
+
const virtualModule = virtualModules.get(moduleName);
|
|
1409
|
+
if (virtualModule) {
|
|
1410
|
+
return { resolvedFileName: virtualModule, extension: import_typescript.default.Extension.Dts };
|
|
1452
1411
|
}
|
|
1453
1412
|
const base = containingFile.startsWith("/virtual/") ? projectBase : containingFile;
|
|
1454
1413
|
return import_typescript.default.resolveModuleName(moduleName, base, options, host).resolvedModule;
|
|
@@ -1521,7 +1480,7 @@ function toStructured(diag) {
|
|
|
1521
1480
|
suggestion: extractSuggestion(message)
|
|
1522
1481
|
};
|
|
1523
1482
|
}
|
|
1524
|
-
async function
|
|
1483
|
+
async function typecheckWithAmbient(args) {
|
|
1525
1484
|
const options = {
|
|
1526
1485
|
allowImportingTsExtensions: true,
|
|
1527
1486
|
lib: ["lib.es2022.d.ts"],
|
|
@@ -1533,28 +1492,22 @@ async function typecheckScript(source, context = {}) {
|
|
|
1533
1492
|
target: import_typescript.default.ScriptTarget.ES2022,
|
|
1534
1493
|
types: []
|
|
1535
1494
|
};
|
|
1536
|
-
const apiTypes = getScriptApiTypes(context);
|
|
1537
|
-
const mcpTypes = getScriptMcpTypes(context);
|
|
1538
|
-
const appTypes = await getScriptAppTypes(context);
|
|
1539
|
-
const sdkTypes = await scriptSdkTypesWithGeneratedApis(apiTypes, mcpTypes, appTypes);
|
|
1540
|
-
const stdlibTypes = appTypes ? await scriptStdlibTypesWithGeneratedApis(apiTypes, mcpTypes, appTypes) : SCRIPT_STDLIB_TYPES;
|
|
1541
1495
|
const files = new Map([
|
|
1542
|
-
[USER_FILE, source],
|
|
1543
|
-
[SDK_FILE, sdkTypes],
|
|
1544
|
-
[STDLIB_FILE, stdlibTypes],
|
|
1496
|
+
[USER_FILE, args.source],
|
|
1545
1497
|
[RUNTIME_GLOBALS_FILE, SCRIPT_RUNTIME_GLOBALS],
|
|
1546
|
-
[
|
|
1547
|
-
CHECK_FILE,
|
|
1548
|
-
`/// <reference path="./runtime-globals.d.ts" />
|
|
1549
|
-
import run from "./user-script";
|
|
1550
|
-
import type { ScriptMain } from "swarm-sdk";
|
|
1551
|
-
const _scriptMain: ScriptMain = run;
|
|
1552
|
-
void _scriptMain;
|
|
1553
|
-
`
|
|
1554
|
-
]
|
|
1498
|
+
[CHECK_FILE, args.checkFile]
|
|
1555
1499
|
]);
|
|
1556
|
-
const
|
|
1557
|
-
const
|
|
1500
|
+
const virtualModules = new Map;
|
|
1501
|
+
for (const [moduleName, source] of Object.entries(args.modules)) {
|
|
1502
|
+
const fileName = `/virtual/${moduleName.replace(/[^A-Za-z0-9_.-]/g, "_")}.d.ts`;
|
|
1503
|
+
files.set(fileName, source);
|
|
1504
|
+
virtualModules.set(moduleName, fileName);
|
|
1505
|
+
}
|
|
1506
|
+
for (const [name, source] of Object.entries(args.ambient ?? {})) {
|
|
1507
|
+
files.set(`/virtual/ambient-${name.replace(/[^A-Za-z0-9_.-]/g, "_")}.d.ts`, source);
|
|
1508
|
+
}
|
|
1509
|
+
const host = createCompilerHost(files, options, virtualModules);
|
|
1510
|
+
const program = import_typescript.default.createProgram([...files.keys()], options, host);
|
|
1558
1511
|
const diagnostics = [
|
|
1559
1512
|
...program.getSyntacticDiagnostics(),
|
|
1560
1513
|
...program.getSemanticDiagnostics()
|
|
@@ -1576,6 +1529,66 @@ void _scriptMain;
|
|
|
1576
1529
|
structured: diagnostics.map(toStructured)
|
|
1577
1530
|
};
|
|
1578
1531
|
}
|
|
1532
|
+
async function typecheckScript(source, context = {}) {
|
|
1533
|
+
const apiTypes = getScriptApiTypes(context);
|
|
1534
|
+
const mcpTypes = getScriptMcpTypes(context);
|
|
1535
|
+
const appTypes = await getScriptAppTypes(context);
|
|
1536
|
+
const sdkTypes = await scriptSdkTypesWithGeneratedApis(apiTypes, mcpTypes, appTypes);
|
|
1537
|
+
const stdlibTypes = appTypes ? await scriptStdlibTypesWithGeneratedApis(apiTypes, mcpTypes, appTypes) : SCRIPT_STDLIB_TYPES;
|
|
1538
|
+
return typecheckWithAmbient({
|
|
1539
|
+
source,
|
|
1540
|
+
modules: { "swarm-sdk": sdkTypes, stdlib: stdlibTypes },
|
|
1541
|
+
checkFile: `/// <reference path="./runtime-globals.d.ts" />
|
|
1542
|
+
import run from "./user-script";
|
|
1543
|
+
import type { ScriptMain } from "swarm-sdk";
|
|
1544
|
+
const _scriptMain: ScriptMain = run;
|
|
1545
|
+
void _scriptMain;
|
|
1546
|
+
`
|
|
1547
|
+
});
|
|
1548
|
+
}
|
|
1549
|
+
|
|
1550
|
+
// src/be/scripts/extract-schema.ts
|
|
1551
|
+
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
1552
|
+
var TIMEOUT_MS = 5000;
|
|
1553
|
+
function extractorPath() {
|
|
1554
|
+
return fileURLToPath2(new URL("../../scripts-runtime/extract-args-schema.ts", import.meta.url));
|
|
1555
|
+
}
|
|
1556
|
+
async function extractArgsJsonSchema(source) {
|
|
1557
|
+
const tmpdir = `${process.env.TMPDIR ?? "/tmp"}/schema-extract-${crypto.randomUUID()}`;
|
|
1558
|
+
try {
|
|
1559
|
+
await Bun.$`mkdir -p ${tmpdir}`.quiet();
|
|
1560
|
+
const sourceFile = `${tmpdir}/source.ts`;
|
|
1561
|
+
const resultFile = `${tmpdir}/result.json`;
|
|
1562
|
+
await Bun.write(sourceFile, source);
|
|
1563
|
+
const proc = Bun.spawn(["bun", "run", extractorPath()], {
|
|
1564
|
+
env: {
|
|
1565
|
+
PATH: process.env.PATH ?? "/usr/bin:/bin",
|
|
1566
|
+
HOME: process.env.HOME ?? "/tmp",
|
|
1567
|
+
TMPDIR: tmpdir,
|
|
1568
|
+
SWARM_SCHEMA_SOURCE_FILE: sourceFile,
|
|
1569
|
+
SWARM_SCHEMA_RESULT_FILE: resultFile,
|
|
1570
|
+
SWARM_SCHEMA_TMPDIR: tmpdir
|
|
1571
|
+
},
|
|
1572
|
+
cwd: tmpdir,
|
|
1573
|
+
stdout: "ignore",
|
|
1574
|
+
stderr: "ignore"
|
|
1575
|
+
});
|
|
1576
|
+
const timeout = setTimeout(() => proc.kill(), TIMEOUT_MS);
|
|
1577
|
+
const exitCode = await proc.exited.catch(() => 1);
|
|
1578
|
+
clearTimeout(timeout);
|
|
1579
|
+
if (exitCode !== 0)
|
|
1580
|
+
return null;
|
|
1581
|
+
const result = await Bun.file(resultFile).text();
|
|
1582
|
+
const parsed = JSON.parse(result);
|
|
1583
|
+
if (parsed === null)
|
|
1584
|
+
return null;
|
|
1585
|
+
return JSON.stringify(parsed);
|
|
1586
|
+
} catch {
|
|
1587
|
+
return null;
|
|
1588
|
+
} finally {
|
|
1589
|
+
await Bun.$`rm -rf ${tmpdir}`.quiet().nothrow();
|
|
1590
|
+
}
|
|
1591
|
+
}
|
|
1579
1592
|
|
|
1580
1593
|
// src/scripts-runtime/extract-signature.ts
|
|
1581
1594
|
var import_typescript2 = __toESM(require_typescript(), 1);
|
|
@@ -1634,4 +1647,4 @@ function extractScriptSignature(source) {
|
|
|
1634
1647
|
return FALLBACK_SIGNATURE;
|
|
1635
1648
|
}
|
|
1636
1649
|
|
|
1637
|
-
export {
|
|
1650
|
+
export { getScriptAppTypes, SCRIPT_SDK_TYPES, scriptSdkTypesWithGeneratedApis, SCRIPT_STDLIB_MODULE_TYPES, scriptStdlibTypesWithGeneratedApis, typecheckWithAmbient, typecheckScript, agentFsProvisionSeeder, inviteEmailToSharedOrg, ensureAgentFsCredentialsForAgent, extractArgsJsonSchema, extractScriptSignature };
|