@agentmark-ai/cli 0.9.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/README.md +143 -1
  2. package/dist/.next/BUILD_ID +1 -1
  3. package/dist/.next/app-build-manifest.json +65 -15
  4. package/dist/.next/app-path-routes-manifest.json +3 -0
  5. package/dist/.next/build-manifest.json +2 -2
  6. package/dist/.next/cache/.previewinfo +1 -1
  7. package/dist/.next/cache/.rscinfo +1 -1
  8. package/dist/.next/cache/.tsbuildinfo +1 -1
  9. package/dist/.next/cache/config.json +3 -3
  10. package/dist/.next/cache/webpack/client-production/0.pack +0 -0
  11. package/dist/.next/cache/webpack/client-production/index.pack +0 -0
  12. package/dist/.next/cache/webpack/edge-server-production/index.pack +0 -0
  13. package/dist/.next/cache/webpack/server-production/0.pack +0 -0
  14. package/dist/.next/cache/webpack/server-production/index.pack +0 -0
  15. package/dist/.next/prerender-manifest.json +61 -13
  16. package/dist/.next/routes-manifest.json +22 -1
  17. package/dist/.next/server/app/_not-found/page.js +1 -1
  18. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/dist/.next/server/app/_not-found.html +1 -1
  20. package/dist/.next/server/app/_not-found.rsc +7 -6
  21. package/dist/.next/server/app/experiments/[id]/page.js +2 -0
  22. package/dist/.next/server/app/experiments/[id]/page.js.nft.json +1 -0
  23. package/dist/.next/server/app/experiments/[id]/page_client-reference-manifest.js +1 -0
  24. package/dist/.next/server/app/experiments/compare/page.js +2 -0
  25. package/dist/.next/server/app/experiments/compare/page.js.nft.json +1 -0
  26. package/dist/.next/server/app/experiments/compare/page_client-reference-manifest.js +1 -0
  27. package/dist/.next/server/app/experiments/compare.html +1 -0
  28. package/dist/.next/server/app/experiments/compare.meta +7 -0
  29. package/dist/.next/server/app/experiments/compare.rsc +24 -0
  30. package/dist/.next/server/app/experiments/page.js +2 -0
  31. package/dist/.next/server/app/experiments/page.js.nft.json +1 -0
  32. package/dist/.next/server/app/experiments/page_client-reference-manifest.js +1 -0
  33. package/dist/.next/server/app/experiments.html +1 -0
  34. package/dist/.next/server/app/experiments.meta +7 -0
  35. package/dist/.next/server/app/experiments.rsc +24 -0
  36. package/dist/.next/server/app/index.html +1 -1
  37. package/dist/.next/server/app/index.rsc +9 -9
  38. package/dist/.next/server/app/page.js +1 -1
  39. package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
  40. package/dist/.next/server/app/requests/page.js +1 -1
  41. package/dist/.next/server/app/requests/page.js.nft.json +1 -1
  42. package/dist/.next/server/app/requests/page_client-reference-manifest.js +1 -1
  43. package/dist/.next/server/app/requests.html +1 -1
  44. package/dist/.next/server/app/requests.rsc +8 -8
  45. package/dist/.next/server/app/sessions/page.js +1 -1
  46. package/dist/.next/server/app/sessions/page.js.nft.json +1 -1
  47. package/dist/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  48. package/dist/.next/server/app/sessions.html +1 -1
  49. package/dist/.next/server/app/sessions.rsc +8 -8
  50. package/dist/.next/server/app/traces/page.js +1 -1
  51. package/dist/.next/server/app/traces/page.js.nft.json +1 -1
  52. package/dist/.next/server/app/traces/page_client-reference-manifest.js +1 -1
  53. package/dist/.next/server/app/traces.html +1 -1
  54. package/dist/.next/server/app/traces.rsc +8 -8
  55. package/dist/.next/server/app-paths-manifest.json +3 -0
  56. package/dist/.next/server/chunks/101.js +1 -0
  57. package/dist/.next/server/chunks/203.js +5 -5
  58. package/dist/.next/server/chunks/225.js +173 -0
  59. package/dist/.next/server/chunks/335.js +1 -0
  60. package/dist/.next/server/chunks/478.js +3 -3
  61. package/dist/.next/server/chunks/547.js +1 -1
  62. package/dist/.next/server/chunks/672.js +1 -0
  63. package/dist/.next/server/chunks/934.js +1 -0
  64. package/dist/.next/server/chunks/936.js +29 -0
  65. package/dist/.next/server/pages/404.html +1 -1
  66. package/dist/.next/server/pages/500.html +1 -1
  67. package/dist/.next/server/server-reference-manifest.json +1 -1
  68. package/dist/.next/static/2NZm040KzCzDPOX6MqoKG/_buildManifest.js +1 -0
  69. package/dist/.next/static/chunks/181-396b329bd35e4de0.js +1 -0
  70. package/dist/.next/static/chunks/349-9266e48c00c8ac76.js +37 -0
  71. package/dist/.next/static/chunks/352-d7aa9d2da963e9e5.js +1 -0
  72. package/dist/.next/static/chunks/41-f512c46d7ea943f6.js +1 -0
  73. package/dist/.next/static/chunks/444-d88bd1e37e750aee.js +1 -0
  74. package/dist/.next/static/chunks/49-6efbcf2b4f20d950.js +1 -0
  75. package/dist/.next/static/chunks/729-21a669506b8ae33c.js +1 -0
  76. package/dist/.next/static/chunks/757-19ef6a21d87937d9.js +1 -0
  77. package/dist/.next/static/chunks/{902-8d8c521535a2c32f.js → 860-75914efffd5add16.js} +1 -1
  78. package/dist/.next/static/chunks/866-87ad78bf0bef953a.js +28 -0
  79. package/dist/.next/static/chunks/app/experiments/[id]/page-1522aa0a86d6d004.js +1 -0
  80. package/dist/.next/static/chunks/app/experiments/compare/page-b99f5e9ebb5488b4.js +1 -0
  81. package/dist/.next/static/chunks/app/experiments/page-e17f8133f9467da7.js +1 -0
  82. package/dist/.next/static/chunks/app/layout-3af953219517dd3e.js +1 -0
  83. package/dist/.next/static/chunks/app/requests/{page-91666bcc2877f9ee.js → page-aa9725ed8b67059b.js} +1 -1
  84. package/dist/.next/static/chunks/app/sessions/{page-679425471f82f56d.js → page-bf2019c391763736.js} +1 -1
  85. package/dist/.next/static/chunks/app/traces/page-c43b6aa5cd13fdf1.js +1 -0
  86. package/dist/.next/trace +56 -54
  87. package/dist/.next/types/app/experiments/[id]/page.ts +84 -0
  88. package/dist/.next/types/app/experiments/compare/page.ts +84 -0
  89. package/dist/.next/types/app/experiments/page.ts +84 -0
  90. package/dist/.next/types/routes.d.ts +4 -1
  91. package/dist/.next/types/validator.ts +27 -0
  92. package/dist/api-server.js +28 -1
  93. package/dist/api-server.js.map +1 -1
  94. package/dist/commands/deploy.d.ts +27 -0
  95. package/dist/commands/deploy.js +223 -0
  96. package/dist/commands/deploy.js.map +1 -0
  97. package/dist/commands/dev.d.ts +0 -1
  98. package/dist/commands/dev.js +79 -66
  99. package/dist/commands/dev.js.map +1 -1
  100. package/dist/commands/run-experiment.js +7 -28
  101. package/dist/commands/run-experiment.js.map +1 -1
  102. package/dist/commands/run-prompt.js +6 -27
  103. package/dist/commands/run-prompt.js.map +1 -1
  104. package/dist/config.d.ts +2 -12
  105. package/dist/config.js +5 -45
  106. package/dist/config.js.map +1 -1
  107. package/dist/connect/job-handler.d.ts +23 -0
  108. package/dist/connect/job-handler.js +187 -0
  109. package/dist/connect/job-handler.js.map +1 -0
  110. package/dist/forwarding/config.js +1 -1
  111. package/dist/forwarding/config.js.map +1 -1
  112. package/dist/index.js +3 -3
  113. package/dist/index.js.map +1 -1
  114. package/dist/runner-server.d.ts +0 -6
  115. package/dist/runner-server.js +3 -39
  116. package/dist/runner-server.js.map +1 -1
  117. package/dist/server/routes/experiments/index.d.ts +31 -0
  118. package/dist/server/routes/experiments/index.js +192 -0
  119. package/dist/server/routes/experiments/index.js.map +1 -0
  120. package/package.json +4 -3
  121. package/dist/.next/server/chunks/525.js +0 -201
  122. package/dist/.next/static/_uH98Yva4C-QS08PL-_0P/_buildManifest.js +0 -1
  123. package/dist/.next/static/chunks/397-361c64519c49911b.js +0 -37
  124. package/dist/.next/static/chunks/41-f3c56d50aeb34db9.js +0 -1
  125. package/dist/.next/static/chunks/602-1f23cff16de7187a.js +0 -28
  126. package/dist/.next/static/chunks/app/layout-eaddb6da201ab019.js +0 -1
  127. package/dist/.next/static/chunks/app/traces/page-15500a82980abfc8.js +0 -1
  128. package/dist/cloudflared/download.d.ts +0 -12
  129. package/dist/cloudflared/download.js +0 -130
  130. package/dist/cloudflared/download.js.map +0 -1
  131. package/dist/cloudflared/index.d.ts +0 -9
  132. package/dist/cloudflared/index.js +0 -20
  133. package/dist/cloudflared/index.js.map +0 -1
  134. package/dist/cloudflared/platform.d.ts +0 -20
  135. package/dist/cloudflared/platform.js +0 -79
  136. package/dist/cloudflared/platform.js.map +0 -1
  137. package/dist/cloudflared/tunnel.d.ts +0 -16
  138. package/dist/cloudflared/tunnel.js +0 -129
  139. package/dist/cloudflared/tunnel.js.map +0 -1
  140. package/dist/cloudflared/types.d.ts +0 -53
  141. package/dist/cloudflared/types.js +0 -8
  142. package/dist/cloudflared/types.js.map +0 -1
  143. package/dist/runner-server/middleware/signature-verification.d.ts +0 -37
  144. package/dist/runner-server/middleware/signature-verification.js +0 -55
  145. package/dist/runner-server/middleware/signature-verification.js.map +0 -1
  146. package/dist/tunnel.d.ts +0 -6
  147. package/dist/tunnel.js +0 -11
  148. package/dist/tunnel.js.map +0 -1
  149. /package/dist/.next/static/{_uH98Yva4C-QS08PL-_0P → 2NZm040KzCzDPOX6MqoKG}/_ssgManifest.js +0 -0
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ /**
3
+ * Job handler for the AgentMark Connect protocol.
4
+ *
5
+ * Receives job messages from the platform via the WebSocketClient,
6
+ * proxies execution to the local webhook server (which runs in a
7
+ * separate child process), and streams results back through the
8
+ * WebSocket connection.
9
+ */
10
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
11
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
12
+ return new (P || (P = Promise))(function (resolve, reject) {
13
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
14
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
15
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
16
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
17
+ });
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.JobHandler = void 0;
21
+ class JobHandler {
22
+ constructor(wsClient, webhookUrl) {
23
+ this.activeJobs = new Map();
24
+ this.wsClient = wsClient;
25
+ this.webhookUrl = webhookUrl;
26
+ }
27
+ /** Returns the IDs of all currently active (in-progress) jobs. */
28
+ getActiveJobIds() {
29
+ return Array.from(this.activeJobs.keys());
30
+ }
31
+ /** Dispatches an incoming platform message to the appropriate handler. */
32
+ handleMessage(message) {
33
+ if (message.type === 'job-cancel') {
34
+ this.handleCancel(message);
35
+ return;
36
+ }
37
+ // Fire-and-forget; errors are sent back over the socket
38
+ this.handleJob(message).catch((err) => {
39
+ console.error('[connect] Unexpected error in job handler:', err instanceof Error ? err.message : String(err));
40
+ });
41
+ }
42
+ // ── Job execution ─────────────────────────────────────────────────────────
43
+ handleJob(message) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ const { jobId, request } = message;
46
+ const abortController = new AbortController();
47
+ this.activeJobs.set(jobId, { abortController });
48
+ try {
49
+ console.log(` [connect] Received ${request.type} job (${jobId.slice(0, 8)}...)`);
50
+ // Forward as an HTTP POST to the local webhook server, matching the
51
+ // same WebhookRequest shape that handleWebhookRequest expects.
52
+ const response = yield fetch(this.webhookUrl, {
53
+ method: 'POST',
54
+ headers: { 'Content-Type': 'application/json' },
55
+ body: JSON.stringify({
56
+ type: request.type,
57
+ data: request.data,
58
+ }),
59
+ signal: abortController.signal,
60
+ });
61
+ if (abortController.signal.aborted)
62
+ return;
63
+ // Check if response is streaming
64
+ const isStreaming = response.headers.get('AgentMark-Streaming') === 'true';
65
+ if (!response.ok && !isStreaming) {
66
+ const errorBody = yield response.text();
67
+ let errorMessage;
68
+ try {
69
+ const parsed = JSON.parse(errorBody);
70
+ errorMessage = parsed.message || parsed.error || errorBody;
71
+ }
72
+ catch (_a) {
73
+ errorMessage = errorBody || `HTTP ${response.status}`;
74
+ }
75
+ this.wsClient.send({
76
+ type: 'job-error',
77
+ jobId,
78
+ error: errorMessage,
79
+ details: `Webhook server returned ${response.status}`,
80
+ });
81
+ return;
82
+ }
83
+ if (isStreaming && response.body) {
84
+ yield this.streamResponse(jobId, response.body, abortController.signal);
85
+ }
86
+ else {
87
+ // Non-streaming JSON response
88
+ const data = yield response.json();
89
+ this.wsClient.send({
90
+ type: 'job-result',
91
+ jobId,
92
+ result: {
93
+ type: data.type || 'text',
94
+ result: data.result,
95
+ traceId: data.traceId || '',
96
+ usage: data.usage,
97
+ },
98
+ });
99
+ console.log(` [connect] Job complete (${jobId.slice(0, 8)}...)`);
100
+ }
101
+ }
102
+ catch (err) {
103
+ if (abortController.signal.aborted) {
104
+ return;
105
+ }
106
+ const message = err instanceof Error ? err.message : String(err);
107
+ const stack = err instanceof Error ? err.stack : undefined;
108
+ this.wsClient.send({
109
+ type: 'job-error',
110
+ jobId,
111
+ error: message,
112
+ details: stack,
113
+ });
114
+ }
115
+ finally {
116
+ this.activeJobs.delete(jobId);
117
+ }
118
+ });
119
+ }
120
+ // ── Stream reading ────────────────────────────────────────────────────────
121
+ streamResponse(jobId, body, signal) {
122
+ return __awaiter(this, void 0, void 0, function* () {
123
+ const reader = body.getReader();
124
+ const decoder = new TextDecoder();
125
+ let lastTraceId = '';
126
+ try {
127
+ while (true) {
128
+ if (signal.aborted) {
129
+ reader.cancel();
130
+ return;
131
+ }
132
+ const { done, value } = yield reader.read();
133
+ if (done)
134
+ break;
135
+ const text = decoder.decode(value, { stream: true });
136
+ // Filter out "done" events (extract traceId) and forward remaining lines
137
+ const lines = text.split('\n');
138
+ const forwardLines = [];
139
+ for (const line of lines) {
140
+ if (!line.trim()) {
141
+ forwardLines.push(line);
142
+ continue;
143
+ }
144
+ try {
145
+ const parsed = JSON.parse(line);
146
+ if (parsed.type === 'done' && parsed.traceId) {
147
+ lastTraceId = parsed.traceId;
148
+ continue; // Strip the "done" event from forwarded data
149
+ }
150
+ }
151
+ catch (_a) {
152
+ // Not valid JSON — forward as-is
153
+ }
154
+ forwardLines.push(line);
155
+ }
156
+ const filtered = forwardLines.join('\n');
157
+ if (filtered.trim()) {
158
+ this.wsClient.send({
159
+ type: 'job-stream-chunk',
160
+ jobId,
161
+ chunk: filtered,
162
+ });
163
+ }
164
+ }
165
+ this.wsClient.send({
166
+ type: 'job-stream-end',
167
+ jobId,
168
+ traceId: lastTraceId,
169
+ });
170
+ console.log(` [connect] Stream complete (${jobId.slice(0, 8)}...)`);
171
+ }
172
+ finally {
173
+ reader.releaseLock();
174
+ }
175
+ });
176
+ }
177
+ // ── Cancellation ──────────────────────────────────────────────────────────
178
+ handleCancel(message) {
179
+ const active = this.activeJobs.get(message.jobId);
180
+ if (active) {
181
+ console.log(` [connect] Cancelling job ${message.jobId.slice(0, 8)}... (${message.reason})`);
182
+ active.abortController.abort();
183
+ }
184
+ }
185
+ }
186
+ exports.JobHandler = JobHandler;
187
+ //# sourceMappingURL=job-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-handler.js","sourceRoot":"","sources":["../../cli-src/connect/job-handler.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ const config_1 = require("../config");
22
22
  */
23
23
  function getConfigPath() {
24
24
  if (process.env.NODE_ENV === 'test' || process.env.VITEST) {
25
- return path_1.default.join(os_1.default.tmpdir(), '.agentmark-dev-config.json');
25
+ return path_1.default.join(os_1.default.tmpdir(), `.agentmark-dev-config-${process.pid}.json`);
26
26
  }
27
27
  const cwd = process.cwd();
28
28
  return path_1.default.join(cwd, '.agentmark', 'dev-config.json');
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../cli-src/forwarding/config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AA4CH,oDAGC;AAMD,oDAIC;AAMD,sDAIC;AAOD,oCAKC;AA7ED,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AACpB,sCAAyD;AAIzD;;;;GAIG;AACH,SAAS,aAAa;IACpB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAC1D,OAAO,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,4BAA4B,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,OAAO,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,MAAmB;IACtC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,YAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB;;IAClC,MAAM,MAAM,GAAG,IAAA,wBAAe,GAAE,CAAC;IACjC,OAAO,MAAA,MAAM,CAAC,UAAU,mCAAI,IAAI,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,UAA4B;IAC/D,MAAM,MAAM,GAAG,IAAA,wBAAe,GAAE,CAAC;IACjC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,WAAW,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB;IACnC,MAAM,MAAM,GAAG,IAAA,wBAAe,GAAE,CAAC;IACjC,OAAO,MAAM,CAAC,UAAU,CAAC;IACzB,WAAW,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,MAAwB;IACnD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../cli-src/forwarding/config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AA4CH,oDAGC;AAMD,oDAIC;AAMD,sDAIC;AAOD,oCAKC;AA7ED,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AACpB,sCAAyD;AAIzD;;;;GAIG;AACH,SAAS,aAAa;IACpB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAC1D,OAAO,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,yBAAyB,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,OAAO,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,MAAmB;IACtC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,YAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB;;IAClC,MAAM,MAAM,GAAG,IAAA,wBAAe,GAAE,CAAC;IACjC,OAAO,MAAA,MAAM,CAAC,UAAU,mCAAI,IAAI,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,UAA4B;IAC/D,MAAM,MAAM,GAAG,IAAA,wBAAe,GAAE,CAAC;IACjC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,WAAW,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB;IACnC,MAAM,MAAM,GAAG,IAAA,wBAAe,GAAE,CAAC;IACjC,OAAO,MAAM,CAAC,UAAU,CAAC;IACzB,WAAW,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,MAAwB;IACnD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC3D,CAAC"}
package/dist/index.js CHANGED
@@ -29,6 +29,7 @@ const build_1 = __importDefault(require("./commands/build"));
29
29
  const login_1 = __importDefault(require("./commands/login"));
30
30
  const logout_1 = __importDefault(require("./commands/logout"));
31
31
  const link_1 = __importDefault(require("./commands/link"));
32
+ const deploy_1 = __importDefault(require("./commands/deploy"));
32
33
  const update_notifier_1 = require("./update-notifier");
33
34
  // Start async update check early (non-blocking)
34
35
  const updateCheckPromise = (0, update_notifier_1.startUpdateCheck)();
@@ -43,8 +44,7 @@ commander_1.program
43
44
  .option("--api-port <number>", "API server port (default: 9418)")
44
45
  .option("--webhook-port <number>", "Webhook server port (default: 9417)")
45
46
  .option("--app-port <number>", "AgentMark UI app port (default: 3000)")
46
- .option("-r, --remote", "Connect to platform (login + link + forwarding + tunnel)")
47
- .option("-t, --tunnel", "Expose webhook server publicly via tunnel")
47
+ .option("-r, --remote", "Connect to platform (WebSocket + forwarding)")
48
48
  .option("--no-forward", "Disable trace forwarding (only relevant with --remote)")
49
49
  .description("Start development servers (API server + webhook + UI app)")
50
50
  .action((options) => __awaiter(void 0, void 0, void 0, function* () {
@@ -53,7 +53,6 @@ commander_1.program
53
53
  webhookPort: options.webhookPort ? parseInt(options.webhookPort, 10) : undefined,
54
54
  appPort: options.appPort ? parseInt(options.appPort, 10) : undefined,
55
55
  remote: options.remote || false,
56
- tunnel: options.tunnel || false,
57
56
  forward: options.forward, // Commander.js --no-forward sets this to false; defaults to true
58
57
  });
59
58
  }));
@@ -183,6 +182,7 @@ commander_1.program
183
182
  commander_1.program.error(error.message);
184
183
  }
185
184
  }));
185
+ commander_1.program.addCommand((0, deploy_1.default)());
186
186
  // Parse and run command, then display update notification
187
187
  // Using parseAsync ensures notification displays after command completes
188
188
  commander_1.program.parseAsync(process.argv).then(() => __awaiter(void 0, void 0, void 0, function* () {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../cli-src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../cli-src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,gDAAgD;AAChD,mCAAgC;AAChC,IAAA,eAAM,GAAE,CAAC;AAET,yCAAoC;AACpC,2BAAkC;AAClC,+BAA4B;AAC5B,yDAAiC;AACjC,+EAAsD;AACtD,iFAAwD;AACxD,yEAAgD;AAChD,uEAA8C;AAC9C,+EAAsD;AACtD,6DAAqC;AACrC,6DAAqC;AACrC,+DAAuC;AACvC,2DAAmC;AACnC,+DAAoD;AACpD,uDAAgF;AAEhF,gDAAgD;AAChD,MAAM,kBAAkB,GAAG,IAAA,kCAAgB,GAAE,CAAC;AAE9C,iCAAiC;AACjC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1F,mBAAO;KACJ,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,4BAA4B,CAAC;KAC3E,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,mDAAmD,CAAC,CAAC;AAEpE,mBAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,CAAC;KAChE,MAAM,CAAC,yBAAyB,EAAE,qCAAqC,CAAC;KACxE,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,CAAC;KACtE,MAAM,CAAC,cAAc,EAAE,8CAA8C,CAAC;KACtE,MAAM,CAAC,cAAc,EAAE,wDAAwD,CAAC;KAChF,WAAW,CAAC,2DAA2D,CAAC;KACxE,MAAM,CAAC,CAAO,OAAO,EAAE,EAAE;IACxB,MAAO,aAAW,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACpE,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAChF,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACpE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,iEAAiE;KAC5F,CAAC,CAAC;AACL,CAAC,CAAA,CAAC,CAAC;AAEL,mBAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,MAAM,CAAC,2BAA2B,EAAE,gCAAgC,EAAE,YAAY,CAAC;KACnF,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;KACpD,MAAM,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;KACxE,MAAM,CAAC,CAAO,OAAO,EAAE,EAAE;IACxB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,MAAO,wBAAqB,CAAC;QAC3B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;AACL,CAAC,CAAA,CAAC,CAAC;AAEL,mBAAO;KACJ,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,yFAAyF,CAAC;KACtG,MAAM,CAAC,uBAAuB,EAAE,wCAAwC,CAAC;KACzE,MAAM,CAAC,CAAO,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAO,yBAAsB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mBAAO,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAA,CAAC,CAAC;AAEL,mBAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,GAAS,EAAE;IACjB,IAAI,CAAC;QACH,MAAO,qBAAkB,EAAE,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mBAAO,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAA,CAAC,CAAC;AAEL,mBAAO;KACJ,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,gBAAgB,EAAE,kEAAkE,CAAC;KAC5F,MAAM,CAAC,gBAAgB,EAAE,mDAAmD,CAAC;KAC7E,MAAM,CAAC,qBAAqB,EAAE,4CAA4C,CAAC;KAC3E,MAAM,CAAC,CAAO,QAAgB,EAAE,OAAgE,EAAE,EAAE;IACnG,IAAI,CAAC;QACH,MAAO,oBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mBAAO,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAA,CAAC,CAAC;AAEL,mBAAO;KACJ,OAAO,CAAC,2BAA2B,CAAC;KACpC,WAAW,CAAC,8DAA8D,CAAC;KAC3E,MAAM,CAAC,gBAAgB,EAAE,kEAAkE,CAAC;KAC5F,MAAM,CAAC,aAAa,EAAE,uCAAuC,CAAC;KAC9D,MAAM,CAAC,mBAAmB,EAAE,4DAA4D,CAAC;KACzF,MAAM,CAAC,uBAAuB,EAAE,oDAAoD,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3F,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IACvE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAC7E,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;KACD,MAAM,CAAC,CAAO,QAAgB,EAAE,OAAqF,EAAE,EAAE;IACxH,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC;QACzC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,gBAAgB,GAAG,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,MAAO,wBAAqB,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7H,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mBAAO,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAA,CAAC,CAAC;AAEL,mBAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,4EAA4E,CAAC;KACzF,MAAM,CAAC,uBAAuB,EAAE,4CAA4C,CAAC;KAC7E,MAAM,CAAC,CAAO,OAAyB,EAAE,EAAE;IAC1C,IAAI,CAAC;QACH,MAAO,eAAa,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mBAAO,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAA,CAAC,CAAC;AAEL,mBAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,kBAAkB,EAAE,kDAAkD,CAAC;KAC9E,MAAM,CAAC,CAAO,OAA6B,EAAE,EAAE;IAC9C,IAAI,CAAC;QACH,MAAO,eAAa,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mBAAO,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAA,CAAC,CAAC;AAEL,mBAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,kBAAkB,EAAE,kDAAkD,CAAC;KAC9E,MAAM,CAAC,CAAO,OAA6B,EAAE,EAAE;IAC9C,IAAI,CAAC;QACH,MAAO,gBAAc,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mBAAO,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAA,CAAC,CAAC;AAEL,mBAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CAAC,iBAAiB,EAAE,8CAA8C,CAAC;KACzE,MAAM,CAAC,kBAAkB,EAAE,kDAAkD,CAAC;KAC9E,MAAM,CAAC,CAAO,OAA6C,EAAE,EAAE;IAC9D,IAAI,CAAC;QACH,MAAO,cAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mBAAO,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAA,CAAC,CAAC;AAEL,mBAAO,CAAC,UAAU,CAAC,IAAA,gBAAmB,GAAE,CAAC,CAAC;AAE1C,0DAA0D;AAC1D,yEAAyE;AACzE,mBAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAS,EAAE;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;QACxC,IAAA,2CAAyB,EAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,WAAM,CAAC;QACP,2DAA2D;IAC7D,CAAC;AACH,CAAC,CAAA,CAAC,CAAC"}
@@ -6,18 +6,12 @@
6
6
  */
7
7
  import { Server } from 'node:http';
8
8
  import type { WebhookHandler } from './runner-server/types';
9
- import { type SignatureVerificationOptions } from './runner-server/middleware/signature-verification';
10
9
  export type { WebhookHandler } from './runner-server/types';
11
10
  export interface WebhookServerOptions {
12
11
  port?: number;
13
12
  handler: WebhookHandler;
14
13
  apiServerUrl?: string;
15
14
  templatesDirectory?: string;
16
- /**
17
- * Webhook signature verification options.
18
- * If not provided, will check AGENTMARK_WEBHOOK_SECRET env var.
19
- */
20
- signatureVerification?: SignatureVerificationOptions;
21
15
  }
22
16
  /**
23
17
  * Creates an HTTP server that wraps a webhook handler instance.
@@ -24,8 +24,6 @@ const express_1 = __importDefault(require("express"));
24
24
  const express_rate_limit_1 = __importDefault(require("express-rate-limit"));
25
25
  const node_http_1 = require("node:http");
26
26
  const core_1 = require("./runner-server/core");
27
- const signature_verification_1 = require("./runner-server/middleware/signature-verification");
28
- const config_1 = require("./config");
29
27
  // Set up rate limiter: 100 requests per 15 minutes per IP
30
28
  const limiter = (0, express_rate_limit_1.default)({
31
29
  windowMs: 15 * 60 * 1000, // 15 minutes
@@ -36,7 +34,7 @@ const limiter = (0, express_rate_limit_1.default)({
36
34
  /**
37
35
  * Creates an Express middleware handler for AgentMark webhook requests.
38
36
  */
39
- function createMiddleware(handler, signatureOptions) {
37
+ function createMiddleware(handler) {
40
38
  return (req, res) => __awaiter(this, void 0, void 0, function* () {
41
39
  try {
42
40
  // Log incoming request
@@ -44,29 +42,6 @@ function createMiddleware(handler, signatureOptions) {
44
42
  const clientIp = req.ip || req.socket.remoteAddress || 'unknown';
45
43
  console.log(`\n[${timestamp}] ${req.method} ${req.path} - ${clientIp}`);
46
44
  const body = req.body || {};
47
- // Verify signature if configured
48
- if (signatureOptions && !(0, signature_verification_1.shouldSkipVerification)(signatureOptions)) {
49
- const headerName = signatureOptions.headerName || 'x-agentmark-signature-256';
50
- const signature = req.headers[headerName.toLowerCase()];
51
- if (!signature) {
52
- console.error(' ❌ 401 Missing signature header');
53
- console.error(` Expected header: ${headerName}`);
54
- console.error(' Ensure the client is sending a signed request with AGENTMARK_WEBHOOK_SECRET.');
55
- return res.status(401).json({
56
- message: `Missing signature header: Expected ${headerName} header for webhook verification`
57
- });
58
- }
59
- const bodyString = typeof body === 'string' ? body : JSON.stringify(body);
60
- const isValid = yield (0, signature_verification_1.verifyWebhookSignature)(bodyString, signature, signatureOptions.secret);
61
- if (!isValid) {
62
- console.error(' ❌ 401 Invalid webhook signature');
63
- console.error(' The signature in the request header does not match.');
64
- return res.status(401).json({
65
- message: 'Invalid webhook signature - signature verification failed'
66
- });
67
- }
68
- console.log(' ✓ Signature verified');
69
- }
70
45
  // Call platform-agnostic core handler
71
46
  const result = yield (0, core_1.handleWebhookRequest)(body, handler);
72
47
  // Handle error responses
@@ -145,19 +120,8 @@ function createMiddleware(handler, signatureOptions) {
145
120
  */
146
121
  function createWebhookServer(options) {
147
122
  return __awaiter(this, void 0, void 0, function* () {
148
- const { port = 9417, handler, signatureVerification } = options;
149
- // Setup signature verification options
150
- let sigOptions = signatureVerification;
151
- if (!sigOptions) {
152
- // Check for env var
153
- const secret = (0, config_1.getWebhookSecret)();
154
- if (secret) {
155
- sigOptions = { secret };
156
- }
157
- }
123
+ const { port = 9417, handler } = options;
158
124
  const app = (0, express_1.default)();
159
- // Trust first proxy hop (for tunnels like ngrok, cloudflare, etc.)
160
- // Using 1 instead of true limits trust to single proxy, more secure for dev
161
125
  app.set('trust proxy', 1);
162
126
  // Parse JSON bodies (up to 10mb)
163
127
  app.use(express_1.default.json({ limit: '10mb' }));
@@ -363,7 +327,7 @@ ${promptsList}
363
327
  `.trim());
364
328
  }));
365
329
  // Mount the webhook handler middleware at POST /
366
- app.post('/', limiter, createMiddleware(handler, sigOptions));
330
+ app.post('/', limiter, createMiddleware(handler));
367
331
  // Create HTTP server and start listening
368
332
  const server = (0, node_http_1.createServer)(app);
369
333
  yield new Promise(resolve => server.listen(port, resolve));
@@ -1 +1 @@
1
- {"version":3,"file":"runner-server.js","sourceRoot":"","sources":["../cli-src/runner-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner-server.js","sourceRoot":"","sources":["../cli-src/runner-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export interface ExperimentSummary {
2
+ id: string;
3
+ name: string;
4
+ promptName: string;
5
+ datasetPath: string;
6
+ itemCount: number;
7
+ avgLatencyMs: number;
8
+ totalCost: number;
9
+ avgScore: number | null;
10
+ createdAt: string;
11
+ }
12
+ export interface ExperimentItem {
13
+ traceId: string;
14
+ itemName: string;
15
+ input: string;
16
+ expectedOutput: string;
17
+ actualOutput: string;
18
+ latencyMs: number;
19
+ cost: number;
20
+ scores: Array<{
21
+ name: string;
22
+ score: number;
23
+ label: string;
24
+ reason: string;
25
+ }>;
26
+ }
27
+ export declare const getExperiments: () => Promise<ExperimentSummary[]>;
28
+ export declare const getExperimentById: (experimentId: string) => Promise<{
29
+ summary: ExperimentSummary;
30
+ items: ExperimentItem[];
31
+ } | null>;
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.getExperimentById = exports.getExperiments = void 0;
16
+ const database_1 = __importDefault(require("../../database"));
17
+ const getExperiments = () => __awaiter(void 0, void 0, void 0, function* () {
18
+ // Root spans have dataset metadata; child spans with Model set have cost/promptName.
19
+ // Use Model != '' instead of Type = 'GENERATION' since type classification may not
20
+ // match for all SDK versions (e.g. OpenTelemetry GenAI vs Vercel AI SDK conventions).
21
+ // Scores are stored with resource_id = TraceId (not SpanId).
22
+ const sql = `
23
+ SELECT
24
+ root.DatasetRunId AS id,
25
+ COALESCE(NULLIF(root.DatasetRunName, ''), root.DatasetRunId) AS name,
26
+ COALESCE(MAX(NULLIF(gen.PromptName, '')), MAX(NULLIF(root.PromptName, ''))) AS promptName,
27
+ MAX(NULLIF(root.DatasetPath, '')) AS datasetPath,
28
+ COUNT(DISTINCT root.TraceId) AS itemCount,
29
+ AVG(root.Duration) AS avgLatencyMs,
30
+ COALESCE(SUM(gen.item_cost), 0.0) AS totalCost,
31
+ MIN(root.CreatedAt) AS createdAt
32
+ FROM traces root
33
+ LEFT JOIN (
34
+ SELECT TraceId,
35
+ SUM(COALESCE(Cost, 0.0)) AS item_cost,
36
+ MAX(NULLIF(PromptName, '')) AS PromptName
37
+ FROM traces
38
+ WHERE Model IS NOT NULL AND Model != ''
39
+ GROUP BY TraceId
40
+ ) gen ON gen.TraceId = root.TraceId
41
+ WHERE root.DatasetRunId IS NOT NULL
42
+ AND root.DatasetRunId != ''
43
+ AND root.ParentSpanId IS NULL
44
+ GROUP BY root.DatasetRunId
45
+ ORDER BY MIN(root.CreatedAt) DESC
46
+ `;
47
+ const rows = database_1.default.prepare(sql).all();
48
+ // Fetch average scores — scores.resource_id stores the OTEL TraceId
49
+ return rows.map((row) => {
50
+ var _a;
51
+ const scoresSql = `
52
+ SELECT AVG(s.score) AS avg_score
53
+ FROM scores s
54
+ WHERE s.resource_id IN (
55
+ SELECT DISTINCT TraceId FROM traces WHERE DatasetRunId = ?
56
+ )
57
+ `;
58
+ const scoreRow = database_1.default.prepare(scoresSql).get(row.id);
59
+ return {
60
+ id: row.id,
61
+ name: row.name,
62
+ promptName: row.promptName || "",
63
+ datasetPath: row.datasetPath || "",
64
+ itemCount: row.itemCount,
65
+ avgLatencyMs: Math.round(row.avgLatencyMs || 0),
66
+ totalCost: row.totalCost || 0,
67
+ avgScore: (_a = scoreRow === null || scoreRow === void 0 ? void 0 : scoreRow.avg_score) !== null && _a !== void 0 ? _a : null,
68
+ createdAt: row.createdAt,
69
+ };
70
+ });
71
+ });
72
+ exports.getExperiments = getExperiments;
73
+ const getExperimentById = (experimentId) => __awaiter(void 0, void 0, void 0, function* () {
74
+ var _a;
75
+ // Summary: root spans for dataset metadata, JOIN child model spans for cost/promptName
76
+ const summarySql = `
77
+ SELECT
78
+ root.DatasetRunId AS id,
79
+ COALESCE(NULLIF(root.DatasetRunName, ''), root.DatasetRunId) AS name,
80
+ COALESCE(MAX(NULLIF(gen.PromptName, '')), MAX(NULLIF(root.PromptName, ''))) AS promptName,
81
+ MAX(NULLIF(root.DatasetPath, '')) AS datasetPath,
82
+ COUNT(DISTINCT root.TraceId) AS itemCount,
83
+ AVG(root.Duration) AS avgLatencyMs,
84
+ COALESCE(SUM(gen.item_cost), 0.0) AS totalCost,
85
+ MIN(root.CreatedAt) AS createdAt
86
+ FROM traces root
87
+ LEFT JOIN (
88
+ SELECT TraceId,
89
+ SUM(COALESCE(Cost, 0.0)) AS item_cost,
90
+ MAX(NULLIF(PromptName, '')) AS PromptName
91
+ FROM traces
92
+ WHERE Model IS NOT NULL AND Model != ''
93
+ GROUP BY TraceId
94
+ ) gen ON gen.TraceId = root.TraceId
95
+ WHERE root.DatasetRunId = ?
96
+ AND root.ParentSpanId IS NULL
97
+ GROUP BY root.DatasetRunId
98
+ `;
99
+ const summaryRow = database_1.default.prepare(summarySql).get(experimentId);
100
+ if (!summaryRow)
101
+ return null;
102
+ // Scores use resource_id = TraceId (OTEL trace ID)
103
+ const scoresSql = `
104
+ SELECT AVG(s.score) AS avg_score
105
+ FROM scores s
106
+ WHERE s.resource_id IN (
107
+ SELECT DISTINCT TraceId FROM traces WHERE DatasetRunId = ?
108
+ )
109
+ `;
110
+ const scoreRow = database_1.default.prepare(scoresSql).get(experimentId);
111
+ const summary = {
112
+ id: summaryRow.id,
113
+ name: summaryRow.name,
114
+ promptName: summaryRow.promptName || "",
115
+ datasetPath: summaryRow.datasetPath || "",
116
+ itemCount: summaryRow.itemCount,
117
+ avgLatencyMs: Math.round(summaryRow.avgLatencyMs || 0),
118
+ totalCost: summaryRow.totalCost || 0,
119
+ avgScore: (_a = scoreRow === null || scoreRow === void 0 ? void 0 : scoreRow.avg_score) !== null && _a !== void 0 ? _a : null,
120
+ createdAt: summaryRow.createdAt,
121
+ };
122
+ // Items: root span for dataset metadata, JOIN child model spans for input/output/cost.
123
+ // Input/Output may be in normalized columns (Vercel AI SDK) or in SpanAttributes JSON
124
+ // as gen_ai.prompt / gen_ai.completion (OpenTelemetry GenAI conventions).
125
+ const itemsSql = `
126
+ SELECT
127
+ root.TraceId AS traceId,
128
+ COALESCE(NULLIF(root.DatasetItemName, ''), root.SpanName, 'Item') AS itemName,
129
+ COALESCE(
130
+ NULLIF(gen.input, ''),
131
+ NULLIF(gen.genai_input, ''),
132
+ NULLIF(root.Input, ''),
133
+ ''
134
+ ) AS input,
135
+ COALESCE(root.DatasetExpectedOutput, '') AS expectedOutput,
136
+ COALESCE(
137
+ NULLIF(gen.output, ''),
138
+ NULLIF(gen.outputObject, ''),
139
+ NULLIF(gen.genai_output, ''),
140
+ NULLIF(root.Output, ''),
141
+ NULLIF(root.OutputObject, ''),
142
+ ''
143
+ ) AS actualOutput,
144
+ COALESCE(root.Duration, 0) AS latencyMs,
145
+ COALESCE(gen.item_cost, root.Cost, 0.0) AS cost
146
+ FROM traces root
147
+ LEFT JOIN (
148
+ SELECT TraceId,
149
+ MAX(Input) AS input,
150
+ MAX(Output) AS output,
151
+ MAX(OutputObject) AS outputObject,
152
+ SUM(COALESCE(Cost, 0.0)) AS item_cost,
153
+ MAX(json_extract(SpanAttributes, '$."gen_ai.prompt"')) AS genai_input,
154
+ MAX(json_extract(SpanAttributes, '$."gen_ai.completion"')) AS genai_output
155
+ FROM traces
156
+ WHERE Model IS NOT NULL AND Model != ''
157
+ GROUP BY TraceId
158
+ ) gen ON gen.TraceId = root.TraceId
159
+ WHERE root.DatasetRunId = ?
160
+ AND root.ParentSpanId IS NULL
161
+ ORDER BY CAST(root.Timestamp AS REAL) ASC
162
+ `;
163
+ const itemRows = database_1.default.prepare(itemsSql).all(experimentId);
164
+ const items = itemRows.map((item) => {
165
+ // Scores use resource_id = TraceId (OTEL trace ID, not SpanId)
166
+ const itemScoresSql = `
167
+ SELECT name, score, label, reason
168
+ FROM scores
169
+ WHERE resource_id = ?
170
+ ORDER BY created_at ASC
171
+ `;
172
+ const itemScores = database_1.default.prepare(itemScoresSql).all(item.traceId);
173
+ return {
174
+ traceId: item.traceId,
175
+ itemName: item.itemName,
176
+ input: item.input,
177
+ expectedOutput: item.expectedOutput,
178
+ actualOutput: item.actualOutput,
179
+ latencyMs: item.latencyMs,
180
+ cost: item.cost,
181
+ scores: itemScores.map((s) => ({
182
+ name: s.name,
183
+ score: s.score,
184
+ label: s.label,
185
+ reason: s.reason,
186
+ })),
187
+ };
188
+ });
189
+ return { summary, items };
190
+ });
191
+ exports.getExperimentById = getExperimentById;
192
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../cli-src/server/routes/experiments/index.ts"],"names":[],"mappings":"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"}