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.
- package/README.md +24 -9
- package/dist/conformance/adapter.d.ts +18 -0
- package/dist/conformance/adapter.d.ts.map +1 -1
- package/dist/conformance/adapter.js +119 -1
- package/dist/conformance/adapter.js.map +1 -1
- package/dist/conformance/index.d.ts +118 -1
- package/dist/conformance/index.d.ts.map +1 -1
- package/dist/conformance/index.js +236 -0
- package/dist/conformance/index.js.map +1 -1
- package/dist/protocol/contract.d.ts +48 -2
- package/dist/protocol/contract.d.ts.map +1 -1
- package/dist/protocol/contract.js +114 -11
- package/dist/protocol/contract.js.map +1 -1
- package/dist/protocol/coordination.d.ts +2 -2
- package/dist/protocol/coordination.d.ts.map +1 -1
- package/dist/protocol/coordination.js +36 -2
- package/dist/protocol/coordination.js.map +1 -1
- package/dist/protocol/errors.d.ts +2 -0
- package/dist/protocol/errors.d.ts.map +1 -1
- package/dist/protocol/errors.js +2 -0
- package/dist/protocol/errors.js.map +1 -1
- package/dist/protocol/version.d.ts +1 -1
- package/dist/protocol/version.js +1 -1
- package/dist/templates.d.ts +4 -0
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +182 -1
- package/dist/templates.js.map +1 -1
- package/docs/compatibility.md +22 -7
- package/docs/enrollment.md +57 -9
- package/docs/releasing.md +14 -8
- package/package.json +1 -1
- package/src/conformance/adapter.ts +261 -0
- package/src/conformance/index.ts +296 -0
- package/src/protocol/contract.ts +168 -11
- package/src/protocol/coordination.ts +53 -4
- package/src/protocol/errors.ts +2 -0
- package/src/protocol/version.ts +2 -2
- 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
|
-
-
|
|
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;
|
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/compatibility.md
CHANGED
|
@@ -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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
|
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
|
package/docs/enrollment.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Retry-Safe Enrollment and Cube
|
|
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
|
|
22
|
-
`borgmcp-shared@0.6.2` are published and immutable.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
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`
|
|
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
|
|
136
|
-
`borgmcp-shared@0.6.2` are published and immutable.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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.
|