@bongos/core 1.19.876 → 1.19.878

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 (47) hide show
  1. package/.bongos-core.json +110 -40
  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 +163 -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/digest.js +344 -0
  19. package/modules/autonomy/migrations/autonomy_002_runner_heartbeat.sql +93 -0
  20. package/modules/autonomy/routes/autonomy.js +69 -0
  21. package/modules/autonomy/runner-health.js +97 -0
  22. package/modules/dev-box/app/src/vendor/bongos-client.cjs +4 -0
  23. package/modules/hall-ui/public/gate.html +4 -1
  24. package/modules/hall-ui/public/gate.js +51 -2
  25. package/package-lock.json +2 -2
  26. package/package.json +1 -1
  27. package/scripts/gds/autobongos-digest.js +123 -0
  28. package/scripts/gds/autobongos-run.js +375 -11
  29. package/scripts/gds/autobongos-service.cmd +38 -0
  30. package/scripts/gds/autobongos-service.ps1 +135 -0
  31. package/scripts/gds/deploy-main-audit-gate.sh +90 -0
  32. package/scripts/gds/main-audit.js +26 -4
  33. package/scripts/gds/provision-core-upgrade.js +23 -3
  34. package/scripts/gds/run-unit-tests.js +16 -1
  35. package/src/module-api.js +1 -1
  36. package/tests/autobongos_cadence.mjs +602 -0
  37. package/tests/autonomy_digest.mjs +302 -0
  38. package/tests/autonomy_runner_health.mjs +135 -0
  39. package/tests/bump_version.mjs +12 -1
  40. package/tests/cli_package.mjs +11 -1
  41. package/tests/core_upgrade_runner.mjs +43 -1
  42. package/tests/deploy_audit_gate.mjs +154 -0
  43. package/tests/deploy_divergence_line.mjs +47 -1
  44. package/tests/helpers.mjs +61 -0
  45. package/tests/main_audit_db_roster.mjs +97 -0
  46. package/tests/publish_watch.mjs +9 -0
  47. package/tests/setup_device_flow_fallback.mjs +2 -1
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.876",
6
- "core_contract": "1.19.876",
7
- "source_commit": "faaa7283a4bba70f85f9eb8659db39b2a673e099",
5
+ "core_version": "1.19.878",
6
+ "core_contract": "1.19.878",
7
+ "source_commit": "2b2c4d57dea2fc815d5edf5a1fd9ddb076f49be9",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-09-19T04:18:45.980Z",
9
+ "built_at": "2026-09-19T11:02:46.880Z",
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": 2306,
14
+ "functional_verbatim": 2319,
15
15
  "rules": 3,
16
16
  "gate_literals": 3,
17
17
  "gate": "passed"
18
18
  },
19
- "file_count": 2832,
20
- "tree_sha256": "e510e319efe7ab6f5d4b1964953c53929d02edc31236f7c777c472eac1ed7d80",
19
+ "file_count": 2846,
20
+ "tree_sha256": "5cf258930712618621a4d89ca402aef67b76d4b0212318336edb63c4a4a0502b",
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": "d83c5188b30ecc313961e181bd2ec86ea94ab94ef30e995469669b1d4ed889dc"
2605
+ "sha256": "2c1b16d4be5696489456b2c49d7fbef8b09d846d722860bd019968e20a88db02"
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": "72f38de74c8cbfd1d44de916d19572dc705b1039a4270d53e3a9065a50d8faf7"
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,20 @@
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"
3801
+ },
3802
+ {
3803
+ "path": "modules/autonomy/digest.js",
3804
+ "mode": "0000644",
3805
+ "sha256": "cfe22a887e5a69cf314a318f7b410c81f91cfba65f7643605e9f3ac1ebef8022"
3791
3806
  },
3792
3807
  {
3793
3808
  "path": "modules/autonomy/fence.js",
@@ -3804,6 +3819,11 @@
3804
3819
  "mode": "0000644",
3805
3820
  "sha256": "23d98c938efdeb221bdcaef1c1ed3f09ac0f389ad6fb38fc221450b34158b5ad"
3806
3821
  },
3822
+ {
3823
+ "path": "modules/autonomy/migrations/autonomy_002_runner_heartbeat.sql",
3824
+ "mode": "0000644",
3825
+ "sha256": "ea1224fcf94aa10e5ee1c77df409e52210c145f71913853b72e7f142d943ff55"
3826
+ },
3807
3827
  {
3808
3828
  "path": "modules/autonomy/module.json",
3809
3829
  "mode": "0000644",
@@ -3817,7 +3837,12 @@
3817
3837
  {
3818
3838
  "path": "modules/autonomy/routes/autonomy.js",
3819
3839
  "mode": "0000644",
3820
- "sha256": "abb70f760ab019c4ad8f1962a2700f3801c71e3dd86b5124b02900e1812d1e04"
3840
+ "sha256": "e119e149565972008d42e986f82b4fcbff22d74301222e8772d63de16e936abf"
3841
+ },
3842
+ {
3843
+ "path": "modules/autonomy/runner-health.js",
3844
+ "mode": "0000644",
3845
+ "sha256": "3752cff6742e0d72b83697948e14547afb2b7b158e5fef57bfa75cf68ce525cf"
3821
3846
  },
3822
3847
  {
3823
3848
  "path": "modules/builder-settings/CLAUDE.md",
@@ -4172,7 +4197,7 @@
4172
4197
  {
4173
4198
  "path": "modules/dev-box/app/src/vendor/bongos-client.cjs",
4174
4199
  "mode": "0000644",
4175
- "sha256": "46c9fb18c486f413cda2d73a4dee92c73d6ca15be08109b8dd5986ede3b23a4b"
4200
+ "sha256": "885e0606f436873e274f6ec51e93697f3854115874c982299ef8275621629f8e"
4176
4201
  },
4177
4202
  {
4178
4203
  "path": "modules/dev-box/app/test/unit.mjs",
@@ -4952,12 +4977,12 @@
4952
4977
  {
4953
4978
  "path": "modules/hall-ui/public/gate.html",
4954
4979
  "mode": "0000644",
4955
- "sha256": "88f8a79743e7fc40651ab64306c5dec5d52c8a0886d4fd4515227ad89ca837e4"
4980
+ "sha256": "0b07c5a358d50b8537e303fc8fc84a2ae5100c09df7af1e15b96caa5a677aa76"
4956
4981
  },
4957
4982
  {
4958
4983
  "path": "modules/hall-ui/public/gate.js",
4959
4984
  "mode": "0000644",
4960
- "sha256": "1445bece8bebdcc43174ee7873729a843d4f60fdd617226d936783e243763754"
4985
+ "sha256": "0a5f030cce0d8820a4c3eb943b7a6237dab3be8800b50a30d4059b235f9f851b"
4961
4986
  },
4962
4987
  {
4963
4988
  "path": "modules/hall-ui/public/gate.states.json",
@@ -7947,12 +7972,12 @@
7947
7972
  {
7948
7973
  "path": "package-lock.json",
7949
7974
  "mode": "0000644",
7950
- "sha256": "45ea30974ab43d90bf7b88b4afab20d9bd2c8d8ba80c891e464eab1c1a882aff"
7975
+ "sha256": "da57fd75ea411bf8a7ecad98041b7d38f6ce568bca460243b24b67bd2ddd60ba"
7951
7976
  },
7952
7977
  {
7953
7978
  "path": "package.json",
7954
7979
  "mode": "0000644",
7955
- "sha256": "e96760085687e6a0e6a1aa6caf9f011f54eddd43e6229f40140cee9c02332734"
7980
+ "sha256": "ef72c5d5fd50006bbb62080ebf77339025a5979363d10c655e5db6f1b507850c"
7956
7981
  },
7957
7982
  {
7958
7983
  "path": "public-docs/index.html",
@@ -8109,6 +8134,11 @@
8109
8134
  "mode": "0000644",
8110
8135
  "sha256": "891e795c68d43d11958a2e68af0cfb1fcd5a1f3308c821f86ff37512326ef72d"
8111
8136
  },
8137
+ {
8138
+ "path": "scripts/gds/autobongos-digest.js",
8139
+ "mode": "0000644",
8140
+ "sha256": "b406f73bbc0f577a2a58ec99597fb92c7edc0d1628c0ca7729cd25b0a1270045"
8141
+ },
8112
8142
  {
8113
8143
  "path": "scripts/gds/autobongos-loop.js",
8114
8144
  "mode": "0000644",
@@ -8117,7 +8147,17 @@
8117
8147
  {
8118
8148
  "path": "scripts/gds/autobongos-run.js",
8119
8149
  "mode": "0000644",
8120
- "sha256": "6b91b2f34173d0c8bf516f074a7d9f7197c2a69fafcae949f1f2d2e57e353df3"
8150
+ "sha256": "24f0be946550a89f717278a418ebb68330fad3c7cdd45d3b79e85315564c7425"
8151
+ },
8152
+ {
8153
+ "path": "scripts/gds/autobongos-service.cmd",
8154
+ "mode": "0000644",
8155
+ "sha256": "62ec55c715e3af35fd3394cabcfb638df59eb0562ae5da89a3ac02fd2d97f97f"
8156
+ },
8157
+ {
8158
+ "path": "scripts/gds/autobongos-service.ps1",
8159
+ "mode": "0000644",
8160
+ "sha256": "3f3e44969809b3c22c9cf338af68695af6e835b861ac056d38408a4be1d202a7"
8121
8161
  },
8122
8162
  {
8123
8163
  "path": "scripts/gds/autobongos-verify.js",
@@ -8379,6 +8419,11 @@
8379
8419
  "mode": "0000644",
8380
8420
  "sha256": "39879d5d26a325529620ab4fd180f133643d0e4c2a5a9ef92f8ee347ad0ba0d7"
8381
8421
  },
8422
+ {
8423
+ "path": "scripts/gds/deploy-main-audit-gate.sh",
8424
+ "mode": "0000755",
8425
+ "sha256": "245ba28478a3480b1039bab35921bedd86c44152fbd36612998dc4eb78642ccf"
8426
+ },
8382
8427
  {
8383
8428
  "path": "scripts/gds/design-sync.js",
8384
8429
  "mode": "0000644",
@@ -8742,7 +8787,7 @@
8742
8787
  {
8743
8788
  "path": "scripts/gds/main-audit.js",
8744
8789
  "mode": "0000644",
8745
- "sha256": "df5385f3929161eab1d74657f5d916650b4c05e4737f0a5e906e7d66a9c06489"
8790
+ "sha256": "abc4ee56e31c32e6b2d62dd41bc0b4c62ed44e362a6b9ed7090d9d8fd0e409b5"
8746
8791
  },
8747
8792
  {
8748
8793
  "path": "scripts/gds/me.js",
@@ -8882,7 +8927,7 @@
8882
8927
  {
8883
8928
  "path": "scripts/gds/provision-core-upgrade.js",
8884
8929
  "mode": "0000644",
8885
- "sha256": "fef10e02d3b1d605c1b30fd553b1cf8069159d8c2cbf6b0e4b48ec32359562a9"
8930
+ "sha256": "5fad0beb0a3d4b322918a99765cb922fcce1de4196c19cb08a0d3bc91c3d149e"
8886
8931
  },
8887
8932
  {
8888
8933
  "path": "scripts/gds/provision-disconnect.js",
@@ -9037,7 +9082,7 @@
9037
9082
  {
9038
9083
  "path": "scripts/gds/run-unit-tests.js",
9039
9084
  "mode": "0000644",
9040
- "sha256": "a6881d4f2edeeb200da7ad5953ed790dc24993a46e66cbfc5aa67d48a4e02395"
9085
+ "sha256": "8227fe5256b530d22192cd86f3624d52cc1dc34ac82099a8bb9e3d6a28482eb9"
9041
9086
  },
9042
9087
  {
9043
9088
  "path": "scripts/gds/runner-drift.js",
@@ -9937,7 +9982,7 @@
9937
9982
  {
9938
9983
  "path": "src/module-api.js",
9939
9984
  "mode": "0000644",
9940
- "sha256": "106ce54796bb7d77e5438ef5848f8337927859114b48316ac151ca18f4f0c6be"
9985
+ "sha256": "f38e0d4d6eeb707065f278ed386fec6a66d502553ac99d1e683b7216c0bb6a99"
9941
9986
  },
9942
9987
  {
9943
9988
  "path": "src/module-loader/catalog.js",
@@ -10339,6 +10384,11 @@
10339
10384
  "mode": "0000644",
10340
10385
  "sha256": "d7ac18d14e8e9e5e7b9e913a76953fe69bfefea4912e77ca30b285647bfcfca8"
10341
10386
  },
10387
+ {
10388
+ "path": "tests/autobongos_cadence.mjs",
10389
+ "mode": "0000644",
10390
+ "sha256": "5444f426f49da327087efbc85848c0a15812438341d3c9cb43d83dc424e2d869"
10391
+ },
10342
10392
  {
10343
10393
  "path": "tests/autobongos_fence.mjs",
10344
10394
  "mode": "0000644",
@@ -10359,6 +10409,11 @@
10359
10409
  "mode": "0000644",
10360
10410
  "sha256": "1b5b6e5010c45a77015a1d0d63d49cb3286eca91a83f45cb94d145af01aab7dc"
10361
10411
  },
10412
+ {
10413
+ "path": "tests/autonomy_digest.mjs",
10414
+ "mode": "0000644",
10415
+ "sha256": "633ede3096916c1d5571def211fabac9ae934f48723d182c54f2fe27c2ead105"
10416
+ },
10362
10417
  {
10363
10418
  "path": "tests/autonomy_gate.mjs",
10364
10419
  "mode": "0000644",
@@ -10369,6 +10424,11 @@
10369
10424
  "mode": "0000644",
10370
10425
  "sha256": "94927dcf8822d01504e57821e08b92fe28550056ddfd75f98db3985a5dab0805"
10371
10426
  },
10427
+ {
10428
+ "path": "tests/autonomy_runner_health.mjs",
10429
+ "mode": "0000644",
10430
+ "sha256": "e5dc6ec6261a18113876f4e362e8cb801d78f5266e077f0b8a27eeda70fe800b"
10431
+ },
10372
10432
  {
10373
10433
  "path": "tests/backfill_sessions.mjs",
10374
10434
  "mode": "0000644",
@@ -10607,7 +10667,7 @@
10607
10667
  {
10608
10668
  "path": "tests/bump_version.mjs",
10609
10669
  "mode": "0000644",
10610
- "sha256": "6540646400fb4464ee823b841f908f8577d170f60c4b4928fbbfc2a3746b76d4"
10670
+ "sha256": "5073519bc3ba0fdf68927dd3800572c7dc9f652d6855991787e846a932cf1a3d"
10611
10671
  },
10612
10672
  {
10613
10673
  "path": "tests/canonical_profile_url.mjs",
@@ -10727,7 +10787,7 @@
10727
10787
  {
10728
10788
  "path": "tests/cli_package.mjs",
10729
10789
  "mode": "0000644",
10730
- "sha256": "9c40324ec0faf739c6b78e428b43cd0c3f01a3f70bb9ded78b3cf33657098163"
10790
+ "sha256": "e16f3fd835e440bad8a24ea1807663f08709bfe21b65cc25772b7d707bbba540"
10731
10791
  },
10732
10792
  {
10733
10793
  "path": "tests/cli_sessions.mjs",
@@ -10837,7 +10897,7 @@
10837
10897
  {
10838
10898
  "path": "tests/core_upgrade_runner.mjs",
10839
10899
  "mode": "0000644",
10840
- "sha256": "5f9ae4144ab85ee197f417003a71df1d78398ca11b6c8bd3dc96de9b4cd5e1fb"
10900
+ "sha256": "a8fc77b7a32e4377b4b327bd485cbc17428421ef3fc871770fdaeee3e02e48f4"
10841
10901
  },
10842
10902
  {
10843
10903
  "path": "tests/cosmos_token_contrast.mjs",
@@ -10959,10 +11019,15 @@
10959
11019
  "mode": "0000644",
10960
11020
  "sha256": "9d16748bfadb1b13969613bd7a43bed42ea3e1bdcc7254ab26fba14ea8b4c036"
10961
11021
  },
11022
+ {
11023
+ "path": "tests/deploy_audit_gate.mjs",
11024
+ "mode": "0000644",
11025
+ "sha256": "183a355d451ec850c481dc5b17674e78b81ad9a2e009298a801fde7f4be231ab"
11026
+ },
10962
11027
  {
10963
11028
  "path": "tests/deploy_divergence_line.mjs",
10964
11029
  "mode": "0000644",
10965
- "sha256": "c79be1df93ccfb420451ee7d55b58e9f4bcb1d08903824e62ed776d4ed058ac7"
11030
+ "sha256": "a14fe18d1041a3b3f4b2c302225329aab4dedeecee359572fd62655cca9daac6"
10966
11031
  },
10967
11032
  {
10968
11033
  "path": "tests/deploy_instance.mjs",
@@ -11882,7 +11947,7 @@
11882
11947
  {
11883
11948
  "path": "tests/helpers.mjs",
11884
11949
  "mode": "0000644",
11885
- "sha256": "f84cb192bfa60bd86d925c56e67b6521bf0c67a19c8359dd02c3bf8ea8c83b0e"
11950
+ "sha256": "d90ec6d640f3a9a389169180d4a852c85e7c3a5336900f93b871673681b8718a"
11886
11951
  },
11887
11952
  {
11888
11953
  "path": "tests/hierarchy-config.mjs",
@@ -12284,6 +12349,11 @@
12284
12349
  "mode": "0000644",
12285
12350
  "sha256": "eff2ce96889306f4898686c3648d302f54fff5f137ee41ddf543866fdf2f807d"
12286
12351
  },
12352
+ {
12353
+ "path": "tests/main_audit_db_roster.mjs",
12354
+ "mode": "0000644",
12355
+ "sha256": "e7d7420279a2c2264268544552423406006a0e1ed3accf680ba814161cdb0e41"
12356
+ },
12287
12357
  {
12288
12358
  "path": "tests/main_worktree_busy_reason.mjs",
12289
12359
  "mode": "0000644",
@@ -13057,7 +13127,7 @@
13057
13127
  {
13058
13128
  "path": "tests/publish_watch.mjs",
13059
13129
  "mode": "0000644",
13060
- "sha256": "91ada5b4bf9b22ff8cefb0508be34f5d006bd223c825c73e5bbc9812411a4253"
13130
+ "sha256": "5e2fb1f403e9a60fdcf037eca611296909a8e1c5f2ed404d7623f51266a4f174"
13061
13131
  },
13062
13132
  {
13063
13133
  "path": "tests/push_path_brief.mjs",
@@ -13472,7 +13542,7 @@
13472
13542
  {
13473
13543
  "path": "tests/setup_device_flow_fallback.mjs",
13474
13544
  "mode": "0000644",
13475
- "sha256": "bbb11a18a38eb7e4c697245928b0de0f34b2a6d36d45812fe0524ba8dc8bc7c2"
13545
+ "sha256": "ec3b12b575cfa3aeae48fb5c9044fe2738e230b5a2007166a7fc24a3ca7fb775"
13476
13546
  },
13477
13547
  {
13478
13548
  "path": "tests/setup_smoke.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