@integrity-labs/agt-cli 0.28.192 → 0.28.194

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.
@@ -100,7 +100,7 @@ async function spawnPairSession(session) {
100
100
  return { ok: true };
101
101
  } catch {
102
102
  }
103
- const { resolveClaudeBinary } = await import("./persistent-session-HXTMZX67.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-HKZD767L.js");
104
104
  const claudeBin = resolveClaudeBinary();
105
105
  const pairEnv = {
106
106
  ...process.env,
@@ -373,4 +373,4 @@ export {
373
373
  startClaudePair,
374
374
  submitClaudePairCode
375
375
  };
376
- //# sourceMappingURL=claude-pair-runtime-NOZN3WKM.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-LNY256PK.js.map
@@ -28,7 +28,7 @@ import {
28
28
  requireHost,
29
29
  safeWriteJsonAtomic,
30
30
  setConfigHash
31
- } from "../chunk-GRVRRNJD.js";
31
+ } from "../chunk-YFNARV7V.js";
32
32
  import {
33
33
  getProjectDir as getProjectDir2,
34
34
  getReadyTasks,
@@ -70,7 +70,7 @@ import {
70
70
  takeZombieDetection,
71
71
  transcriptActivityAgeSeconds,
72
72
  writeEgressAllowlist
73
- } from "../chunk-SJ3TWGEN.js";
73
+ } from "../chunk-AABQHAHG.js";
74
74
  import {
75
75
  CONVERSATION_FAILURE_CATEGORIES,
76
76
  DEFAULT_FRAMEWORK,
@@ -113,7 +113,7 @@ import {
113
113
  resolveChannels,
114
114
  resolveDmTarget,
115
115
  sumTranscriptUsageInWindow
116
- } from "../chunk-C7VSGFDC.js";
116
+ } from "../chunk-4D2OW6W6.js";
117
117
  import {
118
118
  parsePsRows,
119
119
  reapOrphanChannelMcps
@@ -6681,7 +6681,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
6681
6681
  var lastVersionCheckAt = 0;
6682
6682
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
6683
6683
  var lastResponsivenessProbeAt = 0;
6684
- var agtCliVersion = true ? "0.28.192" : "dev";
6684
+ var agtCliVersion = true ? "0.28.194" : "dev";
6685
6685
  function resolveBrewPath(execFileSync4) {
6686
6686
  try {
6687
6687
  const out = execFileSync4("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -7574,7 +7574,7 @@ async function pollCycle() {
7574
7574
  }
7575
7575
  try {
7576
7576
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
7577
- const { collectDiagnostics } = await import("../persistent-session-HXTMZX67.js");
7577
+ const { collectDiagnostics } = await import("../persistent-session-HKZD767L.js");
7578
7578
  const diagCodeNames = [...agentState.persistentSessionAgents];
7579
7579
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
7580
7580
  let tailscaleHostname;
@@ -7722,7 +7722,7 @@ async function pollCycle() {
7722
7722
  const {
7723
7723
  collectResponsivenessProbes,
7724
7724
  getResponsivenessIntervalMs
7725
- } = await import("../responsiveness-probe-2OV5K45J.js");
7725
+ } = await import("../responsiveness-probe-WGO7BF64.js");
7726
7726
  const probeIntervalMs = getResponsivenessIntervalMs();
7727
7727
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
7728
7728
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -7754,7 +7754,7 @@ async function pollCycle() {
7754
7754
  collectResponsivenessProbes,
7755
7755
  livePendingInboundOldestAgeSeconds,
7756
7756
  parkPendingInbound
7757
- } = await import("../responsiveness-probe-2OV5K45J.js");
7757
+ } = await import("../responsiveness-probe-WGO7BF64.js");
7758
7758
  const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
7759
7759
  const wedgeNow = /* @__PURE__ */ new Date();
7760
7760
  const liveAgents = agentState.persistentSessionAgents;
@@ -9978,6 +9978,13 @@ async function ensurePersistentSession(agent, tasks, boardItems, refreshData) {
9978
9978
  );
9979
9979
  const channels = [...pluginChannels];
9980
9980
  devChannels.push("server:direct-chat");
9981
+ const openRouterRaw = refreshData.openrouter ?? null;
9982
+ const openRouterForAgent = openRouterRaw && openRouterRaw.auth_token && openRouterRaw.model ? {
9983
+ authToken: openRouterRaw.auth_token,
9984
+ model: openRouterRaw.model,
9985
+ smallFastModel: openRouterRaw.small_fast_model ?? null,
9986
+ fingerprint: openRouterRaw.fingerprint ?? null
9987
+ } : null;
9981
9988
  let claudeAuthMode;
9982
9989
  let anthropicApiKey;
9983
9990
  let anthropicApiKeyFingerprint;
@@ -10010,7 +10017,18 @@ async function ensurePersistentSession(agent, tasks, boardItems, refreshData) {
10010
10017
  detail: msg
10011
10018
  };
10012
10019
  }
10013
- if (claudeAuthMode === "subscription") {
10020
+ if (claudeAuthMode === "openrouter" || openRouterForAgent) {
10021
+ if (!openRouterForAgent) {
10022
+ log(
10023
+ `[persistent-session] Skipping '${codeName}' \u2014 host is in OpenRouter mode but this agent has no OpenRouter key or resolvable model. Provision one (Agent \u2192 OpenRouter key) and set an openrouter/ model.`
10024
+ );
10025
+ return {
10026
+ decision: "skipped-openrouter-no-key",
10027
+ spawnAttempted: false,
10028
+ sessionHealthyAfter: isSessionHealthy(codeName)
10029
+ };
10030
+ }
10031
+ } else if (claudeAuthMode === "subscription") {
10014
10032
  if (!agentRuntimeAuthenticated) {
10015
10033
  agentRuntimeAuthenticated = await checkClaudeAuth();
10016
10034
  if (!agentRuntimeAuthenticated) {
@@ -10032,7 +10050,7 @@ async function ensurePersistentSession(agent, tasks, boardItems, refreshData) {
10032
10050
  }
10033
10051
  let restartTrigger = null;
10034
10052
  let dayRolloverDeferred = false;
10035
- const currentAuthTuple = `${claudeAuthMode}:${anthropicApiKeyFingerprint ?? "none"}`;
10053
+ const currentAuthTuple = openRouterForAgent ? `openrouter:${openRouterForAgent.fingerprint ?? openRouterForAgent.model}` : `${claudeAuthMode}:${anthropicApiKeyFingerprint ?? "none"}`;
10036
10054
  const recordedAuthTuple = claudeAuthTupleBySession.get(codeName);
10037
10055
  if (recordedAuthTuple && recordedAuthTuple !== currentAuthTuple && isSessionHealthy(codeName)) {
10038
10056
  log(`[persistent-session] Auth config changed for '${codeName}' (${recordedAuthTuple} \u2192 ${currentAuthTuple}) \u2014 restarting session`);
@@ -10158,6 +10176,13 @@ ${truncateForLog(ctx.tail)}` : `; pane_tail_hash=sha256:${createHash10("sha256")
10158
10176
  claudeAuthMode,
10159
10177
  anthropicApiKey,
10160
10178
  primaryModel: spawnPrimaryModel,
10179
+ // ENG-7152: when set, the launcher points Claude Code at OpenRouter's
10180
+ // native Anthropic endpoint for this agent (supersedes claudeAuthMode).
10181
+ openRouter: openRouterForAgent ? {
10182
+ authToken: openRouterForAgent.authToken,
10183
+ model: openRouterForAgent.model,
10184
+ smallFastModel: openRouterForAgent.smallFastModel
10185
+ } : null,
10161
10186
  runId: sessionRunResult.run_id,
10162
10187
  agentTimezone,
10163
10188
  egressAllowlist,
@@ -10729,7 +10754,7 @@ async function processClaudePairSessions(agents) {
10729
10754
  killPairSession,
10730
10755
  pairTmuxSession,
10731
10756
  finalizeClaudePairOnboarding
10732
- } = await import("../claude-pair-runtime-NOZN3WKM.js");
10757
+ } = await import("../claude-pair-runtime-LNY256PK.js");
10733
10758
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
10734
10759
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
10735
10760
  const killed = await killPairSession(pairTmuxSession(pairId));