borgmcp-shared 0.4.0 → 0.4.2
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/README.md +27 -15
- package/SECURITY.md +6 -5
- package/dist/conformance/adapter.d.ts +58 -8
- package/dist/conformance/adapter.d.ts.map +1 -1
- package/dist/conformance/adapter.js +259 -14
- package/dist/conformance/adapter.js.map +1 -1
- package/dist/protocol/contract.d.ts +14 -1
- package/dist/protocol/contract.d.ts.map +1 -1
- package/dist/protocol/contract.js +14 -1
- package/dist/protocol/contract.js.map +1 -1
- package/dist/protocol/coordination.d.ts +25 -0
- package/dist/protocol/coordination.d.ts.map +1 -1
- package/dist/protocol/coordination.js +44 -0
- package/dist/protocol/coordination.js.map +1 -1
- package/dist/templates.d.ts +1 -1
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +9 -11
- package/dist/templates.js.map +1 -1
- package/docs/enrollment.md +18 -15
- package/docs/releasing.md +57 -35
- package/package.json +2 -2
- package/src/conformance/adapter.ts +588 -26
- package/src/protocol/contract.ts +14 -1
- package/src/protocol/coordination.ts +82 -0
- package/src/templates.ts +9 -11
package/dist/templates.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAI/B;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,WAAW,GAAG,UAAU,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;CACvC;AAED,MAAM,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;AA8ErD,eAAO,MAAM,qBAAqB,shDAQwM,CAAC;AAwB3O,eAAO,MAAM,gCAAgC,++VAsEkb,CAAC;AAEhe,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAI/B;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,WAAW,GAAG,UAAU,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;CACvC;AAED,MAAM,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;AA8ErD,eAAO,MAAM,qBAAqB,shDAQwM,CAAC;AAwB3O,eAAO,MAAM,gCAAgC,++VAsEkb,CAAC;AAEhe,eAAO,MAAM,oBAAoB,i4GAyB+N,CAAC;AAuEjQ,eAAO,MAAM,kCAAkC,wzDASqV,CAAC;AAErY,eAAO,MAAM,sCAAsC,+mFAUgjB,CAAC;AAYpmB,eAAO,MAAM,4BAA4B,+kCAQ4P,CAAC;AAEtS,eAAO,MAAM,gCAAgC,k4CAQ0G,CAAC;AAExJ,eAAO,MAAM,2BAA2B,kwDASmS,CAAC;AAE5U,eAAO,MAAM,uBAAuB,siEAWsN,CAAC;AAE3P,eAAO,MAAM,4BAA4B,UAExC,CAAC;AAEF,eAAO,MAAM,8BAA8B,UAW1C,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,YAAY,EAAE,CAAC;IAStB,cAAc,CAAC,EAAE,MAAM,CAAC;IAOxB,gBAAgB,CAAC,EAAE,eAAe,CAAC;CACpC;AAiCD,eAAO,MAAM,2BAA2B,2xBAEsuB,CAAC;AA2Z/wB,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAG9C,CAAC;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAEzD;AAED,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAaD,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,QAAQ,GAAG,IAAI,GACxB,MAAM,CAKR;AAaD,wBAAgB,4BAA4B,CAC1C,oBAAoB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/C,QAAQ,EAAE,QAAQ,GACjB,MAAM,GAAG,IAAI,CAQf;AAED,wBAAgB,+BAA+B,CAC7C,gBAAgB,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EACpD,QAAQ,EAAE,QAAQ,GAAG,IAAI,GACxB,eAAe,GAAG,IAAI,CAExB"}
|
package/dist/templates.js
CHANGED
|
@@ -167,9 +167,9 @@ The cube's release-cycle discipline has three documented shapes; the seat-holder
|
|
|
167
167
|
**Frontend/web-UI testing-track dispatch instruction:** for PRs touching user-facing web UI bundles, explicitly instruct Release Quality in the dispatch: "load the built page in a browser, capture console output, and include it in RQ-APPROVED [testing]." Diff-only review routinely misses client-side bundle errors.
|
|
168
168
|
|
|
169
169
|
**SR-exclusion list (autonomous-mode shape NOT eligible — explicit SR gate required regardless):**
|
|
170
|
-
- PRs introducing new auth-bypass call sites (
|
|
171
|
-
- PRs changing
|
|
172
|
-
- PRs modifying
|
|
170
|
+
- PRs introducing new auth-bypass call sites (scoped-store gates, admin-mode helpers)
|
|
171
|
+
- PRs changing authorization-decision caching mechanisms (session cache storage swaps)
|
|
172
|
+
- PRs modifying identity or session-token handling (verification, renewal, revocation)
|
|
173
173
|
- PRs touching CORS allowlist matching, encryption key handling, or webhook signature verification
|
|
174
174
|
|
|
175
175
|
These exclusions reflect the cube's documented threat model. Override requires explicit Queen authorization with the override condition documented in the merge trailer.
|
|
@@ -403,8 +403,7 @@ const SOFTWARE_DEV = {
|
|
|
403
403
|
'PD-APPROVED',
|
|
404
404
|
'PS-APPROVED',
|
|
405
405
|
],
|
|
406
|
-
routing: '
|
|
407
|
-
default_to: ['coordinator', 'queen'],
|
|
406
|
+
routing: 'broadcast',
|
|
408
407
|
lifecycle: 'completion',
|
|
409
408
|
},
|
|
410
409
|
{
|
|
@@ -530,7 +529,7 @@ Workflow:
|
|
|
530
529
|
- Verify correctness: does the code do what the commit message claims? Tests pass? Bundle size acceptable? Follows project conventions?
|
|
531
530
|
- **Verify implementation quality + suggest refactors when appropriate.** Beyond "does it work," ask: is the code clean and readable? Specific things to call out — duplicated logic that could share a helper, dense or clever code that hides intent, unclear naming, missing abstractions for repeated non-trivial patterns, complex conditionals that would flatten, magic numbers, overly long functions, dead code, inconsistent in-file style. **Balance against "don't over-engineer"**: per the project's standing rule, three similar lines is better than a premature abstraction. Refactors should reduce real complexity, not add layers for hypothetical future cases. Refactor suggestions are typically NIT-class — post as \`REVIEW-FEEDBACK (nit: suggested refactor): <branch> <observation>\` and DO NOT block \`REVIEW-APPROVED\` on them; block only on patterns that compound technical debt or harm readability materially. Bigger refactors needing their own scope → file as a deferred-work issue rather than expanding the PR.
|
|
532
531
|
- **Replaced-module behavioral diff.** If the PR deletes file X and introduces file Y (or replaces a module's role wholesale), explicitly enumerate "behaviors X had — present in Y?" before approval. Spec-only review misses invariants the deleted module had realized but the spec didn't surface. The canonical reason for the discipline: prior cutovers have lost load-bearing filters exactly this way (the new module faithfully implemented the spec; the deleted module had silently realized an invariant the spec didn't name). Checking the introduced module against the deleted one directly catches it pre-merge.
|
|
533
|
-
- **Security review is Security Auditor's lane, not yours.** If the PR touches auth,
|
|
532
|
+
- **Security review is Security Auditor's lane, not yours.** If the PR touches auth, scoped data access (scoped-store wrappers / session-bound query helpers), encryption, secret handling, input validation, origin allowlists, rate limits, credential flows, or sensitive-data paths, surface that to the cube (e.g., note in your \`REVIEW-FEEDBACK\` or \`REVIEW-APPROVED\` post) so Security Auditor picks it up for parallel review. Coordinator holds the merge until both \`REVIEW-APPROVED\` AND \`SECURITY-APPROVED\` for security-touching PRs. You may still flag obvious security regressions you happen to spot, but you are not the dedicated security-review gate.
|
|
534
533
|
- For each finding worth flagging, post \`REVIEW-FEEDBACK: <branch> <observation>\` — high-confidence issues only. Sort blockers from nits explicitly.
|
|
535
534
|
- When done, post either \`REVIEW-APPROVED: <branch>\` (clean) or expect the Builder to address feedback and re-post \`REVIEW-READY:\`. Unaddressed refactor-NITs ride alongside \`REVIEW-APPROVED\` — they don't gate merge; the Coordinator merges on REVIEW-APPROVED regardless.
|
|
536
535
|
|
|
@@ -610,12 +609,12 @@ Boundaries:
|
|
|
610
609
|
detailed_description: `You are the cube's security specialist — the dedicated owner of the security expectations the project documents but no other role enforces. Other drones check correctness, behavior, experience, and performance; you check exploitability. Autonomous — coordinate through the log.
|
|
611
610
|
|
|
612
611
|
Your job:
|
|
613
|
-
- Review security-touching code changes for vulnerability classes: OWASP top 10, command injection, XSS, SQL injection, auth bypass, data leaks, path traversal, SSRF,
|
|
614
|
-
- Audit security-critical surfaces:
|
|
612
|
+
- Review security-touching code changes for vulnerability classes: OWASP top 10, command injection, XSS, SQL injection, auth bypass, data leaks, path traversal, SSRF, and races in authorization or session state.
|
|
613
|
+
- Audit security-critical surfaces: bearer and session verification, scoped data access (any function that gates data by session identity — scoped-store wrappers, session-bound query helpers, equivalent boundary guards), encryption (algorithms, key handling, IV/nonce uniqueness, secret storage), input validation at API boundaries (Zod schemas or equivalent), origin allowlists, rate limiters, dependency hygiene (CVE checks on dependency bumps), and sensitive local data paths.
|
|
615
614
|
- Run periodic full-codebase sweeps separate from per-pull-request review — walk the documented security expectations (project security instructions, threat-model docs, security checklists) and verify they still hold. Cadence: once per minor release or every ~2 weeks, whichever comes first. Catches the "we documented it but stopped enforcing it" failure mode.
|
|
616
615
|
|
|
617
616
|
When you engage on a PR:
|
|
618
|
-
- On regen, scan the log for \`REVIEW-READY:\` signals on branches touching security surface (auth,
|
|
617
|
+
- On regen, scan the log for \`REVIEW-READY:\` signals on branches touching security surface (auth, scoped data access, encryption, input validation, origin allowlists, rate limits, credential flows, sensitive-data paths, dependency bumps).
|
|
619
618
|
- For non-security-relevant changes (experience copy, version bumps, test infrastructure, internal refactors of non-security code), DON'T gate. Code Reviewer alone is the merge gate for those.
|
|
620
619
|
- Post \`STARTING: security review of <branch>\` and pull the diff.
|
|
621
620
|
|
|
@@ -666,8 +665,7 @@ const STARTER = {
|
|
|
666
665
|
{
|
|
667
666
|
class: 'completion-gate',
|
|
668
667
|
prefixes: ['APPROVED'],
|
|
669
|
-
routing: '
|
|
670
|
-
default_to: ['coordinator', 'queen'],
|
|
668
|
+
routing: 'broadcast',
|
|
671
669
|
lifecycle: 'completion',
|
|
672
670
|
},
|
|
673
671
|
{
|
package/dist/templates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
|
package/docs/enrollment.md
CHANGED
|
@@ -2,16 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
This document defines the data-only enrollment and cube-creation boundaries
|
|
4
4
|
shared by clients and servers. It does not define offline operator commands,
|
|
5
|
-
database transactions, or
|
|
6
|
-
security properties below.
|
|
7
|
-
|
|
8
|
-
This contract
|
|
9
|
-
published `borgmcp-shared@0.3.0` v1 baseline
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
5
|
+
database transactions, or a client storage API, but implementations must
|
|
6
|
+
preserve the security properties below.
|
|
7
|
+
|
|
8
|
+
This contract replaced the server-generated bearer response used by the
|
|
9
|
+
published `borgmcp-shared@0.3.0` v1 baseline and shipped in the immutable
|
|
10
|
+
`0.4.0` clean-slate v2 release. The immutable `v0.4.1` verification artifact
|
|
11
|
+
failed its cross-platform SBOM audit and must never be published or rerun.
|
|
12
|
+
This source now identifies the still-unpublished `0.4.2` recovery release without
|
|
13
|
+
changing the wire contract. The version bump grants no tag or publication
|
|
14
|
+
authority: creating the `v0.4.2` tag and publishing the reviewed artifact remain
|
|
15
|
+
separate, independently gated steps. There is no compatibility path that returns
|
|
16
|
+
a bearer from the server.
|
|
15
17
|
|
|
16
18
|
A client verifies the credential-free `GET /api/protocol` tag preflight before
|
|
17
19
|
it creates or sends any enrollment secret; a peer that presents a different
|
|
@@ -30,11 +32,12 @@ Before network I/O, the client generates:
|
|
|
30
32
|
unpadded base64url; and
|
|
31
33
|
- a canonical UUID retry key.
|
|
32
34
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
Before sending the request, the client persists both values in its single local
|
|
36
|
+
seat-record file with mode `0600`, using an atomic replacement under the store's
|
|
37
|
+
cross-process lock. The pending record is operation-scoped and cannot be loaded
|
|
38
|
+
as an active seat. The client retains and reuses the exact pending tuple after an
|
|
39
|
+
ambiguous timeout or connection loss. The wire contract never permits
|
|
40
|
+
URL/argv/environment transport or diagnostic output for these secrets.
|
|
38
41
|
|
|
39
42
|
## Exchange Request
|
|
40
43
|
|
package/docs/releasing.md
CHANGED
|
@@ -6,8 +6,9 @@ published from that exact tarball. Local publication and publication from an
|
|
|
6
6
|
unreviewed branch are not supported.
|
|
7
7
|
|
|
8
8
|
The active release policy is governed by the ratified
|
|
9
|
-
`shared-package-consumption
|
|
10
|
-
This document describes the
|
|
9
|
+
`shared-package-consumption`, `borgmcp-shared-coordinator-autonomy`, and
|
|
10
|
+
`npm-publish-sole-operator-approval` decisions. This document describes the
|
|
11
|
+
operator procedure; it does not authorize a release.
|
|
11
12
|
|
|
12
13
|
## Permanent Repository Configuration
|
|
13
14
|
|
|
@@ -67,8 +68,9 @@ Configure these controls before creating a release tag:
|
|
|
67
68
|
`SECURITY.md` directs reporters to the private reporting path, so disabled
|
|
68
69
|
reporting is always a release-blocking documentation failure.
|
|
69
70
|
|
|
70
|
-
The environment approval is the final technical control.
|
|
71
|
-
|
|
71
|
+
The environment approval is the final technical control. It appears only on the
|
|
72
|
+
`publish` job, after `validate` has verified the SR approval tuple. Approval must
|
|
73
|
+
remain pending while Security reviews the artifact produced by the `verify` job.
|
|
72
74
|
GitHub's ephemeral workflow token cannot read every repository-administration
|
|
73
75
|
setting checked by `scripts/verify-release-configuration.mjs`. An authorized
|
|
74
76
|
operator must run the guard with an administration-capable token before creating
|
|
@@ -88,7 +90,7 @@ before dependency installation, and includes the same values in the uploaded
|
|
|
88
90
|
`RUN_EVIDENCE` file. Never use the Actions rerun controls to advance a failed
|
|
89
91
|
immutable tag or proof run.
|
|
90
92
|
|
|
91
|
-
|
|
93
|
+
All three jobs reject a repository-root `.npmrc` before their first npm command. The
|
|
92
94
|
exact npm bootstrap uses isolated runner-temp prefix, user config, and cache
|
|
93
95
|
paths, forces `https://registry.npmjs.org`, disables scripts, and verifies both
|
|
94
96
|
the installed npm version and registry before adding its bin directory to
|
|
@@ -191,15 +193,23 @@ first:
|
|
|
191
193
|
- exercises npm's publish metadata in dry-run mode; and
|
|
192
194
|
- installs the exact tarball with scripts disabled in a clean consumer, verifies
|
|
193
195
|
its production tree, and imports every reviewed public export; and
|
|
194
|
-
- uploads the tarball, verifier report,
|
|
196
|
+
- uploads the tarball, verifier report, SHA-512 checksum, SBOM, and
|
|
197
|
+
`RUN_EVIDENCE` for seven days.
|
|
195
198
|
|
|
196
199
|
Security must download and audit that exact workflow artifact. After Security
|
|
197
200
|
approves the tarball, Release Quality confirms the operator procedure, and the
|
|
198
|
-
Queen explicitly authorizes the public flip,
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
`
|
|
202
|
-
|
|
201
|
+
Queen explicitly authorizes the public flip, the Coordinator writes the SR
|
|
202
|
+
approval tuple (`ARTIFACT_SR_SHA512`, `ARTIFACT_SR_RUN_ID`,
|
|
203
|
+
`ARTIFACT_SR_RUN_ATTEMPT`) to environment variables and dispatches the
|
|
204
|
+
`publish.yml` workflow with the tag. The `validate` job runs first (outside
|
|
205
|
+
the `npm-publish` environment): it re-verifies the source, queries the source
|
|
206
|
+
run's workflow path, tag, conclusion, and attempt via the GitHub API, downloads
|
|
207
|
+
the artifact, binds the SR tuple to the exact tarball, and confirms run identity.
|
|
208
|
+
Only after `validate` succeeds does the `publish` job run, which surfaces the
|
|
209
|
+
`npm-publish` environment approval dialog. The `publish` job re-downloads and
|
|
210
|
+
checksum-verifies the same artifact, re-binds the SR tuple, repeats the artifact
|
|
211
|
+
verifier, checks that `0.2.2` is absent and the name is unclaimed as expected,
|
|
212
|
+
and publishes only the downloaded tarball with `--access public --provenance`.
|
|
203
213
|
|
|
204
214
|
Immediately after a successful first publish:
|
|
205
215
|
|
|
@@ -217,47 +227,59 @@ Immediately after a successful first publish:
|
|
|
217
227
|
|
|
218
228
|
## Later Releases
|
|
219
229
|
|
|
220
|
-
### 0.4.
|
|
230
|
+
### 0.4.2 Cross-Platform SBOM Recovery
|
|
221
231
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
branch must not republish `0.3.0`.
|
|
232
|
+
`borgmcp-shared@0.4.0` is the published, immutable clean-slate v2 contract, but
|
|
233
|
+
its registry artifact was built before the public package's local/self-hosted
|
|
234
|
+
topology cleanup. The immutable `v0.4.1` run `29701429995` built the cleaned
|
|
235
|
+
artifact, but independent macOS verification proved that the SBOM verifier used
|
|
236
|
+
the auditor's installed optional-dependency tree instead of a deterministic
|
|
237
|
+
release graph. The `v0.4.1` tag, run, and artifact are failed evidence: never
|
|
238
|
+
publish, move, reuse, rerun, or substitute them.
|
|
230
239
|
|
|
231
|
-
|
|
240
|
+
Version `0.4.2` carries the reviewed cleanup with a lockfile-derived SBOM graph
|
|
241
|
+
for the fixed release target `{os: linux, cpu: x64, libc: glibc}`. It does not
|
|
242
|
+
change the protocol tag or runtime behavior. This source now identifies `0.4.2`.
|
|
243
|
+
The reviewed recovery bump does not authorize creating `v0.4.2` or publishing
|
|
244
|
+
the package.
|
|
232
245
|
|
|
233
|
-
|
|
246
|
+
Before a separately authorized `v0.4.2` tag is created:
|
|
247
|
+
|
|
248
|
+
1. The exact `0.4.2` source commit must be merged to protected `main` after Code
|
|
234
249
|
Review, Security, and Release Quality approve the package identity, public
|
|
235
|
-
API,
|
|
236
|
-
2. The package and root lockfile, `SHARED_PACKAGE_VERSION`,
|
|
237
|
-
|
|
238
|
-
`0.4.
|
|
250
|
+
API, generated output, and release documentation.
|
|
251
|
+
2. The package and root lockfile, `SHARED_PACKAGE_VERSION`, packed-artifact and
|
|
252
|
+
SBOM verifiers, generated declarations, and version assertions must all
|
|
253
|
+
identify `0.4.2`. The protocol tag remains unchanged.
|
|
239
254
|
3. The protected workflow must build one exact tarball and pass its full source,
|
|
240
255
|
test, audit, public-export, source-map, install/import, dry-run, lock-derived
|
|
241
256
|
CycloneDX SBOM, integrity, and provenance gates. Security must approve that
|
|
242
257
|
exact workflow artifact.
|
|
243
|
-
4. The `0.4.
|
|
258
|
+
4. The `0.4.2` workflow must generate a CycloneDX SBOM, canonicalize npm's
|
|
244
259
|
checkout-derived root display name to the already-verified manifest name,
|
|
245
260
|
and validate every component's exact canonical registry tarball URL, single
|
|
246
261
|
matching CycloneDX distribution reference, purl, and lock SHA-512 plus the
|
|
247
|
-
exact
|
|
248
|
-
|
|
249
|
-
|
|
262
|
+
exact lockfile-derived release-target graph and zero package runtime
|
|
263
|
+
dependencies. The graph starts from root development dependencies, follows
|
|
264
|
+
required dependencies and peers, includes only target-compatible optional
|
|
265
|
+
dependencies, and includes optional peers only when another reachable edge
|
|
266
|
+
installs them. Root manifest and lock selectors must match and permit the
|
|
267
|
+
fixed target. Verification must not inspect the auditor's operating system,
|
|
268
|
+
installed dependency tree, or `node_modules`. The tarball, SBOM, and SBOM
|
|
269
|
+
validation report must be checksummed and uploaded together for Security
|
|
270
|
+
audit.
|
|
250
271
|
5. The tag and publication each require their own explicit authorization. A
|
|
251
272
|
source-version approval, merge, or successful verification run grants neither.
|
|
252
273
|
|
|
253
274
|
After registry publication and independent integrity/provenance verification,
|
|
254
|
-
the first borgmcp client and borgmcp-server releases
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
enrollment response.
|
|
275
|
+
the first borgmcp client and borgmcp-server releases must pin exact
|
|
276
|
+
`borgmcp-shared@0.4.2` and commit their registry lockfiles. They must not ship a
|
|
277
|
+
Git dependency, a version range that can resolve to the pre-cleanup artifact, or
|
|
278
|
+
a fallback to the incompatible `0.3.0` v1 enrollment response.
|
|
258
279
|
|
|
259
280
|
Later releases follow the same source gates, annotated protected tag, exact
|
|
260
|
-
tarball audit,
|
|
281
|
+
tarball audit, Coordinator authorization under the ratified shared release
|
|
282
|
+
autonomy, and environment approval. The registry
|
|
261
283
|
preflight requires the package to be owned by `NPM_EXPECTED_OWNER` and rejects
|
|
262
284
|
an existing target version. It also fails if
|
|
263
285
|
`ALLOW_UNCLAIMED_FIRST_PUBLISH` is not `false` or any `NPM_TOKEN` remains;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "borgmcp-shared",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Shared protocol, domain, templates, and conformance contracts for Borg MCP implementations.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
],
|
|
69
69
|
"author": "Byte Ventures IO AB",
|
|
70
70
|
"license": "Apache-2.0",
|
|
71
|
-
"homepage": "https://
|
|
71
|
+
"homepage": "https://github.com/Byte-Ventures/borg-mcp-shared",
|
|
72
72
|
"repository": {
|
|
73
73
|
"type": "git",
|
|
74
74
|
"url": "git+https://github.com/Byte-Ventures/borg-mcp-shared.git"
|