@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
- * Google Generative AI SDK hook adapter using custom fetch middleware
3
- *
4
- * Usage:
5
- * ```ts
6
- * import { GoogleGenerativeAI } from '@google/generative-ai';
7
- * import { createGoogleHook } from '@verbal/mcp-service/hooks/google';
8
- *
9
- * const trackedFetch = createGoogleHook(ingestor);
10
- * const genai = new GoogleGenerativeAI({
11
- * apiKey: process.env.GOOGLE_API_KEY,
12
- * fetch: trackedFetch,
13
- * });
14
- * ```
15
- */
16
- export function createGoogleHook(tracker) {
17
- return async (url, init) => {
18
- const startTime = Date.now();
19
- let requestBody = null;
20
- // Capture request body for prompt extraction
21
- if (init?.body && typeof init.body === 'string') {
22
- try {
23
- requestBody = JSON.parse(init.body);
24
- }
25
- catch {
26
- // Ignore parse errors
27
- }
28
- }
29
- // Call original fetch
30
- const response = await fetch(url, init);
31
- // Only track API calls to Google AI/Vertex AI
32
- const urlString = typeof url === 'string' ? url : url instanceof URL ? url.href : url.url;
33
- if (!urlString.includes('generativelanguage.googleapis.com') &&
34
- !urlString.includes('aiplatform.googleapis.com')) {
35
- return response;
36
- }
37
- // Clone response to read body without consuming it
38
- const clonedResponse = response.clone();
39
- try {
40
- const responseBody = await clonedResponse.json();
41
- // Only track successful responses with usage metadata
42
- if (response.ok && responseBody.usageMetadata) {
43
- const promptContent = extractPromptContent(requestBody);
44
- const responseContent = extractResponseContent(responseBody);
45
- const usage = responseBody.usageMetadata;
46
- await tracker.track({
47
- event_type: 'prompt',
48
- provider: 'google',
49
- model: extractModelName(urlString),
50
- tokens_in: usage.promptTokenCount,
51
- tokens_out: usage.candidatesTokenCount,
52
- total_tokens: usage.totalTokenCount,
53
- duration_ms: Date.now() - startTime,
54
- prompt: promptContent,
55
- response: responseContent,
56
- });
57
- }
58
- }
59
- catch (error) {
60
- console.warn('[GoogleHook] Failed to track usage:', error);
61
- }
62
- return response;
63
- };
64
- }
65
- /**
66
- * Extract model name from Google AI URL
67
- */
68
- function extractModelName(url) {
69
- // URL format: .../models/{model-name}:generateContent
70
- const match = url.match(/\/models\/([^/:]+)/);
71
- return match ? match[1] : 'unknown';
72
- }
73
- /**
74
- * Extract prompt content from Google AI request body
75
- */
76
- function extractPromptContent(body) {
77
- if (!body || !body.contents)
78
- return undefined;
79
- const contents = body.contents;
80
- const parts = [];
81
- for (const content of contents) {
82
- if (content.parts && Array.isArray(content.parts)) {
83
- for (const part of content.parts) {
84
- if (part.text) {
85
- parts.push(part.text);
86
- }
87
- }
88
- }
89
- }
90
- return parts.length > 0 ? parts.join('\n') : undefined;
91
- }
92
- /**
93
- * Extract response content from Google AI response body
94
- */
95
- function extractResponseContent(body) {
96
- if (!body.candidates || !Array.isArray(body.candidates) || body.candidates.length === 0) {
97
- return undefined;
98
- }
99
- const candidate = body.candidates[0];
100
- if (!candidate.content?.parts)
101
- return undefined;
102
- return candidate.content.parts
103
- .filter((part) => part.text)
104
- .map((part) => part.text)
105
- .join('');
106
- }
107
- /**
108
- * OpenTelemetry-based tracking for Google AI (advanced)
109
- *
110
- * Usage:
111
- * ```ts
112
- * import { trace } from '@opentelemetry/api';
113
- * import { trackGoogleWithOTel } from '@verbal/mcp-service/hooks/google';
114
- *
115
- * const tracer = trace.getTracer('gemini-client');
116
- * const result = await trackGoogleWithOTel(
117
- * tracer,
118
- * ingestor,
119
- * model,
120
- * async () => model.generateContent(prompt)
121
- * );
122
- * ```
123
- */
124
- export async function trackGoogleWithOTel(tracer, tracker, modelName, operation) {
125
- const span = tracer.startSpan('gemini.generateContent');
126
- const startTime = Date.now();
127
- try {
128
- const result = await operation();
129
- const usage = result.response.usageMetadata;
130
- if (usage) {
131
- // Add usage to OTel span
132
- span.setAttributes({
133
- 'ai.provider': 'google',
134
- 'ai.model': modelName,
135
- 'ai.prompt_tokens': usage.promptTokenCount ?? 0,
136
- 'ai.completion_tokens': usage.candidatesTokenCount ?? 0,
137
- 'ai.total_tokens': usage.totalTokenCount ?? 0,
138
- });
139
- // Track in Verbal
140
- await tracker.track({
141
- event_type: 'usage',
142
- provider: 'google',
143
- model: modelName,
144
- tokens_in: usage.promptTokenCount,
145
- tokens_out: usage.candidatesTokenCount,
146
- total_tokens: usage.totalTokenCount,
147
- duration_ms: Date.now() - startTime,
148
- });
149
- }
150
- span.setStatus({ code: 0 }); // OK
151
- span.end();
152
- return result;
153
- }
154
- catch (error) {
155
- span.recordException(error);
156
- span.setStatus({ code: 2 }); // ERROR
157
- span.end();
158
- throw error;
159
- }
160
- }
161
- //# sourceMappingURL=google.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"google.js","sourceRoot":"","sources":["../../../src/mcp/hooks/google.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Hook adapters for native SDK integration
3
- */
4
- export { createAnthropicHook, attachAnthropicStreamHooks } from './anthropic.js';
5
- export { createOpenAIHooks, createOpenAIFetchHook } from './openai.js';
6
- export { createGoogleHook, trackGoogleWithOTel } from './google.js';
7
- export type { HookTracker } from './types.js';
8
- export type { OpenAIRunHooks } from './openai.js';
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACpE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Hook adapters for native SDK integration
3
- */
4
- export { createAnthropicHook, attachAnthropicStreamHooks } from './anthropic.js';
5
- export { createOpenAIHooks, createOpenAIFetchHook } from './openai.js';
6
- export { createGoogleHook, trackGoogleWithOTel } from './google.js';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,59 +0,0 @@
1
- /**
2
- * OpenAI Agents SDK hook adapter using RunHooks
3
- *
4
- * Usage:
5
- * ```ts
6
- * import { Agent } from 'openai/agents';
7
- * import { createOpenAIHooks } from '@verbal/mcp-service/hooks/openai';
8
- *
9
- * const agent = new Agent({
10
- * name: 'my-agent',
11
- * model: 'gpt-4o',
12
- * hooks: createOpenAIHooks(ingestor),
13
- * });
14
- * ```
15
- */
16
- import type { HookTracker } from './types.js';
17
- export interface OpenAIRunHooks {
18
- onLLMGeneration?: (generation: {
19
- id: string;
20
- model: string;
21
- usage: {
22
- prompt_tokens: number;
23
- completion_tokens: number;
24
- total_tokens: number;
25
- };
26
- input: string;
27
- output: string;
28
- agentName?: string;
29
- runId?: string;
30
- }) => Promise<void>;
31
- onToolCall?: (toolCall: {
32
- name: string;
33
- input: unknown;
34
- output: unknown;
35
- durationMs: number;
36
- }) => Promise<void>;
37
- onRunComplete?: (run: {
38
- id: string;
39
- totalCost: number;
40
- totalTokens: number;
41
- }) => Promise<void>;
42
- }
43
- export declare function createOpenAIHooks(tracker: HookTracker): OpenAIRunHooks;
44
- /**
45
- * Custom fetch hook for standard OpenAI client (non-Agents SDK)
46
- *
47
- * Usage:
48
- * ```ts
49
- * import OpenAI from 'openai';
50
- * import { createOpenAIFetchHook } from '@verbal/mcp-service/hooks/openai';
51
- *
52
- * const client = new OpenAI({
53
- * apiKey: process.env.OPENAI_API_KEY,
54
- * fetch: createOpenAIFetchHook(ingestor),
55
- * });
56
- * ```
57
- */
58
- export declare function createOpenAIFetchHook(tracker: HookTracker): typeof fetch;
59
- //# sourceMappingURL=openai.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/mcp/hooks/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE;QAC7B,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE;YAAE,aAAa,EAAE,MAAM,CAAC;YAAC,iBAAiB,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QAClF,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpB,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAkDtE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,KAAK,CAsDxE"}
@@ -1,158 +0,0 @@
1
- /**
2
- * OpenAI Agents SDK hook adapter using RunHooks
3
- *
4
- * Usage:
5
- * ```ts
6
- * import { Agent } from 'openai/agents';
7
- * import { createOpenAIHooks } from '@verbal/mcp-service/hooks/openai';
8
- *
9
- * const agent = new Agent({
10
- * name: 'my-agent',
11
- * model: 'gpt-4o',
12
- * hooks: createOpenAIHooks(ingestor),
13
- * });
14
- * ```
15
- */
16
- export function createOpenAIHooks(tracker) {
17
- return {
18
- onLLMGeneration: async (generation) => {
19
- await tracker.track({
20
- event_type: 'prompt',
21
- provider: 'openai',
22
- model: generation.model,
23
- tokens_in: generation.usage.prompt_tokens,
24
- tokens_out: generation.usage.completion_tokens,
25
- total_tokens: generation.usage.total_tokens,
26
- request_id: generation.id,
27
- prompt: generation.input,
28
- response: generation.output,
29
- metadata: {
30
- agent_name: generation.agentName,
31
- run_id: generation.runId,
32
- },
33
- });
34
- },
35
- onToolCall: async (toolCall) => {
36
- // Track tool usage as non-LLM event
37
- await tracker.track({
38
- event_type: 'usage',
39
- provider: 'openai',
40
- model: 'tool-execution',
41
- tokens_in: 0,
42
- tokens_out: 0,
43
- total_tokens: 0,
44
- duration_ms: toolCall.durationMs,
45
- metadata: {
46
- tool_name: toolCall.name,
47
- tool_input: toolCall.input,
48
- tool_output: toolCall.output,
49
- tool_provenance: {
50
- mcp_server: process.env.VERBAL_MCP_SERVER_NAME ?? 'verbal',
51
- skill_name: process.env.VERBAL_ACTIVE_SKILL ?? null,
52
- invocation_chain: process.env.VERBAL_INVOCATION_CHAIN ?? null,
53
- },
54
- },
55
- });
56
- },
57
- onRunComplete: async (run) => {
58
- // Optional: log aggregate metrics
59
- console.log(`[OpenAIHook] Run ${run.id} complete: ${run.totalCost} cost, ${run.totalTokens} tokens`);
60
- },
61
- };
62
- }
63
- /**
64
- * Custom fetch hook for standard OpenAI client (non-Agents SDK)
65
- *
66
- * Usage:
67
- * ```ts
68
- * import OpenAI from 'openai';
69
- * import { createOpenAIFetchHook } from '@verbal/mcp-service/hooks/openai';
70
- *
71
- * const client = new OpenAI({
72
- * apiKey: process.env.OPENAI_API_KEY,
73
- * fetch: createOpenAIFetchHook(ingestor),
74
- * });
75
- * ```
76
- */
77
- export function createOpenAIFetchHook(tracker) {
78
- return async (url, init) => {
79
- const startTime = Date.now();
80
- let requestBody = null;
81
- // Capture request body for prompt extraction
82
- if (init?.body && typeof init.body === 'string') {
83
- try {
84
- requestBody = JSON.parse(init.body);
85
- }
86
- catch {
87
- // Ignore parse errors
88
- }
89
- }
90
- // Call original fetch
91
- const response = await fetch(url, init);
92
- // Only track API calls to OpenAI
93
- const urlString = typeof url === 'string' ? url : url instanceof URL ? url.href : url.url;
94
- if (!urlString.includes('openai.com/v1/')) {
95
- return response;
96
- }
97
- // Clone response to read body without consuming it
98
- const clonedResponse = response.clone();
99
- try {
100
- const responseBody = await clonedResponse.json();
101
- // Track chat completions and completions
102
- if (response.ok && responseBody.usage) {
103
- const promptContent = extractPromptContent(requestBody);
104
- const responseContent = extractResponseContent(responseBody);
105
- const usage = responseBody.usage;
106
- await tracker.track({
107
- event_type: 'prompt',
108
- provider: 'openai',
109
- model: responseBody.model,
110
- tokens_in: usage.prompt_tokens,
111
- tokens_out: usage.completion_tokens,
112
- total_tokens: usage.total_tokens,
113
- duration_ms: Date.now() - startTime,
114
- request_id: responseBody.id,
115
- prompt: promptContent,
116
- response: responseContent,
117
- });
118
- }
119
- }
120
- catch (error) {
121
- console.warn('[OpenAIFetchHook] Failed to track usage:', error);
122
- }
123
- return response;
124
- };
125
- }
126
- /**
127
- * Extract prompt content from OpenAI request body
128
- */
129
- function extractPromptContent(body) {
130
- if (!body)
131
- return undefined;
132
- // Chat completions
133
- if (body.messages && Array.isArray(body.messages)) {
134
- return body.messages
135
- .map((msg) => msg.content)
136
- .filter(Boolean)
137
- .join('\n');
138
- }
139
- // Legacy completions
140
- if (body.prompt) {
141
- if (typeof body.prompt === 'string')
142
- return body.prompt;
143
- if (Array.isArray(body.prompt))
144
- return body.prompt.join('\n');
145
- }
146
- return undefined;
147
- }
148
- /**
149
- * Extract response content from OpenAI response body
150
- */
151
- function extractResponseContent(body) {
152
- if (!body.choices || !Array.isArray(body.choices) || body.choices.length === 0) {
153
- return undefined;
154
- }
155
- const choice = body.choices[0];
156
- return choice.message?.content ?? choice.text;
157
- }
158
- //# sourceMappingURL=openai.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/mcp/hooks/openai.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Types for SDK hook adapters
3
- */
4
- import type { UsageEvent } from '../types.js';
5
- export interface HookTracker {
6
- track(event: UsageEvent): Promise<void>;
7
- }
8
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/mcp/hooks/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Types for SDK hook adapters
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mcp/hooks/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Verbal ingestion client with batching, HMAC signing, and retry logic
3
- */
4
- import type { UsageEvent, IngestorConfig, IngestResult } from './types.js';
5
- export declare class VerbalIngestor {
6
- private config;
7
- private eventBuffer;
8
- private flushTimer?;
9
- private readonly runtimeContext;
10
- private readonly gitContext;
11
- constructor(config: IngestorConfig);
12
- track(event: UsageEvent): Promise<void>;
13
- flush(): Promise<IngestResult>;
14
- private buildIngestPayload;
15
- private normalizeProvider;
16
- private isUuid;
17
- private postToIngest;
18
- private sleepWithJitter;
19
- private writeDeadLetter;
20
- destroy(): void;
21
- }
22
- export declare function attachExitHooks(ingestor: VerbalIngestor): void;
23
- //# sourceMappingURL=ingestor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ingestor.d.ts","sourceRoot":"","sources":["../../src/mcp/ingestor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAiB,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM1F,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,UAAU,CAAC,CAAiB;IAEpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2C;IAC1E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0C;gBAEzD,MAAM,EAAE,cAAc;IAiC5B,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA6DvC,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC;IAuBpC,OAAO,CAAC,kBAAkB;IAwE1B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,MAAM;YAMA,YAAY;YAkFZ,eAAe;YAOf,eAAe;IAkB7B,OAAO,IAAI,IAAI;CAMhB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAkB9D"}