@agentmark-ai/cli 0.4.1 → 0.5.2

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 (110) hide show
  1. package/dist/.next/BUILD_ID +1 -1
  2. package/dist/.next/app-build-manifest.json +20 -20
  3. package/dist/.next/build-manifest.json +2 -2
  4. package/dist/.next/cache/.previewinfo +1 -1
  5. package/dist/.next/cache/.rscinfo +1 -1
  6. package/dist/.next/cache/.tsbuildinfo +1 -1
  7. package/dist/.next/cache/config.json +3 -3
  8. package/dist/.next/cache/webpack/client-production/0.pack +0 -0
  9. package/dist/.next/cache/webpack/client-production/index.pack +0 -0
  10. package/dist/.next/cache/webpack/edge-server-production/index.pack +0 -0
  11. package/dist/.next/cache/webpack/server-production/0.pack +0 -0
  12. package/dist/.next/cache/webpack/server-production/index.pack +0 -0
  13. package/dist/.next/prerender-manifest.json +13 -13
  14. package/dist/.next/server/app/_not-found/page.js +1 -1
  15. package/dist/.next/server/app/_not-found/page.js.nft.json +1 -1
  16. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/dist/.next/server/app/_not-found.html +1 -1
  18. package/dist/.next/server/app/_not-found.rsc +5 -5
  19. package/dist/.next/server/app/index.html +1 -1
  20. package/dist/.next/server/app/index.rsc +5 -5
  21. package/dist/.next/server/app/page.js +2 -2
  22. package/dist/.next/server/app/page.js.nft.json +1 -1
  23. package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
  24. package/dist/.next/server/app/requests/page.js +1 -1
  25. package/dist/.next/server/app/requests/page.js.nft.json +1 -1
  26. package/dist/.next/server/app/requests/page_client-reference-manifest.js +1 -1
  27. package/dist/.next/server/app/requests.html +1 -1
  28. package/dist/.next/server/app/requests.rsc +6 -6
  29. package/dist/.next/server/app/sessions/page.js +1 -1
  30. package/dist/.next/server/app/sessions/page.js.nft.json +1 -1
  31. package/dist/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  32. package/dist/.next/server/app/sessions.html +1 -1
  33. package/dist/.next/server/app/sessions.rsc +6 -6
  34. package/dist/.next/server/app/traces/page.js +1 -1
  35. package/dist/.next/server/app/traces/page.js.nft.json +1 -1
  36. package/dist/.next/server/app/traces/page_client-reference-manifest.js +1 -1
  37. package/dist/.next/server/app/traces.html +1 -1
  38. package/dist/.next/server/app/traces.rsc +6 -6
  39. package/dist/.next/server/chunks/116.js +201 -0
  40. package/dist/.next/server/chunks/203.js +140 -0
  41. package/dist/.next/server/chunks/478.js +3 -3
  42. package/dist/.next/server/pages/404.html +1 -1
  43. package/dist/.next/server/pages/500.html +1 -1
  44. package/dist/.next/server/server-reference-manifest.json +1 -1
  45. package/dist/.next/static/chunks/187-8c4e6fed3a2501aa.js +37 -0
  46. package/dist/.next/static/chunks/41-796a19a381fe4101.js +1 -0
  47. package/dist/.next/static/chunks/{602-43031bc535d70796.js → 602-dd355dd113885069.js} +5 -5
  48. package/dist/.next/static/chunks/6b3bb038-04520a4579611038.js +1 -0
  49. package/dist/.next/static/chunks/902-8d8c521535a2c32f.js +3 -0
  50. package/dist/.next/static/chunks/app/requests/{page-410b955e408c67da.js → page-def5e5947295b8c0.js} +1 -1
  51. package/dist/.next/static/chunks/app/sessions/{page-5da4d25ea6c389f5.js → page-1147c0f270492c51.js} +1 -1
  52. package/dist/.next/static/chunks/app/traces/{page-09ec91fb14476bc9.js → page-603ab43acc11ae0b.js} +1 -1
  53. package/dist/.next/static/chunks/baeaa4ff-f55976a85e939da3.js +1 -0
  54. package/dist/.next/trace +54 -52
  55. package/dist/cloudflared/download.d.ts +12 -0
  56. package/dist/cloudflared/download.js +130 -0
  57. package/dist/cloudflared/download.js.map +1 -0
  58. package/dist/cloudflared/index.d.ts +9 -0
  59. package/dist/cloudflared/index.js +20 -0
  60. package/dist/cloudflared/index.js.map +1 -0
  61. package/dist/cloudflared/platform.d.ts +20 -0
  62. package/dist/cloudflared/platform.js +79 -0
  63. package/dist/cloudflared/platform.js.map +1 -0
  64. package/dist/cloudflared/tunnel.d.ts +16 -0
  65. package/dist/cloudflared/tunnel.js +129 -0
  66. package/dist/cloudflared/tunnel.js.map +1 -0
  67. package/dist/cloudflared/types.d.ts +53 -0
  68. package/dist/cloudflared/types.js +8 -0
  69. package/dist/cloudflared/types.js.map +1 -0
  70. package/dist/commands/dev.js +20 -6
  71. package/dist/commands/dev.js.map +1 -1
  72. package/dist/cost-mapping/cost-mapping.js +16 -8
  73. package/dist/cost-mapping/cost-mapping.js.map +1 -1
  74. package/dist/index.js +14 -1
  75. package/dist/index.js.map +1 -1
  76. package/dist/runner-server/core.js +99 -1
  77. package/dist/runner-server/core.js.map +1 -1
  78. package/dist/tunnel.d.ts +3 -16
  79. package/dist/tunnel.js +5 -128
  80. package/dist/tunnel.js.map +1 -1
  81. package/dist/update-notifier/checker.d.ts +26 -0
  82. package/dist/update-notifier/checker.js +142 -0
  83. package/dist/update-notifier/checker.js.map +1 -0
  84. package/dist/update-notifier/constants.d.ts +11 -0
  85. package/dist/update-notifier/constants.js +15 -0
  86. package/dist/update-notifier/constants.js.map +1 -0
  87. package/dist/update-notifier/display.d.ts +24 -0
  88. package/dist/update-notifier/display.js +90 -0
  89. package/dist/update-notifier/display.js.map +1 -0
  90. package/dist/update-notifier/index.d.ts +10 -0
  91. package/dist/update-notifier/index.js +26 -0
  92. package/dist/update-notifier/index.js.map +1 -0
  93. package/dist/update-notifier/types.d.ts +25 -0
  94. package/dist/update-notifier/types.js +6 -0
  95. package/dist/update-notifier/types.js.map +1 -0
  96. package/dist/utils/platform.d.ts +1 -1
  97. package/dist/utils/providers.d.ts +6 -38
  98. package/dist/utils/providers.js +35 -78
  99. package/dist/utils/providers.js.map +1 -1
  100. package/next.config.ts +1 -1
  101. package/package.json +3 -4
  102. package/dist/.next/server/chunks/102.js +0 -198
  103. package/dist/.next/server/chunks/84.js +0 -138
  104. package/dist/.next/static/chunks/41-4385800b3fcae5ef.js +0 -1
  105. package/dist/.next/static/chunks/6b3bb038-67c653ff0a93a5bd.js +0 -1
  106. package/dist/.next/static/chunks/828-4b6f62b1945d5983.js +0 -77
  107. package/dist/.next/static/chunks/902-3615b78f8939e265.js +0 -1
  108. package/dist/.next/static/chunks/baeaa4ff-0a317ff4d32584cd.js +0 -1
  109. /package/dist/.next/static/{YsWMMoO7eekSvkhnayCuF → iK92d_yn3LWPbgKedF2FC}/_buildManifest.js +0 -0
  110. /package/dist/.next/static/{YsWMMoO7eekSvkhnayCuF → iK92d_yn3LWPbgKedF2FC}/_ssgManifest.js +0 -0
@@ -8,21 +8,29 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.getCostFormula = exports.getModelCostMappings = void 0;
16
+ const models_json_1 = __importDefault(require("@agentmark-ai/model-registry/models.json"));
17
+ const overrides_json_1 = __importDefault(require("@agentmark-ai/model-registry/overrides.json"));
18
+ const allModels = Object.assign(Object.assign({}, models_json_1.default.models), overrides_json_1.default.models);
13
19
  let prices = {};
14
- const pricesUrl = "https://raw.githubusercontent.com/agentmark-ai/agentmark/refs/heads/main/packages/cli/cli-src/cost-mapping/pricing.json";
15
20
  const getModelCostMappings = () => __awaiter(void 0, void 0, void 0, function* () {
16
21
  if (Object.keys(prices).length > 0) {
17
22
  return prices;
18
23
  }
19
- // If no prices URL configured, return empty mappings
20
- if (!pricesUrl) {
21
- return prices;
22
- }
23
- const res = yield fetch(pricesUrl);
24
- const data = yield res.json();
25
- prices = data;
24
+ prices = Object.fromEntries(Object.entries(allModels).map(([id, m]) => {
25
+ var _a, _b, _c, _d;
26
+ return [
27
+ id,
28
+ {
29
+ promptPrice: ((_b = (_a = m.pricing) === null || _a === void 0 ? void 0 : _a.inputCostPerToken) !== null && _b !== void 0 ? _b : 0) * 1000,
30
+ completionPrice: ((_d = (_c = m.pricing) === null || _c === void 0 ? void 0 : _c.outputCostPerToken) !== null && _d !== void 0 ? _d : 0) * 1000,
31
+ },
32
+ ];
33
+ }));
26
34
  return prices;
27
35
  });
28
36
  exports.getModelCostMappings = getModelCostMappings;
@@ -1 +1 @@
1
- {"version":3,"file":"cost-mapping.js","sourceRoot":"","sources":["../../cli-src/cost-mapping/cost-mapping.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,IAAI,MAAM,GAAqE,EAAE,CAAC;AAElF,MAAM,SAAS,GAAG,yHAAyH,CAAA;AACpI,MAAM,oBAAoB,GAAG,GAEjC,EAAE;IACH,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,qDAAqD;IACrD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAA;IAClC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IAC7B,MAAM,GAAG,IAAI,CAAA;IACb,OAAO,MAAM,CAAA;AACf,CAAC,CAAA,CAAA;AAdY,QAAA,oBAAoB,wBAchC;AAEM,MAAM,cAAc,GAAG,CAC5B,SAAiB,EACjB,UAAkB,EAClB,SAAiB,EACjB,EAAE;IACF,OAAO,CAAC,WAAmB,EAAE,YAAoB,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC;QACjE,OAAO,IAAI,GAAG,SAAS,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,cAAc,kBASzB"}
1
+ {"version":3,"file":"cost-mapping.js","sourceRoot":"","sources":["../../cli-src/cost-mapping/cost-mapping.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2FAAkE;AAClE,iGAAwE;AAExE,MAAM,SAAS,mCAIT,qBAAkB,CAAC,MAAM,GACzB,wBAAqB,CAAC,MAAM,CACjC,CAAC;AAEF,IAAI,MAAM,GACR,EAAE,CAAC;AAEE,MAAM,oBAAoB,GAAG,GAEjC,EAAE;IACH,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,GAAG,MAAM,CAAC,WAAW,CACzB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;;QAAC,OAAA;YACzC,EAAE;YACF;gBACE,WAAW,EAAE,CAAC,MAAA,MAAA,CAAC,CAAC,OAAO,0CAAE,iBAAiB,mCAAI,CAAC,CAAC,GAAG,IAAI;gBACvD,eAAe,EAAE,CAAC,MAAA,MAAA,CAAC,CAAC,OAAO,0CAAE,kBAAkB,mCAAI,CAAC,CAAC,GAAG,IAAI;aAC7D;SACF,CAAA;KAAA,CAAC,CACH,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAA,CAAC;AAhBW,QAAA,oBAAoB,wBAgB/B;AAEK,MAAM,cAAc,GAAG,CAC5B,SAAiB,EACjB,UAAkB,EAClB,SAAiB,EACjB,EAAE;IACF,OAAO,CAAC,WAAmB,EAAE,YAAoB,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC;QACjE,OAAO,IAAI,GAAG,SAAS,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,cAAc,kBASzB"}
package/dist/index.js CHANGED
@@ -25,6 +25,9 @@ const pull_models_1 = __importDefault(require("./commands/pull-models"));
25
25
  const run_prompt_1 = __importDefault(require("./commands/run-prompt"));
26
26
  const run_experiment_1 = __importDefault(require("./commands/run-experiment"));
27
27
  const build_1 = __importDefault(require("./commands/build"));
28
+ const update_notifier_1 = require("./update-notifier");
29
+ // Start async update check early (non-blocking)
30
+ const updateCheckPromise = (0, update_notifier_1.startUpdateCheck)();
28
31
  // Read version from package.json
29
32
  const packageJson = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '../package.json'), 'utf-8'));
30
33
  commander_1.program
@@ -123,5 +126,15 @@ commander_1.program
123
126
  commander_1.program.error(error.message);
124
127
  }
125
128
  }));
126
- commander_1.program.parse(process.argv);
129
+ // Parse and run command, then display update notification
130
+ // Using parseAsync ensures notification displays after command completes
131
+ commander_1.program.parseAsync(process.argv).then(() => __awaiter(void 0, void 0, void 0, function* () {
132
+ try {
133
+ const result = yield updateCheckPromise;
134
+ (0, update_notifier_1.displayUpdateNotification)(result);
135
+ }
136
+ catch (_a) {
137
+ // Silent failure - never interrupt CLI due to update check
138
+ }
139
+ }));
127
140
  //# sourceMappingURL=index.js.map
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":"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"}
@@ -15,6 +15,102 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.handleWebhookRequest = handleWebhookRequest;
18
+ /**
19
+ * Get the API server URL for posting scores
20
+ */
21
+ function getApiServerUrl() {
22
+ const port = process.env.AGENTMARK_API_PORT || '9418';
23
+ return `http://localhost:${port}`;
24
+ }
25
+ /**
26
+ * Post a single eval result as a score to the API server
27
+ */
28
+ function postScore(traceId, evalResult) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ var _a, _b;
31
+ const apiUrl = getApiServerUrl();
32
+ // Derive label from passed if not explicitly provided
33
+ const label = (_a = evalResult.label) !== null && _a !== void 0 ? _a : (evalResult.passed !== undefined
34
+ ? (evalResult.passed ? 'PASS' : 'FAIL')
35
+ : 'N/A');
36
+ // Derive score from passed if not explicitly provided
37
+ const score = (_b = evalResult.score) !== null && _b !== void 0 ? _b : (evalResult.passed !== undefined
38
+ ? (evalResult.passed ? 1 : 0)
39
+ : 0);
40
+ try {
41
+ yield fetch(`${apiUrl}/v1/score`, {
42
+ method: 'POST',
43
+ headers: { 'Content-Type': 'application/json' },
44
+ body: JSON.stringify({
45
+ resourceId: traceId,
46
+ score,
47
+ label,
48
+ reason: evalResult.reason || '',
49
+ name: evalResult.name,
50
+ type: 'experiment',
51
+ }),
52
+ });
53
+ }
54
+ catch (_c) {
55
+ // Silently fail - score persistence is best-effort
56
+ }
57
+ });
58
+ }
59
+ /**
60
+ * Wraps a dataset stream to intercept eval results and post them as scores
61
+ */
62
+ function wrapStreamWithScorePosting(originalStream) {
63
+ const reader = originalStream.getReader();
64
+ return new ReadableStream({
65
+ start(controller) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ var _a, _b;
68
+ const decoder = new TextDecoder();
69
+ let buffer = '';
70
+ try {
71
+ while (true) {
72
+ const { done, value } = yield reader.read();
73
+ if (done)
74
+ break;
75
+ // Pass through the chunk
76
+ controller.enqueue(value);
77
+ // Also parse the chunk to extract eval results
78
+ const chunk = typeof value === 'string' ? value : decoder.decode(value, { stream: true });
79
+ buffer += chunk;
80
+ // Process complete lines
81
+ let newlineIndex;
82
+ while ((newlineIndex = buffer.indexOf('\n')) !== -1) {
83
+ const line = buffer.slice(0, newlineIndex);
84
+ buffer = buffer.slice(newlineIndex + 1);
85
+ if (!line.trim())
86
+ continue;
87
+ try {
88
+ const event = JSON.parse(line);
89
+ // Check if this is a dataset event with evals and a traceId
90
+ if (event.type === 'dataset' && event.traceId && ((_b = (_a = event.result) === null || _a === void 0 ? void 0 : _a.evals) === null || _b === void 0 ? void 0 : _b.length) > 0) {
91
+ // Post each eval result as a score (fire and forget)
92
+ for (const evalResult of event.result.evals) {
93
+ postScore(event.traceId, evalResult);
94
+ }
95
+ }
96
+ }
97
+ catch (_c) {
98
+ // Ignore JSON parse errors
99
+ }
100
+ }
101
+ }
102
+ controller.close();
103
+ }
104
+ catch (error) {
105
+ controller.error(error);
106
+ }
107
+ finally {
108
+ reader.releaseLock();
109
+ }
110
+ });
111
+ },
112
+ });
113
+ }
18
114
  /**
19
115
  * Handles a webhook request and returns a platform-agnostic response.
20
116
  * This is the core business logic that all platform adapters use.
@@ -144,9 +240,11 @@ function handleWebhookRequest(request, handler) {
144
240
  // Dataset runs always return streams
145
241
  if (response === null || response === void 0 ? void 0 : response.stream) {
146
242
  console.log(' ✓ Experiment started successfully (streaming)');
243
+ // Wrap the stream to intercept eval results and post them as scores
244
+ const wrappedStream = wrapStreamWithScorePosting(response.stream);
147
245
  return {
148
246
  type: 'stream',
149
- stream: response.stream,
247
+ stream: wrappedStream,
150
248
  headers: response.streamHeaders || { 'AgentMark-Streaming': 'true' }
151
249
  };
152
250
  }
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../cli-src/runner-server/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../cli-src/runner-server/core.ts"],"names":[],"mappings":"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"}
package/dist/tunnel.d.ts CHANGED
@@ -1,19 +1,6 @@
1
1
  /**
2
2
  * Tunnel management for exposing local development servers publicly.
3
- * Uses localtunnel for free, no-auth public access.
3
+ * Uses cloudflared for reliable, no-auth public access via trycloudflare.com.
4
4
  */
5
- export interface TunnelInfo {
6
- url: string;
7
- provider: 'localtunnel';
8
- disconnect: () => Promise<void>;
9
- }
10
- /**
11
- * Creates a public tunnel to a local port using localtunnel.
12
- * Includes retry logic for transient errors.
13
- *
14
- * @param port - Local port to expose
15
- * @param subdomain - Optional subdomain to request (not guaranteed)
16
- * @param maxRetries - Maximum number of retry attempts (default: 3)
17
- * @returns Tunnel information with URL and disconnect function
18
- */
19
- export declare function createTunnel(port: number, subdomain?: string, maxRetries?: number): Promise<TunnelInfo>;
5
+ export { createTunnel } from './cloudflared';
6
+ export type { TunnelInfo } from './cloudflared';
package/dist/tunnel.js CHANGED
@@ -1,134 +1,11 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Tunnel management for exposing local development servers publicly.
4
- * Uses localtunnel for free, no-auth public access.
4
+ * Uses cloudflared for reliable, no-auth public access via trycloudflare.com.
5
5
  */
6
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
- return new (P || (P = Promise))(function (resolve, reject) {
9
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
- step((generator = generator.apply(thisArg, _arguments || [])).next());
13
- });
14
- };
15
- var __importDefault = (this && this.__importDefault) || function (mod) {
16
- return (mod && mod.__esModule) ? mod : { "default": mod };
17
- };
18
6
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.createTunnel = createTunnel;
20
- const localtunnel_1 = __importDefault(require("localtunnel"));
21
- // Error codes that should not be retried
22
- const NON_RETRYABLE_ERRORS = [
23
- 'EACCES', // Permission denied
24
- 'EADDRINUSE', // Port already in use locally
25
- 'ENOTFOUND', // DNS resolution failed
26
- 'ERR_INVALID_ARG', // Invalid arguments
27
- ];
28
- // Error messages that indicate auth/config issues (not retryable)
29
- const NON_RETRYABLE_MESSAGES = [
30
- 'unauthorized',
31
- 'forbidden',
32
- 'invalid subdomain',
33
- 'subdomain is not available',
34
- ];
35
- function isRetryableError(error) {
36
- const errorCode = error.code || '';
37
- const errorMessage = (error.message || '').toLowerCase();
38
- // Check for non-retryable error codes
39
- if (NON_RETRYABLE_ERRORS.includes(errorCode)) {
40
- return false;
41
- }
42
- // Check for non-retryable error messages
43
- for (const msg of NON_RETRYABLE_MESSAGES) {
44
- if (errorMessage.includes(msg)) {
45
- return false;
46
- }
47
- }
48
- // Default to retryable (network issues, timeouts, etc.)
49
- return true;
50
- }
51
- /**
52
- * Creates a public tunnel using localtunnel (free, no auth required).
53
- * Optionally uses a subdomain for consistent URLs.
54
- */
55
- function createLocalTunnel(port, subdomain) {
56
- return __awaiter(this, void 0, void 0, function* () {
57
- try {
58
- const options = { port };
59
- // Try to use subdomain if provided (not guaranteed to be available)
60
- if (subdomain) {
61
- options.subdomain = subdomain;
62
- }
63
- const tunnel = yield (0, localtunnel_1.default)(options);
64
- // Handle tunnel errors
65
- tunnel.on('error', (err) => {
66
- console.error('Localtunnel error:', err);
67
- });
68
- if (!tunnel.url) {
69
- throw new Error('Localtunnel did not return a URL');
70
- }
71
- return {
72
- url: tunnel.url,
73
- provider: 'localtunnel',
74
- disconnect: () => __awaiter(this, void 0, void 0, function* () {
75
- tunnel.close();
76
- })
77
- };
78
- }
79
- catch (error) {
80
- console.error('Localtunnel connection error:', error.message);
81
- throw error;
82
- }
83
- });
84
- }
85
- /**
86
- * Creates a public tunnel to a local port using localtunnel.
87
- * Includes retry logic for transient errors.
88
- *
89
- * @param port - Local port to expose
90
- * @param subdomain - Optional subdomain to request (not guaranteed)
91
- * @param maxRetries - Maximum number of retry attempts (default: 3)
92
- * @returns Tunnel information with URL and disconnect function
93
- */
94
- function createTunnel(port_1, subdomain_1) {
95
- return __awaiter(this, arguments, void 0, function* (port, subdomain, maxRetries = 3) {
96
- let lastError;
97
- for (let attempt = 1; attempt <= maxRetries; attempt++) {
98
- try {
99
- const tunnel = yield createLocalTunnel(port, subdomain);
100
- return tunnel;
101
- }
102
- catch (error) {
103
- lastError = error;
104
- const errorMsg = error.message || String(error);
105
- // Don't retry non-retryable errors
106
- if (!isRetryableError(error)) {
107
- console.error('\n❌ Failed to create tunnel:', errorMsg);
108
- if (error.code === 'EADDRINUSE') {
109
- console.error(`Port ${port} is already in use. Stop the other process or use a different port.\n`);
110
- }
111
- else if (errorMsg.toLowerCase().includes('subdomain')) {
112
- console.error('The requested subdomain is not available. Try a different subdomain or omit it.\n');
113
- }
114
- else {
115
- console.error('This error cannot be resolved by retrying.\n');
116
- }
117
- throw error;
118
- }
119
- // Log retry attempt for retryable errors
120
- if (attempt < maxRetries) {
121
- console.warn(`Tunnel connection attempt ${attempt} failed: ${errorMsg}. Retrying...`);
122
- // Exponential backoff: 1s, 2s, 4s
123
- yield new Promise(resolve => setTimeout(resolve, 1000 * Math.pow(2, attempt - 1)));
124
- }
125
- }
126
- }
127
- // All retries exhausted
128
- const errorMsg = (lastError === null || lastError === void 0 ? void 0 : lastError.message) || String(lastError);
129
- console.error('\n❌ Failed to create tunnel after', maxRetries, 'attempts:', errorMsg);
130
- console.error('Localtunnel connection failed. This is usually temporary - try again in a moment.\n');
131
- throw lastError;
132
- });
133
- }
7
+ exports.createTunnel = void 0;
8
+ // Re-export from cloudflared module for backward compatibility
9
+ var cloudflared_1 = require("./cloudflared");
10
+ Object.defineProperty(exports, "createTunnel", { enumerable: true, get: function () { return cloudflared_1.createTunnel; } });
134
11
  //# sourceMappingURL=tunnel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../cli-src/tunnel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../cli-src/tunnel.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+DAA+D;AAC/D,6CAA6C;AAApC,2GAAA,YAAY,OAAA"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Version checking logic for the update notifier.
3
+ */
4
+ import { UpdateCheckResult } from './types';
5
+ /**
6
+ * Compares two semver strings to determine if latest is newer than current.
7
+ * Returns false for pre-release versions to avoid notifying users to "downgrade".
8
+ */
9
+ export declare function isNewerVersion(current: string, latest: string): boolean;
10
+ /**
11
+ * Gets the current installed version from package.json.
12
+ */
13
+ export declare function getCurrentVersion(): string;
14
+ /**
15
+ * Checks if update notifications are disabled via environment variable.
16
+ */
17
+ export declare function isUpdateCheckDisabled(): boolean;
18
+ /**
19
+ * Fetches the latest version from npm registry.
20
+ */
21
+ export declare function fetchLatestVersion(): Promise<string | null>;
22
+ /**
23
+ * Starts an asynchronous update check.
24
+ * Call early in CLI startup - the network request runs in parallel with command execution.
25
+ */
26
+ export declare function startUpdateCheck(): Promise<UpdateCheckResult>;
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ /**
3
+ * Version checking logic for the update notifier.
4
+ */
5
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
6
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7
+ return new (P || (P = Promise))(function (resolve, reject) {
8
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
9
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
10
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
11
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
12
+ });
13
+ };
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.isNewerVersion = isNewerVersion;
19
+ exports.getCurrentVersion = getCurrentVersion;
20
+ exports.isUpdateCheckDisabled = isUpdateCheckDisabled;
21
+ exports.fetchLatestVersion = fetchLatestVersion;
22
+ exports.startUpdateCheck = startUpdateCheck;
23
+ const https_1 = __importDefault(require("https"));
24
+ const fs_1 = require("fs");
25
+ const path_1 = require("path");
26
+ const constants_1 = require("./constants");
27
+ /**
28
+ * Compares two semver strings to determine if latest is newer than current.
29
+ * Returns false for pre-release versions to avoid notifying users to "downgrade".
30
+ */
31
+ function isNewerVersion(current, latest) {
32
+ // Skip pre-release versions (e.g., "0.3.0-beta.1")
33
+ if (latest.includes('-')) {
34
+ return false;
35
+ }
36
+ const currentParts = current.split('.').map(Number);
37
+ const latestParts = latest.split('.').map(Number);
38
+ if (currentParts.some(isNaN) || latestParts.some(isNaN)) {
39
+ return false;
40
+ }
41
+ while (currentParts.length < 3)
42
+ currentParts.push(0);
43
+ while (latestParts.length < 3)
44
+ latestParts.push(0);
45
+ const [curMajor, curMinor, curPatch] = currentParts;
46
+ const [latMajor, latMinor, latPatch] = latestParts;
47
+ if (latMajor > curMajor)
48
+ return true;
49
+ if (latMajor === curMajor && latMinor > curMinor)
50
+ return true;
51
+ if (latMajor === curMajor && latMinor === curMinor && latPatch > curPatch)
52
+ return true;
53
+ return false;
54
+ }
55
+ /**
56
+ * Gets the current installed version from package.json.
57
+ */
58
+ function getCurrentVersion() {
59
+ try {
60
+ const packageJsonPath = (0, path_1.join)(__dirname, '../../package.json');
61
+ const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf-8'));
62
+ return packageJson.version || '0.0.0';
63
+ }
64
+ catch (_a) {
65
+ return '0.0.0';
66
+ }
67
+ }
68
+ /**
69
+ * Checks if update notifications are disabled via environment variable.
70
+ */
71
+ function isUpdateCheckDisabled() {
72
+ const value = process.env[constants_1.DISABLE_UPDATE_CHECK_ENV];
73
+ return value !== undefined && value !== '' && value !== '0' && value.toLowerCase() !== 'false';
74
+ }
75
+ /**
76
+ * Fetches the latest version from npm registry.
77
+ */
78
+ function fetchLatestVersion() {
79
+ return new Promise((resolve) => {
80
+ const request = https_1.default.get(constants_1.NPM_REGISTRY_URL, { timeout: constants_1.REQUEST_TIMEOUT_MS }, (response) => {
81
+ if (response.statusCode !== 200) {
82
+ resolve(null);
83
+ return;
84
+ }
85
+ let data = '';
86
+ response.on('data', (chunk) => {
87
+ data += chunk;
88
+ });
89
+ response.on('end', () => {
90
+ try {
91
+ const json = JSON.parse(data);
92
+ const latest = json.latest;
93
+ if (typeof latest === 'string' && /^\d+\.\d+\.\d+/.test(latest)) {
94
+ resolve(latest);
95
+ }
96
+ else {
97
+ resolve(null);
98
+ }
99
+ }
100
+ catch (_a) {
101
+ resolve(null);
102
+ }
103
+ });
104
+ });
105
+ request.on('error', () => resolve(null));
106
+ request.on('timeout', () => {
107
+ request.destroy();
108
+ resolve(null);
109
+ });
110
+ });
111
+ }
112
+ /**
113
+ * Starts an asynchronous update check.
114
+ * Call early in CLI startup - the network request runs in parallel with command execution.
115
+ */
116
+ function startUpdateCheck() {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ try {
119
+ if (isUpdateCheckDisabled()) {
120
+ return { status: 'check-disabled' };
121
+ }
122
+ const currentVersion = getCurrentVersion();
123
+ const latestVersion = yield fetchLatestVersion();
124
+ if (!latestVersion) {
125
+ return { status: 'check-failed' };
126
+ }
127
+ const updateAvailable = isNewerVersion(currentVersion, latestVersion);
128
+ const info = {
129
+ currentVersion,
130
+ latestVersion,
131
+ updateAvailable,
132
+ };
133
+ return updateAvailable
134
+ ? { status: 'update-available', info }
135
+ : { status: 'up-to-date', info };
136
+ }
137
+ catch (_a) {
138
+ return { status: 'check-failed' };
139
+ }
140
+ });
141
+ }
142
+ //# sourceMappingURL=checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checker.js","sourceRoot":"","sources":["../../cli-src/update-notifier/checker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Constants for the update notifier module.
3
+ */
4
+ /** Maximum time to wait for npm registry response (3 seconds) */
5
+ export declare const REQUEST_TIMEOUT_MS = 3000;
6
+ /** npm registry endpoint for version info */
7
+ export declare const NPM_REGISTRY_URL = "https://registry.npmjs.org/-/package/@agentmark-ai/cli/dist-tags";
8
+ /** Package name for display in notifications */
9
+ export declare const PACKAGE_NAME = "@agentmark-ai/cli";
10
+ /** Environment variable to disable update checks */
11
+ export declare const DISABLE_UPDATE_CHECK_ENV = "AGENTMARK_NO_UPDATE_NOTIFIER";
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /**
3
+ * Constants for the update notifier module.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DISABLE_UPDATE_CHECK_ENV = exports.PACKAGE_NAME = exports.NPM_REGISTRY_URL = exports.REQUEST_TIMEOUT_MS = void 0;
7
+ /** Maximum time to wait for npm registry response (3 seconds) */
8
+ exports.REQUEST_TIMEOUT_MS = 3000;
9
+ /** npm registry endpoint for version info */
10
+ exports.NPM_REGISTRY_URL = 'https://registry.npmjs.org/-/package/@agentmark-ai/cli/dist-tags';
11
+ /** Package name for display in notifications */
12
+ exports.PACKAGE_NAME = '@agentmark-ai/cli';
13
+ /** Environment variable to disable update checks */
14
+ exports.DISABLE_UPDATE_CHECK_ENV = 'AGENTMARK_NO_UPDATE_NOTIFIER';
15
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../cli-src/update-notifier/constants.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,iEAAiE;AACpD,QAAA,kBAAkB,GAAG,IAAI,CAAC;AAEvC,6CAA6C;AAChC,QAAA,gBAAgB,GAAG,kEAAkE,CAAC;AAEnG,gDAAgD;AACnC,QAAA,YAAY,GAAG,mBAAmB,CAAC;AAEhD,oDAAoD;AACvC,QAAA,wBAAwB,GAAG,8BAA8B,CAAC"}