@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.
- package/dist/__tests__/authority-domains.test.d.ts +2 -0
- package/dist/__tests__/authority-domains.test.d.ts.map +1 -0
- package/dist/__tests__/authority-domains.test.js +45 -0
- package/dist/__tests__/authority-domains.test.js.map +1 -0
- package/dist/__tests__/config.test.d.ts +1 -1
- package/dist/__tests__/config.test.js +139 -9
- package/dist/__tests__/config.test.js.map +1 -1
- package/dist/__tests__/envelope-contract.test.d.ts +15 -0
- package/dist/__tests__/envelope-contract.test.d.ts.map +1 -0
- package/dist/__tests__/envelope-contract.test.js +126 -0
- package/dist/__tests__/envelope-contract.test.js.map +1 -0
- package/dist/__tests__/handshake-preview.test.js +123 -0
- package/dist/__tests__/handshake-preview.test.js.map +1 -1
- package/dist/__tests__/profiles.test.js +38 -5
- package/dist/__tests__/profiles.test.js.map +1 -1
- package/dist/__tests__/setup-ingest.test.d.ts +2 -0
- package/dist/__tests__/setup-ingest.test.d.ts.map +1 -0
- package/dist/__tests__/setup-ingest.test.js +55 -0
- package/dist/__tests__/setup-ingest.test.js.map +1 -0
- package/dist/__tests__/setup-resolver.test.d.ts +14 -0
- package/dist/__tests__/setup-resolver.test.d.ts.map +1 -0
- package/dist/__tests__/setup-resolver.test.js +228 -0
- package/dist/__tests__/setup-resolver.test.js.map +1 -0
- package/dist/commands/authority-domains.d.ts +122 -0
- package/dist/commands/authority-domains.d.ts.map +1 -0
- package/dist/commands/authority-domains.js +235 -0
- package/dist/commands/authority-domains.js.map +1 -0
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +29 -9
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/connect.test.js +47 -0
- package/dist/commands/connect.test.js.map +1 -1
- package/dist/commands/handshake.d.ts.map +1 -1
- package/dist/commands/handshake.js +188 -3
- package/dist/commands/handshake.js.map +1 -1
- package/dist/commands/migrate-setup.d.ts +18 -0
- package/dist/commands/migrate-setup.d.ts.map +1 -0
- package/dist/commands/migrate-setup.js +198 -0
- package/dist/commands/migrate-setup.js.map +1 -0
- package/dist/commands/profile.d.ts +24 -1
- package/dist/commands/profile.d.ts.map +1 -1
- package/dist/commands/profile.js +72 -6
- package/dist/commands/profile.js.map +1 -1
- package/dist/commands/session.js +5 -5
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/setup-ingest.d.ts +17 -0
- package/dist/commands/setup-ingest.d.ts.map +1 -0
- package/dist/commands/setup-ingest.js +224 -0
- package/dist/commands/setup-ingest.js.map +1 -0
- package/dist/commands/setup-resolver.d.ts +58 -0
- package/dist/commands/setup-resolver.d.ts.map +1 -0
- package/dist/commands/setup-resolver.js +150 -0
- package/dist/commands/setup-resolver.js.map +1 -0
- package/dist/commands/workspace.d.ts +51 -0
- package/dist/commands/workspace.d.ts.map +1 -1
- package/dist/commands/workspace.js +24 -0
- package/dist/commands/workspace.js.map +1 -1
- package/dist/formatters/orient.d.ts +25 -0
- package/dist/formatters/orient.d.ts.map +1 -1
- package/dist/formatters/orient.js +16 -0
- package/dist/formatters/orient.js.map +1 -1
- package/dist/index.js +105 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/canonicalRefs.d.ts +43 -0
- package/dist/lib/canonicalRefs.d.ts.map +1 -0
- package/dist/lib/canonicalRefs.js +83 -0
- package/dist/lib/canonicalRefs.js.map +1 -0
- package/dist/lib/client.js +16 -16
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/config.d.ts +32 -9
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +93 -46
- package/dist/lib/config.js.map +1 -1
- 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":"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"}
|
|
@@ -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;
|
|
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":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,IAAI,EACJ,GAAG,EACH,KAAK,EACL,GAAG,EACH,MAAM,EACN,IAAI,EACJ,OAAO,EACP,KAAK,EACL,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAiEzB,kFAAkF;AAElF,SAAS,qBAAqB,CAAC,MAA6B;IAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACpF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,eAAe;IACf,MAAM,UAAU,GACd,MAAM,CAAC,MAAM,KAAK,SAAS;QACzB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QACnB,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY;YAC9B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YACpB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,KAAK,SAAS;QACzB,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;QAClB,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY;YAC9B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YACtB,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,YAAY,WAAW,EAAE,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,oBAAoB;IACpB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC;IAChG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;IACxF,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5F,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5F,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,qBAAqB,IAAI,MAAM,CAAC,sBAAsB,IAAI,KAAK,CAAC;QACtF,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAAI,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,qBAAqB,eAAe,CAAC,CAAC,CAAC;QACrJ,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACjL,KAAK,CAAC,IAAI,CAAC,+BAA+B,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,0BAA0B,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5M,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,sBAAsB,cAAc,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,uBAAuB,8BAA8B,CAAC,CAAC;QACzL,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,qBAAqB,aAAa,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,sBAAsB,cAAc,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,sBAAsB,cAAc,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,qBAAqB,UAAU,CAAC,CAAC;QAC9S,KAAK,CAAC,IAAI,CAAC,+BAA+B,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,4BAA4B,sBAAsB,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,oBAAoB,UAAU,CAAC,CAAC;QAChM,KAAK,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjK,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,sBAAsB,CAAC;QACzE,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,eAAe,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,kBAAkB,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,UAAU,CAAC,MAAM,IAAI,kBAAkB,GAAG,EAAE,CAAC,CAAC;QACtJ,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,MAAM,CAAC,MAAM,IAAI,kBAAkB,GAAG,EAAE,CAAC,CAAC;QAClJ,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,aAAa,CAAwB;QACzC,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,CAAwB,kBAAkB,EAAE,EAAE,CAAC;QACnE,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC;KACxD,CAAC,CAAC;AACL,CAAC;AAED,kFAAkF;AAElF,SAAS,qBAAqB,CAAC,MAAsB;IACnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACpF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACrF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAC,CAAC;IACrG,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,aAAa,CAAiB;QAClC,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,CAAiB,oBAAoB,EAAE,EAAE,CAAC;QAC9D,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC;KACxD,CAAC,CAAC;AACL,CAAC;AAED,kFAAkF;AAElF,SAAS,eAAe,CAAC,GAA4B;IACnD,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;IAC5C,KAAK,GAAG,CAAC;IACT,KAAK,aAAa,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,qFAAqF;AACrF,SAAS,SAAS,CAAC,CAAU,EAAE,CAAU;IACvC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,qBAAqB,CAAC,MAA6B;IAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GACT,MAAM,CAAC,SAAS,CAAC,MAAM;QACvB,MAAM,CAAC,UAAU,CAAC,MAAM;QACxB,MAAM,CAAC,SAAS,CAAC,MAAM;QACvB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;IAE1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;QACrF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;QACtF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;QACpF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;QACxF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,SAAS,GACb,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAC3B,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAC5B,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAE9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,KAAK,wBAAwB,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA0B;IACjE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IACzE,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,aAAa,CAAwB;QACzC,EAAE,EAAE,KAAK,IAAI,EAAE;YACb,0BAA0B;YAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,6BAA6B,CAAC,CAAC;YACrF,IAAI,SAAyC,CAAC;YAC9C,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC5C,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmC,CAAC;gBAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC9B,MAAM,IAAI,QAAQ,CAChB,wBAAwB,SAAS,YAAY,OAAO,SAAS,EAAE,EAC/D,EAAE,IAAI,EAAE,SAAS,CAAC,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC9D,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,QAAQ;oBAAE,MAAM,GAAG,CAAC;gBACvC,MAAM,IAAI,QAAQ,CAChB,0CAA0C,SAAS,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAC1G,EAAE,IAAI,EAAE,SAAS,CAAC,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC9D,CAAC;YACJ,CAAC;YAED,8BAA8B;YAC9B,MAAM,UAAU,GAAG,MAAM,UAAU,CACjC,yBAAyB,EACzB,EAAE,CACH,CAAC;YAEF,qBAAqB;YACrB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmC,CAAC;YAC/D,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5D,IAAI,IAAI;oBAAE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAmC,CAAC;YAChE,KAAK,MAAM,GAAG,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5D,IAAI,IAAI;oBAAE,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;YACzD,CAAC;YAED,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAa,EAAE,CAAC;YAE/B,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC3C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;oBAC1C,IAAI,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;wBACnC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;yBAAM,CAAC;wBACN,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,uBAAuB;YACvB,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,EAAE,CAAC;YAClB,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,SAAS,CAAC,IAAI,EAAE,CAAC;YAEjB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QACzD,CAAC;QACD,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC;KACxD,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -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;
|