@cleocode/core 2026.6.6 → 2026.6.8
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/db/index.d.ts +5 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +5 -1
- package/dist/db/index.js.map +1 -1
- package/dist/dispatch/contracts/output-contracts.d.ts +36 -0
- package/dist/dispatch/contracts/output-contracts.d.ts.map +1 -0
- package/dist/dispatch/contracts/output-contracts.js +38 -0
- package/dist/dispatch/contracts/output-contracts.js.map +1 -0
- package/dist/dispatch/describe-operation.d.ts +98 -0
- package/dist/dispatch/describe-operation.d.ts.map +1 -0
- package/dist/dispatch/describe-operation.js +101 -0
- package/dist/dispatch/describe-operation.js.map +1 -0
- package/dist/docs/build-provenance-graph.d.ts +12 -0
- package/dist/docs/build-provenance-graph.d.ts.map +1 -1
- package/dist/docs/build-provenance-graph.js +52 -0
- package/dist/docs/build-provenance-graph.js.map +1 -1
- package/dist/docs/docs-read-model.d.ts +40 -0
- package/dist/docs/docs-read-model.d.ts.map +1 -1
- package/dist/docs/docs-read-model.js +29 -0
- package/dist/docs/docs-read-model.js.map +1 -1
- package/dist/docs/export-document.js +1794 -1235
- package/dist/docs/export-document.js.map +3 -3
- package/dist/docs/index.d.ts +4 -0
- package/dist/docs/index.d.ts.map +1 -1
- package/dist/docs/index.js +2 -0
- package/dist/docs/index.js.map +1 -1
- package/dist/docs/read-doc.d.ts +60 -0
- package/dist/docs/read-doc.d.ts.map +1 -0
- package/dist/docs/read-doc.js +188 -0
- package/dist/docs/read-doc.js.map +1 -0
- package/dist/docs/wikilinks.d.ts +119 -0
- package/dist/docs/wikilinks.d.ts.map +1 -0
- package/dist/docs/wikilinks.js +217 -0
- package/dist/docs/wikilinks.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +2 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +6 -0
- package/dist/internal.js.map +1 -1
- package/dist/llm/index.d.ts +1 -3
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +1 -2
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/model-metadata.d.ts +14 -0
- package/dist/llm/model-metadata.d.ts.map +1 -1
- package/dist/llm/model-metadata.js +23 -0
- package/dist/llm/model-metadata.js.map +1 -1
- package/dist/llm/model-runner.d.ts.map +1 -1
- package/dist/llm/model-runner.js +104 -74
- package/dist/llm/model-runner.js.map +1 -1
- package/dist/llm/plugin-facade.js +1947 -1364
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/llm/provider-registry/builtin/anthropic.d.ts.map +1 -1
- package/dist/llm/provider-registry/builtin/anthropic.js +4 -0
- package/dist/llm/provider-registry/builtin/anthropic.js.map +1 -1
- package/dist/llm/provider-registry/builtin/gemini.d.ts.map +1 -1
- package/dist/llm/provider-registry/builtin/gemini.js +4 -0
- package/dist/llm/provider-registry/builtin/gemini.js.map +1 -1
- package/dist/llm/provider-registry/builtin/ollama.d.ts.map +1 -1
- package/dist/llm/provider-registry/builtin/ollama.js +4 -0
- package/dist/llm/provider-registry/builtin/ollama.js.map +1 -1
- package/dist/llm/provider-registry/builtin/openai.d.ts.map +1 -1
- package/dist/llm/provider-registry/builtin/openai.js +6 -0
- package/dist/llm/provider-registry/builtin/openai.js.map +1 -1
- package/dist/llm/transports/index.d.ts +5 -3
- package/dist/llm/transports/index.d.ts.map +1 -1
- package/dist/llm/transports/index.js +5 -2
- package/dist/llm/transports/index.js.map +1 -1
- package/dist/reconciliation/reconciliation-engine.d.ts.map +1 -1
- package/dist/reconciliation/reconciliation-engine.js +3 -0
- package/dist/reconciliation/reconciliation-engine.js.map +1 -1
- package/dist/release/plan.d.ts +27 -0
- package/dist/release/plan.d.ts.map +1 -1
- package/dist/release/plan.js +36 -2
- package/dist/release/plan.js.map +1 -1
- package/dist/release/provenance-fk.d.ts +74 -0
- package/dist/release/provenance-fk.d.ts.map +1 -0
- package/dist/release/provenance-fk.js +122 -0
- package/dist/release/provenance-fk.js.map +1 -0
- package/dist/release/reconcile.d.ts +2 -53
- package/dist/release/reconcile.d.ts.map +1 -1
- package/dist/release/reconcile.js +13 -93
- package/dist/release/reconcile.js.map +1 -1
- package/dist/sticky/convert.d.ts.map +1 -1
- package/dist/sticky/convert.js +3 -0
- package/dist/sticky/convert.js.map +1 -1
- package/dist/store/dual-scope-db.d.ts +83 -0
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +135 -6
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/exodus/abort-events.d.ts +116 -0
- package/dist/store/exodus/abort-events.d.ts.map +1 -0
- package/dist/store/exodus/abort-events.js +130 -0
- package/dist/store/exodus/abort-events.js.map +1 -0
- package/dist/store/exodus/column-transforms.d.ts +35 -8
- package/dist/store/exodus/column-transforms.d.ts.map +1 -1
- package/dist/store/exodus/column-transforms.js +47 -13
- package/dist/store/exodus/column-transforms.js.map +1 -1
- package/dist/store/exodus/count-parity.d.ts +71 -0
- package/dist/store/exodus/count-parity.d.ts.map +1 -0
- package/dist/store/exodus/count-parity.js +124 -0
- package/dist/store/exodus/count-parity.js.map +1 -0
- package/dist/store/exodus/health.d.ts +70 -0
- package/dist/store/exodus/health.d.ts.map +1 -0
- package/dist/store/exodus/health.js +130 -0
- package/dist/store/exodus/health.js.map +1 -0
- package/dist/store/exodus/index.d.ts +4 -0
- package/dist/store/exodus/index.d.ts.map +1 -1
- package/dist/store/exodus/index.js +4 -0
- package/dist/store/exodus/index.js.map +1 -1
- package/dist/store/exodus/migrate.d.ts.map +1 -1
- package/dist/store/exodus/migrate.js +98 -31
- package/dist/store/exodus/migrate.js.map +1 -1
- package/dist/store/exodus/plan.d.ts +48 -4
- package/dist/store/exodus/plan.d.ts.map +1 -1
- package/dist/store/exodus/plan.js +67 -9
- package/dist/store/exodus/plan.js.map +1 -1
- package/dist/store/exodus/seal.d.ts +69 -0
- package/dist/store/exodus/seal.d.ts.map +1 -0
- package/dist/store/exodus/seal.js +73 -0
- package/dist/store/exodus/seal.js.map +1 -0
- package/dist/store/exodus/types.d.ts +24 -1
- package/dist/store/exodus/types.d.ts.map +1 -1
- package/dist/store/exodus/types.js.map +1 -1
- package/dist/store/exodus/verify-migration.d.ts.map +1 -1
- package/dist/store/exodus/verify-migration.js +53 -26
- package/dist/store/exodus/verify-migration.js.map +1 -1
- package/dist/store/repair-malformed-dbs.d.ts +87 -0
- package/dist/store/repair-malformed-dbs.d.ts.map +1 -0
- package/dist/store/repair-malformed-dbs.js +188 -0
- package/dist/store/repair-malformed-dbs.js.map +1 -0
- package/dist/store/schema/attachments.d.ts +133 -0
- package/dist/store/schema/attachments.d.ts.map +1 -1
- package/dist/store/schema/attachments.js +63 -0
- package/dist/store/schema/attachments.js.map +1 -1
- package/dist/tasks/add.d.ts +13 -0
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +50 -18
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/archive.d.ts.map +1 -1
- package/dist/tasks/archive.js +12 -7
- package/dist/tasks/archive.js.map +1 -1
- package/dist/tasks/child-disposition.d.ts +66 -0
- package/dist/tasks/child-disposition.d.ts.map +1 -0
- package/dist/tasks/child-disposition.js +80 -0
- package/dist/tasks/child-disposition.js.map +1 -0
- package/dist/tasks/delete-preview.js +1 -1
- package/dist/tasks/delete-preview.js.map +1 -1
- package/dist/tasks/deletion-strategy.d.ts +21 -3
- package/dist/tasks/deletion-strategy.d.ts.map +1 -1
- package/dist/tasks/deletion-strategy.js +61 -15
- package/dist/tasks/deletion-strategy.js.map +1 -1
- package/dist/tasks/engine-wrap.d.ts +8 -0
- package/dist/tasks/engine-wrap.d.ts.map +1 -1
- package/dist/tasks/engine-wrap.js +22 -9
- package/dist/tasks/engine-wrap.js.map +1 -1
- package/dist/tasks/update.d.ts.map +1 -1
- package/dist/tasks/update.js +12 -0
- package/dist/tasks/update.js.map +1 -1
- package/migrations/drizzle-tasks/20260605000001_t11826-docs-wikilinks/migration.sql +110 -0
- package/package.json +12 -12
- package/dist/llm/transports/openai.d.ts +0 -181
- package/dist/llm/transports/openai.d.ts.map +0 -1
- package/dist/llm/transports/openai.js +0 -645
- package/dist/llm/transports/openai.js.map +0 -1
package/dist/db/index.d.ts
CHANGED
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
* - {@link resolveDualScopeDbPath} — resolve the absolute DB file path.
|
|
17
17
|
* - {@link insertIdempotent} — retry-safe insert (ON CONFLICT DO NOTHING).
|
|
18
18
|
* - {@link upsertIdempotent} — retry-safe upsert (ON CONFLICT DO UPDATE).
|
|
19
|
+
* - {@link assertWriteDurable} — guard a mutation path against an aborted
|
|
20
|
+
* exodus-on-open (T11828 · DHQ-059).
|
|
21
|
+
* - {@link ExodusAbortWriteUnsafeError} — thrown by `assertWriteDurable`.
|
|
19
22
|
* - {@link _resetDualScopeDbCache} — test helper: clear singleton cache.
|
|
20
23
|
*
|
|
21
24
|
* ## Usage
|
|
@@ -32,5 +35,6 @@
|
|
|
32
35
|
* @epic T11247 (E4)
|
|
33
36
|
* @saga T11242 (SG-DB-SUBSTRATE-V2)
|
|
34
37
|
*/
|
|
35
|
-
export { _resetDualScopeDbCache, type CleoGlobalDb, type CleoProjectDb, type DualScope, type DualScopeDbHandle, insertIdempotent, openDualScopeDb, resolveDualScopeDbPath, upsertIdempotent, } from '../store/dual-scope-db.js';
|
|
38
|
+
export { _resetDualScopeDbCache, assertWriteDurable, type CleoGlobalDb, type CleoProjectDb, type DualScope, type DualScopeDbHandle, ExodusAbortWriteUnsafeError, insertIdempotent, openDualScopeDb, resolveDualScopeDbPath, upsertIdempotent, } from '../store/dual-scope-db.js';
|
|
39
|
+
export { type ExodusAbortDetail, exodusAbortEvents } from '../store/exodus/abort-events.js';
|
|
36
40
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/db/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,2BAA2B,EAC3B,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC"}
|
package/dist/db/index.js
CHANGED
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
* - {@link resolveDualScopeDbPath} — resolve the absolute DB file path.
|
|
17
17
|
* - {@link insertIdempotent} — retry-safe insert (ON CONFLICT DO NOTHING).
|
|
18
18
|
* - {@link upsertIdempotent} — retry-safe upsert (ON CONFLICT DO UPDATE).
|
|
19
|
+
* - {@link assertWriteDurable} — guard a mutation path against an aborted
|
|
20
|
+
* exodus-on-open (T11828 · DHQ-059).
|
|
21
|
+
* - {@link ExodusAbortWriteUnsafeError} — thrown by `assertWriteDurable`.
|
|
19
22
|
* - {@link _resetDualScopeDbCache} — test helper: clear singleton cache.
|
|
20
23
|
*
|
|
21
24
|
* ## Usage
|
|
@@ -32,5 +35,6 @@
|
|
|
32
35
|
* @epic T11247 (E4)
|
|
33
36
|
* @saga T11242 (SG-DB-SUBSTRATE-V2)
|
|
34
37
|
*/
|
|
35
|
-
export { _resetDualScopeDbCache, insertIdempotent, openDualScopeDb, resolveDualScopeDbPath, upsertIdempotent, } from '../store/dual-scope-db.js';
|
|
38
|
+
export { _resetDualScopeDbCache, assertWriteDurable, ExodusAbortWriteUnsafeError, insertIdempotent, openDualScopeDb, resolveDualScopeDbPath, upsertIdempotent, } from '../store/dual-scope-db.js';
|
|
39
|
+
export { exodusAbortEvents } from '../store/exodus/abort-events.js';
|
|
36
40
|
//# sourceMappingURL=index.js.map
|
package/dist/db/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAKlB,2BAA2B,EAC3B,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAA0B,iBAAiB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OUTPUT_CONTRACTS accessor — SSoT lookup for per-operation OUTPUT contracts.
|
|
3
|
+
*
|
|
4
|
+
* The OUTPUT-side mirror of {@link getInputContract}. The contract DATA lives
|
|
5
|
+
* in `@cleocode/contracts` (a leaf, zero-runtime-dep package) as
|
|
6
|
+
* {@link OUTPUT_CONTRACTS}; this module re-exports it and provides the null-safe
|
|
7
|
+
* accessor that the SDK `describeOperation` and the `cleo <op> --describe`
|
|
8
|
+
* surface consult.
|
|
9
|
+
*
|
|
10
|
+
* Keyed by the canonical `<domain>.<verb>` operation identifier (e.g.
|
|
11
|
+
* `'tasks.show'`). A `null` lookup is expected (the registry is populated
|
|
12
|
+
* incrementally, high-traffic ops first) and MUST NOT error.
|
|
13
|
+
*
|
|
14
|
+
* @packageDocumentation
|
|
15
|
+
* @module @cleocode/core/dispatch/contracts/output-contracts
|
|
16
|
+
*
|
|
17
|
+
* @epic T11679
|
|
18
|
+
* @task T11692 — DHQ-057: per-operation output schema SSoT
|
|
19
|
+
*/
|
|
20
|
+
import { type OperationOutputContract, OUTPUT_CONTRACTS } from '@cleocode/contracts';
|
|
21
|
+
export { OUTPUT_CONTRACTS };
|
|
22
|
+
/**
|
|
23
|
+
* Resolve the {@link OperationOutputContract} for an operation id, or return
|
|
24
|
+
* `null` when no contract is registered.
|
|
25
|
+
*
|
|
26
|
+
* Used by the SDK `describeOperation` and the `cleo <op> --describe`
|
|
27
|
+
* introspection surface to render the result-shape contract (data schema +
|
|
28
|
+
* valid `--field` pointers). Mirrors {@link getInputContract} exactly.
|
|
29
|
+
*
|
|
30
|
+
* @param operation - Canonical `<domain>.<verb>` operation identifier.
|
|
31
|
+
* @returns The matching contract, or `null` when none is registered.
|
|
32
|
+
*
|
|
33
|
+
* @task T11692
|
|
34
|
+
*/
|
|
35
|
+
export declare function getOutputContract(operation: string): OperationOutputContract | null;
|
|
36
|
+
//# sourceMappingURL=output-contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-contracts.d.ts","sourceRoot":"","sources":["../../../src/dispatch/contracts/output-contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,KAAK,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAErF,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI,CAEnF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OUTPUT_CONTRACTS accessor — SSoT lookup for per-operation OUTPUT contracts.
|
|
3
|
+
*
|
|
4
|
+
* The OUTPUT-side mirror of {@link getInputContract}. The contract DATA lives
|
|
5
|
+
* in `@cleocode/contracts` (a leaf, zero-runtime-dep package) as
|
|
6
|
+
* {@link OUTPUT_CONTRACTS}; this module re-exports it and provides the null-safe
|
|
7
|
+
* accessor that the SDK `describeOperation` and the `cleo <op> --describe`
|
|
8
|
+
* surface consult.
|
|
9
|
+
*
|
|
10
|
+
* Keyed by the canonical `<domain>.<verb>` operation identifier (e.g.
|
|
11
|
+
* `'tasks.show'`). A `null` lookup is expected (the registry is populated
|
|
12
|
+
* incrementally, high-traffic ops first) and MUST NOT error.
|
|
13
|
+
*
|
|
14
|
+
* @packageDocumentation
|
|
15
|
+
* @module @cleocode/core/dispatch/contracts/output-contracts
|
|
16
|
+
*
|
|
17
|
+
* @epic T11679
|
|
18
|
+
* @task T11692 — DHQ-057: per-operation output schema SSoT
|
|
19
|
+
*/
|
|
20
|
+
import { OUTPUT_CONTRACTS } from '@cleocode/contracts';
|
|
21
|
+
export { OUTPUT_CONTRACTS };
|
|
22
|
+
/**
|
|
23
|
+
* Resolve the {@link OperationOutputContract} for an operation id, or return
|
|
24
|
+
* `null` when no contract is registered.
|
|
25
|
+
*
|
|
26
|
+
* Used by the SDK `describeOperation` and the `cleo <op> --describe`
|
|
27
|
+
* introspection surface to render the result-shape contract (data schema +
|
|
28
|
+
* valid `--field` pointers). Mirrors {@link getInputContract} exactly.
|
|
29
|
+
*
|
|
30
|
+
* @param operation - Canonical `<domain>.<verb>` operation identifier.
|
|
31
|
+
* @returns The matching contract, or `null` when none is registered.
|
|
32
|
+
*
|
|
33
|
+
* @task T11692
|
|
34
|
+
*/
|
|
35
|
+
export function getOutputContract(operation) {
|
|
36
|
+
return OUTPUT_CONTRACTS[operation] ?? null;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=output-contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-contracts.js","sourceRoot":"","sources":["../../../src/dispatch/contracts/output-contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAgC,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAErF,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,OAAO,gBAAgB,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* describeOperation — SDK introspection of a CLEO operation's I/O contract.
|
|
3
|
+
*
|
|
4
|
+
* The programmatic counterpart to `cleo <op> --describe`. Given a canonical
|
|
5
|
+
* `<domain>.<verb>` operation id (e.g. `'tasks.show'`), composes a single
|
|
6
|
+
* typed {@link OperationDescriptor} from the three SSoT surfaces:
|
|
7
|
+
*
|
|
8
|
+
* 1. {@link OperationDef} (from `@cleocode/contracts`) — gateway, tier,
|
|
9
|
+
* idempotency, session requirement, and the declared `params`.
|
|
10
|
+
* 2. The INPUT contract (`getInputContract`, T9918) — JSON Schema for the
|
|
11
|
+
* accepted request payload + worked examples. The schemas set
|
|
12
|
+
* `additionalProperties: false`, so unknown keys (e.g. `relates` on
|
|
13
|
+
* `tasks.add-batch`) are rejected LOUDLY (DHQ-033).
|
|
14
|
+
* 3. The OUTPUT contract (`getOutputContract`, T11692) — JSON Schema for the
|
|
15
|
+
* LAFS envelope's `data` payload + the curated list of valid `--field`
|
|
16
|
+
* JSON pointers (DHQ-057). This is what lets an agent predict the result
|
|
17
|
+
* shape instead of guessing (`/data/task/title`, NOT `/data/title`).
|
|
18
|
+
*
|
|
19
|
+
* This is the root fix for "agents cannot predict the envelope" (T11692):
|
|
20
|
+
* `--field` pointers, result parsing, and SDK consumers all resolve against
|
|
21
|
+
* ONE declared contract rather than hand-sniffing per verb.
|
|
22
|
+
*
|
|
23
|
+
* @packageDocumentation
|
|
24
|
+
* @module @cleocode/core/dispatch/describe-operation
|
|
25
|
+
*
|
|
26
|
+
* @epic T11679
|
|
27
|
+
* @task T11692 — DHQ-057: per-operation output schema SSoT
|
|
28
|
+
*/
|
|
29
|
+
import { type OperationInputContract, type OperationOutputContract } from '@cleocode/contracts';
|
|
30
|
+
import { type OperationSchema } from '@cleocode/lafs';
|
|
31
|
+
/**
|
|
32
|
+
* Fully-resolved I/O contract for a single CLEO operation.
|
|
33
|
+
*
|
|
34
|
+
* Returned by {@link describeOperation}. Bundles the operation's identity, its
|
|
35
|
+
* parameter signature (`params`/`gates` via the LAFS schema), the INPUT
|
|
36
|
+
* contract, and the OUTPUT contract into one machine- and human-readable
|
|
37
|
+
* descriptor. `inputContract` / `outputContract` are `null` for operations not
|
|
38
|
+
* yet migrated to the schema-first surface — callers render the descriptor with
|
|
39
|
+
* a "no contract yet" note rather than failing.
|
|
40
|
+
*/
|
|
41
|
+
export interface OperationDescriptor {
|
|
42
|
+
/** Fully-qualified operation key, e.g. `"tasks.show"`. */
|
|
43
|
+
operation: string;
|
|
44
|
+
/** CQRS gateway — read-only (`"query"`) or state-modifying (`"mutate"`). */
|
|
45
|
+
gateway: 'query' | 'mutate';
|
|
46
|
+
/** One-line description of what the operation does. */
|
|
47
|
+
description: string;
|
|
48
|
+
/** Agent progressive-disclosure tier (0=basic, 1=memory/check, 2=full). */
|
|
49
|
+
tier: number;
|
|
50
|
+
/** Whether the operation is safe to retry. */
|
|
51
|
+
idempotent: boolean;
|
|
52
|
+
/** Whether the operation requires an active session. */
|
|
53
|
+
sessionRequired: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Parameter signature + declared precondition gates, derived from the LAFS
|
|
56
|
+
* {@link OperationSchema}. The authoritative human-readable param list.
|
|
57
|
+
*/
|
|
58
|
+
params: OperationSchema;
|
|
59
|
+
/**
|
|
60
|
+
* Schema-first INPUT contract (JSON Schema + examples), or `null` when the
|
|
61
|
+
* operation has no registered input contract yet.
|
|
62
|
+
*/
|
|
63
|
+
inputContract: OperationInputContract<unknown> | null;
|
|
64
|
+
/**
|
|
65
|
+
* Schema-first OUTPUT contract (envelope `data` JSON Schema + valid `--field`
|
|
66
|
+
* pointers), or `null` when the operation has no registered output contract
|
|
67
|
+
* yet.
|
|
68
|
+
*/
|
|
69
|
+
outputContract: OperationOutputContract | null;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Describe a CLEO operation's full INPUT + OUTPUT contract.
|
|
73
|
+
*
|
|
74
|
+
* The SDK entry point behind `cleo <op> --describe`. Resolves the operation by
|
|
75
|
+
* its canonical `<domain>.<verb>` id and returns a single typed
|
|
76
|
+
* {@link OperationDescriptor}, or `null` when the operation id is unknown.
|
|
77
|
+
*
|
|
78
|
+
* Contract resolution prefers an inline contract carried on the
|
|
79
|
+
* {@link OperationDef} (`def.inputSchema` / `def.outputSchema`) and falls back
|
|
80
|
+
* to the SSoT registries (`getInputContract` / `getOutputContract`). This lets
|
|
81
|
+
* a definition self-describe while keeping the registries authoritative.
|
|
82
|
+
*
|
|
83
|
+
* @param operation - Canonical `<domain>.<verb>` operation id (e.g. `"tasks.show"`).
|
|
84
|
+
* @returns The resolved descriptor, or `null` when the operation is unknown.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* import { describeOperation } from '@cleocode/core';
|
|
89
|
+
*
|
|
90
|
+
* const d = describeOperation('tasks.show');
|
|
91
|
+
* // d.outputContract.fieldPointers includes '/data/task/title'
|
|
92
|
+
* // → the correct pointer; '/data/title' would E_FIELD_NOT_FOUND.
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
* @task T11692
|
|
96
|
+
*/
|
|
97
|
+
export declare function describeOperation(operation: string): OperationDescriptor | null;
|
|
98
|
+
//# sourceMappingURL=describe-operation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"describe-operation.d.ts","sourceRoot":"","sources":["../../src/dispatch/describe-operation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAuC,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAI3F;;;;;;;;;GASG;AACH,MAAM,WAAW,mBAAmB;IAClC,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC5B,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,UAAU,EAAE,OAAO,CAAC;IACpB,wDAAwD;IACxD,eAAe,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,MAAM,EAAE,eAAe,CAAC;IACxB;;;OAGG;IACH,aAAa,EAAE,sBAAsB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACtD;;;;OAIG;IACH,cAAc,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAChD;AAyBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAoB/E"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* describeOperation — SDK introspection of a CLEO operation's I/O contract.
|
|
3
|
+
*
|
|
4
|
+
* The programmatic counterpart to `cleo <op> --describe`. Given a canonical
|
|
5
|
+
* `<domain>.<verb>` operation id (e.g. `'tasks.show'`), composes a single
|
|
6
|
+
* typed {@link OperationDescriptor} from the three SSoT surfaces:
|
|
7
|
+
*
|
|
8
|
+
* 1. {@link OperationDef} (from `@cleocode/contracts`) — gateway, tier,
|
|
9
|
+
* idempotency, session requirement, and the declared `params`.
|
|
10
|
+
* 2. The INPUT contract (`getInputContract`, T9918) — JSON Schema for the
|
|
11
|
+
* accepted request payload + worked examples. The schemas set
|
|
12
|
+
* `additionalProperties: false`, so unknown keys (e.g. `relates` on
|
|
13
|
+
* `tasks.add-batch`) are rejected LOUDLY (DHQ-033).
|
|
14
|
+
* 3. The OUTPUT contract (`getOutputContract`, T11692) — JSON Schema for the
|
|
15
|
+
* LAFS envelope's `data` payload + the curated list of valid `--field`
|
|
16
|
+
* JSON pointers (DHQ-057). This is what lets an agent predict the result
|
|
17
|
+
* shape instead of guessing (`/data/task/title`, NOT `/data/title`).
|
|
18
|
+
*
|
|
19
|
+
* This is the root fix for "agents cannot predict the envelope" (T11692):
|
|
20
|
+
* `--field` pointers, result parsing, and SDK consumers all resolve against
|
|
21
|
+
* ONE declared contract rather than hand-sniffing per verb.
|
|
22
|
+
*
|
|
23
|
+
* @packageDocumentation
|
|
24
|
+
* @module @cleocode/core/dispatch/describe-operation
|
|
25
|
+
*
|
|
26
|
+
* @epic T11679
|
|
27
|
+
* @task T11692 — DHQ-057: per-operation output schema SSoT
|
|
28
|
+
*/
|
|
29
|
+
import { OPERATIONS, } from '@cleocode/contracts';
|
|
30
|
+
import { describeOperation as describeParams } from '@cleocode/lafs';
|
|
31
|
+
import { getInputContract } from './contracts/input-contracts.js';
|
|
32
|
+
import { getOutputContract } from './contracts/output-contracts.js';
|
|
33
|
+
/**
|
|
34
|
+
* Resolve the {@link OperationDef} for a canonical `<domain>.<verb>` key.
|
|
35
|
+
*
|
|
36
|
+
* The first dot separates domain from operation, so dotted operation names like
|
|
37
|
+
* `"complexity.estimate"` are handled correctly. When the key has no dot, an
|
|
38
|
+
* unambiguous single-domain match is returned (else `null`).
|
|
39
|
+
*
|
|
40
|
+
* @param operation - The operation id (e.g. `"tasks.show"`).
|
|
41
|
+
* @returns The matching {@link OperationDef}, or `null` if not found / ambiguous.
|
|
42
|
+
*
|
|
43
|
+
* @internal
|
|
44
|
+
*/
|
|
45
|
+
function resolveOperationDef(operation) {
|
|
46
|
+
const dotIdx = operation.indexOf('.');
|
|
47
|
+
if (dotIdx === -1) {
|
|
48
|
+
const matches = OPERATIONS.filter((op) => op.operation === operation);
|
|
49
|
+
return matches.length === 1 ? (matches[0] ?? null) : null;
|
|
50
|
+
}
|
|
51
|
+
const domain = operation.slice(0, dotIdx);
|
|
52
|
+
const op = operation.slice(dotIdx + 1);
|
|
53
|
+
return OPERATIONS.find((o) => o.domain === domain && o.operation === op) ?? null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Describe a CLEO operation's full INPUT + OUTPUT contract.
|
|
57
|
+
*
|
|
58
|
+
* The SDK entry point behind `cleo <op> --describe`. Resolves the operation by
|
|
59
|
+
* its canonical `<domain>.<verb>` id and returns a single typed
|
|
60
|
+
* {@link OperationDescriptor}, or `null` when the operation id is unknown.
|
|
61
|
+
*
|
|
62
|
+
* Contract resolution prefers an inline contract carried on the
|
|
63
|
+
* {@link OperationDef} (`def.inputSchema` / `def.outputSchema`) and falls back
|
|
64
|
+
* to the SSoT registries (`getInputContract` / `getOutputContract`). This lets
|
|
65
|
+
* a definition self-describe while keeping the registries authoritative.
|
|
66
|
+
*
|
|
67
|
+
* @param operation - Canonical `<domain>.<verb>` operation id (e.g. `"tasks.show"`).
|
|
68
|
+
* @returns The resolved descriptor, or `null` when the operation is unknown.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* import { describeOperation } from '@cleocode/core';
|
|
73
|
+
*
|
|
74
|
+
* const d = describeOperation('tasks.show');
|
|
75
|
+
* // d.outputContract.fieldPointers includes '/data/task/title'
|
|
76
|
+
* // → the correct pointer; '/data/title' would E_FIELD_NOT_FOUND.
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
79
|
+
* @task T11692
|
|
80
|
+
*/
|
|
81
|
+
export function describeOperation(operation) {
|
|
82
|
+
const def = resolveOperationDef(operation);
|
|
83
|
+
if (def === null)
|
|
84
|
+
return null;
|
|
85
|
+
const key = `${def.domain}.${def.operation}`;
|
|
86
|
+
const params = describeParams(def, { includeGates: true, includeExamples: true });
|
|
87
|
+
const inputContract = def.inputSchema ?? getInputContract(key);
|
|
88
|
+
const outputContract = def.outputSchema ?? getOutputContract(key);
|
|
89
|
+
return {
|
|
90
|
+
operation: key,
|
|
91
|
+
gateway: def.gateway,
|
|
92
|
+
description: def.description,
|
|
93
|
+
tier: def.tier,
|
|
94
|
+
idempotent: def.idempotent,
|
|
95
|
+
sessionRequired: def.sessionRequired,
|
|
96
|
+
params,
|
|
97
|
+
inputContract,
|
|
98
|
+
outputContract,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=describe-operation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"describe-operation.js","sourceRoot":"","sources":["../../src/dispatch/describe-operation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EACL,UAAU,GAIX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,IAAI,cAAc,EAAwB,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AA2CpE;;;;;;;;;;;GAWG;AACH,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QACtE,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC;AACnF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,MAAM,GAAG,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IAClF,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,GAAG,CAAC,YAAY,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAElE,OAAO;QACL,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,MAAM;QACN,aAAa;QACb,cAAc;KACf,CAAC;AACJ,CAAC"}
|
|
@@ -45,6 +45,18 @@ export interface BuildDocProvenanceGraphOptions {
|
|
|
45
45
|
* Project root for DB resolution. Defaults to {@link getProjectRoot}().
|
|
46
46
|
*/
|
|
47
47
|
readonly projectRoot?: string;
|
|
48
|
+
/**
|
|
49
|
+
* When `true`, hydrate the BFS result with the persisted `docs_wikilinks`
|
|
50
|
+
* backlink edges (T11826) incident to the visited doc nodes — adding
|
|
51
|
+
* `shares-topic` doc↔doc edges (which the on-the-fly BFS does not compute)
|
|
52
|
+
* plus any persisted supersedes / related-task backlinks not already present.
|
|
53
|
+
* The persisted edge table is the Obsidian-grade graph; this folds it into
|
|
54
|
+
* the same envelope without a second query path.
|
|
55
|
+
*
|
|
56
|
+
* @default false
|
|
57
|
+
* @task T11826
|
|
58
|
+
*/
|
|
59
|
+
readonly hydrateWikilinks?: boolean;
|
|
48
60
|
}
|
|
49
61
|
/**
|
|
50
62
|
* Error raised when {@link buildDocProvenanceGraph}'s root identifier cannot
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-provenance-graph.d.ts","sourceRoot":"","sources":["../../src/docs/build-provenance-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAEV,qBAAqB,EAOtB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"build-provenance-graph.d.ts","sourceRoot":"","sources":["../../src/docs/build-provenance-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAEV,qBAAqB,EAOtB,MAAM,qBAAqB,CAAC;AAO7B;;;;GAIG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;;;;GAKG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;gBAC3C,IAAI,EAAE,MAAM;CAMzB;AAmBD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,qBAAqB,CAAC,CA8IhC;AA8DD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAa/E"}
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
*/
|
|
25
25
|
import { and, eq, inArray, or, sql } from 'drizzle-orm';
|
|
26
26
|
import { getProjectRoot } from '../paths.js';
|
|
27
|
+
import { docsWikilinks } from '../store/schema/attachments.js';
|
|
27
28
|
import { getDb } from '../store/sqlite.js';
|
|
28
29
|
import { attachmentRefs, attachments } from '../store/tasks-schema.js';
|
|
29
30
|
/**
|
|
@@ -174,6 +175,9 @@ export async function buildDocProvenanceGraph(options) {
|
|
|
174
175
|
}
|
|
175
176
|
frontier = nextFrontier;
|
|
176
177
|
}
|
|
178
|
+
if (options.hydrateWikilinks) {
|
|
179
|
+
await hydrateFromWikilinks(db, nodes, edges);
|
|
180
|
+
}
|
|
177
181
|
return {
|
|
178
182
|
nodes,
|
|
179
183
|
edges,
|
|
@@ -181,6 +185,54 @@ export async function buildDocProvenanceGraph(options) {
|
|
|
181
185
|
totalEdges: edges.length,
|
|
182
186
|
};
|
|
183
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Fold the persisted `docs_wikilinks` backlink edges (T11826) into an
|
|
190
|
+
* already-built provenance graph.
|
|
191
|
+
*
|
|
192
|
+
* For every doc node currently in the graph, pull its incident wikilink edges
|
|
193
|
+
* (both directions) and append any that connect to another doc node already in
|
|
194
|
+
* the graph and are not already present. This surfaces `shares-topic` doc↔doc
|
|
195
|
+
* edges — which the on-the-fly BFS does not compute — without re-deriving the
|
|
196
|
+
* graph. Edges to nodes outside the visited set are skipped so the BFS depth
|
|
197
|
+
* bound is respected.
|
|
198
|
+
*
|
|
199
|
+
* @internal
|
|
200
|
+
* @task T11826
|
|
201
|
+
*/
|
|
202
|
+
async function hydrateFromWikilinks(db, nodes, edges) {
|
|
203
|
+
const docSlugs = new Set(nodes.filter((n) => n.kind === 'doc').map((n) => n.id));
|
|
204
|
+
if (docSlugs.size === 0)
|
|
205
|
+
return;
|
|
206
|
+
const rows = await db
|
|
207
|
+
.select()
|
|
208
|
+
.from(docsWikilinks)
|
|
209
|
+
.where(or(inArray(docsWikilinks.fromSlug, [...docSlugs]), inArray(docsWikilinks.toSlug, [...docSlugs])))
|
|
210
|
+
.all();
|
|
211
|
+
// Dedupe against existing edges by (relation, from, to).
|
|
212
|
+
const existing = new Set(edges.map((e) => `${e.relation}|${e.from}|${e.to}`));
|
|
213
|
+
for (const row of rows) {
|
|
214
|
+
// Only fold edges whose endpoints are both already visited doc nodes —
|
|
215
|
+
// related-task edges are already emitted by the BFS, and topic links to
|
|
216
|
+
// unvisited docs would breach the depth bound.
|
|
217
|
+
if (row.relation === 'related-task')
|
|
218
|
+
continue;
|
|
219
|
+
if (!docSlugs.has(row.fromSlug) || !docSlugs.has(row.toSlug))
|
|
220
|
+
continue;
|
|
221
|
+
const relation = row.relation === 'topic' ? 'shares-topic' : row.relation;
|
|
222
|
+
const key = `${relation}|${row.fromSlug}|${row.toSlug}`;
|
|
223
|
+
if (existing.has(key))
|
|
224
|
+
continue;
|
|
225
|
+
existing.add(key);
|
|
226
|
+
edges.push({
|
|
227
|
+
relation,
|
|
228
|
+
from: row.fromSlug,
|
|
229
|
+
fromKind: 'doc',
|
|
230
|
+
to: row.toSlug,
|
|
231
|
+
toKind: 'doc',
|
|
232
|
+
addedAt: row.derivedAt,
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
}
|
|
184
236
|
/**
|
|
185
237
|
* Render a {@link DocProvenanceResponse} as a Graphviz DOT graph.
|
|
186
238
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-provenance-graph.js","sourceRoot":"","sources":["../../src/docs/build-provenance-graph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build-provenance-graph.js","sourceRoot":"","sources":["../../src/docs/build-provenance-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,6 +52,25 @@ export interface ResolvedDoc {
|
|
|
52
52
|
/** Which backing store this doc was resolved from. */
|
|
53
53
|
readonly source: 'tasks-db' | 'manifest-db' | 'merged';
|
|
54
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Discriminated result of {@link DocsReadModel.fetchDecoded}.
|
|
57
|
+
*
|
|
58
|
+
* The success arm carries both the resolved doc record and its decoded
|
|
59
|
+
* UTF-8 body; the failure arms distinguish a missing reference from a
|
|
60
|
+
* resolvable doc whose blob could not be read.
|
|
61
|
+
*/
|
|
62
|
+
export type DecodedDocResult = {
|
|
63
|
+
readonly ok: true;
|
|
64
|
+
readonly doc: ResolvedDoc;
|
|
65
|
+
readonly content: string;
|
|
66
|
+
} | {
|
|
67
|
+
readonly ok: false;
|
|
68
|
+
readonly reason: 'not-found';
|
|
69
|
+
} | {
|
|
70
|
+
readonly ok: false;
|
|
71
|
+
readonly reason: 'no-content';
|
|
72
|
+
readonly doc: ResolvedDoc;
|
|
73
|
+
};
|
|
55
74
|
/**
|
|
56
75
|
* Filters for {@link DocsReadModel.listProjectDocs}.
|
|
57
76
|
*/
|
|
@@ -185,6 +204,27 @@ export declare class DocsReadModel {
|
|
|
185
204
|
* cannot be read.
|
|
186
205
|
*/
|
|
187
206
|
fetchContent(doc: ResolvedDoc): Promise<string | null>;
|
|
207
|
+
/**
|
|
208
|
+
* Resolve a reference (slug, attachment ID, or SHA-256) and return its
|
|
209
|
+
* decoded UTF-8 body in a single call.
|
|
210
|
+
*
|
|
211
|
+
* Convenience wrapper around the resolve → {@link fetchContent} two-step
|
|
212
|
+
* used by agent-facing surfaces (e.g. `cleo docs fetch --content`) that
|
|
213
|
+
* want the raw document text without first hand-decoding the base64
|
|
214
|
+
* `bytesBase64` field from the LAFS fetch envelope (T10970).
|
|
215
|
+
*
|
|
216
|
+
* Resolution order mirrors the canonical fetch path: slug first (the
|
|
217
|
+
* common agent ergonomic), then attachment ID / SHA-256 content address.
|
|
218
|
+
*
|
|
219
|
+
* @param ref - Slug, attachment UUID, or 64-char hex SHA-256.
|
|
220
|
+
* @returns A discriminated result:
|
|
221
|
+
* - `{ ok: true, doc, content }` when the ref resolved AND content was
|
|
222
|
+
* retrievable.
|
|
223
|
+
* - `{ ok: false, reason: 'not-found' }` when no doc carries the ref.
|
|
224
|
+
* - `{ ok: false, reason: 'no-content', doc }` when the doc metadata
|
|
225
|
+
* exists but its blob could not be read (e.g. purged or unpublished).
|
|
226
|
+
*/
|
|
227
|
+
fetchDecoded(ref: string): Promise<DecodedDocResult>;
|
|
188
228
|
/**
|
|
189
229
|
* Fetch content for multiple docs in parallel.
|
|
190
230
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs-read-model.d.ts","sourceRoot":"","sources":["../../src/docs/docs-read-model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"docs-read-model.d.ts","sourceRoot":"","sources":["../../src/docs/docs-read-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -271,6 +271,35 @@ export class DocsReadModel {
|
|
|
271
271
|
}
|
|
272
272
|
return null;
|
|
273
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* Resolve a reference (slug, attachment ID, or SHA-256) and return its
|
|
276
|
+
* decoded UTF-8 body in a single call.
|
|
277
|
+
*
|
|
278
|
+
* Convenience wrapper around the resolve → {@link fetchContent} two-step
|
|
279
|
+
* used by agent-facing surfaces (e.g. `cleo docs fetch --content`) that
|
|
280
|
+
* want the raw document text without first hand-decoding the base64
|
|
281
|
+
* `bytesBase64` field from the LAFS fetch envelope (T10970).
|
|
282
|
+
*
|
|
283
|
+
* Resolution order mirrors the canonical fetch path: slug first (the
|
|
284
|
+
* common agent ergonomic), then attachment ID / SHA-256 content address.
|
|
285
|
+
*
|
|
286
|
+
* @param ref - Slug, attachment UUID, or 64-char hex SHA-256.
|
|
287
|
+
* @returns A discriminated result:
|
|
288
|
+
* - `{ ok: true, doc, content }` when the ref resolved AND content was
|
|
289
|
+
* retrievable.
|
|
290
|
+
* - `{ ok: false, reason: 'not-found' }` when no doc carries the ref.
|
|
291
|
+
* - `{ ok: false, reason: 'no-content', doc }` when the doc metadata
|
|
292
|
+
* exists but its blob could not be read (e.g. purged or unpublished).
|
|
293
|
+
*/
|
|
294
|
+
async fetchDecoded(ref) {
|
|
295
|
+
const doc = (await this.resolveBySlug(ref)) ?? (await this.resolveByAttachmentId(ref));
|
|
296
|
+
if (!doc)
|
|
297
|
+
return { ok: false, reason: 'not-found' };
|
|
298
|
+
const content = await this.fetchContent(doc);
|
|
299
|
+
if (content === null)
|
|
300
|
+
return { ok: false, reason: 'no-content', doc };
|
|
301
|
+
return { ok: true, doc, content };
|
|
302
|
+
}
|
|
274
303
|
/**
|
|
275
304
|
* Fetch content for multiple docs in parallel.
|
|
276
305
|
*
|