@getverbal/cli 0.6.0 → 0.7.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 (249) hide show
  1. package/dist/cli.js +18760 -1833
  2. package/package.json +2 -1
  3. package/dist/agent-hooks/claude.d.ts +0 -10
  4. package/dist/agent-hooks/claude.d.ts.map +0 -1
  5. package/dist/agent-hooks/claude.js +0 -218
  6. package/dist/agent-hooks/claude.js.map +0 -1
  7. package/dist/agent-hooks/cli.d.ts +0 -2
  8. package/dist/agent-hooks/cli.d.ts.map +0 -1
  9. package/dist/agent-hooks/cli.js +0 -271
  10. package/dist/agent-hooks/cli.js.map +0 -1
  11. package/dist/agent-hooks/codex.d.ts +0 -9
  12. package/dist/agent-hooks/codex.d.ts.map +0 -1
  13. package/dist/agent-hooks/codex.js +0 -349
  14. package/dist/agent-hooks/codex.js.map +0 -1
  15. package/dist/agent-hooks/config.d.ts +0 -32
  16. package/dist/agent-hooks/config.d.ts.map +0 -1
  17. package/dist/agent-hooks/config.js +0 -176
  18. package/dist/agent-hooks/config.js.map +0 -1
  19. package/dist/agent-hooks/ingest.d.ts +0 -4
  20. package/dist/agent-hooks/ingest.d.ts.map +0 -1
  21. package/dist/agent-hooks/ingest.js +0 -22
  22. package/dist/agent-hooks/ingest.js.map +0 -1
  23. package/dist/agent-hooks/launchagent.d.ts +0 -7
  24. package/dist/agent-hooks/launchagent.d.ts.map +0 -1
  25. package/dist/agent-hooks/launchagent.js +0 -51
  26. package/dist/agent-hooks/launchagent.js.map +0 -1
  27. package/dist/agent-hooks/runtime-context.d.ts +0 -20
  28. package/dist/agent-hooks/runtime-context.d.ts.map +0 -1
  29. package/dist/agent-hooks/runtime-context.js +0 -90
  30. package/dist/agent-hooks/runtime-context.js.map +0 -1
  31. package/dist/agent-hooks/state.d.ts +0 -26
  32. package/dist/agent-hooks/state.d.ts.map +0 -1
  33. package/dist/agent-hooks/state.js +0 -67
  34. package/dist/agent-hooks/state.js.map +0 -1
  35. package/dist/agent-hooks/tokscale.d.ts +0 -70
  36. package/dist/agent-hooks/tokscale.d.ts.map +0 -1
  37. package/dist/agent-hooks/tokscale.js +0 -142
  38. package/dist/agent-hooks/tokscale.js.map +0 -1
  39. package/dist/agent-hooks/tool-extraction.d.ts +0 -7
  40. package/dist/agent-hooks/tool-extraction.d.ts.map +0 -1
  41. package/dist/agent-hooks/tool-extraction.js +0 -100
  42. package/dist/agent-hooks/tool-extraction.js.map +0 -1
  43. package/dist/agent-hooks/trace.d.ts +0 -17
  44. package/dist/agent-hooks/trace.d.ts.map +0 -1
  45. package/dist/agent-hooks/trace.js +0 -25
  46. package/dist/agent-hooks/trace.js.map +0 -1
  47. package/dist/auth/browser-auth.d.ts +0 -6
  48. package/dist/auth/browser-auth.d.ts.map +0 -1
  49. package/dist/auth/browser-auth.js +0 -202
  50. package/dist/auth/browser-auth.js.map +0 -1
  51. package/dist/auth/credentials.d.ts +0 -6
  52. package/dist/auth/credentials.d.ts.map +0 -1
  53. package/dist/auth/credentials.js +0 -78
  54. package/dist/auth/credentials.js.map +0 -1
  55. package/dist/cli.d.ts +0 -3
  56. package/dist/cli.d.ts.map +0 -1
  57. package/dist/cli.js.map +0 -1
  58. package/dist/commands/dashboard.d.ts +0 -2
  59. package/dist/commands/dashboard.d.ts.map +0 -1
  60. package/dist/commands/dashboard.js +0 -19
  61. package/dist/commands/dashboard.js.map +0 -1
  62. package/dist/commands/hooks.d.ts +0 -2
  63. package/dist/commands/hooks.d.ts.map +0 -1
  64. package/dist/commands/hooks.js +0 -6
  65. package/dist/commands/hooks.js.map +0 -1
  66. package/dist/commands/import.d.ts +0 -2
  67. package/dist/commands/import.d.ts.map +0 -1
  68. package/dist/commands/import.js +0 -129
  69. package/dist/commands/import.js.map +0 -1
  70. package/dist/commands/init.d.ts +0 -2
  71. package/dist/commands/init.d.ts.map +0 -1
  72. package/dist/commands/init.js +0 -262
  73. package/dist/commands/init.js.map +0 -1
  74. package/dist/commands/logout.d.ts +0 -2
  75. package/dist/commands/logout.d.ts.map +0 -1
  76. package/dist/commands/logout.js +0 -17
  77. package/dist/commands/logout.js.map +0 -1
  78. package/dist/commands/mcp-serve.d.ts +0 -2
  79. package/dist/commands/mcp-serve.d.ts.map +0 -1
  80. package/dist/commands/mcp-serve.js +0 -7
  81. package/dist/commands/mcp-serve.js.map +0 -1
  82. package/dist/commands/status.d.ts +0 -2
  83. package/dist/commands/status.d.ts.map +0 -1
  84. package/dist/commands/status.js +0 -43
  85. package/dist/commands/status.js.map +0 -1
  86. package/dist/commands/uninstall.d.ts +0 -2
  87. package/dist/commands/uninstall.d.ts.map +0 -1
  88. package/dist/commands/uninstall.js +0 -43
  89. package/dist/commands/uninstall.js.map +0 -1
  90. package/dist/commands/update.d.ts +0 -2
  91. package/dist/commands/update.d.ts.map +0 -1
  92. package/dist/commands/update.js +0 -58
  93. package/dist/commands/update.js.map +0 -1
  94. package/dist/configure/claude-code.d.ts +0 -7
  95. package/dist/configure/claude-code.d.ts.map +0 -1
  96. package/dist/configure/claude-code.js +0 -11
  97. package/dist/configure/claude-code.js.map +0 -1
  98. package/dist/configure/claude-desktop.d.ts +0 -8
  99. package/dist/configure/claude-desktop.d.ts.map +0 -1
  100. package/dist/configure/claude-desktop.js +0 -28
  101. package/dist/configure/claude-desktop.js.map +0 -1
  102. package/dist/configure/codex.d.ts +0 -7
  103. package/dist/configure/codex.d.ts.map +0 -1
  104. package/dist/configure/codex.js +0 -12
  105. package/dist/configure/codex.js.map +0 -1
  106. package/dist/configure/cursor.d.ts +0 -7
  107. package/dist/configure/cursor.d.ts.map +0 -1
  108. package/dist/configure/cursor.js +0 -12
  109. package/dist/configure/cursor.js.map +0 -1
  110. package/dist/configure/index.d.ts +0 -34
  111. package/dist/configure/index.d.ts.map +0 -1
  112. package/dist/configure/index.js +0 -153
  113. package/dist/configure/index.js.map +0 -1
  114. package/dist/detect/claude-code.d.ts +0 -3
  115. package/dist/detect/claude-code.d.ts.map +0 -1
  116. package/dist/detect/claude-code.js +0 -82
  117. package/dist/detect/claude-code.js.map +0 -1
  118. package/dist/detect/claude-desktop.d.ts +0 -3
  119. package/dist/detect/claude-desktop.d.ts.map +0 -1
  120. package/dist/detect/claude-desktop.js +0 -89
  121. package/dist/detect/claude-desktop.js.map +0 -1
  122. package/dist/detect/codex.d.ts +0 -3
  123. package/dist/detect/codex.d.ts.map +0 -1
  124. package/dist/detect/codex.js +0 -64
  125. package/dist/detect/codex.js.map +0 -1
  126. package/dist/detect/cursor.d.ts +0 -3
  127. package/dist/detect/cursor.d.ts.map +0 -1
  128. package/dist/detect/cursor.js +0 -81
  129. package/dist/detect/cursor.js.map +0 -1
  130. package/dist/detect/index.d.ts +0 -3
  131. package/dist/detect/index.d.ts.map +0 -1
  132. package/dist/detect/index.js +0 -28
  133. package/dist/detect/index.js.map +0 -1
  134. package/dist/import/file-upload.d.ts +0 -10
  135. package/dist/import/file-upload.d.ts.map +0 -1
  136. package/dist/import/file-upload.js +0 -37
  137. package/dist/import/file-upload.js.map +0 -1
  138. package/dist/import/index.d.ts +0 -11
  139. package/dist/import/index.d.ts.map +0 -1
  140. package/dist/import/index.js +0 -51
  141. package/dist/import/index.js.map +0 -1
  142. package/dist/mcp/exports.d.ts +0 -13
  143. package/dist/mcp/exports.d.ts.map +0 -1
  144. package/dist/mcp/exports.js +0 -13
  145. package/dist/mcp/exports.js.map +0 -1
  146. package/dist/mcp/git-context.d.ts +0 -17
  147. package/dist/mcp/git-context.d.ts.map +0 -1
  148. package/dist/mcp/git-context.js +0 -72
  149. package/dist/mcp/git-context.js.map +0 -1
  150. package/dist/mcp/hooks/anthropic.d.ts +0 -31
  151. package/dist/mcp/hooks/anthropic.d.ts.map +0 -1
  152. package/dist/mcp/hooks/anthropic.js +0 -137
  153. package/dist/mcp/hooks/anthropic.js.map +0 -1
  154. package/dist/mcp/hooks/google.d.ts +0 -53
  155. package/dist/mcp/hooks/google.d.ts.map +0 -1
  156. package/dist/mcp/hooks/google.js +0 -161
  157. package/dist/mcp/hooks/google.js.map +0 -1
  158. package/dist/mcp/hooks/index.d.ts +0 -9
  159. package/dist/mcp/hooks/index.d.ts.map +0 -1
  160. package/dist/mcp/hooks/index.js +0 -7
  161. package/dist/mcp/hooks/index.js.map +0 -1
  162. package/dist/mcp/hooks/openai.d.ts +0 -59
  163. package/dist/mcp/hooks/openai.d.ts.map +0 -1
  164. package/dist/mcp/hooks/openai.js +0 -158
  165. package/dist/mcp/hooks/openai.js.map +0 -1
  166. package/dist/mcp/hooks/types.d.ts +0 -8
  167. package/dist/mcp/hooks/types.d.ts.map +0 -1
  168. package/dist/mcp/hooks/types.js +0 -5
  169. package/dist/mcp/hooks/types.js.map +0 -1
  170. package/dist/mcp/ingestor.d.ts +0 -23
  171. package/dist/mcp/ingestor.d.ts.map +0 -1
  172. package/dist/mcp/ingestor.js +0 -310
  173. package/dist/mcp/ingestor.js.map +0 -1
  174. package/dist/mcp/pricing.d.ts +0 -19
  175. package/dist/mcp/pricing.d.ts.map +0 -1
  176. package/dist/mcp/pricing.js +0 -130
  177. package/dist/mcp/pricing.js.map +0 -1
  178. package/dist/mcp/server.d.ts +0 -10
  179. package/dist/mcp/server.d.ts.map +0 -1
  180. package/dist/mcp/server.js +0 -689
  181. package/dist/mcp/server.js.map +0 -1
  182. package/dist/mcp/session-tracker.d.ts +0 -52
  183. package/dist/mcp/session-tracker.d.ts.map +0 -1
  184. package/dist/mcp/session-tracker.js +0 -186
  185. package/dist/mcp/session-tracker.js.map +0 -1
  186. package/dist/mcp/tools/analyze-spending-trend.d.ts +0 -10
  187. package/dist/mcp/tools/analyze-spending-trend.d.ts.map +0 -1
  188. package/dist/mcp/tools/analyze-spending-trend.js +0 -126
  189. package/dist/mcp/tools/analyze-spending-trend.js.map +0 -1
  190. package/dist/mcp/tools/get-budget-status.d.ts +0 -9
  191. package/dist/mcp/tools/get-budget-status.d.ts.map +0 -1
  192. package/dist/mcp/tools/get-budget-status.js +0 -59
  193. package/dist/mcp/tools/get-budget-status.js.map +0 -1
  194. package/dist/mcp/tools/get-cost-breakdown.d.ts +0 -10
  195. package/dist/mcp/tools/get-cost-breakdown.d.ts.map +0 -1
  196. package/dist/mcp/tools/get-cost-breakdown.js +0 -52
  197. package/dist/mcp/tools/get-cost-breakdown.js.map +0 -1
  198. package/dist/mcp/tools/get-model-efficiency.d.ts +0 -9
  199. package/dist/mcp/tools/get-model-efficiency.d.ts.map +0 -1
  200. package/dist/mcp/tools/get-model-efficiency.js +0 -137
  201. package/dist/mcp/tools/get-model-efficiency.js.map +0 -1
  202. package/dist/mcp/tools/get-recent-prompts.d.ts +0 -13
  203. package/dist/mcp/tools/get-recent-prompts.d.ts.map +0 -1
  204. package/dist/mcp/tools/get-recent-prompts.js +0 -56
  205. package/dist/mcp/tools/get-recent-prompts.js.map +0 -1
  206. package/dist/mcp/tools/get-roi-metrics.d.ts +0 -9
  207. package/dist/mcp/tools/get-roi-metrics.d.ts.map +0 -1
  208. package/dist/mcp/tools/get-roi-metrics.js +0 -84
  209. package/dist/mcp/tools/get-roi-metrics.js.map +0 -1
  210. package/dist/mcp/tools/get-usage-summary.d.ts +0 -10
  211. package/dist/mcp/tools/get-usage-summary.d.ts.map +0 -1
  212. package/dist/mcp/tools/get-usage-summary.js +0 -47
  213. package/dist/mcp/tools/get-usage-summary.js.map +0 -1
  214. package/dist/mcp/tools/index.d.ts +0 -221
  215. package/dist/mcp/tools/index.d.ts.map +0 -1
  216. package/dist/mcp/tools/index.js +0 -161
  217. package/dist/mcp/tools/index.js.map +0 -1
  218. package/dist/mcp/tools/list-projects.d.ts +0 -6
  219. package/dist/mcp/tools/list-projects.d.ts.map +0 -1
  220. package/dist/mcp/tools/list-projects.js +0 -43
  221. package/dist/mcp/tools/list-projects.js.map +0 -1
  222. package/dist/mcp/tools/optimize-prompt.d.ts +0 -44
  223. package/dist/mcp/tools/optimize-prompt.d.ts.map +0 -1
  224. package/dist/mcp/tools/optimize-prompt.js +0 -95
  225. package/dist/mcp/tools/optimize-prompt.js.map +0 -1
  226. package/dist/mcp/types.d.ts +0 -118
  227. package/dist/mcp/types.d.ts.map +0 -1
  228. package/dist/mcp/types.js +0 -5
  229. package/dist/mcp/types.js.map +0 -1
  230. package/dist/types.d.ts +0 -18
  231. package/dist/types.d.ts.map +0 -1
  232. package/dist/types.js +0 -2
  233. package/dist/types.js.map +0 -1
  234. package/dist/update-check/check.d.ts +0 -6
  235. package/dist/update-check/check.d.ts.map +0 -1
  236. package/dist/update-check/check.js +0 -64
  237. package/dist/update-check/check.js.map +0 -1
  238. package/dist/update-check/notify.d.ts +0 -6
  239. package/dist/update-check/notify.d.ts.map +0 -1
  240. package/dist/update-check/notify.js +0 -40
  241. package/dist/update-check/notify.js.map +0 -1
  242. package/dist/verify.d.ts +0 -7
  243. package/dist/verify.d.ts.map +0 -1
  244. package/dist/verify.js +0 -40
  245. package/dist/verify.js.map +0 -1
  246. package/dist/version.d.ts +0 -9
  247. package/dist/version.d.ts.map +0 -1
  248. package/dist/version.js +0 -21
  249. package/dist/version.js.map +0 -1
@@ -1,161 +0,0 @@
1
- /**
2
- * MCP Tools Registry
3
- * Exports all available tools for Claude Desktop integration
4
- */
5
- // Phase 1 Tools
6
- export { getUsageSummary } from './get-usage-summary.js';
7
- export { getBudgetStatus } from './get-budget-status.js';
8
- export { getRecentPrompts } from './get-recent-prompts.js';
9
- export { listProjects } from './list-projects.js';
10
- export { getCostBreakdown } from './get-cost-breakdown.js';
11
- // Phase 2 Tools - ROI Metrics
12
- export { getRoiMetrics } from './get-roi-metrics.js';
13
- export { analyzeSpendingTrend } from './analyze-spending-trend.js';
14
- export { getModelEfficiency } from './get-model-efficiency.js';
15
- // Phase 3 Tools - Prompt Optimization
16
- import { optimizePromptTool, OPTIMIZE_PROMPT_TOOL } from './optimize-prompt.js';
17
- export { optimizePromptTool, OPTIMIZE_PROMPT_TOOL };
18
- /**
19
- * Tool definitions for MCP server registration
20
- */
21
- export const MCP_TOOLS = [
22
- {
23
- name: 'get_usage_summary',
24
- description: 'Get aggregated usage data for your LLM spending with time period filtering',
25
- inputSchema: {
26
- type: 'object',
27
- properties: {
28
- timeframe: {
29
- type: 'string',
30
- enum: ['7d', '30d', '90d'],
31
- description: 'Time period to analyze (default: 30d)',
32
- },
33
- group_by: {
34
- type: 'string',
35
- enum: ['provider', 'model', 'project'],
36
- description: 'How to group the usage data (default: provider)',
37
- },
38
- },
39
- },
40
- },
41
- {
42
- name: 'get_cost_breakdown',
43
- description: 'Analyze your LLM spending breakdown by category with trends',
44
- inputSchema: {
45
- type: 'object',
46
- properties: {
47
- timeframe: {
48
- type: 'string',
49
- enum: ['7d', '30d', '90d'],
50
- description: 'Time period to analyze (default: 30d)',
51
- },
52
- break_down_by: {
53
- type: 'string',
54
- enum: ['provider', 'model', 'project'],
55
- description: 'How to break down the costs (default: provider)',
56
- },
57
- },
58
- },
59
- },
60
- {
61
- name: 'get_recent_prompts',
62
- description: 'Retrieve your recent LLM prompts and responses with filtering',
63
- inputSchema: {
64
- type: 'object',
65
- properties: {
66
- limit: {
67
- type: 'number',
68
- description: 'Number of prompts to return (1-100, default: 10)',
69
- },
70
- offset: {
71
- type: 'number',
72
- description: 'Pagination offset (default: 0)',
73
- },
74
- provider: {
75
- type: 'string',
76
- description: 'Filter by provider (e.g., anthropic, openai)',
77
- },
78
- model: {
79
- type: 'string',
80
- description: 'Filter by model (e.g., claude-3-5-sonnet)',
81
- },
82
- include_content: {
83
- type: 'boolean',
84
- description: 'Include full prompt content (default: false for privacy)',
85
- },
86
- },
87
- },
88
- },
89
- {
90
- name: 'get_budget_status',
91
- description: 'Check your LLM API budget status and spending alerts',
92
- inputSchema: {
93
- type: 'object',
94
- properties: {
95
- project_id: {
96
- type: 'string',
97
- description: 'Check budget for specific project (optional)',
98
- },
99
- },
100
- },
101
- },
102
- {
103
- name: 'list_projects',
104
- description: 'List available projects for filtering usage data',
105
- inputSchema: {
106
- type: 'object',
107
- properties: {},
108
- },
109
- },
110
- // Phase 2 Tools
111
- {
112
- name: 'get_roi_metrics',
113
- description: 'Calculate ROI and efficiency metrics with comparison to previous period',
114
- inputSchema: {
115
- type: 'object',
116
- properties: {
117
- timeframe: {
118
- type: 'string',
119
- enum: ['7d', '30d', '90d'],
120
- description: 'Time period to analyze (default: 30d)',
121
- },
122
- },
123
- },
124
- },
125
- {
126
- name: 'analyze_spending_trend',
127
- description: 'Analyze spending trends and forecast future costs with acceleration/deceleration detection',
128
- inputSchema: {
129
- type: 'object',
130
- properties: {
131
- timeframe: {
132
- type: 'string',
133
- enum: ['7d', '30d', '90d'],
134
- description: 'Time period to analyze (default: 30d)',
135
- },
136
- metric: {
137
- type: 'string',
138
- enum: ['cost', 'tokens'],
139
- description: 'Which metric to analyze (default: cost)',
140
- },
141
- },
142
- },
143
- },
144
- {
145
- name: 'get_model_efficiency',
146
- description: 'Compare per-model cost efficiency and get recommendations for best models to use',
147
- inputSchema: {
148
- type: 'object',
149
- properties: {
150
- timeframe: {
151
- type: 'string',
152
- enum: ['7d', '30d', '90d'],
153
- description: 'Time period to analyze (default: 30d)',
154
- },
155
- },
156
- },
157
- },
158
- // Phase 3 Tools
159
- OPTIMIZE_PROMPT_TOOL,
160
- ];
161
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * MCP Tool: list_projects
3
- * List available projects for filtering usage data
4
- */
5
- export declare function listProjects(apiKey: string, apiUrl: string): Promise<string>;
6
- //# sourceMappingURL=list-projects.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-projects.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/list-projects.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAwCjB"}
@@ -1,43 +0,0 @@
1
- /**
2
- * MCP Tool: list_projects
3
- * List available projects for filtering usage data
4
- */
5
- export async function listProjects(apiKey, apiUrl) {
6
- try {
7
- const response = await fetch(`${apiUrl}/api/v1/projects/list`, {
8
- method: 'GET',
9
- headers: {
10
- 'Authorization': `Bearer ${apiKey}`,
11
- 'Content-Type': 'application/json',
12
- },
13
- });
14
- if (!response.ok) {
15
- return `Error: Failed to fetch projects (${response.status})`;
16
- }
17
- const data = (await response.json());
18
- // Format for natural language display
19
- let output = `📋 Projects (${data.total || 0} total)
20
-
21
- `;
22
- if (data.projects && data.projects.length > 0) {
23
- data.projects.forEach((project, idx) => {
24
- output += `${idx + 1}. ${project.name}
25
- `;
26
- output += ` ID: ${project.id}
27
- `;
28
- output += ` Current Month: $${project.current_month_spend?.toFixed(2) || '0.00'}
29
-
30
- `;
31
- });
32
- }
33
- else {
34
- output += 'No projects found.\n';
35
- }
36
- return output;
37
- }
38
- catch (error) {
39
- const msg = error instanceof Error ? error.message : String(error);
40
- return `Error fetching projects: ${msg}`;
41
- }
42
- }
43
- //# sourceMappingURL=list-projects.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-projects.js","sourceRoot":"","sources":["../../../src/mcp/tools/list-projects.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,MAAc;IAEd,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,uBAAuB,EAAE;YAC7D,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,MAAM,EAAE;gBACnC,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,oCAAoC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAChE,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAQ,CAAC;QAE5C,sCAAsC;QACtC,IAAI,MAAM,GAAG,gBAAgB,IAAI,CAAC,KAAK,IAAI,CAAC;;CAE/C,CAAC;QAEE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,GAAW,EAAE,EAAE;gBAClD,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI;CAC5C,CAAC;gBACM,MAAM,IAAI,UAAU,OAAO,CAAC,EAAE;CACrC,CAAC;gBACM,MAAM,IAAI,sBAAsB,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM;;CAExF,CAAC;YACI,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,sBAAsB,CAAC;QACnC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,OAAO,4BAA4B,GAAG,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC"}
@@ -1,44 +0,0 @@
1
- /**
2
- * MCP Tool: optimize_prompt
3
- *
4
- * Scores the user's prompt and optionally rewrites it using an LLM
5
- * before complex tasks. Returns the optimized prompt or null if the
6
- * prompt is already strong. Handles 402 gracefully for free-tier users.
7
- */
8
- import type { OptimizePromptToolInput, OptimizePromptToolResult } from '../types.js';
9
- export declare const OPTIMIZE_PROMPT_TOOL: {
10
- name: string;
11
- description: string;
12
- inputSchema: {
13
- type: "object";
14
- required: string[];
15
- properties: {
16
- prompt: {
17
- type: "string";
18
- description: string;
19
- };
20
- context: {
21
- type: "string";
22
- description: string;
23
- };
24
- threshold: {
25
- type: "number";
26
- description: string;
27
- minimum: number;
28
- maximum: number;
29
- };
30
- };
31
- };
32
- };
33
- /**
34
- * Call the Verbal optimize API and return the optimization result.
35
- *
36
- * Handles 402 → available: false (free tier, no upgrade nagging).
37
- * Throws on other non-OK responses so the MCP server can surface the error.
38
- *
39
- * @param params Tool input (prompt, context?, threshold?)
40
- * @param apiKey Verbal API key (Bearer token)
41
- * @param endpoint Verbal API base URL (e.g. https://verbal.run)
42
- */
43
- export declare function optimizePromptTool(params: OptimizePromptToolInput, apiKey: string, endpoint: string): Promise<OptimizePromptToolResult>;
44
- //# sourceMappingURL=optimize-prompt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"optimize-prompt.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/optimize-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAMrF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;CA4BhC,CAAC;AAMF;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,wBAAwB,CAAC,CAsDnC"}
@@ -1,95 +0,0 @@
1
- /**
2
- * MCP Tool: optimize_prompt
3
- *
4
- * Scores the user's prompt and optionally rewrites it using an LLM
5
- * before complex tasks. Returns the optimized prompt or null if the
6
- * prompt is already strong. Handles 402 gracefully for free-tier users.
7
- */
8
- // ---------------------------------------------------------------------------
9
- // Tool definition
10
- // ---------------------------------------------------------------------------
11
- export const OPTIMIZE_PROMPT_TOOL = {
12
- name: 'optimize_prompt',
13
- description: 'Score and optionally rewrite a prompt before complex tasks. ' +
14
- 'Returns an optimized version if the prompt can be improved, or null if it is already strong. ' +
15
- 'Call this before any multi-step, vague, or underspecified request.',
16
- inputSchema: {
17
- type: 'object',
18
- required: ['prompt'],
19
- properties: {
20
- prompt: {
21
- type: 'string',
22
- description: 'The prompt text to analyze and optionally optimize.',
23
- },
24
- context: {
25
- type: 'string',
26
- description: 'Optional context about the task (e.g., tech stack, project type) to improve rewrite quality.',
27
- },
28
- threshold: {
29
- type: 'number',
30
- description: 'Score threshold (0-100) below which LLM rewrite is triggered. Default: 70.',
31
- minimum: 0,
32
- maximum: 100,
33
- },
34
- },
35
- },
36
- };
37
- // ---------------------------------------------------------------------------
38
- // Tool implementation
39
- // ---------------------------------------------------------------------------
40
- /**
41
- * Call the Verbal optimize API and return the optimization result.
42
- *
43
- * Handles 402 → available: false (free tier, no upgrade nagging).
44
- * Throws on other non-OK responses so the MCP server can surface the error.
45
- *
46
- * @param params Tool input (prompt, context?, threshold?)
47
- * @param apiKey Verbal API key (Bearer token)
48
- * @param endpoint Verbal API base URL (e.g. https://verbal.run)
49
- */
50
- export async function optimizePromptTool(params, apiKey, endpoint) {
51
- const body = { prompt: params.prompt };
52
- if (params.context !== undefined)
53
- body.context = params.context;
54
- if (params.threshold !== undefined)
55
- body.threshold = params.threshold;
56
- const response = await fetch(`${endpoint}/api/v1/optimize`, {
57
- method: 'POST',
58
- headers: {
59
- 'Authorization': `Bearer ${apiKey}`,
60
- 'Content-Type': 'application/json',
61
- },
62
- body: JSON.stringify(body),
63
- });
64
- // Tier gate: free plan does not have prompt optimization
65
- if (response.status === 402) {
66
- let upgradeUrl = '/pricing';
67
- try {
68
- const data = (await response.json());
69
- if (typeof data.upgradeUrl === 'string') {
70
- upgradeUrl = data.upgradeUrl;
71
- }
72
- }
73
- catch {
74
- // ignore parse errors
75
- }
76
- return {
77
- available: false,
78
- reason: 'Prompt optimization is not available on your current plan.',
79
- upgrade_url: upgradeUrl,
80
- };
81
- }
82
- if (!response.ok) {
83
- throw new Error(`optimize_prompt API error: ${response.status} ${response.statusText}`);
84
- }
85
- const data = (await response.json());
86
- return {
87
- available: true,
88
- original_score: data.original_score,
89
- optimized_prompt: data.optimized_prompt,
90
- improvement_delta: data.improvement_delta,
91
- issues: data.issues,
92
- rewrite_triggered: data.rewrite_triggered,
93
- };
94
- }
95
- //# sourceMappingURL=optimize-prompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"optimize-prompt.js","sourceRoot":"","sources":["../../../src/mcp/tools/optimize-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,8DAA8D;QAC9D,+FAA+F;QAC/F,oEAAoE;IACtE,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,IAAI,EAAE,QAAiB;gBACvB,WAAW,EAAE,qDAAqD;aACnE;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAiB;gBACvB,WAAW,EACT,8FAA8F;aACjG;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAiB;gBACvB,WAAW,EACT,4EAA4E;gBAC9E,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,GAAG;aACb;SACF;KACF;CACF,CAAC;AAEF,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAA+B,EAC/B,MAAc,EACd,QAAgB;IAEhB,MAAM,IAAI,GAA4B,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAChE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAChE,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAEtE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,kBAAkB,EAAE;QAC1D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,EAAE;YACnC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEH,yDAAyD;IACzD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,IAAI,UAAU,GAAG,UAAU,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA4B,CAAC;YAChE,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACxC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sBAAsB;QACxB,CAAC;QACD,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,4DAA4D;YACpE,WAAW,EAAE,UAAU;SACxB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,8BAA8B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACvE,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAMlC,CAAC;IAEF,OAAO;QACL,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;KAC1C,CAAC;AACJ,CAAC"}
@@ -1,118 +0,0 @@
1
- /**
2
- * Shared types for Verbal MCP service
3
- */
4
- export interface UsageEvent {
5
- event_id?: string;
6
- event_type: 'prompt' | 'usage';
7
- timestamp?: string;
8
- source?: string;
9
- client?: string;
10
- org_id?: string;
11
- project?: string;
12
- user?: string;
13
- tags?: string[];
14
- metadata?: Record<string, unknown>;
15
- prompt?: string;
16
- response?: string;
17
- provider?: string;
18
- model?: string;
19
- tokens_in?: number;
20
- tokens_out?: number;
21
- total_tokens?: number;
22
- cache_read_tokens?: number;
23
- cache_write_tokens?: number;
24
- cost?: number;
25
- currency?: string;
26
- /** Whether this usage is API-billed (per-token) or subscription-covered (flat fee). */
27
- billing_type?: 'api' | 'subscription';
28
- prompt_name?: string;
29
- prompt_version?: string;
30
- session_id?: string;
31
- request_id?: string;
32
- response_id?: string;
33
- duration_ms?: number;
34
- /** Verbal conversation ID to link this event to. */
35
- conversation_id?: string;
36
- conversation_title?: string;
37
- }
38
- export interface IngestPayload {
39
- provider: string;
40
- model: string;
41
- prompt_tokens?: number;
42
- completion_tokens?: number;
43
- total_tokens?: number;
44
- cache_read_tokens?: number;
45
- cache_write_tokens?: number;
46
- estimated_cost?: number;
47
- /** Billing type: 'api' for per-token pricing, 'subscription' for flat-rate plans. */
48
- billing_type?: 'api' | 'subscription';
49
- request_id?: string;
50
- user_id?: string;
51
- tags?: Record<string, string>;
52
- metadata?: Record<string, unknown>;
53
- prompt_content?: string;
54
- response_content?: string;
55
- /** Optional conversation ID for activity graph linkage. */
56
- conversation_id?: string;
57
- /** Optional session ID for grouping events. */
58
- session_id?: string;
59
- source?: string;
60
- client?: string;
61
- }
62
- export interface IngestorConfig {
63
- apiKey: string;
64
- endpoint: string;
65
- hmacSecret?: string;
66
- orgId?: string;
67
- defaultProject?: string;
68
- defaultProvider?: string;
69
- defaultModel?: string;
70
- source?: string;
71
- batchSize?: number;
72
- flushIntervalMs?: number;
73
- httpTimeoutMs?: number;
74
- gitContextEnabled?: boolean;
75
- costCalcEnabled?: boolean;
76
- /** Default billing type for events captured by this instance. */
77
- billingType?: 'api' | 'subscription';
78
- maxRetries?: number;
79
- retryBaseDelayMs?: number;
80
- deadLetterPath?: string;
81
- }
82
- export interface IngestResult {
83
- ok: boolean;
84
- status?: number;
85
- statusText?: string;
86
- sent?: number;
87
- failed?: number;
88
- }
89
- export interface ReviewRatings {
90
- usefulness_rating: number;
91
- effectiveness_rating: number;
92
- time_saved_bucket: string;
93
- improvement_text?: string;
94
- }
95
- export interface PendingSession {
96
- session_id: string;
97
- session_start: string;
98
- session_end: string;
99
- event_count: number;
100
- }
101
- export interface OptimizePromptToolInput {
102
- prompt: string;
103
- context?: string;
104
- threshold?: number;
105
- }
106
- export type OptimizePromptToolResult = {
107
- available: true;
108
- original_score: number;
109
- optimized_prompt: string | null;
110
- improvement_delta: number | null;
111
- issues: string[];
112
- rewrite_triggered: boolean;
113
- } | {
114
- available: false;
115
- reason: string;
116
- upgrade_url?: string;
117
- };
118
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp/types.ts"],"names":[],"mappings":"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"}
package/dist/mcp/types.js DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * Shared types for Verbal MCP service
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mcp/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
package/dist/types.d.ts DELETED
@@ -1,18 +0,0 @@
1
- export interface Credentials {
2
- api_key: string;
3
- org_id: string;
4
- user_email: string;
5
- api_url: string;
6
- ingest_url: string;
7
- created_at: string;
8
- }
9
- export interface DetectionResult {
10
- tool: 'claude-code' | 'claude-desktop' | 'cursor' | 'codex';
11
- detected: boolean;
12
- version?: string;
13
- configPath: string;
14
- existingConfig: boolean;
15
- details: string;
16
- }
17
- export type ToolName = DetectionResult['tool'];
18
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,GAAG,gBAAgB,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5D,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC"}
package/dist/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- /**
2
- * Non-blocking update check. Fires fetch, writes cache, but does NOT print.
3
- * Call printUpdateNotice() after your command completes to render the notice.
4
- */
5
- export declare function checkForUpdate(_currentVersion: string): Promise<void>;
6
- //# sourceMappingURL=check.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/update-check/check.ts"],"names":[],"mappings":"AAqCA;;;GAGG;AACH,wBAAsB,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B3E"}
@@ -1,64 +0,0 @@
1
- import { readFileSync, writeFileSync, mkdirSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { getCredentialsDir, readCredentials } from '../auth/credentials.js';
4
- const CACHE_FILE = 'update-check.json';
5
- const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours
6
- function getCachePath() {
7
- return join(getCredentialsDir(), CACHE_FILE);
8
- }
9
- function readCache() {
10
- try {
11
- const raw = readFileSync(getCachePath(), 'utf-8');
12
- return JSON.parse(raw);
13
- }
14
- catch {
15
- return null;
16
- }
17
- }
18
- function writeCache(cache) {
19
- try {
20
- const dir = getCredentialsDir();
21
- mkdirSync(dir, { recursive: true });
22
- writeFileSync(getCachePath(), JSON.stringify(cache, null, 2));
23
- }
24
- catch {
25
- // Non-critical — silently ignore write failures
26
- }
27
- }
28
- /**
29
- * Non-blocking update check. Fires fetch, writes cache, but does NOT print.
30
- * Call printUpdateNotice() after your command completes to render the notice.
31
- */
32
- export async function checkForUpdate(_currentVersion) {
33
- // Skip if user hasn't authenticated yet
34
- const creds = await readCredentials();
35
- if (!creds)
36
- return;
37
- // Check cache — skip if checked recently
38
- const cache = readCache();
39
- if (cache) {
40
- const elapsed = Date.now() - new Date(cache.checkedAt).getTime();
41
- if (elapsed < CHECK_INTERVAL_MS)
42
- return;
43
- }
44
- // Fire non-blocking fetch
45
- try {
46
- const apiUrl = creds.api_url || 'https://www.getverbal.ai';
47
- const res = await fetch(`${apiUrl}/api/v1/cli/version`, {
48
- signal: AbortSignal.timeout(3000), // 3s timeout — don't slow down CLI
49
- });
50
- if (!res.ok)
51
- return;
52
- const body = (await res.json());
53
- writeCache({
54
- checkedAt: new Date().toISOString(),
55
- latest: body.latest,
56
- min: body.min,
57
- message: body.message,
58
- });
59
- }
60
- catch {
61
- // Network error — silently ignore
62
- }
63
- }
64
- //# sourceMappingURL=check.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/update-check/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAS5E,MAAM,UAAU,GAAG,mBAAmB,CAAC;AACvC,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;AAE1D,SAAS,YAAY;IACnB,OAAO,IAAI,CAAC,iBAAiB,EAAE,EAAE,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAkB;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;QAChC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,aAAa,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;IAClD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,eAAuB;IAC1D,wCAAwC;IACxC,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnB,yCAAyC;IACzC,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QACjE,IAAI,OAAO,GAAG,iBAAiB;YAAE,OAAO;IAC1C,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,IAAI,0BAA0B,CAAC;QAC3D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,qBAAqB,EAAE;YACtD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,mCAAmC;SACvE,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO;QAEpB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4D,CAAC;QAC3F,UAAU,CAAC;YACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,kCAAkC;IACpC,CAAC;AACH,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Reads the update cache and prints a notice if the current version is outdated.
3
- * Call this AFTER your command completes.
4
- */
5
- export declare function printUpdateNotice(currentVersion: string): void;
6
- //# sourceMappingURL=notify.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../src/update-check/notify.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CA8B9D"}