@productbrain/cli 0.1.0-beta.92 → 0.1.0-beta.95

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 (74) hide show
  1. package/dist/__tests__/authority-domains.test.d.ts +2 -0
  2. package/dist/__tests__/authority-domains.test.d.ts.map +1 -0
  3. package/dist/__tests__/authority-domains.test.js +45 -0
  4. package/dist/__tests__/authority-domains.test.js.map +1 -0
  5. package/dist/__tests__/config.test.d.ts +1 -1
  6. package/dist/__tests__/config.test.js +139 -9
  7. package/dist/__tests__/config.test.js.map +1 -1
  8. package/dist/__tests__/envelope-contract.test.d.ts +15 -0
  9. package/dist/__tests__/envelope-contract.test.d.ts.map +1 -0
  10. package/dist/__tests__/envelope-contract.test.js +126 -0
  11. package/dist/__tests__/envelope-contract.test.js.map +1 -0
  12. package/dist/__tests__/handshake-preview.test.js +123 -0
  13. package/dist/__tests__/handshake-preview.test.js.map +1 -1
  14. package/dist/__tests__/profiles.test.js +38 -5
  15. package/dist/__tests__/profiles.test.js.map +1 -1
  16. package/dist/__tests__/setup-ingest.test.d.ts +2 -0
  17. package/dist/__tests__/setup-ingest.test.d.ts.map +1 -0
  18. package/dist/__tests__/setup-ingest.test.js +55 -0
  19. package/dist/__tests__/setup-ingest.test.js.map +1 -0
  20. package/dist/__tests__/setup-resolver.test.d.ts +14 -0
  21. package/dist/__tests__/setup-resolver.test.d.ts.map +1 -0
  22. package/dist/__tests__/setup-resolver.test.js +228 -0
  23. package/dist/__tests__/setup-resolver.test.js.map +1 -0
  24. package/dist/commands/authority-domains.d.ts +122 -0
  25. package/dist/commands/authority-domains.d.ts.map +1 -0
  26. package/dist/commands/authority-domains.js +235 -0
  27. package/dist/commands/authority-domains.js.map +1 -0
  28. package/dist/commands/connect.d.ts.map +1 -1
  29. package/dist/commands/connect.js +29 -9
  30. package/dist/commands/connect.js.map +1 -1
  31. package/dist/commands/connect.test.js +47 -0
  32. package/dist/commands/connect.test.js.map +1 -1
  33. package/dist/commands/handshake.d.ts.map +1 -1
  34. package/dist/commands/handshake.js +188 -3
  35. package/dist/commands/handshake.js.map +1 -1
  36. package/dist/commands/migrate-setup.d.ts +18 -0
  37. package/dist/commands/migrate-setup.d.ts.map +1 -0
  38. package/dist/commands/migrate-setup.js +198 -0
  39. package/dist/commands/migrate-setup.js.map +1 -0
  40. package/dist/commands/profile.d.ts +24 -1
  41. package/dist/commands/profile.d.ts.map +1 -1
  42. package/dist/commands/profile.js +72 -6
  43. package/dist/commands/profile.js.map +1 -1
  44. package/dist/commands/session.js +5 -5
  45. package/dist/commands/session.js.map +1 -1
  46. package/dist/commands/setup-ingest.d.ts +17 -0
  47. package/dist/commands/setup-ingest.d.ts.map +1 -0
  48. package/dist/commands/setup-ingest.js +224 -0
  49. package/dist/commands/setup-ingest.js.map +1 -0
  50. package/dist/commands/setup-resolver.d.ts +58 -0
  51. package/dist/commands/setup-resolver.d.ts.map +1 -0
  52. package/dist/commands/setup-resolver.js +150 -0
  53. package/dist/commands/setup-resolver.js.map +1 -0
  54. package/dist/commands/workspace.d.ts +51 -0
  55. package/dist/commands/workspace.d.ts.map +1 -1
  56. package/dist/commands/workspace.js +24 -0
  57. package/dist/commands/workspace.js.map +1 -1
  58. package/dist/formatters/orient.d.ts +25 -0
  59. package/dist/formatters/orient.d.ts.map +1 -1
  60. package/dist/formatters/orient.js +16 -0
  61. package/dist/formatters/orient.js.map +1 -1
  62. package/dist/index.js +105 -4
  63. package/dist/index.js.map +1 -1
  64. package/dist/lib/canonicalRefs.d.ts +43 -0
  65. package/dist/lib/canonicalRefs.d.ts.map +1 -0
  66. package/dist/lib/canonicalRefs.js +83 -0
  67. package/dist/lib/canonicalRefs.js.map +1 -0
  68. package/dist/lib/client.js +16 -16
  69. package/dist/lib/client.js.map +1 -1
  70. package/dist/lib/config.d.ts +32 -9
  71. package/dist/lib/config.d.ts.map +1 -1
  72. package/dist/lib/config.js +93 -46
  73. package/dist/lib/config.js.map +1 -1
  74. package/package.json +1 -1
@@ -0,0 +1,224 @@
1
+ /**
2
+ * pb setup:ingest <path> — Push a single .productbrain skill/rule/hook file to the DB SSOT.
3
+ *
4
+ * WP-345 S3: Single-file push from disk to DB for workspace-managed setup assets.
5
+ * Lets users explicitly push an edited skill/rule/hook file to the DB rather than
6
+ * waiting for a full `migrate:setup` run.
7
+ *
8
+ * Idempotent: re-running produces created/updated/unchanged — never duplicates.
9
+ * entryId rule: SETUP-{KIND}-{SCREAMING_SNAKE_CASE_BASENAME}
10
+ *
11
+ * Chain: WP-345, TEN-1459 (handshake reads FS — this fixes it).
12
+ */
13
+ import { existsSync, readFileSync } from 'node:fs';
14
+ import { basename, resolve, dirname } from 'node:path';
15
+ import { kernelCall } from '../lib/client.js';
16
+ import { readSession } from '../lib/session.js';
17
+ import { isJsonMode } from '../lib/runner.js';
18
+ import { trackEvent } from '../lib/telemetry.js';
19
+ import { CLIError, ErrorCode } from '../lib/errors.js';
20
+ /**
21
+ * Parse minimal frontmatter from a .md file.
22
+ * Supports YAML-style --- fences. Fields: name, description, assetKind.
23
+ * Array fields: triggers, semanticRefs (YAML list).
24
+ */
25
+ function parseFrontmatter(raw) {
26
+ const fmMatch = raw.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
27
+ if (!fmMatch) {
28
+ // No frontmatter — derive name from H1, empty description
29
+ const h1 = raw.match(/^# (.+)$/m);
30
+ return { name: h1?.[1] ?? '', description: '', triggers: [], semanticRefs: [], body: raw };
31
+ }
32
+ const fmBlock = fmMatch[1];
33
+ const body = fmMatch[2];
34
+ const fields = new Map();
35
+ const arrayFields = new Map();
36
+ // Parse simple key: value and key:\n - item YAML arrays
37
+ const lines = fmBlock.split('\n');
38
+ let currentArrayKey = null;
39
+ let currentArrayValues = [];
40
+ for (const line of lines) {
41
+ const arrayItemMatch = line.match(/^\s+-\s+(.+)$/);
42
+ const keyValueMatch = line.match(/^(\w+):\s*(.*)$/);
43
+ if (arrayItemMatch && currentArrayKey) {
44
+ currentArrayValues.push(arrayItemMatch[1].trim());
45
+ }
46
+ else if (keyValueMatch) {
47
+ if (currentArrayKey) {
48
+ arrayFields.set(currentArrayKey, currentArrayValues);
49
+ currentArrayKey = null;
50
+ currentArrayValues = [];
51
+ }
52
+ const [, key, value] = keyValueMatch;
53
+ if (value.trim() === '') {
54
+ // Start of array block
55
+ currentArrayKey = key;
56
+ }
57
+ else {
58
+ fields.set(key, value.trim().replace(/^['"]|['"]$/g, ''));
59
+ }
60
+ }
61
+ }
62
+ if (currentArrayKey) {
63
+ arrayFields.set(currentArrayKey, currentArrayValues);
64
+ }
65
+ const name = fields.get('name') ?? body.match(/^# (.+)$/m)?.[1] ?? '';
66
+ const description = fields.get('description') ?? '';
67
+ const triggers = arrayFields.get('triggers') ?? [];
68
+ const semanticRefs = arrayFields.get('semanticRefs') ?? [];
69
+ const assetKind = fields.get('assetKind');
70
+ return { name, description, triggers, semanticRefs, assetKind, body };
71
+ }
72
+ /**
73
+ * Infer AssetKind from the file's directory path.
74
+ * Checks if any segment of the path is 'skills', 'rules', or 'hooks'.
75
+ */
76
+ function inferKindFromPath(filePath) {
77
+ const parts = filePath.replace(/\\/g, '/').split('/');
78
+ for (const part of parts) {
79
+ if (part === 'skills')
80
+ return 'skill';
81
+ if (part === 'rules')
82
+ return 'rule';
83
+ if (part === 'hooks')
84
+ return 'hook';
85
+ }
86
+ return null;
87
+ }
88
+ /**
89
+ * Normalise a frontmatter assetKind string to AssetKind or null.
90
+ */
91
+ function normalizeFrontmatterKind(raw) {
92
+ const lower = raw.toLowerCase().trim();
93
+ if (lower === 'skill')
94
+ return 'skill';
95
+ if (lower === 'rule')
96
+ return 'rule';
97
+ if (lower === 'hook')
98
+ return 'hook';
99
+ if (lower === 'bundle')
100
+ return 'bundle';
101
+ return null;
102
+ }
103
+ /**
104
+ * Derive a stable entryId from the filename and assetKind.
105
+ * Example: skills/triage.md, kind=skill → SETUP-SKILL-TRIAGE
106
+ */
107
+ function deriveEntryId(filename, kind) {
108
+ const base = basename(filename, '.md');
109
+ const snakeCase = base.toUpperCase().replace(/[^A-Z0-9]+/g, '_');
110
+ return `SETUP-${kind.toUpperCase()}-${snakeCase}`;
111
+ }
112
+ export async function runSetupIngest(filePath, opts = {}) {
113
+ const dryRun = opts.dryRun ?? false;
114
+ const json = isJsonMode();
115
+ // Resolve path relative to cwd
116
+ const absPath = resolve(process.cwd(), filePath);
117
+ // Validate file exists
118
+ if (!existsSync(absPath)) {
119
+ trackEvent('setup.ingest.failed', { reason: 'file_not_found', path: absPath });
120
+ throw new CLIError(`File not found: ${absPath}`, {
121
+ code: ErrorCode.VALIDATION_FAILED,
122
+ category: 'validation',
123
+ });
124
+ }
125
+ // Validate .md extension
126
+ if (!absPath.endsWith('.md')) {
127
+ trackEvent('setup.ingest.failed', { reason: 'not_markdown', path: absPath });
128
+ throw new CLIError(`File must be a .md file: ${absPath}`, {
129
+ code: ErrorCode.VALIDATION_FAILED,
130
+ category: 'validation',
131
+ });
132
+ }
133
+ // Parse frontmatter
134
+ const raw = readFileSync(absPath, 'utf-8');
135
+ const { name, description, body, triggers, semanticRefs, assetKind: fmKind } = parseFrontmatter(raw);
136
+ // Determine assetKind — explicit bundle frontmatter always rejects this generic path.
137
+ // For skill/rule/hook, directory still wins and frontmatter is fallback.
138
+ const frontmatterKind = fmKind ? normalizeFrontmatterKind(fmKind) : null;
139
+ let kind = frontmatterKind === 'bundle'
140
+ ? 'bundle'
141
+ : inferKindFromPath(dirname(absPath));
142
+ if (!kind) {
143
+ kind = frontmatterKind;
144
+ }
145
+ if (!kind) {
146
+ const err = new CLIError(`Cannot determine asset kind for ${absPath}.\n` +
147
+ `File must be under a 'skills/', 'rules/', or 'hooks/' directory, ` +
148
+ `or include an 'assetKind: skill|rule|hook' field in frontmatter.`, { code: ErrorCode.VALIDATION_FAILED, category: 'validation' });
149
+ trackEvent('setup.ingest.failed', { reason: 'unknown_kind', path: absPath });
150
+ throw err;
151
+ }
152
+ // Bundle commit is UI-only (Clerk JWT auth via commitSetupBundle). CLI path not supported (WP-345).
153
+ if (kind === 'bundle') {
154
+ trackEvent('setup.bundle.commit.failed', { reason: 'bundle_cli_not_supported', path: absPath });
155
+ throw new CLIError(`Bundle assets must be committed via the UI (Customize → Setup → Commit Bundle).\n` +
156
+ `The 'commitSetupBundle' operation requires workspace session auth unavailable in the CLI.`, { code: ErrorCode.VALIDATION_FAILED, category: 'validation' });
157
+ }
158
+ const entryId = deriveEntryId(absPath, kind);
159
+ const resolvedName = name || basename(absPath, '.md');
160
+ // Get workspaceId from active session
161
+ const session = readSession();
162
+ if (!session?.workspaceId) {
163
+ trackEvent('setup.ingest.failed', { reason: 'no_session', path: absPath });
164
+ throw new CLIError('No active session found. Run `pb session start` first.', { code: ErrorCode.SESSION_REQUIRED, category: 'session' });
165
+ }
166
+ const workspaceId = session.workspaceId;
167
+ if (dryRun) {
168
+ if (json) {
169
+ process.stdout.write(JSON.stringify({
170
+ ok: true,
171
+ dryRun: true,
172
+ entryId,
173
+ name: resolvedName,
174
+ assetKind: kind,
175
+ workspaceId,
176
+ path: absPath,
177
+ }) + '\n');
178
+ }
179
+ else {
180
+ process.stdout.write(`[dry-run] Would ingest:\n`);
181
+ process.stdout.write(` entryId: ${entryId}\n`);
182
+ process.stdout.write(` name: ${resolvedName}\n`);
183
+ process.stdout.write(` kind: ${kind}\n`);
184
+ process.stdout.write(` workspace: ${workspaceId}\n`);
185
+ process.stdout.write(` path: ${absPath}\n`);
186
+ }
187
+ return;
188
+ }
189
+ // Call the mutation
190
+ let result;
191
+ try {
192
+ result = await kernelCall('setup.ingestSetupAsset', {
193
+ workspaceId,
194
+ entryId,
195
+ name: resolvedName,
196
+ description,
197
+ body,
198
+ assetKind: kind,
199
+ triggers,
200
+ semanticRefs,
201
+ });
202
+ }
203
+ catch (err) {
204
+ const reason = err instanceof Error ? err.message : String(err);
205
+ trackEvent('setup.ingest.failed', { reason, path: absPath });
206
+ throw err;
207
+ }
208
+ // Emit telemetry
209
+ trackEvent('setup.ingest.succeeded', {
210
+ action: result.action,
211
+ assetKind: kind,
212
+ entryId: result.entryId,
213
+ });
214
+ // Output result
215
+ if (json) {
216
+ process.stdout.write(JSON.stringify({ ok: true, ...result, assetKind: kind, path: absPath }) + '\n');
217
+ }
218
+ else {
219
+ const icon = result.action === 'created' ? '✓' : result.action === 'updated' ? '✓' : '—';
220
+ const label = result.action === 'created' ? 'created' : result.action === 'updated' ? 'updated' : 'unchanged';
221
+ process.stdout.write(`${icon} ${label} ${result.entryId}\n`);
222
+ }
223
+ }
224
+ //# sourceMappingURL=setup-ingest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-ingest.js","sourceRoot":"","sources":["../../src/commands/setup-ingest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAgBvD;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACzE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,0DAA0D;QAC1D,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC7F,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEhD,yDAAyD;IACzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,IAAI,kBAAkB,GAAa,EAAE,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEpD,IAAI,cAAc,IAAI,eAAe,EAAE,CAAC;YACtC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,aAAa,EAAE,CAAC;YACzB,IAAI,eAAe,EAAE,CAAC;gBACpB,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;gBACrD,eAAe,GAAG,IAAI,CAAC;gBACvB,kBAAkB,GAAG,EAAE,CAAC;YAC1B,CAAC;YACD,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC;YACrC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACxB,uBAAuB;gBACvB,eAAe,GAAG,GAAG,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtE,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE1C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC;QACtC,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,MAAM,CAAC;QACpC,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,MAAM,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,GAAW;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACtC,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACpC,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACpC,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,QAAgB,EAAE,IAAe;IACtD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACjE,OAAO,SAAS,IAAI,CAAC,WAAW,EAAE,IAAI,SAAS,EAAE,CAAC;AACpD,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,OAA2B,EAAE;IAClF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IACpC,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAE1B,+BAA+B;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAEjD,uBAAuB;IACvB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,UAAU,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/E,MAAM,IAAI,QAAQ,CAAC,mBAAmB,OAAO,EAAE,EAAE;YAC/C,IAAI,EAAE,SAAS,CAAC,iBAAiB;YACjC,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,UAAU,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7E,MAAM,IAAI,QAAQ,CAAC,4BAA4B,OAAO,EAAE,EAAE;YACxD,IAAI,EAAE,SAAS,CAAC,iBAAiB;YACjC,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;IACpB,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAErG,sFAAsF;IACtF,yEAAyE;IACzE,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,IAAI,IAAI,GAAqB,eAAe,KAAK,QAAQ;QACvD,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,eAAe,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,GAAG,GAAG,IAAI,QAAQ,CACtB,mCAAmC,OAAO,KAAK;YAC7C,mEAAmE;YACnE,kEAAkE,EACpE,EAAE,IAAI,EAAE,SAAS,CAAC,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC9D,CAAC;QACF,UAAU,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7E,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,oGAAoG;IACpG,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,UAAU,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,0BAA0B,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAChG,MAAM,IAAI,QAAQ,CAChB,mFAAmF;YACjF,2FAA2F,EAC7F,EAAE,IAAI,EAAE,SAAS,CAAC,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC9D,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAEtD,sCAAsC;IACtC,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QAC1B,UAAU,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3E,MAAM,IAAI,QAAQ,CAChB,wDAAwD,EACxD,EAAE,IAAI,EAAE,SAAS,CAAC,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAC1D,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAExC,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC;gBACb,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,IAAI;gBACZ,OAAO;gBACP,IAAI,EAAE,YAAY;gBAClB,SAAS,EAAE,IAAI;gBACf,WAAW;gBACX,IAAI,EAAE,OAAO;aACd,CAAC,GAAG,IAAI,CACV,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,IAAI,CAAC,CAAC;YAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,YAAY,IAAI,CAAC,CAAC;YACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;YAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,WAAW,IAAI,CAAC,CAAC;YACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,IAAI,CAAC,CAAC;QACpD,CAAC;QACD,OAAO;IACT,CAAC;IAED,oBAAoB;IACpB,IAAI,MAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,UAAU,CAAe,wBAAwB,EAAE;YAChE,WAAW;YACX,OAAO;YACP,IAAI,EAAE,YAAY;YAClB,WAAW;YACX,IAAI;YACJ,SAAS,EAAE,IAAI;YACf,QAAQ;YACR,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChE,UAAU,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7D,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,iBAAiB;IACjB,UAAU,CAAC,wBAAwB,EAAE;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IAEH,gBAAgB;IAChB,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACvG,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACzF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;QAC9G,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * WP-336 E2 (CLI side): Dual-mode setup asset resolver for `pb handshake`.
3
+ *
4
+ * SetupMode:
5
+ * local — reads skills/rules from .productbrain/ (current builder behavior, default).
6
+ * chain — calls the Convex API (setup.getActiveSurface) and returns Chain-backed assets.
7
+ *
8
+ * The env var PB_SETUP_MODE controls which path runs:
9
+ * unset or 'local' → local mode (no network call, fully offline-safe)
10
+ * 'chain' → chain mode (requires authenticated kernelCall, user workspace)
11
+ *
12
+ * Chain: WP-336 (Agent Surface Foundation), DEC-619 (setup_receipt infrastructure)
13
+ */
14
+ export type SetupMode = 'local' | 'chain';
15
+ /**
16
+ * Unified asset shape returned by resolveSetupAssets.
17
+ *
18
+ * Local mode: assetKind derived from .productbrain/ directory (skills/ → 'skill', rules/ → 'rule').
19
+ * Chain mode: assetKind comes from the entry's data.assetKind field (seeded by WP-336 E3 seed).
20
+ *
21
+ * The `body` field is the raw Markdown content that gets written to adapter files.
22
+ * The `source` field is informational — used for reporting/telemetry, not for write decisions.
23
+ */
24
+ export interface SetupAsset {
25
+ assetKind: 'skill' | 'rule' | 'hook';
26
+ displayName: string;
27
+ body: string;
28
+ source: 'seeded' | 'authored' | 'imported';
29
+ }
30
+ /**
31
+ * Wire shape returned by the Convex getActiveSurface query.
32
+ * Must match the return type of convex/setup.ts:getActiveSurface.
33
+ */
34
+ export interface GetActiveSurfaceResult {
35
+ assetId: string;
36
+ assetKind: string;
37
+ displayName: string;
38
+ shortDescription: string;
39
+ body: string;
40
+ version: number;
41
+ source: string;
42
+ }
43
+ /**
44
+ * Returns the active SetupMode.
45
+ * Reads PB_SETUP_MODE from process.env.
46
+ * Unknown values default to 'local' (fail-open for forward compat).
47
+ */
48
+ export declare function getSetupMode(): SetupMode;
49
+ /**
50
+ * Resolve setup assets for the current mode.
51
+ *
52
+ * @param mode - 'local' | 'chain', from getSetupMode()
53
+ * @param kernelCall - authenticated kernelCall function (from packages/cli/src/lib/client.ts)
54
+ * Only called in chain mode.
55
+ * @param cwd - current working directory (for .productbrain/ path resolution)
56
+ */
57
+ export declare function resolveSetupAssets(mode: SetupMode, kernelCall: <T>(fn: string, args: Record<string, unknown>) => Promise<T>, cwd: string): Promise<SetupAsset[]>;
58
+ //# sourceMappingURL=setup-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-resolver.d.ts","sourceRoot":"","sources":["../../src/commands/setup-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE1C;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;CAC5C;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAID;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAIxC;AA6HD;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxE,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,UAAU,EAAE,CAAC,CAQvB"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * WP-336 E2 (CLI side): Dual-mode setup asset resolver for `pb handshake`.
3
+ *
4
+ * SetupMode:
5
+ * local — reads skills/rules from .productbrain/ (current builder behavior, default).
6
+ * chain — calls the Convex API (setup.getActiveSurface) and returns Chain-backed assets.
7
+ *
8
+ * The env var PB_SETUP_MODE controls which path runs:
9
+ * unset or 'local' → local mode (no network call, fully offline-safe)
10
+ * 'chain' → chain mode (requires authenticated kernelCall, user workspace)
11
+ *
12
+ * Chain: WP-336 (Agent Surface Foundation), DEC-619 (setup_receipt infrastructure)
13
+ */
14
+ import { existsSync, readdirSync, readFileSync } from 'fs';
15
+ import { join, basename } from 'path';
16
+ // ── Mode resolution ───────────────────────────────────────────────────────────
17
+ /**
18
+ * Returns the active SetupMode.
19
+ * Reads PB_SETUP_MODE from process.env.
20
+ * Unknown values default to 'local' (fail-open for forward compat).
21
+ */
22
+ export function getSetupMode() {
23
+ const raw = process.env.PB_SETUP_MODE;
24
+ if (raw === 'chain')
25
+ return 'chain';
26
+ return 'local';
27
+ }
28
+ // ── Local mode ────────────────────────────────────────────────────────────────
29
+ /**
30
+ * Read a single Markdown file from a .productbrain/ sub-directory.
31
+ * Returns the file body after stripping a minimal YAML frontmatter block
32
+ * (lines between opening and closing ---). If no frontmatter is found,
33
+ * returns the full file content unchanged.
34
+ *
35
+ * We intentionally keep this light — the local mode is a contract test pass-through
36
+ * that verifies parity with the existing handshake.ts lines 443–507 pipeline.
37
+ */
38
+ function stripFrontmatter(raw) {
39
+ const lines = raw.split('\n');
40
+ if (lines[0]?.trim() !== '---')
41
+ return raw;
42
+ const closeIdx = lines.indexOf('---', 1);
43
+ if (closeIdx === -1)
44
+ return raw;
45
+ return lines.slice(closeIdx + 1).join('\n').trimStart();
46
+ }
47
+ /**
48
+ * Read skills from .productbrain/skills/ and map them to SetupAsset[].
49
+ * Mirrors the shape produced by readCanonicalSkills() in portable-knowledge.ts.
50
+ * Does NOT apply level/stage filtering — that remains in the handshake pipeline.
51
+ */
52
+ function readLocalSkillAssets(pbDir) {
53
+ const skillsDir = join(pbDir, 'skills');
54
+ if (!existsSync(skillsDir))
55
+ return [];
56
+ const files = readdirSync(skillsDir).filter((f) => f.endsWith('.md'));
57
+ return files.map((file) => {
58
+ const raw = readFileSync(join(skillsDir, file), 'utf8');
59
+ const displayName = basename(file, '.md');
60
+ return {
61
+ assetKind: 'skill',
62
+ displayName,
63
+ body: stripFrontmatter(raw),
64
+ source: 'authored',
65
+ };
66
+ });
67
+ }
68
+ /**
69
+ * Read rules from .productbrain/rules/ and map them to SetupAsset[].
70
+ * Mirrors the shape produced by readCanonicalRules() in portable-knowledge.ts.
71
+ */
72
+ function readLocalRuleAssets(pbDir) {
73
+ const rulesDir = join(pbDir, 'rules');
74
+ if (!existsSync(rulesDir))
75
+ return [];
76
+ const files = readdirSync(rulesDir).filter((f) => f.endsWith('.md'));
77
+ return files.map((file) => {
78
+ const raw = readFileSync(join(rulesDir, file), 'utf8');
79
+ const displayName = basename(file, '.md');
80
+ return {
81
+ assetKind: 'rule',
82
+ displayName,
83
+ body: stripFrontmatter(raw),
84
+ source: 'authored',
85
+ };
86
+ });
87
+ }
88
+ /**
89
+ * Local mode: return skills + rules from .productbrain/.
90
+ *
91
+ * This is the identity pass-through — the assets returned here are the same
92
+ * files that handshake.ts lines 443–507 already read via readCanonicalSkills()
93
+ * and readCanonicalRules(). The resolver does NOT replace those calls; it is a
94
+ * parallel view used for contract testing and mode-switching.
95
+ */
96
+ function resolveLocalAssets(pbDir) {
97
+ return [
98
+ ...readLocalSkillAssets(pbDir),
99
+ ...readLocalRuleAssets(pbDir),
100
+ ];
101
+ }
102
+ // ── Chain mode ────────────────────────────────────────────────────────────────
103
+ /**
104
+ * Map a raw GetActiveSurfaceResult to a typed SetupAsset.
105
+ * Falls back gracefully on unexpected assetKind values.
106
+ */
107
+ function mapChainAsset(raw) {
108
+ const assetKind = raw.assetKind === 'rule' ? 'rule'
109
+ : raw.assetKind === 'hook' ? 'hook'
110
+ : 'skill'; // default — skill is the safe fallback
111
+ const source = raw.source === 'authored' ? 'authored'
112
+ : raw.source === 'imported' ? 'imported'
113
+ : 'seeded';
114
+ return {
115
+ assetKind,
116
+ displayName: raw.displayName,
117
+ body: raw.body,
118
+ source,
119
+ };
120
+ }
121
+ /**
122
+ * Chain mode: call setup.getActiveSurface via the AKI gateway and return assets.
123
+ *
124
+ * workspaceId is injected server-side by the gateway (BR-18).
125
+ * personId is injected server-side by injectSessionAuth — the CLI does not pass it.
126
+ *
127
+ * @param kernelCall - the authenticated kernelCall function from the handshake flow
128
+ */
129
+ async function resolveChainAssets(kernelCall) {
130
+ const results = await kernelCall('setup.getActiveSurface', {});
131
+ return results.map(mapChainAsset);
132
+ }
133
+ // ── Public API ────────────────────────────────────────────────────────────────
134
+ /**
135
+ * Resolve setup assets for the current mode.
136
+ *
137
+ * @param mode - 'local' | 'chain', from getSetupMode()
138
+ * @param kernelCall - authenticated kernelCall function (from packages/cli/src/lib/client.ts)
139
+ * Only called in chain mode.
140
+ * @param cwd - current working directory (for .productbrain/ path resolution)
141
+ */
142
+ export async function resolveSetupAssets(mode, kernelCall, cwd) {
143
+ if (mode === 'chain') {
144
+ return resolveChainAssets(kernelCall);
145
+ }
146
+ // local mode — read from .productbrain/ (synchronous, no network)
147
+ const pbDir = join(cwd, '.productbrain');
148
+ return resolveLocalAssets(pbDir);
149
+ }
150
+ //# sourceMappingURL=setup-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-resolver.js","sourceRoot":"","sources":["../../src/commands/setup-resolver.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,57 @@ export interface WorkspaceHealthResult {
17
17
  glossarySeeded: boolean;
18
18
  semanticTypesSeeded: boolean;
19
19
  defaultCircleSeeded: boolean;
20
+ platformDomainsSeeded?: boolean;
21
+ authorityDomainsSeeded?: boolean;
22
+ authorityDomains?: {
23
+ state: string;
24
+ activeSource: string;
25
+ evidenceGap: string;
26
+ nextAction: string;
27
+ rootDomains: {
28
+ seededRootDomainCount: number;
29
+ missingRootDomains: string[];
30
+ missingRequiredDomainSlugs: string[];
31
+ legacyAliasCoverage: Record<string, boolean>;
32
+ graphAcyclic: boolean;
33
+ graphDepthValid: boolean;
34
+ };
35
+ proposals: {
36
+ proposedDomainTagCount: number;
37
+ ratifiedDomainTagCount: number;
38
+ rejectedDomainTagCount: number;
39
+ skippedDomainTagCount: number;
40
+ pendingDomainTagCount: number;
41
+ untaggedGovernanceCount: number;
42
+ legacyUnauditedRelationCount: number;
43
+ invalidRelationCount: number;
44
+ auditedCoveragePercent: number;
45
+ };
46
+ orient: {
47
+ orientFallbackCounts: Record<string, number>;
48
+ orientNonOverlapMetric: {
49
+ status: string;
50
+ value?: number;
51
+ reason?: string;
52
+ action?: string;
53
+ };
54
+ primerByteDelta: {
55
+ status: string;
56
+ value?: number;
57
+ reason?: string;
58
+ action?: string;
59
+ };
60
+ benchmarkId?: string;
61
+ valueProof?: {
62
+ state: string;
63
+ reason: string;
64
+ };
65
+ };
66
+ cutover: {
67
+ activated: boolean;
68
+ benchmarkId?: string;
69
+ };
70
+ };
20
71
  gaps: string[];
21
72
  status: 'healthy' | 'incomplete' | 'missing-seeds';
22
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAsBH,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,eAAe,CAAC;CACpD;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAiDD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQxD;AAyCD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQxD;AA+ED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+ElF"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,30 @@ function formatWorkspaceVerify(result) {
43
43
  lines.push(formatCheck(result.glossarySeeded ? 'pass' : 'fail', 'Glossary seeded', ''));
44
44
  lines.push(formatCheck(result.semanticTypesSeeded ? 'pass' : 'fail', 'Semantic types', ''));
45
45
  lines.push(formatCheck(result.defaultCircleSeeded ? 'pass' : 'fail', 'Default circle', ''));
46
+ if (result.authorityDomains) {
47
+ const seeded = result.platformDomainsSeeded ?? result.authorityDomainsSeeded ?? false;
48
+ lines.push(formatCheck(seeded ? 'pass' : 'fail', 'Authority domains', ` ${result.authorityDomains.rootDomains.seededRootDomainCount} roots seeded`));
49
+ lines.push('');
50
+ lines.push(heading('Authority Domains'));
51
+ lines.push('');
52
+ lines.push(` State: ${result.authorityDomains.state}`);
53
+ lines.push(` Active source: ${result.authorityDomains.activeSource}`);
54
+ lines.push(` Evidence gap: ${result.authorityDomains.evidenceGap}`);
55
+ lines.push(` Action: ${result.authorityDomains.nextAction}`);
56
+ lines.push(` Missing roots: ${result.authorityDomains.rootDomains.missingRootDomains.length > 0 ? result.authorityDomains.rootDomains.missingRootDomains.join(', ') : 'none'}`);
57
+ lines.push(` Missing required domains: ${result.authorityDomains.rootDomains.missingRequiredDomainSlugs.length > 0 ? result.authorityDomains.rootDomains.missingRequiredDomainSlugs.join(', ') : 'none'}`);
58
+ lines.push(` Coverage: ${result.authorityDomains.proposals.auditedCoveragePercent}% audited, ${result.authorityDomains.proposals.untaggedGovernanceCount} untagged governance entries`);
59
+ lines.push(` Proposals: ${result.authorityDomains.proposals.pendingDomainTagCount} pending, ${result.authorityDomains.proposals.ratifiedDomainTagCount} ratified, ${result.authorityDomains.proposals.rejectedDomainTagCount} rejected, ${result.authorityDomains.proposals.skippedDomainTagCount} skipped`);
60
+ lines.push(` Legacy/invalid relations: ${result.authorityDomains.proposals.legacyUnauditedRelationCount} legacy-unaudited, ${result.authorityDomains.proposals.invalidRelationCount} invalid`);
61
+ lines.push(` Retrieval states: ${Object.entries(result.authorityDomains.orient.orientFallbackCounts).map(([state, count]) => `${state}=${count}`).join(', ')}`);
62
+ const nonOverlap = result.authorityDomains.orient.orientNonOverlapMetric;
63
+ const primer = result.authorityDomains.orient.primerByteDelta;
64
+ lines.push(` Non-overlap: ${nonOverlap.status === 'measured' ? `${nonOverlap.value}%` : `unmeasured (${nonOverlap.reason ?? 'missing evidence'})`}`);
65
+ lines.push(` Primer byte delta: ${primer.status === 'measured' ? String(primer.value) : `unmeasured (${primer.reason ?? 'missing evidence'})`}`);
66
+ if (result.authorityDomains.orient.valueProof) {
67
+ lines.push(` Value proof: ${result.authorityDomains.orient.valueProof.state}`);
68
+ }
69
+ }
46
70
  if (result.gaps.length > 0) {
47
71
  lines.push('');
48
72
  lines.push(heading('Gaps'));
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"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"}
@@ -103,6 +103,31 @@ export interface OrientView {
103
103
  preview?: string;
104
104
  }>;
105
105
  };
106
+ domainRetrieval?: {
107
+ state: string;
108
+ resolvedDomainSlug?: string;
109
+ fallbackReason?: string;
110
+ fallbackAction?: string;
111
+ evidenceGap?: string;
112
+ directRatifiedCount?: number;
113
+ inheritedRatifiedCount?: number;
114
+ orgFallbackCount?: number;
115
+ activeSource?: string;
116
+ legacyUnauditedCount?: number;
117
+ invalidRelationCount?: number;
118
+ nonOverlapMetric?: {
119
+ status: string;
120
+ value?: number;
121
+ reason?: string;
122
+ action?: string;
123
+ };
124
+ primerByteDelta?: {
125
+ status: string;
126
+ value?: number;
127
+ reason?: string;
128
+ action?: string;
129
+ };
130
+ };
106
131
  steeringContext: Array<{
107
132
  entryId: string | null;
108
133
  name: string;