@productbrain/cli 0.1.0-beta.1400 → 0.1.0-beta.1409

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.
Files changed (37) hide show
  1. package/dist/__tests__/codex-prep-parity.test.d.ts +2 -0
  2. package/dist/__tests__/codex-prep-parity.test.d.ts.map +1 -0
  3. package/dist/__tests__/codex-prep-parity.test.js +107 -0
  4. package/dist/__tests__/codex-prep-parity.test.js.map +1 -0
  5. package/dist/commands/codex-prep.d.ts +11 -1
  6. package/dist/commands/codex-prep.d.ts.map +1 -1
  7. package/dist/commands/codex-prep.js +14 -83
  8. package/dist/commands/codex-prep.js.map +1 -1
  9. package/dist/commands/handshake.d.ts.map +1 -1
  10. package/dist/commands/handshake.js +12 -40
  11. package/dist/commands/handshake.js.map +1 -1
  12. package/dist/commands/method.d.ts.map +1 -1
  13. package/dist/commands/method.js +2 -0
  14. package/dist/commands/method.js.map +1 -1
  15. package/dist/commands/migrate-setup.d.ts.map +1 -1
  16. package/dist/commands/migrate-setup.js +2 -52
  17. package/dist/commands/migrate-setup.js.map +1 -1
  18. package/dist/commands/orient.d.ts +8 -0
  19. package/dist/commands/orient.d.ts.map +1 -1
  20. package/dist/commands/orient.js +7 -1
  21. package/dist/commands/orient.js.map +1 -1
  22. package/dist/commands/setup-ingest.d.ts.map +1 -1
  23. package/dist/commands/setup-ingest.js +2 -54
  24. package/dist/commands/setup-ingest.js.map +1 -1
  25. package/dist/formatters/orient.d.ts +12 -0
  26. package/dist/formatters/orient.d.ts.map +1 -1
  27. package/dist/formatters/orient.js +34 -0
  28. package/dist/formatters/orient.js.map +1 -1
  29. package/dist/lib/frontmatter.d.ts +55 -0
  30. package/dist/lib/frontmatter.d.ts.map +1 -0
  31. package/dist/lib/frontmatter.js +92 -0
  32. package/dist/lib/frontmatter.js.map +1 -0
  33. package/dist/lib/frontmatter.test.d.ts +15 -0
  34. package/dist/lib/frontmatter.test.d.ts.map +1 -0
  35. package/dist/lib/frontmatter.test.js +98 -0
  36. package/dist/lib/frontmatter.test.js.map +1 -0
  37. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=codex-prep-parity.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-prep-parity.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/codex-prep-parity.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,107 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { formatCodexTaskContext } from '../commands/codex-prep.js';
3
+ /**
4
+ * Parity gate: `pb codex-prep` must deliver the SAME governance the canonical
5
+ * orient formatter delivers. The prior bespoke formatter silently dropped binding
6
+ * governance, the grounding-stub ⚠️ warning, supporting context, and provenance
7
+ * marks — exactly the governance Codex needs. These assertions prove the codex
8
+ * path now routes through normalizeView → formatOrient and emits those fields.
9
+ */
10
+ /** Representative API view with binding governance AND a grounding stub. */
11
+ function makeView() {
12
+ return {
13
+ stage: 'grounded',
14
+ strategicContext: {
15
+ vision: 'Make Chain startup reliable',
16
+ purpose: 'Surface the right governance at the right time',
17
+ activeBetCount: 1,
18
+ currentWorkPackage: 'BET-63',
19
+ activeTensionCount: 1,
20
+ productAreas: ['Governance'],
21
+ productAreaCount: 1,
22
+ },
23
+ activeWorkPackages: [],
24
+ governance: {
25
+ principles: [],
26
+ standards: [],
27
+ businessRules: [],
28
+ },
29
+ tensions: [],
30
+ architectureNotes: [],
31
+ proposals: [],
32
+ absenceSignals: [],
33
+ startup: {
34
+ groundingStatus: 'grounded',
35
+ confidence: 'high',
36
+ totalFound: 2,
37
+ seeds: [{ entryId: 'STD-101', name: 'Single source of truth', collectionSlug: 'standards' }],
38
+ bindingGovernance: {
39
+ principles: [],
40
+ standards: [
41
+ {
42
+ entryId: 'STD-101',
43
+ name: 'Single source of truth',
44
+ collectionSlug: 'standards',
45
+ preview: 'Derive from the live source',
46
+ provenance: 'authoritative',
47
+ },
48
+ ],
49
+ businessRules: [
50
+ {
51
+ entryId: 'BR-178',
52
+ name: 'Do not use provider IDs directly',
53
+ collectionSlug: 'business-rules',
54
+ preview: 'Permissions must derive from actor context',
55
+ },
56
+ ],
57
+ },
58
+ steeringContext: [],
59
+ supportingContext: [
60
+ { entryId: 'DEC-12', name: 'Actor boundary', collectionSlug: 'decisions', score: 4, hop: 1 },
61
+ ],
62
+ taskProfile: {
63
+ workType: 'implementation',
64
+ domain: 'auth',
65
+ keywords: ['harden', 'auth', 'startup', 'flow'],
66
+ },
67
+ },
68
+ taskContext: {
69
+ seeds: [{ entryId: 'STD-101', name: 'Single source of truth', collectionSlug: 'standards' }],
70
+ context: [
71
+ { entryId: 'BR-178', name: 'Provider IDs are not authz', collectionSlug: 'business-rules', score: 3, hop: 0 },
72
+ ],
73
+ totalFound: 2,
74
+ confidence: 'high',
75
+ isGroundingStub: true,
76
+ groundingNote: 'Operating on a lean grounding stub — fetch full context before consequential decisions.',
77
+ },
78
+ plannedWork: {
79
+ uncommittedDrafts: [],
80
+ inProgressEntries: [],
81
+ openTensions: [],
82
+ },
83
+ priorSessions: [],
84
+ recoveryBlock: null,
85
+ };
86
+ }
87
+ describe('formatCodexTaskContext — governance parity with orient', () => {
88
+ it('emits binding governance, the grounding-stub warning, and the formerly-omitted fields', () => {
89
+ const out = formatCodexTaskContext(makeView(), 'harden auth startup flow');
90
+ // Codex-specific framing is preserved.
91
+ expect(out).toContain('# Task Context for Codex');
92
+ expect(out).toContain('**Task:** harden auth startup flow');
93
+ // Highest-value omission #1: binding governance content (was silently dropped).
94
+ expect(out).toContain('## Binding governance');
95
+ expect(out).toContain('STD-101');
96
+ expect(out).toContain('BR-178');
97
+ // Highest-value omission #2: the grounding-stub ⚠️ safety warning (was silently dropped).
98
+ expect(out).toContain('⚠️');
99
+ expect(out).toContain('fetch full context before consequential decisions');
100
+ // Additional formerly-omitted fields now present.
101
+ expect(out).toContain('## Supporting context');
102
+ expect(out).toContain('DEC-12');
103
+ // Provenance mark for the authoritative binding standard.
104
+ expect(out).toContain('★');
105
+ });
106
+ });
107
+ //# sourceMappingURL=codex-prep-parity.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-prep-parity.test.js","sourceRoot":"","sources":["../../src/__tests__/codex-prep-parity.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGnE;;;;;;GAMG;AAEH,4EAA4E;AAC5E,SAAS,QAAQ;IACf,OAAO;QACL,KAAK,EAAE,UAAU;QACjB,gBAAgB,EAAE;YAChB,MAAM,EAAE,6BAA6B;YACrC,OAAO,EAAE,gDAAgD;YACzD,cAAc,EAAE,CAAC;YACjB,kBAAkB,EAAE,QAAQ;YAC5B,kBAAkB,EAAE,CAAC;YACrB,YAAY,EAAE,CAAC,YAAY,CAAC;YAC5B,gBAAgB,EAAE,CAAC;SACpB;QACD,kBAAkB,EAAE,EAAE;QACtB,UAAU,EAAE;YACV,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;YACb,aAAa,EAAE,EAAE;SAClB;QACD,QAAQ,EAAE,EAAE;QACZ,iBAAiB,EAAE,EAAE;QACrB,SAAS,EAAE,EAAE;QACb,cAAc,EAAE,EAAE;QAClB,OAAO,EAAE;YACP,eAAe,EAAE,UAAU;YAC3B,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,CAAC;YACb,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,wBAAwB,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;YAC5F,iBAAiB,EAAE;gBACjB,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE;oBACT;wBACE,OAAO,EAAE,SAAS;wBAClB,IAAI,EAAE,wBAAwB;wBAC9B,cAAc,EAAE,WAAW;wBAC3B,OAAO,EAAE,6BAA6B;wBACtC,UAAU,EAAE,eAAe;qBAC5B;iBACF;gBACD,aAAa,EAAE;oBACb;wBACE,OAAO,EAAE,QAAQ;wBACjB,IAAI,EAAE,kCAAkC;wBACxC,cAAc,EAAE,gBAAgB;wBAChC,OAAO,EAAE,4CAA4C;qBACtD;iBACF;aACF;YACD,eAAe,EAAE,EAAE;YACnB,iBAAiB,EAAE;gBACjB,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;aAC7F;YACD,WAAW,EAAE;gBACX,QAAQ,EAAE,gBAAgB;gBAC1B,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC;aAChD;SACF;QACD,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,wBAAwB,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;YAC5F,OAAO,EAAE;gBACP,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,4BAA4B,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;aAC9G;YACD,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,MAAM;YAClB,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,yFAAyF;SACzG;QACD,WAAW,EAAE;YACX,iBAAiB,EAAE,EAAE;YACrB,iBAAiB,EAAE,EAAE;YACrB,YAAY,EAAE,EAAE;SACjB;QACD,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,IAAI;KACpB,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,wDAAwD,EAAE,GAAG,EAAE;IACtE,EAAE,CAAC,uFAAuF,EAAE,GAAG,EAAE;QAC/F,MAAM,GAAG,GAAG,sBAAsB,CAAC,QAAQ,EAAE,EAAE,0BAA0B,CAAC,CAAC;QAE3E,uCAAuC;QACvC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC;QAE5D,gFAAgF;QAChF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEhC,0FAA0F;QAC1F,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,mDAAmD,CAAC,CAAC;QAE3E,kDAAkD;QAClD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChC,0DAA0D;QAC1D,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -2,12 +2,22 @@
2
2
  * pb codex-prep — pre-bake task-specific governance context for Codex.
3
3
  * Generates .codex/task-context.md with orient view formatted for offline agents.
4
4
  */
5
- import type { OrientViewFromApi } from './orient.js';
5
+ import { type OrientViewFromApi } from './orient.js';
6
6
  export interface CodexPrepOptions {
7
7
  task: string;
8
8
  dryRun?: boolean;
9
9
  full?: boolean;
10
10
  }
11
11
  export declare function runCodexPrep(options: CodexPrepOptions): Promise<void>;
12
+ /**
13
+ * Format the `.codex/task-context.md` body. Routes the raw API view through the
14
+ * SAME `normalizeView` → `formatOrient` path `pb orient` uses (via `formatOrientCodex`),
15
+ * so Codex receives identical governance to the interactive surface.
16
+ *
17
+ * The prior bespoke formatter silently dropped binding governance, the grounding-stub
18
+ * ⚠️ warning, supporting context, write-back hints, absence signals, provenance marks,
19
+ * and the budget header — the exact governance Codex needs. Reusing the canonical
20
+ * formatter closes that hole and prevents future drift.
21
+ */
12
22
  export declare function formatCodexTaskContext(view: OrientViewFromApi, task: string): string;
13
23
  //# sourceMappingURL=codex-prep.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex-prep.d.ts","sourceRoot":"","sources":["../../src/commands/codex-prep.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC3E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAyFpF"}
1
+ {"version":3,"file":"codex-prep.d.ts","sourceRoot":"","sources":["../../src/commands/codex-prep.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIpE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGpF"}
@@ -6,6 +6,8 @@ import { mkdirSync, writeFileSync } from 'fs';
6
6
  import { join } from 'path';
7
7
  import { getConfigOrGuide } from '../lib/config.js';
8
8
  import { kernelCall } from '../lib/client.js';
9
+ import { normalizeView } from './orient.js';
10
+ import { formatOrientCodex } from '../formatters/orient.js';
9
11
  import { CLIError, ErrorCode } from '../lib/errors.js';
10
12
  export async function runCodexPrep(options) {
11
13
  const config = await getConfigOrGuide(() => runCodexPrep(options));
@@ -37,89 +39,18 @@ export async function runCodexPrep(options) {
37
39
  process.stderr.write(`Written: .codex/task-context.md\n`);
38
40
  process.stderr.write(`Tip: Reference this file in your Codex task prompt.\n`);
39
41
  }
42
+ /**
43
+ * Format the `.codex/task-context.md` body. Routes the raw API view through the
44
+ * SAME `normalizeView` → `formatOrient` path `pb orient` uses (via `formatOrientCodex`),
45
+ * so Codex receives identical governance to the interactive surface.
46
+ *
47
+ * The prior bespoke formatter silently dropped binding governance, the grounding-stub
48
+ * ⚠️ warning, supporting context, write-back hints, absence signals, provenance marks,
49
+ * and the budget header — the exact governance Codex needs. Reusing the canonical
50
+ * formatter closes that hole and prevents future drift.
51
+ */
40
52
  export function formatCodexTaskContext(view, task) {
41
- const lines = [];
42
- const timestamp = new Date().toISOString();
43
- lines.push(`<!-- Generated by pb codex-prep — ${timestamp} -->`);
44
- lines.push('');
45
- lines.push('# Task Context for Codex');
46
- lines.push('');
47
- lines.push(`**Task:** ${task}`);
48
- lines.push(`**Workspace stage:** ${view.stage}`);
49
- lines.push('');
50
- // Strategic context
51
- const sc = view.strategicContext;
52
- if (sc) {
53
- if (sc.currentWorkPackage)
54
- lines.push(`**Current work package:** ${sc.currentWorkPackage}`);
55
- if (sc.activeBetCount > 0)
56
- lines.push(`**Active bets:** ${sc.activeBetCount}`);
57
- if (sc.activeTensionCount > 0)
58
- lines.push(`**Open tensions:** ${sc.activeTensionCount}`);
59
- lines.push('');
60
- }
61
- // Governance
62
- const gov = view.governance;
63
- if (gov) {
64
- if (gov.standards.length > 0) {
65
- lines.push('## Applicable Standards');
66
- lines.push('');
67
- for (const s of gov.standards) {
68
- lines.push(`- **${s.entryId ?? ''}** ${s.name}${s.preview ? `: ${s.preview}` : ''}`);
69
- }
70
- lines.push('');
71
- }
72
- if (gov.businessRules.length > 0) {
73
- lines.push('## Business Rules');
74
- lines.push('');
75
- for (const br of gov.businessRules) {
76
- lines.push(`- **${br.entryId ?? ''}** ${br.name}${br.preview ? `: ${br.preview}` : ''}`);
77
- }
78
- lines.push('');
79
- }
80
- if (gov.principles.length > 0) {
81
- lines.push('## Principles');
82
- lines.push('');
83
- for (const p of gov.principles) {
84
- lines.push(`- **${p.entryId ?? ''}** ${p.name}${p.preview ? `: ${p.preview}` : ''}`);
85
- }
86
- lines.push('');
87
- }
88
- }
89
- // Task-specific context
90
- if (view.taskContext && view.taskContext.context.length > 0) {
91
- lines.push('## Task-Relevant Chain Entries');
92
- lines.push('');
93
- for (const entry of view.taskContext.context) {
94
- lines.push(`- **${entry.entryId ?? ''}** [${entry.collectionSlug ?? ''}] ${entry.name}`);
95
- }
96
- lines.push('');
97
- }
98
- // Startup context (task-shaped)
99
- if (view.startup) {
100
- if (view.startup.steeringContext.length > 0) {
101
- lines.push('## Steering Context');
102
- lines.push('');
103
- for (const entry of view.startup.steeringContext) {
104
- lines.push(`- **${entry.entryId ?? ''}** [${entry.collectionSlug ?? ''}] ${entry.name}${entry.preview ? `: ${entry.preview}` : ''}`);
105
- }
106
- lines.push('');
107
- }
108
- }
109
- // Active work packages
110
- if (view.activeWorkPackages && view.activeWorkPackages.length > 0) {
111
- lines.push('## Active Work Packages');
112
- lines.push('');
113
- for (const bet of view.activeWorkPackages) {
114
- lines.push(`- **${bet.entryId ?? ''}** ${bet.name} (${bet.status})`);
115
- }
116
- lines.push('');
117
- }
118
- lines.push('---');
119
- lines.push('');
120
- lines.push('> This context was generated by `pb codex-prep`. It is a snapshot — governance');
121
- lines.push('> entries (standards, business rules) are stable; bet status may have changed.');
122
- lines.push('> Respect standards and business rules as constraints on implementation.');
123
- return lines.join('\n') + '\n';
53
+ const normalized = normalizeView(view);
54
+ return formatOrientCodex(normalized, task);
124
55
  }
125
56
  //# sourceMappingURL=codex-prep.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex-prep.js","sourceRoot":"","sources":["../../src/commands/codex-prep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-prep.js","sourceRoot":"","sources":["../../src/commands/codex-prep.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAA0B,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQvD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAyB;IAC1D,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAEjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,QAAQ,CAAC,+BAA+B,EAAE;YAClD,IAAI,EAAE,SAAS,CAAC,iBAAiB;YACjC,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,yCAAyC;SACpD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,IAAI,QAAQ,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,MAAM,UAAU,CAAoB,qBAAqB,EAAE;QAC5E,IAAI;QACJ,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;KACzC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEzD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAClD,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAuB,EAAE,IAAY;IAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"handshake.d.ts","sourceRoot":"","sources":["../../src/commands/handshake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handshake.d.ts","sourceRoot":"","sources":["../../src/commands/handshake.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+CH,OAAO,EAAyB,KAAK,eAAe,EAAsB,MAAM,4BAA4B,CAAC;AAa7G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAG5D,OAAO,EAAoC,KAAK,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAcvH;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;CAAE,GAC3D;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,GACzB;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAQ9C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,cAAc,gCAAgC,CAAC;AAU5D;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAWpG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAmB3H;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,CAmBnG;AAuCD;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAyB3E;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAYvE;AAsID,wBAAsB,gBAAgB,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA2HxG;AACD,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,cAAc,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACnD,gFAAgF;IAChF,cAAc,CAAC,EAAE,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,WAAW,GAAG,SAAS,CAAC;IAC/F,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAA+B,GACjG,MAAM,EAAE,CAKV;AA0ED;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,8EAA8E;IAC9E,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC7D,2FAA2F;IAC3F,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;CACrD,CAAC;AAeF,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,MAAM,EACX,aAAa,GAAE,OAAO,CAAC,wBAAwB,CAAM,EACrD,IAAI,GAAE,0BAA0D,GAC/D,wBAAwB,CAuG1B;AAED;;;;GAIG;AACH,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAO9E;AAoID,iBAAS,kBAAkB,CACzB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACzF,MAAM,GAAG,IAAI,CA4Bf;AA6BD,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAG/B,CAAC;AAEF,iBAAS,sBAAsB,CAAC,eAAe,EAAE,MAAM,GAAG,kBAAkB,CAuB3E;AAyBD,MAAM,MAAM,WAAW,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,YAAY,CAAC;AAMpF;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACrD,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CA+BP;AAiBD;;GAEG;AACH,KAAK,qBAAqB,GACtB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAAE,EACpB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAC1B,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC5B;IAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAkJ/D;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CA2pDvG;AAGD,eAAO,MAAM,MAAM;;;;;;CAA8G,CAAC"}
@@ -33,6 +33,7 @@ import { replaceVocabTokens } from '../lib/canonicalRefs.js';
33
33
  // WP-436 S3: vocab projector — resolves {{vocab:...}} tokens before writing to disk.
34
34
  import { getOrFetchVocabCtx } from '../lib/workspaceVocabCache.js';
35
35
  import { normalizeMaterializedFilename } from '../lib/normalizeMaterializedFilename.js';
36
+ import { parseSetupFrontmatter } from '../lib/frontmatter.js';
36
37
  import { sanitizeStartupResolutionSignals } from '../lib/startup-resolution-signals.js';
37
38
  import { assertSetupWritePath } from '../setup/perimeter.js';
38
39
  // WP-421 S3: SurfaceAdapter reverse-map for tampered prompts (DEC-952, doneWhen #34).
@@ -756,47 +757,18 @@ function setupAuthoringAssetHash(asset) {
756
757
  return `sha256:${createHash('sha256').update(JSON.stringify(canonical), 'utf8').digest('hex')}`;
757
758
  }
758
759
  function parseSetupAuthoringFrontmatter(raw) {
759
- const fmMatch = raw.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
760
- if (!fmMatch) {
761
- const h1 = raw.match(/^# (.+)$/m);
762
- return { name: h1?.[1] ?? '', description: '', body: raw, triggers: [], semanticRefs: [] };
763
- }
764
- const fields = new Map();
765
- const arrayFields = new Map();
766
- const lines = fmMatch[1].split('\n');
767
- let currentArrayKey = null;
768
- let currentArrayValues = [];
769
- for (const line of lines) {
770
- const arrayItemMatch = line.match(/^\s+-\s+(.+)$/);
771
- const keyValueMatch = line.match(/^(\w+):\s*(.*)$/);
772
- if (arrayItemMatch && currentArrayKey) {
773
- currentArrayValues.push(arrayItemMatch[1].trim().replace(/^['"]|['"]$/g, ''));
774
- }
775
- else if (keyValueMatch) {
776
- if (currentArrayKey) {
777
- arrayFields.set(currentArrayKey, currentArrayValues);
778
- currentArrayKey = null;
779
- currentArrayValues = [];
780
- }
781
- const [, key, value] = keyValueMatch;
782
- if (value.trim() === '') {
783
- currentArrayKey = key;
784
- }
785
- else {
786
- fields.set(key, value.trim().replace(/^['"]|['"]$/g, ''));
787
- }
788
- }
789
- }
790
- if (currentArrayKey)
791
- arrayFields.set(currentArrayKey, currentArrayValues);
792
- const body = fmMatch[2];
760
+ // Shared parser (lib/frontmatter.ts) — array-item quotes are stripped exactly
761
+ // as this function always did; the shared copy makes that behavior canonical
762
+ // for migrate-setup and setup-ingest too. `assetKind` from the union shape is
763
+ // ignored here (handshake derives kind from the directory).
764
+ const parsed = parseSetupFrontmatter(raw);
793
765
  return {
794
- frontmatterId: fields.get('id'),
795
- name: fields.get('name') ?? body.match(/^# (.+)$/m)?.[1] ?? '',
796
- description: fields.get('description') ?? '',
797
- body,
798
- triggers: arrayFields.get('triggers') ?? [],
799
- semanticRefs: arrayFields.get('semanticRefs') ?? [],
766
+ frontmatterId: parsed.frontmatterId,
767
+ name: parsed.name,
768
+ description: parsed.description,
769
+ body: parsed.body,
770
+ triggers: parsed.triggers,
771
+ semanticRefs: parsed.semanticRefs,
800
772
  };
801
773
  }
802
774
  function deriveSetupAuthoringEntryId(filename, kind) {