@productbrain/cli 0.1.0-beta.5376 → 0.1.0-beta.5384

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.
@@ -29,7 +29,7 @@ const MIRRORED_DECLARATIONS = [
29
29
  { name: 'CriterionResult', pattern: /export interface CriterionResult \{[\s\S]*?\n\}/ },
30
30
  { name: 'QualityVerdict', pattern: /export interface QualityVerdict \{[\s\S]*?\n\}/ },
31
31
  ];
32
- const PINNED_KERNEL_DECLARATIONS_SHA256 = '0f9a600350f2a4a7dc445af317ab0c0a1b425e23c60f902868d318c0dbe8161b';
32
+ const PINNED_KERNEL_DECLARATIONS_SHA256 = 'e4f7aef68c884c76cb7b4ed604c27ad3b233e8909c3dba91316a589db080ec94';
33
33
  describe('coaching mirror drift guard (WP-475 E1)', () => {
34
34
  it('kernel/quality/types.ts mirrored declarations match the pinned hash — on failure, re-verify formatters/coaching.ts and re-pin', () => {
35
35
  const src = readFileSync(KERNEL_TYPES_PATH, 'utf-8');
@@ -11,7 +11,7 @@
11
11
  * canonical-refs-copies.mjs) — never hand-edit them. Edit here, then `npm run refs:sync` (writes
12
12
  * both copies) and `npm run refs:sync:check` to verify (no drift). Folding all three into a real
13
13
  * shared package (e.g. `kernel`, which already declares "ZERO Convex imports" and is already a
14
- * `cli` devDependency) was considered and DECLINED: `scripts/check-mcp-boundaries.mjs` (BR-25,
14
+ * `cli` devDependency) was considered and DECLINED: `scripts/check-mcp-boundaries.mjs` (RULE-49,
15
15
  * TEN-174) unconditionally fails any `packages/mcp-server/src` file importing from outside the
16
16
  * package — a live `kernel` import there is structurally blocked, not just risky — and a new
17
17
  * kernel/ folder also needs a WP-537 kind-manifest row. This generate+check pair reuses the SAME
@@ -35,7 +35,7 @@
35
35
  * {{ref:entry:DEC-123}}.
36
36
  * Chain: WP-345 E4, DEC-K (projection hash trailer)
37
37
  *
38
- * WP-436 S1 — Axis 2 vocabulary resolver (DEC-1021, STD-253):
38
+ * WP-436 S1 — Axis 2 vocabulary resolver (DEC-1021, RULE-525):
39
39
  * {{vocab:<canonicalKey>.<form>}} tokens + getCollectionLabel resolver.
40
40
  * PAT-230: resolver is pure — no Convex import, workspace context passed as arg.
41
41
  */
@@ -46,7 +46,7 @@
46
46
  * the discriminated kind+status fields instead of an optional resolved object.
47
47
  *
48
48
  * Spec: docs/system/design/authority-domains-design-spec.md §632
49
- * Chain: WP-354 Slice H, STD-101 (single source of truth)
49
+ * Chain: WP-354 Slice H, RULE-372 (single source of truth)
50
50
  *
51
51
  * drift-synced to:
52
52
  * - packages/cli/src/lib/canonicalRefs.ts
@@ -129,7 +129,7 @@ export type CollectionVocabCtx = {
129
129
  };
130
130
  /**
131
131
  * Regex for matching vocab tokens: {{vocab:<canonicalKey>.<form>}}
132
- * STD-253: canonicalKey + form are both lowercase snake_case.
132
+ * RULE-525: canonicalKey + form are both lowercase snake_case.
133
133
  * Captures: [1] canonicalKey, [2] form.
134
134
  */
135
135
  export declare const VOCAB_TOKEN_REGEX: RegExp;
@@ -154,7 +154,7 @@ export declare function getCollectionLabel(canonicalKey: string, form: string, w
154
154
  * Replace all {{vocab:<canonicalKey>.<form>}} tokens in a string.
155
155
  *
156
156
  * For each token, calls getCollectionLabel with the provided contexts.
157
- * STD-253.
157
+ * RULE-525.
158
158
  */
159
159
  export declare function replaceVocabTokens(body: string, workspaceCtx?: WorkspaceVocabCtx, collectionCtxMap?: Map<string, CollectionVocabCtx>): string;
160
160
  //# sourceMappingURL=canonicalRefs.d.ts.map
@@ -11,7 +11,7 @@
11
11
  * canonical-refs-copies.mjs) — never hand-edit them. Edit here, then `npm run refs:sync` (writes
12
12
  * both copies) and `npm run refs:sync:check` to verify (no drift). Folding all three into a real
13
13
  * shared package (e.g. `kernel`, which already declares "ZERO Convex imports" and is already a
14
- * `cli` devDependency) was considered and DECLINED: `scripts/check-mcp-boundaries.mjs` (BR-25,
14
+ * `cli` devDependency) was considered and DECLINED: `scripts/check-mcp-boundaries.mjs` (RULE-49,
15
15
  * TEN-174) unconditionally fails any `packages/mcp-server/src` file importing from outside the
16
16
  * package — a live `kernel` import there is structurally blocked, not just risky — and a new
17
17
  * kernel/ folder also needs a WP-537 kind-manifest row. This generate+check pair reuses the SAME
@@ -35,7 +35,7 @@
35
35
  * {{ref:entry:DEC-123}}.
36
36
  * Chain: WP-345 E4, DEC-K (projection hash trailer)
37
37
  *
38
- * WP-436 S1 — Axis 2 vocabulary resolver (DEC-1021, STD-253):
38
+ * WP-436 S1 — Axis 2 vocabulary resolver (DEC-1021, RULE-525):
39
39
  * {{vocab:<canonicalKey>.<form>}} tokens + getCollectionLabel resolver.
40
40
  * PAT-230: resolver is pure — no Convex import, workspace context passed as arg.
41
41
  */
@@ -105,7 +105,7 @@ export function replaceSemanticRefs(body, resolvedMap) {
105
105
  }
106
106
  /**
107
107
  * Regex for matching vocab tokens: {{vocab:<canonicalKey>.<form>}}
108
- * STD-253: canonicalKey + form are both lowercase snake_case.
108
+ * RULE-525: canonicalKey + form are both lowercase snake_case.
109
109
  * Captures: [1] canonicalKey, [2] form.
110
110
  */
111
111
  export const VOCAB_TOKEN_REGEX = /\{\{vocab:([a-z_]+)\.([a-z_]+)\}\}/g;
@@ -155,7 +155,7 @@ export function getCollectionLabel(canonicalKey, form, workspaceCtx, collectionC
155
155
  * Replace all {{vocab:<canonicalKey>.<form>}} tokens in a string.
156
156
  *
157
157
  * For each token, calls getCollectionLabel with the provided contexts.
158
- * STD-253.
158
+ * RULE-525.
159
159
  */
160
160
  export function replaceVocabTokens(body, workspaceCtx, collectionCtxMap) {
161
161
  if (!body || body.length === 0)
@@ -1,12 +1,12 @@
1
1
  /**
2
- * Synced from convex/lib/inferSourceDate.ts (FEAT-885: shared date inference, BR-108: CLI import boundary).
2
+ * Synced from convex/lib/inferSourceDate.ts (FEAT-885: shared date inference, RULE-132: CLI import boundary).
3
3
  */
4
4
  /**
5
5
  * Infer an ISO date (YYYY-MM-DD) from free-text values.
6
6
  *
7
7
  * Canonical source for MCP (packages/mcp-server/src/lib/inferSourceDate.ts)
8
8
  * and CLI (packages/cli/src/lib/inferSourceDate.ts) — both are synced copies
9
- * maintained by scripts/sync-convex-lib-to-mcp.mjs (FEAT-885, BR-108).
9
+ * maintained by scripts/sync-convex-lib-to-mcp.mjs (FEAT-885, RULE-132).
10
10
  */
11
11
  export declare function inferSourceDate(...values: Array<string | undefined>): string | undefined;
12
12
  //# sourceMappingURL=inferSourceDate.d.ts.map
@@ -1,12 +1,12 @@
1
1
  /**
2
- * Synced from convex/lib/inferSourceDate.ts (FEAT-885: shared date inference, BR-108: CLI import boundary).
2
+ * Synced from convex/lib/inferSourceDate.ts (FEAT-885: shared date inference, RULE-132: CLI import boundary).
3
3
  */
4
4
  /**
5
5
  * Infer an ISO date (YYYY-MM-DD) from free-text values.
6
6
  *
7
7
  * Canonical source for MCP (packages/mcp-server/src/lib/inferSourceDate.ts)
8
8
  * and CLI (packages/cli/src/lib/inferSourceDate.ts) — both are synced copies
9
- * maintained by scripts/sync-convex-lib-to-mcp.mjs (FEAT-885, BR-108).
9
+ * maintained by scripts/sync-convex-lib-to-mcp.mjs (FEAT-885, RULE-132).
10
10
  */
11
11
  export function inferSourceDate(...values) {
12
12
  const combined = values
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@productbrain/cli",
3
- "version": "0.1.0-beta.5376",
3
+ "version": "0.1.0-beta.5384",
4
4
  "description": "Product Brain — Chain knowledge and write-back CLI",
5
5
  "type": "module",
6
6
  "bin": {