@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.
- package/dist/.next/BUILD_ID +1 -1
- package/dist/.next/app-build-manifest.json +20 -20
- package/dist/.next/build-manifest.json +2 -2
- package/dist/.next/cache/.previewinfo +1 -1
- package/dist/.next/cache/.rscinfo +1 -1
- package/dist/.next/cache/.tsbuildinfo +1 -1
- package/dist/.next/cache/config.json +3 -3
- package/dist/.next/cache/webpack/client-production/0.pack +0 -0
- package/dist/.next/cache/webpack/client-production/index.pack +0 -0
- package/dist/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/dist/.next/cache/webpack/server-production/0.pack +0 -0
- package/dist/.next/cache/webpack/server-production/index.pack +0 -0
- package/dist/.next/prerender-manifest.json +13 -13
- package/dist/.next/server/app/_not-found/page.js +1 -1
- package/dist/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found.html +1 -1
- package/dist/.next/server/app/_not-found.rsc +5 -5
- package/dist/.next/server/app/index.html +1 -1
- package/dist/.next/server/app/index.rsc +5 -5
- package/dist/.next/server/app/page.js +2 -2
- package/dist/.next/server/app/page.js.nft.json +1 -1
- package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/requests/page.js +1 -1
- package/dist/.next/server/app/requests/page.js.nft.json +1 -1
- package/dist/.next/server/app/requests/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/requests.html +1 -1
- package/dist/.next/server/app/requests.rsc +6 -6
- package/dist/.next/server/app/sessions/page.js +1 -1
- package/dist/.next/server/app/sessions/page.js.nft.json +1 -1
- package/dist/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/sessions.html +1 -1
- package/dist/.next/server/app/sessions.rsc +6 -6
- package/dist/.next/server/app/traces/page.js +1 -1
- package/dist/.next/server/app/traces/page.js.nft.json +1 -1
- package/dist/.next/server/app/traces/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/traces.html +1 -1
- package/dist/.next/server/app/traces.rsc +6 -6
- package/dist/.next/server/chunks/116.js +201 -0
- package/dist/.next/server/chunks/203.js +140 -0
- package/dist/.next/server/chunks/478.js +3 -3
- package/dist/.next/server/pages/404.html +1 -1
- package/dist/.next/server/pages/500.html +1 -1
- package/dist/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/static/chunks/187-8c4e6fed3a2501aa.js +37 -0
- package/dist/.next/static/chunks/41-796a19a381fe4101.js +1 -0
- package/dist/.next/static/chunks/{602-43031bc535d70796.js → 602-dd355dd113885069.js} +5 -5
- package/dist/.next/static/chunks/6b3bb038-04520a4579611038.js +1 -0
- package/dist/.next/static/chunks/902-8d8c521535a2c32f.js +3 -0
- package/dist/.next/static/chunks/app/requests/{page-410b955e408c67da.js → page-def5e5947295b8c0.js} +1 -1
- package/dist/.next/static/chunks/app/sessions/{page-5da4d25ea6c389f5.js → page-1147c0f270492c51.js} +1 -1
- package/dist/.next/static/chunks/app/traces/{page-09ec91fb14476bc9.js → page-603ab43acc11ae0b.js} +1 -1
- package/dist/.next/static/chunks/baeaa4ff-f55976a85e939da3.js +1 -0
- package/dist/.next/trace +54 -52
- package/dist/cloudflared/download.d.ts +12 -0
- package/dist/cloudflared/download.js +130 -0
- package/dist/cloudflared/download.js.map +1 -0
- package/dist/cloudflared/index.d.ts +9 -0
- package/dist/cloudflared/index.js +20 -0
- package/dist/cloudflared/index.js.map +1 -0
- package/dist/cloudflared/platform.d.ts +20 -0
- package/dist/cloudflared/platform.js +79 -0
- package/dist/cloudflared/platform.js.map +1 -0
- package/dist/cloudflared/tunnel.d.ts +16 -0
- package/dist/cloudflared/tunnel.js +129 -0
- package/dist/cloudflared/tunnel.js.map +1 -0
- package/dist/cloudflared/types.d.ts +53 -0
- package/dist/cloudflared/types.js +8 -0
- package/dist/cloudflared/types.js.map +1 -0
- package/dist/commands/dev.js +20 -6
- package/dist/commands/dev.js.map +1 -1
- package/dist/cost-mapping/cost-mapping.js +16 -8
- package/dist/cost-mapping/cost-mapping.js.map +1 -1
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/dist/runner-server/core.js +99 -1
- package/dist/runner-server/core.js.map +1 -1
- package/dist/tunnel.d.ts +3 -16
- package/dist/tunnel.js +5 -128
- package/dist/tunnel.js.map +1 -1
- package/dist/update-notifier/checker.d.ts +26 -0
- package/dist/update-notifier/checker.js +142 -0
- package/dist/update-notifier/checker.js.map +1 -0
- package/dist/update-notifier/constants.d.ts +11 -0
- package/dist/update-notifier/constants.js +15 -0
- package/dist/update-notifier/constants.js.map +1 -0
- package/dist/update-notifier/display.d.ts +24 -0
- package/dist/update-notifier/display.js +90 -0
- package/dist/update-notifier/display.js.map +1 -0
- package/dist/update-notifier/index.d.ts +10 -0
- package/dist/update-notifier/index.js +26 -0
- package/dist/update-notifier/index.js.map +1 -0
- package/dist/update-notifier/types.d.ts +25 -0
- package/dist/update-notifier/types.js +6 -0
- package/dist/update-notifier/types.js.map +1 -0
- package/dist/utils/platform.d.ts +1 -1
- package/dist/utils/providers.d.ts +6 -38
- package/dist/utils/providers.js +35 -78
- package/dist/utils/providers.js.map +1 -1
- package/next.config.ts +1 -1
- package/package.json +3 -4
- package/dist/.next/server/chunks/102.js +0 -198
- package/dist/.next/server/chunks/84.js +0 -138
- package/dist/.next/static/chunks/41-4385800b3fcae5ef.js +0 -1
- package/dist/.next/static/chunks/6b3bb038-67c653ff0a93a5bd.js +0 -1
- package/dist/.next/static/chunks/828-4b6f62b1945d5983.js +0 -77
- package/dist/.next/static/chunks/902-3615b78f8939e265.js +0 -1
- package/dist/.next/static/chunks/baeaa4ff-0a317ff4d32584cd.js +0 -1
- /package/dist/.next/static/{YsWMMoO7eekSvkhnayCuF → iK92d_yn3LWPbgKedF2FC}/_buildManifest.js +0 -0
- /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
|
-
|
|
20
|
-
|
|
21
|
-
return
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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":"
|
|
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
|
-
|
|
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":";;;;;;;;;;;;;;;AAEA,gDAAgD;AAChD,mCAAgC;AAChC,IAAA,eAAM,GAAE,CAAC;AAET,yCAAoC;AACpC,2BAAkC;AAClC,+BAA4B;AAC5B,yDAAiC;AACjC,+EAAsD;AACtD,yEAAgD;AAChD,uEAA8C;AAC9C,+EAAsD;AACtD,6DAAqC;
|
|
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:
|
|
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":";AAAA;;;;GAIG;;;;;;;;;;;
|
|
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
|
|
3
|
+
* Uses cloudflared for reliable, no-auth public access via trycloudflare.com.
|
|
4
4
|
*/
|
|
5
|
-
export
|
|
6
|
-
|
|
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
|
|
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 =
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
package/dist/tunnel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../cli-src/tunnel.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
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"}
|