@bongos/core 1.19.182 → 1.19.184
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/.bongos-core.json +81 -76
- package/docs/api/openapi.json +9 -9
- package/modules/{governance → government}/catalog.js +1 -1
- package/modules/{governance → government}/config.js +6 -6
- package/modules/{governance → government}/db.js +43 -43
- package/modules/government/migrations/government_001_rename_from_governance.sql +213 -0
- package/modules/government/module.json +22 -0
- package/modules/{governance → government}/protected-surfaces.json +2 -1
- package/modules/{governance/rank-roles.js → government/ranks.js} +9 -9
- package/modules/{governance → government}/routes/governance.js +5 -5
- package/modules/{governance/routes/role-sync.js → government/routes/rank-sync.js} +7 -7
- package/modules/lifecycle/db.js +6 -6
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/scripts/gds/fitness.js +11 -1
- package/scripts/gds/migration-namespace.js +15 -3
- package/scripts/gds/publish-manifest.js +5 -3
- package/scripts/gds/seed-governance-tasks.js +2 -2
- package/src/bongos/auth.js +9 -9
- package/src/bongos/db.js +6 -6
- package/src/bongos/module-scope-map.js +22 -1
- package/src/bongos/permission-path-check.js +3 -3
- package/src/bongos/route-rank-check.js +40 -21
- package/src/module-api.js +6 -2
- package/tests/auth_page_gate.mjs +2 -2
- package/tests/criterion_authoring_gate.mjs +1 -1
- package/tests/governance_abuse_matrix.mjs +7 -7
- package/tests/governance_catalog.mjs +1 -1
- package/tests/governance_claim_eligibility.mjs +1 -1
- package/tests/governance_config.mjs +7 -7
- package/tests/governance_fold.mjs +4 -4
- package/tests/governance_live_proof.mjs +2 -2
- package/tests/governance_ownership_scope.mjs +1 -1
- package/tests/governance_page_gates.mjs +6 -6
- package/tests/governance_parity.mjs +3 -3
- package/tests/governance_principals.mjs +1 -1
- package/tests/governance_protected_surfaces.mjs +63 -7
- package/tests/governance_require_permission.mjs +6 -6
- package/tests/governance_resolver.mjs +2 -2
- package/tests/governance_role_sync.mjs +14 -14
- package/tests/governance_routes.mjs +6 -6
- package/tests/governance_seed.mjs +11 -3
- package/tests/governance_session_scope.mjs +1 -1
- package/tests/governance_vanilla_boot.mjs +4 -4
- package/tests/hall_page_gate_map.mjs +1 -1
- package/tests/memory_isolation.mjs +2 -2
- package/tests/module_loader.mjs +1 -1
- package/tests/onboarding_observability.mjs +2 -2
- package/tests/rank_tier_single_source.mjs +2 -2
- package/tests/route_permission_check.mjs +2 -2
- package/modules/governance/module.json +0 -11
- /package/config/{governance.neutral.json → government.neutral.json} +0 -0
- /package/modules/{governance → government}/CLAUDE.md +0 -0
- /package/modules/{governance → government}/migrations/governance_001_tables.sql +0 -0
- /package/modules/{governance → government}/migrations/governance_002_seed_and_backfill.sql +0 -0
- /package/modules/{governance → government}/migrations/governance_003_task_abandon_metic.sql +0 -0
- /package/modules/{governance → government}/migrations/governance_004_criterion_create.sql +0 -0
- /package/modules/{governance → government}/migrations/governance_005_resync_builder_rank_roles.sql +0 -0
- /package/modules/{governance → government}/migrations/governance_006_version_create.sql +0 -0
- /package/modules/{governance → government}/migrations/governance_007_delegate_archon_ops_to_metic.sql +0 -0
- /package/modules/{governance → government}/protected-surfaces.js +0 -0
- /package/modules/{governance → government}/resolver.js +0 -0
- /package/modules/{governance → government}/session-scopes.js +0 -0
- /package/modules/{governance → government}/session-scopes.json +0 -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.
|
|
6
|
-
"core_contract": "1.19.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.19.184",
|
|
6
|
+
"core_contract": "1.19.184",
|
|
7
|
+
"source_commit": "f2c05322961b3ad178b3b461db4c4e2e3615898c",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-08-16T21:
|
|
9
|
+
"built_at": "2026-08-16T21:54:59.056Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 308,
|
|
13
13
|
"agent_docs_stubbed": 21,
|
|
14
|
-
"functional_verbatim":
|
|
14
|
+
"functional_verbatim": 1280,
|
|
15
15
|
"rules": 3,
|
|
16
16
|
"gate_literals": 3,
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
|
-
"file_count":
|
|
20
|
-
"tree_sha256": "
|
|
19
|
+
"file_count": 1609,
|
|
20
|
+
"tree_sha256": "1c3d64a158af2317f0e1410b94be39d7fcb5a7c3f752cff2192f771ed8c6cdf8",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/blocker-review/SKILL.md",
|
|
@@ -395,7 +395,7 @@
|
|
|
395
395
|
"sha256": "f7030358eb36b01ebe252fd52dbd6bc5763e28aa169a6f84a373ce949182511b"
|
|
396
396
|
},
|
|
397
397
|
{
|
|
398
|
-
"path": "config/
|
|
398
|
+
"path": "config/government.neutral.json",
|
|
399
399
|
"mode": "0000644",
|
|
400
400
|
"sha256": "1d285d78452558c995d2c0568190f4377ac4ecfddea642f5a94949298a1e48b1"
|
|
401
401
|
},
|
|
@@ -1367,7 +1367,7 @@
|
|
|
1367
1367
|
{
|
|
1368
1368
|
"path": "docs/api/openapi.json",
|
|
1369
1369
|
"mode": "0000644",
|
|
1370
|
-
"sha256": "
|
|
1370
|
+
"sha256": "e4eeb6780a2d8392d8a0530685a9c34c3952f13a0c2d0bc28b5e7eb7a85f36bf"
|
|
1371
1371
|
},
|
|
1372
1372
|
{
|
|
1373
1373
|
"path": "docs/architecture.md",
|
|
@@ -2880,102 +2880,107 @@
|
|
|
2880
2880
|
"sha256": "86c096d56165a2b65dc2bb9d271dfe25ce83aa73127de35d63bc93a80218d0c9"
|
|
2881
2881
|
},
|
|
2882
2882
|
{
|
|
2883
|
-
"path": "modules/
|
|
2883
|
+
"path": "modules/government/CLAUDE.md",
|
|
2884
2884
|
"mode": "0000644",
|
|
2885
2885
|
"sha256": "7cb9dac9cb87b679e1ae50e4112b3a7928a38ebb9902c8947a74d17bec4d9009"
|
|
2886
2886
|
},
|
|
2887
2887
|
{
|
|
2888
|
-
"path": "modules/
|
|
2888
|
+
"path": "modules/government/catalog.js",
|
|
2889
2889
|
"mode": "0000644",
|
|
2890
|
-
"sha256": "
|
|
2890
|
+
"sha256": "97f5c71f8176d685691ec969aafe57e48dd60897ab7a65329d330ab24149d5b2"
|
|
2891
2891
|
},
|
|
2892
2892
|
{
|
|
2893
|
-
"path": "modules/
|
|
2893
|
+
"path": "modules/government/config.js",
|
|
2894
2894
|
"mode": "0000644",
|
|
2895
|
-
"sha256": "
|
|
2895
|
+
"sha256": "57086a188ac6557b2f7c2c52e4a75f3960dfd1b7a54ce6fa3c0ce3a216411703"
|
|
2896
2896
|
},
|
|
2897
2897
|
{
|
|
2898
|
-
"path": "modules/
|
|
2898
|
+
"path": "modules/government/db.js",
|
|
2899
2899
|
"mode": "0000644",
|
|
2900
|
-
"sha256": "
|
|
2900
|
+
"sha256": "dd995514b4ac2c6f072bcde9f725ccd5a399390229652e1bfb04cac777a045f9"
|
|
2901
2901
|
},
|
|
2902
2902
|
{
|
|
2903
|
-
"path": "modules/
|
|
2903
|
+
"path": "modules/government/migrations/governance_001_tables.sql",
|
|
2904
2904
|
"mode": "0000644",
|
|
2905
2905
|
"sha256": "8084f284738d310c393ccd0aad5222ed35a49f493e85c338f8d84b4cb9586a5a"
|
|
2906
2906
|
},
|
|
2907
2907
|
{
|
|
2908
|
-
"path": "modules/
|
|
2908
|
+
"path": "modules/government/migrations/governance_002_seed_and_backfill.sql",
|
|
2909
2909
|
"mode": "0000644",
|
|
2910
2910
|
"sha256": "98808e41a66fac5e06e704156cd68902c0e4d194ab5796b820a21284ecc70df0"
|
|
2911
2911
|
},
|
|
2912
2912
|
{
|
|
2913
|
-
"path": "modules/
|
|
2913
|
+
"path": "modules/government/migrations/governance_003_task_abandon_metic.sql",
|
|
2914
2914
|
"mode": "0000644",
|
|
2915
2915
|
"sha256": "ba1fb78e0ba192eba2a4daeb7b453c02f35809bfc2e3ea83d9a0caba939ac07a"
|
|
2916
2916
|
},
|
|
2917
2917
|
{
|
|
2918
|
-
"path": "modules/
|
|
2918
|
+
"path": "modules/government/migrations/governance_004_criterion_create.sql",
|
|
2919
2919
|
"mode": "0000644",
|
|
2920
2920
|
"sha256": "98f0875b5a92818a474a66ed5e119d2c71d6f430e3b01179ef07a79533612199"
|
|
2921
2921
|
},
|
|
2922
2922
|
{
|
|
2923
|
-
"path": "modules/
|
|
2923
|
+
"path": "modules/government/migrations/governance_005_resync_builder_rank_roles.sql",
|
|
2924
2924
|
"mode": "0000644",
|
|
2925
2925
|
"sha256": "fdbfcd598f6e983207d7a745e5c92540cd28f7a65dc3c9b1b657bb8c8b6435fc"
|
|
2926
2926
|
},
|
|
2927
2927
|
{
|
|
2928
|
-
"path": "modules/
|
|
2928
|
+
"path": "modules/government/migrations/governance_006_version_create.sql",
|
|
2929
2929
|
"mode": "0000644",
|
|
2930
2930
|
"sha256": "6675a71459ea9f7905887b7fb7f34fa7936d86c777e5ddcb17363fc60989e1cd"
|
|
2931
2931
|
},
|
|
2932
2932
|
{
|
|
2933
|
-
"path": "modules/
|
|
2933
|
+
"path": "modules/government/migrations/governance_007_delegate_archon_ops_to_metic.sql",
|
|
2934
2934
|
"mode": "0000644",
|
|
2935
2935
|
"sha256": "cb532aeed42e0b377f0eefa3047b169ca8dff5c13bd8061ce82473172926564f"
|
|
2936
2936
|
},
|
|
2937
2937
|
{
|
|
2938
|
-
"path": "modules/
|
|
2938
|
+
"path": "modules/government/migrations/government_001_rename_from_governance.sql",
|
|
2939
2939
|
"mode": "0000644",
|
|
2940
|
-
"sha256": "
|
|
2940
|
+
"sha256": "072b31046aa6c1ef8ecdcc75dda47d92308baeb04f67322551272576e073a71c"
|
|
2941
2941
|
},
|
|
2942
2942
|
{
|
|
2943
|
-
"path": "modules/
|
|
2943
|
+
"path": "modules/government/module.json",
|
|
2944
|
+
"mode": "0000644",
|
|
2945
|
+
"sha256": "bdedccba544e6e218e328e58ec2bac567d334a2f7cb6ffb57e1badb1e3099e3a"
|
|
2946
|
+
},
|
|
2947
|
+
{
|
|
2948
|
+
"path": "modules/government/protected-surfaces.js",
|
|
2944
2949
|
"mode": "0000644",
|
|
2945
2950
|
"sha256": "1855c8cd74b7aa00e6f87fb9d402a4be440ecbb26691a84418b6725b83dd2cf9"
|
|
2946
2951
|
},
|
|
2947
2952
|
{
|
|
2948
|
-
"path": "modules/
|
|
2953
|
+
"path": "modules/government/protected-surfaces.json",
|
|
2949
2954
|
"mode": "0000644",
|
|
2950
|
-
"sha256": "
|
|
2955
|
+
"sha256": "4144c0c593aaf6618cc9328b37a91e6b0ff760009faabb73f740fcc4b30e354b"
|
|
2951
2956
|
},
|
|
2952
2957
|
{
|
|
2953
|
-
"path": "modules/
|
|
2958
|
+
"path": "modules/government/ranks.js",
|
|
2954
2959
|
"mode": "0000644",
|
|
2955
|
-
"sha256": "
|
|
2960
|
+
"sha256": "7c6632bedb6638868ae716bde2562b97e9d3a5339d73f2283a23276ca902a2ab"
|
|
2956
2961
|
},
|
|
2957
2962
|
{
|
|
2958
|
-
"path": "modules/
|
|
2963
|
+
"path": "modules/government/resolver.js",
|
|
2959
2964
|
"mode": "0000644",
|
|
2960
2965
|
"sha256": "7c86e964b457bb21192aaacd9f014ec1afabea1779c751fc1682f30fb9a8ac81"
|
|
2961
2966
|
},
|
|
2962
2967
|
{
|
|
2963
|
-
"path": "modules/
|
|
2968
|
+
"path": "modules/government/routes/governance.js",
|
|
2964
2969
|
"mode": "0000644",
|
|
2965
|
-
"sha256": "
|
|
2970
|
+
"sha256": "a8a616e28cced6e4ebfea6a2252e36d8a48d314f595ea76bae550dd12cd78b67"
|
|
2966
2971
|
},
|
|
2967
2972
|
{
|
|
2968
|
-
"path": "modules/
|
|
2973
|
+
"path": "modules/government/routes/rank-sync.js",
|
|
2969
2974
|
"mode": "0000644",
|
|
2970
|
-
"sha256": "
|
|
2975
|
+
"sha256": "7934d1d1db163b20403c98afc4670e44ab926cf21123c8be1764172df4eb3290"
|
|
2971
2976
|
},
|
|
2972
2977
|
{
|
|
2973
|
-
"path": "modules/
|
|
2978
|
+
"path": "modules/government/session-scopes.js",
|
|
2974
2979
|
"mode": "0000644",
|
|
2975
2980
|
"sha256": "d27dc4b14eeaa2e06f7a8ea175b7928d972f424a1165f9ec3e6577ccdd2faf35"
|
|
2976
2981
|
},
|
|
2977
2982
|
{
|
|
2978
|
-
"path": "modules/
|
|
2983
|
+
"path": "modules/government/session-scopes.json",
|
|
2979
2984
|
"mode": "0000644",
|
|
2980
2985
|
"sha256": "813e4ddb324363278bfbd6b65260a54697673ac20f0df8e8992dd4ece57efea8"
|
|
2981
2986
|
},
|
|
@@ -3532,7 +3537,7 @@
|
|
|
3532
3537
|
{
|
|
3533
3538
|
"path": "modules/lifecycle/db.js",
|
|
3534
3539
|
"mode": "0000644",
|
|
3535
|
-
"sha256": "
|
|
3540
|
+
"sha256": "4408fc7ed6a7f82e7a55c96b260497e4c36eeaf703d1646cecb28514f1150643"
|
|
3536
3541
|
},
|
|
3537
3542
|
{
|
|
3538
3543
|
"path": "modules/lifecycle/done-when.js",
|
|
@@ -4247,12 +4252,12 @@
|
|
|
4247
4252
|
{
|
|
4248
4253
|
"path": "package-lock.json",
|
|
4249
4254
|
"mode": "0000644",
|
|
4250
|
-
"sha256": "
|
|
4255
|
+
"sha256": "3e0d4d931d203f21c8eaa3a927d2f830f9b0617e06e713d2b9f996158ba23b18"
|
|
4251
4256
|
},
|
|
4252
4257
|
{
|
|
4253
4258
|
"path": "package.json",
|
|
4254
4259
|
"mode": "0000644",
|
|
4255
|
-
"sha256": "
|
|
4260
|
+
"sha256": "f41358165d58f6a56308067440351d15773d8b18ad91bccff777cf26448ecf2d"
|
|
4256
4261
|
},
|
|
4257
4262
|
{
|
|
4258
4263
|
"path": "public-docs/index.html",
|
|
@@ -4877,7 +4882,7 @@
|
|
|
4877
4882
|
{
|
|
4878
4883
|
"path": "scripts/gds/fitness.js",
|
|
4879
4884
|
"mode": "0000644",
|
|
4880
|
-
"sha256": "
|
|
4885
|
+
"sha256": "887cf9daf51448f1ca031b4cc26d0695dd6e7577bb62bba6b619c91ea8e3024b"
|
|
4881
4886
|
},
|
|
4882
4887
|
{
|
|
4883
4888
|
"path": "scripts/gds/gate-review.js",
|
|
@@ -5067,7 +5072,7 @@
|
|
|
5067
5072
|
{
|
|
5068
5073
|
"path": "scripts/gds/migration-namespace.js",
|
|
5069
5074
|
"mode": "0000644",
|
|
5070
|
-
"sha256": "
|
|
5075
|
+
"sha256": "f90c5e21f17cb613d86de1bad8561783d6b823f54efe2fa8dc16e909f0dbc77c"
|
|
5071
5076
|
},
|
|
5072
5077
|
{
|
|
5073
5078
|
"path": "scripts/gds/mirror-lineage-check.js",
|
|
@@ -5177,7 +5182,7 @@
|
|
|
5177
5182
|
{
|
|
5178
5183
|
"path": "scripts/gds/publish-manifest.js",
|
|
5179
5184
|
"mode": "0000644",
|
|
5180
|
-
"sha256": "
|
|
5185
|
+
"sha256": "b3eb93e712c6bf296ca1acb1adc3518fb669abe8ee4706fc33060424aeca1b36"
|
|
5181
5186
|
},
|
|
5182
5187
|
{
|
|
5183
5188
|
"path": "scripts/gds/pulse.js",
|
|
@@ -5337,7 +5342,7 @@
|
|
|
5337
5342
|
{
|
|
5338
5343
|
"path": "scripts/gds/seed-governance-tasks.js",
|
|
5339
5344
|
"mode": "0000644",
|
|
5340
|
-
"sha256": "
|
|
5345
|
+
"sha256": "27daa7391278a717cb5eb4bccfd34d558ac608a05e763c832bfee05eba379b4c"
|
|
5341
5346
|
},
|
|
5342
5347
|
{
|
|
5343
5348
|
"path": "scripts/gds/seed-medusa-tasks.js",
|
|
@@ -5617,7 +5622,7 @@
|
|
|
5617
5622
|
{
|
|
5618
5623
|
"path": "src/bongos/auth.js",
|
|
5619
5624
|
"mode": "0000644",
|
|
5620
|
-
"sha256": "
|
|
5625
|
+
"sha256": "af86a15edf7b6976a8d9046b85c1711a8395edfa99dafad52a7ecdd57e339fdf"
|
|
5621
5626
|
},
|
|
5622
5627
|
{
|
|
5623
5628
|
"path": "src/bongos/cascade-dispatch.js",
|
|
@@ -5632,7 +5637,7 @@
|
|
|
5632
5637
|
{
|
|
5633
5638
|
"path": "src/bongos/db.js",
|
|
5634
5639
|
"mode": "0000644",
|
|
5635
|
-
"sha256": "
|
|
5640
|
+
"sha256": "3c34327680f89ae6a442bf6d75c1ac3ba570e0a08df2efa063d55b84727ba9ea"
|
|
5636
5641
|
},
|
|
5637
5642
|
{
|
|
5638
5643
|
"path": "src/bongos/github-repos.js",
|
|
@@ -5687,7 +5692,7 @@
|
|
|
5687
5692
|
{
|
|
5688
5693
|
"path": "src/bongos/module-scope-map.js",
|
|
5689
5694
|
"mode": "0000644",
|
|
5690
|
-
"sha256": "
|
|
5695
|
+
"sha256": "162c15a20ee4ec9bfa0227b674efac51c7a11da65f9e8f612558fb023e2fe666"
|
|
5691
5696
|
},
|
|
5692
5697
|
{
|
|
5693
5698
|
"path": "src/bongos/module-submissions.js",
|
|
@@ -5707,7 +5712,7 @@
|
|
|
5707
5712
|
{
|
|
5708
5713
|
"path": "src/bongos/permission-path-check.js",
|
|
5709
5714
|
"mode": "0000644",
|
|
5710
|
-
"sha256": "
|
|
5715
|
+
"sha256": "5116468286f737a3421dbcdfdc48f78ecc8f25496f7db0382f9af9e1a0110e9c"
|
|
5711
5716
|
},
|
|
5712
5717
|
{
|
|
5713
5718
|
"path": "src/bongos/pool.js",
|
|
@@ -5722,7 +5727,7 @@
|
|
|
5722
5727
|
{
|
|
5723
5728
|
"path": "src/bongos/route-rank-check.js",
|
|
5724
5729
|
"mode": "0000644",
|
|
5725
|
-
"sha256": "
|
|
5730
|
+
"sha256": "b5d19a98e20bc92ed234a7d17617aa033eeb766f9b7e1ccdac33a634f0d0749e"
|
|
5726
5731
|
},
|
|
5727
5732
|
{
|
|
5728
5733
|
"path": "src/bongos/routes.js",
|
|
@@ -5857,7 +5862,7 @@
|
|
|
5857
5862
|
{
|
|
5858
5863
|
"path": "src/module-api.js",
|
|
5859
5864
|
"mode": "0000644",
|
|
5860
|
-
"sha256": "
|
|
5865
|
+
"sha256": "c31b47cc6a17c48c0ea5c1f10e3740fdb4d21c82f73c09f6b9df27f2bedca566"
|
|
5861
5866
|
},
|
|
5862
5867
|
{
|
|
5863
5868
|
"path": "src/module-loader/catalog.js",
|
|
@@ -6052,7 +6057,7 @@
|
|
|
6052
6057
|
{
|
|
6053
6058
|
"path": "tests/auth_page_gate.mjs",
|
|
6054
6059
|
"mode": "0000644",
|
|
6055
|
-
"sha256": "
|
|
6060
|
+
"sha256": "3d4fd12068c6256ed2b74930fce0fd43ba1ed28f323cd80d4c24a984ca0eeba4"
|
|
6056
6061
|
},
|
|
6057
6062
|
{
|
|
6058
6063
|
"path": "tests/auth_resolve_failure.mjs",
|
|
@@ -6402,7 +6407,7 @@
|
|
|
6402
6407
|
{
|
|
6403
6408
|
"path": "tests/criterion_authoring_gate.mjs",
|
|
6404
6409
|
"mode": "0000644",
|
|
6405
|
-
"sha256": "
|
|
6410
|
+
"sha256": "dc3319f053701521a822a559879f14b5dbcb2a7fdaa0d403579d2bb66639e708"
|
|
6406
6411
|
},
|
|
6407
6412
|
{
|
|
6408
6413
|
"path": "tests/criterion_progress.mjs",
|
|
@@ -6762,27 +6767,27 @@
|
|
|
6762
6767
|
{
|
|
6763
6768
|
"path": "tests/governance_abuse_matrix.mjs",
|
|
6764
6769
|
"mode": "0000644",
|
|
6765
|
-
"sha256": "
|
|
6770
|
+
"sha256": "8ce5b98fefea522b7e80c3bf19097b7d8d75ec513c07495a355eb4fbc0258273"
|
|
6766
6771
|
},
|
|
6767
6772
|
{
|
|
6768
6773
|
"path": "tests/governance_catalog.mjs",
|
|
6769
6774
|
"mode": "0000644",
|
|
6770
|
-
"sha256": "
|
|
6775
|
+
"sha256": "0353f045a26904d31692c2edcacdb3032292073a5957ef880026451dacfc54c5"
|
|
6771
6776
|
},
|
|
6772
6777
|
{
|
|
6773
6778
|
"path": "tests/governance_claim_eligibility.mjs",
|
|
6774
6779
|
"mode": "0000644",
|
|
6775
|
-
"sha256": "
|
|
6780
|
+
"sha256": "33cb7e88aaf45dac176216c29eb41d2ba5152779e53cb91779d81006f2e6c043"
|
|
6776
6781
|
},
|
|
6777
6782
|
{
|
|
6778
6783
|
"path": "tests/governance_config.mjs",
|
|
6779
6784
|
"mode": "0000644",
|
|
6780
|
-
"sha256": "
|
|
6785
|
+
"sha256": "c71ac0c7a7b519dac0fed1557f6ce5de52bf29bb830ee940e7cfcb29ce483205"
|
|
6781
6786
|
},
|
|
6782
6787
|
{
|
|
6783
6788
|
"path": "tests/governance_fold.mjs",
|
|
6784
6789
|
"mode": "0000644",
|
|
6785
|
-
"sha256": "
|
|
6790
|
+
"sha256": "3f4e1ae54f7c6d64c5029de306483542bafd894cc82417c23ed989cb3c6ce58f"
|
|
6786
6791
|
},
|
|
6787
6792
|
{
|
|
6788
6793
|
"path": "tests/governance_fold_bench.mjs",
|
|
@@ -6792,67 +6797,67 @@
|
|
|
6792
6797
|
{
|
|
6793
6798
|
"path": "tests/governance_live_proof.mjs",
|
|
6794
6799
|
"mode": "0000644",
|
|
6795
|
-
"sha256": "
|
|
6800
|
+
"sha256": "84ce76ea6120a63e563fe3436861eeeeb58553575312adaad2c78c4f44896b04"
|
|
6796
6801
|
},
|
|
6797
6802
|
{
|
|
6798
6803
|
"path": "tests/governance_ownership_scope.mjs",
|
|
6799
6804
|
"mode": "0000644",
|
|
6800
|
-
"sha256": "
|
|
6805
|
+
"sha256": "d3519defcf32de2c11a88815fff216ce2cfc8d5cd2144e88159e04b6776b395a"
|
|
6801
6806
|
},
|
|
6802
6807
|
{
|
|
6803
6808
|
"path": "tests/governance_page_gates.mjs",
|
|
6804
6809
|
"mode": "0000644",
|
|
6805
|
-
"sha256": "
|
|
6810
|
+
"sha256": "fa1c55eab1b9e59c4333490a403f107f4aa76492425a6a19883a723a50d85fbc"
|
|
6806
6811
|
},
|
|
6807
6812
|
{
|
|
6808
6813
|
"path": "tests/governance_parity.mjs",
|
|
6809
6814
|
"mode": "0000644",
|
|
6810
|
-
"sha256": "
|
|
6815
|
+
"sha256": "12c821eb8c1e051b9de43a9759ea0c5954433b89a88ed4f83699e8cf726979dc"
|
|
6811
6816
|
},
|
|
6812
6817
|
{
|
|
6813
6818
|
"path": "tests/governance_principals.mjs",
|
|
6814
6819
|
"mode": "0000644",
|
|
6815
|
-
"sha256": "
|
|
6820
|
+
"sha256": "a4f1f049d30a850a8f7d9e91c4cf00900a03ec568e4a5c80b264729646b48039"
|
|
6816
6821
|
},
|
|
6817
6822
|
{
|
|
6818
6823
|
"path": "tests/governance_protected_surfaces.mjs",
|
|
6819
6824
|
"mode": "0000644",
|
|
6820
|
-
"sha256": "
|
|
6825
|
+
"sha256": "2c1fc4b88843d6c76054fb8c42a66acfa829396d3323bf4b7e406c550d21ca0d"
|
|
6821
6826
|
},
|
|
6822
6827
|
{
|
|
6823
6828
|
"path": "tests/governance_require_permission.mjs",
|
|
6824
6829
|
"mode": "0000644",
|
|
6825
|
-
"sha256": "
|
|
6830
|
+
"sha256": "754597d2bd60721ba6cdc99f3fa105960072ddd5873394ca83b1aed8c3236eb4"
|
|
6826
6831
|
},
|
|
6827
6832
|
{
|
|
6828
6833
|
"path": "tests/governance_resolver.mjs",
|
|
6829
6834
|
"mode": "0000644",
|
|
6830
|
-
"sha256": "
|
|
6835
|
+
"sha256": "ee33af15eca84277e412c0e939aaee7215d0e0f34728d70d1794e4018dcadd30"
|
|
6831
6836
|
},
|
|
6832
6837
|
{
|
|
6833
6838
|
"path": "tests/governance_role_sync.mjs",
|
|
6834
6839
|
"mode": "0000644",
|
|
6835
|
-
"sha256": "
|
|
6840
|
+
"sha256": "39ccb49d9e7d3b516f386e78e615cbc58c2214046c4c3c5843f09d3b9aba4323"
|
|
6836
6841
|
},
|
|
6837
6842
|
{
|
|
6838
6843
|
"path": "tests/governance_routes.mjs",
|
|
6839
6844
|
"mode": "0000644",
|
|
6840
|
-
"sha256": "
|
|
6845
|
+
"sha256": "6f84606c0735efe47af9c8badf6e59d0fa570ad065107eaab93f4cc704101d35"
|
|
6841
6846
|
},
|
|
6842
6847
|
{
|
|
6843
6848
|
"path": "tests/governance_seed.mjs",
|
|
6844
6849
|
"mode": "0000644",
|
|
6845
|
-
"sha256": "
|
|
6850
|
+
"sha256": "88d0ffbe10e91a6427919ee379ede9d72424b899e600a1f7ae35138f0a186ed9"
|
|
6846
6851
|
},
|
|
6847
6852
|
{
|
|
6848
6853
|
"path": "tests/governance_session_scope.mjs",
|
|
6849
6854
|
"mode": "0000644",
|
|
6850
|
-
"sha256": "
|
|
6855
|
+
"sha256": "c373907ba33ebceca48397c281a9920c58a3cec4d508b4db1fa289e35f34fef7"
|
|
6851
6856
|
},
|
|
6852
6857
|
{
|
|
6853
6858
|
"path": "tests/governance_vanilla_boot.mjs",
|
|
6854
6859
|
"mode": "0000644",
|
|
6855
|
-
"sha256": "
|
|
6860
|
+
"sha256": "ee9c6fe61ef2b747a7aebd2cc1a000282def4e9c8bd40c181f726c3494c8660c"
|
|
6856
6861
|
},
|
|
6857
6862
|
{
|
|
6858
6863
|
"path": "tests/grade_aggregates_unavailable.mjs",
|
|
@@ -6927,7 +6932,7 @@
|
|
|
6927
6932
|
{
|
|
6928
6933
|
"path": "tests/hall_page_gate_map.mjs",
|
|
6929
6934
|
"mode": "0000644",
|
|
6930
|
-
"sha256": "
|
|
6935
|
+
"sha256": "c26f031e998ab9a7339c3bbbef8f15d8de913b680794d3077abde509c21be80b"
|
|
6931
6936
|
},
|
|
6932
6937
|
{
|
|
6933
6938
|
"path": "tests/hall_palette.mjs",
|
|
@@ -7152,7 +7157,7 @@
|
|
|
7152
7157
|
{
|
|
7153
7158
|
"path": "tests/memory_isolation.mjs",
|
|
7154
7159
|
"mode": "0000644",
|
|
7155
|
-
"sha256": "
|
|
7160
|
+
"sha256": "2982e61db8b1b3862dffa75d4cc3a9ce1a422b9070a9b84cc080247f4af1fa62"
|
|
7156
7161
|
},
|
|
7157
7162
|
{
|
|
7158
7163
|
"path": "tests/memory_map.mjs",
|
|
@@ -7252,7 +7257,7 @@
|
|
|
7252
7257
|
{
|
|
7253
7258
|
"path": "tests/module_loader.mjs",
|
|
7254
7259
|
"mode": "0000644",
|
|
7255
|
-
"sha256": "
|
|
7260
|
+
"sha256": "a4616843e5bdd5ff4101c6a3d0b350f574b66d9bfb608c64edc62a2e9bfea445"
|
|
7256
7261
|
},
|
|
7257
7262
|
{
|
|
7258
7263
|
"path": "tests/module_manifest.mjs",
|
|
@@ -7342,7 +7347,7 @@
|
|
|
7342
7347
|
{
|
|
7343
7348
|
"path": "tests/onboarding_observability.mjs",
|
|
7344
7349
|
"mode": "0000644",
|
|
7345
|
-
"sha256": "
|
|
7350
|
+
"sha256": "2423b4de9df54cfe2d127d8b3983b05f8e5ec7c15f7b325b6e81931d31a51061"
|
|
7346
7351
|
},
|
|
7347
7352
|
{
|
|
7348
7353
|
"path": "tests/onboarding_route_signals.mjs",
|
|
@@ -7547,7 +7552,7 @@
|
|
|
7547
7552
|
{
|
|
7548
7553
|
"path": "tests/rank_tier_single_source.mjs",
|
|
7549
7554
|
"mode": "0000644",
|
|
7550
|
-
"sha256": "
|
|
7555
|
+
"sha256": "ab8d36c686f52459d2f751e763ffda9ca7f8ecf7e8376f929cd5feee299557cc"
|
|
7551
7556
|
},
|
|
7552
7557
|
{
|
|
7553
7558
|
"path": "tests/rate_limit_public.mjs",
|
|
@@ -7612,7 +7617,7 @@
|
|
|
7612
7617
|
{
|
|
7613
7618
|
"path": "tests/route_permission_check.mjs",
|
|
7614
7619
|
"mode": "0000644",
|
|
7615
|
-
"sha256": "
|
|
7620
|
+
"sha256": "69c4ae6e09eb090ba3af4dd080f47beb7bbf22382e7ded03e55e1b1842bf96b6"
|
|
7616
7621
|
},
|
|
7617
7622
|
{
|
|
7618
7623
|
"path": "tests/route_rank_check.mjs",
|
package/docs/api/openapi.json
CHANGED
|
@@ -5110,7 +5110,7 @@
|
|
|
5110
5110
|
"summary": "GET /governance/assignments",
|
|
5111
5111
|
"description": "governance.manage — every builder↔role assignment row.\n\n**Rank:** `archon` — Archon only (rank and identity management + the escalation keys — the trust boundary).\n\n**Permissions:** `governance.manage` (all required).",
|
|
5112
5112
|
"x-rank": "archon",
|
|
5113
|
-
"x-source": "modules/
|
|
5113
|
+
"x-source": "modules/government/routes/governance.js",
|
|
5114
5114
|
"x-permissions": [
|
|
5115
5115
|
"governance.manage"
|
|
5116
5116
|
],
|
|
@@ -5149,7 +5149,7 @@
|
|
|
5149
5149
|
"summary": "POST /governance/assignments",
|
|
5150
5150
|
"description": "governance.manage — assign a CUSTOM role to a builder. assigned_by is ALWAYS the session builder, never input (the audit trail's \"who did this\" must be the authenticated actor).\n\n**Rank:** `archon` — Archon only (rank and identity management + the escalation keys — the trust boundary).\n\n**Permissions:** `governance.manage` (all required).",
|
|
5151
5151
|
"x-rank": "archon",
|
|
5152
|
-
"x-source": "modules/
|
|
5152
|
+
"x-source": "modules/government/routes/governance.js",
|
|
5153
5153
|
"x-permissions": [
|
|
5154
5154
|
"governance.manage"
|
|
5155
5155
|
],
|
|
@@ -5194,7 +5194,7 @@
|
|
|
5194
5194
|
"summary": "DELETE /governance/assignments/:builderId/:roleKey",
|
|
5195
5195
|
"description": "governance.manage — remove a custom-role assignment. Idempotent: `removed` says whether a row went away.\n\n**Rank:** `archon` — Archon only (rank and identity management + the escalation keys — the trust boundary).\n\n**Permissions:** `governance.manage` (all required).",
|
|
5196
5196
|
"x-rank": "archon",
|
|
5197
|
-
"x-source": "modules/
|
|
5197
|
+
"x-source": "modules/government/routes/governance.js",
|
|
5198
5198
|
"x-permissions": [
|
|
5199
5199
|
"governance.manage"
|
|
5200
5200
|
],
|
|
@@ -5258,7 +5258,7 @@
|
|
|
5258
5258
|
"summary": "GET /governance/permissions",
|
|
5259
5259
|
"description": "governance.manage — the permission catalog + principals, straight from code (the catalog is CODE, not a table); no DB read. Principals are read-only by construction. Three flags the tab renders its locks from, and the tab must read all three rather than just `grantable`, because since ADR 0172 grantability depends on WHICH role is selected: • `grantable` — the CUSTOM-role answer (system:false). Unchanged meaning. • `system` — an in-app Archon power: locked on a custom role, togglable on a sub-Archon rank-role. • `substrate` — locked EVERYWHERE, on every role, forever (ADR 0043).\n\n**Rank:** `archon` — Archon only (rank and identity management + the escalation keys — the trust boundary).\n\n**Permissions:** `governance.manage` (all required).",
|
|
5260
5260
|
"x-rank": "archon",
|
|
5261
|
-
"x-source": "modules/
|
|
5261
|
+
"x-source": "modules/government/routes/governance.js",
|
|
5262
5262
|
"x-permissions": [
|
|
5263
5263
|
"governance.manage"
|
|
5264
5264
|
],
|
|
@@ -5299,7 +5299,7 @@
|
|
|
5299
5299
|
"summary": "GET /governance/roles",
|
|
5300
5300
|
"description": "governance.manage — the full role list with each role's grants.\n\n**Rank:** `archon` — Archon only (rank and identity management + the escalation keys — the trust boundary).\n\n**Permissions:** `governance.manage` (all required).",
|
|
5301
5301
|
"x-rank": "archon",
|
|
5302
|
-
"x-source": "modules/
|
|
5302
|
+
"x-source": "modules/government/routes/governance.js",
|
|
5303
5303
|
"x-permissions": [
|
|
5304
5304
|
"governance.manage"
|
|
5305
5305
|
],
|
|
@@ -5338,7 +5338,7 @@
|
|
|
5338
5338
|
"summary": "POST /governance/roles",
|
|
5339
5339
|
"description": "governance.manage — create a CUSTOM role (is_system false, no seeded_rank — the seeded four exist only via governance_002). Grants are added one at a time via the toggle below, so creation carries none.\n\n**Rank:** `archon` — Archon only (rank and identity management + the escalation keys — the trust boundary).\n\n**Permissions:** `governance.manage` (all required).",
|
|
5340
5340
|
"x-rank": "archon",
|
|
5341
|
-
"x-source": "modules/
|
|
5341
|
+
"x-source": "modules/government/routes/governance.js",
|
|
5342
5342
|
"x-permissions": [
|
|
5343
5343
|
"governance.manage"
|
|
5344
5344
|
],
|
|
@@ -5390,7 +5390,7 @@
|
|
|
5390
5390
|
"summary": "PUT /governance/roles/:roleKey/permissions/:permissionKey",
|
|
5391
5391
|
"description": "governance.manage — grant one permission to a role (the toggle's ON half). The order of refusals is the authority order: role exists → role is not the Archon one → the key exists → the key is grantable TO THIS ROLE.\n\n**Rank:** `archon` — Archon only (rank and identity management + the escalation keys — the trust boundary).\n\n**Permissions:** `governance.manage` (all required).",
|
|
5392
5392
|
"x-rank": "archon",
|
|
5393
|
-
"x-source": "modules/
|
|
5393
|
+
"x-source": "modules/government/routes/governance.js",
|
|
5394
5394
|
"x-permissions": [
|
|
5395
5395
|
"governance.manage"
|
|
5396
5396
|
],
|
|
@@ -5452,7 +5452,7 @@
|
|
|
5452
5452
|
"summary": "DELETE /governance/roles/:roleKey/permissions/:permissionKey",
|
|
5453
5453
|
"description": "governance.manage — revoke a grant (the toggle's OFF half). Deliberately NOT validated against the catalog: a grant whose key the catalog since retired is exactly the row an Archon most needs to remove (the resolver already drops it — this is hygiene, not authority).\n\n**Rank:** `archon` — Archon only (rank and identity management + the escalation keys — the trust boundary).\n\n**Permissions:** `governance.manage` (all required).",
|
|
5454
5454
|
"x-rank": "archon",
|
|
5455
|
-
"x-source": "modules/
|
|
5455
|
+
"x-source": "modules/government/routes/governance.js",
|
|
5456
5456
|
"x-permissions": [
|
|
5457
5457
|
"governance.manage"
|
|
5458
5458
|
],
|
|
@@ -5516,7 +5516,7 @@
|
|
|
5516
5516
|
"summary": "POST /governance/roles/:roleKey/reset",
|
|
5517
5517
|
"description": "governance.manage — restore a SEEDED rank-role to its catalog default (ADR 0172). The counterweight to making the rank-roles editable: a rank's grant set is ~60 rows, so an owner who drifts one has no practical way back by clicking, and \"what does Trusted mean by default\" is a question only the catalog can answer. Restores catalog.seedForRank(role.seeded_rank) — the same derivation governance_002 seeded from, so the answer cannot drift from the floors even after later catalog edits. Deliberately NOT offered for a CUSTOM role: a custom role has no catalog default to return to (its \"default\" is the empty set it was created with), so the honest verb there is revoking the grants, which the toggle already does.\n\n**Rank:** `archon` — Archon only (rank and identity management + the escalation keys — the trust boundary).\n\n**Permissions:** `governance.manage` (all required).",
|
|
5518
5518
|
"x-rank": "archon",
|
|
5519
|
-
"x-source": "modules/
|
|
5519
|
+
"x-source": "modules/government/routes/governance.js",
|
|
5520
5520
|
"x-permissions": [
|
|
5521
5521
|
"governance.manage"
|
|
5522
5522
|
],
|
|
@@ -410,7 +410,7 @@ function substrateKeys() {
|
|
|
410
410
|
//
|
|
411
411
|
// The owner's 2026-08-16 decision made the three sub-Archon RANK roles editable, so
|
|
412
412
|
// "is this grantable" stopped being a property of the key alone. `role` is a
|
|
413
|
-
//
|
|
413
|
+
// government_ranks row ({ is_system, seeded_rank }); the four answers:
|
|
414
414
|
//
|
|
415
415
|
// • NEVER, to any role — a machine-principal key (held by an identity, not a role)
|
|
416
416
|
// and a SUBSTRATE key. The substrate three are inert as grant rows: no route
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
// assignments are DB rows. This file resolves the config half, mirroring
|
|
7
7
|
// src/branding.js precedence exactly:
|
|
8
8
|
//
|
|
9
|
-
// env override -> instance config (config/
|
|
10
|
-
// starter (config/
|
|
9
|
+
// env override -> instance config (config/government.json) -> neutral
|
|
10
|
+
// starter (config/government.neutral.json)
|
|
11
11
|
//
|
|
12
12
|
// A fresh instance with NO config resolves to the PLAIN neutral role set — never to
|
|
13
13
|
// a host's labels (fail-to-vanilla, the same posture branding takes). R102 proves
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
// second source of authority truth, which is exactly what ADR 0016 forbids:
|
|
18
18
|
// • config — TEMPLATES/DEFAULTS: a role's display label, its description, and the
|
|
19
19
|
// permission list a starting CUSTOM role template proposes. Shapes only.
|
|
20
|
-
// • DB — LIVE STATE:
|
|
21
|
-
//
|
|
20
|
+
// • DB — LIVE STATE: government_ranks / government_rank_permissions /
|
|
21
|
+
// government_builder_ranks (R93). WHO HOLDS WHAT is a row, resolved server-side
|
|
22
22
|
// per request by resolver.js. Nothing in this file grants anything to anybody.
|
|
23
23
|
//
|
|
24
24
|
// Three fail-closed rules, in the same spirit as resolver.js's drop-unknown-key rule:
|
|
@@ -55,8 +55,8 @@ const catalog = require('./catalog');
|
|
|
55
55
|
// split lands, the INSTANCE path routes through resolveInstanceRoot() — the module
|
|
56
56
|
// doorway does not re-export the root resolvers yet.
|
|
57
57
|
const ROOT = path.resolve(__dirname, '..', '..');
|
|
58
|
-
const NEUTRAL_PATH = path.join(ROOT, 'config', '
|
|
59
|
-
const INSTANCE_PATH = path.join(ROOT, 'config', '
|
|
58
|
+
const NEUTRAL_PATH = path.join(ROOT, 'config', 'government.neutral.json');
|
|
59
|
+
const INSTANCE_PATH = path.join(ROOT, 'config', 'government.json');
|
|
60
60
|
|
|
61
61
|
const SEEDED_RANK_ROLES = new Set(catalog.RANK_ORDER);
|
|
62
62
|
|