@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.
Files changed (2) hide show
  1. package/dist/relay.mjs +70 -44
  2. 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.0" },
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.0" },
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, resumeSessionId) {
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.0";
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.0",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rk0429/agentic-relay",
3
- "version": "1.4.0",
3
+ "version": "1.4.2",
4
4
  "description": "Unified CLI proxy for Claude Code, Codex CLI, and Gemini CLI with MCP-based multi-layer sub-agent orchestration",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",