@integrity-labs/agt-cli 0.28.125 → 0.28.127

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-QEPPYDUA.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-ZSBDAKGL.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-UGYPA6VO.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-G6OZ2VVG.js.map
@@ -28,7 +28,7 @@ import {
28
28
  requireHost,
29
29
  safeWriteJsonAtomic,
30
30
  setConfigHash
31
- } from "../chunk-YOCNO6HS.js";
31
+ } from "../chunk-LPQ7DEEL.js";
32
32
  import {
33
33
  getProjectDir as getProjectDir2,
34
34
  getReadyTasks,
@@ -72,7 +72,7 @@ import {
72
72
  takeZombieDetection,
73
73
  transcriptActivityAgeSeconds,
74
74
  writeEgressAllowlist
75
- } from "../chunk-J2HTSR2L.js";
75
+ } from "../chunk-7YAD4ECZ.js";
76
76
  import {
77
77
  FLAGS_SCHEMA_VERSION,
78
78
  FLAG_REGISTRY,
@@ -97,18 +97,20 @@ import {
97
97
  isParseError,
98
98
  isResolveError,
99
99
  isSelfCompletion,
100
+ isUnsetTimezone,
100
101
  laneTagFragment,
101
102
  parseDeliveryTarget,
102
103
  parseEnvIntegrations,
103
104
  parseTranscriptUsage,
104
105
  parseUsageBanner,
105
106
  probeMcpEnvSubstitution,
107
+ resolveAgentTimezone,
106
108
  resolveAvatarEnvUrl,
107
109
  resolveChannels,
108
110
  resolveDmTarget,
109
111
  sumTranscriptUsageInWindow,
110
112
  wrapScheduledTaskPrompt
111
- } from "../chunk-FRIT5ONP.js";
113
+ } from "../chunk-NCRDTQ54.js";
112
114
  import {
113
115
  parsePsRows,
114
116
  reapOrphanChannelMcps
@@ -6735,8 +6737,17 @@ function transcriptAgeSecondsFor(codeName) {
6735
6737
  }
6736
6738
  function restartGateFor(codeName, reason) {
6737
6739
  if (!isGateableRestartReason(reason)) return "bypass";
6740
+ const tzInputs = agentRestartTimezoneInputs.get(codeName);
6741
+ const perAgentWindow = cachedMaintenanceWindow ? {
6742
+ ...cachedMaintenanceWindow,
6743
+ timezone: resolveAgentTimezone(
6744
+ tzInputs?.agentTimezone ?? null,
6745
+ tzInputs?.teamTimezone ?? null,
6746
+ cachedMaintenanceWindow.timezone
6747
+ )
6748
+ } : cachedMaintenanceWindow;
6738
6749
  return decideRestartGate({
6739
- window: cachedMaintenanceWindow,
6750
+ window: perAgentWindow,
6740
6751
  // ENG-6491: channel adds (channel-set-change) skip the off-peak window but
6741
6752
  // still defer-until-idle — they come online as soon as the agent is quiet.
6742
6753
  windowExempt: isWindowExemptRestartReason(reason),
@@ -7002,10 +7013,11 @@ function clearAgentCaches(agentId, codeName) {
7002
7013
  }
7003
7014
  var cachedFrameworkVersion = null;
7004
7015
  var cachedMaintenanceWindow = null;
7016
+ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
7005
7017
  var lastVersionCheckAt = 0;
7006
7018
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
7007
7019
  var lastResponsivenessProbeAt = 0;
7008
- var agtCliVersion = true ? "0.28.125" : "dev";
7020
+ var agtCliVersion = true ? "0.28.127" : "dev";
7009
7021
  function resolveBrewPath(execFileSync4) {
7010
7022
  try {
7011
7023
  const out = execFileSync4("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -8132,7 +8144,7 @@ async function pollCycle() {
8132
8144
  }
8133
8145
  try {
8134
8146
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
8135
- const { collectDiagnostics } = await import("../persistent-session-QEPPYDUA.js");
8147
+ const { collectDiagnostics } = await import("../persistent-session-ZSBDAKGL.js");
8136
8148
  const diagCodeNames = [...agentState.persistentSessionAgents];
8137
8149
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
8138
8150
  let tailscaleHostname;
@@ -8233,7 +8245,7 @@ async function pollCycle() {
8233
8245
  const {
8234
8246
  collectResponsivenessProbes,
8235
8247
  getResponsivenessIntervalMs
8236
- } = await import("../responsiveness-probe-W5AQDRYT.js");
8248
+ } = await import("../responsiveness-probe-QPRFO2EJ.js");
8237
8249
  const probeIntervalMs = getResponsivenessIntervalMs();
8238
8250
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
8239
8251
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -8265,7 +8277,7 @@ async function pollCycle() {
8265
8277
  collectResponsivenessProbes,
8266
8278
  livePendingInboundOldestAgeSeconds,
8267
8279
  parkPendingInbound
8268
- } = await import("../responsiveness-probe-W5AQDRYT.js");
8280
+ } = await import("../responsiveness-probe-QPRFO2EJ.js");
8269
8281
  const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
8270
8282
  const wedgeNow = /* @__PURE__ */ new Date();
8271
8283
  const liveAgents = agentState.persistentSessionAgents;
@@ -8944,6 +8956,10 @@ async function processAgent(agent, agentStates) {
8944
8956
  const frameworkAdapter = getFramework(frameworkId);
8945
8957
  agentDir = join16(frameworkAdapter.getAgentDir(agent.code_name), "provision");
8946
8958
  cacheAgentDeliveryMetadata(agent.code_name, refreshData);
8959
+ agentRestartTimezoneInputs.set(agent.code_name, {
8960
+ agentTimezone: typeof refreshData.agent.timezone === "string" ? refreshData.agent.timezone : null,
8961
+ teamTimezone: typeof refreshData.team?.timezone === "string" ? refreshData.team.timezone ?? null : null
8962
+ });
8947
8963
  if (frameworkAdapter.migrateSecretStorage && !migratedSecretStorage.has(agent.code_name)) {
8948
8964
  try {
8949
8965
  frameworkAdapter.migrateSecretStorage(agent.code_name);
@@ -10744,8 +10760,15 @@ async function ensurePersistentSession(agent, tasks, boardItems, refreshData) {
10744
10760
  }
10745
10761
  const teamSettingsForTz = refreshData.team?.settings;
10746
10762
  const agentTimezone = (() => {
10763
+ const ownTzRaw = refreshData.agent?.timezone;
10764
+ const ownTz = typeof ownTzRaw === "string" && ownTzRaw.trim() !== "" ? ownTzRaw.trim() : null;
10747
10765
  const tz = teamSettingsForTz?.["timezone"];
10748
- return typeof tz === "string" && tz.trim() !== "" ? tz.trim() : void 0;
10766
+ const teamTz = typeof tz === "string" && tz.trim() !== "" ? tz.trim() : null;
10767
+ const orgTierTz = cachedMaintenanceWindow?.timezone ?? null;
10768
+ if (isUnsetTimezone(ownTz) && isUnsetTimezone(teamTz) && isUnsetTimezone(orgTierTz)) {
10769
+ return void 0;
10770
+ }
10771
+ return resolveAgentTimezone(ownTz, teamTz, orgTierTz);
10749
10772
  })();
10750
10773
  const channelConfigs = refreshData.channel_configs;
10751
10774
  const { devChannels, pluginChannels } = resolveChannelLaunchFlags(
@@ -11797,7 +11820,7 @@ async function processClaudePairSessions(agents) {
11797
11820
  killPairSession,
11798
11821
  pairTmuxSession,
11799
11822
  finalizeClaudePairOnboarding
11800
- } = await import("../claude-pair-runtime-UGYPA6VO.js");
11823
+ } = await import("../claude-pair-runtime-G6OZ2VVG.js");
11801
11824
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
11802
11825
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
11803
11826
  const killed = await killPairSession(pairTmuxSession(pairId));