@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,262 +0,0 @@
1
- import pc from 'picocolors';
2
- import { createInterface } from 'node:readline/promises';
3
- import { execSync } from 'node:child_process';
4
- import { existsSync, readFileSync } from 'node:fs';
5
- import { join } from 'node:path';
6
- import { homedir } from 'node:os';
7
- import { VERSION } from '../version.js';
8
- import { browserAuth } from '../auth/browser-auth.js';
9
- import { readCredentials, writeCredentials } from '../auth/credentials.js';
10
- import { detectAll } from '../detect/index.js';
11
- import { configureAll } from '../configure/index.js';
12
- import { verifyConnection } from '../verify.js';
13
- // ---------------------------------------------------------------------------
14
- // Helpers
15
- // ---------------------------------------------------------------------------
16
- async function confirm(rl, message, defaultYes) {
17
- const hint = defaultYes ? '(Y/n)' : '(y/N)';
18
- const answer = await rl.question(`${message} ${hint} `);
19
- const trimmed = answer.trim().toLowerCase();
20
- if (trimmed === '')
21
- return defaultYes;
22
- return trimmed === 'y' || trimmed === 'yes';
23
- }
24
- /**
25
- * Best-effort check — only matches exact lines, not glob patterns like *.json
26
- * or **\/.mcp.json. A false negative (missing the pattern) just means we skip
27
- * the "already gitignored" hint, which is acceptable.
28
- */
29
- function isInGitignore(filename) {
30
- const gitignorePath = join(process.cwd(), '.gitignore');
31
- if (!existsSync(gitignorePath))
32
- return false;
33
- try {
34
- const content = readFileSync(gitignorePath, 'utf-8');
35
- return content.split('\n').some((line) => line.trim() === filename);
36
- }
37
- catch {
38
- return false;
39
- }
40
- }
41
- function toolDisplayName(tool) {
42
- switch (tool) {
43
- case 'claude-code':
44
- return 'Claude Code';
45
- case 'claude-desktop':
46
- return 'Claude Desktop';
47
- case 'cursor':
48
- return 'Cursor';
49
- case 'codex':
50
- return 'Codex';
51
- default: {
52
- const _exhaustive = tool;
53
- return String(_exhaustive);
54
- }
55
- }
56
- }
57
- // ---------------------------------------------------------------------------
58
- // Global install helpers
59
- // ---------------------------------------------------------------------------
60
- function isGloballyInstalled() {
61
- try {
62
- const which = execSync('which getverbal', { encoding: 'utf-8' }).trim();
63
- // If running via npx, the resolved path includes npx or the npm _npx cache
64
- return !which.includes('npx') && !which.includes('.npm/_npx');
65
- }
66
- catch {
67
- return false;
68
- }
69
- }
70
- async function promoteToGlobal(rl) {
71
- if (isGloballyInstalled())
72
- return true;
73
- const answer = await rl.question(' Install globally for best performance? [Y/n] ');
74
- if (answer.trim().toLowerCase() === 'n') {
75
- console.log(pc.dim(' Skipping global install. Will use npx fallback.'));
76
- return false;
77
- }
78
- console.log(`\n ${pc.dim('ℹ')} Installing globally...`);
79
- try {
80
- execSync(`npm install -g getverbal@${VERSION}`, { stdio: 'inherit' });
81
- console.log(pc.green(` ✓ Installed getverbal v${VERSION} globally`));
82
- return true;
83
- }
84
- catch {
85
- console.log(pc.yellow(' ⚠ Could not install globally. Using npx fallback.'));
86
- return false;
87
- }
88
- }
89
- // ---------------------------------------------------------------------------
90
- // Main command
91
- // ---------------------------------------------------------------------------
92
- export async function runInit() {
93
- // ── 1. Banner ─────────────────────────────────────────────────────────────
94
- console.log();
95
- console.log(pc.bold('Verbal — AI Spend Tracker'));
96
- console.log();
97
- const rl = createInterface({ input: process.stdin, output: process.stdout });
98
- // ── 2. Promote to global install (before auth, best effort) ───────────────
99
- const useGlobal = await promoteToGlobal(rl);
100
- let credentials = null;
101
- try {
102
- // ── 3. Check for existing credentials ──────────────────────────────────
103
- const existing = await readCredentials();
104
- if (existing !== null) {
105
- console.log(pc.dim(`Already authenticated as ${pc.bold(existing.user_email)}.`));
106
- const reauth = await confirm(rl, 'Re-authenticate?', false);
107
- if (!reauth) {
108
- credentials = existing;
109
- }
110
- }
111
- // ── 4. Browser auth (if not reusing existing) ──────────────────────────
112
- if (credentials === null) {
113
- console.log(pc.cyan('Opening browser to sign up or log in...'));
114
- console.log(pc.dim('If your browser does not open, visit:'), pc.underline('https://www.getverbal.ai/cli/auth'));
115
- console.log();
116
- try {
117
- const creds = await browserAuth({ apiUrl: 'https://www.getverbal.ai' });
118
- await writeCredentials(creds);
119
- console.log(pc.green(`✓ Authenticated as ${pc.bold(creds.user_email)}`));
120
- console.log();
121
- credentials = creds;
122
- }
123
- catch (err) {
124
- const message = err instanceof Error ? err.message : String(err);
125
- console.error(pc.red(`✗ Authentication failed: ${message}`));
126
- process.exit(1);
127
- }
128
- }
129
- // ── 5. Detect tools ────────────────────────────────────────────────────
130
- console.log(pc.bold('Detecting AI tools...'));
131
- const detections = await detectAll();
132
- for (const d of detections) {
133
- const name = toolDisplayName(d.tool);
134
- if (d.detected) {
135
- console.log(pc.green(` ✓ ${name}`) + pc.dim(` (${d.details})`));
136
- }
137
- else {
138
- console.log(pc.dim(` ✗ ${name} (not found)`));
139
- }
140
- }
141
- console.log();
142
- const detected = detections.filter((d) => d.detected);
143
- if (detected.length === 0) {
144
- console.log(pc.yellow('⚠ No supported AI tools detected. Skipping configuration.'));
145
- console.log();
146
- }
147
- // ── 6. Per-tool confirmation ────────────────────────────────────────────
148
- const confirmed = [];
149
- for (const d of detected) {
150
- const name = toolDisplayName(d.tool);
151
- if (d.existingConfig) {
152
- console.log(pc.dim(` ${name} is already configured.`));
153
- const overwrite = await confirm(rl, ` Overwrite ${name} config?`, false);
154
- if (overwrite) {
155
- confirmed.push(d);
156
- }
157
- else {
158
- console.log(pc.dim(` Skipping ${name}.`));
159
- }
160
- }
161
- else {
162
- const configure = await confirm(rl, ` Configure ${name}?`, true);
163
- if (configure) {
164
- confirmed.push(d);
165
- }
166
- else {
167
- console.log(pc.dim(` Skipping ${name}.`));
168
- }
169
- }
170
- }
171
- if (confirmed.length > 0) {
172
- console.log();
173
- }
174
- // ── 7. Configure confirmed tools ───────────────────────────────────────
175
- if (confirmed.length > 0) {
176
- console.log(pc.bold('Configuring tools...'));
177
- const results = await configureAll(confirmed, credentials, useGlobal);
178
- for (const r of results) {
179
- const d = confirmed.find((det) => det.tool === r.tool);
180
- const name = toolDisplayName(r.tool);
181
- const configPath = d?.configPath ?? '';
182
- if (r.success) {
183
- console.log(pc.green(` ✓ ${name}`) + (configPath ? pc.dim(` ${configPath}`) : ''));
184
- }
185
- else {
186
- console.log(pc.red(` ✗ ${name}: ${r.error ?? 'unknown error'}`));
187
- }
188
- }
189
- console.log();
190
- }
191
- // ── 8. Verify connection ───────────────────────────────────────────────
192
- process.stdout.write(pc.dim('Verifying connection...'));
193
- try {
194
- await verifyConnection(credentials);
195
- console.log(' ' + pc.green('✓ test event received'));
196
- }
197
- catch (err) {
198
- const message = err instanceof Error ? err.message : String(err);
199
- console.log();
200
- console.log(pc.yellow(`⚠ Verification warning: ${message}`));
201
- }
202
- console.log();
203
- // ── 9. Post-install warnings ───────────────────────────────────────────
204
- const mcpJsonPath = join(process.cwd(), '.mcp.json');
205
- if (existsSync(mcpJsonPath) && !isInGitignore('.mcp.json')) {
206
- console.log(pc.yellow('⚠ .mcp.json contains your API key. Add it to .gitignore to avoid leaking credentials:'));
207
- console.log(pc.dim(' echo ".mcp.json" >> .gitignore'));
208
- console.log();
209
- }
210
- const needsRestart = confirmed.some((d) => d.tool === 'claude-desktop' || d.tool === 'cursor');
211
- if (needsRestart) {
212
- console.log(pc.yellow('⚠ Restart Claude Desktop and Cursor to activate Verbal.'));
213
- console.log();
214
- }
215
- // ── 10. Offer to import existing history ──────────────────────────────
216
- const { detectImportSources } = await import('../import/index.js');
217
- const importSources = detectImportSources();
218
- if (importSources.length > 0) {
219
- console.log(' Import existing history?');
220
- importSources.forEach((s, i) => {
221
- console.log(` ${pc.bold(`[${i + 1}]`)} ${s.label} — ${s.count} sessions found`);
222
- });
223
- console.log(` ${pc.bold(`[${importSources.length + 1}]`)} Skip for now`);
224
- const importAnswer = await rl.question(`\n Select: `);
225
- const selected = parseInt(importAnswer.trim(), 10);
226
- if (selected >= 1 && selected <= importSources.length) {
227
- const source = importSources[selected - 1];
228
- console.log(`\n Importing ${source.id}...`);
229
- try {
230
- const { syncFromTokscale } = await import('../agent-hooks/tokscale.js');
231
- const stateDir = join(homedir(), '.config', 'getverbal');
232
- const platform = source.id === 'claude-code' ? 'claude' : 'codex';
233
- const result = await syncFromTokscale({
234
- apiKey: credentials.api_key,
235
- ingestUrl: credentials.ingest_url,
236
- batchSize: 100,
237
- flushIntervalMs: 5000,
238
- httpTimeoutMs: 30000,
239
- stateDir,
240
- }, {
241
- platforms: [platform],
242
- });
243
- console.log(pc.green(` ✓ ${result.events} sessions imported`));
244
- }
245
- catch (importErr) {
246
- const message = importErr instanceof Error ? importErr.message : String(importErr);
247
- console.log(pc.yellow(` ⚠ Import skipped: ${message}`));
248
- }
249
- }
250
- console.log();
251
- }
252
- // ── 11. Done ───────────────────────────────────────────────────────────
253
- console.log(pc.bold('Done!') +
254
- pc.dim(' Dashboard → ') +
255
- pc.cyan('https://www.getverbal.ai/dashboard'));
256
- console.log();
257
- }
258
- finally {
259
- rl.close();
260
- }
261
- }
262
- //# sourceMappingURL=init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function runLogout(): Promise<void>;
2
- //# sourceMappingURL=logout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAGA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAe/C"}
@@ -1,17 +0,0 @@
1
- import pc from 'picocolors';
2
- import { readCredentials, clearCredentials } from '../auth/credentials.js';
3
- export async function runLogout() {
4
- // 1. Check if logged in
5
- const credentials = await readCredentials();
6
- if (!credentials) {
7
- console.log(pc.dim('Not currently logged in.'));
8
- return;
9
- }
10
- // 2. Log out
11
- console.log(`Logging out ${pc.bold(credentials.user_email)}...`);
12
- await clearCredentials();
13
- // 3. Confirmation
14
- console.log(pc.green('✓') + ' Credentials removed. Your AI tool configurations are still in place.');
15
- console.log(pc.dim('Run `getverbal uninstall` to also remove tool configurations.'));
16
- }
17
- //# sourceMappingURL=logout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE3E,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,wBAAwB;IACxB,MAAM,WAAW,GAAG,MAAM,eAAe,EAAE,CAAC;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,aAAa;IACb,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,gBAAgB,EAAE,CAAC;IAEzB,kBAAkB;IAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,uEAAuE,CAAC,CAAC;IACrG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC,CAAC;AACvF,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function runMcpServe(): Promise<void>;
2
- //# sourceMappingURL=mcp-serve.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-serve.d.ts","sourceRoot":"","sources":["../../src/commands/mcp-serve.ts"],"names":[],"mappings":"AACA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAIjD"}
@@ -1,7 +0,0 @@
1
- // Thin wrapper that launches the MCP server (invoked by AI tools via .mcp.json)
2
- export async function runMcpServe() {
3
- // Import dynamically to avoid loading MCP SDK for CLI commands
4
- const { startMcpServer } = await import('../mcp/server.js');
5
- await startMcpServer();
6
- }
7
- //# sourceMappingURL=mcp-serve.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-serve.js","sourceRoot":"","sources":["../../src/commands/mcp-serve.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,+DAA+D;IAC/D,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC5D,MAAM,cAAc,EAAE,CAAC;AACzB,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function runStatus(): Promise<void>;
2
- //# sourceMappingURL=status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAKA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAwC/C"}
@@ -1,43 +0,0 @@
1
- import pc from 'picocolors';
2
- import { readCredentials } from '../auth/credentials.js';
3
- import { detectAll } from '../detect/index.js';
4
- import { verifyConnection } from '../verify.js';
5
- export async function runStatus() {
6
- // 1. Read credentials
7
- const credentials = await readCredentials();
8
- if (!credentials) {
9
- console.log(pc.yellow('Not authenticated. Run `getverbal init` to get started.'));
10
- return;
11
- }
12
- // 2. Print authenticated identity
13
- console.log(pc.green('✓') + ` Authenticated as ${pc.bold(credentials.user_email)} (org: ${credentials.org_id})`);
14
- console.log();
15
- // 3. Detect tools
16
- const detections = await detectAll();
17
- const configured = detections.filter((d) => d.detected && d.existingConfig);
18
- const detected = detections.filter((d) => d.detected && !d.existingConfig);
19
- if (configured.length > 0 || detected.length > 0) {
20
- console.log(pc.bold('AI Tools:'));
21
- for (const d of configured) {
22
- console.log(` ${pc.green('✓')} ${d.tool} ${pc.dim('— configured')} ${pc.dim(`(${d.configPath})`)}`);
23
- }
24
- for (const d of detected) {
25
- console.log(` ${pc.dim('○')} ${d.tool} ${pc.dim('— detected but not configured')}`);
26
- }
27
- console.log();
28
- }
29
- else {
30
- console.log(pc.dim('No AI tools configured. Run `getverbal init` to configure them.'));
31
- console.log();
32
- }
33
- // 4. Verify connection — failure is a warning, not fatal
34
- try {
35
- await verifyConnection(credentials);
36
- console.log(pc.green('✓') + ' API connection verified');
37
- }
38
- catch (err) {
39
- const message = err instanceof Error ? err.message : String(err);
40
- console.log(pc.yellow('⚠') + ` Could not verify connection: ${message}`);
41
- }
42
- }
43
- //# sourceMappingURL=status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,sBAAsB;IACtB,MAAM,WAAW,GAAG,MAAM,eAAe,EAAE,CAAC;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,yDAAyD,CAAC,CAAC,CAAC;QAClF,OAAO;IACT,CAAC;IAED,kCAAkC;IAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,qBAAqB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACjH,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,kBAAkB;IAClB,MAAM,UAAU,GAAG,MAAM,SAAS,EAAE,CAAC;IAErC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAE3E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,yDAAyD;IACzD,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,0BAA0B,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,iCAAiC,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function runUninstall(): Promise<void>;
2
- //# sourceMappingURL=uninstall.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAMA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAyClD"}
@@ -1,43 +0,0 @@
1
- import pc from 'picocolors';
2
- import { createInterface } from 'node:readline/promises';
3
- import { clearCredentials } from '../auth/credentials.js';
4
- import { detectAll } from '../detect/index.js';
5
- import { removeVerbalConfig } from '../configure/index.js';
6
- export async function runUninstall() {
7
- // 1. Confirmation prompt — default NO
8
- const rl = createInterface({ input: process.stdin, output: process.stdout });
9
- let answer;
10
- try {
11
- answer = await rl.question(pc.yellow('⚠') +
12
- ' This will remove Verbal from all configured AI tools and delete your credentials. Continue? (y/N) ');
13
- }
14
- finally {
15
- rl.close();
16
- }
17
- if (answer.trim().toLowerCase() !== 'y') {
18
- console.log('Uninstall cancelled.');
19
- return;
20
- }
21
- // 2. Detect tools
22
- const detections = await detectAll();
23
- // 3. Remove config from each detected+configured tool
24
- for (const detection of detections) {
25
- if (!detection.detected || !detection.existingConfig) {
26
- continue;
27
- }
28
- try {
29
- removeVerbalConfig(detection.configPath);
30
- console.log(pc.green('✓') + ` Removed from ${detection.tool} ${pc.dim(`(${detection.configPath})`)}`);
31
- }
32
- catch (err) {
33
- const message = err instanceof Error ? err.message : String(err);
34
- console.log(pc.red('✗') + ` Failed to remove from ${detection.tool}: ${message}`);
35
- }
36
- }
37
- // 4. Clear credentials
38
- await clearCredentials();
39
- console.log(pc.green('✓') + ' Credentials removed');
40
- // 5. Done
41
- console.log(pc.green('✓') + ' Verbal has been uninstalled. Restart your AI tools to complete removal.');
42
- }
43
- //# sourceMappingURL=uninstall.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,sCAAsC;IACtC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CACxB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;YACZ,qGAAqG,CACxG,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IAED,kBAAkB;IAClB,MAAM,UAAU,GAAG,MAAM,SAAS,EAAE,CAAC;IAErC,sDAAsD;IACtD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;YACrD,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,iBAAiB,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,0BAA0B,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,MAAM,gBAAgB,EAAE,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,CAAC;IAEpD,UAAU;IACV,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,0EAA0E,CAAC,CAAC;AAC1G,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function runUpdate(currentVersion: string): Promise<void>;
2
- //# sourceMappingURL=update.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAKA,wBAAsB,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8CrE"}
@@ -1,58 +0,0 @@
1
- import { execSync } from 'node:child_process';
2
- import pc from 'picocolors';
3
- import { readCredentials } from '../auth/credentials.js';
4
- import { compareSemver } from '../version.js';
5
- export async function runUpdate(currentVersion) {
6
- console.log(`\n ${pc.bold('Verbal')} — Update\n`);
7
- // Fetch latest version (blocking — user explicitly asked)
8
- const creds = await readCredentials();
9
- const apiUrl = creds?.api_url || 'https://www.getverbal.ai';
10
- let latest;
11
- try {
12
- const res = await fetch(`${apiUrl}/api/v1/cli/version`);
13
- if (!res.ok)
14
- throw new Error(`HTTP ${res.status}`);
15
- const body = (await res.json());
16
- latest = body.latest;
17
- if (!/^\d+\.\d+\.\d+$/.test(latest)) {
18
- console.error(pc.red(' Server returned an invalid version. Try again later.'));
19
- process.exitCode = 1;
20
- return;
21
- }
22
- }
23
- catch {
24
- console.error(pc.red(' Failed to check for updates. Try again later.'));
25
- process.exitCode = 1;
26
- return;
27
- }
28
- if (compareSemver(currentVersion, latest) >= 0) {
29
- console.log(pc.green(` You're up to date! (v${currentVersion})`));
30
- return;
31
- }
32
- console.log(` ${pc.dim(currentVersion)} → ${pc.green(latest)}\n`);
33
- // Detect package manager
34
- const pm = detectPackageManager();
35
- const installCmd = pm === 'bun' ? `bun install -g getverbal@${latest}` : `npm install -g getverbal@${latest}`;
36
- console.log(` Running: ${pc.dim(installCmd)}`);
37
- try {
38
- execSync(installCmd, { stdio: 'inherit' });
39
- console.log(pc.green(`\n Updated getverbal ${currentVersion} → ${latest}`));
40
- }
41
- catch {
42
- console.error(pc.red(`\n Update failed. Try manually:`));
43
- console.error(` ${pc.cyan(installCmd)}`);
44
- process.exitCode = 1;
45
- }
46
- }
47
- function detectPackageManager() {
48
- try {
49
- const which = execSync('which getverbal', { encoding: 'utf-8' }).trim();
50
- if (which.includes('.bun/'))
51
- return 'bun';
52
- }
53
- catch {
54
- // getverbal not in PATH — default to npm
55
- }
56
- return 'npm';
57
- }
58
- //# sourceMappingURL=update.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { Credentials, DetectionResult } from '../types.js';
2
- /**
3
- * Configures the Verbal MCP server in Claude Code by writing to
4
- * `.mcp.json` in the current working directory.
5
- */
6
- export declare function configureClaudeCode(_detection: DetectionResult, credentials: Credentials, billingType?: 'api' | 'subscription', useGlobal?: boolean): Promise<void>;
7
- //# sourceMappingURL=claude-code.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/configure/claude-code.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGhE;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,eAAe,EAC3B,WAAW,EAAE,WAAW,EACxB,WAAW,CAAC,EAAE,KAAK,GAAG,cAAc,EACpC,SAAS,GAAE,OAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CAGf"}
@@ -1,11 +0,0 @@
1
- import { join } from 'node:path';
2
- import { mergeConfig } from './index.js';
3
- /**
4
- * Configures the Verbal MCP server in Claude Code by writing to
5
- * `.mcp.json` in the current working directory.
6
- */
7
- export async function configureClaudeCode(_detection, credentials, billingType, useGlobal = false) {
8
- const configPath = join(process.cwd(), '.mcp.json');
9
- mergeConfig(configPath, credentials, billingType, useGlobal);
10
- }
11
- //# sourceMappingURL=claude-code.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/configure/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,UAA2B,EAC3B,WAAwB,EACxB,WAAoC,EACpC,YAAqB,KAAK;IAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IACpD,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { Credentials, DetectionResult } from '../types.js';
2
- /**
3
- * Configures the Verbal MCP server in Claude Desktop.
4
- * Writes to the platform-specific claude_desktop_config.json path.
5
- * User must restart Claude Desktop for changes to take effect.
6
- */
7
- export declare function configureClaudeDesktop(_detection: DetectionResult, credentials: Credentials, billingType?: 'api' | 'subscription', useGlobal?: boolean): Promise<void>;
8
- //# sourceMappingURL=claude-desktop.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-desktop.d.ts","sourceRoot":"","sources":["../../src/configure/claude-desktop.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAmBhE;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,eAAe,EAC3B,WAAW,EAAE,WAAW,EACxB,WAAW,CAAC,EAAE,KAAK,GAAG,cAAc,EACpC,SAAS,GAAE,OAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CAGf"}
@@ -1,28 +0,0 @@
1
- import { homedir } from 'node:os';
2
- import { join } from 'node:path';
3
- import { mergeConfig } from './index.js';
4
- /**
5
- * Returns the platform-specific path to claude_desktop_config.json.
6
- * Matches the same logic used in the detect module and setup-wizard.ts.
7
- */
8
- function getConfigPath() {
9
- const platform = process.platform;
10
- if (platform === 'darwin') {
11
- return join(homedir(), 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json');
12
- }
13
- if (platform === 'win32') {
14
- return join(process.env['APPDATA'] ?? homedir(), 'Claude', 'claude_desktop_config.json');
15
- }
16
- // Linux
17
- return join(homedir(), '.config', 'claude', 'claude_desktop_config.json');
18
- }
19
- /**
20
- * Configures the Verbal MCP server in Claude Desktop.
21
- * Writes to the platform-specific claude_desktop_config.json path.
22
- * User must restart Claude Desktop for changes to take effect.
23
- */
24
- export async function configureClaudeDesktop(_detection, credentials, billingType, useGlobal = false) {
25
- const configPath = getConfigPath();
26
- mergeConfig(configPath, credentials, billingType, useGlobal);
27
- }
28
- //# sourceMappingURL=claude-desktop.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-desktop.js","sourceRoot":"","sources":["../../src/configure/claude-desktop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;GAGG;AACH,SAAS,aAAa;IACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,EAAE,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;IAC3F,CAAC;IACD,QAAQ;IACR,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;AAC5E,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAA2B,EAC3B,WAAwB,EACxB,WAAoC,EACpC,YAAqB,KAAK;IAE1B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { Credentials, DetectionResult } from '../types.js';
2
- /**
3
- * Configures the Verbal MCP server in OpenAI Codex CLI.
4
- * Writes to ~/.codex/config.json, preserving any existing MCP server entries.
5
- */
6
- export declare function configureCodex(_detection: DetectionResult, credentials: Credentials, billingType?: 'api' | 'subscription', useGlobal?: boolean): Promise<void>;
7
- //# sourceMappingURL=codex.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/configure/codex.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGhE;;;GAGG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,eAAe,EAC3B,WAAW,EAAE,WAAW,EACxB,WAAW,CAAC,EAAE,KAAK,GAAG,cAAc,EACpC,SAAS,GAAE,OAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CAGf"}
@@ -1,12 +0,0 @@
1
- import { homedir } from 'node:os';
2
- import { join } from 'node:path';
3
- import { mergeConfig } from './index.js';
4
- /**
5
- * Configures the Verbal MCP server in OpenAI Codex CLI.
6
- * Writes to ~/.codex/config.json, preserving any existing MCP server entries.
7
- */
8
- export async function configureCodex(_detection, credentials, billingType, useGlobal = false) {
9
- const configPath = join(homedir(), '.codex', 'config.json');
10
- mergeConfig(configPath, credentials, billingType, useGlobal);
11
- }
12
- //# sourceMappingURL=codex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/configure/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAA2B,EAC3B,WAAwB,EACxB,WAAoC,EACpC,YAAqB,KAAK;IAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC5D,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AAC/D,CAAC"}