@desplega.ai/agent-swarm 1.165.0 → 1.167.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/dist/acp-adapter-zpvy6321.js +34 -0
- package/dist/{actions-jna0b3wm.js → actions-fq2zrwtf.js} +30 -34
- package/dist/{amp-adapter-0eve81pz.js → amp-adapter-5gbk7501.js} +7 -7
- package/dist/{anthropic-messages-hst62ws9.js → anthropic-messages-13yn502s.js} +4 -4
- package/dist/{app-75hm5cfa.js → app-nctetn1e.js} +11 -11
- package/dist/{assistant-yzd51j33.js → assistant-0aq8gjvj.js} +31 -35
- package/dist/{azure-openai-responses-mh8tvf78.js → azure-openai-responses-9st34pfz.js} +5 -5
- package/dist/{boot-reembed-z158xq32.js → boot-reembed-1ze5853n.js} +14 -16
- package/dist/{boot-reembed-2ex2mcsh.js → boot-reembed-fmp5ww69.js} +15 -16
- package/dist/boot-scrub-sweep-cbp8xd4e.js +212 -0
- package/dist/{boot-seeds-2bmnh18p.js → boot-seeds-22tx8a53.js} +13 -12
- package/dist/{claude-adapter-jbj1mycz.js → claude-adapter-0jhgeh1d.js} +25 -25
- package/dist/{claude-managed-adapter-17ggz09t.js → claude-managed-adapter-tzwxy803.js} +5 -5
- package/dist/{claude-managed-setup-ptm1nzm2.js → claude-managed-setup-nrhfx5b0.js} +5 -5
- package/dist/{claude-sdk-session-9re1g7r2.js → claude-sdk-session-wh77rh83.js} +2632 -2614
- package/dist/{cli-zsh093hk.js → cli-014vns2y.js} +63 -1
- package/dist/{cli-qvfk83fy.js → cli-13xwcqvj.js} +2 -2
- package/dist/{cli-8gpbwy09.js → cli-1yrcfa5s.js} +5 -5
- package/dist/{cli-xtgtyafv.js → cli-577bxkf6.js} +212 -451
- package/dist/{cli-ma3zvh39.js → cli-5qkcdv8c.js} +6118 -5874
- package/dist/{cli-cwxhbf43.js → cli-5t5my0h8.js} +85 -2
- package/dist/{cli-zvckv750.js → cli-69egj654.js} +2 -2
- package/dist/{cli-9xb89xca.js → cli-6bpvv8h4.js} +9 -9
- package/dist/{cli-90v942q1.js → cli-6qxmjpem.js} +8 -8
- package/dist/{cli-9866bd07.js → cli-6vfz44sr.js} +1 -1
- package/dist/{cli-32bca7nr.js → cli-7avy4v8w.js} +1 -1
- package/dist/{cli-xb3c6aat.js → cli-7mhy3ths.js} +21 -18
- package/dist/{cli-q38n4bq0.js → cli-95zs84qw.js} +3 -3
- package/dist/cli-a35hzdve.js +33 -0
- package/dist/{cli-x3x0qwky.js → cli-bxqez1p0.js} +51 -23
- package/dist/{cli-prt9emct.js → cli-c2tpw9ck.js} +3 -3
- package/dist/{cli-0n4fasz0.js → cli-c8r99akr.js} +16 -16
- package/dist/{cli-5anb0ev3.js → cli-cexctgn5.js} +89 -26
- package/dist/{cli-bns5c8k9.js → cli-cf2vgn9d.js} +105 -91
- package/dist/{cli-ng97fjq7.js → cli-cmxkbzzs.js} +33 -7
- package/dist/{cli-nexwh8zg.js → cli-g7k7zbcz.js} +12 -5
- package/dist/{cli-mmzwwptd.js → cli-hf5s9pgf.js} +1 -1
- package/dist/{cli-nvvfd8bq.js → cli-jbzbr36n.js} +4091 -3793
- package/dist/{cli-zn2v3t8v.js → cli-jvmtxqtc.js} +27 -15
- package/dist/{cli-pkke6geq.js → cli-km4x66j0.js} +83 -65
- package/dist/cli-kw0jcfje.js +516 -0
- package/dist/{cli-28smfvbn.js → cli-m7vmeepg.js} +32 -19
- package/dist/{cli-hpryr6em.js → cli-mb75wpxf.js} +1 -1
- package/dist/{cli-qdv8kgz7.js → cli-mkdsy1nq.js} +14018 -3333
- package/dist/{cli-b0f70z24.js → cli-mn8qkd8v.js} +1 -1
- package/dist/{cli-420bdgw0.js → cli-mv2520nm.js} +1 -1
- package/dist/{cli-n9ehc28t.js → cli-mxry91sa.js} +31 -10
- package/dist/{cli-wfajtmf7.js → cli-mxvnnv5q.js} +596 -13
- package/dist/cli-nkqjj42q.js +104 -0
- package/dist/{cli-e7t4snpa.js → cli-p8rt8spp.js} +5 -5
- package/dist/{cli-gh5yqzpe.js → cli-pkj1w46r.js} +12 -7
- package/dist/cli-q1vnz8wv.js +96 -0
- package/dist/{cli-fj86xr3c.js → cli-qd97v6z2.js} +2 -2
- package/dist/{cli-ba66wyhy.js → cli-qzmzwegq.js} +60 -20
- package/dist/{cli-5b2fjjzh.js → cli-r7eeddkq.js} +14 -9
- package/dist/{cli-8ssjez7e.js → cli-rhy7z1rp.js} +22 -11
- package/dist/{cli-4mevd1hf.js → cli-s9y81s7j.js} +5 -5
- package/dist/{cli-59jn5twa.js → cli-tc5zec7v.js} +7 -7
- package/dist/{cli-ttbsse3f.js → cli-tmhsxhb8.js} +1 -1
- package/dist/{cli-k6xx3pve.js → cli-tx2zvn23.js} +4 -4
- package/dist/{cli-pjxnr1jn.js → cli-ty4bzkqr.js} +5 -5
- package/dist/{cli-nfygw434.js → cli-v1pwxreq.js} +55 -52
- package/dist/{cli-ftry7975.js → cli-v1w7pbd8.js} +3 -2
- package/dist/{cli-10zmp1p7.js → cli-vr5avem2.js} +27 -32
- package/dist/{cli-bzr0ftht.js → cli-wnb9b2g3.js} +19 -0
- package/dist/cli-wt7ccy4r.js +2654 -0
- package/dist/{cli-50eg13rj.js → cli-wydz3feg.js} +549 -321
- package/dist/{cli-krqm5f11.js → cli-xezn9nkh.js} +16 -13
- package/dist/{cli-8kt0bmgx.js → cli-xf713zz0.js} +2 -2
- package/dist/{cli-x7afk5wm.js → cli-xvc3q9br.js} +1 -1
- package/dist/{cli-9s3h836g.js → cli-xvdgasgy.js} +1 -1
- package/dist/{cli-j0pdrmwg.js → cli-y0kjpfm9.js} +3 -3
- package/dist/{cli-6zcfw0x7.js → cli-y195hv1a.js} +1 -1
- package/dist/{cli-amwhs8h2.js → cli-ykt8f7va.js} +22 -9
- package/dist/{cli-1kzfvd1z.js → cli-ymmc1zxg.js} +15 -11
- package/dist/{cli-xnzrzets.js → cli-ypgba1a8.js} +2 -2
- package/dist/{cli-bdv39kgj.js → cli-z1dqhc9y.js} +31 -20
- package/dist/{cli-fw6vdcq5.js → cli-zp67qg5x.js} +34 -1
- package/dist/{cli-qbksc292.js → cli-zy39d433.js} +2 -0
- package/dist/cli.js +36 -32
- package/dist/{cloudflare-workers-ai-system-one-tt484t61.js → cloudflare-workers-ai-system-one-sta45jf9.js} +7 -5
- package/dist/{codex-adapter-3qnxshje.js → codex-adapter-cgesnjkr.js} +20 -20
- package/dist/{codex-login-brkxhhdg.js → codex-login-g1cyt5zm.js} +2 -2
- package/dist/{codex-session-runner-612wnapp.js → codex-session-runner-8kd7ddhr.js} +20 -20
- package/dist/{commands-2ybfcxkj.js → commands-h6zaaxym.js} +11 -10
- package/dist/{cursor-adapter-p3jgdehv.js → cursor-adapter-v8mm6bp5.js} +7 -7
- package/dist/{db-f4ans0jj.js → db-qg3myn53.js} +13 -10
- package/dist/{devin-adapter-dhzt01ff.js → devin-adapter-bffjj5n4.js} +2 -2
- package/dist/{dispatcher-pk182apd.js → dispatcher-7vnwj9qw.js} +28 -32
- package/dist/{dsh-adapter-7twaeps1.js → dsh-adapter-tz6hfp5r.js} +7 -7
- package/dist/{e2b-y8t3jzyz.js → e2b-nd50eccg.js} +1 -1
- package/dist/{easter-egg-3d-mtpnw06s.js → easter-egg-3d-66zxervv.js} +2 -2
- package/dist/{event-bus-w7ac4n3c.js → event-bus-vnfthafg.js} +2 -2
- package/dist/{execute-s4ccjq3n.js → execute-h4jgevyw.js} +61 -11
- package/dist/{google-generative-ai-d6nphg3q.js → google-generative-ai-b8zxrpax.js} +5 -5
- package/dist/{google-vertex-cpshkref.js → google-vertex-nrdd697t.js} +5 -5
- package/dist/grok-adapter-jdt2dz2s.js +39 -0
- package/dist/{handlers-g2wnr4t9.js → handlers-2qtkpncr.js} +31 -35
- package/dist/{hook-f7jt9vnm.js → hook-51yfcgsv.js} +48 -39
- package/dist/{hook-bbdpnkb4.js → hook-qnbdgwvd.js} +15 -17
- package/dist/{http-w40q4w94.js → http-jsmtag08.js} +536 -231
- package/dist/{index-056j5kzn.js → index-2t9kesn1.js} +13 -12
- package/dist/{index-cj1r9q83.js → index-bt8wkv1w.js} +29 -33
- package/dist/{index-7n70jwbb.js → index-cx1sb9bq.js} +42 -35
- package/dist/{index-9bfssf54.js → index-ekywyv2v.js} +28 -32
- package/dist/{index-fdk1t4d6.js → index-n0rxa4ca.js} +11962 -9900
- package/dist/{index-k8xc083e.js → index-t4g06w93.js} +28 -32
- package/dist/{keepalive-1tj10tf4.js → keepalive-4aezx4bj.js} +16 -12
- package/dist/{lead-st0bg7v4.js → lead-r44bkpm5.js} +52 -56
- package/dist/{llama-cpp-classify-tgj35k8d.js → llama-cpp-classify-6erb7wwv.js} +3 -1
- package/dist/{maintenance-nz71zats.js → maintenance-grz5jrzh.js} +12 -13
- package/dist/{mistral-conversations-8445ddjn.js → mistral-conversations-059y51zt.js} +4 -4
- package/dist/{node-f0ykebbv.js → node-qm9eb6z0.js} +25 -7
- package/dist/{oauth-refresh-sweep-aefzwvvq.js → oauth-refresh-sweep-wm4ctjfj.js} +15 -11
- package/dist/{onboard-kgpr9mbn.js → onboard-v60zgqf0.js} +2 -2
- package/dist/{openai-codex-responses-9ynm88zy.js → openai-codex-responses-jzxkta9b.js} +8 -7
- package/dist/{openai-completions-nhqwjmaw.js → openai-completions-663yncfq.js} +4 -4
- package/dist/openai-decisions-vj9nkpf8.js +162 -0
- package/dist/{openai-responses-xx1c4kgm.js → openai-responses-m3g43rrt.js} +5 -5
- package/dist/{opencode-adapter-0c8e70dk.js → opencode-adapter-yjyqynzf.js} +8 -8
- package/dist/{openrouter-images-8yx3487g.js → openrouter-images-kr60n6b9.js} +1 -1
- package/dist/{otel-impl-x8zp4y5a.js → otel-impl-ghh4dyf8.js} +2 -2
- package/dist/{pi-messages-vxdt8v7j.js → pi-messages-xszk613n.js} +1 -1
- package/dist/{pi-mono-adapter-t280ah5c.js → pi-mono-adapter-0eg8kw2c.js} +69 -52
- package/dist/{pricing-refresh-9e0q7cwk.js → pricing-refresh-mjrqvnvw.js} +12 -11
- package/dist/{rbac-roles-790j3ga8.js → rbac-roles-axv4d74x.js} +11 -10
- package/dist/{rbac-roles-kcp6zge2.js → rbac-roles-fd5tskj9.js} +11 -10
- package/dist/{render-v2-tch4nefj.js → render-v2-k50j33qd.js} +11 -11
- package/dist/{runtime-v2t1r79e.js → runtime-h9ha1mq6.js} +4 -4
- package/dist/{setup-rcm303ns.js → setup-4syh0pd2.js} +2 -2
- package/dist/{typesafe-system-one-datfr82p.js → typesafe-system-one-e988vty7.js} +7 -5
- package/dist/{virtual-modules-wm8mxdxx.js → virtual-modules-ftr9kwe8.js} +11 -11
- package/dist/{work-objects-ctg7t70w.js → work-objects-jcdbg8rr.js} +32 -36
- package/dist/{worker-5dp0xm55.js → worker-x8j8c9sx.js} +52 -56
- package/dist/{x-v3yw66zs.js → x-ma4gnfgy.js} +2 -2
- package/openapi.json +5 -2
- package/package.json +15 -11
- package/src/be/automation-preflight.ts +9 -4
- package/src/be/boot-scrub-sweep.ts +302 -0
- package/src/be/crypto/key-bootstrap.ts +1 -1
- package/src/be/db/approvals.ts +15 -1
- package/src/be/db/codex-oauth-device-flows.ts +40 -0
- package/src/be/db/config-secrets.ts +31 -0
- package/src/be/db/runtime.ts +4 -0
- package/src/be/db/script-runs.ts +15 -0
- package/src/be/db/tasks/write.ts +1 -1
- package/src/be/db-queries/mcp-oauth.ts +5 -0
- package/src/be/db-queries/oauth.ts +77 -0
- package/src/be/db.ts +162 -59
- package/src/be/events.ts +17 -1
- package/src/be/memory/index-content.ts +2 -2
- package/src/be/memory/providers/openai-embedding.ts +7 -2
- package/src/be/memory/providers/sqlite-store.ts +63 -11
- package/src/be/memory/raters/llm-summarizer.ts +7 -2
- package/src/be/memory/types.ts +14 -0
- package/src/be/migrations/201_workflow_replay_columns.sql +10 -0
- package/src/be/migrations/202_codex_oauth_device_flows.sql +24 -0
- package/src/be/modelsdev-cache.json +61 -0
- package/src/be/scripts/db.ts +28 -4
- package/src/be/scripts/source-secrets.ts +37 -0
- package/src/be/scrub-json.ts +32 -0
- package/src/be/sealed-json.ts +59 -0
- package/src/be/secret-registry.ts +131 -0
- package/src/be/seed-pricing.ts +84 -53
- package/src/be/swarm-config-guard.ts +13 -0
- package/src/be/workflow-replay.ts +77 -0
- package/src/commands/provider-credentials.ts +28 -5
- package/src/commands/runner.ts +7 -12
- package/src/heartbeat/heartbeat.ts +91 -19
- package/src/hooks/hook.ts +72 -27
- package/src/http/codex-oauth-device.ts +8 -10
- package/src/http/db-query-bounded.ts +3 -0
- package/src/http/db-query-shared.ts +107 -15
- package/src/http/db-query.ts +10 -2
- package/src/http/index.ts +23 -6
- package/src/http/mcp.ts +5 -0
- package/src/http/onboarding.ts +2 -0
- package/src/http/script-runs.ts +9 -1
- package/src/http/scripts.ts +15 -0
- package/src/http/workflows.ts +3 -2
- package/src/oauth/mcp-wrapper.ts +1 -1
- package/src/providers/acp-adapter.ts +25 -11
- package/src/providers/acp-target-catalog.ts +35 -1
- package/src/providers/acp-targets.ts +78 -7
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/claude-adapter.ts +26 -0
- package/src/providers/codex-adapter.ts +30 -3
- package/src/providers/codex-oauth/auth-json.ts +21 -4
- package/src/providers/codex-oauth/types.ts +2 -0
- package/src/providers/cursor-adapter.ts +1 -1
- package/src/providers/dsh-adapter.ts +10 -1
- package/src/providers/grok-adapter.ts +18 -2
- package/src/providers/opencode-adapter.ts +21 -5
- package/src/providers/pi-mono-extension.ts +56 -25
- package/src/providers/pricing-sources.md +2 -0
- package/src/script-workflows/supervisor.ts +11 -2
- package/src/scripts-runtime/eval-harness.ts +2 -12
- package/src/scripts-runtime/executors/quickjs-bundle.ts +152 -0
- package/src/scripts-runtime/executors/quickjs-prelude.ts +285 -0
- package/src/scripts-runtime/executors/quickjs-runner.ts +580 -0
- package/src/scripts-runtime/executors/quickjs-worker.ts +81 -0
- package/src/scripts-runtime/executors/quickjs.ts +196 -0
- package/src/scripts-runtime/executors/registry.ts +2 -0
- package/src/scripts-runtime/executors/sourcemap.ts +79 -0
- package/src/scripts-runtime/script-error-hints.ts +14 -0
- package/src/server.ts +66 -4
- package/src/tests/acp-adapter.test.ts +277 -12
- package/src/tests/boot-scrub-sweep.test.ts +390 -0
- package/src/tests/check-text-columns.test.ts +145 -0
- package/src/tests/ci-unit-test-report.test.ts +73 -0
- package/src/tests/claude-default-route.test.ts +75 -0
- package/src/tests/claude-hook-output.test.ts +233 -0
- package/src/tests/claude-sdk-process.fixture.ts +13 -2
- package/src/tests/codex-adapter-pool-auth-revalidate.test.ts +4 -2
- package/src/tests/codex-adapter.test.ts +166 -26
- package/src/tests/codex-oauth-auth-timestamps.test.ts +76 -0
- package/src/tests/codex-oauth-device.test.ts +23 -37
- package/src/tests/codex-oauth.test.ts +4 -1
- package/src/tests/context-window.test.ts +2 -2
- package/src/tests/credential-check.test.ts +51 -1
- package/src/tests/db-query-denylist.test.ts +202 -0
- package/src/tests/db-task-read-contract.test.ts +1 -0
- package/src/tests/db-task-write-contract.test.ts +1 -0
- package/src/tests/dsh-adapter.test.ts +23 -1
- package/src/tests/enabled-tools.test.ts +269 -0
- package/src/tests/entrypoint-acp-target-binary.test.ts +31 -1
- package/src/tests/entrypoint-codex-oauth-seed.test.ts +12 -0
- package/src/tests/events-scrub.test.ts +88 -0
- package/src/tests/fixtures/secret-corpus.ts +320 -0
- package/src/tests/grok-adapter.test.ts +13 -0
- package/src/tests/haiku-5-5-pricing.test.ts +38 -0
- package/src/tests/heartbeat-checklist.test.ts +158 -1
- package/src/tests/onboarding.test.ts +44 -0
- package/src/tests/opencode-adapter.test.ts +66 -3
- package/src/tests/opencode-plugin.test.ts +37 -0
- package/src/tests/openrouter-attribution-call-sites.test.ts +204 -0
- package/src/tests/openrouter-base-url.test.ts +30 -39
- package/src/tests/pi-mono-extension.test.ts +161 -2
- package/src/tests/pricing-refresh.test.ts +70 -1
- package/src/tests/reasoning-effort.test.ts +3 -1
- package/src/tests/script-connections.test.ts +5 -0
- package/src/tests/script-executor-conformance.test.ts +3 -0
- package/src/tests/script-executor-quickjs.test.ts +442 -0
- package/src/tests/script-executor-registry.test.ts +6 -1
- package/src/tests/script-runs-http.test.ts +88 -1
- package/src/tests/script-runs-scrub.test.ts +275 -0
- package/src/tests/scripts-http.test.ts +82 -1
- package/src/tests/scrubbed-text-12e.test.ts +289 -0
- package/src/tests/sealed-key-guard.test.ts +166 -0
- package/src/tests/secret-canary-sweep.test.ts +958 -0
- package/src/tests/secret-registry.test.ts +355 -0
- package/src/tests/secret-rules.test.ts +230 -0
- package/src/tests/secret-scrubber.test.ts +3 -2
- package/src/tests/telemetry-trigger.test.ts +12 -1
- package/src/tests/workflow-llm.test.ts +14 -0
- package/src/tests/workflow-replay.test.ts +518 -0
- package/src/tests/workflow-scrub.test.ts +242 -0
- package/src/tests/workflow-system-one-decision-providers.test.ts +33 -0
- package/src/tools/db-query.ts +1 -1
- package/src/tools/inject-learning.ts +1 -1
- package/src/tools/request-human-input.ts +7 -2
- package/src/tools/workflows/get-workflow-run.ts +3 -2
- package/src/types.ts +1 -1
- package/src/utils/enabled-tools.ts +27 -0
- package/src/utils/internal-ai/complete-structured.ts +11 -3
- package/src/utils/openrouter-base-url.ts +23 -0
- package/src/utils/secret-rules.generated.ts +2055 -0
- package/src/utils/secret-scrubber.ts +363 -29
- package/src/workflows/engine.ts +39 -4
- package/src/workflows/executors/raw-llm.ts +1 -0
- package/src/workflows/executors/system-one-decision.ts +2 -0
- package/src/workflows/executors/validate.ts +1 -0
- package/src/workflows/executors/workflow-llm.ts +9 -2
- package/src/workflows/recovery.ts +10 -1
- package/src/workflows/resume.ts +62 -3
- package/src/workflows/retry-poller.ts +3 -0
- package/templates/skills/agent-browser/SKILL.md +2 -0
- package/templates/skills/agent-browser/content.md +2 -0
- package/templates/skills/code-quality/content.md +1 -0
- package/templates/skills/heartbeat-runbook/content.md +1 -1
- package/templates/skills/work-on-task/SKILL.md +4 -0
- package/templates/skills/work-on-task/content.md +4 -0
- package/templates/skills/workflow-iterate/content.md +9 -0
- package/dist/acp-adapter-w6zws6me.js +0 -23
- package/dist/boot-scrub-logs-246yn076.js +0 -99
- package/dist/cli-3a4m1aws.js +0 -572
- package/dist/cli-3dpj7atn.js +0 -11
- package/dist/cli-a87b04k8.js +0 -951
- package/dist/cli-cvk6yzw5.js +0 -40
- package/dist/cli-gvcgmx69.js +0 -183
- package/dist/cli-h1spv8v4.js +0 -427
- package/dist/cli-jqt9hrnz.js +0 -168
- package/dist/cli-yhmwmv0g.js +0 -9281
- package/dist/grok-adapter-yt9pab3k.js +0 -29
- package/src/be/boot-scrub-logs.ts +0 -132
- package/dist/{codex-hook-d2rkvf39.js → codex-hook-15dgc4cb.js} +1 -1
|
@@ -1,32 +1,33 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getEmbeddingProvider,
|
|
3
3
|
getMemoryStore,
|
|
4
|
+
init_memory,
|
|
4
5
|
resetEmbeddingProvider
|
|
5
|
-
} from "./cli-
|
|
6
|
-
import"./cli-wfajtmf7.js";
|
|
7
|
-
import"./cli-cvk6yzw5.js";
|
|
8
|
-
import"./cli-qdv8kgz7.js";
|
|
9
|
-
import"./cli-9s3h836g.js";
|
|
6
|
+
} from "./cli-mkdsy1nq.js";
|
|
10
7
|
import"./cli-3qhyh31j.js";
|
|
11
|
-
import"./cli-
|
|
8
|
+
import"./cli-xvdgasgy.js";
|
|
9
|
+
import"./cli-mxvnnv5q.js";
|
|
12
10
|
import"./cli-7mm2r1kp.js";
|
|
13
11
|
import"./cli-g5erf0zt.js";
|
|
14
12
|
import"./cli-dmtrxqhg.js";
|
|
15
|
-
import"./cli-tadfgd0t.js";
|
|
16
|
-
import"./cli-ywybs5as.js";
|
|
17
|
-
import"./cli-gd4favx9.js";
|
|
18
13
|
import"./cli-agamgm0p.js";
|
|
19
14
|
import"./cli-5c2j5yvx.js";
|
|
20
15
|
import"./cli-1a2j50m0.js";
|
|
16
|
+
import"./cli-tadfgd0t.js";
|
|
17
|
+
import"./cli-ywybs5as.js";
|
|
21
18
|
import"./cli-f9w1semm.js";
|
|
19
|
+
import"./cli-a35hzdve.js";
|
|
20
|
+
import"./cli-gd4favx9.js";
|
|
22
21
|
import"./cli-ej6gbxfb.js";
|
|
23
|
-
import"./cli-
|
|
22
|
+
import"./cli-014vns2y.js";
|
|
24
23
|
import"./cli-sd0mxa3c.js";
|
|
25
24
|
import"./cli-w5e1d1vv.js";
|
|
26
|
-
import"./cli-
|
|
25
|
+
import"./cli-ymmc1zxg.js";
|
|
27
26
|
import"./cli-zf8jjwex.js";
|
|
28
|
-
import"./cli-
|
|
27
|
+
import"./cli-wt7ccy4r.js";
|
|
29
28
|
import"./cli-bc05qbss.js";
|
|
29
|
+
init_memory();
|
|
30
|
+
|
|
30
31
|
export {
|
|
31
32
|
getEmbeddingProvider,
|
|
32
33
|
getMemoryStore,
|
|
@@ -4,71 +4,67 @@ 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-qzmzwegq.js";
|
|
8
|
+
import"./cli-wydz3feg.js";
|
|
9
|
+
import"./cli-xvc3q9br.js";
|
|
10
|
+
import"./cli-mv2520nm.js";
|
|
11
11
|
import"./cli-w0bwte75.js";
|
|
12
12
|
import"./cli-re8z5p8p.js";
|
|
13
|
-
import"./cli-
|
|
14
|
-
import"./cli-
|
|
15
|
-
import"./cli-
|
|
16
|
-
import"./cli-
|
|
13
|
+
import"./cli-tx2zvn23.js";
|
|
14
|
+
import"./cli-p8rt8spp.js";
|
|
15
|
+
import"./cli-v1pwxreq.js";
|
|
16
|
+
import"./cli-577bxkf6.js";
|
|
17
17
|
import"./cli-epan13p1.js";
|
|
18
18
|
import"./cli-f14fvzag.js";
|
|
19
|
+
import"./cli-7mhy3ths.js";
|
|
20
|
+
import"./cli-v1w7pbd8.js";
|
|
19
21
|
import"./cli-zt3w1cn1.js";
|
|
20
|
-
import"./cli-
|
|
21
|
-
import"./cli-ftry7975.js";
|
|
22
|
-
import"./cli-3dpj7atn.js";
|
|
23
|
-
import"./cli-2x0e561b.js";
|
|
24
|
-
import"./cli-pkke6geq.js";
|
|
22
|
+
import"./cli-km4x66j0.js";
|
|
25
23
|
import"./cli-rb9m6rpe.js";
|
|
24
|
+
import"./cli-2x0e561b.js";
|
|
25
|
+
import"./cli-kw0jcfje.js";
|
|
26
26
|
import"./cli-mzfth0bp.js";
|
|
27
|
-
import"./cli-jqt9hrnz.js";
|
|
28
|
-
import"./cli-yhmwmv0g.js";
|
|
29
|
-
import"./cli-wfajtmf7.js";
|
|
30
|
-
import"./cli-a87b04k8.js";
|
|
31
27
|
import"./cli-fad8m16k.js";
|
|
32
28
|
import"./cli-bsakbbkm.js";
|
|
33
29
|
import"./cli-zxg80zs9.js";
|
|
34
30
|
import"./cli-51tf7ac3.js";
|
|
35
31
|
import"./cli-ydt3zkwv.js";
|
|
36
|
-
import"./cli-
|
|
32
|
+
import"./cli-c8r99akr.js";
|
|
37
33
|
import"./cli-q51yprfq.js";
|
|
38
34
|
import"./cli-3er6gcsn.js";
|
|
39
|
-
import"./cli-cvk6yzw5.js";
|
|
40
35
|
import"./cli-yatxqynm.js";
|
|
41
|
-
import"./cli-
|
|
42
|
-
import"./cli-
|
|
36
|
+
import"./cli-mn8qkd8v.js";
|
|
37
|
+
import"./cli-g7k7zbcz.js";
|
|
43
38
|
import"./cli-btbzvq95.js";
|
|
44
39
|
import"./cli-1m2e086m.js";
|
|
45
|
-
import"./cli-
|
|
40
|
+
import"./cli-wnb9b2g3.js";
|
|
46
41
|
import"./cli-bd957dgb.js";
|
|
47
42
|
import"./cli-pzxba7gw.js";
|
|
48
|
-
import"./cli-
|
|
43
|
+
import"./cli-ypgba1a8.js";
|
|
49
44
|
import"./cli-rfphkzh5.js";
|
|
50
|
-
import"./cli-
|
|
51
|
-
import"./cli-9s3h836g.js";
|
|
45
|
+
import"./cli-mkdsy1nq.js";
|
|
52
46
|
import"./cli-3qhyh31j.js";
|
|
53
|
-
import"./cli-
|
|
47
|
+
import"./cli-xvdgasgy.js";
|
|
48
|
+
import"./cli-mxvnnv5q.js";
|
|
54
49
|
import"./cli-7mm2r1kp.js";
|
|
55
50
|
import"./cli-g5erf0zt.js";
|
|
56
51
|
import"./cli-dmtrxqhg.js";
|
|
57
|
-
import"./cli-tadfgd0t.js";
|
|
58
|
-
import"./cli-ywybs5as.js";
|
|
59
|
-
import"./cli-gd4favx9.js";
|
|
60
52
|
import"./cli-agamgm0p.js";
|
|
61
53
|
import"./cli-5c2j5yvx.js";
|
|
62
54
|
import"./cli-1a2j50m0.js";
|
|
55
|
+
import"./cli-tadfgd0t.js";
|
|
56
|
+
import"./cli-ywybs5as.js";
|
|
63
57
|
import"./cli-f9w1semm.js";
|
|
58
|
+
import"./cli-a35hzdve.js";
|
|
59
|
+
import"./cli-gd4favx9.js";
|
|
64
60
|
import"./cli-ej6gbxfb.js";
|
|
65
|
-
import"./cli-
|
|
61
|
+
import"./cli-014vns2y.js";
|
|
66
62
|
import"./cli-sd0mxa3c.js";
|
|
67
63
|
import"./cli-w5e1d1vv.js";
|
|
68
|
-
import"./cli-
|
|
69
|
-
import"./cli-
|
|
64
|
+
import"./cli-ymmc1zxg.js";
|
|
65
|
+
import"./cli-mb75wpxf.js";
|
|
70
66
|
import"./cli-zf8jjwex.js";
|
|
71
|
-
import"./cli-
|
|
67
|
+
import"./cli-wt7ccy4r.js";
|
|
72
68
|
import"./cli-bc05qbss.js";
|
|
73
69
|
export {
|
|
74
70
|
getBootEpochMs,
|
|
@@ -3,43 +3,36 @@ import {
|
|
|
3
3
|
} from "./cli-ep19k3mb.js";
|
|
4
4
|
import {
|
|
5
5
|
agentFsProvisionSeeder
|
|
6
|
-
} from "./cli-
|
|
6
|
+
} from "./cli-c2tpw9ck.js";
|
|
7
7
|
import {
|
|
8
8
|
extractArgsJsonSchema,
|
|
9
9
|
extractScriptSignature,
|
|
10
|
-
getScript,
|
|
11
10
|
require_dist,
|
|
12
11
|
typecheckScript,
|
|
13
|
-
upsertScriptByName,
|
|
14
12
|
validateDefinition,
|
|
15
13
|
validateScriptImports
|
|
16
|
-
} from "./cli-
|
|
14
|
+
} from "./cli-577bxkf6.js";
|
|
17
15
|
import"./cli-epan13p1.js";
|
|
18
16
|
import"./cli-f14fvzag.js";
|
|
17
|
+
import"./cli-7mhy3ths.js";
|
|
18
|
+
import"./cli-v1w7pbd8.js";
|
|
19
19
|
import"./cli-zt3w1cn1.js";
|
|
20
|
-
import"./cli-
|
|
21
|
-
import"./cli-ftry7975.js";
|
|
22
|
-
import"./cli-3dpj7atn.js";
|
|
23
|
-
import"./cli-2x0e561b.js";
|
|
24
|
-
import"./cli-pkke6geq.js";
|
|
20
|
+
import"./cli-km4x66j0.js";
|
|
25
21
|
import"./cli-rb9m6rpe.js";
|
|
26
|
-
import"./cli-
|
|
27
|
-
import"./cli-
|
|
28
|
-
import"./cli-wfajtmf7.js";
|
|
29
|
-
import"./cli-a87b04k8.js";
|
|
22
|
+
import"./cli-2x0e561b.js";
|
|
23
|
+
import"./cli-kw0jcfje.js";
|
|
30
24
|
import"./cli-bsakbbkm.js";
|
|
31
25
|
import"./cli-zxg80zs9.js";
|
|
32
26
|
import"./cli-ydt3zkwv.js";
|
|
33
|
-
import"./cli-
|
|
27
|
+
import"./cli-c8r99akr.js";
|
|
34
28
|
import"./cli-q51yprfq.js";
|
|
35
29
|
import"./cli-3er6gcsn.js";
|
|
36
|
-
import"./cli-cvk6yzw5.js";
|
|
37
30
|
import"./cli-yatxqynm.js";
|
|
38
|
-
import"./cli-
|
|
39
|
-
import"./cli-
|
|
31
|
+
import"./cli-mn8qkd8v.js";
|
|
32
|
+
import"./cli-g7k7zbcz.js";
|
|
40
33
|
import"./cli-btbzvq95.js";
|
|
41
34
|
import"./cli-1m2e086m.js";
|
|
42
|
-
import"./cli-
|
|
35
|
+
import"./cli-wnb9b2g3.js";
|
|
43
36
|
import"./cli-bd957dgb.js";
|
|
44
37
|
import"./cli-pzxba7gw.js";
|
|
45
38
|
import {
|
|
@@ -50,40 +43,45 @@ import {
|
|
|
50
43
|
deleteSkillFile,
|
|
51
44
|
getDbClient,
|
|
52
45
|
getScheduledTaskByName,
|
|
46
|
+
getScript,
|
|
53
47
|
getSkillByName,
|
|
54
48
|
getSkillFiles,
|
|
55
49
|
init_db,
|
|
50
|
+
init_db1 as init_db2,
|
|
56
51
|
listWorkflows,
|
|
57
52
|
updateScheduledTask,
|
|
58
53
|
updateSkill,
|
|
59
54
|
updateWorkflow,
|
|
55
|
+
upsertScriptByName,
|
|
60
56
|
upsertSkillFiles
|
|
61
|
-
} from "./cli-
|
|
62
|
-
import"./cli-9s3h836g.js";
|
|
57
|
+
} from "./cli-mkdsy1nq.js";
|
|
63
58
|
import"./cli-3qhyh31j.js";
|
|
64
|
-
import"./cli-
|
|
59
|
+
import"./cli-xvdgasgy.js";
|
|
60
|
+
import"./cli-mxvnnv5q.js";
|
|
65
61
|
import"./cli-7mm2r1kp.js";
|
|
66
62
|
import"./cli-g5erf0zt.js";
|
|
67
63
|
import"./cli-dmtrxqhg.js";
|
|
68
|
-
import"./cli-tadfgd0t.js";
|
|
69
|
-
import"./cli-ywybs5as.js";
|
|
70
|
-
import"./cli-gd4favx9.js";
|
|
71
64
|
import"./cli-agamgm0p.js";
|
|
72
65
|
import"./cli-5c2j5yvx.js";
|
|
73
66
|
import"./cli-1a2j50m0.js";
|
|
67
|
+
import"./cli-tadfgd0t.js";
|
|
68
|
+
import"./cli-ywybs5as.js";
|
|
74
69
|
import"./cli-f9w1semm.js";
|
|
70
|
+
import"./cli-a35hzdve.js";
|
|
71
|
+
import"./cli-gd4favx9.js";
|
|
75
72
|
import"./cli-ej6gbxfb.js";
|
|
76
|
-
import"./cli-
|
|
73
|
+
import"./cli-014vns2y.js";
|
|
77
74
|
import"./cli-sd0mxa3c.js";
|
|
78
75
|
import"./cli-w5e1d1vv.js";
|
|
79
|
-
import"./cli-
|
|
76
|
+
import"./cli-ymmc1zxg.js";
|
|
80
77
|
import"./cli-zf8jjwex.js";
|
|
81
|
-
import"./cli-
|
|
78
|
+
import"./cli-wt7ccy4r.js";
|
|
82
79
|
import {
|
|
83
80
|
__toESM
|
|
84
81
|
} from "./cli-bc05qbss.js";
|
|
85
82
|
|
|
86
83
|
// src/be/seed-scripts/index.ts
|
|
84
|
+
init_db2();
|
|
87
85
|
init_db();
|
|
88
86
|
|
|
89
87
|
// src/be/seed-scripts/catalog/app-sync-run.ts
|
|
@@ -5736,7 +5734,7 @@ var config_default = `{
|
|
|
5736
5734
|
`;
|
|
5737
5735
|
|
|
5738
5736
|
// templates/skills/agent-browser/content.md
|
|
5739
|
-
var content_default = '# agent-browser\n\n`agent-browser` (vercel-labs) is the swarm\'s browser-automation CLI. It drives a headless Chromium over CDP and returns accessibility-tree snapshots with compact `@eN` refs. Use it for any browser task: verify a UI change, take a screenshot, walk a page, fill a form, extract page text, reproduce a frontend bug, or attach UI evidence to a PR, issue, Linear comment, or Slack thread.\n\nDo not use `qa-use`. It is not installed in the worker image any more.\n\n## Step 0: check that the CLI is present\n\nThe full worker image (`agent-swarm-worker:latest`) ships `agent-browser` and a headless Chromium. The slim image (`:slim`) has neither. The first command of any browser work is:\n\n```bash\ncommand -v agent-browser\n```\n\nIf it prints nothing, you are on the slim image. Say so in your progress report ("agent-browser is not available on this worker image") and fall back to manual QA: write the exact steps a human should run and mark the browser test cases as **Blocked**, not failed. Do not install a browser or the CLI yourself.\n\n## Step 1: load the version-matched guide\n\nThe CLI bundles its own usage guide. Load it once per task before the first browser command. Do not guess flags from memory.\n\n```bash\nagent-browser skills get core # overview + common patterns\nagent-browser skills get core --full # adds the full command reference\nagent-browser skills list # specialized guides (dogfood, electron, slack, ...)\n```\n\n## Step 2: the core loop\n\n```bash\nagent-browser open <url>\nagent-browser snapshot -i # accessibility tree, interactive elements only, @eN refs\nagent-browser click @e12 # act on refs from the snapshot\nagent-browser fill @e7 "text"\nagent-browser screenshot /tmp/<name>.png\nagent-browser close\n```\n\n- Re-run `snapshot` after every navigation or state change. Refs are only valid for the snapshot that produced them.\n- Run one browser session at a time. Call `store-progress` between page batches so the heartbeat watchdog sees you.\n- The browser is headless. Local servers inside the worker container are reachable at `http://localhost:<port>`.\n- The image launches Chromium with `--no-sandbox,--disable-dev-shm-usage` through `AGENT_BROWSER_ARGS`. If you pass your own `--args`, include `--no-sandbox` again or Chrome will not start.\n\n## Recording\n\nDefault: record with `--cursor`, drive every supported pointer action (`click`, `mouse move`, `drag`) with `--human`, and ship the **1.5x video**. Keep the 1x original only if a reviewer asks for it. Human pointer movement follows an eased curve; use `--seed <n>` on `mouse move` to make the take reproducible instead of using a bare move.\n\nOpen the page first, then record the interaction:\n\n```bash\nagent-browser record start ./in.mp4 --cursor\nagent-browser snapshot -i\nagent-browser mouse move 600 400 --human --seed 42 --duration 1400\nagent-browser click @e3 --human # use a ref from the current snapshot\n# Perform the remaining QA steps; use --human for drag actions too.\nagent-browser record stop\nffmpeg -y -i in.mp4 -filter:v "setpts=PTS/1.5,fps=30" -an \\\n -c:v libx264 -preset veryfast -crf 23 -pix_fmt yuv420p out-1.5x.mp4\n```\n\nSpeed-up is a post-process step: `record start` has no speed or human flag. Keep `fps=30` to preserve a steady 30 fps output rather than uneven frame drops at an inferred rate. `-an` disables audio because agent-browser recordings carry no audio track. The worker ships only `ffmpeg`, not `ffprobe`; inspect duration with `ffmpeg -i out-1.5x.mp4 2>&1 | grep Duration`.\n\nAdd `--contact-sheet` to the start command for a timestamped PNG summary of visual changes. Recording needs `ffmpeg` on PATH; check `agent-browser doctor` before starting. Stop the recording before closing the browser so the video is saved. Keep the 1.5x file on the same agent-fs QA path as screenshots below. In a PR, upload it as a GitHub user attachment and put the URL on its own line, so GitHub plays it inline.\n\n## Step 3: share the screenshot through agent-fs\n\nScreenshots on the worker disk disappear with the task. Upload them to agent-fs under the qa path convention: that copy is the durable original. Use `share-create` when a person needs to open the file. `--file` is binary-safe. `--content` is text-only and mangles PNGs.\n\n```bash\nagent-fs write thoughts/<agent-id>/qa/<topic>-screenshots/<name>.png \\\n --file /tmp/<name>.png -m "<what it shows>"\nagent-fs stat thoughts/<agent-id>/qa/<topic>-screenshots/<name>.png --json # confirm size > 0\nagent-fs share-create thoughts/<agent-id>/qa/<topic>-screenshots/<name>.png --json\n```\n\n- **GitHub PR body or comment**: upload the PNG, GIF or mp4 as a GitHub user attachment with the `github-attach` skill and embed ``. Attachments never expire and mp4s play inline. A UI PR puts a before (main) and after pair in the `## Before / after` table. Fallback for images only, when the GitHub token is an App token (`ghu_`/`ghs_`): `agent-fs signed-url <path> --inline --json` (expires in 7 days). Never a presigned URL for an mp4 or a doc: it downloads.\n- **Linear comment or Slack message**: paste the `share-create` link.\n- In `store-progress`, list the upload in the `attachments` field with `kind: "agent-fs"` and the path, and paste the `share-create` link for people who need to open the file.\n- If `agent-fs auth whoami` fails, report the local path, say the upload was skipped, and continue.\n\nThe `artifacts` skill holds the full agent-fs recipe and the naming conventions.\n\n## Gotchas\n\n- `wait <selector>` waits for a VISIBLE match. When the first match is hidden it times out (about 25 s) even though the element exists. Wait on rendered text instead: `wait --text "<rendered text>"`.\n- Never run `pkill -f <pattern>` inside a Bash call: the pattern also matches the calling shell\'s command line and kills it. Record the PID when you start a background server (`echo $!`) and `kill <pid>`.\n';
|
|
5737
|
+
var content_default = '# agent-browser\n\n`agent-browser` (vercel-labs) is the swarm\'s browser-automation CLI. It drives a headless Chromium over CDP and returns accessibility-tree snapshots with compact `@eN` refs. Use it for any browser task: verify a UI change, take a screenshot, walk a page, fill a form, extract page text, reproduce a frontend bug, or attach UI evidence to a PR, issue, Linear comment, or Slack thread.\n\nDo not use `qa-use`. It is not installed in the worker image any more.\n\n## Step 0: check that the CLI is present\n\nThe full worker image (`agent-swarm-worker:latest`) ships `agent-browser` and a headless Chromium. The slim image (`:slim`) has neither. The first command of any browser work is:\n\n```bash\ncommand -v agent-browser\n```\n\nIf it prints nothing, you are on the slim image. Say so in your progress report ("agent-browser is not available on this worker image") and fall back to manual QA: write the exact steps a human should run and mark the browser test cases as **Blocked**, not failed. Do not install a browser or the CLI yourself.\n\n## Step 1: load the version-matched guide\n\nThe CLI bundles its own usage guide. Load it once per task before the first browser command. Do not guess flags from memory.\n\n```bash\nagent-browser skills get core # overview + common patterns\nagent-browser skills get core --full # adds the full command reference\nagent-browser skills list # specialized guides (dogfood, electron, slack, ...)\n```\n\n## Step 2: the core loop\n\n```bash\nagent-browser open <url>\nagent-browser snapshot -i # accessibility tree, interactive elements only, @eN refs\nagent-browser click @e12 # act on refs from the snapshot\nagent-browser fill @e7 "text"\nagent-browser screenshot /tmp/<name>.png\nagent-browser close\n```\n\n- Re-run `snapshot` after every navigation or state change. Refs are only valid for the snapshot that produced them.\n- Run one browser session at a time. Call `store-progress` between page batches so the heartbeat watchdog sees you.\n- The browser is headless. Local servers inside the worker container are reachable at `http://localhost:<port>`.\n- The image launches Chromium with `--no-sandbox,--disable-dev-shm-usage` through `AGENT_BROWSER_ARGS`. If you pass your own `--args`, include `--no-sandbox` again or Chrome will not start.\n\n## Recording\n\nPass `record start` an absolute path (`/tmp/<topic>/raw.webm`). A relative path resolves against the agent-browser daemon\'s cwd, not yours, and fails with `ffmpeg write failed: Broken pipe` while `doctor` stays green.\n\nDefault: record with `--cursor`, drive every supported pointer action (`click`, `mouse move`, `drag`) with `--human`, and ship the **1.5x video**. Keep the 1x original only if a reviewer asks for it. Human pointer movement follows an eased curve; use `--seed <n>` on `mouse move` to make the take reproducible instead of using a bare move.\n\nOpen the page first, then record the interaction:\n\n```bash\nagent-browser record start ./in.mp4 --cursor\nagent-browser snapshot -i\nagent-browser mouse move 600 400 --human --seed 42 --duration 1400\nagent-browser click @e3 --human # use a ref from the current snapshot\n# Perform the remaining QA steps; use --human for drag actions too.\nagent-browser record stop\nffmpeg -y -i in.mp4 -filter:v "setpts=PTS/1.5,fps=30" -an \\\n -c:v libx264 -preset veryfast -crf 23 -pix_fmt yuv420p out-1.5x.mp4\n```\n\nSpeed-up is a post-process step: `record start` has no speed or human flag. Keep `fps=30` to preserve a steady 30 fps output rather than uneven frame drops at an inferred rate. `-an` disables audio because agent-browser recordings carry no audio track. The worker ships only `ffmpeg`, not `ffprobe`; inspect duration with `ffmpeg -i out-1.5x.mp4 2>&1 | grep Duration`.\n\nAdd `--contact-sheet` to the start command for a timestamped PNG summary of visual changes. Recording needs `ffmpeg` on PATH; check `agent-browser doctor` before starting. Stop the recording before closing the browser so the video is saved. Keep the 1.5x file on the same agent-fs QA path as screenshots below. In a PR, upload it as a GitHub user attachment and put the URL on its own line, so GitHub plays it inline.\n\n## Step 3: share the screenshot through agent-fs\n\nScreenshots on the worker disk disappear with the task. Upload them to agent-fs under the qa path convention: that copy is the durable original. Use `share-create` when a person needs to open the file. `--file` is binary-safe. `--content` is text-only and mangles PNGs.\n\n```bash\nagent-fs write thoughts/<agent-id>/qa/<topic>-screenshots/<name>.png \\\n --file /tmp/<name>.png -m "<what it shows>"\nagent-fs stat thoughts/<agent-id>/qa/<topic>-screenshots/<name>.png --json # confirm size > 0\nagent-fs share-create thoughts/<agent-id>/qa/<topic>-screenshots/<name>.png --json\n```\n\n- **GitHub PR body or comment**: upload the PNG, GIF or mp4 as a GitHub user attachment with the `github-attach` skill and embed ``. Attachments never expire and mp4s play inline. A UI PR puts a before (main) and after pair in the `## Before / after` table. Fallback for images only, when the GitHub token is an App token (`ghu_`/`ghs_`): `agent-fs signed-url <path> --inline --json` (expires in 7 days). Never a presigned URL for an mp4 or a doc: it downloads.\n- **Linear comment or Slack message**: paste the `share-create` link.\n- In `store-progress`, list the upload in the `attachments` field with `kind: "agent-fs"` and the path, and paste the `share-create` link for people who need to open the file.\n- If `agent-fs auth whoami` fails, report the local path, say the upload was skipped, and continue.\n\nThe `artifacts` skill holds the full agent-fs recipe and the naming conventions.\n\n## Gotchas\n\n- `wait <selector>` waits for a VISIBLE match. When the first match is hidden it times out (about 25 s) even though the element exists. Wait on rendered text instead: `wait --text "<rendered text>"`.\n- Never run `pkill -f <pattern>` inside a Bash call: the pattern also matches the calling shell\'s command line and kills it. Record the PID when you start a background server (`echo $!`) and `kill <pid>`.\n';
|
|
5740
5738
|
|
|
5741
5739
|
// templates/skills/apps/config.json
|
|
5742
5740
|
var config_default2 = `{
|
|
@@ -6442,7 +6440,7 @@ var config_default8 = `{
|
|
|
6442
6440
|
`;
|
|
6443
6441
|
|
|
6444
6442
|
// templates/skills/code-quality/content.md
|
|
6445
|
-
var content_default8 = "# Code quality\n\nThis skill covers the moment code leaves your machine: a push, a pull request, a merge, a review.\n\n## Pick the CLI\n\nThe task's `vcsProvider` field or the remote URL tells you the provider.\n\n| Operation | GitHub (`gh`) | GitLab (`glab`) |\n|---|---|---|\n| Clone | `gh repo clone` | `glab repo clone` |\n| Create PR or MR | `gh pr create` | `glab mr create` |\n| View | `gh pr view` | `glab mr view` |\n| CI status | `gh pr checks` | `glab mr view --json pipelines` |\n| Review | `gh pr review` | `glab mr approve`, `glab mr note` |\n| Comment on an issue | `gh issue comment` | `glab issue note` |\n\n## Before you push\n\n1. Run every command in the Repository Guidelines section \"PR Checks\" of your system prompt, one after the other. When no guidelines exist, run the checklist in the repo's CLAUDE.md. When neither exists, ask the lead before you push.\n2. A failing check: fix the cause and run the check again. Push only when every check passes.\n3. Git hooks stay on. `--no-verify` and any other bypass flag are out.\n4. `main` and `master` are never force-pushed.\n5. One logical change per PR. Conventional commit titles when the repo uses them.\n\n## After you open a PR\n\n1. Wait about 30 seconds, then read CI: `gh pr checks <number>` or `glab mr view --json pipelines`.\n2. Red CI: read the failing job, fix, push, read CI again. Repeat until green.\n3. Put the PR URL and the CI status in your task output.\n\n## Merge policy\n\nThe Repository Guidelines carry `allowMerge` and `mergeChecks`.\n\n- `allowMerge` false (the default): review and approve. Do not merge.\n- `allowMerge` true: run every `mergeChecks` entry first, then merge.\n\n## Review a PR\n\n1. CI status first, including the fork checks below before treating CI as evidence. Failing CI is a REQUEST_CHANGES. Name the failing checks in the review.\n2. Detect a GitHub fork PR with `gh pr view <number> --json isCrossRepository --jq .isCrossRepository`.\n3. For a GitHub fork PR, inspect held runs with `SHA=$(gh pr view <number> --json headRefOid --jq .headRefOid); gh api --paginate \"repos/<owner>/<repo>/actions/runs?head_sha=$SHA\" --jq '.workflow_runs[] | \"\\(.conclusion // .status)|\\(.name)\"'`; `gh pr checks` and `statusCheckRollup` can omit them.\n4. Treat any `action_required` run or no substantive run executed on that SHA as a CI blocker. Keep run handling read-only: REQUEST_CHANGES naming the held or unexecuted run, and report the blocker so an explicitly authorized maintainer or the application-controlled GitHub integration can approve the run after validating the workflow and its trust boundary. Do not APPROVE on omitted runs.\n5. Tests second. This authoring gate applies to production changes and tests under root `src/` only; `apps/ui/` and `apps/evals/` are out of scope for now. For a behavior change in root `src/`, no new or updated test that names the regression it catches is a REQUEST_CHANGES. A test that fails the gate below is also a REQUEST_CHANGES. Documentation-only, configuration-only, and dependency-bump PRs are exempt.\n\n Before adding or changing a root `src/` test, answer all four questions:\n - What observable behavior, invariant, or independent contract does it protect?\n - What credible regression would make it fail?\n - Why would existing coverage miss that regression? Give each contract one primary test owner at its strongest boundary. Another layer needs a distinct risk the owner cannot reach. Prefer extending a table-driven case or shared fixture over a near-duplicate.\n - Does it need a production seam (export, flag, wrapper, or injection hook) that no production caller needs? If so, move the test to the real boundary.\n\n Reject tests that match these junk patterns:\n - Assertion-free coverage probes.\n - Self-comparisons and identity copiers.\n - Copied fixtures, inventories, manifests, or export lists.\n - Exact source, import, or string greps.\n - Private predicate or call-shape tests duplicated at real boundaries.\n - Duplicate invocations of the same contract.\n - Provider-local replays of shared helpers.\n - Tests whose only purpose is preserving test-only exports, globals, or wrappers.\n - Dead production code whose only callers are tests.\n - Expected values produced by the helper or renderer under test.\n - Mocks that implement the asserted behavior, or one identical mock standing in for different APIs.\n - Fixtures that supply the receipt, admission, or callback ordering the owner should produce, or persistence asserted against a store the path never writes.\n - Capability tests that restate declared flags instead of exercising the delivery or acknowledgement the flag promises.\n - Negative controls that pass for an unrelated reason, such as denial from a different guard or a rejection the production path never reaches.\n - Test names or fixtures that promise more than the input exercises.\n\n A regression test must fail on the pre-fix code for the intended reason and pass after the repair. A regression test that never demonstrably failed does not prove the fix.\n6. Apply the \"Review Guidance\" entries from the Repository Guidelines.\n7. Read the diff for security (injection, secrets in code), logic (null handling, off-by-one, edge cases), performance (N+1, leaks), and code shape (naming, duplication, error handling). Run the test suite and the type check locally when you can.\n8. Post the review with the verdict first. One finding per comment, with file and line, and what to change.\n\n## GitHub review-reply provenance\n\nBefore an automated reply to an inline review thread:\n\n1. `gh api user --jq .login` must equal `${GITHUB_BOT_NAME:-agent-swarm-bot}`.\n2. Post through the `GITHUB_TOKEN`-backed `gh api` path.\n3. Append `<!-- agent-swarm:review-ack -->` to the reply body.\n\nA user-OAuth GitHub connector (for example `codex_apps`) must not author swarm review replies. When the login does not match, do not post. Report the mismatch in your task output.\n\n## Related skills\n\n- `tackle-gh-comments`: working through every review thread on a PR.\n- `engineering-standards`: the code-shape bar a reviewer holds the diff to.\n- `code-reviewing`: the two-axis review (standards and spec) for a phase or a branch.\n";
|
|
6443
|
+
var content_default8 = "# Code quality\n\nThis skill covers the moment code leaves your machine: a push, a pull request, a merge, a review.\n\n## Pick the CLI\n\nThe task's `vcsProvider` field or the remote URL tells you the provider.\n\n| Operation | GitHub (`gh`) | GitLab (`glab`) |\n|---|---|---|\n| Clone | `gh repo clone` | `glab repo clone` |\n| Create PR or MR | `gh pr create` | `glab mr create` |\n| View | `gh pr view` | `glab mr view` |\n| CI status | `gh pr checks` | `glab mr view --json pipelines` |\n| Review | `gh pr review` | `glab mr approve`, `glab mr note` |\n| Comment on an issue | `gh issue comment` | `glab issue note` |\n\n## Before you push\n\n1. Run every command in the Repository Guidelines section \"PR Checks\" of your system prompt, one after the other. When no guidelines exist, run the checklist in the repo's CLAUDE.md. When neither exists, ask the lead before you push.\n2. A failing check: fix the cause and run the check again. Push only when every check passes.\n3. Git hooks stay on. `--no-verify` and any other bypass flag are out.\n4. `main` and `master` are never force-pushed.\n5. One logical change per PR. Conventional commit titles when the repo uses them.\n\n## After you open a PR\n\n1. Wait about 30 seconds, then read CI: `gh pr checks <number>` or `glab mr view --json pipelines`.\n2. Red CI: read the failing job, fix, push, read CI again. Repeat until green.\n3. Put the PR URL and the CI status in your task output.\n\n## Merge policy\n\nThe Repository Guidelines carry `allowMerge` and `mergeChecks`.\n\n- `allowMerge` false (the default): review and approve. Do not merge.\n- `allowMerge` true: run every `mergeChecks` entry first, then merge.\n\n## Review a PR\n\n0. Re-review check. If you reviewed this PR before, compare `gh pr view <number> --json headRefOid --jq .headRefOid` with the `commit_id` of your last review (`gh api repos/<owner>/<repo>/pulls/<number>/reviews`). Same SHA: reuse that verdict, link it and stop. New SHA: review the diff since that commit, then run the full list below. If the new head merged or rebased main, also read every conflict resolution (files both sides touched), check migration numbering and order against main, grep for stale migration numbers, and confirm CI is green at the exact head you review.\n1. CI status first, including the fork checks below before treating CI as evidence. Failing CI is a REQUEST_CHANGES. Name the failing checks in the review.\n2. Detect a GitHub fork PR with `gh pr view <number> --json isCrossRepository --jq .isCrossRepository`.\n3. For a GitHub fork PR, inspect held runs with `SHA=$(gh pr view <number> --json headRefOid --jq .headRefOid); gh api --paginate \"repos/<owner>/<repo>/actions/runs?head_sha=$SHA\" --jq '.workflow_runs[] | \"\\(.conclusion // .status)|\\(.name)\"'`; `gh pr checks` and `statusCheckRollup` can omit them.\n4. Treat any `action_required` run or no substantive run executed on that SHA as a CI blocker. Keep run handling read-only: REQUEST_CHANGES naming the held or unexecuted run, and report the blocker so an explicitly authorized maintainer or the application-controlled GitHub integration can approve the run after validating the workflow and its trust boundary. Do not APPROVE on omitted runs.\n5. Tests second. This authoring gate applies to production changes and tests under root `src/` only; `apps/ui/` and `apps/evals/` are out of scope for now. For a behavior change in root `src/`, no new or updated test that names the regression it catches is a REQUEST_CHANGES. A test that fails the gate below is also a REQUEST_CHANGES. Documentation-only, configuration-only, and dependency-bump PRs are exempt.\n\n Before adding or changing a root `src/` test, answer all four questions:\n - What observable behavior, invariant, or independent contract does it protect?\n - What credible regression would make it fail?\n - Why would existing coverage miss that regression? Give each contract one primary test owner at its strongest boundary. Another layer needs a distinct risk the owner cannot reach. Prefer extending a table-driven case or shared fixture over a near-duplicate.\n - Does it need a production seam (export, flag, wrapper, or injection hook) that no production caller needs? If so, move the test to the real boundary.\n\n Reject tests that match these junk patterns:\n - Assertion-free coverage probes.\n - Self-comparisons and identity copiers.\n - Copied fixtures, inventories, manifests, or export lists.\n - Exact source, import, or string greps.\n - Private predicate or call-shape tests duplicated at real boundaries.\n - Duplicate invocations of the same contract.\n - Provider-local replays of shared helpers.\n - Tests whose only purpose is preserving test-only exports, globals, or wrappers.\n - Dead production code whose only callers are tests.\n - Expected values produced by the helper or renderer under test.\n - Mocks that implement the asserted behavior, or one identical mock standing in for different APIs.\n - Fixtures that supply the receipt, admission, or callback ordering the owner should produce, or persistence asserted against a store the path never writes.\n - Capability tests that restate declared flags instead of exercising the delivery or acknowledgement the flag promises.\n - Negative controls that pass for an unrelated reason, such as denial from a different guard or a rejection the production path never reaches.\n - Test names or fixtures that promise more than the input exercises.\n\n A regression test must fail on the pre-fix code for the intended reason and pass after the repair. A regression test that never demonstrably failed does not prove the fix.\n6. Apply the \"Review Guidance\" entries from the Repository Guidelines.\n7. Read the diff for security (injection, secrets in code), logic (null handling, off-by-one, edge cases), performance (N+1, leaks), and code shape (naming, duplication, error handling). Run the test suite and the type check locally when you can.\n8. Post the review with the verdict first. One finding per comment, with file and line, and what to change.\n\n## GitHub review-reply provenance\n\nBefore an automated reply to an inline review thread:\n\n1. `gh api user --jq .login` must equal `${GITHUB_BOT_NAME:-agent-swarm-bot}`.\n2. Post through the `GITHUB_TOKEN`-backed `gh api` path.\n3. Append `<!-- agent-swarm:review-ack -->` to the reply body.\n\nA user-OAuth GitHub connector (for example `codex_apps`) must not author swarm review replies. When the login does not match, do not post. Report the mismatch in your task output.\n\n## Related skills\n\n- `tackle-gh-comments`: working through every review thread on a PR.\n- `engineering-standards`: the code-shape bar a reviewer holds the diff to.\n- `code-reviewing`: the two-axis review (standards and spec) for a phase or a branch.\n";
|
|
6446
6444
|
|
|
6447
6445
|
// templates/skills/code-reviewing/config.json
|
|
6448
6446
|
var config_default9 = `{
|
|
@@ -7272,7 +7270,7 @@ Two kinds of sections:
|
|
|
7272
7270
|
|
|
7273
7271
|
## Handle a heartbeat-checklist task
|
|
7274
7272
|
|
|
7275
|
-
0. Quiet check. Take the fast path when three things hold: the system status
|
|
7273
|
+
0. Quiet check. Take the fast path when three things hold: every failed, stalled or reboot-interrupted task in the system status was already named in the previous heartbeat-checklist task's output (newest completed one via \`get-tasks\`); no mention has gone unanswered since the last heartbeat; and no tracked item in the task's runbook snapshot is at or past its date. On the fast path, run the two step 3 scripts. If they report nothing the previous heartbeat had not already triaged, complete with one line citing the previous heartbeat task id and the counts, and skip steps 1, 2 and 4-7. Anything new means continue at step 1.
|
|
7276
7274
|
1. Read the latest runbook. The snapshot in the task may be stale.
|
|
7277
7275
|
2. Prune first. Check every tracked item against its lift trigger. Remove resolved, stale, and past-date items.
|
|
7278
7276
|
3. Run the seeded scripts: \`script-run\` with name \`schedule-health\`, then \`task-failure-audit\`, both with \`args: { days: 1, publishPage: false }\`. They report failing schedules and failure clusters. Check any other standing order in the runbook yourself.
|
|
@@ -11854,7 +11852,7 @@ var config_default49 = `{
|
|
|
11854
11852
|
`;
|
|
11855
11853
|
|
|
11856
11854
|
// templates/skills/work-on-task/content.md
|
|
11857
|
-
var content_default49 = "# Working on a task\n\nThe taskId follows the command. Without one, call `get-tasks` with `mineOnly: true` and take your `pending` or `in_progress` task. If there is none, say so and stop.\n\nThis message carries the task text, its attachments, its output format, and memories from past sessions. If it does not (you invoked this command yourself, or the context was compacted), run the `task-context-gathering` script with the taskId.\n\nWhen the task names a skill (`researching`, `planning`, `implementing`), use it. Otherwise work directly.\n\nFinish the task with one of the four endings in your operating contract: `completed`, `defer-task`, `request-human-input`, or `failed`. Then stop.\n\nIf the user interrupts, follow their instructions. To resume, call `/work-on-task <taskId>` again.\n";
|
|
11855
|
+
var content_default49 = "# Working on a task\n\nThe taskId follows the command. Without one, call `get-tasks` with `mineOnly: true` and take your `pending` or `in_progress` task. If there is none, say so and stop.\n\nThis message carries the task text, its attachments, its output format, and memories from past sessions. If it does not (you invoked this command yourself, or the context was compacted), run the `task-context-gathering` script with the taskId.\n\nWhen the task names a skill (`researching`, `planning`, `implementing`), use it. Otherwise work directly.\n\nFinish the task with one of the four endings in your operating contract: `completed`, `defer-task`, `request-human-input`, or `failed`. Then stop.\n\nResuming (a resume task, or work cut by a graceful shutdown): read the parent's last progress line, then re-read live state once (PR state and head SHA, branch, `git status`) before new work. Re-run controls only if the head moved. Never redo a pushed commit or open a second PR for the same branch. Store a progress line with branch, PR number and head SHA each time you push.\n\nWrite times in replies, outputs and defer notes in the requester's timezone when the Requester Profile names one, never raw UTC.\n\nIf the user interrupts, follow their instructions. To resume, call `/work-on-task <taskId>` again.\n";
|
|
11858
11856
|
|
|
11859
11857
|
// templates/skills/workflow-iterate/config.json
|
|
11860
11858
|
var config_default50 = `{
|
|
@@ -12054,6 +12052,15 @@ Afterwards, a \`warnings\` entry on \`create-workflow\` or a patch tool means th
|
|
|
12054
12052
|
- 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.
|
|
12055
12053
|
- The node reads its provider's key (\`TYPESAFE_API_KEY\`, \`OPENROUTER_API_KEY\`, \`LAYA_API_KEY\`, \`OPENAI_DECISIONS_API_KEY\`, or \`CLOUDFLARE_API_TOKEN\`, plus \`LAYA_URL\` for \`laya\` and \`CLOUDFLARE_ACCOUNT_ID\` for \`cloudflare\`) 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.
|
|
12056
12054
|
|
|
12055
|
+
### \`human-in-the-loop\` (how approvals render)
|
|
12056
|
+
|
|
12057
|
+
The same rules apply to a standalone \`request-human-input\` call.
|
|
12058
|
+
|
|
12059
|
+
- **Dashboard card.** \`title\` is plain text. Each question's \`label\` is its heading and renders as markdown. \`description\` renders as full markdown and is the only field that shows images, so put drafts, diffs, and logs there.
|
|
12060
|
+
- **Code.** Fence code, logs, and JSON with a language (\`\`\`\` \`\`\`json \`\`\`\`): the block keeps its lines and scrolls. Fence a prose draft with no language: it wraps. A single newline outside a fence becomes a paragraph break.
|
|
12061
|
+
- **Images.** Put an \`http(s)\` URL ending in \`.png\`, \`.jpg\`, \`.jpeg\`, \`.gif\`, or \`.webp\` alone on its own line in \`description\`, or use \`\`. The link must outlive the request: an expired presigned URL shows an "image unavailable" note.
|
|
12062
|
+
- **Slack.** A node's \`notifications\` post the title, the question labels (each collapsed to one line, capped at 3000 characters in total), a Review button, and the timeout. Descriptions, options, code, and images are not shown, so the title and labels must make sense alone. \`request-human-input\` posts nothing to Slack: share the returned URL yourself.
|
|
12063
|
+
|
|
12057
12064
|
### \`swarm-script\`
|
|
12058
12065
|
|
|
12059
12066
|
\`\`\`json
|
|
@@ -12292,7 +12299,7 @@ For complete command documentation with all flags and options, see [COMMANDS.md]
|
|
|
12292
12299
|
`;
|
|
12293
12300
|
|
|
12294
12301
|
// src/be/seed-skills/index.ts
|
|
12295
|
-
|
|
12302
|
+
init_db2();
|
|
12296
12303
|
// src/be/seed-skills/bundled-files.generated.json
|
|
12297
12304
|
var bundled_files_generated_default = {
|
|
12298
12305
|
artifacts: [
|
|
@@ -15095,7 +15102,7 @@ var skillsSeeder = {
|
|
|
15095
15102
|
};
|
|
15096
15103
|
|
|
15097
15104
|
// src/be/seed/state-db.ts
|
|
15098
|
-
|
|
15105
|
+
init_db2();
|
|
15099
15106
|
async function getSeedState(kind, key) {
|
|
15100
15107
|
return getDbClient().get("SELECT kind, key, seededHash, seededAt FROM seed_state WHERE kind = ? AND key = ?", [kind, key]);
|
|
15101
15108
|
}
|
|
@@ -16490,7 +16497,7 @@ var config_default63 = `{
|
|
|
16490
16497
|
var content_default63 = '# Weekly Harness Upgrade Check\n\nThis is a topology-preserving, anonymized port of the live Sunday schedule. It keeps its bundle, deduplication, baseline, partial-fallback, and CI acceptance behavior.\n\n```json\n{"cron":"0 16 * * 0","timezone":"UTC","agentRole":"lead","enabled":true}\n```\n\n**Weekly Harness Upgrade — self-hosted repository Dockerfile.worker**\n\nRepo: `{{REPO_URL}}` (working dir: `/workspace/repo`)\nFile: `Dockerfile.worker`\n\nThe worker image pins these harnesses via `ARG`. Each week, check upstream for new versions and open ONE PR bundling ALL outdated harness bumps together ({{PR_REVIEWER}}\'s preference — bump ALL in one PR per run, do NOT stagger one-per-run).\n\n| ARG | Source | Sync requirement |\n|---|---|---|\n| `CLAUDE_CODE_VERSION` | npm `@anthropic-ai/claude-code` | none |\n| `PI_CODING_AGENT_VERSION` | npm `@earendil-works/pi-coding-agent` | MUST match `@earendil-works/pi-agent-core`, `@earendil-works/pi-ai`, and `@earendil-works/pi-coding-agent` in `package.json` (family-pin, all same version) — bump all together |\n| `CODEX_VERSION` | npm `@openai/codex` | MUST match direct `@openai/codex` in `package.json` (enforced by `scripts/check-codex-default-model.sh`) |\n| `OPENCODE_VERSION` | https://opencode.ai (latest release) | MUST match `OPENCODE_SDK_VERSION` |\n| `OPENCODE_SDK_VERSION` | npm `@opencode-ai/sdk` | MUST match `OPENCODE_VERSION` — bump both together |\n\n## Steps\n\n1. `cd /workspace/repo && git fetch origin && git checkout main && git pull --ff-only`\n2. Read current pinned versions from `Dockerfile.worker` (the `ARG` lines) and from `package.json` (for the pi family + `@openai/codex` + `@opencode-ai/sdk`).\n3. For each harness, fetch the latest version:\n - npm claude-code: `npm view @anthropic-ai/claude-code version`\n - npm pi: `npm view @earendil-works/pi-coding-agent version` (use the SAME version for `@earendil-works/pi-agent-core` and `@earendil-works/pi-ai` — they\'re a family pin)\n - npm codex: `npm view @openai/codex version`\n - npm opencode-sdk: `npm view @opencode-ai/sdk version`\n - opencode: `curl -fsSL https://api.github.com/repos/sst/opencode/releases/latest | jq -r .tag_name`\n4. Check for an existing open bundled PR — `gh pr list --search "harness upgrade in:title" --state open --repo {{REPO_URL}}`. Look at the branch prefix `harness-upgrade/`. If one is already open AND was created within the last 48h (sibling schedule may have just opened it), skip and complete with `"Skipped: sibling harness upgrade PR already open"` + the existing PR URL.\n5. Collect ALL outdated harnesses. If none are outdated, complete with output `"All harnesses up to date as of YYYY-MM-DD"` (no PR).\n6. Branch: `harness-upgrade/weekly-YYYY-MM-DD` (e.g. `harness-upgrade/weekly-2026-06-03`).\n7. Edit `Dockerfile.worker` — bump every outdated ARG. Also update `package.json`:\n - Codex: bump direct `@openai/codex` to match `CODEX_VERSION`.\n - Pi family: bump `@earendil-works/pi-agent-core`, `@earendil-works/pi-ai`, and `@earendil-works/pi-coding-agent` to the same new version as `PI_CODING_AGENT_VERSION`.\n - Opencode: bump `OPENCODE_SDK_VERSION` and `@opencode-ai/sdk` to match `OPENCODE_VERSION`.\n Then re-run `bun install` so `bun.lock` updates.\n8. Local verification (all must pass before pushing):\n ```bash\n bun install --frozen-lockfile\n bun run lint\n bun run tsc:check\n bun test\n bash scripts/check-db-boundary.sh\n ```\n For Codex bumps: also run `bash scripts/check-codex-default-model.sh`.\n Note: do NOT run `docker build -f Dockerfile.worker .` locally — the runner lacks docker. CI\'s `docker-worker-build` job is the acceptance gate.\n9. If any local check fails, apply the **partial-bundle fallback** before giving up — one harness must never block the others:\n **BASELINE FIRST — do this before ANY isolation work.** A red gate does NOT mean the bumps broke anything. Re-run the EXACT failing command on a pristine `origin/main` worktree with zero bumps applied (`git worktree add /tmp/hb-baseline origin/main && cd /tmp/hb-baseline && bun install --frozen-lockfile`) and compare. If the SAME checks fail with the SAME assertions and the same pass/skip/fail totals, the failure is **PRE-EXISTING and unrelated to the bumps** ⇒ it does NOT block this PR, and you must NOT attempt isolation for it. Proceed to step 10, open the PR, and add a `## Pre-existing failures (also fail on origin/main)` section quoting the verbatim error plus both totals (baseline vs branch) so the reviewer can see they match. Only a failure that is RED on your branch and GREEN on baseline was caused by a bump — apply a–d below to that failure ONLY. A gate that is red on origin/main is never a reason to skip the weekly bump.\n a. Isolate which harness\'s bump caused it. The error usually names the package; if not, revert bumps one at a time until the step-8 gate passes.\n b. Revert ONLY that harness — its `Dockerfile.worker` ARG **and** its `package.json` pins (respect the family/sync requirements in the table above) — then re-run `bun install` and the FULL step-8 gate.\n c. Gate green ⇒ open the PR with the remaining harnesses and add a `## Held back` section naming the excluded harness, current → attempted version, and the VERBATIM error. Name it in your `store-progress` output too.\n d. Gate still red with that harness reverted, OR the failure cannot be isolated to one harness ⇒ do NOT open a PR; report via `store-progress` with `failureReason`.\n Migrating an upstream API break (a removed option, a renamed export, a moved type) is still OUT OF SCOPE for this routine — hold that harness back per (c) rather than changing code here.\n10. Push the branch and open a PR:\n - Title: `chore(docker): bump harnesses (weekly YYYY-MM-DD)` — or list the bumps, e.g. `chore(docker): bump claude-code, pi, opencode (weekly YYYY-MM-DD)`.\n - Body: include a table of current → new versions for every harness bumped, link to each upstream changelog (e.g. https://github.com/anthropics/claude-code/releases/tag/v<X.Y.Z>), and the local verification output (or "all green").\n - Add `{{PR_REVIEWER}}` as a reviewer.\n - DO NOT merge — {{PR_REVIEWER}} reviews and merges.\n11. Verify CI on the PR — wait for the merge-gate workflow to start, confirm at least the `docker-worker-build` job is queued/passing. If CI fails, comment on the PR with the failure log and leave the branch for human review.\n\n## Constraints\n\n- **ONE bundled PR per run.** Bump every outdated harness in the same PR — do not stagger one-per-run. The ONLY permitted exclusion is a harness held back by the step-9 partial-bundle fallback, which must be declared in the PR body.\n- **No `--no-verify`, no force pushes.**\n- If a harness has a major-version bump (e.g. 2.x → 3.x), still bundle it but flag clearly in the PR description that this is a major bump and may need extra review.\n- Pi family-pin: all three pi packages MUST be the same version. If they drift in the lockfile, fix the drift in the same PR.\n\n## Sibling-schedule coordination\nThis schedule has a sibling — `weekly-harness-upgrade-check-wed` (Wednesday 05:00 BCN). If a sibling-opened PR is OPEN and `< 48h` old, step 4 skips. This is the dedup gate. Don\'t change branch-naming heuristics in a way that breaks the dedup.\n\n## Output\n\n`store-progress` with `status: "completed"` and `output` containing:\n- The PR URL (if one was opened) + the table of harnesses bumped, OR\n- "No-op: all harnesses up to date as of YYYY-MM-DD" with the version table, OR\n- "Skipped: sibling harness upgrade PR already open" with the existing PR URL.\n';
|
|
16491
16498
|
|
|
16492
16499
|
// src/be/seed/schedules-seeder.ts
|
|
16493
|
-
|
|
16500
|
+
init_db2();
|
|
16494
16501
|
|
|
16495
16502
|
// src/be/seed/automation-toggle.ts
|
|
16496
16503
|
var SEED_AUTOMATIONS_ENABLED_ENV = "SEED_AUTOMATIONS_ENABLED";
|
|
@@ -16936,7 +16943,7 @@ The \`maxIterations\` parameter is declarative: the reviewer signals PASS when d
|
|
|
16936
16943
|
`;
|
|
16937
16944
|
|
|
16938
16945
|
// src/be/seed/workflows-seeder.ts
|
|
16939
|
-
|
|
16946
|
+
init_db2();
|
|
16940
16947
|
var asText2 = (value) => value;
|
|
16941
16948
|
var BUILT_IN_WORKFLOW_SOURCES = [
|
|
16942
16949
|
{ config: asText2(config_default64), content: asText2(content_default64) },
|
|
@@ -4,70 +4,66 @@ import {
|
|
|
4
4
|
runScheduleNow,
|
|
5
5
|
startScheduler,
|
|
6
6
|
stopScheduler
|
|
7
|
-
} from "./cli-
|
|
8
|
-
import"./cli-
|
|
9
|
-
import"./cli-
|
|
7
|
+
} from "./cli-wydz3feg.js";
|
|
8
|
+
import"./cli-xvc3q9br.js";
|
|
9
|
+
import"./cli-mv2520nm.js";
|
|
10
10
|
import"./cli-w0bwte75.js";
|
|
11
11
|
import"./cli-re8z5p8p.js";
|
|
12
|
-
import"./cli-
|
|
13
|
-
import"./cli-
|
|
14
|
-
import"./cli-
|
|
15
|
-
import"./cli-
|
|
12
|
+
import"./cli-tx2zvn23.js";
|
|
13
|
+
import"./cli-p8rt8spp.js";
|
|
14
|
+
import"./cli-v1pwxreq.js";
|
|
15
|
+
import"./cli-577bxkf6.js";
|
|
16
16
|
import"./cli-epan13p1.js";
|
|
17
17
|
import"./cli-f14fvzag.js";
|
|
18
|
+
import"./cli-7mhy3ths.js";
|
|
19
|
+
import"./cli-v1w7pbd8.js";
|
|
18
20
|
import"./cli-zt3w1cn1.js";
|
|
19
|
-
import"./cli-
|
|
20
|
-
import"./cli-ftry7975.js";
|
|
21
|
-
import"./cli-3dpj7atn.js";
|
|
22
|
-
import"./cli-2x0e561b.js";
|
|
23
|
-
import"./cli-pkke6geq.js";
|
|
21
|
+
import"./cli-km4x66j0.js";
|
|
24
22
|
import"./cli-rb9m6rpe.js";
|
|
23
|
+
import"./cli-2x0e561b.js";
|
|
24
|
+
import"./cli-kw0jcfje.js";
|
|
25
25
|
import"./cli-mzfth0bp.js";
|
|
26
|
-
import"./cli-jqt9hrnz.js";
|
|
27
|
-
import"./cli-yhmwmv0g.js";
|
|
28
|
-
import"./cli-wfajtmf7.js";
|
|
29
|
-
import"./cli-a87b04k8.js";
|
|
30
26
|
import"./cli-fad8m16k.js";
|
|
31
27
|
import"./cli-bsakbbkm.js";
|
|
32
28
|
import"./cli-zxg80zs9.js";
|
|
33
29
|
import"./cli-51tf7ac3.js";
|
|
34
30
|
import"./cli-ydt3zkwv.js";
|
|
35
|
-
import"./cli-
|
|
31
|
+
import"./cli-c8r99akr.js";
|
|
36
32
|
import"./cli-q51yprfq.js";
|
|
37
33
|
import"./cli-3er6gcsn.js";
|
|
38
|
-
import"./cli-cvk6yzw5.js";
|
|
39
34
|
import"./cli-yatxqynm.js";
|
|
40
|
-
import"./cli-
|
|
41
|
-
import"./cli-
|
|
35
|
+
import"./cli-mn8qkd8v.js";
|
|
36
|
+
import"./cli-g7k7zbcz.js";
|
|
42
37
|
import"./cli-btbzvq95.js";
|
|
43
38
|
import"./cli-1m2e086m.js";
|
|
44
|
-
import"./cli-
|
|
39
|
+
import"./cli-wnb9b2g3.js";
|
|
45
40
|
import"./cli-bd957dgb.js";
|
|
46
41
|
import"./cli-pzxba7gw.js";
|
|
47
|
-
import"./cli-
|
|
42
|
+
import"./cli-ypgba1a8.js";
|
|
48
43
|
import"./cli-rfphkzh5.js";
|
|
49
|
-
import"./cli-
|
|
50
|
-
import"./cli-9s3h836g.js";
|
|
44
|
+
import"./cli-mkdsy1nq.js";
|
|
51
45
|
import"./cli-3qhyh31j.js";
|
|
52
|
-
import"./cli-
|
|
46
|
+
import"./cli-xvdgasgy.js";
|
|
47
|
+
import"./cli-mxvnnv5q.js";
|
|
53
48
|
import"./cli-7mm2r1kp.js";
|
|
54
49
|
import"./cli-g5erf0zt.js";
|
|
55
50
|
import"./cli-dmtrxqhg.js";
|
|
56
|
-
import"./cli-tadfgd0t.js";
|
|
57
|
-
import"./cli-ywybs5as.js";
|
|
58
|
-
import"./cli-gd4favx9.js";
|
|
59
51
|
import"./cli-agamgm0p.js";
|
|
60
52
|
import"./cli-5c2j5yvx.js";
|
|
61
53
|
import"./cli-1a2j50m0.js";
|
|
54
|
+
import"./cli-tadfgd0t.js";
|
|
55
|
+
import"./cli-ywybs5as.js";
|
|
62
56
|
import"./cli-f9w1semm.js";
|
|
57
|
+
import"./cli-a35hzdve.js";
|
|
58
|
+
import"./cli-gd4favx9.js";
|
|
63
59
|
import"./cli-ej6gbxfb.js";
|
|
64
|
-
import"./cli-
|
|
60
|
+
import"./cli-014vns2y.js";
|
|
65
61
|
import"./cli-sd0mxa3c.js";
|
|
66
62
|
import"./cli-w5e1d1vv.js";
|
|
67
|
-
import"./cli-
|
|
68
|
-
import"./cli-
|
|
63
|
+
import"./cli-ymmc1zxg.js";
|
|
64
|
+
import"./cli-mb75wpxf.js";
|
|
69
65
|
import"./cli-zf8jjwex.js";
|
|
70
|
-
import"./cli-
|
|
66
|
+
import"./cli-wt7ccy4r.js";
|
|
71
67
|
import"./cli-bc05qbss.js";
|
|
72
68
|
export {
|
|
73
69
|
calculateNextRun,
|