@desplega.ai/agent-swarm 1.159.0 → 1.161.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 +2 -2
- package/dist/{acp-adapter-qhch0n2v.js → acp-adapter-xx489vvb.js} +286 -75
- package/dist/{actions-dtsh1mfb.js → actions-ykjkn0m9.js} +32 -30
- package/dist/{anthropic-messages-f2h06k64.js → anthropic-messages-5qx80j9k.js} +99 -14
- package/dist/{app-y1b9srva.js → app-0hdqa4k1.js} +13 -11
- package/dist/{assistant-31hwy5xj.js → assistant-am2g5g8a.js} +40 -32
- package/dist/{azure-openai-responses-0k1mfax5.js → azure-openai-responses-fszbkp0e.js} +3 -3
- package/dist/{boot-reembed-48d2qpkt.js → boot-reembed-gt5gjkt4.js} +14 -12
- package/dist/{boot-reembed-w0bryhkr.js → boot-reembed-xy9t7avg.js} +15 -13
- package/dist/{boot-scrub-logs-t65wbrn7.js → boot-scrub-logs-9x0985y5.js} +12 -10
- package/dist/boot-seeds-trv0d4vg.js +29 -0
- package/dist/{claude-adapter-1t6611ne.js → claude-adapter-jb6e1e54.js} +32 -26
- package/dist/{claude-managed-adapter-werp659j.js → claude-managed-adapter-yxkfxg8j.js} +7 -7
- package/dist/{claude-managed-setup-y6rdgbc1.js → claude-managed-setup-d1q9hv2b.js} +26 -27
- package/dist/{claude-sdk-session-zhkyk8yw.js → claude-sdk-session-zga700s2.js} +11737 -11256
- package/dist/{cli-79aq9cgb.js → cli-0383bp7f.js} +1222 -406
- package/dist/{cli-xgpf00sk.js → cli-0c7ata9h.js} +24 -23
- package/dist/{cli-qjxy52w7.js → cli-121ph74b.js} +2 -2
- package/dist/{cli-20035trh.js → cli-17xpf7cm.js} +14 -7
- package/dist/{cli-cqt19wg6.js → cli-1a2j50m0.js} +11 -2
- package/dist/{cli-g9df2m37.js → cli-1cz0c18q.js} +249 -200
- package/dist/{cli-fjtp3463.js → cli-1er0rhz8.js} +13 -12
- package/dist/{cli-ca2w7zv7.js → cli-2hhfhfq5.js} +11 -6
- package/dist/{cli-npssxgaz.js → cli-2pdaysab.js} +52 -2
- package/dist/{cli-rykfmgwg.js → cli-2x0e561b.js} +1 -1
- package/dist/{cli-503ya656.js → cli-35pj2yva.js} +20 -150
- package/dist/cli-3qhyh31j.js +166 -0
- package/dist/{cli-cygyqj3b.js → cli-3zc55ctx.js} +8 -6
- package/dist/{cli-96qd5psa.js → cli-58e8yr0d.js} +1 -1
- package/dist/{cli-4aj25szq.js → cli-5nbmpy8w.js} +2 -2
- package/dist/{cli-mg24hkt4.js → cli-5p3x4zna.js} +2 -2
- package/dist/{cli-vwbbaecp.js → cli-7119ja3w.js} +3 -3
- package/dist/{cli-mzkqpxee.js → cli-798vkbks.js} +2 -2
- package/dist/{cli-3gvrr8vj.js → cli-82c1pacn.js} +111 -54
- package/dist/{cli-hgqfttfc.js → cli-89s4ngw3.js} +1 -1
- package/dist/{cli-9b13ggd1.js → cli-89v6kyq7.js} +1 -0
- package/dist/{cli-b6thtzac.js → cli-8g6mc14k.js} +7 -7
- package/dist/{cli-eg7cdg68.js → cli-9m03pzga.js} +5 -5
- package/dist/cli-9s68w752.js +303 -0
- package/dist/{cli-48527fpw.js → cli-a8c82p2t.js} +16 -15
- package/dist/{cli-5f2hq128.js → cli-ad4qxm6j.js} +12 -11
- package/dist/{cli-e4xnc0qp.js → cli-akfj32vj.js} +33 -7
- package/dist/{cli-ejpygnqz.js → cli-bh7jed3k.js} +212 -22
- package/dist/{cli-0z2v4nhw.js → cli-cat6h73s.js} +1 -1
- package/dist/{cli-e0ndxhtk.js → cli-cfkrztza.js} +190 -13
- package/dist/{cli-kc3dp84d.js → cli-d56tgd45.js} +216 -59
- package/dist/cli-dbmwby6a.js +9 -0
- package/dist/{cli-0n2e4x49.js → cli-ecfxwnyb.js} +15 -2
- package/dist/{cli-gzyh0j0g.js → cli-ee8bc46j.js} +66 -166
- package/dist/{cli-kdnehe0t.js → cli-et8m9xsv.js} +1 -1
- package/dist/cli-f9w1semm.js +413 -0
- package/dist/cli-gt4hxb8p.js +99 -0
- package/dist/{cli-qv4jv8bx.js → cli-hgmnf38m.js} +2 -2
- package/dist/{cli-10ym38qc.js → cli-hn04t9db.js} +3 -3
- package/dist/{cli-qvnnx4ct.js → cli-jpf7e1zq.js} +105 -243
- package/dist/cli-jyy6pm2f.js +333872 -0
- package/dist/{cli-dvjpkkjd.js → cli-kgd3p0bm.js} +7 -7
- package/dist/cli-ma3zvh39.js +10404 -0
- package/dist/{cli-r2ap2czm.js → cli-nexqx4ve.js} +6 -0
- package/dist/{cli-j9z8mfx3.js → cli-nsdxtcbg.js} +37 -20
- package/dist/{cli-wgjx0q33.js → cli-phfg8vy8.js} +392 -53
- package/dist/{cli-rgjprct3.js → cli-ptr8h7kp.js} +19 -1
- package/dist/{cli-s8s499xy.js → cli-qbksc292.js} +3 -2
- package/dist/{cli-bv0a38v9.js → cli-qwsnmjdd.js} +515 -229
- package/dist/{cli-68bmme5p.js → cli-r6fsxc76.js} +40018 -52654
- package/dist/{cli-rrqmqr1s.js → cli-rtx9dygp.js} +1 -1
- package/dist/{cli-rfezr056.js → cli-sqm3r5ps.js} +83 -15
- package/dist/{cli-zw65mab6.js → cli-t6v2ah3r.js} +67 -13
- package/dist/{cli-vn0qv9cj.js → cli-t845n9xk.js} +28 -14
- package/dist/cli-trc24wk2.js +143 -0
- package/dist/{cli-wd9hz40d.js → cli-tre4bdgq.js} +5 -5
- package/dist/{cli-9yg65c1j.js → cli-tsk3nz8a.js} +29 -1
- package/dist/{cli-phsaj4xq.js → cli-v0pvvhfq.js} +1 -1
- package/dist/{cli-hj65wsts.js → cli-vnnz5ncg.js} +4695 -4915
- package/dist/{cli-cpvsaqsw.js → cli-w0bwte75.js} +8 -5
- package/dist/{cli-z9x0sh1t.js → cli-we0q7t0e.js} +3 -3
- package/dist/{cli-r94z9p1z.js → cli-wgbezhw2.js} +3 -0
- package/dist/{cli-19jenss3.js → cli-xk79303e.js} +51 -17
- package/dist/{cli-31nkw3g3.js → cli-ybgv4kw2.js} +15 -8
- package/dist/{cli-ardpzhjm.js → cli-yrg7c73k.js} +13 -6
- package/dist/{cli-de1396j2.js → cli-ywybs5as.js} +7 -1
- package/dist/{cli-vhjwh6cz.js → cli-yy6dew39.js} +2 -2
- package/dist/{cli-bgv70kym.js → cli-zb6xbk61.js} +3 -2
- package/dist/{cli-4tvgz99m.js → cli-ze1d3wzv.js} +79 -27
- package/dist/cli.js +33 -32
- package/dist/{cloudflare-workers-ai-system-one-1sg586qv.js → cloudflare-workers-ai-system-one-k6fbxw9d.js} +2 -2
- package/dist/{codex-adapter-jqfqqa21.js → codex-adapter-04v97vep.js} +23 -20
- package/dist/{codex-hook-5eys3dya.js → codex-hook-20me6byw.js} +2 -2
- package/dist/{codex-login-he9vrn90.js → codex-login-cf7mzsgg.js} +48 -3
- package/dist/{codex-session-runner-zd341dsm.js → codex-session-runner-ax69mqq3.js} +21 -20
- package/dist/{commands-vfsysz4s.js → commands-18gy08n1.js} +12 -10
- package/dist/{db-s3znhvbn.js → db-d2pvjpyt.js} +22 -10
- package/dist/{devin-adapter-8vgkwh29.js → devin-adapter-dpsv6hd9.js} +1 -1
- package/dist/{dispatcher-5xn0c7rf.js → dispatcher-8wbwyzjg.js} +31 -29
- package/dist/{dsh-adapter-894mgfvs.js → dsh-adapter-ysqk9snv.js} +9 -4
- package/dist/{e2b-ez07znam.js → e2b-esmt1r16.js} +3 -1
- package/dist/{execute-71ysgv35.js → execute-cmagrbrz.js} +235 -52
- package/dist/{google-generative-ai-1nfcdphp.js → google-generative-ai-k6n5nbpp.js} +3 -3
- package/dist/{google-vertex-1tqcd7b1.js → google-vertex-44xxtcvp.js} +3 -3
- package/dist/{handlers-5w4jwycr.js → handlers-6b69m5kp.js} +34 -32
- package/dist/{hook-z0hbxj85.js → hook-k3mydf2n.js} +16 -14
- package/dist/{hook-853bxrr6.js → hook-srnkt0hb.js} +16 -14
- package/dist/{http-akc3wy3m.js → http-hrf80ca1.js} +836 -189
- package/dist/{index-ttpbhnjg.js → index-1asbaj62.js} +32 -30
- package/dist/{index-cd151qkq.js → index-45evq4ee.js} +31 -29
- package/dist/{index-k661dzzr.js → index-9rxdvj6w.js} +32 -30
- package/dist/index-k4nj18qs.js +31 -0
- package/dist/{index-5sz16ksh.js → index-xmevk2b9.js} +89 -61
- package/dist/{keepalive-8p9rpvz5.js → keepalive-sfdz6ksp.js} +14 -12
- package/dist/{lead-jp69z5h3.js → lead-ej91e9hw.js} +52 -50
- package/dist/{llama-cpp-classify-t2tccams.js → llama-cpp-classify-tgj35k8d.js} +1 -1
- package/dist/{maintenance-fwx4ev0k.js → maintenance-80dnd7ke.js} +15 -13
- package/dist/{mistral-conversations-bhvwqcnk.js → mistral-conversations-pc3ntnxt.js} +1 -1
- package/dist/node-f0ykebbv.js +2107 -0
- package/dist/node-wyamey5r.js +19 -0
- package/dist/{oauth-refresh-sweep-cwcq1ctx.js → oauth-refresh-sweep-m1etk2mx.js} +13 -11
- package/dist/{onboard-2b4q0t84.js → onboard-0q8sdfqc.js} +2 -2
- package/dist/{openai-codex-responses-nekthgks.js → openai-codex-responses-n7n683p2.js} +2 -2
- package/dist/{openai-completions-hxtzwj0s.js → openai-completions-jpaj5g2b.js} +2 -2
- package/dist/{openai-responses-w4r118w7.js → openai-responses-9a3nme9j.js} +3 -3
- package/dist/{opencode-adapter-zz7xvjj6.js → opencode-adapter-4wcgmvgf.js} +13 -11
- package/dist/{openrouter-images-b6sqqjgn.js → openrouter-images-8yx3487g.js} +1 -1
- package/dist/{otel-impl-g8rs4vwr.js → otel-impl-hnqm9mxq.js} +2 -2
- package/dist/pi-logo-animation-e9a0t68z.js +1003 -0
- package/dist/{pi-mono-adapter-n0me28wt.js → pi-mono-adapter-d6sqm9wr.js} +301 -78
- package/dist/{pricing-refresh-0v77385v.js → pricing-refresh-y60z64pm.js} +14 -13
- package/dist/quickjs-r1pq2107.wasm +0 -0
- package/dist/{rbac-roles-krjyazbj.js → rbac-roles-8pa0754b.js} +13 -11
- package/dist/{render-v2-3wjsp9aw.js → render-v2-418s1vj7.js} +13 -11
- package/dist/{runtime-ktjysacx.js → runtime-3pknc168.js} +5 -4
- package/dist/{setup-yeqryke6.js → setup-yghdkj4x.js} +2 -2
- package/dist/{typesafe-system-one-96960jxp.js → typesafe-system-one-2ef30pec.js} +2 -2
- package/dist/{virtual-modules-dzdeq1sf.js → virtual-modules-jcceevt5.js} +8 -6
- package/dist/{work-objects-3pakpkw0.js → work-objects-j1sz20v9.js} +34 -32
- package/dist/{worker-85testgj.js → worker-d4gcvkjt.js} +52 -50
- package/dist/{x-n3e0v3xa.js → x-f1gt1pz3.js} +2 -2
- package/openapi.json +587 -19
- package/package.json +16 -15
- package/src/azure-devops/api.ts +121 -0
- package/src/azure-devops/auth.ts +78 -0
- package/src/azure-devops/handlers.ts +413 -0
- package/src/azure-devops/index.ts +27 -0
- package/src/azure-devops/templates.ts +108 -0
- package/src/azure-devops/types.ts +90 -0
- package/src/be/db/api-keys.ts +70 -0
- package/src/be/db/tasks/read.ts +1 -1
- package/src/be/db/tasks/write.ts +16 -0
- package/src/be/db-client.ts +11 -2
- package/src/be/db-retention.ts +95 -32
- package/src/be/db.ts +187 -24
- package/src/be/memory/constants.ts +16 -0
- package/src/be/memory/graph-expansion.ts +8 -1
- package/src/be/memory/index-content.ts +20 -1
- package/src/be/memory/key-guard.ts +93 -0
- package/src/be/memory/key-paths.ts +103 -0
- package/src/be/memory/providers/sqlite-store.ts +203 -60
- package/src/be/memory/raters/llm-summarizer.ts +10 -4
- package/src/be/memory/raters/llm.ts +15 -5
- package/src/be/memory/raters/store.ts +6 -3
- package/src/be/memory/raters/types.ts +11 -0
- package/src/be/memory/reranker.ts +38 -7
- package/src/be/memory/types.ts +12 -1
- package/src/be/migrations/185_api_key_auth_failures.sql +6 -0
- package/src/be/migrations/186_api_key_seat_mismatch.sql +8 -0
- package/src/be/migrations/190_memory_rating_model.sql +7 -0
- package/src/be/migrations/191_context_versions_previous_index.sql +8 -0
- package/src/be/model-tier-keys.ts +16 -1
- package/src/be/model-tier-resolution.ts +63 -18
- package/src/be/model-validation.ts +86 -10
- package/src/be/pricing-normalize.ts +4 -2
- package/src/be/scripts/typecheck.ts +4 -3
- package/src/be/seed/runner.ts +18 -12
- package/src/be/seed/types.ts +1 -0
- package/src/be/seed-pricing.ts +16 -0
- package/src/be/seed-scripts/catalog/task-failure-audit.ts +26 -26
- package/src/be/swarm-config-guard.ts +13 -1
- package/src/commands/claude-managed-setup.ts +33 -31
- package/src/commands/codex-login.ts +67 -0
- package/src/commands/credential-outcome-report.ts +191 -0
- package/src/commands/provider-credentials.ts +28 -15
- package/src/commands/rate-limit-outcome.ts +34 -4
- package/src/commands/runner.ts +479 -228
- package/src/commands/seat-mismatch-report.ts +46 -0
- package/src/e2b/env.ts +2 -0
- package/src/extensions/apply-task-create.ts +27 -1
- package/src/extensions/catalog.generated.json +17 -0
- package/src/extensions/contract-types.generated.ts +1 -1
- package/src/github/handlers.ts +10 -74
- package/src/github/reactions.ts +119 -138
- package/src/github/task-reactions.ts +34 -11
- package/src/heartbeat/heartbeat.ts +15 -2
- package/src/hooks/hook.ts +1 -1
- package/src/http/agents.ts +15 -2
- package/src/http/api-keys.ts +140 -2
- package/src/http/codex-oauth-keep-warm.ts +3 -5
- package/src/http/core.ts +12 -0
- package/src/http/extensions.ts +51 -27
- package/src/http/index.ts +4 -0
- package/src/http/mcp-user.ts +8 -13
- package/src/http/mcp.ts +19 -12
- package/src/http/memory.ts +91 -18
- package/src/http/poll.ts +9 -1
- package/src/http/schedules.ts +17 -2
- package/src/http/script-runs.ts +12 -0
- package/src/http/session-data.ts +6 -4
- package/src/http/stats.ts +1 -0
- package/src/http/status.ts +15 -1
- package/src/http/tasks.ts +80 -8
- package/src/http/users.ts +1 -1
- package/src/http/webhooks.ts +120 -2
- package/src/http/workflows.ts +11 -0
- package/src/mcp-client/http-client.ts +5 -0
- package/src/memory/recall-query.ts +74 -0
- package/src/prompts/base-prompt.ts +15 -4
- package/src/prompts/session-templates.ts +22 -1
- package/src/providers/acp-adapter.ts +1 -0
- package/src/providers/claude-adapter.ts +98 -21
- package/src/providers/claude-managed-adapter.ts +30 -2
- package/src/providers/claude-sdk-session.ts +3 -1
- package/src/providers/codex-adapter.ts +11 -11
- package/src/providers/codex-skill-resolver.ts +6 -0
- package/src/providers/devin-adapter.ts +1 -0
- package/src/providers/dsh-adapter.ts +205 -7
- package/src/providers/harness-version.ts +83 -7
- package/src/providers/opencode-adapter.ts +77 -4
- package/src/providers/pi-binary-root/src/extensions/codemode/worker.ts +11 -0
- package/src/providers/pi-codemode-runtime.ts +17 -0
- package/src/providers/pi-mono-adapter.ts +387 -83
- package/src/providers/pi-mono-extension.ts +17 -2
- package/src/providers/pricing-sources.md +5 -1
- package/src/providers/reasoning-effort.ts +10 -2
- package/src/providers/types.ts +9 -1
- package/src/rbac/legacy-policy.ts +20 -0
- package/src/rbac/permissions.ts +15 -0
- package/src/scripts-runtime/types/stdlib.d.ts +13 -5
- package/src/scripts-runtime/types/swarm-extension.d.ts +4 -2
- package/src/scripts-runtime/types/swarm-sdk.d.ts +13 -5
- package/src/slack/assistant.ts +13 -0
- package/src/slack/render-v2.ts +87 -37
- package/src/slack/session-status.ts +541 -0
- package/src/tasks/context-key.ts +38 -1
- package/src/tasks/sibling-awareness.ts +3 -2
- package/src/telemetry.ts +5 -4
- package/src/templates.d.ts +6 -0
- package/src/tests/api-key-auth-failure-route.test.ts +142 -0
- package/src/tests/api-key-tracking.test.ts +368 -1
- package/src/tests/azure-devops-auth.test.ts +100 -0
- package/src/tests/azure-devops-handlers.test.ts +324 -0
- package/src/tests/azure-devops-webhook-malformed.test.ts +96 -0
- package/src/tests/base-prompt.test.ts +40 -2
- package/src/tests/claude-adapter.test.ts +58 -0
- package/src/tests/claude-default-route.test.ts +260 -0
- package/src/tests/claude-managed-adapter.test.ts +47 -0
- package/src/tests/claude-managed-setup.test.ts +48 -0
- package/src/tests/claude-prompt-body-once.test.ts +117 -0
- package/src/tests/claude-routes-e2e.test.ts +316 -0
- package/src/tests/codex-auth-failure.test.ts +52 -0
- package/src/tests/codex-login.test.ts +116 -0
- package/src/tests/context-versions-retention.test.ts +314 -0
- package/src/tests/core-auth.test.ts +7 -0
- package/src/tests/credential-exhaustion-policy.test.ts +118 -3
- package/src/tests/credential-outcome-report.test.ts +171 -0
- package/src/tests/credential-status-api.test.ts +103 -2
- package/src/tests/db-retention.test.ts +14 -14
- package/src/tests/db-task-read-contract.test.ts +6 -0
- package/src/tests/db-task-write-contract.test.ts +533 -1
- package/src/tests/docs-index-footprint.test.js +3 -3
- package/src/tests/dokploy-deploy.test.ts +315 -0
- package/src/tests/dsh-adapter.test.ts +134 -2
- package/src/tests/dsh-usage.test.ts +153 -0
- package/src/tests/explicit-model-validation.test.ts +253 -2
- package/src/tests/extensions-catalog.test.ts +1 -0
- package/src/tests/extensions-example-deploy-awareness.test.ts +301 -0
- package/src/tests/extensions-http.test.ts +137 -10
- package/src/tests/extensions-mcp-tools.test.ts +28 -0
- package/src/tests/extensions-pre-task.test.ts +73 -0
- package/src/tests/fetch-resolved-env.test.ts +70 -0
- package/src/tests/fixtures/azure-devops/pull-request-commented.json +129 -0
- package/src/tests/fixtures/azure-devops/pull-request-created.json +88 -0
- package/src/tests/fixtures/fake-claude-routes.ts +229 -0
- package/src/tests/github-handlers-reactions.test.ts +486 -0
- package/src/tests/github-reactions.test.ts +280 -0
- package/src/tests/hang-watchdog-worker.ts +47 -0
- package/src/tests/hang-watchdog.test.ts +45 -0
- package/src/tests/hang-watchdog.ts +30 -0
- package/src/tests/harness-cli-version.test.ts +62 -0
- package/src/tests/harness-model-guard.test.ts +123 -0
- package/src/tests/harness-version.test.ts +70 -3
- package/src/tests/http-api-integration.test.ts +21 -0
- package/src/tests/http-task-write-ownership.test.ts +195 -0
- package/src/tests/internal-ai/complete-structured.test.ts +94 -0
- package/src/tests/internal-ai/credentials.test.ts +22 -0
- package/src/tests/internal-ai/models.test.ts +36 -2
- package/src/tests/internal-ai/schema-parity.test.ts +25 -1
- package/src/tests/internal-ai/summarize-session.test.ts +23 -7
- package/src/tests/mcp-user-route.test.ts +133 -0
- package/src/tests/memory-fts-populate.test.ts +139 -0
- package/src/tests/memory-http-recall-gating.test.ts +125 -1
- package/src/tests/memory-key-paths.test.ts +1055 -0
- package/src/tests/memory-rate-endpoint.test.ts +66 -0
- package/src/tests/memory-rater-llm-summarizer.test.ts +2 -1
- package/src/tests/memory-rater-llm.test.ts +73 -0
- package/src/tests/memory-rater-store.test.ts +31 -0
- package/src/tests/memory-reranker.test.ts +40 -0
- package/src/tests/model-rate-limit-windows.test.ts +19 -0
- package/src/tests/model-tier-resolution.test.ts +92 -0
- package/src/tests/opencode-adapter.test.ts +214 -2
- package/src/tests/opencode-plugin.test.ts +4 -0
- package/src/tests/pi-codemode.test.ts +324 -0
- package/src/tests/pi-mono-adapter.test.ts +3 -0
- package/src/tests/pi-native-mcp.test.ts +193 -0
- package/src/tests/pi-tool-exposure.test.ts +374 -0
- package/src/tests/preload.ts +9 -0
- package/src/tests/prompt-template-session.test.ts +5 -3
- package/src/tests/provider-registration.test.ts +0 -2
- package/src/tests/providers/pi-cost.test.ts +190 -4
- package/src/tests/rate-limit-event.test.ts +65 -0
- package/src/tests/rate-limit-outcome.test.ts +90 -0
- package/src/tests/rbac-engine.test.ts +41 -2
- package/src/tests/runner-key-completion-outcome.test.ts +112 -0
- package/src/tests/runner-key-outcome-late-reset.test.ts +224 -0
- package/src/tests/runner-registration-retry.test.ts +149 -0
- package/src/tests/runner-slot-reconcile.test.ts +199 -0
- package/src/tests/script-connections.test.ts +8 -0
- package/src/tests/seat-mismatch-report.test.ts +85 -0
- package/src/tests/seed-scripts.test.ts +49 -0
- package/src/tests/seed.test.ts +25 -0
- package/src/tests/session-costs-recompute-all-providers.test.ts +23 -0
- package/src/tests/slack-render-v2.test.ts +96 -0
- package/src/tests/slack-session-status.test.ts +626 -0
- package/src/tests/status.test.ts +29 -0
- package/src/tests/steering-promotion.test.ts +51 -0
- package/src/tests/store-progress-ownership.test.ts +136 -0
- package/src/tests/subscription-plans.test.ts +28 -0
- package/src/tests/task-citations.test.ts +3 -2
- package/src/tests/task-reactions.test.ts +29 -6
- package/src/tests/vcs-azure-devops.test.ts +73 -0
- package/src/tests/webhooks-task-blocked.test.ts +23 -0
- package/src/tests/workflow-agent-task.test.ts +30 -0
- package/src/tests/workflow-llm.test.ts +14 -0
- package/src/tests/workflow-triggers-v2.test.ts +320 -0
- package/src/tools/context-diff.ts +20 -0
- package/src/tools/extension-install.ts +27 -16
- package/src/tools/memory-edit.ts +47 -3
- package/src/tools/memory-search.ts +13 -1
- package/src/tools/memory-store.ts +55 -3
- package/src/tools/schedules/create-schedule.ts +1 -1
- package/src/tools/schedules/patch-schedule.ts +16 -3
- package/src/tools/schedules/update-schedule.ts +16 -3
- package/src/tools/send-task.ts +10 -7
- package/src/tools/store-progress.ts +49 -4
- package/src/tools/task-action.ts +2 -1
- package/src/tools/workflows/create-workflow.ts +8 -2
- package/src/tools/workflows/update-workflow.ts +8 -2
- package/src/types.ts +54 -7
- package/src/utils/codex-auth-failure.ts +34 -0
- package/src/utils/credentials.test.ts +31 -1
- package/src/utils/credentials.ts +92 -39
- package/src/utils/dsh-usage.ts +53 -0
- package/src/utils/error-tracker.ts +80 -0
- package/src/utils/harness-cli-version.ts +6 -4
- package/src/utils/internal-ai/complete-structured.ts +26 -3
- package/src/utils/internal-ai/credentials.ts +23 -9
- package/src/utils/internal-ai/index.ts +8 -1
- package/src/utils/internal-ai/models.ts +34 -8
- package/src/utils/internal-ai/summarize-session.ts +22 -8
- package/src/utils/model-rate-limit-windows.ts +12 -0
- package/src/utils/runtime-model-catalog.ts +15 -0
- package/src/utils/secret-scrubber.ts +8 -0
- package/src/utils/spawn-model-guard.ts +43 -0
- package/src/utils/subscription-plans.ts +22 -0
- package/src/vcs/azure-devops.ts +80 -0
- package/src/vcs/index.ts +5 -1
- package/src/vcs/types.ts +2 -2
- package/src/workflows/executors/agent-task.ts +7 -6
- package/src/workflows/model-validation.ts +45 -0
- package/src/workflows/patch-definition.ts +5 -0
- package/src/workflows/triggers.ts +85 -0
- package/templates/community/open-prompt-showreel/PLAYBOOK.md +336 -0
- package/templates/community/open-prompt-showreel/README.md +33 -0
- package/templates/community/open-prompt-showreel/example/tla-races/facts.ts +145 -0
- package/templates/community/open-prompt-showreel/example/tla-races/facts.v3.json +140 -0
- package/templates/community/open-prompt-showreel/example/tla-races/music.mist-city.json +8 -0
- package/templates/community/open-prompt-showreel/example/tla-races/reel.html +805 -0
- package/templates/community/open-prompt-showreel/example/tla-races/smoke.sh +48 -0
- package/templates/community/open-prompt-showreel/lead-prompt.md +89 -0
- package/templates/community/open-prompt-showreel/setup.sh +167 -0
- package/templates/community/open-prompt-showreel/skills/motion-design-replication/SKILL.md +85 -0
- package/templates/community/open-prompt-showreel/skills/motion-design-video-analysis/SKILL.md +115 -0
- package/templates/community/open-prompt-showreel/skills/open-prompt-showreel/SKILL.md +147 -0
- package/templates/community/open-prompt-showreel/skills/video-generation/SKILL.md +195 -0
- package/templates/community/open-prompt-showreel/tools/fetch-music.sh +65 -0
- package/templates/community/open-prompt-showreel/tools/music-analyze.py +69 -0
- package/templates/community/open-prompt-showreel/tools/music-current.sh +34 -0
- package/templates/community/open-prompt-showreel/tools/music-cut.sh +36 -0
- package/templates/community/open-prompt-showreel/tools/music-refine.py +39 -0
- package/templates/community/open-prompt-showreel/tools/render.mjs +157 -0
- package/templates/community/open-prompt-showreel/tools/sheet.sh +44 -0
- package/templates/community/open-prompt-showreel/tools/web-compress.sh +17 -0
- package/templates/community/open-prompt-showreel/tools/x-reencode.sh +21 -0
- package/templates/extensions/README.md +1 -0
- package/templates/extensions/deploy-awareness/README.md +28 -0
- package/templates/extensions/deploy-awareness/hooks.ts +152 -0
- package/templates/extensions/deploy-awareness/manifest.json +8 -0
- package/templates/skills/memory/config.json +2 -2
- package/templates/skills/memory/content.md +59 -5
- package/templates/skills/swarm-extensions/config.json +1 -1
- package/templates/skills/swarm-extensions/content.md +28 -5
- package/templates/skills/workflow-iterate/content.md +1 -0
- package/dist/boot-seeds-h7c32hvm.js +0 -27
- package/dist/cli-2djtr51b.js +0 -48
- package/dist/cli-7zttzetj.js +0 -324
- package/dist/cli-j490egb5.js +0 -5632
- package/dist/cli-m4excttz.js +0 -333481
- package/dist/index-bjmjh9h4.js +0 -29
|
@@ -20,58 +20,60 @@ import {
|
|
|
20
20
|
stopWaitPoller,
|
|
21
21
|
subscribeWaitToBus,
|
|
22
22
|
validateTemplateVariables
|
|
23
|
-
} from "./cli-
|
|
24
|
-
import"./cli-
|
|
25
|
-
import"./cli-
|
|
23
|
+
} from "./cli-0383bp7f.js";
|
|
24
|
+
import"./cli-cat6h73s.js";
|
|
25
|
+
import"./cli-w0bwte75.js";
|
|
26
26
|
import"./cli-re8z5p8p.js";
|
|
27
|
-
import"./cli-
|
|
28
|
-
import"./cli-z9x0sh1t.js";
|
|
29
|
-
import"./cli-9yg65c1j.js";
|
|
30
|
-
import"./cli-cygyqj3b.js";
|
|
31
|
-
import"./cli-m4excttz.js";
|
|
32
|
-
import"./cli-0n2e4x49.js";
|
|
27
|
+
import"./cli-3zc55ctx.js";
|
|
33
28
|
import {
|
|
34
29
|
findEntryNodes,
|
|
35
30
|
getSuccessors
|
|
36
|
-
} from "./cli-
|
|
31
|
+
} from "./cli-1er0rhz8.js";
|
|
37
32
|
import"./cli-epan13p1.js";
|
|
38
33
|
import"./cli-y89t4nca.js";
|
|
39
34
|
import"./cli-f14fvzag.js";
|
|
40
|
-
import"./cli-
|
|
41
|
-
import"./cli-
|
|
35
|
+
import"./cli-sqm3r5ps.js";
|
|
36
|
+
import"./cli-yy6dew39.js";
|
|
42
37
|
import"./cli-3dpj7atn.js";
|
|
43
|
-
import"./cli-
|
|
38
|
+
import"./cli-2x0e561b.js";
|
|
39
|
+
import"./cli-ee8bc46j.js";
|
|
44
40
|
import"./cli-rb9m6rpe.js";
|
|
45
|
-
import"./cli-
|
|
46
|
-
import"./cli-
|
|
47
|
-
import"./cli-
|
|
41
|
+
import"./cli-jsp14b6c.js";
|
|
42
|
+
import"./cli-7119ja3w.js";
|
|
43
|
+
import"./cli-hgmnf38m.js";
|
|
44
|
+
import"./cli-we0q7t0e.js";
|
|
45
|
+
import"./cli-tsk3nz8a.js";
|
|
46
|
+
import"./cli-ecfxwnyb.js";
|
|
48
47
|
import"./cli-fad8m16k.js";
|
|
49
|
-
import"./cli-
|
|
50
|
-
import"./cli-
|
|
48
|
+
import"./cli-d56tgd45.js";
|
|
49
|
+
import"./cli-hn04t9db.js";
|
|
51
50
|
import"./cli-bsakbbkm.js";
|
|
51
|
+
import"./cli-trc24wk2.js";
|
|
52
52
|
import"./cli-51tf7ac3.js";
|
|
53
|
-
import"./cli-
|
|
53
|
+
import"./cli-phfg8vy8.js";
|
|
54
54
|
import"./cli-q51yprfq.js";
|
|
55
55
|
import"./cli-3er6gcsn.js";
|
|
56
56
|
import"./cli-2658f6at.js";
|
|
57
57
|
import"./cli-yatxqynm.js";
|
|
58
|
-
import"./cli-
|
|
59
|
-
import"./cli-
|
|
60
|
-
import"./cli-
|
|
61
|
-
import"./cli-
|
|
58
|
+
import"./cli-1cz0c18q.js";
|
|
59
|
+
import"./cli-3qhyh31j.js";
|
|
60
|
+
import"./cli-akfj32vj.js";
|
|
61
|
+
import"./cli-yrg7c73k.js";
|
|
62
62
|
import {
|
|
63
63
|
interpolate
|
|
64
|
-
} from "./cli-
|
|
64
|
+
} from "./cli-ptr8h7kp.js";
|
|
65
|
+
import"./cli-xk79303e.js";
|
|
66
|
+
import"./cli-n7h1kqpf.js";
|
|
67
|
+
import"./cli-ywybs5as.js";
|
|
65
68
|
import"./cli-dv6cdjs2.js";
|
|
66
|
-
import"./cli-
|
|
67
|
-
import"./cli-
|
|
68
|
-
import"./cli-de1396j2.js";
|
|
69
|
+
import"./cli-1a2j50m0.js";
|
|
70
|
+
import"./cli-f9w1semm.js";
|
|
69
71
|
import"./cli-ej6gbxfb.js";
|
|
70
|
-
import"./cli-
|
|
72
|
+
import"./cli-jyy6pm2f.js";
|
|
71
73
|
import"./cli-sd0mxa3c.js";
|
|
72
74
|
import"./cli-w5e1d1vv.js";
|
|
73
|
-
import"./cli-
|
|
74
|
-
import"./cli-
|
|
75
|
+
import"./cli-a8c82p2t.js";
|
|
76
|
+
import"./cli-nexqx4ve.js";
|
|
75
77
|
import"./cli-13hw4z91.js";
|
|
76
78
|
import"./cli-btbzvq95.js";
|
|
77
79
|
import"./cli-1m2e086m.js";
|
|
@@ -4,53 +4,55 @@ import {
|
|
|
4
4
|
runScheduleNow,
|
|
5
5
|
startScheduler,
|
|
6
6
|
stopScheduler
|
|
7
|
-
} from "./cli-
|
|
8
|
-
import"./cli-
|
|
9
|
-
import"./cli-
|
|
7
|
+
} from "./cli-0383bp7f.js";
|
|
8
|
+
import"./cli-cat6h73s.js";
|
|
9
|
+
import"./cli-w0bwte75.js";
|
|
10
10
|
import"./cli-re8z5p8p.js";
|
|
11
|
-
import"./cli-
|
|
12
|
-
import"./cli-
|
|
13
|
-
import"./cli-9yg65c1j.js";
|
|
14
|
-
import"./cli-cygyqj3b.js";
|
|
15
|
-
import"./cli-m4excttz.js";
|
|
16
|
-
import"./cli-0n2e4x49.js";
|
|
17
|
-
import"./cli-fjtp3463.js";
|
|
11
|
+
import"./cli-3zc55ctx.js";
|
|
12
|
+
import"./cli-1er0rhz8.js";
|
|
18
13
|
import"./cli-epan13p1.js";
|
|
19
14
|
import"./cli-y89t4nca.js";
|
|
20
15
|
import"./cli-f14fvzag.js";
|
|
21
|
-
import"./cli-
|
|
22
|
-
import"./cli-
|
|
16
|
+
import"./cli-sqm3r5ps.js";
|
|
17
|
+
import"./cli-yy6dew39.js";
|
|
23
18
|
import"./cli-3dpj7atn.js";
|
|
24
|
-
import"./cli-
|
|
19
|
+
import"./cli-2x0e561b.js";
|
|
20
|
+
import"./cli-ee8bc46j.js";
|
|
25
21
|
import"./cli-rb9m6rpe.js";
|
|
26
|
-
import"./cli-
|
|
27
|
-
import"./cli-
|
|
28
|
-
import"./cli-
|
|
22
|
+
import"./cli-jsp14b6c.js";
|
|
23
|
+
import"./cli-7119ja3w.js";
|
|
24
|
+
import"./cli-hgmnf38m.js";
|
|
25
|
+
import"./cli-we0q7t0e.js";
|
|
26
|
+
import"./cli-tsk3nz8a.js";
|
|
27
|
+
import"./cli-ecfxwnyb.js";
|
|
29
28
|
import"./cli-fad8m16k.js";
|
|
30
|
-
import"./cli-
|
|
31
|
-
import"./cli-
|
|
29
|
+
import"./cli-d56tgd45.js";
|
|
30
|
+
import"./cli-hn04t9db.js";
|
|
32
31
|
import"./cli-bsakbbkm.js";
|
|
32
|
+
import"./cli-trc24wk2.js";
|
|
33
33
|
import"./cli-51tf7ac3.js";
|
|
34
|
-
import"./cli-
|
|
34
|
+
import"./cli-phfg8vy8.js";
|
|
35
35
|
import"./cli-q51yprfq.js";
|
|
36
36
|
import"./cli-3er6gcsn.js";
|
|
37
37
|
import"./cli-2658f6at.js";
|
|
38
38
|
import"./cli-yatxqynm.js";
|
|
39
|
-
import"./cli-
|
|
40
|
-
import"./cli-
|
|
41
|
-
import"./cli-
|
|
39
|
+
import"./cli-1cz0c18q.js";
|
|
40
|
+
import"./cli-3qhyh31j.js";
|
|
41
|
+
import"./cli-akfj32vj.js";
|
|
42
|
+
import"./cli-yrg7c73k.js";
|
|
43
|
+
import"./cli-ptr8h7kp.js";
|
|
44
|
+
import"./cli-xk79303e.js";
|
|
42
45
|
import"./cli-n7h1kqpf.js";
|
|
43
|
-
import"./cli-
|
|
46
|
+
import"./cli-ywybs5as.js";
|
|
44
47
|
import"./cli-dv6cdjs2.js";
|
|
45
|
-
import"./cli-
|
|
46
|
-
import"./cli-
|
|
47
|
-
import"./cli-de1396j2.js";
|
|
48
|
+
import"./cli-1a2j50m0.js";
|
|
49
|
+
import"./cli-f9w1semm.js";
|
|
48
50
|
import"./cli-ej6gbxfb.js";
|
|
49
|
-
import"./cli-
|
|
51
|
+
import"./cli-jyy6pm2f.js";
|
|
50
52
|
import"./cli-sd0mxa3c.js";
|
|
51
53
|
import"./cli-w5e1d1vv.js";
|
|
52
|
-
import"./cli-
|
|
53
|
-
import"./cli-
|
|
54
|
+
import"./cli-a8c82p2t.js";
|
|
55
|
+
import"./cli-nexqx4ve.js";
|
|
54
56
|
import"./cli-13hw4z91.js";
|
|
55
57
|
import"./cli-btbzvq95.js";
|
|
56
58
|
import"./cli-1m2e086m.js";
|
|
@@ -4,54 +4,56 @@ import {
|
|
|
4
4
|
runRebootSweep,
|
|
5
5
|
startHeartbeat,
|
|
6
6
|
stopHeartbeat
|
|
7
|
-
} from "./cli-
|
|
8
|
-
import"./cli-
|
|
9
|
-
import"./cli-
|
|
10
|
-
import"./cli-
|
|
7
|
+
} from "./cli-17xpf7cm.js";
|
|
8
|
+
import"./cli-0383bp7f.js";
|
|
9
|
+
import"./cli-cat6h73s.js";
|
|
10
|
+
import"./cli-w0bwte75.js";
|
|
11
11
|
import"./cli-re8z5p8p.js";
|
|
12
|
-
import"./cli-
|
|
13
|
-
import"./cli-
|
|
14
|
-
import"./cli-9yg65c1j.js";
|
|
15
|
-
import"./cli-cygyqj3b.js";
|
|
16
|
-
import"./cli-m4excttz.js";
|
|
17
|
-
import"./cli-0n2e4x49.js";
|
|
18
|
-
import"./cli-fjtp3463.js";
|
|
12
|
+
import"./cli-3zc55ctx.js";
|
|
13
|
+
import"./cli-1er0rhz8.js";
|
|
19
14
|
import"./cli-epan13p1.js";
|
|
20
15
|
import"./cli-y89t4nca.js";
|
|
21
16
|
import"./cli-f14fvzag.js";
|
|
22
|
-
import"./cli-
|
|
23
|
-
import"./cli-
|
|
17
|
+
import"./cli-sqm3r5ps.js";
|
|
18
|
+
import"./cli-yy6dew39.js";
|
|
24
19
|
import"./cli-3dpj7atn.js";
|
|
25
|
-
import"./cli-
|
|
20
|
+
import"./cli-2x0e561b.js";
|
|
21
|
+
import"./cli-ee8bc46j.js";
|
|
26
22
|
import"./cli-rb9m6rpe.js";
|
|
27
|
-
import"./cli-
|
|
28
|
-
import"./cli-
|
|
29
|
-
import"./cli-
|
|
23
|
+
import"./cli-jsp14b6c.js";
|
|
24
|
+
import"./cli-7119ja3w.js";
|
|
25
|
+
import"./cli-hgmnf38m.js";
|
|
26
|
+
import"./cli-we0q7t0e.js";
|
|
27
|
+
import"./cli-tsk3nz8a.js";
|
|
28
|
+
import"./cli-ecfxwnyb.js";
|
|
30
29
|
import"./cli-fad8m16k.js";
|
|
31
|
-
import"./cli-
|
|
32
|
-
import"./cli-
|
|
30
|
+
import"./cli-d56tgd45.js";
|
|
31
|
+
import"./cli-hn04t9db.js";
|
|
33
32
|
import"./cli-bsakbbkm.js";
|
|
33
|
+
import"./cli-trc24wk2.js";
|
|
34
34
|
import"./cli-51tf7ac3.js";
|
|
35
|
-
import"./cli-
|
|
35
|
+
import"./cli-phfg8vy8.js";
|
|
36
36
|
import"./cli-q51yprfq.js";
|
|
37
37
|
import"./cli-3er6gcsn.js";
|
|
38
38
|
import"./cli-2658f6at.js";
|
|
39
39
|
import"./cli-yatxqynm.js";
|
|
40
|
-
import"./cli-
|
|
41
|
-
import"./cli-
|
|
42
|
-
import"./cli-
|
|
40
|
+
import"./cli-1cz0c18q.js";
|
|
41
|
+
import"./cli-3qhyh31j.js";
|
|
42
|
+
import"./cli-akfj32vj.js";
|
|
43
|
+
import"./cli-yrg7c73k.js";
|
|
44
|
+
import"./cli-ptr8h7kp.js";
|
|
45
|
+
import"./cli-xk79303e.js";
|
|
43
46
|
import"./cli-n7h1kqpf.js";
|
|
44
|
-
import"./cli-
|
|
47
|
+
import"./cli-ywybs5as.js";
|
|
45
48
|
import"./cli-dv6cdjs2.js";
|
|
46
|
-
import"./cli-
|
|
47
|
-
import"./cli-
|
|
48
|
-
import"./cli-de1396j2.js";
|
|
49
|
+
import"./cli-1a2j50m0.js";
|
|
50
|
+
import"./cli-f9w1semm.js";
|
|
49
51
|
import"./cli-ej6gbxfb.js";
|
|
50
|
-
import"./cli-
|
|
52
|
+
import"./cli-jyy6pm2f.js";
|
|
51
53
|
import"./cli-sd0mxa3c.js";
|
|
52
54
|
import"./cli-w5e1d1vv.js";
|
|
53
|
-
import"./cli-
|
|
54
|
-
import"./cli-
|
|
55
|
+
import"./cli-a8c82p2t.js";
|
|
56
|
+
import"./cli-nexqx4ve.js";
|
|
55
57
|
import"./cli-13hw4z91.js";
|
|
56
58
|
import"./cli-btbzvq95.js";
|
|
57
59
|
import"./cli-1m2e086m.js";
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getEmbeddingProvider,
|
|
3
|
+
getMemoryStore,
|
|
4
|
+
resetEmbeddingProvider
|
|
5
|
+
} from "./cli-d56tgd45.js";
|
|
6
|
+
import"./cli-hn04t9db.js";
|
|
7
|
+
import"./cli-2658f6at.js";
|
|
8
|
+
import"./cli-1cz0c18q.js";
|
|
9
|
+
import"./cli-3qhyh31j.js";
|
|
10
|
+
import"./cli-akfj32vj.js";
|
|
11
|
+
import"./cli-yrg7c73k.js";
|
|
12
|
+
import"./cli-ptr8h7kp.js";
|
|
13
|
+
import"./cli-xk79303e.js";
|
|
14
|
+
import"./cli-n7h1kqpf.js";
|
|
15
|
+
import"./cli-ywybs5as.js";
|
|
16
|
+
import"./cli-dv6cdjs2.js";
|
|
17
|
+
import"./cli-1a2j50m0.js";
|
|
18
|
+
import"./cli-f9w1semm.js";
|
|
19
|
+
import"./cli-ej6gbxfb.js";
|
|
20
|
+
import"./cli-jyy6pm2f.js";
|
|
21
|
+
import"./cli-sd0mxa3c.js";
|
|
22
|
+
import"./cli-w5e1d1vv.js";
|
|
23
|
+
import"./cli-a8c82p2t.js";
|
|
24
|
+
import"./cli-nexqx4ve.js";
|
|
25
|
+
import"./cli-zf8jjwex.js";
|
|
26
|
+
import"./cli-bc05qbss.js";
|
|
27
|
+
export {
|
|
28
|
+
getEmbeddingProvider,
|
|
29
|
+
getMemoryStore,
|
|
30
|
+
resetEmbeddingProvider
|
|
31
|
+
};
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./cli-ep19k3mb.js";
|
|
4
4
|
import {
|
|
5
5
|
agentFsProvisionSeeder
|
|
6
|
-
} from "./cli-
|
|
6
|
+
} from "./cli-798vkbks.js";
|
|
7
7
|
import {
|
|
8
8
|
extractArgsJsonSchema,
|
|
9
9
|
extractScriptSignature,
|
|
@@ -13,22 +13,23 @@ import {
|
|
|
13
13
|
upsertScriptByName,
|
|
14
14
|
validateDefinition,
|
|
15
15
|
validateScriptImports
|
|
16
|
-
} from "./cli-
|
|
16
|
+
} from "./cli-1er0rhz8.js";
|
|
17
17
|
import"./cli-epan13p1.js";
|
|
18
18
|
import"./cli-y89t4nca.js";
|
|
19
19
|
import"./cli-f14fvzag.js";
|
|
20
|
-
import"./cli-
|
|
21
|
-
import"./cli-
|
|
20
|
+
import"./cli-sqm3r5ps.js";
|
|
21
|
+
import"./cli-yy6dew39.js";
|
|
22
22
|
import"./cli-3dpj7atn.js";
|
|
23
|
-
import"./cli-
|
|
23
|
+
import"./cli-2x0e561b.js";
|
|
24
|
+
import"./cli-ee8bc46j.js";
|
|
24
25
|
import"./cli-rb9m6rpe.js";
|
|
25
|
-
import"./cli-
|
|
26
|
-
import"./cli-
|
|
27
|
-
import"./cli-
|
|
28
|
-
import"./cli-
|
|
29
|
-
import"./cli-10ym38qc.js";
|
|
26
|
+
import"./cli-7119ja3w.js";
|
|
27
|
+
import"./cli-hgmnf38m.js";
|
|
28
|
+
import"./cli-d56tgd45.js";
|
|
29
|
+
import"./cli-hn04t9db.js";
|
|
30
30
|
import"./cli-bsakbbkm.js";
|
|
31
|
-
import"./cli-
|
|
31
|
+
import"./cli-trc24wk2.js";
|
|
32
|
+
import"./cli-phfg8vy8.js";
|
|
32
33
|
import"./cli-q51yprfq.js";
|
|
33
34
|
import"./cli-3er6gcsn.js";
|
|
34
35
|
import"./cli-2658f6at.js";
|
|
@@ -49,21 +50,23 @@ import {
|
|
|
49
50
|
updateSkill,
|
|
50
51
|
updateWorkflow,
|
|
51
52
|
upsertSkillFiles
|
|
52
|
-
} from "./cli-
|
|
53
|
-
import"./cli-
|
|
54
|
-
import"./cli-
|
|
53
|
+
} from "./cli-1cz0c18q.js";
|
|
54
|
+
import"./cli-3qhyh31j.js";
|
|
55
|
+
import"./cli-akfj32vj.js";
|
|
56
|
+
import"./cli-yrg7c73k.js";
|
|
57
|
+
import"./cli-ptr8h7kp.js";
|
|
58
|
+
import"./cli-xk79303e.js";
|
|
55
59
|
import"./cli-n7h1kqpf.js";
|
|
56
|
-
import"./cli-
|
|
60
|
+
import"./cli-ywybs5as.js";
|
|
57
61
|
import"./cli-dv6cdjs2.js";
|
|
58
|
-
import"./cli-
|
|
59
|
-
import"./cli-
|
|
60
|
-
import"./cli-de1396j2.js";
|
|
62
|
+
import"./cli-1a2j50m0.js";
|
|
63
|
+
import"./cli-f9w1semm.js";
|
|
61
64
|
import"./cli-ej6gbxfb.js";
|
|
62
|
-
import"./cli-
|
|
65
|
+
import"./cli-jyy6pm2f.js";
|
|
63
66
|
import"./cli-sd0mxa3c.js";
|
|
64
67
|
import"./cli-w5e1d1vv.js";
|
|
65
|
-
import"./cli-
|
|
66
|
-
import"./cli-
|
|
68
|
+
import"./cli-a8c82p2t.js";
|
|
69
|
+
import"./cli-nexqx4ve.js";
|
|
67
70
|
import"./cli-13hw4z91.js";
|
|
68
71
|
import"./cli-btbzvq95.js";
|
|
69
72
|
import"./cli-1m2e086m.js";
|
|
@@ -5185,32 +5188,32 @@ export default async function taskFailureAudit(args: any, ctx: any) {
|
|
|
5185
5188
|
const tasks: any = payload && Array.isArray(payload.tasks) ? payload.tasks : [];
|
|
5186
5189
|
|
|
5187
5190
|
const failureReasons = new Map<string, string>();
|
|
5188
|
-
|
|
5189
|
-
|
|
5190
|
-
|
|
5191
|
-
|
|
5192
|
-
|
|
5193
|
-
|
|
5194
|
-
|
|
5195
|
-
|
|
5196
|
-
|
|
5197
|
-
|
|
5198
|
-
|
|
5199
|
-
|
|
5200
|
-
|
|
5201
|
-
|
|
5202
|
-
|
|
5203
|
-
|
|
5204
|
-
}
|
|
5205
|
-
|
|
5206
|
-
|
|
5207
|
-
|
|
5208
|
-
}
|
|
5209
|
-
}
|
|
5210
|
-
|
|
5211
|
-
|
|
5212
|
-
|
|
5213
|
-
|
|
5191
|
+
// Projected for every groupBy mode: task_list omits failureReason, and
|
|
5192
|
+
// schedule/agent groups still need a populated sample.
|
|
5193
|
+
const tasksNeedingReason = tasks.filter((task: any) => !task.failureReason && task.id);
|
|
5194
|
+
const taskIds = tasksNeedingReason.map((task: any) => task.id as string);
|
|
5195
|
+
if (taskIds.length > 0) {
|
|
5196
|
+
const placeholders = taskIds.map(() => "?").join(", ");
|
|
5197
|
+
const reasonResult: any = await ctx.swarm.db_query({
|
|
5198
|
+
sql: \`SELECT id, failureReason FROM agent_tasks WHERE id IN (\${placeholders})\`,
|
|
5199
|
+
params: taskIds,
|
|
5200
|
+
});
|
|
5201
|
+
const reasonPayload: any = reasonResult?.data ?? reasonResult;
|
|
5202
|
+
if (
|
|
5203
|
+
reasonResult?.success === false ||
|
|
5204
|
+
reasonPayload?.success === false ||
|
|
5205
|
+
reasonPayload?.error
|
|
5206
|
+
) {
|
|
5207
|
+
return { error: "failure reason projection failed with status " + reasonResult?.status };
|
|
5208
|
+
}
|
|
5209
|
+
if (reasonPayload?.truncated) {
|
|
5210
|
+
return {
|
|
5211
|
+
error: \`failure reason projection truncated (\${reasonPayload.rows?.length ?? 0} of \${reasonPayload.total ?? "unknown"} rows)\`,
|
|
5212
|
+
};
|
|
5213
|
+
}
|
|
5214
|
+
for (const row of rowsToObjects(reasonResult)) {
|
|
5215
|
+
if (typeof row?.id === "string" && typeof row.failureReason === "string") {
|
|
5216
|
+
failureReasons.set(row.id, row.failureReason);
|
|
5214
5217
|
}
|
|
5215
5218
|
}
|
|
5216
5219
|
}
|
|
@@ -8546,10 +8549,10 @@ The config file lives at \`~/.agentic-learnings.json\`:
|
|
|
8546
8549
|
`;
|
|
8547
8550
|
|
|
8548
8551
|
// templates/skills/memory/config.json
|
|
8549
|
-
var config_default25 = '{\n "kind": "skill",\n "name": "memory",\n "displayName": "Memory",\n "slug": "memory",\n "title": "Memory",\n "description": "Remember, recall, learning, memory: how swarm memory works and how to store, search, edit, rate, and delete memories with `memory-store`, `memory-search`, `memory-get`, `memory-edit`, `memory_rate`, and `memory-delete`, plus lead promotion with `inject-learning`. Use before you store, edit, or delete a memory.",\n "version": "1.
|
|
8552
|
+
var config_default25 = '{\n "kind": "skill",\n "name": "memory",\n "displayName": "Memory",\n "slug": "memory",\n "title": "Memory",\n "description": "Remember, recall, learning, memory: how swarm memory works and how to store, search, edit, rate, and delete memories with `memory-store`, `memory-search`, `memory-get`, `memory-edit`, `memory_rate`, and `memory-delete`, plus logical paths (`key`, `newKey`, `keyPrefix`, the `/longterm` roots and the lead-only ones) and lead promotion with `inject-learning`. Use before you store, edit, or delete a memory.",\n "version": "1.1.0",\n "category": "skills",\n "placeholders": [],\n "runAllSeedersCandidate": true,\n "systemDefault": true,\n "tags": ["memory", "recall", "learning"]\n}\n';
|
|
8550
8553
|
|
|
8551
8554
|
// templates/skills/memory/content.md
|
|
8552
|
-
var content_default25 = '# Memory\n\nSwarm memory is a store of short texts with embeddings, searchable by meaning and by keyword. Recall is automatic: the runner puts the best matches for your task in the task message under "Relevant Past Knowledge". Everything else is a tool call.\n\n## What is stored without you\n\n| Source | When | Scope |\n|---|---|---|\n| `task_completion` | `store-progress` with status `completed` or `failed` | `agent`, or `swarm` for research tasks and tasks tagged `knowledge` or `shared` |\n| `session_summary` | your session ends | `agent` |\n| `file_index` | a file written under `/workspace/personal/memory/` or `/workspace/shared/memory/<agentId>/` on a harness with the file hook (claude, pi, opencode) | by path |\n\nAutomatic tasks (schedules, heartbeat, monitors) skip the `task_completion` write unless `store-progress` gets `persistMemory: true`.\n\nPrefer `memory-store` over memory files. It works on every harness, including the remote ones.\n\n## Tools\n\n| Tool | Use |\n|---|---|\n| `memory-store` | create a memory: `content`, `name`, `scope`, optional `tags`, `taskId`, `intent` |\n| `memory-search` | find memories: `query`, `
|
|
8555
|
+
var content_default25 = '# Memory\n\nSwarm memory is a store of short texts with embeddings, searchable by meaning and by keyword. Recall is automatic: the runner puts the best matches for your task in the task message under "Relevant Past Knowledge". Everything else is a tool call.\n\n## What is stored without you\n\n| Source | When | Scope |\n|---|---|---|\n| `task_completion` | `store-progress` with status `completed` or `failed` | `agent`, or `swarm` for research tasks and tasks tagged `knowledge` or `shared` |\n| `session_summary` | your session ends | `agent` |\n| `file_index` | a file written under `/workspace/personal/memory/` or `/workspace/shared/memory/<agentId>/` on a harness with the file hook (claude, pi, opencode) | by path |\n\nAutomatic tasks (schedules, heartbeat, monitors) skip the `task_completion` write unless `store-progress` gets `persistMemory: true`.\n\nPrefer `memory-store` over memory files. It works on every harness, including the remote ones.\n\n## Tools\n\n| Tool | Use |\n|---|---|\n| `memory-store` | create a memory: `content`, `name`, `scope`, optional `tags`, `taskId`, `intent`, `key` (a logical path, see Logical paths) |\n| `memory-search` | find memories: `query`, `scope` (`all`, `agent`, `swarm`), `limit`, optional `intent` (why you search), `source`, `keyPrefix` (only memories whose key starts with it) |\n| `memory-get` | the full content of one memory by ID |\n| `memory-edit` | change a memory in place: mode `replace` (whole content) or `exact` (one unique substring), `intent` required. `newKey` alone moves it to another logical path |\n| `memory-delete` | remove a memory by ID |\n| `memory_rate` | mark a memory you used in this task as useful or misleading |\n| `inject-learning` | lead only: push a learning into a worker\'s memory at swarm scope |\n\nSeed scripts (`script-run` with `name` and `args`):\n\n- `task-context-gathering` `{ taskId, queries: [...] }`: the task plus a deduplicated multi-query recall in one call.\n- `smart-recall` `{ queries: [...] }`: multi-query recall without the task.\n- `memory-dedup-check` `{ text, threshold? }`: near-duplicates of a candidate memory, default threshold 0.85.\n\n## What makes a good memory\n\n- One fact per memory: a fix, a pattern, a gotcha, a preference of a person, a fact about a repo or a host.\n- The context it applies to: repo, host, tool, version.\n- The evidence: what you saw, where.\n- A searchable `name`: "Linear API rejects issue updates without teamId", not "notes".\n- Under 2,000 characters stores as one chunk. Longer content splits on headings, one memory per chunk.\n\nSkip what a tool returns on demand (paths, tool lists, task status), what the repo already records (README, CLAUDE.md, git history), and what only mattered for this one task.\n\nA memory must not contain a token, password, key, or connection string. Remove the value and keep the reference ("the Linear token lives in config key LINEAR_API_KEY").\n\n## Scope\n\n- `agent` (default): only you recall it. Your own setup, your working notes, your mistakes.\n- `swarm`: every agent recalls it. Facts about shared repos, hosts, people, and processes. Choose `swarm` when a second agent would hit the same thing.\n\n## Logical paths (`key`)\n\nEvery memory has a `key`. By default it is an auto key (`<scope>/<source>/<id>`, or the file path for `file_index`), and the memory is **inbox material**: it keeps the lifecycle of its `source` and expires. Give it a path under `/longterm` and it becomes curated memory: findable by folder, ranked higher, and kept.\n\n`name` is a title. `key` is the address. Use a key only for what should outlive the task: a durable fact, a decision, a person or customer. Leave working notes and task results without one; expiring is the right outcome for them.\n\n### The `/longterm` roots\n\nThe list is closed. A key under `/longterm` whose second segment is not in it is refused, and the error lists the roots.\n\n| Root | Holds | Rank weight | Who may write |\n|---|---|---|---|\n| `/longterm/company-story` | what the company is and does | 1.4 | lead only |\n| `/longterm/entities/people/<slug>`, `/longterm/entities/customers/<slug>` | one doc per person or customer | 1.3 | lead only |\n| `/longterm/facts/<topic>/<slug>` | a durable fact about a repo, host, tool, or process | 1.2 | any agent |\n| `/longterm/decisions/<slug>` | a decision and why | 1.1 (0.3 with the tag `superseded`) | any agent |\n| `/longterm/workstreams/<slug>` | an ongoing effort | 1.0 | any agent |\n| `/longterm/timeline/<period>/<slug>` | dated events | 0.8 | lead only |\n\nAgents and repos are not entity types: agent profiles and `get-repos` own them, so `/longterm/entities/agents/...` is refused.\n\nKey shape: lowercase letters, digits, `-`, and `.` or `_` after the first segment; segments joined by `/`; starts with `/`; no trailing `/`; at most 200 characters. A key outside `/longterm` is not root-checked but must still have this shape.\n\n### Write, move, find\n\n```\nmemory-store key="/longterm/facts/swarm-runtime/sqlite-busy-retry" scope="swarm"\n name="SQLite BUSY_SNAPSHOT needs BEGIN IMMEDIATE" content="..."\n\nmemory-edit memoryId="<id>" newKey="/longterm/decisions/sqlite-busy-retry" intent="promote the fact to a decision"\n\nmemory-search query="busy retry" keyPrefix="/longterm/facts/swarm-runtime/"\n```\n\n- `memory-store`: one key per owner and scope. A second memory under a key you already use fails: `memory-edit` that one. If you pass no `key` and the `name` starts with `/longterm/`, the name is the key, so you set one field. An invalid name of that form is refused, never stored under an auto key.\n- `memory-edit` `newKey`: pass it alone for a pure move. Every chunk of the document moves in one step. The ID, usefulness rating, access counts, and author stay. A key that is already taken is refused. Address the memory with `memoryId`, or with `key` plus `scope`.\n- `memory-search` `keyPrefix`: a literal, case-sensitive prefix, applied before the top results are cut, not after. End a folder with `/` (`/longterm/entities/`, not `/longterm/entities`) to stay inside it.\n\n### What a `/longterm` key changes\n\n`source` stays provenance: there is no `longterm` source. The key is the tier. A memory under `/longterm` follows a `manual` memory\'s lifecycle whatever its `source`:\n\n- It never expires. Storing under a `/longterm` key sets no expiry. Moving a memory in with `newKey` clears the expiry it had, on every chunk. Moving it back out does not restore one.\n- It has no recency decay, and its source-quality multiplier is 1.5.\n- Automated cleanup skips it.\n\nA memory under any other key keeps its `source` lifecycle: `task_completion` expires after 7 days, `session_summary` after 3, `file_index` after 30, `manual` never.\n\nRanking multiplies similarity by recency decay, access boost, source quality, **path weight** (the table above, by longest matching root; any other key weighs 1.0), and usefulness. Path weight is one factor: a weak match under `/longterm/company-story` does not beat a strong match elsewhere on weight alone.\n\n### Lead-only roots\n\nOnly the lead may write or move a key under `/longterm/company-story`, `/longterm/entities`, or `/longterm/timeline`. The check is the permission `memory.write.consolidated`. It applies to a `key`, to a `newKey`, to a `/longterm/` name, and to a `sourcePath` sent to `POST /api/memory/index`, so there is no side door. A worker that tries gets an error naming the lead-only paths. A worker puts durable knowledge under `/longterm/facts` or `/longterm/decisions`, or leaves the key off, and the lead consolidates the rest.\n\n## Before you store\n\n1. Run `memory-dedup-check` with the text, or `memory-search` with one or two queries and `intent: "dedup before store"`.\n2. A near-duplicate exists: `memory-edit` it. Mode `replace` for a rewrite, mode `exact` for a one-line correction. Say why in `intent`.\n3. Nothing close exists: `memory-store`. For a keyed memory, `memory-search` with `keyPrefix` set to the folder you will write into shows what is already there.\n\n## Triage\n\n- A memory is wrong: `memory-edit` with the correction.\n- A memory is stale and nobody needs it: `memory-delete`.\n- A recalled memory helped or misled you: `memory_rate` with `useful` true or false and a short `note`. The call needs a task context and counts once per memory per task. Ratings move the memory up or down in future searches.\n\n## Lead: promote a learning\n\nWhen a worker\'s output or failure holds a lesson other workers need, call `inject-learning` with the worker\'s `agentId`, the `learning`, and a `category`: `mistake-pattern`, `best-practice`, `codebase-knowledge`, or `preference`. It lands at swarm scope and every agent recalls it. It is stored as `manual`, so it never expires, but it takes no key: it has no path weight and `keyPrefix` does not find it. To file a learning by path, `memory-store` it with a `/longterm` key, or `memory-edit` it with `newKey`.\n';
|
|
8553
8556
|
|
|
8554
8557
|
// templates/skills/one-shot/config.json
|
|
8555
8558
|
var config_default26 = `{
|
|
@@ -10616,7 +10619,7 @@ var config_default41 = `{
|
|
|
10616
10619
|
"displayName": "Swarm Extensions",
|
|
10617
10620
|
"slug": "swarm-extensions",
|
|
10618
10621
|
"title": "Swarm Extensions",
|
|
10619
|
-
"description": "Write, install, and manage swarm extensions: TypeScript hook bundles that block, modify, or observe task creation, follow-ups, Slack routing, heartbeat remediation, and tool calls. Covers
|
|
10622
|
+
"description": "Write, install, and manage swarm extensions: TypeScript hook bundles that block, modify, or observe task creation, follow-ups, Slack routing, heartbeat remediation, and tool calls. Covers installing predefined catalog extensions (templates/extensions, YAML or JSON manifests) by name and, when EXTENSION_ALLOW_INLINE_INSTALL is on, installing an inline manifest plus files as a lead, plus the scripts, schedules, workflows and skills extensions ship, the hook contract, where to fetch swarm-extension.d.ts, the extension-catalog, extension-install and extension-list tools, config schemas, and the operator enable step.",
|
|
10620
10623
|
"version": "1.0.0",
|
|
10621
10624
|
"category": "skills",
|
|
10622
10625
|
"placeholders": [],
|
|
@@ -10633,15 +10636,18 @@ An extension is a trusted TypeScript hook bundle that runs inside the swarm API
|
|
|
10633
10636
|
|
|
10634
10637
|
Do not use an extension for work that one task, one script, or one schedule can do.
|
|
10635
10638
|
|
|
10636
|
-
##
|
|
10639
|
+
## Two ways to install
|
|
10637
10640
|
|
|
10638
|
-
|
|
10641
|
+
- **Catalog** (always on): a predefined extension in the repo (\`templates/extensions/<name>/\`), installed by name. Any authenticated agent can do it. To ship a catalog extension, open a PR that adds a template directory (see Bundle shape below); it becomes installable once that build is deployed.
|
|
10642
|
+
- **Inline** (opt-in): a \`manifest\` plus a \`files\` map in the install request, with no PR and no deploy. It is off unless an operator sets \`EXTENSION_ALLOW_INLINE_INSTALL=true\` (dashboard Settings > Configuration > Security & access, or the API environment). With the flag off the install fails with \`inline_install_disabled\`. With it on, only a lead, operator, or dashboard user may send an inline bundle; a worker gets 403 and stays catalog-only. An inline bundle runs as code in the API process once enabled, so write it as carefully as a catalog one.
|
|
10643
|
+
|
|
10644
|
+
Both paths run the same validation and both land disabled.
|
|
10639
10645
|
|
|
10640
10646
|
## Tools
|
|
10641
10647
|
|
|
10642
10648
|
\`extension-catalog\`, \`extension-install\` and \`extension-list\`. They are deferred. Load them with your harness tool search before the first call.
|
|
10643
10649
|
|
|
10644
|
-
\`extension-catalog\` lists the predefined extensions, the assets each declares, and whether it is installed. \`extension-install\` takes \`{ template: "<name>" }\` (plus optional \`priority\` and \`config\`)
|
|
10650
|
+
\`extension-catalog\` lists the predefined extensions, the assets each declares, and whether it is installed. \`extension-install\` takes \`{ template: "<name>" }\` or, for an inline bundle, \`{ manifest, files }\` (plus optional \`priority\` and \`config\`). \`template\` and \`manifest\`/\`files\` are mutually exclusive. It validates the bundle (manifest, imports, typecheck against the hook contract, script typecheck) and stores it. Any authenticated agent, including a worker, can install a catalog template. Your agent is recorded as its owner in \`createdByAgentId\`; \`extension-list\` exposes that field. Always send your \`X-Agent-ID\` when using REST so ownership is attributed to you.
|
|
10645
10651
|
|
|
10646
10652
|
Install also creates the \`ext:<name>\` agent and every asset the extension declares. Scripts are live and callable right away (scripts have no enabled state). Schedules, workflows, and skills are created disabled. A disabled workflow ignores its triggers and refuses manual triggers.
|
|
10647
10653
|
|
|
@@ -10651,7 +10657,7 @@ Workers may install subsequent versions only for their own extensions, and PATCH
|
|
|
10651
10657
|
|
|
10652
10658
|
A new install is disabled and inert. A lead, operator, or dashboard user must enable it with \`extension-enable\` or \`POST /api/extensions/{id}/enable\`. Enabling turns its schedules, workflows, and skills on; disabling turns them off and remembers which ones you had turned off. Workers cannot enable, disable, or activate versions. Report the extension name and the required activation step.
|
|
10653
10659
|
|
|
10654
|
-
Installing a
|
|
10660
|
+
Installing a template or inline bundle whose content changed stages a new version without activating it. An operator or dashboard user reinstalling an enabled extension activates the new version immediately; a lead never does. Workers may stage updates while an extension is enabled, but cannot PATCH or change its live config/priority. Ask a lead or operator to make those changes. \`EXTENSION_ALLOW_LEAD_ACTIVATION=false\` restricts activation to operators/dashboard users.
|
|
10655
10661
|
|
|
10656
10662
|
Uninstall (\`extension-delete\`, disabled extensions only) deletes the assets you never edited and detaches the ones you did, so your edits survive.
|
|
10657
10663
|
|
|
@@ -10711,6 +10717,25 @@ A workflow file holds \`name\`, optional \`description\`, \`definition\`, and op
|
|
|
10711
10717
|
|
|
10712
10718
|
A JSON manifest carries \`"$schema": "../manifest.schema.json"\` instead. After changing a template, run \`bun run build:extension-catalog\` and commit \`src/extensions/catalog.generated.json\`.
|
|
10713
10719
|
|
|
10720
|
+
### Inline bundle
|
|
10721
|
+
|
|
10722
|
+
An inline install sends the same manifest as a JSON object, plus every file it references in \`files\`, keyed by bundle path:
|
|
10723
|
+
|
|
10724
|
+
\`\`\`json
|
|
10725
|
+
{
|
|
10726
|
+
"manifest": {
|
|
10727
|
+
"name": "require-ticket-ref",
|
|
10728
|
+
"description": "Blocks REST and MCP tasks that do not name a ticket",
|
|
10729
|
+
"version": "1.0.0",
|
|
10730
|
+
"runtime": "api",
|
|
10731
|
+
"assets": { "hooks": "hooks.ts" }
|
|
10732
|
+
},
|
|
10733
|
+
"files": { "hooks.ts": "import { block, type SwarmExtension } from \\"swarm-extension\\";\\n..." }
|
|
10734
|
+
}
|
|
10735
|
+
\`\`\`
|
|
10736
|
+
|
|
10737
|
+
\`files\` must hold \`assets.hooks\`, each script \`file\`, each workflow \`file\`, and for each skill \`dir\` its \`SKILL.md\` plus any \`files/**\`. A file the manifest does not reference is rejected. Naming rules (\`<name>-\` prefixes, schedule scripts declared in \`assets.scripts\`) are the same as for a template. To change an inline extension, send the full bundle again under the same name; it adds a new version.
|
|
10738
|
+
|
|
10714
10739
|
Rules for \`hooks.ts\`:
|
|
10715
10740
|
|
|
10716
10741
|
- Import only from \`swarm-extension\`, \`zod\`, and \`stdlib\`. Relative imports, other packages, and dynamic imports are rejected.
|
|
@@ -10774,7 +10799,8 @@ export default extension;
|
|
|
10774
10799
|
- Modifying fields the event does not allow. Read the \`*Modify\` type for that event.
|
|
10775
10800
|
- Expecting the extension to run after install. Its hooks, schedules, workflows, and skills are off until a lead or operator enables it.
|
|
10776
10801
|
- Expecting agents to see an extension skill after enable. Install it on each agent with \`skill-install\`.
|
|
10777
|
-
- Sending an inline \`manifest\`/\`files\` bundle.
|
|
10802
|
+
- Sending an inline \`manifest\`/\`files\` bundle as a worker, or without \`EXTENSION_ALLOW_INLINE_INSTALL\` on. Workers use a catalog \`template\`; with the flag off ask an operator to turn it on, or ship a catalog template.
|
|
10803
|
+
- Sending both \`template\` and \`manifest\`/\`files\`. Pick one.
|
|
10778
10804
|
- Blocking tasks from every origin. Check \`event.origin\` so schedules, workflows, and follow-ups keep working unless you mean to block them.
|
|
10779
10805
|
`;
|
|
10780
10806
|
|
|
@@ -12001,6 +12027,7 @@ Afterwards, a \`warnings\` entry on \`create-workflow\` or a patch tool means th
|
|
|
12001
12027
|
- The output is \`{ model, answers, usage }\`, plus \`routing: { model }\` on \`laya\` (the checkpoint that answered). Read a field as \`<node-id>.answers.<question>.<field>\`, for example \`qualification.answers.risk.confidence\`. A \`noul\` answer is only \`{ type, noul }\` and has no confidence. A \`choice\` answer has \`choice\`, \`probabilities\`, and \`confidence\`. A \`score\` answer has \`score\`, \`legend\`, \`probabilities\`, and \`confidence\`.
|
|
12002
12028
|
- A valid low-confidence answer is a success. To have a person review the uncertain ones, set \`humanReview\` on the node (below). To route on a threshold yourself, keep it in the next node: \`property-match\` (\`gt\`, \`lt\`) or \`code-match\`, with the uncertain band routed to \`human-in-the-loop\`. Do not invent a global threshold.
|
|
12003
12029
|
- \`humanReview: { band: { min, max }, approvers, title?, timeout?, notifications? }\` sends an answer to a person when \`min <= confidence <= max\` (0 to 1, both ends inside). It raises a \`human-in-the-loop\` approval (same approvers, timeout, notifications, \`waiting\` run state), so use the same \`approvers\` shape. \`choice\` and \`score\` are tested on their \`confidence\` (on \`laya\` that is its \`answer_confidence\`, the top probability); a \`noul\` on \`max(noul, 1 - noul)\`. Any answer in the band makes the run wait. \`next\` must then be a port map: \`approved\` (required, every accepted answer), and optionally \`rejected\` and \`timeout\`; a string or list \`next\` is refused. The output stays \`{ model, answers, usage }\` on every path, plus \`review\` (\`status\`, and per question \`confidence\`, \`inBand\`, \`decidedBy\`). A person's answer replaces the model's in \`answers\`; \`probabilities\` and \`confidence\` stay the model's.
|
|
12030
|
+
- On \`laya\`, ask \`choice\` questions, not \`noul\`, until a \`noul\` question is checked against known inputs. On laya-server 0.1.0 a \`noul\` sentiment question returned close to 0 even for clearly positive text, while the same judgment as a \`choice\` answered correctly. This is how the model answered, not a node rule. After a run, read \`<node-id>.routing.model\` to see which laya checkpoint answered. A complete laya workflow (manual trigger with \`{"text": "..."}\`, one \`choice\` question, a review band, and a \`property-match\` branch on \`<node-id>.answers.<question>.choice\`) is in \`docs-site/content/docs/(documentation)/concepts/workflows.mdx\`, section "Example: a laya decision end to end".
|
|
12004
12031
|
- Do not set \`retry\` or \`validation.retry\` on a \`system-one-decision\` node. It retries connection errors, 408, 429, and 5xx itself (\`config.maxRetries\`, 0 to 3, default 2) inside \`config.timeoutMs\` (default 30000). A 401, a 422, or an answer that fails validation ends after one attempt.
|
|
12005
12032
|
- The node reads its provider's key (\`TYPESAFE_API_KEY\`, \`OPENROUTER_API_KEY\`, or \`LAYA_API_KEY\`, and for \`laya\` the server URL \`LAYA_URL\`) server-side. The key never appears in the definition, the step output, or an error. A run whose key or \`LAYA_URL\` is missing fails before any node executes, and a 401 or 403 fails the step as \`<KEY> was rejected\`. An unresolved \`{{token}}\` fails the step before any request.
|
|
12006
12033
|
|
|
@@ -15078,17 +15105,18 @@ async function runSeeder(seeder, opts) {
|
|
|
15078
15105
|
continue;
|
|
15079
15106
|
}
|
|
15080
15107
|
const state = await getSeedState(seeder.kind, item.key);
|
|
15081
|
-
const pristine = state ? upstream === state.seededHash : upstream === item.contentHash;
|
|
15082
|
-
if (!pristine) {
|
|
15083
|
-
result.skippedUserModified += 1;
|
|
15084
|
-
continue;
|
|
15085
|
-
}
|
|
15086
15108
|
if (upstream === item.contentHash) {
|
|
15087
|
-
if (
|
|
15109
|
+
if (state?.seededHash !== item.contentHash) {
|
|
15088
15110
|
await recordSeedState(seeder.kind, item.key, item.contentHash);
|
|
15111
|
+
}
|
|
15089
15112
|
result.skippedUnchanged += 1;
|
|
15090
15113
|
continue;
|
|
15091
15114
|
}
|
|
15115
|
+
const pristine = state ? upstream === state.seededHash : false;
|
|
15116
|
+
if (!pristine) {
|
|
15117
|
+
result.skippedUserModified += 1;
|
|
15118
|
+
continue;
|
|
15119
|
+
}
|
|
15092
15120
|
await seeder.apply(item, "update", opts);
|
|
15093
15121
|
await recordSeedState(seeder.kind, item.key, item.contentHash);
|
|
15094
15122
|
result.updated += 1;
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ensureAuthorizationTokenOrThrow,
|
|
3
3
|
listKeepAliveAuthorizations
|
|
4
|
-
} from "./cli-
|
|
5
|
-
import"./cli-
|
|
6
|
-
import"./cli-
|
|
7
|
-
import"./cli-
|
|
4
|
+
} from "./cli-hgmnf38m.js";
|
|
5
|
+
import"./cli-1cz0c18q.js";
|
|
6
|
+
import"./cli-3qhyh31j.js";
|
|
7
|
+
import"./cli-akfj32vj.js";
|
|
8
|
+
import"./cli-yrg7c73k.js";
|
|
9
|
+
import"./cli-ptr8h7kp.js";
|
|
10
|
+
import"./cli-xk79303e.js";
|
|
8
11
|
import"./cli-n7h1kqpf.js";
|
|
9
|
-
import"./cli-
|
|
12
|
+
import"./cli-ywybs5as.js";
|
|
10
13
|
import"./cli-dv6cdjs2.js";
|
|
11
|
-
import"./cli-
|
|
12
|
-
import"./cli-
|
|
13
|
-
import"./cli-de1396j2.js";
|
|
14
|
+
import"./cli-1a2j50m0.js";
|
|
15
|
+
import"./cli-f9w1semm.js";
|
|
14
16
|
import"./cli-ej6gbxfb.js";
|
|
15
|
-
import"./cli-
|
|
17
|
+
import"./cli-jyy6pm2f.js";
|
|
16
18
|
import"./cli-sd0mxa3c.js";
|
|
17
19
|
import"./cli-w5e1d1vv.js";
|
|
18
|
-
import"./cli-
|
|
20
|
+
import"./cli-a8c82p2t.js";
|
|
19
21
|
import {
|
|
20
22
|
init_secret_scrubber,
|
|
21
23
|
scrubSecrets
|
|
22
|
-
} from "./cli-
|
|
24
|
+
} from "./cli-nexqx4ve.js";
|
|
23
25
|
import"./cli-zf8jjwex.js";
|
|
24
26
|
import {
|
|
25
27
|
__require
|
|
@@ -71,7 +73,7 @@ async function notifySlack(text) {
|
|
|
71
73
|
return;
|
|
72
74
|
}
|
|
73
75
|
try {
|
|
74
|
-
const { getSlackApp } = await import("./app-
|
|
76
|
+
const { getSlackApp } = await import("./app-0hdqa4k1.js");
|
|
75
77
|
const app = getSlackApp();
|
|
76
78
|
if (!app) {
|
|
77
79
|
console.warn("[OAuth Keepalive] Slack not available, cannot send notification");
|