@productbrain/cli 0.1.0-beta.10904 → 0.1.0-beta.10914
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/__tests__/capture-receipt-role-hint.test.js +2 -5
- package/dist/__tests__/capture-receipt-role-hint.test.js.map +1 -1
- package/dist/__tests__/capture.test.js +83 -621
- package/dist/__tests__/capture.test.js.map +1 -1
- package/dist/__tests__/rate-limit-resilience.test.js +2 -36
- package/dist/__tests__/rate-limit-resilience.test.js.map +1 -1
- package/dist/__tests__/removed-commands.test.js +8 -2
- package/dist/__tests__/removed-commands.test.js.map +1 -1
- package/dist/__tests__/session-touch.test.js +48 -112
- package/dist/__tests__/session-touch.test.js.map +1 -1
- package/dist/__tests__/workspaceNotice.test.js +3 -15
- package/dist/__tests__/workspaceNotice.test.js.map +1 -1
- package/dist/commands/capture.d.ts +4 -9
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +30 -151
- package/dist/commands/capture.js.map +1 -1
- package/dist/handleCliError.d.ts +0 -2
- package/dist/handleCliError.d.ts.map +1 -1
- package/dist/handleCliError.js +3 -0
- package/dist/handleCliError.js.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/client.d.ts +9 -10
- package/dist/lib/client.d.ts.map +1 -1
- package/dist/lib/client.js +19 -62
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/rate-limit.js +1 -1
- package/dist/registerEntryCommands.d.ts.map +1 -1
- package/dist/registerEntryCommands.js +1 -2
- package/dist/registerEntryCommands.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/collection-registry-seed-drift.test.d.ts +0 -2
- package/dist/__tests__/collection-registry-seed-drift.test.d.ts.map +0 -1
- package/dist/__tests__/collection-registry-seed-drift.test.js +0 -102
- package/dist/__tests__/collection-registry-seed-drift.test.js.map +0 -1
- package/dist/lib/captureGrounding.d.ts +0 -48
- package/dist/lib/captureGrounding.d.ts.map +0 -1
- package/dist/lib/captureGrounding.js +0 -54
- package/dist/lib/captureGrounding.js.map +0 -1
- package/dist/lib/captureGrounding.test.d.ts +0 -2
- package/dist/lib/captureGrounding.test.d.ts.map +0 -1
- package/dist/lib/captureGrounding.test.js +0 -74
- package/dist/lib/captureGrounding.test.js.map +0 -1
- package/dist/lib/collectionRegistry.d.ts +0 -73
- package/dist/lib/collectionRegistry.d.ts.map +0 -1
- package/dist/lib/collectionRegistry.js +0 -135
- package/dist/lib/collectionRegistry.js.map +0 -1
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Runtime collection registry — fetches from chain.listCollections via kernelCall
|
|
3
|
-
* and memoizes per process invocation (module-scope singleton).
|
|
4
|
-
*
|
|
5
|
-
* Fails open to a build-time SEED snapshot (mirrors PREFIX_TO_COLLECTION in
|
|
6
|
-
* capture.ts) so CLI commands continue to work even when the backend is
|
|
7
|
-
* unreachable or chain.listCollections is unavailable.
|
|
8
|
-
*
|
|
9
|
-
* FEAT-885 / TEN-1406: Replaces hardcoded PREFIX_TO_COLLECTION + datedCollections
|
|
10
|
-
* constants with runtime-derived data. BR-108: CLI cannot import from convex/,
|
|
11
|
-
* so registry uses kernelCall (HTTP gateway).
|
|
12
|
-
*/
|
|
13
|
-
export interface CollectionMeta {
|
|
14
|
-
slug: string;
|
|
15
|
-
idPrefix?: string;
|
|
16
|
-
classificationCheck?: string;
|
|
17
|
-
classificationSignals?: string[];
|
|
18
|
-
navGroup?: string;
|
|
19
|
-
governed?: boolean;
|
|
20
|
-
governanceFunction?: string;
|
|
21
|
-
/** WP-707 S1 round 3 (operator ruling #13): the collection's declared canonical kind — lets
|
|
22
|
-
* `--entry-type` derive its drawer from the SAME 1:1 registry the server enforces
|
|
23
|
-
* (`getRequiredCollectionSlugForKind`, convex/lib/seedTypeRegistry.ts), instead of a
|
|
24
|
-
* hand-picked pair of literal branches. Present on the live `chain.listCollections` payload
|
|
25
|
-
* (`collections.defaultCanonicalKey`); populated on the offline SEED fallback only where
|
|
26
|
-
* added below. */
|
|
27
|
-
defaultCanonicalKey?: string;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* SEED — the OFFLINE FAIL-OPEN FALLBACK only (WP-480 S2, TEN-2219).
|
|
31
|
-
* The online path derives from `chain.listCollections` (getCollections below);
|
|
32
|
-
* this snapshot exists solely so CLI commands keep working when the backend is
|
|
33
|
-
* unreachable. It therefore only needs day-zero accuracy, and is content-pinned
|
|
34
|
-
* against the canonical day-zero seed truth —
|
|
35
|
-
* `convex/lib/seedClassificationRegistry.ts` on the {slug, idPrefix} projection
|
|
36
|
-
* (see src/__tests__/collection-registry-seed-drift.test.ts). Two carve-outs
|
|
37
|
-
* have no canonical counterpart and are excluded from the pin:
|
|
38
|
-
* - `work-packages → BET` (BET-230 rename backward compat; canonical maps only WP).
|
|
39
|
-
* - `objectives → KEY` (P1 review PRRT_kwDORS4ils6cUz6M, WP-686 S6; rationale corrected PR
|
|
40
|
-
* #824, 2026-09-04): the canonical registry flipped `objectives`'s idPrefix from KEY to OBJ
|
|
41
|
-
* in place (S5, TASK-91) rather than adding a parallel row, so there is no canonical KEY
|
|
42
|
-
* entry to pin against — but a version-skewed CLI running OFFLINE (this SEED's only use
|
|
43
|
-
* case) against a STALE local cache or export predating the fleet-wide id-rewrite (now
|
|
44
|
-
* `applied` everywhere — live-scope-subset, live:8 dead:0, per artifact generatedAt
|
|
45
|
-
* 2026-09-04T19:43:27.412Z; wp686_key_to_obj_prefix_rewrite.md no longer exists) can still
|
|
46
|
-
* see `KEY`, so `pb capture "KEY: ..."` still needs to route to `objectives`, same reasoning
|
|
47
|
-
* as the BET alias above.
|
|
48
|
-
*/
|
|
49
|
-
export declare const SEED: CollectionMeta[];
|
|
50
|
-
/**
|
|
51
|
-
* Fetch all collections for the current workspace.
|
|
52
|
-
* Module-scope memoized — calls kernelCall once per process, then returns
|
|
53
|
-
* the cached result. Fails open to SEED on any error.
|
|
54
|
-
*/
|
|
55
|
-
export declare function getCollections(): Promise<CollectionMeta[]>;
|
|
56
|
-
/**
|
|
57
|
-
* Build a prefix → collection slug map from the runtime registry.
|
|
58
|
-
* Falls back to SEED-derived map on failure.
|
|
59
|
-
*/
|
|
60
|
-
export declare function getPrefixToCollection(): Promise<Record<string, string>>;
|
|
61
|
-
/**
|
|
62
|
-
* WP-707 S1 round 3 (operator ruling #13): build a canonicalKey → collection slug map from the
|
|
63
|
-
* runtime registry — the CLI-side mirror of `getRequiredCollectionSlugForKind`
|
|
64
|
-
* (convex/lib/seedTypeRegistry.ts). Used by capture.ts's `--entry-type` fast path so ANY kind
|
|
65
|
-
* with its own 1:1 drawer resolves automatically, instead of a hand-picked pair of literal
|
|
66
|
-
* branches that needs a new one hand-added for every future drawer. Only a kind with EXACTLY ONE
|
|
67
|
-
* collection declaring it as `defaultCanonicalKey` resolves — consistent with the
|
|
68
|
-
* one-type-one-collection invariant this PR establishes server-side; a kind with zero or more
|
|
69
|
-
* than one owner slug resolves to undefined so the caller falls through to server-side
|
|
70
|
-
* classification instead of guessing.
|
|
71
|
-
*/
|
|
72
|
-
export declare function getCanonicalKeyToCollection(): Promise<Record<string, string>>;
|
|
73
|
-
//# sourceMappingURL=collectionRegistry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collectionRegistry.d.ts","sourceRoot":"","sources":["../../src/lib/collectionRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;uBAKmB;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AAWH,eAAO,MAAM,IAAI,EAAE,cAAc,EA+BhC,CAAC;AAIF;;;;GAIG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAkBhE;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAO7E;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAcnF"}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Runtime collection registry — fetches from chain.listCollections via kernelCall
|
|
3
|
-
* and memoizes per process invocation (module-scope singleton).
|
|
4
|
-
*
|
|
5
|
-
* Fails open to a build-time SEED snapshot (mirrors PREFIX_TO_COLLECTION in
|
|
6
|
-
* capture.ts) so CLI commands continue to work even when the backend is
|
|
7
|
-
* unreachable or chain.listCollections is unavailable.
|
|
8
|
-
*
|
|
9
|
-
* FEAT-885 / TEN-1406: Replaces hardcoded PREFIX_TO_COLLECTION + datedCollections
|
|
10
|
-
* constants with runtime-derived data. BR-108: CLI cannot import from convex/,
|
|
11
|
-
* so registry uses kernelCall (HTTP gateway).
|
|
12
|
-
*/
|
|
13
|
-
import { kernelCall } from './client.js';
|
|
14
|
-
/**
|
|
15
|
-
* SEED — the OFFLINE FAIL-OPEN FALLBACK only (WP-480 S2, TEN-2219).
|
|
16
|
-
* The online path derives from `chain.listCollections` (getCollections below);
|
|
17
|
-
* this snapshot exists solely so CLI commands keep working when the backend is
|
|
18
|
-
* unreachable. It therefore only needs day-zero accuracy, and is content-pinned
|
|
19
|
-
* against the canonical day-zero seed truth —
|
|
20
|
-
* `convex/lib/seedClassificationRegistry.ts` on the {slug, idPrefix} projection
|
|
21
|
-
* (see src/__tests__/collection-registry-seed-drift.test.ts). Two carve-outs
|
|
22
|
-
* have no canonical counterpart and are excluded from the pin:
|
|
23
|
-
* - `work-packages → BET` (BET-230 rename backward compat; canonical maps only WP).
|
|
24
|
-
* - `objectives → KEY` (P1 review PRRT_kwDORS4ils6cUz6M, WP-686 S6; rationale corrected PR
|
|
25
|
-
* #824, 2026-09-04): the canonical registry flipped `objectives`'s idPrefix from KEY to OBJ
|
|
26
|
-
* in place (S5, TASK-91) rather than adding a parallel row, so there is no canonical KEY
|
|
27
|
-
* entry to pin against — but a version-skewed CLI running OFFLINE (this SEED's only use
|
|
28
|
-
* case) against a STALE local cache or export predating the fleet-wide id-rewrite (now
|
|
29
|
-
* `applied` everywhere — live-scope-subset, live:8 dead:0, per artifact generatedAt
|
|
30
|
-
* 2026-09-04T19:43:27.412Z; wp686_key_to_obj_prefix_rewrite.md no longer exists) can still
|
|
31
|
-
* see `KEY`, so `pb capture "KEY: ..."` still needs to route to `objectives`, same reasoning
|
|
32
|
-
* as the BET alias above.
|
|
33
|
-
*/
|
|
34
|
-
// WP-690 S7 (TASK-120, twice-corrected): pinned to
|
|
35
|
-
// convex/lib/seedClassificationRegistry.ts's corrected 30 -> 27 list (see that file's header for
|
|
36
|
-
// the full correction history).
|
|
37
|
-
// WP-780 (DEC-1962, PR #1543 review): SEED carries no slug the catalog (dev-system-collections.json) marks
|
|
38
|
-
// retired — a prefixed capture would skip classification only to be refused by the server's retirement check.
|
|
39
|
-
// principles, standards, business-rules, architecture, maps, flows, milestones, workstreams and initiatives are
|
|
40
|
-
// removed with the collections; collection-registry-seed-drift.test.ts reads retirement from the catalog.
|
|
41
|
-
// P3b U0 review round 2 (TASK-401, WP-780): 'features'/'audiences'/'opportunities' (pack-owned,
|
|
42
|
-
// same MODULE_ONTOLOGY_PACKS) and 'policies'/'patterns' are now retired in the catalog — removed
|
|
43
|
-
// from SEED below, not merely pack-owned-and-kept.
|
|
44
|
-
export const SEED = [
|
|
45
|
-
// P3b U0 review round 2 (Codex, PRRT_kwDORS4ils6lyk4l, TASK-401, WP-780): 'policies' (POL),
|
|
46
|
-
// 'patterns' (PAT) and 'features' (FEAT) removed — all three retired in the catalog; a
|
|
47
|
-
// prefixed capture would skip classification only to have the server's retirement check
|
|
48
|
-
// refuse the write.
|
|
49
|
-
{ slug: 'glossary', idPrefix: 'GLO' },
|
|
50
|
-
{ slug: 'decisions', idPrefix: 'DEC' },
|
|
51
|
-
{ slug: 'strategy', idPrefix: 'STR', defaultCanonicalKey: 'strategy' }, // WP-707 S1 (DEC-1622): strategy is a normal 1:1 collection now — round 3 ruling #13's generalized --entry-type derivation exercises this kind (never a hand-picked branch).
|
|
52
|
-
{ slug: 'semantic-types', idPrefix: 'ST' },
|
|
53
|
-
{ slug: 'tensions', idPrefix: 'TEN' },
|
|
54
|
-
{ slug: 'teams', idPrefix: 'TEAM' },
|
|
55
|
-
{ slug: 'roles', idPrefix: 'ROL' },
|
|
56
|
-
{ slug: 'insights', idPrefix: 'INS' },
|
|
57
|
-
{ slug: 'tasks', idPrefix: 'TASK' },
|
|
58
|
-
{ slug: 'questions', idPrefix: 'QUE', defaultCanonicalKey: 'question' },
|
|
59
|
-
// WP-707 S1 round 3.1 (Codex post-round-3 P2): vision/purpose are NEW 1:1 drawers this same PR
|
|
60
|
-
// adds (DEC-1622) — no canonical seedClassificationRegistry.ts row exists yet (see the
|
|
61
|
-
// matching carve-outs in collection-registry-seed-drift.test.ts), but the offline
|
|
62
|
-
// --entry-type derivation (getCanonicalKeyToCollection, ruling #13) and "VIS:"/"PUR:"
|
|
63
|
-
// capture-prefix routing both need them present even during a chain.listCollections outage.
|
|
64
|
-
{ slug: 'vision', idPrefix: 'VIS', defaultCanonicalKey: 'vision' },
|
|
65
|
-
{ slug: 'purpose', idPrefix: 'PUR', defaultCanonicalKey: 'purpose' },
|
|
66
|
-
{ slug: 'work-packages', idPrefix: 'WP' },
|
|
67
|
-
{ slug: 'work-packages', idPrefix: 'BET' }, // legacy alias — BET-230 rename backward compat
|
|
68
|
-
{ slug: 'objectives', idPrefix: 'OBJ', defaultCanonicalKey: 'objective' }, // WP-686 S3 (TASK-89) slug rename + S5 (TASK-91) idPrefix flip in place; old KEY-<n> ENTRY ids resolve via entryIdAliases regardless
|
|
69
|
-
{ slug: 'objectives', idPrefix: 'KEY' }, // legacy alias — P1 review PRRT_kwDORS4ils6cUz6M (WP-686 S6): keeps "KEY: ..." capture-prefix routing working for a version-skewed offline CLI against a not-yet-migrated (e.g. prod, pre-SW-3) workspace
|
|
70
|
-
{ slug: 'key-results', idPrefix: 'KR', defaultCanonicalKey: 'key_result' }, // WP-707 S1 round 2 (DEC-1622): key_result now files into its OWN 1:1 drawer, split out of the objectives drawer it used to share — keeps "KR: ..." capture-prefix routing (and the --entry-type derivation, round 3 ruling #13) working offline too.
|
|
71
|
-
{ slug: 'products', idPrefix: 'PROD' },
|
|
72
|
-
// P3b U0 review round 2 (Codex, PRRT_kwDORS4ils6lyk4l, TASK-401, WP-780): 'audiences'
|
|
73
|
-
// (AUD) and 'opportunities' (OPP) removed — same reason as policies/patterns above.
|
|
74
|
-
{ slug: 'rules', idPrefix: 'RULE' }, // PR #778 review round 2 (P2, PRRT_kwDORS4ils6c4_9J): legacy-alias-shaped carve-out — 'rules' is launch-14-v1's fold target (SEED_TYPE_REGISTRY, not SEED_CLASSIFICATION_REGISTRY, so it has no canonical {slug,idPrefix} row to pin against), but a launch-only workspace needs "RULE: ..." to take the prefix fast path even during a transient chain.listCollections failure. The STD/BR/PRI/PAT/ARCH rows that used to sit beside it are gone with their retired collections (WP-780).
|
|
75
|
-
];
|
|
76
|
-
let _cache = null;
|
|
77
|
-
/**
|
|
78
|
-
* Fetch all collections for the current workspace.
|
|
79
|
-
* Module-scope memoized — calls kernelCall once per process, then returns
|
|
80
|
-
* the cached result. Fails open to SEED on any error.
|
|
81
|
-
*/
|
|
82
|
-
export async function getCollections() {
|
|
83
|
-
if (_cache !== null)
|
|
84
|
-
return _cache;
|
|
85
|
-
try {
|
|
86
|
-
const result = await kernelCall('chain.listCollections');
|
|
87
|
-
_cache = Array.isArray(result) && result.length > 0 ? result : SEED;
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
_cache = SEED;
|
|
91
|
-
}
|
|
92
|
-
return _cache;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Build a prefix → collection slug map from the runtime registry.
|
|
96
|
-
* Falls back to SEED-derived map on failure.
|
|
97
|
-
*/
|
|
98
|
-
export async function getPrefixToCollection() {
|
|
99
|
-
const cols = await getCollections();
|
|
100
|
-
const map = {};
|
|
101
|
-
for (const col of cols) {
|
|
102
|
-
if (col.idPrefix)
|
|
103
|
-
map[col.idPrefix] = col.slug;
|
|
104
|
-
}
|
|
105
|
-
return map;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* WP-707 S1 round 3 (operator ruling #13): build a canonicalKey → collection slug map from the
|
|
109
|
-
* runtime registry — the CLI-side mirror of `getRequiredCollectionSlugForKind`
|
|
110
|
-
* (convex/lib/seedTypeRegistry.ts). Used by capture.ts's `--entry-type` fast path so ANY kind
|
|
111
|
-
* with its own 1:1 drawer resolves automatically, instead of a hand-picked pair of literal
|
|
112
|
-
* branches that needs a new one hand-added for every future drawer. Only a kind with EXACTLY ONE
|
|
113
|
-
* collection declaring it as `defaultCanonicalKey` resolves — consistent with the
|
|
114
|
-
* one-type-one-collection invariant this PR establishes server-side; a kind with zero or more
|
|
115
|
-
* than one owner slug resolves to undefined so the caller falls through to server-side
|
|
116
|
-
* classification instead of guessing.
|
|
117
|
-
*/
|
|
118
|
-
export async function getCanonicalKeyToCollection() {
|
|
119
|
-
const cols = await getCollections();
|
|
120
|
-
const slugsByKey = new Map();
|
|
121
|
-
for (const col of cols) {
|
|
122
|
-
if (!col.defaultCanonicalKey)
|
|
123
|
-
continue;
|
|
124
|
-
const slugs = slugsByKey.get(col.defaultCanonicalKey) ?? [];
|
|
125
|
-
slugs.push(col.slug);
|
|
126
|
-
slugsByKey.set(col.defaultCanonicalKey, slugs);
|
|
127
|
-
}
|
|
128
|
-
const map = {};
|
|
129
|
-
for (const [key, slugs] of slugsByKey) {
|
|
130
|
-
if (slugs.length === 1)
|
|
131
|
-
map[key] = slugs[0];
|
|
132
|
-
}
|
|
133
|
-
return map;
|
|
134
|
-
}
|
|
135
|
-
//# sourceMappingURL=collectionRegistry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collectionRegistry.js","sourceRoot":"","sources":["../../src/lib/collectionRegistry.ts"],"names":[],"mappings":"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"}
|