@bongos/core 1.19.248 → 1.19.249
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 +10 -10
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/src/bongos/module-scope-map.js +21 -0
- package/src/module-api.js +3 -1
- package/tests/module-scope-map.mjs +40 -0
package/.bongos-core.json
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
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.249",
|
|
6
|
+
"core_contract": "1.19.249",
|
|
7
|
+
"source_commit": "992220580b9a449998b6c24f857cf0e770bb05cb",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-08-18T23:
|
|
9
|
+
"built_at": "2026-08-18T23:57:42.981Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 312,
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
19
|
"file_count": 1663,
|
|
20
|
-
"tree_sha256": "
|
|
20
|
+
"tree_sha256": "b7562afed829bda45658ec0e21c2c045fd7d4828b7074f2d4834937bb15d0121",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/blocker-review/SKILL.md",
|
|
@@ -4347,12 +4347,12 @@
|
|
|
4347
4347
|
{
|
|
4348
4348
|
"path": "package-lock.json",
|
|
4349
4349
|
"mode": "0000644",
|
|
4350
|
-
"sha256": "
|
|
4350
|
+
"sha256": "72b91522dadad774aa718d0b832f77d942d427175b52285eb15416e4f95a1337"
|
|
4351
4351
|
},
|
|
4352
4352
|
{
|
|
4353
4353
|
"path": "package.json",
|
|
4354
4354
|
"mode": "0000644",
|
|
4355
|
-
"sha256": "
|
|
4355
|
+
"sha256": "480de6ffb6a5f6da702e74843627d5083d9dec4a76e9efcb6a1e49f97ade8cbb"
|
|
4356
4356
|
},
|
|
4357
4357
|
{
|
|
4358
4358
|
"path": "public-docs/index.html",
|
|
@@ -5802,7 +5802,7 @@
|
|
|
5802
5802
|
{
|
|
5803
5803
|
"path": "src/bongos/module-scope-map.js",
|
|
5804
5804
|
"mode": "0000644",
|
|
5805
|
-
"sha256": "
|
|
5805
|
+
"sha256": "e0c20565bb59c93fa9fff0aafa5eb246a0b16564604d18b5ae9ca350dd9e1a44"
|
|
5806
5806
|
},
|
|
5807
5807
|
{
|
|
5808
5808
|
"path": "src/bongos/module-submissions.js",
|
|
@@ -5972,7 +5972,7 @@
|
|
|
5972
5972
|
{
|
|
5973
5973
|
"path": "src/module-api.js",
|
|
5974
5974
|
"mode": "0000644",
|
|
5975
|
-
"sha256": "
|
|
5975
|
+
"sha256": "79234cc30c410a215492f897139bf042c2ff58f778e490d18ec3f65a6fd860f8"
|
|
5976
5976
|
},
|
|
5977
5977
|
{
|
|
5978
5978
|
"path": "src/module-loader/catalog.js",
|
|
@@ -7442,7 +7442,7 @@
|
|
|
7442
7442
|
{
|
|
7443
7443
|
"path": "tests/module-scope-map.mjs",
|
|
7444
7444
|
"mode": "0000644",
|
|
7445
|
-
"sha256": "
|
|
7445
|
+
"sha256": "2b7bc9594489401b3dd67070c3e549d0a81347abb625a04fe19a41a178af8857"
|
|
7446
7446
|
},
|
|
7447
7447
|
{
|
|
7448
7448
|
"path": "tests/module_api.mjs",
|
package/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bongos/core",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.249",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@bongos/core",
|
|
9
|
-
"version": "1.19.
|
|
9
|
+
"version": "1.19.249",
|
|
10
10
|
"license": "AGPL-3.0-or-later",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"express": "^4.21.2",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bongos/core",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.249",
|
|
4
4
|
"description": "Cloud Bongos — the AI-first build platform core (GDS + platform surfaces + module system), installed as a versioned dependency (ADR 0108).",
|
|
5
5
|
"license": "AGPL-3.0-or-later",
|
|
6
6
|
"main": "src/platform-server.js",
|
|
@@ -274,6 +274,27 @@ const MODULE_GLOBS = {
|
|
|
274
274
|
'scripts/gds/box.js', 'scripts/gds/box-auth-check.js', 'scripts/gds/box-connect-lib.js',
|
|
275
275
|
'scripts/gds/smoke-box.sh',
|
|
276
276
|
],
|
|
277
|
+
// --- the dev-hygiene enforcement surfaces: CI workflows, the agent permission/
|
|
278
|
+
// hook files, git hooks, root manifests, and the fitness/entropy tooling
|
|
279
|
+
// (task 1003124, goal 1000076). Before this key, NO key resolved these paths,
|
|
280
|
+
// so the continuous-red-team goal could not wall its own work (the
|
|
281
|
+
// 1002690/1002736 precedent). Most of these paths were ALREADY in the
|
|
282
|
+
// protected-surfaces registry (ADR 0043) — what was missing was ownership —
|
|
283
|
+
// so `protected` DERIVES true via the .github/ / package.json / .husky/ /
|
|
284
|
+
// .claude-hooks overlap. Boundaries: '.claude/scheduled-tasks/' stays with
|
|
285
|
+
// autonomy and '.claude/agents/' with agents (their source surfaces);
|
|
286
|
+
// '.claude/skills/' stays with whichever module ships the skill.
|
|
287
|
+
// '.npmrc' and '.gitleaks.toml' are pre-carved territory for goal 1000076's
|
|
288
|
+
// R-tasks (the carve precedes the feature — ADR 0086 §4).
|
|
289
|
+
devsecops: [
|
|
290
|
+
'.github/',
|
|
291
|
+
'.claude/settings.json', '.claude/hooks/',
|
|
292
|
+
'.husky/',
|
|
293
|
+
'.npmrc', '.gitleaks.toml',
|
|
294
|
+
'package.json', 'package-lock.json',
|
|
295
|
+
'scripts/gds/fitness.js', 'scripts/gds/docs-entropy.js',
|
|
296
|
+
'scripts/gds/redteam-patrol.js',
|
|
297
|
+
],
|
|
277
298
|
};
|
|
278
299
|
|
|
279
300
|
// A glob set is protected iff it overlaps the imported PROTECTED_GLOBS — the one
|
package/src/module-api.js
CHANGED
|
@@ -923,8 +923,10 @@ const { validateOrRespond, LIMITS, parseId, asyncHandler, corsPublicGet, parsePa
|
|
|
923
923
|
// landed since 1.19.246 with no explicit bump. run 32197488065. (task 1002620)
|
|
924
924
|
// 1.19.248 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
925
925
|
// landed since 1.19.247 with no explicit bump. run 32198208766. (task 1002620)
|
|
926
|
+
// 1.19.249 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
927
|
+
// landed since 1.19.248 with no explicit bump. run 32199293372. (task 1002620)
|
|
926
928
|
// ---------------------------------------------------------------------------
|
|
927
|
-
const CORE_VERSION = '1.19.
|
|
929
|
+
const CORE_VERSION = '1.19.249'; // CI auto-patch carrier (ADR 0161); see changelog above
|
|
928
930
|
|
|
929
931
|
// A namespaced logger so a module's log lines are attributable + consistent.
|
|
930
932
|
// Usage: const log = api.logger('dev-box'); log.info('mounted');
|
|
@@ -166,3 +166,43 @@ test('agents joined the roster (task 1002736) — the territory goals 1000038/39
|
|
|
166
166
|
assert.equal(covers('src/bongos/auth.js'), false, 'the wall must not cover the kernel auth core');
|
|
167
167
|
assert.equal(covers('.claude/scheduled-tasks/bfg/SKILL.md'), false, 'scheduled-tasks belongs to autonomy, not agents');
|
|
168
168
|
});
|
|
169
|
+
|
|
170
|
+
test('devsecops joined the roster (task 1003124) — the enforcement territory goal 1000076 walls', () => {
|
|
171
|
+
// Before this, .github/, .claude/settings.json + hooks, .husky/, the root
|
|
172
|
+
// manifests, and the fitness/entropy tooling were covered by NO key, so the
|
|
173
|
+
// continuous-red-team goal (1000076) could not wall its own work.
|
|
174
|
+
assert.ok(scope.isModuleKey('devsecops'), 'roster missing module "devsecops"');
|
|
175
|
+
const globs = scope.globsForModules(['devsecops']);
|
|
176
|
+
assert.ok(globs.includes('.github/'), 'devsecops owns the CI workflow surface');
|
|
177
|
+
assert.ok(globs.includes('.claude/hooks/'), 'devsecops owns the agent hook surface');
|
|
178
|
+
assert.ok(globs.includes('scripts/gds/fitness.js'), 'the fitness tool travels with the domain');
|
|
179
|
+
// Derived, not hand-set: .github/, package.json, .husky/, .claude/hooks/ and
|
|
180
|
+
// .claude/settings.json all sit in the ADR 0043 protected-surfaces registry, so
|
|
181
|
+
// this key MUST derive protected — creating/widening a goal into it is Archon-only.
|
|
182
|
+
assert.equal(scope.isProtectedModule('devsecops'), true, 'devsecops must derive protected (trust-core overlap)');
|
|
183
|
+
assert.equal(
|
|
184
|
+
scope.scopeForModule('devsecops').protected,
|
|
185
|
+
scope.isProtected(globs),
|
|
186
|
+
'protected must be the faithful derivation, never a literal',
|
|
187
|
+
);
|
|
188
|
+
// Asserted through the REAL consumer (directional containment), not re-implemented.
|
|
189
|
+
const covers = (touch) => gsc.scopeSubset(['devsecops'], [touch]).ok;
|
|
190
|
+
for (const touch of [
|
|
191
|
+
'.github/workflows/unit.yml', // the CI gate R03/R04 extend
|
|
192
|
+
'.claude/settings.json', // the deny rules R02 adds
|
|
193
|
+
'.claude/hooks/secret-gate.js', // the PreToolUse hook R02 adds
|
|
194
|
+
'.npmrc', // the install-script policy R04 lands
|
|
195
|
+
'package.json', // dependency manifest (R04/R07)
|
|
196
|
+
'.gitleaks.toml', // the scanner config R03 lands
|
|
197
|
+
'scripts/gds/fitness.js', // the ratchet pack R06 extends
|
|
198
|
+
'scripts/gds/docs-entropy.js', // the entropy scanner behind the ratchet
|
|
199
|
+
]) {
|
|
200
|
+
assert.equal(covers(touch), true, `wall does not cover ${touch}`);
|
|
201
|
+
}
|
|
202
|
+
// …and still BOUNDS: the trust kernel, the sibling .claude surfaces, and the
|
|
203
|
+
// lifecycle CLIs stay outside this wall.
|
|
204
|
+
assert.equal(covers('src/bongos/auth.js'), false, 'the wall must not cover the kernel auth core');
|
|
205
|
+
assert.equal(covers('.claude/scheduled-tasks/bfg/SKILL.md'), false, 'scheduled-tasks belongs to autonomy, not devsecops');
|
|
206
|
+
assert.equal(covers('.claude/skills/builder-ship/SKILL.md'), false, 'skills stay with the module that ships them');
|
|
207
|
+
assert.equal(covers('scripts/gds/ship.js'), false, 'the ship pipeline belongs to lifecycle, not devsecops');
|
|
208
|
+
});
|