@bongos/core 1.19.875 → 1.19.877

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.
Files changed (48) hide show
  1. package/.bongos-core.json +103 -43
  2. package/.gitattributes +6 -2
  3. package/clients/bongos-client/README.md +1 -1
  4. package/clients/bongos-client/bongos-client.global.js +4 -0
  5. package/clients/bongos-client/index.cjs +4 -0
  6. package/clients/bongos-client/index.d.ts +7 -0
  7. package/clients/bongos-client/index.mjs +4 -0
  8. package/docs/adr/0307-autobongos-a-deterministic-supervisor-and-agentic-workers.md +12 -1
  9. package/docs/api/openapi.json +149 -3
  10. package/docs/api-reference.md +4 -2
  11. package/docs/copy-inventory.md +7 -6
  12. package/docs/copy-registry.json +16 -7
  13. package/docs/module-api-changelog.md +4 -0
  14. package/docs/recipes/autobongos-windows-host.md +138 -0
  15. package/docs/recipes/instance-deploy.md +29 -3
  16. package/modules/autonomy/cadence.js +276 -0
  17. package/modules/autonomy/db.js +47 -0
  18. package/modules/autonomy/migrations/autonomy_002_runner_heartbeat.sql +93 -0
  19. package/modules/autonomy/routes/autonomy.js +69 -0
  20. package/modules/autonomy/runner-health.js +97 -0
  21. package/modules/dev-box/app/src/vendor/bongos-client.cjs +4 -0
  22. package/modules/hall-ui/public/gate.html +4 -1
  23. package/modules/hall-ui/public/gate.js +51 -2
  24. package/modules/security/tests/artifact_scan.mjs +32 -9
  25. package/modules/security/tests/mirror.mjs +26 -4
  26. package/modules/security/tests/sanitize_rebuild.mjs +25 -4
  27. package/package-lock.json +2 -2
  28. package/package.json +1 -1
  29. package/scripts/gds/autobongos-run.js +368 -11
  30. package/scripts/gds/autobongos-service.cmd +38 -0
  31. package/scripts/gds/autobongos-service.ps1 +129 -0
  32. package/scripts/gds/deploy-main-audit-gate.sh +90 -0
  33. package/scripts/gds/main-audit.js +26 -4
  34. package/scripts/gds/run-unit-tests.js +46 -5
  35. package/src/module-api.js +1 -1
  36. package/tests/autobongos_cadence.mjs +602 -0
  37. package/tests/autonomy_runner_health.mjs +135 -0
  38. package/tests/bump_version.mjs +12 -1
  39. package/tests/cli_package.mjs +11 -1
  40. package/tests/deploy_audit_gate.mjs +154 -0
  41. package/tests/deploy_divergence_line.mjs +47 -1
  42. package/tests/helpers.mjs +61 -0
  43. package/tests/main_audit_db_roster.mjs +97 -0
  44. package/tests/publish_watch.mjs +9 -0
  45. package/tests/setup_device_flow_fallback.mjs +2 -1
  46. package/tests/skip_is_not_pass.mjs +121 -0
  47. package/tests/tool_scan_engine.mjs +25 -4
  48. package/tests/unit_runner_teardown_abort.mjs +37 -0
package/.bongos-core.json CHANGED
@@ -2,22 +2,22 @@
2
2
  "artifact": "bongos-core",
3
3
  "manifest_schema": 1,
4
4
  "generator": "scripts/gds/package-core.js",
5
- "core_version": "1.19.875",
6
- "core_contract": "1.19.875",
7
- "source_commit": "d1782be0c7671dd7dd82c4f354a77d231fb274be",
5
+ "core_version": "1.19.877",
6
+ "core_contract": "1.19.877",
7
+ "source_commit": "7cc46fa08c1a00e2194ab40bddea2dce575e2d38",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-09-19T04:13:30.837Z",
9
+ "built_at": "2026-09-19T10:46:37.399Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
- "docs_redacted": 500,
12
+ "docs_redacted": 501,
13
13
  "agent_docs_stubbed": 26,
14
- "functional_verbatim": 2305,
14
+ "functional_verbatim": 2316,
15
15
  "rules": 3,
16
16
  "gate_literals": 3,
17
17
  "gate": "passed"
18
18
  },
19
- "file_count": 2831,
20
- "tree_sha256": "1217f7ece32a73d51483fbdd8aabfd37cb8021c9506bca34d253378aedbdd9b3",
19
+ "file_count": 2843,
20
+ "tree_sha256": "f1b43ea830cc3e9e55d49cdfc2da4528c9388b558fca838b1e54002de9e00f9d",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/ask-for-help/SKILL.md",
@@ -302,7 +302,7 @@
302
302
  {
303
303
  "path": ".gitattributes",
304
304
  "mode": "0000644",
305
- "sha256": "dace360d1e995ce2a7401a275a7ed68f6ebb877da948f7cf5ff710a9ce8c8bfc"
305
+ "sha256": "9277b2605ca5cc80b31f25702eef9b23e9d9a8a26f0de3693b88f18f5660a229"
306
306
  },
307
307
  {
308
308
  "path": "CLAUDE.md",
@@ -347,12 +347,12 @@
347
347
  {
348
348
  "path": "clients/bongos-client/README.md",
349
349
  "mode": "0000644",
350
- "sha256": "54cdd993cbae28a4dbd1aab84d565905f672b4e1095cfde9212de02ae30e367a"
350
+ "sha256": "b77c75902ed2aaa437f92d23849154fc61b4e4a6c9c3536466b6c54b5da6f396"
351
351
  },
352
352
  {
353
353
  "path": "clients/bongos-client/bongos-client.global.js",
354
354
  "mode": "0000644",
355
- "sha256": "b344141a606defff7530f0546e3fc741c5f9685cd6a8d20f6c64f8de1633bc87"
355
+ "sha256": "146b0f072159cc2307fb0ea855e49664bec120f0a181a54253941cacd1beea7d"
356
356
  },
357
357
  {
358
358
  "path": "clients/bongos-client/examples/hello-world.mjs",
@@ -362,17 +362,17 @@
362
362
  {
363
363
  "path": "clients/bongos-client/index.cjs",
364
364
  "mode": "0000644",
365
- "sha256": "46c9fb18c486f413cda2d73a4dee92c73d6ca15be08109b8dd5986ede3b23a4b"
365
+ "sha256": "885e0606f436873e274f6ec51e93697f3854115874c982299ef8275621629f8e"
366
366
  },
367
367
  {
368
368
  "path": "clients/bongos-client/index.d.ts",
369
369
  "mode": "0000644",
370
- "sha256": "cc54c6e360985bfbcf4a00206f16989affd706177cfe3715c77ccd91c3c9d1d9"
370
+ "sha256": "b96f7c4b0cebc844c5fab5aa61420f85d9681afd98824aeda0179de871d5d3b9"
371
371
  },
372
372
  {
373
373
  "path": "clients/bongos-client/index.mjs",
374
374
  "mode": "0000644",
375
- "sha256": "5bec4eae4564aba7087341014a4690d0717252300cd297ae97b9108102aaabd3"
375
+ "sha256": "156a725169e5e310e69ec6a7df1bd0d9dec768d693cb8aa581710f59def69a78"
376
376
  },
377
377
  {
378
378
  "path": "clients/bongos-client/package.json",
@@ -2027,7 +2027,7 @@
2027
2027
  {
2028
2028
  "path": "docs/adr/0307-autobongos-a-deterministic-supervisor-and-agentic-workers.md",
2029
2029
  "mode": "0000644",
2030
- "sha256": "c3509e08e96fc65e2e2eb0e6306d79c06d2302652efad47b60107bcf4c0078a8"
2030
+ "sha256": "d99ddd1b8197dffed75669f82bcbae93d7ea81d4a8a73bf78c1472e7f9cd5e50"
2031
2031
  },
2032
2032
  {
2033
2033
  "path": "docs/adr/0308-an-eleventh-working-area.md",
@@ -2042,12 +2042,12 @@
2042
2042
  {
2043
2043
  "path": "docs/api-reference.md",
2044
2044
  "mode": "0000644",
2045
- "sha256": "505ce889291a3dddbe66c2d375b7f0a631531b741ebe6fdf5d960af3b42173b3"
2045
+ "sha256": "eb881abdd3d46576e6e2ca2993130c897812497b70788449fbfef78ceed51d23"
2046
2046
  },
2047
2047
  {
2048
2048
  "path": "docs/api/openapi.json",
2049
2049
  "mode": "0000644",
2050
- "sha256": "0b47552a99357a93cb13ea0f546a61b3850c3a8e8a324d243cced32813dfa619"
2050
+ "sha256": "93e072990ee62849e1b8a05e7e006a6327bc749cc5a42b873f6fa339c85297d5"
2051
2051
  },
2052
2052
  {
2053
2053
  "path": "docs/architecture.md",
@@ -2072,12 +2072,12 @@
2072
2072
  {
2073
2073
  "path": "docs/copy-inventory.md",
2074
2074
  "mode": "0000644",
2075
- "sha256": "c923e66a5b77c20784cfb0e50d8bba2bb41ec38895a029c2bbb69a829c3e6eb3"
2075
+ "sha256": "4f2a818e2c3ad45867e473acda56f0f32eb5932f30c657f75bea80e5c39435a1"
2076
2076
  },
2077
2077
  {
2078
2078
  "path": "docs/copy-registry.json",
2079
2079
  "mode": "0000644",
2080
- "sha256": "864bbc41a5c93bf63aa529dd396d8784a56d65975d6ebd7e15edab51e3c5093f"
2080
+ "sha256": "1b075508f88381d932d2eb9d4fb1e394ea20b590071b11b4f24e4b313c411aef"
2081
2081
  },
2082
2082
  {
2083
2083
  "path": "docs/design/apex-pass-2-direction.md",
@@ -2602,7 +2602,7 @@
2602
2602
  {
2603
2603
  "path": "docs/module-api-changelog.md",
2604
2604
  "mode": "0000644",
2605
- "sha256": "0d33c3fc850860d87fcb70790d850de2a2be38635fb152dd7d021c6176f67292"
2605
+ "sha256": "d7e2217a982356c43047a8f416106e885a22862d1bc125ea59545fc995f9b318"
2606
2606
  },
2607
2607
  {
2608
2608
  "path": "docs/modules-contract.md",
@@ -2704,6 +2704,11 @@
2704
2704
  "mode": "0000644",
2705
2705
  "sha256": "df362cf57fd748cca551a0c1a7048a678d5e833490dc5d2ab5d6ce1d33595f33"
2706
2706
  },
2707
+ {
2708
+ "path": "docs/recipes/autobongos-windows-host.md",
2709
+ "mode": "0000644",
2710
+ "sha256": "94b0b2442708fec6f62fe98b41dc5131c114833b66c487a0056974265cc13db6"
2711
+ },
2707
2712
  {
2708
2713
  "path": "docs/recipes/bongos-cli-release.md",
2709
2714
  "mode": "0000644",
@@ -2752,7 +2757,7 @@
2752
2757
  {
2753
2758
  "path": "docs/recipes/instance-deploy.md",
2754
2759
  "mode": "0000644",
2755
- "sha256": "40241530c2c054753ab0bbc9f49b66dece309e06dd552ae2313accce848b5e36"
2760
+ "sha256": "78c600567a08af14b8c0fd9b3d803f81daa95d2fd5dfb39fcd02c9bd40cdec93"
2756
2761
  },
2757
2762
  {
2758
2763
  "path": "docs/recipes/instance-first-run.md",
@@ -3784,10 +3789,15 @@
3784
3789
  "mode": "0000644",
3785
3790
  "sha256": "7cb9dac9cb87b679e1ae50e4112b3a7928a38ebb9902c8947a74d17bec4d9009"
3786
3791
  },
3792
+ {
3793
+ "path": "modules/autonomy/cadence.js",
3794
+ "mode": "0000644",
3795
+ "sha256": "7fed6c42e312e3a8d0254699954c2a1af483d2abf9a1baeceea6f8e61a9560ab"
3796
+ },
3787
3797
  {
3788
3798
  "path": "modules/autonomy/db.js",
3789
3799
  "mode": "0000644",
3790
- "sha256": "147b12a8b268a62456d8d8f685f067ba36884d28e72aa9d97e096aba4dd58584"
3800
+ "sha256": "722b9f3ddbd59fda3e92ae6c6fb0400eb3eadc343f0a3f84369d69bea72b7d65"
3791
3801
  },
3792
3802
  {
3793
3803
  "path": "modules/autonomy/fence.js",
@@ -3804,6 +3814,11 @@
3804
3814
  "mode": "0000644",
3805
3815
  "sha256": "23d98c938efdeb221bdcaef1c1ed3f09ac0f389ad6fb38fc221450b34158b5ad"
3806
3816
  },
3817
+ {
3818
+ "path": "modules/autonomy/migrations/autonomy_002_runner_heartbeat.sql",
3819
+ "mode": "0000644",
3820
+ "sha256": "ea1224fcf94aa10e5ee1c77df409e52210c145f71913853b72e7f142d943ff55"
3821
+ },
3807
3822
  {
3808
3823
  "path": "modules/autonomy/module.json",
3809
3824
  "mode": "0000644",
@@ -3817,7 +3832,12 @@
3817
3832
  {
3818
3833
  "path": "modules/autonomy/routes/autonomy.js",
3819
3834
  "mode": "0000644",
3820
- "sha256": "abb70f760ab019c4ad8f1962a2700f3801c71e3dd86b5124b02900e1812d1e04"
3835
+ "sha256": "e119e149565972008d42e986f82b4fcbff22d74301222e8772d63de16e936abf"
3836
+ },
3837
+ {
3838
+ "path": "modules/autonomy/runner-health.js",
3839
+ "mode": "0000644",
3840
+ "sha256": "3752cff6742e0d72b83697948e14547afb2b7b158e5fef57bfa75cf68ce525cf"
3821
3841
  },
3822
3842
  {
3823
3843
  "path": "modules/builder-settings/CLAUDE.md",
@@ -4172,7 +4192,7 @@
4172
4192
  {
4173
4193
  "path": "modules/dev-box/app/src/vendor/bongos-client.cjs",
4174
4194
  "mode": "0000644",
4175
- "sha256": "46c9fb18c486f413cda2d73a4dee92c73d6ca15be08109b8dd5986ede3b23a4b"
4195
+ "sha256": "885e0606f436873e274f6ec51e93697f3854115874c982299ef8275621629f8e"
4176
4196
  },
4177
4197
  {
4178
4198
  "path": "modules/dev-box/app/test/unit.mjs",
@@ -4952,12 +4972,12 @@
4952
4972
  {
4953
4973
  "path": "modules/hall-ui/public/gate.html",
4954
4974
  "mode": "0000644",
4955
- "sha256": "88f8a79743e7fc40651ab64306c5dec5d52c8a0886d4fd4515227ad89ca837e4"
4975
+ "sha256": "0b07c5a358d50b8537e303fc8fc84a2ae5100c09df7af1e15b96caa5a677aa76"
4956
4976
  },
4957
4977
  {
4958
4978
  "path": "modules/hall-ui/public/gate.js",
4959
4979
  "mode": "0000644",
4960
- "sha256": "1445bece8bebdcc43174ee7873729a843d4f60fdd617226d936783e243763754"
4980
+ "sha256": "0a5f030cce0d8820a4c3eb943b7a6237dab3be8800b50a30d4059b235f9f851b"
4961
4981
  },
4962
4982
  {
4963
4983
  "path": "modules/hall-ui/public/gate.states.json",
@@ -7352,7 +7372,7 @@
7352
7372
  {
7353
7373
  "path": "modules/security/tests/artifact_scan.mjs",
7354
7374
  "mode": "0000644",
7355
- "sha256": "dbdc9f017a2a6dff3379c1a0acb08e023278cfb382d91b20a4ec0b5e5f8229b0"
7375
+ "sha256": "ee957538ecc1b0639d631d74bfee043a6c7b8f169bb90f807d99038e84943cb3"
7356
7376
  },
7357
7377
  {
7358
7378
  "path": "modules/security/tests/floor.mjs",
@@ -7362,12 +7382,12 @@
7362
7382
  {
7363
7383
  "path": "modules/security/tests/mirror.mjs",
7364
7384
  "mode": "0000644",
7365
- "sha256": "fbded0d3f137a62c9f6255297b2aa5752e0dc2a6175ce0e344d461cf59bc53b1"
7385
+ "sha256": "88415123848cc3f9a856104ca4a53db2fd73cdecaa98f8456e3e8369a050f194"
7366
7386
  },
7367
7387
  {
7368
7388
  "path": "modules/security/tests/sanitize_rebuild.mjs",
7369
7389
  "mode": "0000644",
7370
- "sha256": "4af88247bed3dcb3c12370e48380625871a9b50a0b430a6da34db0ce6d6c8aca"
7390
+ "sha256": "2cec1a9277878d2973838a4ae5dccbd3927a1bd8cfe227227aec01ea29b2ca5e"
7371
7391
  },
7372
7392
  {
7373
7393
  "path": "modules/security/tests/scan_route_schema.mjs",
@@ -7947,12 +7967,12 @@
7947
7967
  {
7948
7968
  "path": "package-lock.json",
7949
7969
  "mode": "0000644",
7950
- "sha256": "f5357bd73be9ea55bd37f72b3510637906159d36638a1ba23366fda56d93da6e"
7970
+ "sha256": "4e8f5415cb5201d24ca7114d11e21d15b7042e7c6a846fed8cf10e35971305ad"
7951
7971
  },
7952
7972
  {
7953
7973
  "path": "package.json",
7954
7974
  "mode": "0000644",
7955
- "sha256": "c4516d41236cc62820827c5fed694403aaf255e0e8ad566041ee6397e9eff429"
7975
+ "sha256": "c616356037d3d48c3d6a49a28c89b8e7e38e13be5c9ea8a38899f51efc55a4b9"
7956
7976
  },
7957
7977
  {
7958
7978
  "path": "public-docs/index.html",
@@ -8117,7 +8137,17 @@
8117
8137
  {
8118
8138
  "path": "scripts/gds/autobongos-run.js",
8119
8139
  "mode": "0000644",
8120
- "sha256": "6b91b2f34173d0c8bf516f074a7d9f7197c2a69fafcae949f1f2d2e57e353df3"
8140
+ "sha256": "da0047f65186ea6d049799b62aaf60acc2ec1a3d4fe15875dadbdc493512d205"
8141
+ },
8142
+ {
8143
+ "path": "scripts/gds/autobongos-service.cmd",
8144
+ "mode": "0000644",
8145
+ "sha256": "62ec55c715e3af35fd3394cabcfb638df59eb0562ae5da89a3ac02fd2d97f97f"
8146
+ },
8147
+ {
8148
+ "path": "scripts/gds/autobongos-service.ps1",
8149
+ "mode": "0000644",
8150
+ "sha256": "60af163d90c3f30d6723678eb64d6ed259be5575230ee43adaebce9537a4fe9a"
8121
8151
  },
8122
8152
  {
8123
8153
  "path": "scripts/gds/autobongos-verify.js",
@@ -8379,6 +8409,11 @@
8379
8409
  "mode": "0000644",
8380
8410
  "sha256": "39879d5d26a325529620ab4fd180f133643d0e4c2a5a9ef92f8ee347ad0ba0d7"
8381
8411
  },
8412
+ {
8413
+ "path": "scripts/gds/deploy-main-audit-gate.sh",
8414
+ "mode": "0000755",
8415
+ "sha256": "245ba28478a3480b1039bab35921bedd86c44152fbd36612998dc4eb78642ccf"
8416
+ },
8382
8417
  {
8383
8418
  "path": "scripts/gds/design-sync.js",
8384
8419
  "mode": "0000644",
@@ -8742,7 +8777,7 @@
8742
8777
  {
8743
8778
  "path": "scripts/gds/main-audit.js",
8744
8779
  "mode": "0000644",
8745
- "sha256": "df5385f3929161eab1d74657f5d916650b4c05e4737f0a5e906e7d66a9c06489"
8780
+ "sha256": "abc4ee56e31c32e6b2d62dd41bc0b4c62ed44e362a6b9ed7090d9d8fd0e409b5"
8746
8781
  },
8747
8782
  {
8748
8783
  "path": "scripts/gds/me.js",
@@ -9037,7 +9072,7 @@
9037
9072
  {
9038
9073
  "path": "scripts/gds/run-unit-tests.js",
9039
9074
  "mode": "0000644",
9040
- "sha256": "f55da8bbc3fef912cfa99935d35e4c6da1c65a0db52aa81a64c77c520ab60e47"
9075
+ "sha256": "8227fe5256b530d22192cd86f3624d52cc1dc34ac82099a8bb9e3d6a28482eb9"
9041
9076
  },
9042
9077
  {
9043
9078
  "path": "scripts/gds/runner-drift.js",
@@ -9937,7 +9972,7 @@
9937
9972
  {
9938
9973
  "path": "src/module-api.js",
9939
9974
  "mode": "0000644",
9940
- "sha256": "30eab36a9a6432777dcf0df87512a6d06b40eb03ded24b3119a8ceb231e0cc52"
9975
+ "sha256": "7dbc21b0402be4d9acc429c0cd1f9fc5ba33ea4f7ab0650d89dd078d7ffb82bb"
9941
9976
  },
9942
9977
  {
9943
9978
  "path": "src/module-loader/catalog.js",
@@ -10339,6 +10374,11 @@
10339
10374
  "mode": "0000644",
10340
10375
  "sha256": "d7ac18d14e8e9e5e7b9e913a76953fe69bfefea4912e77ca30b285647bfcfca8"
10341
10376
  },
10377
+ {
10378
+ "path": "tests/autobongos_cadence.mjs",
10379
+ "mode": "0000644",
10380
+ "sha256": "5444f426f49da327087efbc85848c0a15812438341d3c9cb43d83dc424e2d869"
10381
+ },
10342
10382
  {
10343
10383
  "path": "tests/autobongos_fence.mjs",
10344
10384
  "mode": "0000644",
@@ -10369,6 +10409,11 @@
10369
10409
  "mode": "0000644",
10370
10410
  "sha256": "94927dcf8822d01504e57821e08b92fe28550056ddfd75f98db3985a5dab0805"
10371
10411
  },
10412
+ {
10413
+ "path": "tests/autonomy_runner_health.mjs",
10414
+ "mode": "0000644",
10415
+ "sha256": "e5dc6ec6261a18113876f4e362e8cb801d78f5266e077f0b8a27eeda70fe800b"
10416
+ },
10372
10417
  {
10373
10418
  "path": "tests/backfill_sessions.mjs",
10374
10419
  "mode": "0000644",
@@ -10607,7 +10652,7 @@
10607
10652
  {
10608
10653
  "path": "tests/bump_version.mjs",
10609
10654
  "mode": "0000644",
10610
- "sha256": "6540646400fb4464ee823b841f908f8577d170f60c4b4928fbbfc2a3746b76d4"
10655
+ "sha256": "5073519bc3ba0fdf68927dd3800572c7dc9f652d6855991787e846a932cf1a3d"
10611
10656
  },
10612
10657
  {
10613
10658
  "path": "tests/canonical_profile_url.mjs",
@@ -10727,7 +10772,7 @@
10727
10772
  {
10728
10773
  "path": "tests/cli_package.mjs",
10729
10774
  "mode": "0000644",
10730
- "sha256": "9c40324ec0faf739c6b78e428b43cd0c3f01a3f70bb9ded78b3cf33657098163"
10775
+ "sha256": "e16f3fd835e440bad8a24ea1807663f08709bfe21b65cc25772b7d707bbba540"
10731
10776
  },
10732
10777
  {
10733
10778
  "path": "tests/cli_sessions.mjs",
@@ -10959,10 +11004,15 @@
10959
11004
  "mode": "0000644",
10960
11005
  "sha256": "9d16748bfadb1b13969613bd7a43bed42ea3e1bdcc7254ab26fba14ea8b4c036"
10961
11006
  },
11007
+ {
11008
+ "path": "tests/deploy_audit_gate.mjs",
11009
+ "mode": "0000644",
11010
+ "sha256": "183a355d451ec850c481dc5b17674e78b81ad9a2e009298a801fde7f4be231ab"
11011
+ },
10962
11012
  {
10963
11013
  "path": "tests/deploy_divergence_line.mjs",
10964
11014
  "mode": "0000644",
10965
- "sha256": "c79be1df93ccfb420451ee7d55b58e9f4bcb1d08903824e62ed776d4ed058ac7"
11015
+ "sha256": "a14fe18d1041a3b3f4b2c302225329aab4dedeecee359572fd62655cca9daac6"
10966
11016
  },
10967
11017
  {
10968
11018
  "path": "tests/deploy_instance.mjs",
@@ -11882,7 +11932,7 @@
11882
11932
  {
11883
11933
  "path": "tests/helpers.mjs",
11884
11934
  "mode": "0000644",
11885
- "sha256": "f84cb192bfa60bd86d925c56e67b6521bf0c67a19c8359dd02c3bf8ea8c83b0e"
11935
+ "sha256": "d90ec6d640f3a9a389169180d4a852c85e7c3a5336900f93b871673681b8718a"
11886
11936
  },
11887
11937
  {
11888
11938
  "path": "tests/hierarchy-config.mjs",
@@ -12284,6 +12334,11 @@
12284
12334
  "mode": "0000644",
12285
12335
  "sha256": "eff2ce96889306f4898686c3648d302f54fff5f137ee41ddf543866fdf2f807d"
12286
12336
  },
12337
+ {
12338
+ "path": "tests/main_audit_db_roster.mjs",
12339
+ "mode": "0000644",
12340
+ "sha256": "e7d7420279a2c2264268544552423406006a0e1ed3accf680ba814161cdb0e41"
12341
+ },
12287
12342
  {
12288
12343
  "path": "tests/main_worktree_busy_reason.mjs",
12289
12344
  "mode": "0000644",
@@ -13057,7 +13112,7 @@
13057
13112
  {
13058
13113
  "path": "tests/publish_watch.mjs",
13059
13114
  "mode": "0000644",
13060
- "sha256": "91ada5b4bf9b22ff8cefb0508be34f5d006bd223c825c73e5bbc9812411a4253"
13115
+ "sha256": "5e2fb1f403e9a60fdcf037eca611296909a8e1c5f2ed404d7623f51266a4f174"
13061
13116
  },
13062
13117
  {
13063
13118
  "path": "tests/push_path_brief.mjs",
@@ -13472,7 +13527,7 @@
13472
13527
  {
13473
13528
  "path": "tests/setup_device_flow_fallback.mjs",
13474
13529
  "mode": "0000644",
13475
- "sha256": "bbb11a18a38eb7e4c697245928b0de0f34b2a6d36d45812fe0524ba8dc8bc7c2"
13530
+ "sha256": "ec3b12b575cfa3aeae48fb5c9044fe2738e230b5a2007166a7fc24a3ca7fb775"
13476
13531
  },
13477
13532
  {
13478
13533
  "path": "tests/setup_smoke.mjs",
@@ -13659,6 +13714,11 @@
13659
13714
  "mode": "0000644",
13660
13715
  "sha256": "b86d0d1e0ffeefa07ebda360b129389a02bbcf05296661d56a610c225098d451"
13661
13716
  },
13717
+ {
13718
+ "path": "tests/skip_is_not_pass.mjs",
13719
+ "mode": "0000644",
13720
+ "sha256": "6258b4a3ad76a1d9139b053535c173760c5b42aa82510541501b6fef5ddd1fe1"
13721
+ },
13662
13722
  {
13663
13723
  "path": "tests/smoke_preflight.mjs",
13664
13724
  "mode": "0000644",
@@ -13957,7 +14017,7 @@
13957
14017
  {
13958
14018
  "path": "tests/tool_scan_engine.mjs",
13959
14019
  "mode": "0000644",
13960
- "sha256": "10a6a41cafcba32406be1aa79e0be1ace1cde2c4163bf0b1a0efd1e5e8f8c403"
14020
+ "sha256": "a0d6e1921069e406071498949c792159cfaefabecddff11ea0eda5359cee549f"
13961
14021
  },
13962
14022
  {
13963
14023
  "path": "tests/touches_overlap.mjs",
@@ -14002,7 +14062,7 @@
14002
14062
  {
14003
14063
  "path": "tests/unit_runner_teardown_abort.mjs",
14004
14064
  "mode": "0000644",
14005
- "sha256": "b10a938bb1b229ba03e9e8ba80b04e6d8f8686d25a2b71e2cafa50eba63a2b21"
14065
+ "sha256": "d7e9a8e184cf17e889dac7a48f96b5e45f00ab787e79414ebf53bff731bd126d"
14006
14066
  },
14007
14067
  {
14008
14068
  "path": "tests/update_channel.mjs",
package/.gitattributes CHANGED
@@ -57,8 +57,12 @@
57
57
  # checkout in place: `git rm --cached -r . && git reset --hard`.
58
58
  *.md text eol=lf
59
59
 
60
- # Future Windows-only wrappers (none today) must be CRLF — cmd.exe/PowerShell
61
- # expect it. Declared up front so a later setup-builder.cmd lands correct.
60
+ # Windows-only wrappers must be CRLF — cmd.exe/PowerShell expect it. Declared up
61
+ # front before there were any; the first two arrived with task 1003905
62
+ # (scripts/gds/autobongos-service.{cmd,ps1}), and they are also kept pure ASCII:
63
+ # Windows PowerShell 5.1 reads a BOM-less file as ANSI rather than UTF-8, and
64
+ # cmd.exe reads a batch file in the OEM codepage, so a stray em-dash renders as
65
+ # mojibake in text the owner is meant to read.
62
66
  *.bat text eol=crlf
63
67
  *.cmd text eol=crlf
64
68
  *.ps1 text eol=crlf
@@ -5,7 +5,7 @@ A **generated**, zero-dependency typed client for the Bongos API — produced fr
5
5
  by hand; it regenerates when the spec changes, so it can never drift from the routes.
6
6
 
7
7
  - API version: **v1** (served at `/api/bongos/v1`)
8
- - 398 operations across 60 resource groups
8
+ - 400 operations across 60 resource groups
9
9
 
10
10
  ## Use it from your project
11
11
 
@@ -181,8 +181,12 @@ function createClient(opts = {}) {
181
181
  postAutonomyFenceGoals: (args) => request("POST", "/autonomy/fence/goals", { hasBody: true }, args),
182
182
  // DELETE /autonomy/fence/goals/{goalId} — rank: archon — DELETE /autonomy/fence/goals/:goalId
183
183
  deleteAutonomyFenceGoalsGoalId: (args) => request("DELETE", "/autonomy/fence/goals/{goalId}", { hasBody: false }, args),
184
+ // POST /autonomy/heartbeat — rank: any-builder — POST /autonomy/heartbeat
185
+ postAutonomyHeartbeat: (args) => request("POST", "/autonomy/heartbeat", { hasBody: true }, args),
184
186
  // GET /autonomy/precheck — rank: metic+archon — GET /autonomy/precheck
185
187
  getAutonomyPrecheck: (args) => request("GET", "/autonomy/precheck", { hasBody: false }, args),
188
+ // GET /autonomy/runners — rank: any-builder — GET /autonomy/runners
189
+ getAutonomyRunners: (args) => request("GET", "/autonomy/runners", { hasBody: false }, args),
186
190
  },
187
191
  "backup": {
188
192
  // GET /backup/status — rank: metic+archon — GET /backup/status
@@ -180,8 +180,12 @@ function createClient(opts = {}) {
180
180
  postAutonomyFenceGoals: (args) => request("POST", "/autonomy/fence/goals", { hasBody: true }, args),
181
181
  // DELETE /autonomy/fence/goals/{goalId} — rank: archon — DELETE /autonomy/fence/goals/:goalId
182
182
  deleteAutonomyFenceGoalsGoalId: (args) => request("DELETE", "/autonomy/fence/goals/{goalId}", { hasBody: false }, args),
183
+ // POST /autonomy/heartbeat — rank: any-builder — POST /autonomy/heartbeat
184
+ postAutonomyHeartbeat: (args) => request("POST", "/autonomy/heartbeat", { hasBody: true }, args),
183
185
  // GET /autonomy/precheck — rank: metic+archon — GET /autonomy/precheck
184
186
  getAutonomyPrecheck: (args) => request("GET", "/autonomy/precheck", { hasBody: false }, args),
187
+ // GET /autonomy/runners — rank: any-builder — GET /autonomy/runners
188
+ getAutonomyRunners: (args) => request("GET", "/autonomy/runners", { hasBody: false }, args),
185
189
  },
186
190
  "backup": {
187
191
  // GET /backup/status — rank: metic+archon — GET /backup/status
@@ -28,6 +28,7 @@ export interface GetArtistGateResponse { ok: boolean; mode: unknown; since: unkn
28
28
  export interface GetAuditLogResponse { rows: unknown; page: unknown }
29
29
  export interface GetAuthAppPairInfoResponse { pair_code: unknown; device_name: unknown; platform: unknown; status: unknown }
30
30
  export interface GetAuthWebAdmissionStatusResponse { admitted: boolean }
31
+ export interface GetAutonomyRunnersResponse { runners: unknown; none: unknown }
31
32
  export interface GetBackupStatusResponse { backup_dir: unknown; db_name: unknown; latest_dump: unknown; stale: unknown; age_hours: unknown; trigger_running: unknown }
32
33
  export interface GetBlockersIdResponse { blocker: unknown }
33
34
  export interface GetBlockersResponse { blockers: unknown; page: unknown }
@@ -230,6 +231,8 @@ export interface PostAuthRevokeResponse { ok: boolean; revoked: unknown }
230
231
  export interface PostAutonomyFenceGoalsRequest { goal_id: StringifiableId; note?: string }
231
232
  export interface PostAutonomyFenceGoalsResponse { goal: unknown }
232
233
  export interface PostAutonomyFenceRequest { enabled: boolean; reason?: string }
234
+ export interface PostAutonomyHeartbeatRequest { host: string; pid?: number; started_at?: string; mode?: string; consecutive_failures?: number; last_event?: string; working_task_id?: number }
235
+ export interface PostAutonomyHeartbeatResponse { ok: boolean; heartbeat: unknown }
233
236
  export interface PostBackupTriggerResponse { ok: boolean; message: unknown; started_at: unknown }
234
237
  export interface PostBlockersIdLinkRequest { task_id: StringifiableId }
235
238
  export interface PostBlockersIdLinkResponse { ok: boolean; blocked: unknown }
@@ -550,8 +553,12 @@ export interface BongosClient {
550
553
  postAutonomyFenceGoals(args: RequestArgs & { body: PostAutonomyFenceGoalsRequest }): Promise<PostAutonomyFenceGoalsResponse>;
551
554
  /** DELETE /autonomy/fence/goals/{goalId} — rank: archon */
552
555
  deleteAutonomyFenceGoalsGoalId(args?: RequestArgs): Promise<ApiResponse>;
556
+ /** POST /autonomy/heartbeat — rank: any-builder */
557
+ postAutonomyHeartbeat(args: RequestArgs & { body: PostAutonomyHeartbeatRequest }): Promise<PostAutonomyHeartbeatResponse>;
553
558
  /** GET /autonomy/precheck — rank: metic+archon */
554
559
  getAutonomyPrecheck(args?: RequestArgs): Promise<ApiResponse>;
560
+ /** GET /autonomy/runners — rank: any-builder */
561
+ getAutonomyRunners(args?: RequestArgs): Promise<GetAutonomyRunnersResponse>;
555
562
  };
556
563
  "backup": {
557
564
  /** GET /backup/status — rank: metic+archon */
@@ -177,8 +177,12 @@ export function createClient(opts = {}) {
177
177
  postAutonomyFenceGoals: (args) => request("POST", "/autonomy/fence/goals", { hasBody: true }, args),
178
178
  // DELETE /autonomy/fence/goals/{goalId} — rank: archon — DELETE /autonomy/fence/goals/:goalId
179
179
  deleteAutonomyFenceGoalsGoalId: (args) => request("DELETE", "/autonomy/fence/goals/{goalId}", { hasBody: false }, args),
180
+ // POST /autonomy/heartbeat — rank: any-builder — POST /autonomy/heartbeat
181
+ postAutonomyHeartbeat: (args) => request("POST", "/autonomy/heartbeat", { hasBody: true }, args),
180
182
  // GET /autonomy/precheck — rank: metic+archon — GET /autonomy/precheck
181
183
  getAutonomyPrecheck: (args) => request("GET", "/autonomy/precheck", { hasBody: false }, args),
184
+ // GET /autonomy/runners — rank: any-builder — GET /autonomy/runners
185
+ getAutonomyRunners: (args) => request("GET", "/autonomy/runners", { hasBody: false }, args),
182
186
  },
183
187
  "backup": {
184
188
  // GET /backup/status — rank: metic+archon — GET /backup/status
@@ -99,7 +99,18 @@ fixes the cause; and a queue where *every* task halts is not a runner failure at
99
99
  all, and is reported as an unworkable queue. A new signal — main moved, a blocker
100
100
  resolved, the allowlist changed — jumps the remaining wait.
101
101
 
102
- The only true stop is the **server-side** kill switch.
102
+ The only true stop is the **server-side** kill switch — and even that is a speed:
103
+ the runner keeps asking, cheaply, so flipping the switch back on is enough to
104
+ start it without touching the machine.
105
+
106
+ Two things the implementation settled (`modules/autonomy/cadence.js` and the
107
+ `--forever` loop, task 1003904), both learned by running it rather than reading
108
+ it. Boot reconciliation needs a **heartbeat**: the ledger cannot tell a live run
109
+ from a dead one — both are a held claim — and releasing one a worker is building
110
+ against strands its work exactly as badly as leaving one locked. And it must
111
+ match the **exact worktree name the runner generates**, not an `autobongos-`
112
+ prefix: the loose form matched a human's hand-named tree and released their live
113
+ claim out from under them, twice, during the task that added it.
103
114
 
104
115
  ### 6. The fence, and where it is enforced
105
116