@rk0429/agentic-relay 1.4.0 → 1.4.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/relay.mjs +70 -44
- package/package.json +1 -1
package/dist/relay.mjs
CHANGED
|
@@ -160,6 +160,47 @@ var init_metadata_validation = __esm({
|
|
|
160
160
|
}
|
|
161
161
|
});
|
|
162
162
|
|
|
163
|
+
// src/infrastructure/version-check.ts
|
|
164
|
+
async function getLatestNpmVersion(packageName) {
|
|
165
|
+
try {
|
|
166
|
+
const response = await fetch(
|
|
167
|
+
`https://registry.npmjs.org/${packageName}/latest`,
|
|
168
|
+
{
|
|
169
|
+
headers: { Accept: "application/json" },
|
|
170
|
+
signal: AbortSignal.timeout(5e3)
|
|
171
|
+
}
|
|
172
|
+
);
|
|
173
|
+
if (!response.ok) {
|
|
174
|
+
logger.debug(
|
|
175
|
+
`npm registry returned ${response.status} for ${packageName}`
|
|
176
|
+
);
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
const data = await response.json();
|
|
180
|
+
return data.version ?? null;
|
|
181
|
+
} catch (error) {
|
|
182
|
+
logger.debug(
|
|
183
|
+
`Failed to check npm registry: ${error instanceof Error ? error.message : String(error)}`
|
|
184
|
+
);
|
|
185
|
+
return null;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
function compareSemver(a, b) {
|
|
189
|
+
const partsA = a.replace(/^v/, "").split(".").map(Number);
|
|
190
|
+
const partsB = b.replace(/^v/, "").split(".").map(Number);
|
|
191
|
+
for (let i = 0; i < 3; i++) {
|
|
192
|
+
const diff = (partsA[i] ?? 0) - (partsB[i] ?? 0);
|
|
193
|
+
if (diff !== 0) return diff;
|
|
194
|
+
}
|
|
195
|
+
return 0;
|
|
196
|
+
}
|
|
197
|
+
var init_version_check = __esm({
|
|
198
|
+
"src/infrastructure/version-check.ts"() {
|
|
199
|
+
"use strict";
|
|
200
|
+
init_logger();
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
|
|
163
204
|
// src/mcp-server/deferred-cleanup-task-store.ts
|
|
164
205
|
import { isTerminal } from "@modelcontextprotocol/sdk/experimental/tasks/interfaces.js";
|
|
165
206
|
import { randomBytes } from "crypto";
|
|
@@ -2330,6 +2371,7 @@ var init_server = __esm({
|
|
|
2330
2371
|
init_backend_selector();
|
|
2331
2372
|
init_metadata_validation();
|
|
2332
2373
|
init_logger();
|
|
2374
|
+
init_version_check();
|
|
2333
2375
|
init_types();
|
|
2334
2376
|
init_response_formatter();
|
|
2335
2377
|
spawnAgentsParallelInputShape = {
|
|
@@ -2378,7 +2420,7 @@ var init_server = __esm({
|
|
|
2378
2420
|
this.agentEventStore
|
|
2379
2421
|
);
|
|
2380
2422
|
this.server = new McpServer(
|
|
2381
|
-
{ name: "agentic-relay", version: "1.4.
|
|
2423
|
+
{ name: "agentic-relay", version: "1.4.2" },
|
|
2382
2424
|
createMcpServerOptions()
|
|
2383
2425
|
);
|
|
2384
2426
|
this.registerTools(this.server);
|
|
@@ -2782,8 +2824,25 @@ var init_server = __esm({
|
|
|
2782
2824
|
}
|
|
2783
2825
|
);
|
|
2784
2826
|
}
|
|
2827
|
+
async checkForUpdates(currentVersion) {
|
|
2828
|
+
try {
|
|
2829
|
+
const latest = await getLatestNpmVersion("@rk0429/agentic-relay");
|
|
2830
|
+
if (latest && compareSemver(latest, currentVersion) > 0) {
|
|
2831
|
+
logger.warn(
|
|
2832
|
+
`A newer version of @rk0429/agentic-relay is available: ${latest} (current: ${currentVersion})`
|
|
2833
|
+
);
|
|
2834
|
+
logger.warn(
|
|
2835
|
+
" Run: npm install -g @rk0429/agentic-relay@latest"
|
|
2836
|
+
);
|
|
2837
|
+
}
|
|
2838
|
+
} catch {
|
|
2839
|
+
}
|
|
2840
|
+
}
|
|
2785
2841
|
async start(options) {
|
|
2786
2842
|
const transportType = options?.transport ?? "stdio";
|
|
2843
|
+
if (options?.currentVersion) {
|
|
2844
|
+
void this.checkForUpdates(options.currentVersion);
|
|
2845
|
+
}
|
|
2787
2846
|
if (transportType === "stdio") {
|
|
2788
2847
|
redirectToStderr();
|
|
2789
2848
|
logger.info("Starting agentic-relay MCP server (stdio transport)...");
|
|
@@ -2849,7 +2908,7 @@ var init_server = __esm({
|
|
|
2849
2908
|
sessionIdGenerator: () => randomUUID()
|
|
2850
2909
|
});
|
|
2851
2910
|
const server = new McpServer(
|
|
2852
|
-
{ name: "agentic-relay", version: "1.4.
|
|
2911
|
+
{ name: "agentic-relay", version: "1.4.2" },
|
|
2853
2912
|
createMcpServerOptions()
|
|
2854
2913
|
);
|
|
2855
2914
|
this.registerTools(server);
|
|
@@ -3058,7 +3117,7 @@ var init_conversation_engine = __esm({
|
|
|
3058
3117
|
return { ...this.totalTokens };
|
|
3059
3118
|
}
|
|
3060
3119
|
/** バックエンドを切り替え、新セッションを初期化 */
|
|
3061
|
-
async switchBackend(newBackendId, contextSummary,
|
|
3120
|
+
async switchBackend(newBackendId, contextSummary, _resumeSessionId) {
|
|
3062
3121
|
if (this.sessionId) {
|
|
3063
3122
|
await this.sessionManager.update(this.sessionId, {
|
|
3064
3123
|
status: "completed"
|
|
@@ -6982,45 +7041,8 @@ function createBackendCommand(backendId, registry2, sessionManager2, hooksEngine
|
|
|
6982
7041
|
|
|
6983
7042
|
// src/commands/update.ts
|
|
6984
7043
|
init_logger();
|
|
7044
|
+
init_version_check();
|
|
6985
7045
|
import { defineCommand as defineCommand2 } from "citty";
|
|
6986
|
-
|
|
6987
|
-
// src/infrastructure/version-check.ts
|
|
6988
|
-
init_logger();
|
|
6989
|
-
async function getLatestNpmVersion(packageName) {
|
|
6990
|
-
try {
|
|
6991
|
-
const response = await fetch(
|
|
6992
|
-
`https://registry.npmjs.org/${packageName}/latest`,
|
|
6993
|
-
{
|
|
6994
|
-
headers: { Accept: "application/json" },
|
|
6995
|
-
signal: AbortSignal.timeout(5e3)
|
|
6996
|
-
}
|
|
6997
|
-
);
|
|
6998
|
-
if (!response.ok) {
|
|
6999
|
-
logger.debug(
|
|
7000
|
-
`npm registry returned ${response.status} for ${packageName}`
|
|
7001
|
-
);
|
|
7002
|
-
return null;
|
|
7003
|
-
}
|
|
7004
|
-
const data = await response.json();
|
|
7005
|
-
return data.version ?? null;
|
|
7006
|
-
} catch (error) {
|
|
7007
|
-
logger.debug(
|
|
7008
|
-
`Failed to check npm registry: ${error instanceof Error ? error.message : String(error)}`
|
|
7009
|
-
);
|
|
7010
|
-
return null;
|
|
7011
|
-
}
|
|
7012
|
-
}
|
|
7013
|
-
function compareSemver(a, b) {
|
|
7014
|
-
const partsA = a.replace(/^v/, "").split(".").map(Number);
|
|
7015
|
-
const partsB = b.replace(/^v/, "").split(".").map(Number);
|
|
7016
|
-
for (let i = 0; i < 3; i++) {
|
|
7017
|
-
const diff = (partsA[i] ?? 0) - (partsB[i] ?? 0);
|
|
7018
|
-
if (diff !== 0) return diff;
|
|
7019
|
-
}
|
|
7020
|
-
return 0;
|
|
7021
|
-
}
|
|
7022
|
-
|
|
7023
|
-
// src/commands/update.ts
|
|
7024
7046
|
var PACKAGE_NAME = "@rk0429/agentic-relay";
|
|
7025
7047
|
var CURRENT_VERSION = "0.4.0";
|
|
7026
7048
|
function createUpdateCommand(registry2) {
|
|
@@ -7325,7 +7347,7 @@ function createMCPCommand(configManager2, registry2, sessionManager2, hooksEngin
|
|
|
7325
7347
|
responseOutputDir,
|
|
7326
7348
|
relayConfig
|
|
7327
7349
|
);
|
|
7328
|
-
await server.start({ transport, port });
|
|
7350
|
+
await server.start({ transport, port, currentVersion: "1.4.2" });
|
|
7329
7351
|
}
|
|
7330
7352
|
})
|
|
7331
7353
|
},
|
|
@@ -7485,7 +7507,7 @@ function createVersionCommand(registry2) {
|
|
|
7485
7507
|
description: "Show relay and backend versions"
|
|
7486
7508
|
},
|
|
7487
7509
|
async run() {
|
|
7488
|
-
const relayVersion = "1.4.
|
|
7510
|
+
const relayVersion = "1.4.2";
|
|
7489
7511
|
console.log(`agentic-relay v${relayVersion}`);
|
|
7490
7512
|
console.log("");
|
|
7491
7513
|
console.log("Backends:");
|
|
@@ -7878,10 +7900,11 @@ void configManager.getConfig().then((config) => {
|
|
|
7878
7900
|
}
|
|
7879
7901
|
}).catch((e) => logger.debug("Config load failed:", e));
|
|
7880
7902
|
var interactiveCmd = createInteractiveCommand(registry, sessionManager, hooksEngine, contextMonitor, configManager);
|
|
7903
|
+
var subCommandNames = /* @__PURE__ */ new Set(["claude", "codex", "gemini", "update", "config", "mcp", "auth", "sessions", "version", "doctor", "init"]);
|
|
7881
7904
|
var main = defineCommand11({
|
|
7882
7905
|
meta: {
|
|
7883
7906
|
name: "relay",
|
|
7884
|
-
version: "1.4.
|
|
7907
|
+
version: "1.4.2",
|
|
7885
7908
|
description: "Unified CLI proxy for Claude Code, Codex CLI, and Gemini CLI"
|
|
7886
7909
|
},
|
|
7887
7910
|
args: {
|
|
@@ -7897,11 +7920,14 @@ var main = defineCommand11({
|
|
|
7897
7920
|
}
|
|
7898
7921
|
},
|
|
7899
7922
|
async run({ args }) {
|
|
7923
|
+
const hasSubCommand = process.argv.slice(2).some((arg) => subCommandNames.has(arg));
|
|
7924
|
+
if (hasSubCommand) return;
|
|
7900
7925
|
const interactiveArgs = {
|
|
7901
7926
|
backend: args.backend ?? "",
|
|
7902
7927
|
model: args.model ?? ""
|
|
7903
7928
|
};
|
|
7904
7929
|
await interactiveCmd.run({
|
|
7930
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7905
7931
|
args: interactiveArgs,
|
|
7906
7932
|
rawArgs: [],
|
|
7907
7933
|
cmd: interactiveCmd
|
package/package.json
CHANGED