@desplega.ai/agent-swarm 1.172.0 → 2.0.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 +1 -1
- package/dist/{acp-adapter-fpecx1g1.js → acp-adapter-sj2g0m84.js} +18 -17
- package/dist/{actions-pw87a1a8.js → actions-fegk44gr.js} +65 -35
- package/dist/{amp-adapter-8jem2bc0.js → amp-adapter-ad8ft89x.js} +8 -7
- package/dist/{anthropic-messages-8ee2f22q.js → anthropic-messages-r6czkjv1.js} +7 -7
- package/dist/{app-wmf0m843.js → app-kfvgbvzy.js} +19 -13
- package/dist/{assistant-emp1e108.js → assistant-z7zdy9ja.js} +65 -38
- package/dist/{boot-reembed-1de4f4aj.js → boot-reembed-5c2z0mbe.js} +11 -9
- package/dist/{boot-reembed-4ymn9atn.js → boot-reembed-j8xa181e.js} +11 -9
- package/dist/{boot-scrub-sweep-adhk1s8c.js → boot-scrub-sweep-hnkn3rgt.js} +12 -10
- package/dist/{boot-seeds-8q637aew.js → boot-seeds-kwjq4d2z.js} +15 -13
- package/dist/{claude-adapter-t26cv8a4.js → claude-adapter-9vmvpvgd.js} +20 -19
- package/dist/{claude-managed-adapter-xgxhqrt2.js → claude-managed-adapter-k9qae05j.js} +7 -5
- package/dist/{claude-managed-setup-bnmjarjc.js → claude-managed-setup-q54zx5q2.js} +6 -4
- package/dist/{claude-sdk-session-gsfsh662.js → claude-sdk-session-9jye6cxr.js} +12698 -11995
- package/dist/{cli-k46r9hmk.js → cli-03gedhng.js} +16 -14
- package/dist/{cli-kb4ehzx5.js → cli-1e4b6bzh.js} +7 -7
- package/dist/{cli-d603qf86.js → cli-29jc5q7w.js} +10 -8
- package/dist/cli-2m1ktfzz.js +17795 -0
- package/dist/{cli-8vs9trd4.js → cli-3dj8k4vy.js} +1 -1
- package/dist/{cli-zxm9p3x4.js → cli-3fbmmawm.js} +5 -5
- package/dist/{cli-gmdajfw5.js → cli-4jxm2qtz.js} +4987 -1708
- package/dist/{cli-tadfgd0t.js → cli-5hkm7whv.js} +33 -4
- package/dist/{cli-6jb2rf77.js → cli-5t4f29ez.js} +3 -3
- package/dist/{cli-7a0sde2x.js → cli-6cagzc96.js} +9 -0
- package/dist/cli-6cvfxs8r.js +47 -0
- package/dist/{cli-pj6x9qce.js → cli-6jyj59nb.js} +2 -2
- package/dist/{cli-388egyf6.js → cli-6razj6t4.js} +2 -2
- package/dist/{cli-qsztpfry.js → cli-74ahz61x.js} +2 -2
- package/dist/{cli-4nz8p1p5.js → cli-7x0g4sn1.js} +15474 -16082
- package/dist/{cli-yatxqynm.js → cli-9ha6hs2d.js} +1 -290
- package/dist/{cli-81r1wjyv.js → cli-9nfx44eh.js} +1 -1
- package/dist/cli-9traj3dn.js +638 -0
- package/dist/{cli-smcrrmhy.js → cli-agzebbd5.js} +9 -9
- package/dist/{cli-bf7485pm.js → cli-apx87jne.js} +2 -2
- package/dist/{cli-ztrv9y21.js → cli-bzszjf2p.js} +3689 -1081
- package/dist/{cli-c5km5znr.js → cli-c8r3kzzb.js} +1 -1
- package/dist/{cli-hsem16hb.js → cli-cgtksawx.js} +7 -4
- package/dist/{cli-db3m6zdt.js → cli-d2qr7aj4.js} +1 -1
- package/dist/{cli-1hgat6pa.js → cli-d5f9ed5c.js} +5 -5
- package/dist/cli-e3g5mbkz.js +776 -0
- package/dist/{cli-7jykv7ef.js → cli-e6mpjhed.js} +1 -1
- package/dist/{cli-j6kpj9az.js → cli-ee9gtz70.js} +1553 -68
- package/dist/{cli-e0a9sk00.js → cli-eejsgvm4.js} +4 -4
- package/dist/{cli-tgpfnm6r.js → cli-ef1hg1wv.js} +518 -59
- package/dist/cli-f527ce74.js +781 -0
- package/dist/{cli-ppy4nnnh.js → cli-f7kr7svz.js} +2 -2
- package/dist/cli-hjwmhcg1.js +10622 -0
- package/dist/{cli-2bw3w47j.js → cli-hnhtk6cj.js} +1 -1
- package/dist/{cli-ywm1azg9.js → cli-hnmhtzvh.js} +6 -4
- package/dist/{cli-4fnb6884.js → cli-hvqbtna4.js} +7 -1259
- package/dist/{cli-pstq9888.js → cli-j0pfptdp.js} +220 -103
- package/dist/cli-jta2eyzc.js +619 -0
- package/dist/{cli-esnpehf5.js → cli-k382tshb.js} +12 -13
- package/dist/cli-k3dp5tpf.js +263 -0
- package/dist/{cli-wd0hz6ah.js → cli-kbrt8gqa.js} +9 -91
- package/dist/cli-kceah1eh.js +92 -0
- package/dist/{cli-prrt9fa0.js → cli-ke896fcf.js} +10 -10
- package/dist/{cli-nv4zd0b9.js → cli-kt6zqg0e.js} +6 -6
- package/dist/{cli-g6t9texm.js → cli-m50t4309.js} +5 -18
- package/dist/cli-n2wq4j7m.js +6985 -0
- package/dist/{cli-c2pq2rjb.js → cli-n3hzg89b.js} +46 -15
- package/dist/{cli-tmhsxhb8.js → cli-n5vwg842.js} +23 -6
- package/dist/{cli-5rv1j9ga.js → cli-ne236afy.js} +53 -7
- package/dist/cli-p0sg24zp.js +16 -0
- package/dist/{cli-d161g69q.js → cli-p1x85d2t.js} +50 -2
- package/dist/{cli-7pz3b7x5.js → cli-przpmdgr.js} +25 -0
- package/dist/{cli-g4f5pj26.js → cli-q0ke1yww.js} +111 -25
- package/dist/{cli-e3pmyt39.js → cli-q50942rs.js} +1 -1
- package/dist/{cli-r44t9wqc.js → cli-r106725k.js} +2 -2
- package/dist/{cli-gj81e47t.js → cli-r2pnvj8g.js} +2 -2
- package/dist/{cli-r8smj8b8.js → cli-r62a35ea.js} +19 -3
- package/dist/{cli-cd0hv9nh.js → cli-ra0xzggj.js} +2 -2
- package/dist/cli-rhs9pz33.js +294 -0
- package/dist/{cli-nyhb1r6x.js → cli-s2sp957d.js} +52 -29
- package/dist/{cli-1x7da0de.js → cli-s4setq91.js} +8 -8
- package/dist/{cli-xczpdp9e.js → cli-se8w6wny.js} +6 -6
- package/dist/cli-skxvvpap.js +10140 -0
- package/dist/{cli-014vns2y.js → cli-stfs0k5s.js} +208 -525
- package/dist/{cli-0p3enk35.js → cli-tqaazemc.js} +9 -1
- package/dist/{cli-cf69s3ew.js → cli-tr4sxp68.js} +3 -3
- package/dist/{cli-8hzfb6xz.js → cli-tsde1hdr.js} +15 -15
- package/dist/{cli-cceskcvt.js → cli-txqb9s38.js} +8 -8
- package/dist/{cli-aspcaef3.js → cli-v1yb0rqb.js} +6 -6
- package/dist/{cli-j1pmc07z.js → cli-vatyhshy.js} +268 -40
- package/dist/{cli-04emfe2q.js → cli-vdach5a9.js} +5 -5
- package/dist/{cli-7avy4v8w.js → cli-w1q7h2r2.js} +5 -3
- package/dist/{cli-rcp5aqdw.js → cli-w7m81tb7.js} +1 -1
- package/dist/{cli-hwwvy36w.js → cli-wayw93nt.js} +3 -3
- package/dist/cli-wmgrkscj.js +23254 -0
- package/dist/{cli-gp1rtyvk.js → cli-z5jjpaxw.js} +29 -6
- package/dist/{cli-451ks6aw.js → cli-zkpks3r3.js} +1 -1
- package/dist/cli.js +32 -48
- package/dist/{codex-adapter-m4tgdysy.js → codex-adapter-y81sssk0.js} +16 -15
- package/dist/{codex-login-841kv5fk.js → codex-login-f2rcfpp9.js} +3 -2
- package/dist/{codex-session-runner-ymwzm6ea.js → codex-session-runner-8vx4j6a9.js} +16 -15
- package/dist/{commands-n0hshcvs.js → commands-kcpvpcrr.js} +21 -10
- package/dist/{controller-hq5ggpcp.js → controller-ywrmt6yd.js} +5 -4
- package/dist/{controllers-connect-y07cqcvy.js → controllers-connect-kwpvj3rf.js} +45 -38
- package/dist/{cursor-adapter-q8pgv5qa.js → cursor-adapter-cehv1qns.js} +7 -6
- package/dist/{db-hkqvrdcb.js → db-k8ankj20.js} +13 -11
- package/dist/{db-4w7tmt1g.js → db-ww5d7jq3.js} +29 -9
- package/dist/{devin-adapter-xgtj680j.js → devin-adapter-x1022qb1.js} +3 -2
- package/dist/{dispatcher-5sd69y14.js → dispatcher-e8gq5m68.js} +41 -34
- package/dist/{docker-f503k9p0.js → docker-ff6y1190.js} +3 -2
- package/dist/{dsh-adapter-2h8m4cab.js → dsh-adapter-3epjm3af.js} +7 -6
- package/dist/{e2b-66xra4az.js → e2b-8ygwhg0f.js} +4 -3
- package/dist/{e2b-xwhyj8cw.js → e2b-swhnpw3n.js} +4 -3
- package/dist/{event-bus-vjtv82gm.js → event-bus-6axnngdj.js} +3 -2
- package/dist/external-channel-h3359cwn.js +52 -0
- package/dist/{google-generative-ai-7pavrbv7.js → google-generative-ai-g8db7x0f.js} +5 -3
- package/dist/{google-vertex-3f1jk41f.js → google-vertex-r2692q0r.js} +5 -3
- package/dist/{grok-adapter-8m9yqzbq.js → grok-adapter-0d4x7gkx.js} +19 -18
- package/dist/{handlers-s20xr10r.js → handlers-an1gzv21.js} +44 -37
- package/dist/{heartbeat-3k31q4g2.js → heartbeat-6dakeb61.js} +46 -39
- package/dist/{hook-gdn6a2fn.js → hook-6v6cv6d5.js} +12 -24
- package/dist/{hook-ygwerrdh.js → hook-sa5xye4y.js} +13 -12
- package/dist/{http-jdteeg81.js → http-r7f3eky0.js} +1598 -279
- package/dist/index-52j1aja4.js +3465 -0
- package/dist/{index-e0snym4t.js → index-7ep4gzdk.js} +41 -34
- package/dist/index-9gw58n4k.js +193 -0
- package/dist/index-9j87mcm8.js +56305 -0
- package/dist/index-bsmcresk.js +79424 -0
- package/dist/index-mh85qhec.js +475 -0
- package/dist/{index-vm3bm9t7.js → index-rmpw9a8q.js} +41 -34
- package/dist/{index-6ksewd5y.js → index-s2wxgzr0.js} +1015 -732
- package/dist/{index-tsszt7g9.js → index-v1v6n7hg.js} +46 -39
- package/dist/index-we27kd31.js +12810 -0
- package/dist/{index-ffqzqgwb.js → index-zk96aq1k.js} +11 -9
- package/dist/{keepalive-jekc896t.js → keepalive-be9vwy5h.js} +13 -11
- package/dist/{lead-4k9s9szx.js → lead-0861cwrf.js} +64 -57
- package/dist/{maintenance-shazch4n.js → maintenance-mzzgc8bn.js} +11 -9
- package/dist/node-c9we95xf.js +1 -1
- package/dist/{node-fkajaq96.js → node-mn1zs7an.js} +2 -1
- package/dist/{oauth-refresh-sweep-5gb36kn8.js → oauth-refresh-sweep-cpdnfwdj.js} +12 -10
- package/dist/{onboard-ydrbnvww.js → onboard-fh8qs4r3.js} +11 -3
- package/dist/{opencode-adapter-5zh0he20.js → opencode-adapter-nm42wwj8.js} +19 -14
- package/dist/{otel-impl-6pf5cv86.js → otel-impl-x6c1c9g4.js} +248 -869
- package/dist/{pi-mono-adapter-ef9wwx9m.js → pi-mono-adapter-9n2ya240.js} +245 -107
- package/dist/{pricing-refresh-s52nsa5q.js → pricing-refresh-qb0rv0ap.js} +13 -11
- package/dist/{rbac-roles-aq3msh4e.js → rbac-roles-1gzdwbh1.js} +12 -10
- package/dist/{rbac-roles-q5gb5e8v.js → rbac-roles-3mraey52.js} +13 -11
- package/dist/{render-v2-pd1rg54q.js → render-v2-agpa45zz.js} +19 -13
- package/dist/{resume-gw4a2c6v.js → resume-x0ydy9s9.js} +27 -21
- package/dist/{runtime-qfry88v2.js → runtime-sa2vr16g.js} +2 -2
- package/dist/{setup-jda1ksdh.js → setup-as9ga0d6.js} +2 -2
- package/dist/{virtual-modules-b3ga2m65.js → virtual-modules-9gkxqrap.js} +7 -6
- package/dist/{work-objects-tb7ycye8.js → work-objects-y5g1y7ev.js} +49 -37
- package/dist/{worker-njjccz5d.js → worker-860c3e38.js} +64 -57
- package/dist/{x-qfmygqqv.js → x-m477fr0h.js} +3 -2
- package/openapi.json +951 -356
- package/package.json +12 -13
- package/src/apps/catalog.generated.json +1309 -53
- package/src/apps/page-validator.ts +93 -31
- package/src/azure-devops/api.ts +94 -18
- package/src/azure-devops/auth.ts +32 -0
- package/src/azure-devops/boards-sync.ts +708 -0
- package/src/azure-devops/handlers.ts +52 -8
- package/src/azure-devops/html.ts +26 -0
- package/src/azure-devops/index.ts +15 -0
- package/src/azure-devops/templates.ts +86 -0
- package/src/azure-devops/types.ts +65 -1
- package/src/be/config-refs.ts +60 -0
- package/src/be/db/page-versions.ts +15 -0
- package/src/be/db/runtime.ts +35 -8
- package/src/be/db/skill-name-resolution.ts +36 -0
- package/src/be/db/tasks/read.ts +230 -0
- package/src/be/db/tasks/write.ts +7 -0
- package/src/be/db.ts +74 -13
- package/src/be/migrations/213_script_connections_sql.sql +79 -0
- package/src/be/migrations/215_swarm_config_export_to_env.sql +34 -0
- package/src/be/migrations/216_task_resolved_effort.sql +5 -0
- package/src/be/migrations/217_chat_sdk_state.sql +104 -0
- package/src/be/model-catalog-store.ts +5 -1
- package/src/be/model-tier-resolution.ts +12 -1
- package/src/be/model-validation.ts +5 -2
- package/src/be/models-catalog.ts +26 -1
- package/src/be/modelsdev-cache.json +198 -63
- package/src/be/modelsdev-cache.ts +9 -1
- package/src/be/script-connections.ts +47 -8
- package/src/be/script-credential-broker.ts +39 -2
- package/src/be/scripts/run-saved.ts +1 -0
- package/src/be/scripts/typecheck.ts +10 -8
- package/src/be/seed/runner.ts +13 -1
- package/src/be/seed/state-db.ts +5 -0
- package/src/be/seed/types.ts +6 -0
- package/src/be/seed-pricing.ts +19 -2
- package/src/be/seed-scripts/catalog/ops-catalog-audit.inline.ts +1 -1
- package/src/be/seed-scripts/catalog/ops-catalog-audit.ts +1 -1
- package/src/be/seed-skills/bundled-files.generated.json +10 -18
- package/src/be/seed-skills/index.ts +107 -3
- package/src/be/sql-connections.ts +118 -0
- package/src/be/swarm-config-guard.ts +53 -0
- package/src/cli.tsx +0 -16
- package/src/commands/onboard/non-interactive.ts +4 -2
- package/src/commands/profile-sync.ts +5 -3
- package/src/commands/provider-credentials.ts +52 -6
- package/src/commands/runner.ts +196 -56
- package/src/e2b/env.ts +5 -0
- package/src/extensions/contract-types.generated.ts +1 -1
- package/src/extensions/contract.ts +45 -0
- package/src/extensions/dispatcher.ts +7 -0
- package/src/extensions/post-bridge.ts +40 -0
- package/src/github/handlers.ts +11 -4
- package/src/heartbeat/templates.ts +8 -5
- package/src/hooks/hook.ts +0 -26
- package/src/http/all-routes.ts +0 -1
- package/src/http/config.ts +36 -17
- package/src/http/core.ts +4 -0
- package/src/http/index.ts +14 -2
- package/src/http/integrations.ts +88 -1
- package/src/http/mcp-oauth.ts +6 -13
- package/src/http/mcp.ts +15 -5
- package/src/http/page-proxy.ts +2 -4
- package/src/http/pages-public.ts +6 -5
- package/src/http/pages.ts +5 -14
- package/src/http/poll.ts +28 -68
- package/src/http/requested-by.ts +54 -0
- package/src/http/route-def.ts +7 -6
- package/src/http/script-connection-proxy.ts +51 -4
- package/src/http/script-connections.ts +5 -2
- package/src/http/scripts.ts +1 -0
- package/src/http/session-cost-recompute.ts +12 -2
- package/src/http/session-data.ts +4 -0
- package/src/http/stats.ts +1 -30
- package/src/http/tasks.ts +61 -5
- package/src/http/utils.ts +14 -0
- package/src/http/webhooks.ts +183 -2
- package/src/http/x.ts +1 -0
- package/src/integrations/chat-sdk/adapters.ts +129 -0
- package/src/integrations/chat-sdk/attachments.ts +232 -0
- package/src/integrations/chat-sdk/background.ts +36 -0
- package/src/integrations/chat-sdk/commands.ts +194 -0
- package/src/integrations/chat-sdk/config.ts +198 -0
- package/src/integrations/chat-sdk/discord-api.ts +63 -0
- package/src/integrations/chat-sdk/discord-gateway.ts +185 -0
- package/src/integrations/chat-sdk/handlers.ts +28 -0
- package/src/integrations/chat-sdk/inbound.ts +426 -0
- package/src/integrations/chat-sdk/limits.ts +48 -0
- package/src/integrations/chat-sdk/logger.ts +81 -0
- package/src/integrations/chat-sdk/outbound.ts +123 -0
- package/src/integrations/chat-sdk/relay.ts +172 -0
- package/src/integrations/chat-sdk/router.ts +169 -0
- package/src/integrations/chat-sdk/runtime.ts +351 -0
- package/src/integrations/chat-sdk/schema.ts +245 -0
- package/src/integrations/chat-sdk/state.ts +243 -0
- package/src/integrations/chat-sdk/status.ts +244 -0
- package/src/integrations/chat-sdk/steering.ts +58 -0
- package/src/integrations/chat-sdk/teams-origin.ts +77 -0
- package/src/integrations/chat-sdk/telegram-api.ts +56 -0
- package/src/integrations/chat-sdk/templates.ts +16 -0
- package/src/integrations/chat-sdk/test-hooks.ts +37 -0
- package/src/integrations/chat-sdk/thread-buffer.ts +100 -0
- package/src/integrations/chat-sdk/typing.ts +65 -0
- package/src/jira/adf.ts +3 -1
- package/src/kv-reserved-namespaces.ts +2 -0
- package/src/oauth/mcp-wrapper.ts +10 -6
- package/src/otel-impl.ts +2 -1
- package/src/pages/version.ts +4 -5
- package/src/prompts/base-prompt.ts +111 -45
- package/src/providers/acp-target-catalog.ts +6 -0
- package/src/providers/acp-targets.ts +56 -3
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/claude-adapter.ts +27 -2
- package/src/providers/claude-flag-settings.ts +133 -0
- package/src/providers/claude-managed-adapter.ts +1 -1
- package/src/providers/claude-sdk-session.ts +7 -0
- package/src/providers/claude-session-events.ts +6 -1
- package/src/providers/dsh-adapter.ts +1 -1
- package/src/providers/opencode-adapter.ts +268 -37
- package/src/providers/opencode-billing.ts +86 -0
- package/src/providers/opencode-swarm-plugin.ts +51 -0
- package/src/providers/pi-mono-adapter.ts +398 -153
- package/src/providers/pricing-sources.md +37 -3
- package/src/providers/reasoning-effort.ts +27 -0
- package/src/providers/types.ts +11 -2
- package/src/rbac/legacy-policy.ts +8 -2
- package/src/rbac/permissions.ts +21 -0
- package/src/scheduler/scheduler.ts +4 -2
- package/src/scripts-runtime/api-client.ts +15 -1
- package/src/scripts-runtime/api-types.ts +9 -1
- package/src/scripts-runtime/ctx.ts +1 -1
- package/src/scripts-runtime/loader.ts +19 -7
- package/src/scripts-runtime/mcp-client.ts +30 -19
- package/src/scripts-runtime/sdk-allowlist.ts +8 -6
- package/src/scripts-runtime/swarm-sdk.ts +0 -11
- package/src/scripts-runtime/types/stdlib.d.ts +27 -15
- package/src/scripts-runtime/types/swarm-extension.d.ts +63 -1
- package/src/scripts-runtime/types/swarm-sdk.d.ts +27 -15
- package/src/server.ts +52 -18
- package/src/slack/actions.ts +29 -1
- package/src/slack/app.ts +14 -2
- package/src/slack/assistant.ts +36 -2
- package/src/slack/channel-join.ts +3 -16
- package/src/slack/commands.ts +9 -1
- package/src/slack/event-dedup.ts +1 -1
- package/src/slack/external-channel-egress.ts +113 -0
- package/src/slack/external-channel.ts +309 -0
- package/src/slack/handlers.ts +61 -0
- package/src/slack/render-v2.ts +40 -47
- package/src/slack/work-objects.ts +5 -0
- package/src/tasks/additive-buffer.ts +4 -2
- package/src/tasks/context-key.ts +94 -2
- package/src/tasks/model-pin.ts +67 -0
- package/src/tasks/worker-follow-up.ts +4 -31
- package/src/telemetry.ts +2 -1
- package/src/tests/acp-adapter.test.ts +42 -0
- package/src/tests/api-drain-worker-e2e.test.ts +1 -6
- package/src/tests/apps-catalog-feedback.test.ts +310 -0
- package/src/tests/apps-catalog-inputs.test.ts +70 -0
- package/src/tests/apps-catalog-table.test.ts +113 -0
- package/src/tests/azure-devops-boards-sync.test.ts +584 -0
- package/src/tests/azure-devops-html.test.ts +13 -0
- package/src/tests/azure-devops-webhook-malformed.test.ts +4 -0
- package/src/tests/base-prompt.test.ts +58 -54
- package/src/tests/chat-sdk-commands.test.ts +191 -0
- package/src/tests/chat-sdk-config.test.ts +334 -0
- package/src/tests/chat-sdk-discord-api.test.ts +68 -0
- package/src/tests/chat-sdk-discord-gateway.test.ts +252 -0
- package/src/tests/chat-sdk-discord-webhook.test.ts +126 -0
- package/src/tests/chat-sdk-fields-sync.test.ts +50 -0
- package/src/tests/chat-sdk-harness.ts +146 -0
- package/src/tests/chat-sdk-inbound.test.ts +363 -0
- package/src/tests/chat-sdk-relay.test.ts +470 -0
- package/src/tests/chat-sdk-reload.test.ts +128 -0
- package/src/tests/chat-sdk-shutdown.test.ts +220 -0
- package/src/tests/chat-sdk-slack.test.ts +268 -0
- package/src/tests/chat-sdk-state.test.ts +163 -0
- package/src/tests/chat-sdk-status-route.test.ts +382 -0
- package/src/tests/chat-sdk-teams.test.ts +277 -0
- package/src/tests/chat-sdk-tools.test.ts +520 -0
- package/src/tests/chat-sdk-typing.test.ts +120 -0
- package/src/tests/chat-sdk-webhook-telegram.test.ts +200 -0
- package/src/tests/claude-adapter-binary.test.ts +144 -0
- package/src/tests/claude-flag-settings.test.ts +114 -0
- package/src/tests/claude-managed-adapter.test.ts +1 -1
- package/src/tests/claude-sdk-lifecycle.test.ts +148 -1
- package/src/tests/claude-sdk-process.fixture.ts +7 -0
- package/src/tests/claude-thinking-tokens.test.ts +57 -0
- package/src/tests/claude-worker-parity.test.ts +2 -7
- package/src/tests/config-env-export-chat-sdk.test.ts +11 -0
- package/src/tests/config-refs.test.ts +66 -0
- package/src/tests/context-key.test.ts +51 -0
- package/src/tests/cors-allowlist.test.ts +25 -0
- package/src/tests/create-page-tool.test.ts +18 -0
- package/src/tests/credential-check.test.ts +139 -0
- package/src/tests/credentials.test.ts +21 -0
- package/src/tests/db-runtime.test.ts +61 -0
- package/src/tests/db-task-read-contract.test.ts +20 -0
- package/src/tests/db-task-write-contract.test.ts +10 -0
- package/src/tests/deferred-task-wake.test.ts +52 -4
- package/src/tests/docs-index-footprint.test.js +3 -3
- package/src/tests/dsh-adapter.test.ts +1 -1
- package/src/tests/enabled-capabilities.test.ts +20 -0
- package/src/tests/entrypoint-api-readiness.test.ts +14 -8
- package/src/tests/entrypoint-config-env-export.test.ts +5 -2
- package/src/tests/entrypoint-export-to-env.test.ts +78 -0
- package/src/tests/explicit-model-validation.test.ts +105 -1
- package/src/tests/extensions-example-route-chat-channel.test.ts +154 -0
- package/src/tests/extensions-post-bridge.test.ts +51 -0
- package/src/tests/fetch-resolved-env.test.ts +128 -0
- package/src/tests/fixtures/azure-boards/workitem.commented.json +89 -0
- package/src/tests/fixtures/azure-boards/workitem.created.json +81 -0
- package/src/tests/fixtures/azure-boards/workitem.deleted.json +70 -0
- package/src/tests/fixtures/azure-boards/workitem.restored.json +82 -0
- package/src/tests/fixtures/azure-boards/workitem.updated.json +130 -0
- package/src/tests/fixtures/catalog-feedback-definition.json.txt +860 -0
- package/src/tests/fixtures/catalog-inputs-definition.json.txt +910 -0
- package/src/tests/fixtures/catalog-table-definition.json.txt +468 -0
- package/src/tests/fixtures/chat-sdk/telegram-private-text.json +10 -0
- package/src/tests/fixtures/extensions/route-chat-channel-to-agent/hooks.ts +27 -0
- package/src/tests/fixtures/extensions/route-chat-channel-to-agent/manifest.json +9 -0
- package/src/tests/fixtures/openai-compatible-registry-extension.child.ts +146 -0
- package/src/tests/fixtures/runner-identity-refresh.ts +3 -0
- package/src/tests/fixtures/runner-legacy-resume-prompt.ts +122 -0
- package/src/tests/github-handlers.test.ts +35 -0
- package/src/tests/harness-provider-resolution.test.ts +12 -0
- package/src/tests/heartbeat-checklist.test.ts +3 -2
- package/src/tests/hook-runtime-close.test.ts +0 -2
- package/src/tests/http-api-integration.test.ts +0 -25
- package/src/tests/migration-046-budgets.test.ts +17 -16
- package/src/tests/migration-217-chat-sdk-state.test.ts +113 -0
- package/src/tests/model-tier-resolution.test.ts +93 -0
- package/src/tests/models-catalog.test.ts +42 -1
- package/src/tests/node-env-runtime.test.ts +98 -0
- package/src/tests/openai-compatible-providers.test.ts +134 -0
- package/src/tests/openai-compatible-registry-extension.test.ts +42 -0
- package/src/tests/opencode-adapter.test.ts +348 -3
- package/src/tests/opencode-billing.test.ts +28 -0
- package/src/tests/opencode-helmcode-sdk.test.ts +201 -0
- package/src/tests/opencode-shell-env.test.ts +145 -0
- package/src/tests/openrouter-base-url.test.ts +101 -151
- package/src/tests/page-proxy.test.ts +1 -1
- package/src/tests/pages-browser-sdk.test.ts +76 -0
- package/src/tests/pages-feedback.test.ts +1 -1
- package/src/tests/paused-tasks-requested-by.test.ts +102 -0
- package/src/tests/pi-custom-provider-fake-server.test.ts +442 -0
- package/src/tests/pi-mono-adapter.test.ts +385 -5
- package/src/tests/pi-shell-env.test.ts +170 -0
- package/src/tests/prompt-template-remaining.test.ts +35 -0
- package/src/tests/rbac-engine.test.ts +11 -3
- package/src/tests/runner-exit-after-tasks.test.ts +0 -4
- package/src/tests/runner-identity-refresh.test.ts +3 -0
- package/src/tests/runner-legacy-resume-prompt.test.ts +64 -0
- package/src/tests/script-connections-sql.test.ts +675 -0
- package/src/tests/script-connections.test.ts +7 -1
- package/src/tests/scripts-http.test.ts +201 -1
- package/src/tests/scripts-only-gating.test.ts +2 -3
- package/src/tests/scripts-runtime.test.ts +58 -40
- package/src/tests/secret-scrubber.test.ts +86 -0
- package/src/tests/seed-skills-bundled-files.test.ts +45 -53
- package/src/tests/seed-skills-retire.test.ts +182 -0
- package/src/tests/send-task-requester-gate.test.ts +58 -0
- package/src/tests/session-cost-recompute-unit.test.ts +94 -0
- package/src/tests/skill-get-name-resolution.test.ts +137 -0
- package/src/tests/slack-channel-join.test.ts +4 -1
- package/src/tests/slack-external-channel-config.test.ts +65 -0
- package/src/tests/slack-external-channel-egress.test.ts +237 -0
- package/src/tests/slack-external-channel-guard.test.ts +280 -0
- package/src/tests/slack-external-channel-tools.test.ts +173 -0
- package/src/tests/slack-external-channel.test.ts +370 -0
- package/src/tests/slack-render-v2.test.ts +86 -10
- package/src/tests/sonnet-5-5-registry.test.ts +9 -1
- package/src/tests/spec-base-url.test.ts +16 -1
- package/src/tests/swarm-config-export-to-env.test.ts +267 -0
- package/src/tests/swarm-config-reserved-keys.test.ts +16 -0
- package/src/tests/swarm-diff.test.ts +1 -1
- package/src/tests/task-model-effort-rerun.test.ts +164 -0
- package/src/tests/task-session-prompts.test.ts +132 -0
- package/src/tests/task-tool-manifest.test.ts +14 -0
- package/src/tests/task-tools-ctx.test.ts +2 -0
- package/src/tests/tool-annotations.test.ts +6 -6
- package/src/tests/ui-logs-parser.test.ts +43 -0
- package/src/tests/used-by-route.test.ts +6 -0
- package/src/tests/vendored-openapi.test.ts +16 -1
- package/src/tests/vercel-ai-gateway.test.ts +149 -0
- package/src/tests/workflow-swarm-script.test.ts +38 -0
- package/src/tests/workflow-wait-filter.test.ts +5 -3
- package/src/tools/chat-access.ts +41 -0
- package/src/tools/chat-open-dm.ts +59 -0
- package/src/tools/chat-post.ts +74 -0
- package/src/tools/chat-read-thread.ts +100 -0
- package/src/tools/chat-reply.ts +75 -0
- package/src/tools/create-page.ts +3 -13
- package/src/tools/defer-task.ts +17 -0
- package/src/tools/model-catalog/index.ts +2 -1
- package/src/tools/register-chat-channel.ts +139 -0
- package/src/tools/send-task.ts +24 -0
- package/src/tools/skills/skill-get.ts +17 -9
- package/src/tools/slack-post.ts +6 -0
- package/src/tools/slack-read.ts +8 -0
- package/src/tools/slack-reply.ts +6 -0
- package/src/tools/slack-start-thread.ts +6 -0
- package/src/tools/slack-update.ts +6 -0
- package/src/tools/slack-upload-file.ts +6 -0
- package/src/tools/swarm-config/get-config.ts +2 -1
- package/src/tools/swarm-config/list-config.ts +2 -1
- package/src/tools/swarm-config/set-config.ts +16 -3
- package/src/tools/tool-config.ts +8 -6
- package/src/types.ts +12 -2
- package/src/utils/config-env-export.ts +74 -0
- package/src/utils/credentials.test.ts +92 -0
- package/src/utils/credentials.ts +52 -4
- package/src/utils/harness-provider.ts +15 -6
- package/src/utils/node-env.ts +24 -0
- package/src/utils/runtime-model-catalog.ts +11 -1
- package/src/utils/secret-scrubber.ts +71 -2
- package/src/utils/task-tool-manifest.ts +19 -2
- package/src/workflows/executors/swarm-script.ts +1 -0
- package/templates/skills/agent-browser/SKILL.md +1 -1
- package/templates/skills/agent-browser/content.md +1 -1
- package/templates/skills/apps/SKILL.md +749 -0
- package/templates/skills/apps/content.md +60 -22
- package/templates/skills/chat-sdk/config.json +14 -0
- package/templates/skills/chat-sdk/content.md +84 -0
- package/templates/skills/composio-gmail/content.md +7 -0
- package/templates/skills/composio-google-docs/content.md +1 -1
- package/templates/skills/email-domain-health/config.json +14 -0
- package/templates/skills/email-domain-health/content.md +131 -0
- package/templates/skills/kv-storage/content.md +2 -2
- package/templates/skills/pages/content.md +8 -10
- package/templates/skills/qa-loom/config.json +14 -0
- package/templates/skills/qa-loom/content.md +187 -0
- package/templates/skills/qa-loom/files/build-loom.mjs +221 -0
- package/templates/skills/qa-loom/files/run-qa.sh +57 -0
- package/templates/skills/slack-interaction/content.md +4 -0
- package/templates/skills/swarm-extensions/content.md +2 -0
- package/templates/skills/swarm-scripts/SKILL.md +4 -2
- package/templates/skills/swarm-scripts/config.json +1 -1
- package/templates/skills/swarm-scripts/content.md +4 -2
- package/templates/skills/workflow-iterate/content.md +38 -0
- package/dist/artifact-eczsknc3.js +0 -3843
- package/dist/cli-9xsmdpdt.js +0 -56377
- package/dist/cli-bd957dgb.js +0 -153
- package/dist/cli-q51yprfq.js +0 -1104
- package/dist/cli-t1ze64h3.js +0 -811
- package/dist/index-9ch1n761.js +0 -1102
- package/src/artifact-sdk/index.ts +0 -2
- package/src/artifact-sdk/localtunnel.d.ts +0 -20
- package/src/artifact-sdk/port.ts +0 -12
- package/src/artifact-sdk/server.ts +0 -183
- package/src/artifact-sdk/tunnel.ts +0 -19
- package/src/commands/artifact.ts +0 -249
- package/src/http/ecosystem.ts +0 -77
- package/src/tests/artifact-commands.test.ts +0 -92
- package/src/tests/artifact-sdk.test.ts +0 -793
- package/src/tests/register-service-security.test.ts +0 -194
- package/src/tools/list-services.ts +0 -107
- package/src/tools/register-service.ts +0 -177
- package/src/tools/unregister-service.ts +0 -73
- package/src/tools/update-service-status.ts +0 -96
- package/templates/skills/artifacts/config.json +0 -14
- package/templates/skills/artifacts/content.md +0 -344
- package/templates/skills/artifacts/files/examples/approval-flow.ts +0 -34
- package/templates/skills/artifacts/files/examples/hono-dashboard.ts +0 -31
- package/templates/skills/artifacts/files/examples/multi-artifact.ts +0 -20
- package/templates/skills/artifacts/files/examples/static-report.sh +0 -17
- package/dist/{azure-openai-responses-ap1gwxgr.js → azure-openai-responses-ygfreq4t.js} +5 -5
- package/dist/{cli-5rqrj7q0.js → cli-pw7ebjdt.js} +0 -0
- package/dist/{openai-codex-responses-33qhkkdy.js → openai-codex-responses-3bk0grnr.js} +4 -4
- package/dist/{openai-completions-s88xm3ns.js → openai-completions-5d4jpakc.js} +9 -9
- package/dist/{openai-responses-7xd2f2e2.js → openai-responses-krb51f59.js} +5 -5
- package/dist/{pi-messages-xszk613n.js → pi-messages-x9gzynm1.js} +3 -3
- /package/src/{artifact-sdk → pages}/browser-sdk.ts +0 -0
- /package/src/{artifact-sdk → pages}/feedback-overlay.ts +0 -0
|
@@ -120,6 +120,95 @@ describe("fetchResolvedEnv", () => {
|
|
|
120
120
|
warning.mockRestore();
|
|
121
121
|
}
|
|
122
122
|
});
|
|
123
|
+
|
|
124
|
+
test("exportToEnv=false rows stay out of the harness env, even over a boot copy", async () => {
|
|
125
|
+
const agentId = crypto.randomUUID();
|
|
126
|
+
mockResponsesByAgentId.set(agentId, {
|
|
127
|
+
status: 200,
|
|
128
|
+
body: {
|
|
129
|
+
configs: [
|
|
130
|
+
{ key: "VERCEL_TOKEN", value: "row-vercel", isSecret: true, exportToEnv: false },
|
|
131
|
+
{ key: "GITHUB_TOKEN", value: "row-github", isSecret: true, exportToEnv: true },
|
|
132
|
+
{ key: "PUBLIC_SETTING", value: "visible", isSecret: false, exportToEnv: true },
|
|
133
|
+
{ key: "HIDDEN_SETTING", value: "hidden", isSecret: false, exportToEnv: false },
|
|
134
|
+
// A pre-215 API sends no flag: the row keeps exporting.
|
|
135
|
+
{ key: "LEGACY_SECRET", value: "row-legacy", isSecret: true },
|
|
136
|
+
// Restricted keys never export, whatever the row says.
|
|
137
|
+
{ key: "SLACK_APP_TOKEN", value: "row-xapp", isSecret: true, exportToEnv: true },
|
|
138
|
+
],
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
const log = spyOn(console, "log").mockImplementation(() => {});
|
|
142
|
+
try {
|
|
143
|
+
// The base env stands for the container env or an older entrypoint's
|
|
144
|
+
// boot export; a withheld row must remove those copies too.
|
|
145
|
+
const result = await fetchResolvedEnv(testUrl, "key", agentId, {
|
|
146
|
+
VERCEL_TOKEN: "boot-vercel",
|
|
147
|
+
SLACK_APP_TOKEN: "boot-xapp",
|
|
148
|
+
});
|
|
149
|
+
expect(result.env.VERCEL_TOKEN).toBeUndefined();
|
|
150
|
+
expect(result.env.HIDDEN_SETTING).toBeUndefined();
|
|
151
|
+
expect(result.env.SLACK_APP_TOKEN).toBeUndefined();
|
|
152
|
+
expect(result.env.GITHUB_TOKEN).toBe("row-github");
|
|
153
|
+
expect(result.env.PUBLIC_SETTING).toBe("visible");
|
|
154
|
+
expect(result.env.LEGACY_SECRET).toBe("row-legacy");
|
|
155
|
+
const logged = log.mock.calls.map((call) => String(call[0])).join("\n");
|
|
156
|
+
expect(logged).toContain("HIDDEN_SETTING, SLACK_APP_TOKEN, VERCEL_TOKEN");
|
|
157
|
+
expect(logged).not.toContain("row-vercel");
|
|
158
|
+
expect(logged).not.toContain("boot-vercel");
|
|
159
|
+
} finally {
|
|
160
|
+
log.mockRestore();
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
test("a row revoked after boot leaves process.env, so merged adapter envs lose it", async () => {
|
|
165
|
+
const agentId = crypto.randomUUID();
|
|
166
|
+
const key = "REVOKED_AFTER_BOOT_SECRET";
|
|
167
|
+
mockResponsesByAgentId.set(agentId, {
|
|
168
|
+
status: 200,
|
|
169
|
+
body: { configs: [{ key, value: "row-value", isSecret: true, exportToEnv: false }] },
|
|
170
|
+
});
|
|
171
|
+
// The entrypoint exported the row at boot, before it was switched off.
|
|
172
|
+
process.env[key] = "boot-export";
|
|
173
|
+
const log = spyOn(console, "log").mockImplementation(() => {});
|
|
174
|
+
try {
|
|
175
|
+
const result = await fetchResolvedEnv(testUrl, "key", agentId);
|
|
176
|
+
expect(result.env[key]).toBeUndefined();
|
|
177
|
+
expect(process.env[key]).toBeUndefined();
|
|
178
|
+
// The amp, dsh, grok, cursor and claude adapters spawn with this shape.
|
|
179
|
+
expect({ ...process.env, ...result.env }[key]).toBeUndefined();
|
|
180
|
+
} finally {
|
|
181
|
+
delete process.env[key];
|
|
182
|
+
log.mockRestore();
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
test("a masked row keeps its boot value only when the row is exported", async () => {
|
|
187
|
+
const agentId = crypto.randomUUID();
|
|
188
|
+
mockResponsesByAgentId.set(agentId, {
|
|
189
|
+
status: 200,
|
|
190
|
+
body: {
|
|
191
|
+
configs: [
|
|
192
|
+
{ key: "EXPORTED_BOOT", value: MASKED_SECRET_VALUE, isSecret: true, exportToEnv: true },
|
|
193
|
+
{ key: "WITHHELD_BOOT", value: MASKED_SECRET_VALUE, isSecret: true, exportToEnv: false },
|
|
194
|
+
],
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
const warning = spyOn(console, "warn").mockImplementation(() => {});
|
|
198
|
+
const log = spyOn(console, "log").mockImplementation(() => {});
|
|
199
|
+
try {
|
|
200
|
+
const result = await fetchResolvedEnv(testUrl, "key", agentId, {
|
|
201
|
+
EXPORTED_BOOT: "boot-exported",
|
|
202
|
+
WITHHELD_BOOT: "boot-withheld",
|
|
203
|
+
});
|
|
204
|
+
expect(result.env.EXPORTED_BOOT).toBe("boot-exported");
|
|
205
|
+
expect(result.env.WITHHELD_BOOT).toBeUndefined();
|
|
206
|
+
} finally {
|
|
207
|
+
warning.mockRestore();
|
|
208
|
+
log.mockRestore();
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
|
|
123
212
|
test("repository scope requires the requested repository identity", async () => {
|
|
124
213
|
const repoId = crypto.randomUUID();
|
|
125
214
|
let url = "https://github.com/another-owner/fixture";
|
|
@@ -305,6 +394,45 @@ describe("fetchResolvedEnv", () => {
|
|
|
305
394
|
]);
|
|
306
395
|
});
|
|
307
396
|
|
|
397
|
+
test("HELMCODE_API_NAN alias becomes NAN_API_KEY and pools for a nan/* model", async () => {
|
|
398
|
+
const agentId = crypto.randomUUID();
|
|
399
|
+
mockResponsesByAgentId.set(agentId, {
|
|
400
|
+
status: 200,
|
|
401
|
+
body: { configs: [{ key: "HELMCODE_API_NAN", value: "fixture-nan-a,fixture-nan-b" }] },
|
|
402
|
+
});
|
|
403
|
+
const result = await fetchResolvedEnv(testUrl, "key", agentId, {}, "nan/glm5.3-flash", {
|
|
404
|
+
provider: "opencode",
|
|
405
|
+
});
|
|
406
|
+
expect(result.env.NAN_API_KEY).toMatch(/^fixture-nan-[ab]$/);
|
|
407
|
+
expect(result.credentialSelections.map((selection) => selection.keyType)).toEqual([
|
|
408
|
+
"NAN_API_KEY",
|
|
409
|
+
]);
|
|
410
|
+
});
|
|
411
|
+
|
|
412
|
+
test("an explicit NAN_API_KEY wins over the HELMCODE_API_NAN alias", async () => {
|
|
413
|
+
const agentId = crypto.randomUUID();
|
|
414
|
+
mockResponsesByAgentId.set(agentId, {
|
|
415
|
+
status: 200,
|
|
416
|
+
body: {
|
|
417
|
+
configs: [
|
|
418
|
+
{ key: "NAN_API_KEY", value: "fixture-nan-canonical" },
|
|
419
|
+
{ key: "HELMCODE_API_NAN", value: "fixture-nan-alias" },
|
|
420
|
+
],
|
|
421
|
+
},
|
|
422
|
+
});
|
|
423
|
+
const result = await fetchResolvedEnv(testUrl, "key", agentId, {}, "nan/qwen3.6", {
|
|
424
|
+
provider: "pi",
|
|
425
|
+
});
|
|
426
|
+
expect(result.env.NAN_API_KEY).toBe("fixture-nan-canonical");
|
|
427
|
+
});
|
|
428
|
+
|
|
429
|
+
test("the alias also normalizes from the boot env when the API is unreachable", async () => {
|
|
430
|
+
const result = await fetchResolvedEnv("", "key", "agent-1", {
|
|
431
|
+
HELMCODE_API_NAN: "fixture-nan-boot",
|
|
432
|
+
});
|
|
433
|
+
expect(result.env.NAN_API_KEY).toBe("fixture-nan-boot");
|
|
434
|
+
});
|
|
435
|
+
|
|
308
436
|
describe("model-scoped window filter — GET /api/keys/available?model=<family>", () => {
|
|
309
437
|
beforeEach(() => {
|
|
310
438
|
keysAvailableRequests.length = 0;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"subscriptionId": "a8d9a164-3964-405f-9e71-9159cce4eeb5",
|
|
3
|
+
"notificationId": 1,
|
|
4
|
+
"id": "40196cd7-1da3-43fb-a15d-48d654ab8304",
|
|
5
|
+
"eventType": "workitem.commented",
|
|
6
|
+
"publisherId": "tfs",
|
|
7
|
+
"message": {
|
|
8
|
+
"text": "Task #9 ([Swarm test] List the 5 most recently modified files in the example-web-app repository) commented on by Alex Example (CONTOSO)\r\n(https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9)",
|
|
9
|
+
"html": "<a href=\"https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9\">Task #9</a> ([Swarm test] List the 5 most recently modified files in the example-web-app repository) commented on by Alex Example (CONTOSO)",
|
|
10
|
+
"markdown": "[Task #9](https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9) ([Swarm test] List the 5 most recently modified files in the example-web-app repository) commented on by Alex Example (CONTOSO)"
|
|
11
|
+
},
|
|
12
|
+
"detailedMessage": {
|
|
13
|
+
"text": "Task #9 ([Swarm test] List the 5 most recently modified files in the example-web-app repository) commented on by Alex Example (CONTOSO)\r\n(https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9)\r\n\r\n@Swarm Bot (CONTOSO)(#) please do this task.\r\n",
|
|
14
|
+
"html": "<a href=\"https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9\">Task #9</a> ([Swarm test] List the 5 most recently modified files in the example-web-app repository) commented on by Alex Example (CONTOSO)<br/><div><a href=\"#\" data-vss-mention=\"version:2.0,7d40ac7f-6bdb-6baf-a2e2-dc9594e967d4\">@Swarm Bot (CONTOSO)</a> please do this task.</div>",
|
|
15
|
+
"markdown": "[Task #9](https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9) ([Swarm test] List the 5 most recently modified files in the example-web-app repository) commented on by Alex Example (CONTOSO)\r\n\r\n[@Swarm Bot (CONTOSO)](#) please do this task.\r\n"
|
|
16
|
+
},
|
|
17
|
+
"resource": {
|
|
18
|
+
"id": 9,
|
|
19
|
+
"rev": 3,
|
|
20
|
+
"fields": {
|
|
21
|
+
"System.AreaPath": "Contoso",
|
|
22
|
+
"System.TeamProject": "Contoso",
|
|
23
|
+
"System.IterationPath": "Contoso",
|
|
24
|
+
"System.WorkItemType": "Task",
|
|
25
|
+
"System.State": "To Do",
|
|
26
|
+
"System.Reason": "Added to backlog",
|
|
27
|
+
"System.AssignedTo": "Swarm Bot (CONTOSO) <swarm-bot@example.com>",
|
|
28
|
+
"System.CreatedDate": "2026-10-13T10:47:49.627Z",
|
|
29
|
+
"System.CreatedBy": "Alex Example (CONTOSO) <alex.example@example.com>",
|
|
30
|
+
"System.ChangedDate": "2026-10-13T10:49:24.08Z",
|
|
31
|
+
"System.ChangedBy": "Alex Example (CONTOSO) <alex.example@example.com>",
|
|
32
|
+
"System.CommentCount": 1,
|
|
33
|
+
"System.Title": "[Swarm test] List the 5 most recently modified files in the example-web-app repository",
|
|
34
|
+
"Microsoft.VSTS.Common.Priority": 2,
|
|
35
|
+
"Microsoft.VSTS.Common.StateChangeDate": "2026-10-13T10:47:49.627Z",
|
|
36
|
+
"System.Description": "<div>Test task for Azure Boards integration. List the 5 most recent commits on the `main` branch of the `smart-lab-platform web-app` repository (SHA, author, title). Read-only; do not modify code or create a PR.<br> </div>",
|
|
37
|
+
"System.History": "<div><a href=\"#\" data-vss-mention=\"version:2.0,7d40ac7f-6bdb-6baf-a2e2-dc9594e967d4\">@Swarm Bot (CONTOSO)</a> please do this task.</div>"
|
|
38
|
+
},
|
|
39
|
+
"multilineFieldsFormat": {
|
|
40
|
+
"System.Description": "html",
|
|
41
|
+
"System.History": "html"
|
|
42
|
+
},
|
|
43
|
+
"commentVersionRef": {
|
|
44
|
+
"commentId": 1510011,
|
|
45
|
+
"version": 1,
|
|
46
|
+
"url": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/comments/1510011/versions/1"
|
|
47
|
+
},
|
|
48
|
+
"_links": {
|
|
49
|
+
"self": {
|
|
50
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9"
|
|
51
|
+
},
|
|
52
|
+
"workItemUpdates": {
|
|
53
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/updates"
|
|
54
|
+
},
|
|
55
|
+
"workItemRevisions": {
|
|
56
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/revisions"
|
|
57
|
+
},
|
|
58
|
+
"workItemComments": {
|
|
59
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/comments"
|
|
60
|
+
},
|
|
61
|
+
"html": {
|
|
62
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_workitems/edit/9"
|
|
63
|
+
},
|
|
64
|
+
"workItemType": {
|
|
65
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItemTypes/Task"
|
|
66
|
+
},
|
|
67
|
+
"fields": {
|
|
68
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/fields"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"url": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9"
|
|
72
|
+
},
|
|
73
|
+
"resourceVersion": "1.0",
|
|
74
|
+
"resourceContainers": {
|
|
75
|
+
"collection": {
|
|
76
|
+
"id": "b51292df-d230-4305-a9da-cdee48c0d617",
|
|
77
|
+
"baseUrl": "https://dev.azure.com/acme-org/"
|
|
78
|
+
},
|
|
79
|
+
"account": {
|
|
80
|
+
"id": "bf998297-d284-4c84-b338-e4558a468208",
|
|
81
|
+
"baseUrl": "https://dev.azure.com/acme-org/"
|
|
82
|
+
},
|
|
83
|
+
"project": {
|
|
84
|
+
"id": "0d526892-c851-4fc5-b38a-8a401faa117e",
|
|
85
|
+
"baseUrl": "https://dev.azure.com/acme-org/"
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"createdDate": "2026-10-13T10:49:30.4275889Z"
|
|
89
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"subscriptionId": "88386d07-2a77-4bce-8a18-8e1903f16797",
|
|
3
|
+
"notificationId": 1,
|
|
4
|
+
"id": "09acb7d5-be99-4000-880c-7e3336ff3401",
|
|
5
|
+
"eventType": "workitem.created",
|
|
6
|
+
"publisherId": "tfs",
|
|
7
|
+
"message": {
|
|
8
|
+
"text": "Task #9 ([Swarm test] List the 5 most recently modified files in the example-web-app repository) created by Alex Example (CONTOSO)\r\n(https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9)",
|
|
9
|
+
"html": "<a href=\"https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9\">Task #9</a> ([Swarm test] List the 5 most recently modified files in the example-web-app repository) created by Alex Example (CONTOSO)",
|
|
10
|
+
"markdown": "[Task #9](https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9) ([Swarm test] List the 5 most recently modified files in the example-web-app repository) created by Alex Example (CONTOSO)"
|
|
11
|
+
},
|
|
12
|
+
"detailedMessage": {
|
|
13
|
+
"text": "Task #9 ([Swarm test] List the 5 most recently modified files in the example-web-app repository) created by Alex Example (CONTOSO)\r\n(https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9)\r\n\r\n- Area: Contoso\r\n- Iteration: Contoso\r\n- State: To Do\r\n",
|
|
14
|
+
"html": "<a href=\"https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9\">Task #9</a> ([Swarm test] List the 5 most recently modified files in the example-web-app repository) created by Alex Example (CONTOSO)<ul>\r\n<li>Area: Contoso</li>\r\n<li>Iteration: Contoso</li>\r\n<li>State: To Do</li></ul>",
|
|
15
|
+
"markdown": "[Task #9](https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9) ([Swarm test] List the 5 most recently modified files in the example-web-app repository) created by Alex Example (CONTOSO)\r\n\r\n* Area: Contoso\r\n* Iteration: Contoso\r\n* State: To Do\r\n"
|
|
16
|
+
},
|
|
17
|
+
"resource": {
|
|
18
|
+
"id": 9,
|
|
19
|
+
"rev": 1,
|
|
20
|
+
"fields": {
|
|
21
|
+
"System.AreaPath": "Contoso",
|
|
22
|
+
"System.TeamProject": "Contoso",
|
|
23
|
+
"System.IterationPath": "Contoso",
|
|
24
|
+
"System.WorkItemType": "Task",
|
|
25
|
+
"System.State": "To Do",
|
|
26
|
+
"System.Reason": "Added to backlog",
|
|
27
|
+
"System.CreatedDate": "2026-10-13T10:47:49.627Z",
|
|
28
|
+
"System.CreatedBy": "Alex Example (CONTOSO) <alex.example@example.com>",
|
|
29
|
+
"System.ChangedDate": "2026-10-13T10:47:49.627Z",
|
|
30
|
+
"System.ChangedBy": "Alex Example (CONTOSO) <alex.example@example.com>",
|
|
31
|
+
"System.CommentCount": 0,
|
|
32
|
+
"System.Title": "[Swarm test] List the 5 most recently modified files in the example-web-app repository",
|
|
33
|
+
"Microsoft.VSTS.Common.Priority": 2,
|
|
34
|
+
"Microsoft.VSTS.Common.StateChangeDate": "2026-10-13T10:47:49.627Z",
|
|
35
|
+
"System.Description": "<div>Test task for Azure Boards integration. List the 5 most recent commits on the `main` branch of the `smart-lab-platform web-app` repository (SHA, author, title). Read-only; do not modify code or create a PR.<br> </div>"
|
|
36
|
+
},
|
|
37
|
+
"multilineFieldsFormat": {
|
|
38
|
+
"System.Description": "html"
|
|
39
|
+
},
|
|
40
|
+
"_links": {
|
|
41
|
+
"self": {
|
|
42
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9"
|
|
43
|
+
},
|
|
44
|
+
"workItemUpdates": {
|
|
45
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/updates"
|
|
46
|
+
},
|
|
47
|
+
"workItemRevisions": {
|
|
48
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/revisions"
|
|
49
|
+
},
|
|
50
|
+
"workItemComments": {
|
|
51
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/comments"
|
|
52
|
+
},
|
|
53
|
+
"html": {
|
|
54
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_workitems/edit/9"
|
|
55
|
+
},
|
|
56
|
+
"workItemType": {
|
|
57
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItemTypes/Task"
|
|
58
|
+
},
|
|
59
|
+
"fields": {
|
|
60
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/fields"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"url": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9"
|
|
64
|
+
},
|
|
65
|
+
"resourceVersion": "1.0",
|
|
66
|
+
"resourceContainers": {
|
|
67
|
+
"collection": {
|
|
68
|
+
"id": "b51292df-d230-4305-a9da-cdee48c0d617",
|
|
69
|
+
"baseUrl": "https://dev.azure.com/acme-org/"
|
|
70
|
+
},
|
|
71
|
+
"account": {
|
|
72
|
+
"id": "bf998297-d284-4c84-b338-e4558a468208",
|
|
73
|
+
"baseUrl": "https://dev.azure.com/acme-org/"
|
|
74
|
+
},
|
|
75
|
+
"project": {
|
|
76
|
+
"id": "0d526892-c851-4fc5-b38a-8a401faa117e",
|
|
77
|
+
"baseUrl": "https://dev.azure.com/acme-org/"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"createdDate": "2026-10-13T10:47:56.5654685Z"
|
|
81
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"subscriptionId": "d93f9857-822d-43b9-af3d-fa03cc8e505d",
|
|
3
|
+
"notificationId": 1,
|
|
4
|
+
"id": "71ec5eac-b50a-477b-b1c1-30faba5c8750",
|
|
5
|
+
"eventType": "workitem.deleted",
|
|
6
|
+
"publisherId": "tfs",
|
|
7
|
+
"message": {
|
|
8
|
+
"text": "Task #9 ([Swarm test] List the 5 most recently modified files in the example-web-app repository) deleted by Alex Example (CONTOSO)",
|
|
9
|
+
"html": "Task #9 ([Swarm test] List the 5 most recently modified files in the example-web-app repository) deleted by Alex Example (CONTOSO)",
|
|
10
|
+
"markdown": "Task #9 ([Swarm test] List the 5 most recently modified files in the example-web-app repository) deleted by Alex Example (CONTOSO)"
|
|
11
|
+
},
|
|
12
|
+
"detailedMessage": {
|
|
13
|
+
"text": "Task #9 ([Swarm test] List the 5 most recently modified files in the example-web-app repository) deleted by Alex Example (CONTOSO)\r\n\r\n- Area: Contoso\r\n- Iteration: Contoso\r\n- State: To Do\r\n- Assigned to: Swarm Bot (CONTOSO) <swarm-bot@example.com>\r\n",
|
|
14
|
+
"html": "Task #9 ([Swarm test] List the 5 most recently modified files in the example-web-app repository) deleted by Alex Example (CONTOSO)<ul>\r\n<li>Area: Contoso</li>\r\n<li>Iteration: Contoso</li>\r\n<li>State: To Do</li>\r\n<li>Assigned to: Swarm Bot (CONTOSO) <swarm-bot@example.com></li></ul>",
|
|
15
|
+
"markdown": "Task #9 ([Swarm test] List the 5 most recently modified files in the example-web-app repository) deleted by Alex Example (CONTOSO)\r\n\r\n* Area: Contoso\r\n* Iteration: Contoso\r\n* State: To Do\r\n* Assigned to: Swarm Bot (CONTOSO) <swarm-bot@example.com>\r\n"
|
|
16
|
+
},
|
|
17
|
+
"resource": {
|
|
18
|
+
"id": 9,
|
|
19
|
+
"rev": 5,
|
|
20
|
+
"fields": {
|
|
21
|
+
"System.AreaPath": "Contoso",
|
|
22
|
+
"System.TeamProject": "Contoso",
|
|
23
|
+
"System.IterationPath": "Contoso",
|
|
24
|
+
"System.WorkItemType": "Task",
|
|
25
|
+
"System.State": "To Do",
|
|
26
|
+
"System.Reason": "Added to backlog",
|
|
27
|
+
"System.AssignedTo": "Swarm Bot (CONTOSO) <swarm-bot@example.com>",
|
|
28
|
+
"System.CreatedDate": "2026-10-13T10:47:49.627Z",
|
|
29
|
+
"System.CreatedBy": "Alex Example (CONTOSO) <alex.example@example.com>",
|
|
30
|
+
"System.ChangedDate": "2026-10-13T10:50:18.187Z",
|
|
31
|
+
"System.ChangedBy": "Alex Example (CONTOSO) <alex.example@example.com>",
|
|
32
|
+
"System.CommentCount": 2,
|
|
33
|
+
"System.Title": "[Swarm test] List the 5 most recently modified files in the example-web-app repository",
|
|
34
|
+
"Microsoft.VSTS.Common.Priority": 2,
|
|
35
|
+
"Microsoft.VSTS.Common.StateChangeDate": "2026-10-13T10:47:49.627Z",
|
|
36
|
+
"System.Description": "<div>Test task for Azure Boards integration. List the 5 most recent commits on the `main` branch of the `smart-lab-platform web-app` repository (SHA, author, title). Read-only; do not modify code or create a PR.<br> </div>"
|
|
37
|
+
},
|
|
38
|
+
"multilineFieldsFormat": {
|
|
39
|
+
"System.Description": "html"
|
|
40
|
+
},
|
|
41
|
+
"_links": {
|
|
42
|
+
"self": {
|
|
43
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/recyclebin/9"
|
|
44
|
+
},
|
|
45
|
+
"workItemType": {
|
|
46
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItemTypes/Task"
|
|
47
|
+
},
|
|
48
|
+
"fields": {
|
|
49
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/fields"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"url": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/recyclebin/9"
|
|
53
|
+
},
|
|
54
|
+
"resourceVersion": "1.0",
|
|
55
|
+
"resourceContainers": {
|
|
56
|
+
"collection": {
|
|
57
|
+
"id": "b51292df-d230-4305-a9da-cdee48c0d617",
|
|
58
|
+
"baseUrl": "https://dev.azure.com/acme-org/"
|
|
59
|
+
},
|
|
60
|
+
"account": {
|
|
61
|
+
"id": "bf998297-d284-4c84-b338-e4558a468208",
|
|
62
|
+
"baseUrl": "https://dev.azure.com/acme-org/"
|
|
63
|
+
},
|
|
64
|
+
"project": {
|
|
65
|
+
"id": "0d526892-c851-4fc5-b38a-8a401faa117e",
|
|
66
|
+
"baseUrl": "https://dev.azure.com/acme-org/"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"createdDate": "2026-10-13T10:50:24.8988125Z"
|
|
70
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"subscriptionId": "e2f8fec8-22c9-4324-bb8d-3fa493144922",
|
|
3
|
+
"notificationId": 1,
|
|
4
|
+
"id": "66e543cb-221e-4a68-9356-57d37174c41d",
|
|
5
|
+
"eventType": "workitem.restored",
|
|
6
|
+
"publisherId": "tfs",
|
|
7
|
+
"message": {
|
|
8
|
+
"text": "Task #9 ([Swarm test] List the 5 most recently modified files in the example-web-app repository) restored by Alex Example (CONTOSO)\r\n(https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9)",
|
|
9
|
+
"html": "<a href=\"https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9\">Task #9</a> ([Swarm test] List the 5 most recently modified files in the example-web-app repository) restored by Alex Example (CONTOSO)",
|
|
10
|
+
"markdown": "[Task #9](https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9) ([Swarm test] List the 5 most recently modified files in the example-web-app repository) restored by Alex Example (CONTOSO)"
|
|
11
|
+
},
|
|
12
|
+
"detailedMessage": {
|
|
13
|
+
"text": "Task #9 ([Swarm test] List the 5 most recently modified files in the example-web-app repository) restored by Alex Example (CONTOSO)\r\n(https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9)\r\n\r\n- Area: Contoso\r\n- Iteration: Contoso\r\n- State: To Do\r\n- Assigned to: Swarm Bot (CONTOSO) <swarm-bot@example.com>\r\n",
|
|
14
|
+
"html": "<a href=\"https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9\">Task #9</a> ([Swarm test] List the 5 most recently modified files in the example-web-app repository) restored by Alex Example (CONTOSO)<ul>\r\n<li>Area: Contoso</li>\r\n<li>Iteration: Contoso</li>\r\n<li>State: To Do</li>\r\n<li>Assigned to: Swarm Bot (CONTOSO) <swarm-bot@example.com></li></ul>",
|
|
15
|
+
"markdown": "[Task #9](https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9) ([Swarm test] List the 5 most recently modified files in the example-web-app repository) restored by Alex Example (CONTOSO)\r\n\r\n* Area: Contoso\r\n* Iteration: Contoso\r\n* State: To Do\r\n* Assigned to: Swarm Bot (CONTOSO) <swarm-bot@example.com>\r\n"
|
|
16
|
+
},
|
|
17
|
+
"resource": {
|
|
18
|
+
"id": 9,
|
|
19
|
+
"rev": 6,
|
|
20
|
+
"fields": {
|
|
21
|
+
"System.AreaPath": "Contoso",
|
|
22
|
+
"System.TeamProject": "Contoso",
|
|
23
|
+
"System.IterationPath": "Contoso",
|
|
24
|
+
"System.WorkItemType": "Task",
|
|
25
|
+
"System.State": "To Do",
|
|
26
|
+
"System.Reason": "Added to backlog",
|
|
27
|
+
"System.AssignedTo": "Swarm Bot (CONTOSO) <swarm-bot@example.com>",
|
|
28
|
+
"System.CreatedDate": "2026-10-13T10:47:49.627Z",
|
|
29
|
+
"System.CreatedBy": "Alex Example (CONTOSO) <alex.example@example.com>",
|
|
30
|
+
"System.ChangedDate": "2026-10-13T10:50:37.613Z",
|
|
31
|
+
"System.ChangedBy": "Alex Example (CONTOSO) <alex.example@example.com>",
|
|
32
|
+
"System.CommentCount": 2,
|
|
33
|
+
"System.Title": "[Swarm test] List the 5 most recently modified files in the example-web-app repository",
|
|
34
|
+
"Microsoft.VSTS.Common.Priority": 2,
|
|
35
|
+
"Microsoft.VSTS.Common.StateChangeDate": "2026-10-13T10:47:49.627Z",
|
|
36
|
+
"System.Description": "<div>Test task for Azure Boards integration. List the 5 most recent commits on the `main` branch of the `smart-lab-platform web-app` repository (SHA, author, title). Read-only; do not modify code or create a PR.<br> </div>"
|
|
37
|
+
},
|
|
38
|
+
"multilineFieldsFormat": {
|
|
39
|
+
"System.Description": "html"
|
|
40
|
+
},
|
|
41
|
+
"_links": {
|
|
42
|
+
"self": {
|
|
43
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9"
|
|
44
|
+
},
|
|
45
|
+
"workItemUpdates": {
|
|
46
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/updates"
|
|
47
|
+
},
|
|
48
|
+
"workItemRevisions": {
|
|
49
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/revisions"
|
|
50
|
+
},
|
|
51
|
+
"workItemComments": {
|
|
52
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/comments"
|
|
53
|
+
},
|
|
54
|
+
"html": {
|
|
55
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_workitems/edit/9"
|
|
56
|
+
},
|
|
57
|
+
"workItemType": {
|
|
58
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItemTypes/Task"
|
|
59
|
+
},
|
|
60
|
+
"fields": {
|
|
61
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/fields"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"url": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9"
|
|
65
|
+
},
|
|
66
|
+
"resourceVersion": "1.0",
|
|
67
|
+
"resourceContainers": {
|
|
68
|
+
"collection": {
|
|
69
|
+
"id": "b51292df-d230-4305-a9da-cdee48c0d617",
|
|
70
|
+
"baseUrl": "https://dev.azure.com/acme-org/"
|
|
71
|
+
},
|
|
72
|
+
"account": {
|
|
73
|
+
"id": "bf998297-d284-4c84-b338-e4558a468208",
|
|
74
|
+
"baseUrl": "https://dev.azure.com/acme-org/"
|
|
75
|
+
},
|
|
76
|
+
"project": {
|
|
77
|
+
"id": "0d526892-c851-4fc5-b38a-8a401faa117e",
|
|
78
|
+
"baseUrl": "https://dev.azure.com/acme-org/"
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"createdDate": "2026-10-13T10:50:43.9993374Z"
|
|
82
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
{
|
|
2
|
+
"subscriptionId": "7a0f02b3-9c09-4ef2-82f7-ce5cb31ac236",
|
|
3
|
+
"notificationId": 1,
|
|
4
|
+
"id": "02a678cc-3de4-428a-9ff4-8e0e069f9b52",
|
|
5
|
+
"eventType": "workitem.updated",
|
|
6
|
+
"publisherId": "tfs",
|
|
7
|
+
"message": {
|
|
8
|
+
"text": "Task #9 ([Swarm test] List the 5 most recently modified files in the example-web-app repository) assigned to Swarm Bot (CONTOSO) by Alex Example (CONTOSO)\r\n(https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9)",
|
|
9
|
+
"html": "<a href=\"https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9\">Task #9</a> ([Swarm test] List the 5 most recently modified files in the example-web-app repository) assigned to Swarm Bot (CONTOSO) by Alex Example (CONTOSO)",
|
|
10
|
+
"markdown": "[Task #9](https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9) ([Swarm test] List the 5 most recently modified files in the example-web-app repository) assigned to Swarm Bot (CONTOSO) by Alex Example (CONTOSO)"
|
|
11
|
+
},
|
|
12
|
+
"detailedMessage": {
|
|
13
|
+
"text": "Task #9 ([Swarm test] List the 5 most recently modified files in the example-web-app repository) assigned to Swarm Bot (CONTOSO) by Alex Example (CONTOSO)\r\n(https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9)\r\n\r\n- New Assigned to: Swarm Bot (CONTOSO) <swarm-bot@example.com>\r\n",
|
|
14
|
+
"html": "<a href=\"https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9\">Task #9</a> ([Swarm test] List the 5 most recently modified files in the example-web-app repository) assigned to Swarm Bot (CONTOSO) by Alex Example (CONTOSO)<ul>\r\n<li>New Assigned to: Swarm Bot (CONTOSO) <swarm-bot@example.com></li></ul>",
|
|
15
|
+
"markdown": "[Task #9](https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9) ([Swarm test] List the 5 most recently modified files in the example-web-app repository) assigned to Swarm Bot (CONTOSO) by Alex Example (CONTOSO)\r\n\r\n* New Assigned to: Swarm Bot (CONTOSO) <swarm-bot@example.com>\r\n"
|
|
16
|
+
},
|
|
17
|
+
"resource": {
|
|
18
|
+
"id": 2,
|
|
19
|
+
"workItemId": 9,
|
|
20
|
+
"rev": 2,
|
|
21
|
+
"revisedBy": {
|
|
22
|
+
"id": "3a9a0823-7970-6056-85b0-fa927bad6a02",
|
|
23
|
+
"name": "Alex Example (CONTOSO) <alex.example@example.com>",
|
|
24
|
+
"displayName": "Alex Example (CONTOSO)",
|
|
25
|
+
"url": "https://spsprodcus7.vssps.visualstudio.com/Abf998297-d284-4c84-b338-e4558a468208/_apis/Identities/3a9a0823-7970-6056-85b0-fa927bad6a02",
|
|
26
|
+
"_links": {
|
|
27
|
+
"avatar": {
|
|
28
|
+
"href": "https://dev.azure.com/acme-org/_apis/GraphProfile/MemberAvatars/aad.M2E5YTA4MjMtNzk3MC03MDU2LTg1YjAtZmE5MjdiYWQ2YTAy"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"uniqueName": "alex.example@example.com",
|
|
32
|
+
"imageUrl": "https://dev.azure.com/acme-org/_apis/GraphProfile/MemberAvatars/aad.M2E5YTA4MjMtNzk3MC03MDU2LTg1YjAtZmE5MjdiYWQ2YTAy",
|
|
33
|
+
"descriptor": "aad.M2E5YTA4MjMtNzk3MC03MDU2LTg1YjAtZmE5MjdiYWQ2YTAy"
|
|
34
|
+
},
|
|
35
|
+
"revisedDate": "9999-01-01T00:00:00Z",
|
|
36
|
+
"fields": {
|
|
37
|
+
"System.Rev": {
|
|
38
|
+
"oldValue": 1,
|
|
39
|
+
"newValue": 2
|
|
40
|
+
},
|
|
41
|
+
"System.AuthorizedDate": {
|
|
42
|
+
"oldValue": "2026-10-13T10:47:49.627Z",
|
|
43
|
+
"newValue": "2026-10-13T10:48:32.36Z"
|
|
44
|
+
},
|
|
45
|
+
"System.RevisedDate": {
|
|
46
|
+
"oldValue": "2026-10-13T10:48:32.36Z",
|
|
47
|
+
"newValue": "9999-01-01T00:00:00Z"
|
|
48
|
+
},
|
|
49
|
+
"System.AssignedTo": {
|
|
50
|
+
"newValue": "Swarm Bot (CONTOSO) <swarm-bot@example.com>"
|
|
51
|
+
},
|
|
52
|
+
"System.ChangedDate": {
|
|
53
|
+
"oldValue": "2026-10-13T10:47:49.627Z",
|
|
54
|
+
"newValue": "2026-10-13T10:48:32.36Z"
|
|
55
|
+
},
|
|
56
|
+
"System.Watermark": {
|
|
57
|
+
"oldValue": 41,
|
|
58
|
+
"newValue": 42
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"_links": {
|
|
62
|
+
"self": {
|
|
63
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/updates/2"
|
|
64
|
+
},
|
|
65
|
+
"workItemUpdates": {
|
|
66
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/updates"
|
|
67
|
+
},
|
|
68
|
+
"parent": {
|
|
69
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9"
|
|
70
|
+
},
|
|
71
|
+
"html": {
|
|
72
|
+
"href": "https://dev.azure.com/acme-org/web/wi.aspx?pcguid=b51292df-d230-4305-a9da-cdee48c0d617&id=9"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"url": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/updates/2",
|
|
76
|
+
"revision": {
|
|
77
|
+
"id": 9,
|
|
78
|
+
"rev": 2,
|
|
79
|
+
"fields": {
|
|
80
|
+
"System.AreaPath": "Contoso",
|
|
81
|
+
"System.TeamProject": "Contoso",
|
|
82
|
+
"System.IterationPath": "Contoso",
|
|
83
|
+
"System.WorkItemType": "Task",
|
|
84
|
+
"System.State": "To Do",
|
|
85
|
+
"System.Reason": "Added to backlog",
|
|
86
|
+
"System.AssignedTo": "Swarm Bot (CONTOSO) <swarm-bot@example.com>",
|
|
87
|
+
"System.CreatedDate": "2026-10-13T10:47:49.627Z",
|
|
88
|
+
"System.CreatedBy": "Alex Example (CONTOSO) <alex.example@example.com>",
|
|
89
|
+
"System.ChangedDate": "2026-10-13T10:48:32.36Z",
|
|
90
|
+
"System.ChangedBy": "Alex Example (CONTOSO) <alex.example@example.com>",
|
|
91
|
+
"System.CommentCount": 0,
|
|
92
|
+
"System.Title": "[Swarm test] List the 5 most recently modified files in the example-web-app repository",
|
|
93
|
+
"Microsoft.VSTS.Common.Priority": 2,
|
|
94
|
+
"Microsoft.VSTS.Common.StateChangeDate": "2026-10-13T10:47:49.627Z",
|
|
95
|
+
"System.Description": "<div>Test task for Azure Boards integration. List the 5 most recent commits on the `main` branch of the `smart-lab-platform web-app` repository (SHA, author, title). Read-only; do not modify code or create a PR.<br> </div>"
|
|
96
|
+
},
|
|
97
|
+
"multilineFieldsFormat": {
|
|
98
|
+
"System.Description": "html"
|
|
99
|
+
},
|
|
100
|
+
"_links": {
|
|
101
|
+
"self": {
|
|
102
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/revisions/2"
|
|
103
|
+
},
|
|
104
|
+
"workItemRevisions": {
|
|
105
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/revisions"
|
|
106
|
+
},
|
|
107
|
+
"parent": {
|
|
108
|
+
"href": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9"
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"url": "https://dev.azure.com/acme-org/0d526892-c851-4fc5-b38a-8a401faa117e/_apis/wit/workItems/9/revisions/2"
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"resourceVersion": "1.0",
|
|
115
|
+
"resourceContainers": {
|
|
116
|
+
"collection": {
|
|
117
|
+
"id": "b51292df-d230-4305-a9da-cdee48c0d617",
|
|
118
|
+
"baseUrl": "https://dev.azure.com/acme-org/"
|
|
119
|
+
},
|
|
120
|
+
"account": {
|
|
121
|
+
"id": "bf998297-d284-4c84-b338-e4558a468208",
|
|
122
|
+
"baseUrl": "https://dev.azure.com/acme-org/"
|
|
123
|
+
},
|
|
124
|
+
"project": {
|
|
125
|
+
"id": "0d526892-c851-4fc5-b38a-8a401faa117e",
|
|
126
|
+
"baseUrl": "https://dev.azure.com/acme-org/"
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"createdDate": "2026-10-13T10:48:38.9033359Z"
|
|
130
|
+
}
|