@planu/cli 0.69.0 → 0.70.0

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 (42) hide show
  1. package/dist/config/license-plans.json +1 -0
  2. package/dist/engine/token-optimizer/analytics.d.ts +10 -0
  3. package/dist/engine/token-optimizer/analytics.d.ts.map +1 -0
  4. package/dist/engine/token-optimizer/analytics.js +362 -0
  5. package/dist/engine/token-optimizer/analytics.js.map +1 -0
  6. package/dist/engine/token-optimizer/index.d.ts +2 -0
  7. package/dist/engine/token-optimizer/index.d.ts.map +1 -1
  8. package/dist/engine/token-optimizer/index.js +1 -0
  9. package/dist/engine/token-optimizer/index.js.map +1 -1
  10. package/dist/engine/token-optimizer/reconciler.d.ts +22 -0
  11. package/dist/engine/token-optimizer/reconciler.d.ts.map +1 -0
  12. package/dist/engine/token-optimizer/reconciler.js +215 -0
  13. package/dist/engine/token-optimizer/reconciler.js.map +1 -0
  14. package/dist/storage/token-ledger-store.d.ts +26 -0
  15. package/dist/storage/token-ledger-store.d.ts.map +1 -0
  16. package/dist/storage/token-ledger-store.js +354 -0
  17. package/dist/storage/token-ledger-store.js.map +1 -0
  18. package/dist/tools/register-token-tools.d.ts.map +1 -1
  19. package/dist/tools/register-token-tools.js +21 -0
  20. package/dist/tools/register-token-tools.js.map +1 -1
  21. package/dist/tools/schemas/index.d.ts +1 -0
  22. package/dist/tools/schemas/index.d.ts.map +1 -1
  23. package/dist/tools/schemas/index.js +1 -0
  24. package/dist/tools/schemas/index.js.map +1 -1
  25. package/dist/tools/schemas/token-intelligence.d.ts +21 -0
  26. package/dist/tools/schemas/token-intelligence.d.ts.map +1 -0
  27. package/dist/tools/schemas/token-intelligence.js +18 -0
  28. package/dist/tools/schemas/token-intelligence.js.map +1 -0
  29. package/dist/tools/token-intelligence-handler.d.ts +8 -0
  30. package/dist/tools/token-intelligence-handler.d.ts.map +1 -0
  31. package/dist/tools/token-intelligence-handler.js +413 -0
  32. package/dist/tools/token-intelligence-handler.js.map +1 -0
  33. package/dist/types/index.d.ts +1 -0
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/types/index.js +1 -0
  36. package/dist/types/index.js.map +1 -1
  37. package/dist/types/token-ledger.d.ts +195 -0
  38. package/dist/types/token-ledger.d.ts.map +1 -0
  39. package/dist/types/token-ledger.js +3 -0
  40. package/dist/types/token-ledger.js.map +1 -0
  41. package/package.json +1 -1
  42. package/src/config/license-plans.json +1 -0
@@ -0,0 +1,195 @@
1
+ export interface LedgerEntry {
2
+ id: string;
3
+ timestamp: string;
4
+ sessionId: string;
5
+ toolName: string;
6
+ specId?: string;
7
+ model: string;
8
+ inputTokens: number;
9
+ outputTokens: number;
10
+ totalTokens: number;
11
+ costUsd: number;
12
+ estimatedTokens?: number;
13
+ estimatedCostUsd?: number;
14
+ cached: boolean;
15
+ optimizationSavings?: number;
16
+ }
17
+ export interface LedgerFilter {
18
+ period?: 'today' | 'week' | 'month' | 'all_time';
19
+ specId?: string;
20
+ toolName?: string;
21
+ model?: string;
22
+ sessionId?: string;
23
+ }
24
+ export interface LedgerAggregation {
25
+ totalTokens: number;
26
+ totalInputTokens: number;
27
+ totalOutputTokens: number;
28
+ totalCostUsd: number;
29
+ totalEstimatedCostUsd: number;
30
+ entryCount: number;
31
+ uniqueTools: number;
32
+ uniqueModels: number;
33
+ uniqueSessions: number;
34
+ avgTokensPerCall: number;
35
+ avgCostPerCall: number;
36
+ tokensByTool: Record<string, number>;
37
+ costByTool: Record<string, number>;
38
+ tokensByModel: Record<string, number>;
39
+ costByModel: Record<string, number>;
40
+ estimationAccuracy: number;
41
+ overEstimationPercent: number;
42
+ }
43
+ export interface MonthlyLedger {
44
+ month: string;
45
+ entries: LedgerEntry[];
46
+ aggregation: LedgerAggregation;
47
+ }
48
+ export interface BudgetConfig {
49
+ monthlyLimitUsd?: number;
50
+ warningThresholdPercent: number;
51
+ criticalThresholdPercent: number;
52
+ }
53
+ export interface LedgerBudgetStatus {
54
+ monthlyLimitUsd: number | null;
55
+ spentUsd: number;
56
+ remainingUsd: number | null;
57
+ percentUsed: number | null;
58
+ projectedMonthlyUsd: number;
59
+ projectedExhaustionDay: number | null;
60
+ isWarning: boolean;
61
+ isCritical: boolean;
62
+ isOverBudget: boolean;
63
+ daysInMonth: number;
64
+ daysElapsed: number;
65
+ dailyAvgUsd: number;
66
+ }
67
+ export interface DailyBreakdown {
68
+ date: string;
69
+ totalTokens: number;
70
+ totalCostUsd: number;
71
+ callCount: number;
72
+ topTool: string;
73
+ topModel: string;
74
+ }
75
+ export interface TrendResult {
76
+ direction: 'increasing' | 'stable' | 'decreasing';
77
+ changePercent: number;
78
+ description: string;
79
+ }
80
+ export interface Anomaly {
81
+ date: string;
82
+ type: 'spike' | 'unusual_model' | 'high_cost_tool';
83
+ severity: 'info' | 'warning' | 'critical';
84
+ description: string;
85
+ value: number;
86
+ threshold: number;
87
+ }
88
+ export interface TopConsumer {
89
+ name: string;
90
+ tokens: number;
91
+ costUsd: number;
92
+ percentage: number;
93
+ callCount: number;
94
+ }
95
+ export interface OptimizationSavings {
96
+ tokensSavedByCache: number;
97
+ tokensSavedByOptimization: number;
98
+ totalTokensSaved: number;
99
+ costSavedUsd: number;
100
+ savingsPercent: number;
101
+ }
102
+ export interface ReconciliationInput {
103
+ specId: string;
104
+ estimatedInputTokens: number;
105
+ estimatedOutputTokens: number;
106
+ estimatedCostUsd: number;
107
+ estimatedModel: string;
108
+ actualEntries: LedgerEntry[];
109
+ }
110
+ export interface ReconciliationResult {
111
+ specId: string;
112
+ estimated: {
113
+ inputTokens: number;
114
+ outputTokens: number;
115
+ totalTokens: number;
116
+ costUsd: number;
117
+ model: string;
118
+ };
119
+ actual: {
120
+ inputTokens: number;
121
+ outputTokens: number;
122
+ totalTokens: number;
123
+ costUsd: number;
124
+ models: string[];
125
+ callCount: number;
126
+ };
127
+ deviation: {
128
+ tokenPercent: number;
129
+ costPercent: number;
130
+ absoluteTokenDiff: number;
131
+ absoluteCostDiff: number;
132
+ direction: 'over' | 'under' | 'accurate';
133
+ };
134
+ accuracy: {
135
+ tokenAccuracy: number;
136
+ costAccuracy: number;
137
+ grade: 'excellent' | 'good' | 'fair' | 'poor';
138
+ };
139
+ calibrationSuggestion?: string;
140
+ }
141
+ export interface CalibrationData {
142
+ specId: string;
143
+ timestamp: string;
144
+ estimatedTokens: number;
145
+ actualTokens: number;
146
+ ratio: number;
147
+ }
148
+ export interface TokenIntelligenceInput {
149
+ period?: string;
150
+ groupBy?: string;
151
+ view?: string;
152
+ specId?: string;
153
+ projectPath?: string;
154
+ }
155
+ export interface LedgerAccumulatorState {
156
+ totalTokens: number;
157
+ totalInputTokens: number;
158
+ totalOutputTokens: number;
159
+ totalCostUsd: number;
160
+ totalEstimatedCostUsd: number;
161
+ tokensByTool: Record<string, number>;
162
+ costByTool: Record<string, number>;
163
+ tokensByModel: Record<string, number>;
164
+ costByModel: Record<string, number>;
165
+ tools: Set<string>;
166
+ models: Set<string>;
167
+ sessions: Set<string>;
168
+ estimatedSum: number;
169
+ actualForEstimated: number;
170
+ estimatedCount: number;
171
+ }
172
+ export interface DailyTotal {
173
+ date: string;
174
+ tokens: number;
175
+ costUsd: number;
176
+ calls: number;
177
+ }
178
+ export interface SimpleTokenTrend {
179
+ direction: 'increasing' | 'decreasing' | 'stable';
180
+ changePercent: number;
181
+ }
182
+ export interface SimpleTokenAnomaly {
183
+ date: string;
184
+ severity: 'critical' | 'warning';
185
+ description: string;
186
+ tokens: number;
187
+ }
188
+ export interface RankedConsumer {
189
+ rank: number;
190
+ name: string;
191
+ tokens: number;
192
+ costUsd: number;
193
+ percentOfTotal: number;
194
+ }
195
+ //# sourceMappingURL=token-ledger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-ledger.d.ts","sourceRoot":"","sources":["../../src/types/token-ledger.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,WAAW,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,YAAY,GAAG,QAAQ,GAAG,YAAY,CAAC;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,eAAe,GAAG,gBAAgB,CAAC;IACnD,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yBAAyB,EAAE,MAAM,CAAC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAMD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,WAAW,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,SAAS,EAAE;QACT,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;KAC1C,CAAC;IACF,QAAQ,EAAE;QACR,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;KAC/C,CAAC;IACF,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAMD,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB;AAGD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC;IAClD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB"}
@@ -0,0 +1,3 @@
1
+ // Token Ledger Types (SPEC-182)
2
+ export {};
3
+ //# sourceMappingURL=token-ledger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-ledger.js","sourceRoot":"","sources":["../../src/types/token-ledger.ts"],"names":[],"mappings":"AAAA,gCAAgC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planu/cli",
3
- "version": "0.69.0",
3
+ "version": "0.70.0",
4
4
  "description": "Planu — MCP Server for Spec Driven Development. Manages specs, estimations, reverse engineering, and auto-learning across any language/framework.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -62,6 +62,7 @@
62
62
  "check_readiness",
63
63
  "contribute_context",
64
64
  "context_budget",
65
+ "token_intelligence",
65
66
  "data_governance",
66
67
  "legal_compliance_report",
67
68
  "define_ui_contract",