@productbrain/cli 0.1.0-beta.5916 → 0.1.0-beta.5955
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__/capture-receipt-spine-floor.test.d.ts +2 -0
- package/dist/__tests__/capture-receipt-spine-floor.test.d.ts.map +1 -0
- package/dist/__tests__/capture-receipt-spine-floor.test.js +45 -0
- package/dist/__tests__/capture-receipt-spine-floor.test.js.map +1 -0
- package/dist/__tests__/capture.test.js +1 -1
- package/dist/__tests__/capture.test.js.map +1 -1
- package/dist/__tests__/repo-detect.test.js +3 -0
- package/dist/__tests__/repo-detect.test.js.map +1 -1
- package/dist/commands/__tests__/quality.test.js +3 -3
- package/dist/commands/__tests__/quality.test.js.map +1 -1
- package/dist/commands/capture.d.ts +1 -2
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +6 -2
- package/dist/commands/capture.js.map +1 -1
- package/dist/formatters/brief.d.ts +2 -1
- package/dist/formatters/brief.d.ts.map +1 -1
- package/dist/formatters/brief.js +5 -2
- package/dist/formatters/brief.js.map +1 -1
- package/dist/formatters/brief.test.d.ts +2 -0
- package/dist/formatters/brief.test.d.ts.map +1 -0
- package/dist/formatters/brief.test.js +20 -0
- package/dist/formatters/brief.test.js.map +1 -0
- package/dist/formatters/capture.d.ts +10 -0
- package/dist/formatters/capture.d.ts.map +1 -1
- package/dist/formatters/capture.js +13 -0
- package/dist/formatters/capture.js.map +1 -1
- package/dist/formatters/orient.d.ts +6 -6
- package/dist/formatters/orient.d.ts.map +1 -1
- package/dist/formatters/orient.js +9 -8
- package/dist/formatters/orient.js.map +1 -1
- package/dist/formatters/orient.rituals.test.js +11 -4
- package/dist/formatters/orient.rituals.test.js.map +1 -1
- package/dist/formatters/spineCheck.d.ts +5 -68
- package/dist/formatters/spineCheck.d.ts.map +1 -1
- package/dist/formatters/spineCheck.js +15 -13
- package/dist/formatters/spineCheck.js.map +1 -1
- package/dist/formatters/spineCheck.test.d.ts +2 -0
- package/dist/formatters/spineCheck.test.d.ts.map +1 -0
- package/dist/formatters/spineCheck.test.js +76 -0
- package/dist/formatters/spineCheck.test.js.map +1 -0
- package/dist/lib/captureGrounding.d.ts +3 -2
- package/dist/lib/captureGrounding.d.ts.map +1 -1
- package/dist/lib/captureGrounding.js +16 -9
- package/dist/lib/captureGrounding.js.map +1 -1
- package/dist/lib/captureGrounding.test.d.ts +2 -0
- package/dist/lib/captureGrounding.test.d.ts.map +1 -0
- package/dist/lib/captureGrounding.test.js +40 -0
- package/dist/lib/captureGrounding.test.js.map +1 -0
- package/dist/lib/readinessNotices.d.ts +15 -0
- package/dist/lib/readinessNotices.d.ts.map +1 -0
- package/dist/lib/readinessNotices.js +15 -0
- package/dist/lib/readinessNotices.js.map +1 -0
- package/dist/lib/repo-detect.d.ts.map +1 -1
- package/dist/lib/repo-detect.js +4 -0
- package/dist/lib/repo-detect.js.map +1 -1
- package/dist/lib/spineVerdictRead.d.ts +65 -0
- package/dist/lib/spineVerdictRead.d.ts.map +1 -0
- package/dist/lib/spineVerdictRead.js +64 -0
- package/dist/lib/spineVerdictRead.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// GENERATED by scripts/generate-mcp-embedded-copies.mjs from kernel/quality/spineVerdictRead.ts.
|
|
2
|
+
// DO NOT EDIT. Run `npm run mcp:embedded-copies` to regenerate.
|
|
3
|
+
// Local runtime copy for the isolated connector build.
|
|
4
|
+
function isRecord(value) {
|
|
5
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
6
|
+
}
|
|
7
|
+
function isStringArray(value) {
|
|
8
|
+
return Array.isArray(value) && value.every((item) => typeof item === 'string');
|
|
9
|
+
}
|
|
10
|
+
function isStructural(value) {
|
|
11
|
+
if (!isRecord(value) || typeof value.passed !== 'boolean' || !isStringArray(value.missing) ||
|
|
12
|
+
!isRecord(value.duplicateSingletons) || !isStringArray(value.unconnectedStrategyIds) ||
|
|
13
|
+
(value.visionConnectedToPurpose !== null && typeof value.visionConnectedToPurpose !== 'boolean'))
|
|
14
|
+
return false;
|
|
15
|
+
for (const key of ['purpose', 'vision']) {
|
|
16
|
+
const ids = value.duplicateSingletons[key];
|
|
17
|
+
if (ids !== null && !isStringArray(ids))
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
for (const key of ['strategiesWithUnknownConnectivity', 'unconnectedObjectiveIds',
|
|
21
|
+
'objectivesWithUnknownConnectivity', 'unconnectedKeyResultIds', 'keyResultsWithUnknownConnectivity']) {
|
|
22
|
+
if (value[key] != null && !isStringArray(value[key]))
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
return value.visionPurposeConnectivityTruncated === undefined || typeof value.visionPurposeConnectivityTruncated === 'boolean';
|
|
26
|
+
}
|
|
27
|
+
function isStrategy(value) {
|
|
28
|
+
if (!isRecord(value) || typeof value.entryId !== 'string' || !isRecord(value.refusal) ||
|
|
29
|
+
typeof value.refusal.hasRefusalSignal !== 'boolean')
|
|
30
|
+
return false;
|
|
31
|
+
return value.rogerMartin === null || (isRecord(value.rogerMartin) &&
|
|
32
|
+
typeof value.rogerMartin.isStrategicChoice === 'boolean' && typeof value.rogerMartin.reasoning === 'string');
|
|
33
|
+
}
|
|
34
|
+
function isStory(value) {
|
|
35
|
+
return value === null || (isRecord(value) && typeof value.passed === 'boolean' &&
|
|
36
|
+
(value.failedCriterion === null || typeof value.failedCriterion === 'string') &&
|
|
37
|
+
Array.isArray(value.criteria) && value.criteria.every((item) => isRecord(item) &&
|
|
38
|
+
typeof item.id === 'string' && typeof item.passed === 'boolean' && typeof item.reasoning === 'string'));
|
|
39
|
+
}
|
|
40
|
+
/** Branch on the original discriminant before touching optional graded data. */
|
|
41
|
+
export function readSpineVerdict(value) {
|
|
42
|
+
if (!isRecord(value) || typeof value.noSpineEntries !== 'boolean')
|
|
43
|
+
return { kind: 'malformed' };
|
|
44
|
+
// Empty checks have no grade to consume. Historical rows may store structural:null.
|
|
45
|
+
if (value.noSpineEntries)
|
|
46
|
+
return { kind: 'empty' };
|
|
47
|
+
if (!isStructural(value.structural) || !Array.isArray(value.perStrategy) ||
|
|
48
|
+
!value.perStrategy.every(isStrategy) || !isStory(value.story))
|
|
49
|
+
return { kind: 'malformed' };
|
|
50
|
+
for (const key of ['strategiesTruncated', 'perStrategyEvaluationTruncated', 'objectivesTruncated', 'keyResultsTruncated']) {
|
|
51
|
+
if (value[key] !== undefined && typeof value[key] !== 'boolean')
|
|
52
|
+
return { kind: 'malformed' };
|
|
53
|
+
}
|
|
54
|
+
// Keep the original payload (including newer fields); validation never strips information.
|
|
55
|
+
return { kind: 'graded', verdict: value };
|
|
56
|
+
}
|
|
57
|
+
/** A capped membership read preserves positive evidence, never infers removals by absence. */
|
|
58
|
+
export function describeSpineStaleness(changedMemberCount, membershipTruncated = false) {
|
|
59
|
+
const reason = changedMemberCount > 0
|
|
60
|
+
? `${membershipTruncated ? 'at least ' : ''}${changedMemberCount} entr${changedMemberCount === 1 ? 'y' : 'ies'} changed or joined/left the spine since this was computed`
|
|
61
|
+
: 'freshness could not be verified; the changed-entry count is unknown';
|
|
62
|
+
return reason + (membershipTruncated ? '; membership scan incomplete' : '');
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=spineVerdictRead.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spineVerdictRead.js","sourceRoot":"","sources":["../../src/lib/spineVerdictRead.ts"],"names":[],"mappings":"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"}
|