borgmcp-shared 0.6.3 → 0.7.0

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 (38) hide show
  1. package/README.md +24 -9
  2. package/dist/conformance/adapter.d.ts +18 -0
  3. package/dist/conformance/adapter.d.ts.map +1 -1
  4. package/dist/conformance/adapter.js +119 -1
  5. package/dist/conformance/adapter.js.map +1 -1
  6. package/dist/conformance/index.d.ts +118 -1
  7. package/dist/conformance/index.d.ts.map +1 -1
  8. package/dist/conformance/index.js +236 -0
  9. package/dist/conformance/index.js.map +1 -1
  10. package/dist/protocol/contract.d.ts +48 -2
  11. package/dist/protocol/contract.d.ts.map +1 -1
  12. package/dist/protocol/contract.js +114 -11
  13. package/dist/protocol/contract.js.map +1 -1
  14. package/dist/protocol/coordination.d.ts +2 -2
  15. package/dist/protocol/coordination.d.ts.map +1 -1
  16. package/dist/protocol/coordination.js +36 -2
  17. package/dist/protocol/coordination.js.map +1 -1
  18. package/dist/protocol/errors.d.ts +2 -0
  19. package/dist/protocol/errors.d.ts.map +1 -1
  20. package/dist/protocol/errors.js +2 -0
  21. package/dist/protocol/errors.js.map +1 -1
  22. package/dist/protocol/version.d.ts +1 -1
  23. package/dist/protocol/version.js +1 -1
  24. package/dist/templates.d.ts +4 -0
  25. package/dist/templates.d.ts.map +1 -1
  26. package/dist/templates.js +182 -1
  27. package/dist/templates.js.map +1 -1
  28. package/docs/compatibility.md +22 -7
  29. package/docs/enrollment.md +57 -9
  30. package/docs/releasing.md +14 -8
  31. package/package.json +1 -1
  32. package/src/conformance/adapter.ts +261 -0
  33. package/src/conformance/index.ts +296 -0
  34. package/src/protocol/contract.ts +168 -11
  35. package/src/protocol/coordination.ts +53 -4
  36. package/src/protocol/errors.ts +2 -0
  37. package/src/protocol/version.ts +2 -2
  38. package/src/templates.ts +188 -1
package/dist/templates.js CHANGED
@@ -10,6 +10,11 @@ export const NEW_CUBE_TEMPLATE_PRESENTATIONS = [
10
10
  label: 'Starter',
11
11
  short_description: 'Minimal roles for general projects.',
12
12
  },
13
+ {
14
+ name: 'local-model',
15
+ label: 'Local Model',
16
+ short_description: 'Maximizes local-model execution through complete, machine-checkable work packets.',
17
+ },
13
18
  ];
14
19
  export const ESCALATION_DISCIPLINE = `
15
20
 
@@ -206,9 +211,16 @@ Before changing code:
206
211
  - Inspect existing code and tests. Preserve unrelated and pre-existing changes.
207
212
  - If the request is ambiguous in a way that changes scope, post BLOCKED with the smallest decision needed.
208
213
 
214
+ Implementation discipline:
215
+ - Read and trace the real affected flow before choosing an implementation.
216
+ - Prefer, in order: no change when the requirement is already satisfied; an existing repository helper or pattern; the standard library or native platform; an already-installed dependency; only then the minimum new code.
217
+ - Make the smallest change that satisfies the complete authorized acceptance criteria. Prefer the least complex implementation that fully works, not the least work.
218
+ - For defects, inspect sibling callers and fix the root cause at the narrowest shared point when that is safer and smaller than per-caller patches.
219
+ - Never simplify away trust-boundary validation, security controls, data-loss prevention, accessibility requirements, explicit acceptance criteria, or proportionate regression tests.
220
+
209
221
  While working:
210
222
  - Post STARTING with the branch and first concrete action, then substantive PROGRESS during active work.
211
- - Make the smallest coherent implementation. Do not add cleanup, broad refactors, speculative hardening, documentation programs, or follow-up issues unless assigned.
223
+ - Do not add cleanup, broad refactors, speculative hardening, documentation programs, or follow-up issues unless assigned.
212
224
  - A discovered issue outside the slice is a finding, not permission to fix it.
213
225
  - Add proportionate tests for behavior you change. Run the repository checks required by the touched surface.
214
226
 
@@ -434,9 +446,178 @@ const STARTER = {
434
446
  },
435
447
  ],
436
448
  };
449
+ const LOCAL_MODEL_TAXONOMY = [
450
+ {
451
+ class: 'executor-echo',
452
+ prefixes: ['PACKET-ECHO'],
453
+ routing: 'directed',
454
+ default_to: ['shaper'],
455
+ },
456
+ {
457
+ class: 'executor-refusal',
458
+ prefixes: ['SPEC-GAP'],
459
+ routing: 'directed',
460
+ default_to: ['shaper'],
461
+ },
462
+ {
463
+ class: 'executor-completion',
464
+ prefixes: ['PACKET-DONE'],
465
+ routing: 'directed',
466
+ default_to: ['shaper'],
467
+ lifecycle: 'completion',
468
+ },
469
+ {
470
+ class: 'packet-dispatch',
471
+ prefixes: ['EXECUTE PACKET'],
472
+ routing: 'directed',
473
+ default_to: ['executor'],
474
+ lifecycle: 'dispatch',
475
+ },
476
+ {
477
+ class: 'packet-verdict',
478
+ prefixes: ['ACCEPT', 'REJECT'],
479
+ routing: 'directed',
480
+ default_to: ['executor'],
481
+ },
482
+ {
483
+ class: 'blocked-signal',
484
+ prefixes: ['BLOCKED'],
485
+ routing: 'directed',
486
+ default_to: ['director', 'queen'],
487
+ },
488
+ {
489
+ class: 'review-request',
490
+ prefixes: ['REVIEW-READY'],
491
+ routing: 'directed',
492
+ default_to: ['director', 'queen'],
493
+ },
494
+ {
495
+ class: 'director-dispatch',
496
+ prefixes: ['DISPATCH', 'HOLD'],
497
+ routing: 'directed',
498
+ default_to: ['shaper'],
499
+ lifecycle: 'dispatch',
500
+ },
501
+ {
502
+ class: 'director-approval',
503
+ prefixes: ['APPROVED'],
504
+ routing: 'directed',
505
+ default_to: ['shaper'],
506
+ lifecycle: 'completion',
507
+ },
508
+ {
509
+ class: 'cube-wide',
510
+ prefixes: ['DECISION'],
511
+ routing: 'broadcast',
512
+ },
513
+ ];
514
+ const LOCAL_MODEL_DIRECTIVE = `## Verification-cost workflow
515
+
516
+ - Work only on the human-authorized outcome. Questions, findings, spare capacity, and open work do not authorize another task.
517
+ - Use three seats: Director for intent and independent careful-reading verification, Shaper for conversion and acceptance, and Executor for one complete packet at a time.
518
+ - The author of a change never solely verifies it. The Director never implements; work implemented by the Shaper returns to the Director for verification.
519
+ - Convert work before sending it to the Executor. Every packet must contain literal Surface, Shape, Check, Forbidden to infer, and Echo schema fields.
520
+ - The Shaper withholds a holdout test, keeps test files outside the Executor's write allowlist, rejects deleted or weakened assertions, and never lets an Executor regenerate goldens.
521
+ - A fourth seat is optional: add a second Executor when throughput-bound, or a second capable Director as an independent review lens when correctness-bound. Never use a cheap model as a review lens.
522
+ - Waiting is valid only when no authorized action or active assigned work remains, or while a role is awaiting a named predecessor and has no independent action it can advance.
523
+ - Dispatch, packet echo, status, and answers are not completion. Each role continues its active item in the same turn until it posts a terminal signal from its own vocabulary.
524
+ - Merge, publish, deploy, tag, release, credential, and irreversible actions require explicit authority.`;
525
+ const LOCAL_MODEL_DIRECTOR = `You own authorized intent, priorities, decisions, and verification that requires careful reading. Never implement a change.
526
+
527
+ Scope and authority:
528
+ - Preserve the human-authorized outcome, boundaries, priorities, permitted mutations, and required evidence.
529
+ - Decide what must be verified by a capable reader and what the Shaper may convert into a machine-checkable packet.
530
+ - Dispatch exact outcomes to the Shaper. Never dispatch implementation directly to the Executor.
531
+ - A finding, proposal, idle seat, or open issue does not authorize new scope.
532
+
533
+ Direction and verification:
534
+ - Use DISPATCH for an authorized Shaper item and HOLD when work must not proceed.
535
+ - Require the Shaper to return the exact artifact, its own check output, the holdout result, and any judgment residue.
536
+ - Verify the residue by careful reading. Do not treat an automated check as proof of intent, design, security, data-loss safety, or irreversible-action safety.
537
+ - Post APPROVED only after the authorized outcome and independent verification are complete. Use DECISION for a human-facing choice that changes the controlling direction.
538
+ - Never approve work you authored. If the Shaper implemented an unconvertible item, you are its independent verifier.
539
+
540
+ Continuity:
541
+ - DISPATCH, HOLD, and DECISION are not completion when they leave an authorized follow-on action.
542
+ - After answering an interruption, resume any Director action you can advance in the same turn.
543
+ - Waiting is valid only when no routed Director action or active outcome remains, or while a named Shaper/reviewer/human decision is outstanding and you have no independent action.
544
+ - An active Director outcome ends with APPROVED, or with BLOCKED naming the missing decision or the reason it cannot proceed. After DECISION, continue with any dispatch or verification that decision enables.`;
545
+ const LOCAL_MODEL_SHAPER = `You convert authorized intent into machine-checkable packets, accept returned packets by running their checks, and implement only work that cannot be converted.
546
+
547
+ Conversion:
548
+ - A task is converted only when every field below has a literal value:
549
+ Surface: exact file allowlist. Never write "do not touch unrelated files."
550
+ Shape: failing tests, target signature, schema, enumerated case table, golden, or other exact target.
551
+ Check: exact commands and expected results, runnable without the author.
552
+ Forbidden to infer: enumerated open points the Executor must refuse rather than decide.
553
+ Echo schema: exactly "PACKET-ECHO | Surface: <verbatim> | Shape: <verbatim> | Check: <verbatim> | Forbidden to infer: <verbatim>".
554
+ - If any field cannot be filled, the task is not converted. Continue shaping it, implement it yourself when explicitly authorized, or post BLOCKED with the missing decision.
555
+ - Surface is the packet's write boundary; do not authorize paths outside the routed scope.
556
+ - Test files must stay outside Surface. Never give the Executor permission to edit them.
557
+ - Before dispatch, withhold at least one holdout test that is not visible in the packet.
558
+
559
+ Dispatch and acceptance:
560
+ - Send one complete packet with EXECUTE PACKET. Do not bundle another function, choice, or optional improvement into it.
561
+ - While the Executor owns that packet, waiting is valid only if you have no independent part of the active Shaper assignment to advance.
562
+ - On SPEC-GAP, supply the missing literal or reshape the packet; never tell the Executor to use judgment.
563
+ - On PACKET-DONE, inspect the diff for the Surface allowlist and test-path changes. Deleting or weakening an assertion is automatic rejection.
564
+ - Run every packet check yourself in a clean state, then run the withheld holdout test. Do not accept copied output as proof.
565
+ - Post ACCEPT or REJECT with your own verbatim check output. Never regenerate a golden file to make a result pass.
566
+ - Route accepted work to the Director with REVIEW-READY. When you implement an unconvertible item, you still return it to the Director for independent verification.
567
+
568
+ Continuity:
569
+ - EXECUTE PACKET, ACCEPT, REJECT, and an answer are not completion of the active Shaper assignment.
570
+ - After handling an interruption, resume the assignment in the same turn when an authorized action remains.
571
+ - A Shaper assignment ends only with BLOCKED or REVIEW-READY.`;
572
+ const LOCAL_MODEL_EXECUTOR = `You execute one complete authorized packet exactly. You do not shape, review, decide, or claim correctness.
573
+
574
+ A packet has five literal fields: Surface, Shape, Check, Forbidden to infer, and Echo schema.
575
+ Surface is your complete scope boundary.
576
+ A REJECT is not a packet. Take no action on it; wait for a new EXECUTE PACKET.
577
+ If asked anything you cannot answer with SPEC-GAP or PACKET-DONE, post SPEC-GAP naming what was asked.
578
+
579
+ 1. If any field is missing, or any needed value is not written literally, post SPEC-GAP naming the missing value. Do not guess.
580
+ 2. Before changing anything, post PACKET-ECHO using the packet's exact Echo schema. Fill it only from packet text.
581
+ 3. PACKET-ECHO is not completion. Continue the packet in the same turn.
582
+ 4. Touch only files listed in Surface. No other file, for any reason. Test files must stay outside Surface.
583
+ 5. Produce exactly the Shape. Do not fix, improve, clean, or infer anything else.
584
+ 6. Run every Check command. Copy its complete output verbatim.
585
+ 7. Post PACKET-DONE with the diff and verbatim check output. Add no prose claim about correctness.
586
+
587
+ Waiting is valid only when no packet is active. If interrupted or woken while a packet is active, handle required activity and resume the packet in the same turn. An active packet ends only with SPEC-GAP or PACKET-DONE.
588
+
589
+ Never merge, push, install packages, change configuration, edit a test, delete or weaken an assertion, or regenerate a golden file.`;
590
+ const LOCAL_MODEL = {
591
+ ...NEW_CUBE_TEMPLATE_PRESENTATIONS[2],
592
+ description: 'Three-seat software workflow that converts intent into machine-checkable packets for local-model execution.',
593
+ cube_directive: LOCAL_MODEL_DIRECTIVE,
594
+ message_taxonomy: LOCAL_MODEL_TAXONOMY,
595
+ roles: [
596
+ {
597
+ name: 'Director',
598
+ is_mandatory: true,
599
+ is_human_seat: true,
600
+ can_broadcast: true,
601
+ short_description: 'Owns intent, authorization, and careful-reading verification; never implements changes.',
602
+ detailed_description: LOCAL_MODEL_DIRECTOR,
603
+ },
604
+ {
605
+ name: 'Shaper',
606
+ short_description: 'Converts intent into complete machine-checkable packets, runs acceptance checks, and implements only unconvertible work.',
607
+ detailed_description: LOCAL_MODEL_SHAPER,
608
+ },
609
+ {
610
+ name: 'Executor',
611
+ is_default: true,
612
+ short_description: 'Executes one complete packet exactly, refuses missing literals, and returns only a diff plus verbatim check output.',
613
+ detailed_description: LOCAL_MODEL_EXECUTOR,
614
+ },
615
+ ],
616
+ };
437
617
  export const TEMPLATES = {
438
618
  'software-dev': SOFTWARE_DEV,
439
619
  starter: STARTER,
620
+ 'local-model': LOCAL_MODEL,
440
621
  };
441
622
  export function getTemplate(name) {
442
623
  return TEMPLATES[name] ?? null;
@@ -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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"}
@@ -37,12 +37,26 @@ removes `session.expires_at` from attach responses: the exact session shape is
37
37
  before it decodes this response; a v3 peer likewise rejects v2. There is no
38
38
  field-level fallback.
39
39
 
40
- The reviewed, unpublished `borgmcp-shared@0.6.3` candidate carries protocol v4.
41
- It adds strict origin-or-local repository identity, separate cube and repository
42
- display names, named built-in templates, and authoritative created-or-resolved
43
- readback. A v3 peer and a v4 peer reject each other before credentials or
44
- mutation. The candidate is not a release until its separate exact-commit tag and
45
- protected publication gates complete.
40
+ Published `borgmcp-shared@0.6.3` carries protocol v4. It adds strict
41
+ origin-or-local repository identity, separate cube and repository display names,
42
+ named built-in templates, and authoritative created-or-resolved readback. A v3
43
+ peer and a v4 peer reject each other before credentials or mutation.
44
+
45
+ Published `borgmcp-shared@0.6.4` carries protocol v5. It adds authenticated, read-only
46
+ `POST /api/repository-cubes/resolve` and separately confirmed, atomic
47
+ `PUT /api/repository-cubes/association` operations. The resolver returns an
48
+ explicit none or authoritative associated cube/template/role fields; association
49
+ requires an explicit cube ID and canonical repository identity. A v4 peer and a
50
+ v5 peer reject each other during credential-free preflight before credentials or
51
+ operation dispatch.
52
+
53
+ The `borgmcp-shared@0.7.0` release candidate carries protocol v6. It adds
54
+ `local-model` to the closed cube-template acceptance set and bundles that named
55
+ Director/Shaper/Executor template. A v5 peer and a v6 peer reject each other
56
+ during credential-free preflight, before an older peer can reject the new
57
+ template later while decoding a cube-creation request. The candidate is not a
58
+ release until its separate exact-commit tag and protected publication gates
59
+ complete.
46
60
 
47
61
  Removing or reinterpreting an existing field is a protocol-breaking change even
48
62
  when TypeScript permits it. Implementations must not infer compatibility from a
@@ -56,7 +70,8 @@ The rollout order is fail-closed:
56
70
  1. Publish the reviewed `borgmcp-shared` registry artifact only after its
57
71
  separate tag and publication gates pass, under a version that has never been
58
72
  published with a different protocol tag.
59
- 2. Update the client and server releases to the reviewed registry range; Git
73
+ 2. Update the server release to the reviewed exact shared version, then update
74
+ the client release to the same exact shared version and matching server; Git
60
75
  dependencies are not an authorized release input.
61
76
  3. Run the shared adapter conformance suite in both consumers before release.
62
77
  4. Deploy client and server support together. A peer on the prior protocol tag
@@ -1,4 +1,4 @@
1
- # Retry-Safe Enrollment and Cube Creation Contract
1
+ # Retry-Safe Enrollment and Repository Cube Contract
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,
@@ -18,11 +18,17 @@ incident is bound to tag object `045268aa8873da330819860012ecaddb4bc2883c`, prot
18
18
  `90a1cf686a0ce32a7aef836b0b82a930191b9030` peels to protected-main commit
19
19
  `fd69b08586481a60c88099dede8e4e066f73f2f2`; attempt-1 workflow run
20
20
  `30054936226` failed in tests before build, packaging, authentication, or registry
21
- mutation and must never be rerun or moved. `borgmcp-shared@0.6.1` and
22
- `borgmcp-shared@0.6.2` are published and immutable. This source now identifies
23
- the reviewed, unpublished `0.6.3` protocol-v4 cube-creation contract release.
24
- The version bump grants no tag or publication authority: creating `v0.6.3` and
25
- publishing the reviewed artifact remain separate, independently gated steps.
21
+ mutation and must never be rerun or moved. `borgmcp-shared@0.6.1`,
22
+ `borgmcp-shared@0.6.2`, and `borgmcp-shared@0.6.3` are published and immutable.
23
+ `borgmcp-shared@0.6.4` is published and immutable: annotated tag object
24
+ `f79b0683686d3c359023a17f6e8a92efd888104a` peels to protected-main commit
25
+ `fa8a2dc072d4ffe2a16d5f02576fead822a2f72e`; successful attempt-1 workflow run
26
+ `30169732628` published registry integrity
27
+ `sha512-Wm4b0uoOAw9JCz5OTHD0Q2uXKkeWYdkVksdeZvRG8l62XGMY+G8GkNEsZT9L533LbVbQ29GhgF0htjDenQThDg==`.
28
+ Never rerun or move that tag. This source now identifies the unpublished
29
+ `0.7.0` protocol-v6 local-model-template release candidate. The version bump
30
+ grants no tag or publication authority: creating `v0.7.0` and publishing the
31
+ reviewed artifact remain separate, independently gated steps.
26
32
  There is no compatibility path that returns a bearer from the server.
27
33
 
28
34
  A client verifies the credential-free `GET /api/protocol` tag preflight before
@@ -128,7 +134,8 @@ enrollment and attach routes never create or widen grants.
128
134
 
129
135
  ## Cube Creation
130
136
 
131
- Under protocol v4, `POST /api/cubes` requires an active parent-client credential
137
+ Introduced under protocol v4 and retained in v5, `POST /api/cubes` requires an
138
+ active parent-client credential
132
139
  with the persisted `create_cube` server capability. Ordinary clients, revoked
133
140
  clients, and drone sessions cannot use it. Its strict payload is:
134
141
 
@@ -150,7 +157,8 @@ after ambiguous transport failure. `name` is the bounded user-selected cube
150
157
  name. `working_repo_name` is derived repository display metadata and does not
151
158
  identify or authorize the repository. `repository` is either an exact canonical
152
159
  public origin or a client-generated opaque local UUID. `template` accepts
153
- `software-dev`, `starter`, or the compatible legacy `default` seed. The request
160
+ `software-dev`, `starter`, `local-model`, or the compatible legacy `default`
161
+ seed. The request
154
162
  cannot supply cube or role IDs, an owner, access, grant target, capability,
155
163
  arbitrary template data, local paths, raw origins, modules, commands, or
156
164
  repository credentials.
@@ -190,6 +198,40 @@ repository may create another cube, subject to implementation quotas. `owner_id`
190
198
  and role labels remain metadata; cube access derives only from the explicit
191
199
  cube-scoped grant.
192
200
 
201
+ ## Existing Repository Cube Resolution and Association
202
+
203
+ Repository lookup and adoption are separate authenticated operations. Before
204
+ name discovery or any prompt, a client sends the canonical `repository` identity
205
+ and bounded `working_repo_name` to the read-only
206
+ `POST /api/repository-cubes/resolve` operation. It returns exactly
207
+ `{ "result": "none" }` when no association exists for that authenticated client,
208
+ or the stored authoritative cube name, template, repository display, human-seat
209
+ role ID, default-worker role ID, and `manage` access with `result: "resolved"`.
210
+ The resolver never mutates state or infers an association from a cube name.
211
+ Associations are scoped to the authenticated client. Cross-client bindings never
212
+ produce a conflict or existence signal. If a same-client association points to a
213
+ cube for which the caller no longer has `manage` access, read-only resolution
214
+ returns `none` rather than exposing the binding.
215
+
216
+ After separate user confirmation, `PUT /api/repository-cubes/association`
217
+ accepts an explicit canonical cube UUID plus the same repository identity and
218
+ display fields. The server requires authenticated `manage` authority for that
219
+ cube and atomically persists the association before returning the same
220
+ authoritative resolved shape. Repeating the same cube/repository binding is
221
+ idempotent. A repository already bound to another cube returns HTTP `409`
222
+ `REPOSITORY_ALREADY_ASSOCIATED`; a cube already bound to another repository
223
+ returns HTTP `409` `CUBE_ALREADY_ASSOCIATED`. A legacy cube whose authoritative
224
+ human-seat or default-worker roles are invalid returns HTTP `409` `INVALID_INPUT`.
225
+ All three outcomes perform zero mutation and use static, non-enumerating
226
+ diagnostics: neither `message` nor `details` may name or echo a conflicting cube
227
+ ID or repository identity, regardless of the caller's access. An inaccessible
228
+ target cube, or a same-client repository binding whose cube is no longer
229
+ accessible, returns HTTP `403` `ACCESS_DENIED` without distinguishing the hidden
230
+ state. Names are discovery and display values only. Implementations must not
231
+ silently infer or backfill an
232
+ association, report success after a client-local write alone, or overload cube
233
+ creation as the read-only preflight.
234
+
193
235
  ## Conformance
194
236
 
195
237
  `ENROLLMENT_RETRY_CONFORMANCE` covers exact retry stability plus retry-key,
@@ -207,4 +249,10 @@ violation fails conformance.
207
249
  display readback, and mismatch rejection for cube name, repository kind/value,
208
250
  and template. `CREATE_CUBE_ASSOCIATION_CONFORMANCE` distinguishes no-mutation
209
251
  resolution of an existing repository association from creation for a different,
210
- unassociated repository.
252
+ unassociated repository. `RESOLVE_REPOSITORY_CUBE_CONFORMANCE` pins explicit
253
+ none and authoritative no-mutation readback. `ASSOCIATE_REPOSITORY_CUBE_CONFORMANCE`,
254
+ `REPOSITORY_CUBE_PERMISSION_CONFORMANCE`, and
255
+ `REPOSITORY_CUBE_AUTHORITATIVE_STATE_CONFORMANCE` pin explicit-ID idempotency,
256
+ both conflict directions, non-enumerating diagnostics, manage authorization,
257
+ authoritative role validation, and zero mutation on rejection. The
258
+ adapter runner executes the complete association boundary against each host.
package/docs/releasing.md CHANGED
@@ -132,12 +132,18 @@ that tag. `borgmcp-shared@0.6.0` was never published. Its annotated tag object
132
132
  `90a1cf686a0ce32a7aef836b0b82a930191b9030` peels to protected-main commit
133
133
  `fd69b08586481a60c88099dede8e4e066f73f2f2`; attempt-1 workflow run
134
134
  `30054936226` failed in tests before build, packaging, authentication, or registry
135
- mutation. Never rerun or move that tag. `borgmcp-shared@0.6.1` and
136
- `borgmcp-shared@0.6.2` are published and immutable. This source identifies the
137
- reviewed, unpublished `0.6.3` protocol-v4 cube-creation contract release. Its
138
- release requires reviewed source and explicit publication authorization through
139
- one protected publish run whose terminal boundary is successful `npm publish`.
140
- The workflow performs no post-publication registry readback. Consumers
141
- must update the reviewed shared artifact before adopting the matching server and
142
- client releases; incompatible protocol v2, v3, and v4 peers fail closed at
135
+ mutation. Never rerun or move that tag. `borgmcp-shared@0.6.1`,
136
+ `borgmcp-shared@0.6.2`, and `borgmcp-shared@0.6.3` are published and immutable.
137
+ `borgmcp-shared@0.6.4` is published and immutable: annotated tag object
138
+ `f79b0683686d3c359023a17f6e8a92efd888104a` peels to protected-main commit
139
+ `fa8a2dc072d4ffe2a16d5f02576fead822a2f72e`; successful attempt-1 workflow run
140
+ `30169732628` published registry integrity
141
+ `sha512-Wm4b0uoOAw9JCz5OTHD0Q2uXKkeWYdkVksdeZvRG8l62XGMY+G8GkNEsZT9L533LbVbQ29GhgF0htjDenQThDg==`.
142
+ Never rerun or move that tag. This source identifies the unpublished `0.7.0`
143
+ protocol-v6 local-model-template release candidate. Its release requires
144
+ reviewed source and explicit publication authorization through one protected
145
+ publish run whose terminal boundary is successful `npm publish`. The workflow
146
+ performs no post-publication registry readback. Consumers must update the
147
+ reviewed shared artifact before adopting the matching server and client
148
+ releases; incompatible protocol v2, v3, v4, v5, and v6 peers fail closed at
143
149
  credential-free preflight.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "borgmcp-shared",
3
- "version": "0.6.3",
3
+ "version": "0.7.0",
4
4
  "description": "Shared protocol, domain, templates, and conformance contracts for Borg MCP implementations.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",