@cleocode/adapters 2026.10.10-canary.1 → 2026.10.10-rc.ci.679
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/dist/index.js +141 -0
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -10661,6 +10661,59 @@ var init_operations_registry = __esm({
|
|
|
10661
10661
|
}
|
|
10662
10662
|
]
|
|
10663
10663
|
},
|
|
10664
|
+
// ── docs.link-decision / docs.unlink-decision (T13598) ──────────────────
|
|
10665
|
+
{
|
|
10666
|
+
gateway: "mutate",
|
|
10667
|
+
domain: "docs",
|
|
10668
|
+
operation: "link-decision",
|
|
10669
|
+
description: "docs.link-decision (mutate) \u2014 link a D#### decision to the ADR doc that ratifies it (decision_adr_links); idempotent, refuses a revoked pair (T13598)",
|
|
10670
|
+
tier: 1,
|
|
10671
|
+
idempotent: true,
|
|
10672
|
+
sessionRequired: false,
|
|
10673
|
+
requiredParams: ["adrSlug", "decisionId"],
|
|
10674
|
+
params: [
|
|
10675
|
+
{
|
|
10676
|
+
name: "adrSlug",
|
|
10677
|
+
type: "string",
|
|
10678
|
+
required: true,
|
|
10679
|
+
description: "Slug of the ADR doc",
|
|
10680
|
+
cli: { positional: true }
|
|
10681
|
+
},
|
|
10682
|
+
{
|
|
10683
|
+
name: "decisionId",
|
|
10684
|
+
type: "string",
|
|
10685
|
+
required: true,
|
|
10686
|
+
description: "The D#### brain ledger decision id the ADR ratifies",
|
|
10687
|
+
cli: { positional: true }
|
|
10688
|
+
}
|
|
10689
|
+
]
|
|
10690
|
+
},
|
|
10691
|
+
{
|
|
10692
|
+
gateway: "mutate",
|
|
10693
|
+
domain: "docs",
|
|
10694
|
+
operation: "unlink-decision",
|
|
10695
|
+
description: "docs.unlink-decision (mutate) \u2014 revoke a decision-to-ADR link as a permanent tombstone; the pair can never be re-linked (T13598)",
|
|
10696
|
+
tier: 1,
|
|
10697
|
+
idempotent: true,
|
|
10698
|
+
sessionRequired: false,
|
|
10699
|
+
requiredParams: ["adrSlug", "decisionId"],
|
|
10700
|
+
params: [
|
|
10701
|
+
{
|
|
10702
|
+
name: "adrSlug",
|
|
10703
|
+
type: "string",
|
|
10704
|
+
required: true,
|
|
10705
|
+
description: "Slug of the ADR doc",
|
|
10706
|
+
cli: { positional: true }
|
|
10707
|
+
},
|
|
10708
|
+
{
|
|
10709
|
+
name: "decisionId",
|
|
10710
|
+
type: "string",
|
|
10711
|
+
required: true,
|
|
10712
|
+
description: "The D#### brain ledger decision id to unlink",
|
|
10713
|
+
cli: { positional: true }
|
|
10714
|
+
}
|
|
10715
|
+
]
|
|
10716
|
+
},
|
|
10664
10717
|
// ── docs.supersede (T10162) ──────────────────────────────────────────────
|
|
10665
10718
|
{
|
|
10666
10719
|
gateway: "mutate",
|
|
@@ -11088,6 +11141,37 @@ var init_operations_registry = __esm({
|
|
|
11088
11141
|
}
|
|
11089
11142
|
]
|
|
11090
11143
|
},
|
|
11144
|
+
// ── docs.triage (T13446 — Epic T13340 / Saga T13339) ──────────────────────
|
|
11145
|
+
{
|
|
11146
|
+
gateway: "query",
|
|
11147
|
+
domain: "docs",
|
|
11148
|
+
operation: "triage",
|
|
11149
|
+
description: "docs.triage (query) \u2014 batch-triage docs through the docs.triage decision site: proposed keep/update/supersede/archive verdicts plus staleness scores, oldest first (default: drafts). Proposals only \u2014 never mutates a doc; --record persists each verdict as a proposed D#### decision.",
|
|
11150
|
+
tier: 1,
|
|
11151
|
+
idempotent: true,
|
|
11152
|
+
sessionRequired: false,
|
|
11153
|
+
requiredParams: [],
|
|
11154
|
+
params: [
|
|
11155
|
+
{
|
|
11156
|
+
name: "limit",
|
|
11157
|
+
type: "number",
|
|
11158
|
+
required: false,
|
|
11159
|
+
description: "Maximum docs to scan, oldest first (default 25)"
|
|
11160
|
+
},
|
|
11161
|
+
{
|
|
11162
|
+
name: "status",
|
|
11163
|
+
type: "string",
|
|
11164
|
+
required: false,
|
|
11165
|
+
description: "Lifecycle status to scan (default draft)"
|
|
11166
|
+
},
|
|
11167
|
+
{
|
|
11168
|
+
name: "record",
|
|
11169
|
+
type: "boolean",
|
|
11170
|
+
required: false,
|
|
11171
|
+
description: "Persist every verdict as a proposed D#### decision (default false)"
|
|
11172
|
+
}
|
|
11173
|
+
]
|
|
11174
|
+
},
|
|
11091
11175
|
{
|
|
11092
11176
|
gateway: "mutate",
|
|
11093
11177
|
domain: "docs",
|
|
@@ -11866,6 +11950,12 @@ var init_operations_registry = __esm({
|
|
|
11866
11950
|
required: false,
|
|
11867
11951
|
description: "Require the unified-hooks pilot for this stable promotion"
|
|
11868
11952
|
},
|
|
11953
|
+
{
|
|
11954
|
+
name: "hooksV1Waiver",
|
|
11955
|
+
type: "string",
|
|
11956
|
+
required: false,
|
|
11957
|
+
description: "Audited reason to ship a source change that opens the hooks-v1 gate without the promotion"
|
|
11958
|
+
},
|
|
11869
11959
|
{
|
|
11870
11960
|
name: "dryRun",
|
|
11871
11961
|
type: "boolean",
|
|
@@ -14642,6 +14732,55 @@ var init_sync_write_invariants = __esm({
|
|
|
14642
14732
|
["D04", "D05", "D31", "D32", "D39", "D50"],
|
|
14643
14733
|
"superseded is sticky; lifecycle transitions follow a matrix"
|
|
14644
14734
|
),
|
|
14735
|
+
// T13354 (D11165) — CleoDocs re-keyed history family; the typed merge rules
|
|
14736
|
+
// land with the write path (T13355).
|
|
14737
|
+
rule(
|
|
14738
|
+
"docs.versions.append-only",
|
|
14739
|
+
"T13355",
|
|
14740
|
+
"conduit_attachment_versions",
|
|
14741
|
+
["*"],
|
|
14742
|
+
[],
|
|
14743
|
+
"version rows are append-only and unique by uid; inserts never conflict, so no merge rule fires"
|
|
14744
|
+
),
|
|
14745
|
+
rule(
|
|
14746
|
+
"docs.approvals.append-only",
|
|
14747
|
+
"T13355",
|
|
14748
|
+
"conduit_attachment_approvals",
|
|
14749
|
+
["*"],
|
|
14750
|
+
[],
|
|
14751
|
+
"approval rows are append-only; a revoke is a tombstone row, never an UPDATE/DELETE"
|
|
14752
|
+
),
|
|
14753
|
+
rule(
|
|
14754
|
+
"docs.doc-alias.append-only",
|
|
14755
|
+
"T13355",
|
|
14756
|
+
"conduit_doc_slug_aliases",
|
|
14757
|
+
["*"],
|
|
14758
|
+
[],
|
|
14759
|
+
"alias rows carry natural identity over (slug, doc_uid); identical aliases merge to one row"
|
|
14760
|
+
),
|
|
14761
|
+
rule(
|
|
14762
|
+
"docs.head.max-hlc",
|
|
14763
|
+
"T13355",
|
|
14764
|
+
"conduit_doc_heads",
|
|
14765
|
+
["*"],
|
|
14766
|
+
[],
|
|
14767
|
+
"the projection keeps the max-HLC head; a losing concurrent head is recorded (conflict_count/last_conflict_json), never silently shadowed"
|
|
14768
|
+
),
|
|
14769
|
+
// T13359 (D11165) — decisions-vs-ADRs link table; the natural composite key
|
|
14770
|
+
// makes identical links merge to one row, and the revoke is a one-way latch.
|
|
14771
|
+
// T13597: enforced at merge, not just by the local accessor — 'revoked' is an
|
|
14772
|
+
// absorbing state with no leave op, so a concurrent same-uid link op cannot
|
|
14773
|
+
// flip a tombstoned row back to 'linked' on any replica.
|
|
14774
|
+
implemented(
|
|
14775
|
+
rule(
|
|
14776
|
+
"docs.decision-adr-links.revoke-monotonic",
|
|
14777
|
+
"T13597",
|
|
14778
|
+
"decision_adr_links",
|
|
14779
|
+
["status", "revoked_by"],
|
|
14780
|
+
[],
|
|
14781
|
+
"status flips linked\u2192revoked exactly once (the row is the tombstone, never DELETEd); the merge engine refuses a non-absorbing status write onto a revoked row, so a concurrent re-link can never resurrect the pair"
|
|
14782
|
+
)
|
|
14783
|
+
),
|
|
14645
14784
|
// §3.6.0 identity-layer rows.
|
|
14646
14785
|
{
|
|
14647
14786
|
id: "identity.local-minting",
|
|
@@ -16207,6 +16346,8 @@ var init_plan = __esm({
|
|
|
16207
16346
|
releaseKind: ReleaseKindSchema,
|
|
16208
16347
|
/** Explicit hooks-v1 stable promotion; ordinary and hotfix releases are exempt. */
|
|
16209
16348
|
hooksV1Promotion: z17.boolean().optional(),
|
|
16349
|
+
/** Audited reason for shipping a source change that opens the hooks-v1 gate without the promotion (T13555). */
|
|
16350
|
+
hooksV1Waiver: NonEmptyString.optional(),
|
|
16210
16351
|
/** ISO-8601 timestamp the plan was written. */
|
|
16211
16352
|
createdAt: Iso8601,
|
|
16212
16353
|
/** Identifier of the actor that wrote the plan (agent name or operator). */
|