@productbrain/cli 0.1.0-beta.6321 → 0.1.0-beta.6329

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 (40) hide show
  1. package/dist/__tests__/session-close-loop.test.js +0 -16
  2. package/dist/__tests__/session-close-loop.test.js.map +1 -1
  3. package/dist/commands/capture.d.ts.map +1 -1
  4. package/dist/commands/capture.js +0 -6
  5. package/dist/commands/capture.js.map +1 -1
  6. package/dist/commands/session.d.ts.map +1 -1
  7. package/dist/commands/session.js +2 -10
  8. package/dist/commands/session.js.map +1 -1
  9. package/dist/formatters/__tests__/session.test.js +2 -16
  10. package/dist/formatters/__tests__/session.test.js.map +1 -1
  11. package/dist/formatters/capture.d.ts +0 -5
  12. package/dist/formatters/capture.d.ts.map +1 -1
  13. package/dist/formatters/capture.js +0 -5
  14. package/dist/formatters/capture.js.map +1 -1
  15. package/dist/formatters/session.d.ts +0 -2
  16. package/dist/formatters/session.d.ts.map +1 -1
  17. package/dist/formatters/session.js +3 -9
  18. package/dist/formatters/session.js.map +1 -1
  19. package/dist/generated/routeLatencyBudget.generated.d.ts.map +1 -1
  20. package/dist/generated/routeLatencyBudget.generated.js +0 -12
  21. package/dist/generated/routeLatencyBudget.generated.js.map +1 -1
  22. package/dist/index.js +3 -104
  23. package/dist/index.js.map +1 -1
  24. package/package.json +1 -1
  25. package/dist/__tests__/authority-domains-queue.test.d.ts +0 -2
  26. package/dist/__tests__/authority-domains-queue.test.d.ts.map +0 -1
  27. package/dist/__tests__/authority-domains-queue.test.js +0 -169
  28. package/dist/__tests__/authority-domains-queue.test.js.map +0 -1
  29. package/dist/__tests__/authority-domains.test.d.ts +0 -2
  30. package/dist/__tests__/authority-domains.test.d.ts.map +0 -1
  31. package/dist/__tests__/authority-domains.test.js +0 -48
  32. package/dist/__tests__/authority-domains.test.js.map +0 -1
  33. package/dist/__tests__/capture-receipt-domain.test.d.ts +0 -2
  34. package/dist/__tests__/capture-receipt-domain.test.d.ts.map +0 -1
  35. package/dist/__tests__/capture-receipt-domain.test.js +0 -29
  36. package/dist/__tests__/capture-receipt-domain.test.js.map +0 -1
  37. package/dist/commands/authority-domains.d.ts +0 -154
  38. package/dist/commands/authority-domains.d.ts.map +0 -1
  39. package/dist/commands/authority-domains.js +0 -365
  40. package/dist/commands/authority-domains.js.map +0 -1
@@ -1,154 +0,0 @@
1
- type Metric = {
2
- status: 'measured';
3
- value: number;
4
- measuredAt?: number;
5
- } | {
6
- status: 'unmeasured';
7
- reason?: string;
8
- action?: string;
9
- };
10
- export interface AuthorityDomainReadinessResult {
11
- state: string;
12
- activeSource: string;
13
- evidenceGap: string;
14
- nextAction: string;
15
- rootDomains: {
16
- seededRootDomainCount: number;
17
- missingRootDomains: string[];
18
- missingRequiredDomainSlugs: string[];
19
- legacyAliasCoverage: Record<string, boolean>;
20
- graphAcyclic: boolean;
21
- graphDepthValid: boolean;
22
- };
23
- proposals: {
24
- pendingDomainTagCount: number;
25
- ratifiedDomainTagCount: number;
26
- rejectedDomainTagCount: number;
27
- skippedDomainTagCount: number;
28
- legacyUnauditedRelationCount: number;
29
- invalidRelationCount: number;
30
- auditedCoveragePercent: number;
31
- proposeAbstainBreakdown?: {
32
- decisionsAbstainedCount: number;
33
- standardsAbstainedCount: number;
34
- principlesAbstainedCount: number;
35
- businessRulesAbstainedCount: number;
36
- businessRulesEmptyDomainFallthroughCount: number;
37
- };
38
- eligibleGovernanceCount?: number;
39
- intentionallyAbstainedCount?: number;
40
- auditedEligibleCoveragePercent?: number;
41
- eligibilityFloorMet?: boolean;
42
- rejectionRateTrend?: number;
43
- authorityDomainTrajectoryStatus?: string;
44
- };
45
- orient: {
46
- orientFallbackCounts: Record<string, number>;
47
- orientNonOverlapMetric: Metric;
48
- primerByteDelta: Metric;
49
- accuracySample: Metric;
50
- benchmarkId?: string;
51
- valueProof: {
52
- state: string;
53
- reason: string;
54
- };
55
- };
56
- cutover: {
57
- activated: boolean;
58
- benchmarkId?: string;
59
- };
60
- }
61
- export interface AuthorityDomainBenchmarkResult {
62
- benchmarkId: string;
63
- nonOverlapMetric: number;
64
- primerByteDelta: number;
65
- domainResolutionAccuracyPercent: number;
66
- fallbackVisible: boolean;
67
- valueProofState: string;
68
- }
69
- type DomainTagProposalEvidence = {
70
- stagingEntryId?: string;
71
- status?: string;
72
- confidence: number;
73
- sourceEntryId?: string;
74
- sourceName: string;
75
- sourceCollectionSlug?: string;
76
- sourceCanonicalKey?: string | null;
77
- domainEntryId?: string;
78
- domainName: string;
79
- proposedDomainSlug?: string;
80
- reasoning?: string;
81
- decisionRightReason?: string;
82
- sourceSignals?: string[];
83
- rejectedAlternatives?: Array<{
84
- slug: string;
85
- reason: string;
86
- }>;
87
- classifierVersion?: string | null;
88
- reviewedByPersonId?: string | null;
89
- reviewNote?: string | null;
90
- fallbackTier?: string | null;
91
- };
92
- type ProposalRunResult = {
93
- runId: string;
94
- dryRun: boolean;
95
- examined: number;
96
- audited: number;
97
- processed: number;
98
- tagged: number;
99
- fallbackEmitted: number;
100
- skipped: number;
101
- errors: number;
102
- relationsCreated: number;
103
- relationsAlreadyExisted: number;
104
- preview?: DomainTagProposalEvidence[];
105
- notes?: string[];
106
- };
107
- export declare function formatAuthorityDomainProposalRun(result: ProposalRunResult): string;
108
- export declare function runAuthorityDomainsAdd(slug: string, opts: {
109
- description?: string;
110
- alias?: string[];
111
- pathGlob?: string[];
112
- }): Promise<void>;
113
- export declare function runAuthorityDomainsReadiness(): Promise<void>;
114
- export declare function runAuthorityDomainsPropose(opts: {
115
- dryRun?: boolean;
116
- limit?: string;
117
- mock?: boolean;
118
- }): Promise<void>;
119
- export declare function runAuthorityDomainsReview(opts: {
120
- status?: string;
121
- limit?: string;
122
- sample?: string;
123
- stratified?: boolean;
124
- }): Promise<void>;
125
- export declare function runAuthorityDomainsRecordSample(opts: {
126
- sampleId: string;
127
- runId?: string;
128
- approved: string;
129
- rejected: string;
130
- corrected: string;
131
- }): Promise<void>;
132
- export declare function runAuthorityDomainsRatify(stagingEntryId: string, opts: {
133
- note?: string;
134
- }): Promise<void>;
135
- export declare function runAuthorityDomainsQueueTag(opts: {
136
- entry: string;
137
- domain: string;
138
- note?: string;
139
- ratify?: boolean;
140
- }): Promise<void>;
141
- export declare function runAuthorityDomainsReject(stagingEntryId: string, opts: {
142
- reason?: string;
143
- }): Promise<void>;
144
- export declare function runAuthorityDomainsDiscardPending(opts: {
145
- reason?: string;
146
- }): Promise<void>;
147
- export declare function runAuthorityDomainsBenchmark(): Promise<void>;
148
- export declare function runAuthorityDomainsActivateCutover(opts?: {
149
- forcePreProduction?: boolean;
150
- decId?: string;
151
- }): Promise<void>;
152
- export declare function runAuthorityDomainsPrincipleDistribution(): Promise<void>;
153
- export {};
154
- //# sourceMappingURL=authority-domains.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authority-domains.d.ts","sourceRoot":"","sources":["../../src/commands/authority-domains.ts"],"names":[],"mappings":"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"}
@@ -1,365 +0,0 @@
1
- import { getConfigOrGuide } from '../lib/config.js';
2
- import { kernelCall } from '../lib/client.js';
3
- import { runCliCommand } from '../lib/runner.js';
4
- import { CLIError, ErrorCode } from '../lib/errors.js';
5
- import { bold, dim, heading } from '../lib/style.js';
6
- /**
7
- * `authorityDomains.ratify`/`.reject`'s real server return is a discriminated union — a
8
- * `{blocked: true, code, reason}` outcome (convex/authorityDomains.ts's
9
- * `blockedReviewResult()`) alongside the success shape — but this file's local hand types
10
- * only declared the success branch, so a blocked review silently rendered `undefined` for
11
- * `.relationId`/`.rejected` instead of surfacing the real reason (PR #398, Lane C S3c
12
- * annotation pass — a real bug, not just a typing gap). Throws a CLIError so
13
- * `runCliCommand`'s existing error-formatting path (lib/runner.ts) surfaces it properly.
14
- */
15
- function throwIfBlocked(result) {
16
- if (result && typeof result === 'object' && 'blocked' in result && result.blocked === true) {
17
- throw new CLIError(result.reason, { code: ErrorCode.VALIDATION_FAILED, category: 'validation' });
18
- }
19
- return result;
20
- }
21
- function formatMetric(metric, suffix = '') {
22
- if (metric.status === 'measured')
23
- return `${metric.value}${suffix}`;
24
- return `unmeasured${metric.reason ? ` — ${metric.reason}` : ''}`;
25
- }
26
- function formatReadiness(result) {
27
- const lines = [];
28
- lines.push('');
29
- lines.push(`${bold('Authority Domains')} ${dim('—')} ${bold(result.state)}`);
30
- lines.push('');
31
- lines.push(`Active source: ${result.activeSource}`);
32
- lines.push(`Evidence gap: ${result.evidenceGap}`);
33
- lines.push(`Action: ${result.nextAction}`);
34
- lines.push('');
35
- lines.push(heading('Seeds'));
36
- lines.push(` Roots seeded: ${result.rootDomains.seededRootDomainCount}`);
37
- lines.push(` Missing roots: ${result.rootDomains.missingRootDomains.join(', ') || 'none'}`);
38
- lines.push(` Missing required domains: ${result.rootDomains.missingRequiredDomainSlugs.join(', ') || 'none'}`);
39
- lines.push(` Graph valid: ${result.rootDomains.graphAcyclic && result.rootDomains.graphDepthValid ? 'yes' : 'no'}`);
40
- lines.push('');
41
- lines.push(heading('Evidence'));
42
- lines.push(` Coverage: ${result.proposals.auditedCoveragePercent}% audited`);
43
- lines.push(` Proposals: ${result.proposals.pendingDomainTagCount} pending, ${result.proposals.ratifiedDomainTagCount} ratified, ${result.proposals.rejectedDomainTagCount} rejected, ${result.proposals.skippedDomainTagCount} skipped`);
44
- lines.push(` Relations: ${result.proposals.legacyUnauditedRelationCount} legacy-unaudited, ${result.proposals.invalidRelationCount} invalid`);
45
- lines.push(` Non-overlap: ${formatMetric(result.orient.orientNonOverlapMetric, '%')}`);
46
- lines.push(` Primer byte delta: ${formatMetric(result.orient.primerByteDelta)}`);
47
- lines.push(` Accuracy sample: ${formatMetric(result.orient.accuracySample, '%')}`);
48
- lines.push(` Value proof: ${result.orient.valueProof.state}`);
49
- if (result.orient.benchmarkId)
50
- lines.push(` Benchmark: ${result.orient.benchmarkId}`);
51
- lines.push('');
52
- lines.push(`Cutover activated: ${result.cutover.activated ? 'yes' : 'no'}`);
53
- return lines.join('\n');
54
- }
55
- function formatBenchmark(result) {
56
- return [
57
- '',
58
- `${bold('Authority Domain Benchmark')} ${dim('—')} ${bold(result.benchmarkId)}`,
59
- '',
60
- `Domain resolution accuracy: ${result.domainResolutionAccuracyPercent}%`,
61
- `Non-overlap: ${result.nonOverlapMetric}%`,
62
- `Primer byte delta: ${result.primerByteDelta}`,
63
- `Fallback visible: ${result.fallbackVisible ? 'yes' : 'no'}`,
64
- `Value proof: ${result.valueProofState}`,
65
- ].join('\n');
66
- }
67
- function truncate(text, max = 220) {
68
- return `${text.slice(0, max)}${text.length > max ? '...' : ''}`;
69
- }
70
- function formatDomainTagEvidence(row) {
71
- const confidence = Number.isFinite(row.confidence) ? `${Math.round(row.confidence * 100)}%` : 'n/a';
72
- const sourceLabel = row.sourceEntryId || row.sourceName;
73
- const domainLabel = row.proposedDomainSlug ?? row.domainName;
74
- const stateLabel = row.status ? `${row.status}, ${confidence}` : confidence;
75
- const lead = row.stagingEntryId
76
- ? `${row.stagingEntryId} — ${sourceLabel} -> ${domainLabel} (${stateLabel})`
77
- : `${sourceLabel} -> ${domainLabel} (${stateLabel})`;
78
- const lines = [lead];
79
- lines.push(` Source: ${row.sourceName} [${row.sourceCollectionSlug ?? 'unknown'}${row.sourceCanonicalKey ? `/${row.sourceCanonicalKey}` : ''}]`);
80
- const reason = row.decisionRightReason ?? row.reasoning;
81
- if (reason)
82
- lines.push(` Reason: ${truncate(reason)}`);
83
- if (row.sourceSignals?.length)
84
- lines.push(` Signals: ${row.sourceSignals.slice(0, 3).join('; ')}`);
85
- if (row.fallbackTier)
86
- lines.push(` Tier: ${row.fallbackTier}`);
87
- if (row.rejectedAlternatives?.length) {
88
- lines.push(` Rejected: ${row.rejectedAlternatives.slice(0, 2).map((alt) => `${alt.slug} (${alt.reason})`).join('; ')}`);
89
- }
90
- if (row.reviewedByPersonId || row.reviewNote) {
91
- lines.push(` Review: ${row.reviewedByPersonId ?? 'unknown'}${row.reviewNote ? ` — ${row.reviewNote}` : ''}`);
92
- }
93
- return lines;
94
- }
95
- export function formatAuthorityDomainProposalRun(result) {
96
- const lines = [
97
- '',
98
- `${bold('Authority Domain Proposal Run')} ${dim('—')} ${bold(result.runId)}`,
99
- '',
100
- `Dry run: ${result.dryRun ? 'yes' : 'no'}`,
101
- `Examined: ${result.examined ?? 'n/a'}`,
102
- `Audited (skip): ${result.audited ?? 'n/a'}`,
103
- `Classified: ${result.processed}`,
104
- `Tagged/proposed: ${result.tagged}`,
105
- `Fallback emitted: ${result.fallbackEmitted ?? 0}`,
106
- `Skipped: ${result.skipped}`,
107
- `Errors: ${result.errors}`,
108
- `Relations created: ${result.relationsCreated}`,
109
- `Existing/duplicate: ${result.relationsAlreadyExisted}`,
110
- ];
111
- if (result.preview?.length) {
112
- lines.push('');
113
- lines.push(heading('Dry-run preview'));
114
- lines.push(` Showing ${result.preview.length} of ${result.tagged} candidate proposal(s). No staging rows or graph relations were written.`);
115
- for (const [index, row] of result.preview.entries()) {
116
- lines.push('');
117
- lines.push(`${index + 1}. ${formatDomainTagEvidence(row).join('\n ')}`);
118
- }
119
- }
120
- if (result.notes?.length) {
121
- lines.push('');
122
- lines.push(...result.notes.map((note) => `Note: ${note}`));
123
- }
124
- return lines.join('\n');
125
- }
126
- function cleanList(values) {
127
- return Array.isArray(values)
128
- ? values.map((value) => value.trim()).filter((value) => value.length > 0)
129
- : [];
130
- }
131
- export async function runAuthorityDomainsAdd(slug, opts) {
132
- const config = await getConfigOrGuide(() => runAuthorityDomainsAdd(slug, opts));
133
- if (!config)
134
- return;
135
- const aliases = cleanList(opts.alias);
136
- const pathGlobs = cleanList(opts.pathGlob);
137
- const description = opts.description?.trim();
138
- await runCliCommand({
139
- fn: () => kernelCall('authorityDomains.add', {
140
- slug,
141
- ...(description ? { description } : {}),
142
- ...(aliases.length > 0 ? { aliases } : {}),
143
- ...(pathGlobs.length > 0 ? { pathGlobs } : {}),
144
- }),
145
- formatPretty: (result) => [
146
- '',
147
- `Created authority domain: ${result.slug}`,
148
- `Entry: ${result.entryId}`,
149
- `System key: ${result.systemKey}`,
150
- ].join('\n'),
151
- });
152
- }
153
- export async function runAuthorityDomainsReadiness() {
154
- const config = await getConfigOrGuide(() => runAuthorityDomainsReadiness());
155
- if (!config)
156
- return;
157
- await runCliCommand({
158
- fn: () => kernelCall('authorityDomains.readiness', {}),
159
- formatPretty: formatReadiness,
160
- });
161
- }
162
- export async function runAuthorityDomainsPropose(opts) {
163
- const config = await getConfigOrGuide(() => runAuthorityDomainsPropose(opts));
164
- if (!config)
165
- return;
166
- const limit = opts.limit ? Number.parseInt(opts.limit, 10) : undefined;
167
- await runCliCommand({
168
- // `authorityDomains.propose`'s server handler deliberately declares
169
- // `Promise<Record<string, unknown>>` (convex/authorityDomains.ts) — a dynamic bridge
170
- // shape, same pattern as onboarding.chat's extraction field. Cast at the boundary
171
- // rather than loosen ProposalRunResult (PR #398, Lane C S3c annotation pass).
172
- fn: () => kernelCall('authorityDomains.propose', {
173
- dryRun: opts.dryRun ?? false,
174
- ...(Number.isFinite(limit) ? { limit } : {}),
175
- ...(opts.mock ? { mockLlm: true } : {}),
176
- }),
177
- formatPretty: formatAuthorityDomainProposalRun,
178
- });
179
- }
180
- export async function runAuthorityDomainsReview(opts) {
181
- const config = await getConfigOrGuide(() => runAuthorityDomainsReview(opts));
182
- if (!config)
183
- return;
184
- const limit = opts.limit ? Number.parseInt(opts.limit, 10) : undefined;
185
- const sample = opts.sample ? Number.parseInt(opts.sample, 10) : undefined;
186
- await runCliCommand({
187
- fn: () => kernelCall('authorityDomains.review', {
188
- status: opts.status ?? 'pending',
189
- ...(Number.isFinite(limit) ? { limit } : {}),
190
- ...(Number.isFinite(sample) ? { sample } : {}),
191
- ...(opts.stratified ? { stratified: true } : {}),
192
- }),
193
- formatPretty: (rows) => {
194
- const lines = ['', `${bold('Authority Domain Proposals')} ${dim('—')} ${bold(String(rows.length))}`, ''];
195
- if (rows.length === 0) {
196
- lines.push('No proposals found.');
197
- return lines.join('\n');
198
- }
199
- for (const row of rows)
200
- lines.push(...formatDomainTagEvidence(row));
201
- return lines.join('\n');
202
- },
203
- });
204
- }
205
- export async function runAuthorityDomainsRecordSample(opts) {
206
- const config = await getConfigOrGuide(() => runAuthorityDomainsRecordSample(opts));
207
- if (!config)
208
- return;
209
- const approvedCount = Number.parseInt(opts.approved, 10);
210
- const rejectedCount = Number.parseInt(opts.rejected, 10);
211
- const correctedCount = Number.parseInt(opts.corrected, 10);
212
- await runCliCommand({
213
- fn: () => kernelCall('authorityDomains.recordSample', {
214
- sampleId: opts.sampleId,
215
- ...(opts.runId ? { runId: opts.runId } : {}),
216
- approvedCount,
217
- rejectedCount,
218
- correctedCount,
219
- method: 'stratified',
220
- }),
221
- formatPretty: (result) => [
222
- '',
223
- `${bold('Authority Domain Sample')} ${dim('—')} ${bold(result.sampleId)}`,
224
- '',
225
- `Reviewed: ${result.sampleSize}`,
226
- `Approved: ${result.approvedCount}`,
227
- `Rejected: ${result.rejectedCount}`,
228
- `Corrected: ${result.correctedCount}`,
229
- `Accuracy: ${result.accuracyPercent}%`,
230
- `Method: ${result.method}`,
231
- ].join('\n'),
232
- });
233
- }
234
- // Must match expectedReviewConfirmation in convex/authorityDomains.ts — duplicated because
235
- // CLI cannot import from convex/ (monorepo import boundary). Keep both in sync.
236
- function authorityDomainReviewConfirmation(stagingEntryId) {
237
- return `review authority-domain proposal ${stagingEntryId}`;
238
- }
239
- export async function runAuthorityDomainsRatify(stagingEntryId, opts) {
240
- const config = await getConfigOrGuide(() => runAuthorityDomainsRatify(stagingEntryId, opts));
241
- if (!config)
242
- return;
243
- await runCliCommand({
244
- fn: async () => throwIfBlocked(await kernelCall('authorityDomains.ratify', {
245
- stagingEntryId,
246
- authorityReviewConfirmation: authorityDomainReviewConfirmation(stagingEntryId),
247
- ...(opts.note ? { reviewNote: opts.note } : {}),
248
- })),
249
- formatPretty: (result) => `\nRatified domain proposal. Relation: ${result.relationId}${result.alreadyExists ? ' (already existed)' : ''}`,
250
- });
251
- }
252
- export async function runAuthorityDomainsQueueTag(opts) {
253
- const config = await getConfigOrGuide(() => runAuthorityDomainsQueueTag(opts));
254
- if (!config)
255
- return;
256
- await runCliCommand({
257
- fn: async () => {
258
- const queued = await kernelCall('authorityDomains.queueKnownTag', {
259
- sourceEntryId: opts.entry,
260
- domainSlug: opts.domain,
261
- provenance: 'known-correct-cli',
262
- ...(opts.note ? { note: opts.note } : {}),
263
- });
264
- // queueKnownTag only ever mints a *pending* row when the proposal is genuinely new.
265
- // An already-committed proposal is a ratify dead-end (ratify rejects non-pending rows
266
- // with a raw error), and a previously-rejected one must surface, not silently re-queue —
267
- // so only attempt ratify for a fresh pending proposal.
268
- if (!opts.ratify || queued.status !== 'pending')
269
- return { queued };
270
- const ratified = throwIfBlocked(await kernelCall('authorityDomains.ratify', {
271
- stagingEntryId: queued.stagingEntryId,
272
- authorityReviewConfirmation: authorityDomainReviewConfirmation(queued.stagingEntryId),
273
- ...(opts.note ? { reviewNote: opts.note } : {}),
274
- }));
275
- return { queued, ratified };
276
- },
277
- formatPretty: ({ queued, ratified }) => {
278
- const lines = [
279
- '',
280
- `Queued authority-domain tag proposal. Proposal: ${queued.stagingEntryId}`,
281
- `Entry: ${queued.sourceEntryId}`,
282
- `Domain: ${queued.domainSlug}`,
283
- `Status: ${queued.status}`,
284
- ];
285
- if (ratified) {
286
- lines.push(`Ratified domain proposal. Relation: ${ratified.relationId}${ratified.alreadyExists ? ' (already existed)' : ''}`);
287
- }
288
- else if (queued.status === 'committed') {
289
- lines.push(`Already ratified — no ratify needed.${queued.relationId ? ` Relation: ${queued.relationId}` : ''}`);
290
- }
291
- else if (queued.status === 'previously-rejected') {
292
- lines.push('This tag was previously rejected. Not re-queued — review the rejection before re-asserting.');
293
- }
294
- return lines.join('\n');
295
- },
296
- });
297
- }
298
- export async function runAuthorityDomainsReject(stagingEntryId, opts) {
299
- const config = await getConfigOrGuide(() => runAuthorityDomainsReject(stagingEntryId, opts));
300
- if (!config)
301
- return;
302
- await runCliCommand({
303
- fn: async () => throwIfBlocked(await kernelCall('authorityDomains.reject', {
304
- stagingEntryId,
305
- authorityReviewConfirmation: authorityDomainReviewConfirmation(stagingEntryId),
306
- ...(opts.reason ? { reviewNote: opts.reason } : {}),
307
- })),
308
- formatPretty: (result) => `\nRejected domain proposal: ${result.rejected ? 'yes' : 'no'}`,
309
- });
310
- }
311
- // discardPending is an internal bulk operation — no per-proposal authorityReviewConfirmation required.
312
- export async function runAuthorityDomainsDiscardPending(opts) {
313
- const config = await getConfigOrGuide(() => runAuthorityDomainsDiscardPending(opts));
314
- if (!config)
315
- return;
316
- await runCliCommand({
317
- fn: () => kernelCall('authorityDomains.discardPending', {
318
- // WP-354
319
- reason: opts.reason ?? 'Discarded pending domain proposals after failed quality diagnosis.',
320
- }),
321
- formatPretty: (result) => `\nDiscarded pending authority-domain proposals: ${result.rejected}`,
322
- });
323
- }
324
- export async function runAuthorityDomainsBenchmark() {
325
- const config = await getConfigOrGuide(() => runAuthorityDomainsBenchmark());
326
- if (!config)
327
- return;
328
- await runCliCommand({
329
- fn: () => kernelCall('authorityDomains.benchmark', {}),
330
- formatPretty: formatBenchmark,
331
- });
332
- }
333
- export async function runAuthorityDomainsActivateCutover(opts) {
334
- const config = await getConfigOrGuide(() => runAuthorityDomainsActivateCutover(opts));
335
- if (!config)
336
- return;
337
- await runCliCommand({
338
- fn: () => kernelCall('authorityDomains.activateCutover', {
339
- ...(opts?.forcePreProduction ? { forcePreProduction: true } : {}),
340
- ...(opts?.decId ? { decId: opts.decId } : {}),
341
- }),
342
- formatPretty: (result) => `\nAuthority-domain cutover activated: ${result.activated ? 'yes' : 'no'}${result.benchmarkId ? ` (${result.benchmarkId})` : ''}`,
343
- });
344
- }
345
- export async function runAuthorityDomainsPrincipleDistribution() {
346
- const config = await getConfigOrGuide(() => runAuthorityDomainsPrincipleDistribution());
347
- if (!config)
348
- return;
349
- await runCliCommand({
350
- fn: () => kernelCall('authorityDomains.principleDistribution', {}),
351
- formatPretty: (result) => [
352
- '',
353
- `${bold('Principles Governance Distribution')}`,
354
- '',
355
- `Total active principles: ${result.total}`,
356
- `Governance-matched: ${result.matched}`,
357
- `Governance match rate: ${(result.governanceMatchRate * 100).toFixed(1)}%`,
358
- '',
359
- result.governanceMatchRate >= 0.10
360
- ? 'Gate PASS — principles fallback is enabled (governanceMatchRate >= 10%).'
361
- : 'Gate FAIL — governanceMatchRate < 10%; principles fallback should be disabled. Capture DEC before proceeding.',
362
- ].join('\n'),
363
- });
364
- }
365
- //# sourceMappingURL=authority-domains.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authority-domains.js","sourceRoot":"","sources":["../../src/commands/authority-domains.ts"],"names":[],"mappings":"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"}