@manehorizons/cadence-core 1.5.1 → 1.6.1

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 (82) hide show
  1. package/dist/cli/commands/assumption.d.ts.map +1 -1
  2. package/dist/cli/commands/assumption.js +2 -1
  3. package/dist/cli/commands/assumption.js.map +1 -1
  4. package/dist/cli/commands/decision.d.ts.map +1 -1
  5. package/dist/cli/commands/decision.js +2 -1
  6. package/dist/cli/commands/decision.js.map +1 -1
  7. package/dist/cli/commands/draft-new.d.ts.map +1 -1
  8. package/dist/cli/commands/draft-new.js +2 -1
  9. package/dist/cli/commands/draft-new.js.map +1 -1
  10. package/dist/cli/commands/init.d.ts.map +1 -1
  11. package/dist/cli/commands/init.js +15 -7
  12. package/dist/cli/commands/init.js.map +1 -1
  13. package/dist/cli/commands/intelligence.d.ts.map +1 -1
  14. package/dist/cli/commands/intelligence.js +4 -1
  15. package/dist/cli/commands/intelligence.js.map +1 -1
  16. package/dist/cli/commands/milestone.js +1 -1
  17. package/dist/cli/commands/milestone.js.map +1 -1
  18. package/dist/cli/commands/recommendation.d.ts.map +1 -1
  19. package/dist/cli/commands/recommendation.js +2 -1
  20. package/dist/cli/commands/recommendation.js.map +1 -1
  21. package/dist/cli/commands/spec.d.ts.map +1 -1
  22. package/dist/cli/commands/spec.js +2 -1
  23. package/dist/cli/commands/spec.js.map +1 -1
  24. package/dist/intelligence/context.js +2 -1
  25. package/dist/intelligence/context.js.map +1 -1
  26. package/dist/intelligence/inspect.js +2 -1
  27. package/dist/intelligence/inspect.js.map +1 -1
  28. package/dist/intelligence/milestone.d.ts.map +1 -1
  29. package/dist/intelligence/milestone.js +2 -1
  30. package/dist/intelligence/milestone.js.map +1 -1
  31. package/dist/intelligence/recommend.d.ts.map +1 -1
  32. package/dist/intelligence/recommend.js +2 -1
  33. package/dist/intelligence/recommend.js.map +1 -1
  34. package/dist/intelligence/render-intelligence-audit.d.ts +1 -1
  35. package/dist/intelligence/render-intelligence-audit.d.ts.map +1 -1
  36. package/dist/intelligence/render-intelligence-stats.d.ts +1 -1
  37. package/dist/intelligence/render-intelligence-stats.d.ts.map +1 -1
  38. package/dist/intelligence/store/assumptions.d.ts +17 -0
  39. package/dist/intelligence/store/assumptions.d.ts.map +1 -0
  40. package/dist/intelligence/store/assumptions.js +63 -0
  41. package/dist/intelligence/store/assumptions.js.map +1 -0
  42. package/dist/intelligence/store/audit.d.ts +42 -0
  43. package/dist/intelligence/store/audit.d.ts.map +1 -0
  44. package/dist/intelligence/store/audit.js +88 -0
  45. package/dist/intelligence/store/audit.js.map +1 -0
  46. package/dist/intelligence/store/decisions.d.ts +19 -0
  47. package/dist/intelligence/store/decisions.d.ts.map +1 -0
  48. package/dist/intelligence/store/decisions.js +147 -0
  49. package/dist/intelligence/store/decisions.js.map +1 -0
  50. package/dist/intelligence/store/ids.d.ts +6 -0
  51. package/dist/intelligence/store/ids.d.ts.map +1 -0
  52. package/dist/intelligence/store/ids.js +44 -0
  53. package/dist/intelligence/store/ids.js.map +1 -0
  54. package/dist/intelligence/store/io.d.ts +10 -0
  55. package/dist/intelligence/store/io.d.ts.map +1 -0
  56. package/dist/intelligence/store/io.js +70 -0
  57. package/dist/intelligence/store/io.js.map +1 -0
  58. package/dist/intelligence/store/milestones.d.ts +4 -0
  59. package/dist/intelligence/store/milestones.d.ts.map +1 -0
  60. package/dist/intelligence/store/milestones.js +20 -0
  61. package/dist/intelligence/store/milestones.js.map +1 -0
  62. package/dist/intelligence/store/paths.d.ts +11 -0
  63. package/dist/intelligence/store/paths.d.ts.map +1 -0
  64. package/dist/intelligence/store/paths.js +42 -0
  65. package/dist/intelligence/store/paths.js.map +1 -0
  66. package/dist/intelligence/store/recommendations.d.ts +23 -0
  67. package/dist/intelligence/store/recommendations.d.ts.map +1 -0
  68. package/dist/intelligence/store/recommendations.js +115 -0
  69. package/dist/intelligence/store/recommendations.js.map +1 -0
  70. package/dist/intelligence/store/reconcile.d.ts +8 -0
  71. package/dist/intelligence/store/reconcile.d.ts.map +1 -0
  72. package/dist/intelligence/store/reconcile.js +42 -0
  73. package/dist/intelligence/store/reconcile.js.map +1 -0
  74. package/dist/intelligence/store/stats.d.ts +36 -0
  75. package/dist/intelligence/store/stats.d.ts.map +1 -0
  76. package/dist/intelligence/store/stats.js +106 -0
  77. package/dist/intelligence/store/stats.js.map +1 -0
  78. package/package.json +2 -2
  79. package/dist/intelligence/store.d.ts +0 -143
  80. package/dist/intelligence/store.d.ts.map +0 -1
  81. package/dist/intelligence/store.js +0 -701
  82. package/dist/intelligence/store.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../../src/intelligence/store/reconcile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,aAAa,EACb,YAAY,EACZ,eAAe,EACf,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,8BAA8B,EAC9B,wBAAwB,EACxB,+BAA+B,EAC/B,wBAAwB,GACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAS5D,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAY;IAEZ,MAAM,SAAS,GAAG,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;QACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,MAAM,8BAA8B,CAAC,IAAI,CAAC,CAAC;IAC7D,0FAA0F;IAC1F,MAAM,UAAU,GAAG,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7E,sEAAsE;IACtE,wEAAwE;IACxE,2DAA2D;IAC3D,MAAM,UAAU,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACzD,yGAAyG;IACzG,MAAM,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,+BAA+B,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACxD,+EAA+E;IAC/E,MAAM,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,MAAM,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5E,OAAO;QACL,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,UAAU,CAAC,eAAe,CAAC,MAAM;QAClD,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM;QACxC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM;KACvC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { Assumption, AssumptionLedger, Evidence, EvidenceLedger, IntelligenceDecision, IntelligenceDecisionLedger, Recommendation, RecommendationLedger } from '@manehorizons/cadence-types';
2
+ export type IntelligenceStats = {
3
+ recommendations: {
4
+ total: number;
5
+ byStatus: Record<Recommendation['status'], number>;
6
+ byReadiness: Record<Recommendation['readiness'], number>;
7
+ };
8
+ evidence: {
9
+ total: number;
10
+ byKind: Record<Evidence['kind'], number>;
11
+ };
12
+ assumptions: {
13
+ total: number;
14
+ byStatus: Record<Assumption['status'], number>;
15
+ };
16
+ decisions: {
17
+ total: number;
18
+ byStatus: Record<IntelligenceDecision['status'], number>;
19
+ untied: number;
20
+ };
21
+ links: {
22
+ brokenAssumptionLinks: number;
23
+ brokenDecisionLinks: number;
24
+ brokenEvidenceLinks: number;
25
+ };
26
+ perRec: Array<{
27
+ id: string;
28
+ title: string;
29
+ status: Recommendation['status'];
30
+ assumptionsByStatus: Record<Assumption['status'], number>;
31
+ decisionsByStatus: Record<IntelligenceDecision['status'], number>;
32
+ evidenceCount: number;
33
+ }>;
34
+ };
35
+ export declare function computeIntelligenceStats(recLedger: RecommendationLedger, evLedger: EvidenceLedger, asLedger: AssumptionLedger, decLedger: IntelligenceDecisionLedger): IntelligenceStats;
36
+ //# sourceMappingURL=stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/intelligence/store/stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EACd,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AAErC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QACnD,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;KAC1D,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;KAC1C,CAAC;IACF,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;KAChD,CAAC;IACF,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QACzD,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,EAAE;QACL,qBAAqB,EAAE,MAAM,CAAC;QAC9B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QACjC,mBAAmB,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1D,iBAAiB,EAAE,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QAClE,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;CACJ,CAAC;AAyBF,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,oBAAoB,EAC/B,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,0BAA0B,GACpC,iBAAiB,CA0FnB"}
@@ -0,0 +1,106 @@
1
+ const REC_STATUSES = [
2
+ 'candidate',
3
+ 'accepted',
4
+ 'deferred',
5
+ 'rejected',
6
+ 'converted',
7
+ ];
8
+ const REC_READINESSES = [
9
+ 'raw-idea',
10
+ 'needs-evidence',
11
+ 'needs-decision',
12
+ 'ready-for-milestone',
13
+ 'ready-for-cadence-spec',
14
+ 'blocked',
15
+ ];
16
+ const EV_KINDS = ['file', 'command', 'cadence-artifact', 'note'];
17
+ const AS_STATUSES = ['open', 'validated', 'rejected'];
18
+ const DEC_STATUSES = [
19
+ 'active',
20
+ 'superseded',
21
+ 'rescinded',
22
+ ];
23
+ export function computeIntelligenceStats(recLedger, evLedger, asLedger, decLedger) {
24
+ const recByStatus = Object.fromEntries(REC_STATUSES.map((s) => [s, 0]));
25
+ const recByReadiness = Object.fromEntries(REC_READINESSES.map((r) => [r, 0]));
26
+ for (const r of recLedger.recommendations) {
27
+ recByStatus[r.status]++;
28
+ recByReadiness[r.readiness]++;
29
+ }
30
+ const evByKind = Object.fromEntries(EV_KINDS.map((k) => [k, 0]));
31
+ for (const ev of evLedger.evidence)
32
+ evByKind[ev.kind]++;
33
+ const asByStatus = Object.fromEntries(AS_STATUSES.map((s) => [s, 0]));
34
+ for (const a of asLedger.assumptions)
35
+ asByStatus[a.status]++;
36
+ const decByStatus = Object.fromEntries(DEC_STATUSES.map((s) => [s, 0]));
37
+ let decUntied = 0;
38
+ for (const d of decLedger.decisions) {
39
+ decByStatus[d.status]++;
40
+ if (d.recommendationId === undefined)
41
+ decUntied++;
42
+ }
43
+ const asById = new Map(asLedger.assumptions.map((a) => [a.id, a]));
44
+ const decById = new Map(decLedger.decisions.map((d) => [d.id, d]));
45
+ const evById = new Map(evLedger.evidence.map((e) => [e.id, e]));
46
+ let brokenAssumptionLinks = 0;
47
+ let brokenDecisionLinks = 0;
48
+ let brokenEvidenceLinks = 0;
49
+ for (const r of recLedger.recommendations) {
50
+ for (const id of r.assumptionIds)
51
+ if (!asById.has(id))
52
+ brokenAssumptionLinks++;
53
+ for (const id of r.decisionIds)
54
+ if (!decById.has(id))
55
+ brokenDecisionLinks++;
56
+ for (const id of r.evidenceIds)
57
+ if (!evById.has(id))
58
+ brokenEvidenceLinks++;
59
+ }
60
+ const perRec = recLedger.recommendations.map((r) => {
61
+ const ascount = Object.fromEntries(AS_STATUSES.map((s) => [s, 0]));
62
+ const dccount = Object.fromEntries(DEC_STATUSES.map((s) => [s, 0]));
63
+ for (const id of r.assumptionIds) {
64
+ const a = asById.get(id);
65
+ if (a)
66
+ ascount[a.status]++;
67
+ }
68
+ for (const id of r.decisionIds) {
69
+ const d = decById.get(id);
70
+ if (d)
71
+ dccount[d.status]++;
72
+ }
73
+ let evCount = 0;
74
+ for (const id of r.evidenceIds)
75
+ if (evById.has(id))
76
+ evCount++;
77
+ return {
78
+ id: r.id,
79
+ title: r.title,
80
+ status: r.status,
81
+ assumptionsByStatus: ascount,
82
+ decisionsByStatus: dccount,
83
+ evidenceCount: evCount,
84
+ };
85
+ });
86
+ return {
87
+ recommendations: {
88
+ total: recLedger.recommendations.length,
89
+ byStatus: recByStatus,
90
+ byReadiness: recByReadiness,
91
+ },
92
+ evidence: { total: evLedger.evidence.length, byKind: evByKind },
93
+ assumptions: {
94
+ total: asLedger.assumptions.length,
95
+ byStatus: asByStatus,
96
+ },
97
+ decisions: {
98
+ total: decLedger.decisions.length,
99
+ byStatus: decByStatus,
100
+ untied: decUntied,
101
+ },
102
+ links: { brokenAssumptionLinks, brokenDecisionLinks, brokenEvidenceLinks },
103
+ perRec,
104
+ };
105
+ }
106
+ //# sourceMappingURL=stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/intelligence/store/stats.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manehorizons/cadence-core",
3
- "version": "1.5.1",
3
+ "version": "1.6.1",
4
4
  "engines": {
5
5
  "node": ">=20"
6
6
  },
@@ -50,7 +50,7 @@
50
50
  "@anthropic-ai/sdk": "^0.96.0",
51
51
  "commander": "^13.0.0",
52
52
  "zod": "^4.4.3",
53
- "@manehorizons/cadence-types": "1.5.1"
53
+ "@manehorizons/cadence-types": "1.6.1"
54
54
  },
55
55
  "devDependencies": {
56
56
  "vitest": "^2.1.0",
@@ -1,143 +0,0 @@
1
- import { type Assumption, type AssumptionLedger, type Evidence, type EvidenceLedger, type IntelligenceDecision, type IntelligenceDecisionLedger, type MilestoneLedger, type Recommendation, type RecommendationLedger, type RecommendationPriority, type RecommendationReadiness } from '@manehorizons/cadence-types';
2
- export type AddRecommendationInput = {
3
- title: string;
4
- summary: string;
5
- priority: RecommendationPriority;
6
- readiness: RecommendationReadiness;
7
- affectedAreas: string[];
8
- affectedFiles: string[];
9
- evidenceSummary?: string;
10
- };
11
- export declare function intelligenceDir(root: string): string;
12
- export declare function readRecommendationLedger(root: string): Promise<RecommendationLedger>;
13
- export declare function readEvidenceLedger(root: string): Promise<EvidenceLedger>;
14
- export declare function readAssumptionLedger(root: string): Promise<AssumptionLedger>;
15
- export declare function readIntelligenceDecisionLedger(root: string): Promise<IntelligenceDecisionLedger>;
16
- export declare function addRecommendation(root: string, input: AddRecommendationInput): Promise<Recommendation>;
17
- export type AddAssumptionInput = {
18
- recommendationId: string;
19
- text: string;
20
- };
21
- export declare function addAssumption(root: string, input: AddAssumptionInput): Promise<Assumption>;
22
- export type AssumptionTransitionAction = 'validate' | 'reject' | 'reopen';
23
- export type AssumptionTransitionResult = {
24
- ok: true;
25
- ledger: AssumptionLedger;
26
- } | {
27
- ok: false;
28
- error: string;
29
- };
30
- export declare function applyAssumptionTransition(ledger: AssumptionLedger, id: string, action: AssumptionTransitionAction, _now?: Date): AssumptionTransitionResult;
31
- export declare function runAssumptionTransition(root: string, id: string, action: AssumptionTransitionAction): Promise<AssumptionTransitionResult>;
32
- export declare function deriveRecommendationLinks(recLedger: RecommendationLedger, asLedger: AssumptionLedger, decLedger: IntelligenceDecisionLedger): RecommendationLedger;
33
- export type AddIntelligenceDecisionInput = {
34
- recommendationId?: string;
35
- title: string;
36
- rationale: string;
37
- };
38
- export declare function addIntelligenceDecision(root: string, input: AddIntelligenceDecisionInput): Promise<IntelligenceDecision>;
39
- export type DecisionTransitionAction = 'supersede' | 'rescind' | 'reactivate';
40
- export type DecisionTransitionResult = {
41
- ok: true;
42
- ledger: IntelligenceDecisionLedger;
43
- } | {
44
- ok: false;
45
- error: string;
46
- };
47
- export declare function deriveDecisionInverseLinks(ledger: IntelligenceDecisionLedger): IntelligenceDecisionLedger;
48
- export declare function applyDecisionTransition(ledger: IntelligenceDecisionLedger, id: string, action: DecisionTransitionAction, by?: string, _now?: Date): DecisionTransitionResult;
49
- export declare function runDecisionTransition(root: string, id: string, action: DecisionTransitionAction, by?: string): Promise<DecisionTransitionResult>;
50
- export type RecommendationTransitionAction = 'convert';
51
- export type RecommendationTransitionResult = {
52
- ok: true;
53
- ledger: RecommendationLedger;
54
- } | {
55
- ok: false;
56
- error: string;
57
- };
58
- export declare function applyRecommendationTransition(ledger: RecommendationLedger, id: string, action: RecommendationTransitionAction, toPhase: string, now: Date): RecommendationTransitionResult;
59
- export declare function runRecommendationTransition(root: string, id: string, action: RecommendationTransitionAction, toPhase: string): Promise<RecommendationTransitionResult>;
60
- export type IntelligenceStats = {
61
- recommendations: {
62
- total: number;
63
- byStatus: Record<Recommendation['status'], number>;
64
- byReadiness: Record<Recommendation['readiness'], number>;
65
- };
66
- evidence: {
67
- total: number;
68
- byKind: Record<Evidence['kind'], number>;
69
- };
70
- assumptions: {
71
- total: number;
72
- byStatus: Record<Assumption['status'], number>;
73
- };
74
- decisions: {
75
- total: number;
76
- byStatus: Record<IntelligenceDecision['status'], number>;
77
- untied: number;
78
- };
79
- links: {
80
- brokenAssumptionLinks: number;
81
- brokenDecisionLinks: number;
82
- brokenEvidenceLinks: number;
83
- };
84
- perRec: Array<{
85
- id: string;
86
- title: string;
87
- status: Recommendation['status'];
88
- assumptionsByStatus: Record<Assumption['status'], number>;
89
- decisionsByStatus: Record<IntelligenceDecision['status'], number>;
90
- evidenceCount: number;
91
- }>;
92
- };
93
- export declare function computeIntelligenceStats(recLedger: RecommendationLedger, evLedger: EvidenceLedger, asLedger: AssumptionLedger, decLedger: IntelligenceDecisionLedger): IntelligenceStats;
94
- export type IntelligenceAuditFinding = {
95
- kind: 'broken-assumption-link';
96
- recId: string;
97
- assumptionId: string;
98
- } | {
99
- kind: 'broken-decision-link';
100
- recId: string;
101
- decisionId: string;
102
- } | {
103
- kind: 'broken-evidence-link';
104
- recId: string;
105
- evidenceId: string;
106
- } | {
107
- kind: 'orphan-assumption';
108
- assumptionId: string;
109
- missingRecId: string;
110
- } | {
111
- kind: 'orphan-decision';
112
- decisionId: string;
113
- missingRecId: string;
114
- } | {
115
- kind: 'orphan-evidence';
116
- evidenceId: string;
117
- missingRecId: string;
118
- } | {
119
- kind: 'stale-supersededby';
120
- decisionId: string;
121
- missingTargetId: string;
122
- } | {
123
- kind: 'stale-converted-phase';
124
- recommendationId: string;
125
- missingPhaseId: string;
126
- };
127
- export type IntelligenceAuditReport = {
128
- findings: IntelligenceAuditFinding[];
129
- byKind: Record<IntelligenceAuditFinding['kind'], IntelligenceAuditFinding[]>;
130
- };
131
- export declare const AUDIT_KINDS: readonly ["broken-assumption-link", "broken-decision-link", "broken-evidence-link", "orphan-assumption", "orphan-decision", "orphan-evidence", "stale-supersededby", "stale-converted-phase"];
132
- export type AuditKind = (typeof AUDIT_KINDS)[number];
133
- export declare function computeIntelligenceAudit(recLedger: RecommendationLedger, evLedger: EvidenceLedger, asLedger: AssumptionLedger, decLedger: IntelligenceDecisionLedger, existingPhaseIds?: Set<string>): IntelligenceAuditReport;
134
- export type IntelligenceReconcileResult = {
135
- present: boolean;
136
- recommendations: number;
137
- assumptions: number;
138
- decisions: number;
139
- };
140
- export declare function runIntelligenceReconcile(root: string): Promise<IntelligenceReconcileResult>;
141
- export declare function readMilestoneLedger(root: string): Promise<MilestoneLedger>;
142
- export declare function writeMilestoneLedger(root: string, ledger: MilestoneLedger): Promise<void>;
143
- //# sourceMappingURL=store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/intelligence/store.ts"],"names":[],"mappings":"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"}