@integrity-labs/agt-cli 0.28.1031 → 0.28.1032

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.
@@ -15,7 +15,7 @@ import {
15
15
  parseEnvFileEntries,
16
16
  parseEnvIntegrations,
17
17
  shellQuote
18
- } from "./chunk-XD5GMJGJ.js";
18
+ } from "./chunk-GLOCISGD.js";
19
19
  import {
20
20
  BIND_FAILURE_QUARANTINE_THRESHOLD,
21
21
  INTEGRATIONS_SECTION_END,
@@ -77,7 +77,7 @@ import {
77
77
  sessionTranscriptDir,
78
78
  worseConnectivityOutcome,
79
79
  wrapScheduledTaskPrompt
80
- } from "./chunk-TFFXAGBJ.js";
80
+ } from "./chunk-NCIGLRCL.js";
81
81
  import {
82
82
  classifyUnanswerablePane,
83
83
  isConsumerTermsDialogVisible,
@@ -7143,7 +7143,7 @@ function exchangeFailureKind(err) {
7143
7143
  }
7144
7144
 
7145
7145
  // src/lib/api-client.ts
7146
- var agtCliVersion = true ? "0.28.1031" : "dev";
7146
+ var agtCliVersion = true ? "0.28.1032" : "dev";
7147
7147
  var lastConfigHash = null;
7148
7148
  function setConfigHash(hash) {
7149
7149
  lastConfigHash = hash && hash.length > 0 ? hash : null;
@@ -12100,4 +12100,4 @@ export {
12100
12100
  managerInstallSystemUnitCommand,
12101
12101
  managerUninstallSystemUnitCommand
12102
12102
  };
12103
- //# sourceMappingURL=chunk-HQSQLPHD.js.map
12103
+ //# sourceMappingURL=chunk-OGITTSBM.js.map
@@ -266,7 +266,7 @@ async function spawnPairSession(session) {
266
266
  return { ok: true };
267
267
  } catch {
268
268
  }
269
- const { resolveClaudeBinary } = await import("./persistent-session-AMUXFQKY.js");
269
+ const { resolveClaudeBinary } = await import("./persistent-session-TOIMQIAU.js");
270
270
  const claudeBin = resolveClaudeBinary();
271
271
  const pairEnv = {
272
272
  ...process.env,
@@ -734,4 +734,4 @@ export {
734
734
  startClaudePair,
735
735
  submitClaudePairCode
736
736
  };
737
- //# sourceMappingURL=claude-pair-runtime-NBF54YQD.js.map
737
+ //# sourceMappingURL=claude-pair-runtime-KQDXWMWB.js.map
@@ -66,7 +66,7 @@ import {
66
66
  safeWriteJsonAtomic,
67
67
  setConfigHash,
68
68
  tripClass
69
- } from "../chunk-HQSQLPHD.js";
69
+ } from "../chunk-OGITTSBM.js";
70
70
  import {
71
71
  getProjectDir as getProjectDir2,
72
72
  getReadyTasks,
@@ -149,7 +149,7 @@ import {
149
149
  takeZombieDetection,
150
150
  toOpencodeModel,
151
151
  writeEgressAllowlist
152
- } from "../chunk-XD5GMJGJ.js";
152
+ } from "../chunk-GLOCISGD.js";
153
153
  import {
154
154
  ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
155
155
  AnchorSessionClient,
@@ -254,7 +254,7 @@ import {
254
254
  subagentActivityAgeSeconds,
255
255
  sumTranscriptUsageInWindow,
256
256
  transcriptActivityAgeSeconds
257
- } from "../chunk-TFFXAGBJ.js";
257
+ } from "../chunk-NCIGLRCL.js";
258
258
  import {
259
259
  classifyUnanswerablePane,
260
260
  paneRemedy
@@ -13927,7 +13927,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
13927
13927
  var dayRolloverInboundHold = /* @__PURE__ */ new Map();
13928
13928
  var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
13929
13929
  async function channelInboundActivityAgeSecondsFor(codeName) {
13930
- const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-73AXZT6D.js");
13930
+ const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-VJOXOK66.js");
13931
13931
  const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
13932
13932
  if (newest === null) return null;
13933
13933
  return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
@@ -14673,7 +14673,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
14673
14673
  var lastVersionCheckAt = 0;
14674
14674
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
14675
14675
  var lastResponsivenessProbeAt = 0;
14676
- var agtCliVersion = true ? "0.28.1031" : "dev";
14676
+ var agtCliVersion = true ? "0.28.1032" : "dev";
14677
14677
  function resolveBrewPath(execFileSync3) {
14678
14678
  try {
14679
14679
  const out = execFileSync3("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -16308,7 +16308,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
16308
16308
  if (codeNames.length === 0) return;
16309
16309
  void (async () => {
16310
16310
  try {
16311
- const { collectDiagnostics } = await import("../persistent-session-AMUXFQKY.js");
16311
+ const { collectDiagnostics } = await import("../persistent-session-TOIMQIAU.js");
16312
16312
  await api.post("/host/heartbeat", {
16313
16313
  host_id: hostId,
16314
16314
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
@@ -16450,7 +16450,7 @@ async function pollCycleInner() {
16450
16450
  }
16451
16451
  try {
16452
16452
  const { detectHostSecurity } = await import("../host-security-KQYYZZVW.js");
16453
- const { collectDiagnostics } = await import("../persistent-session-AMUXFQKY.js");
16453
+ const { collectDiagnostics } = await import("../persistent-session-TOIMQIAU.js");
16454
16454
  const diagCodeNames = [...agentState.persistentSessionAgents];
16455
16455
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor) : void 0;
16456
16456
  let tailscaleHostname;
@@ -16626,7 +16626,7 @@ async function pollCycleInner() {
16626
16626
  collectPanelessActivityProbes,
16627
16627
  getResponsivenessIntervalMs,
16628
16628
  occupancyQualificationClassifications
16629
- } = await import("../responsiveness-probe-73AXZT6D.js");
16629
+ } = await import("../responsiveness-probe-VJOXOK66.js");
16630
16630
  const probeIntervalMs = getResponsivenessIntervalMs();
16631
16631
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
16632
16632
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -16743,7 +16743,7 @@ async function pollCycleInner() {
16743
16743
  collectResponsivenessProbes,
16744
16744
  livePendingInboundOldestAgeSeconds,
16745
16745
  parkPendingInbound
16746
- } = await import("../responsiveness-probe-73AXZT6D.js");
16746
+ } = await import("../responsiveness-probe-VJOXOK66.js");
16747
16747
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-M6AFZWNU.js");
16748
16748
  const wedgeNow = /* @__PURE__ */ new Date();
16749
16749
  const liveAgents = agentState.persistentSessionAgents;
@@ -16899,7 +16899,7 @@ async function pollCycleInner() {
16899
16899
  }
16900
16900
  try {
16901
16901
  const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-VR5QGP3J.js");
16902
- const { probeSessionAuth } = await import("../session-auth-dead-VINCM3ZI.js");
16902
+ const { probeSessionAuth } = await import("../session-auth-dead-T5EZNDRO.js");
16903
16903
  const observations = [];
16904
16904
  const pendingCacheCommits = [];
16905
16905
  const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
@@ -21442,7 +21442,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
21442
21442
  try {
21443
21443
  const freshId = rotateSessionForWedge(codeName);
21444
21444
  consecutiveWedgeCycles.delete(codeName);
21445
- const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-73AXZT6D.js");
21445
+ const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-VJOXOK66.js");
21446
21446
  const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
21447
21447
  const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
21448
21448
  const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
@@ -21485,7 +21485,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
21485
21485
  void api.post("/host/restart-ack", { host_id: hostId, agent_id: agentId, restart_requested_at: requestedAt }).catch((err) => log(`[restart-lane] ack failed for '${codeName}': ${err.message}`));
21486
21486
  void (async () => {
21487
21487
  try {
21488
- const { collectDiagnostics } = await import("../persistent-session-AMUXFQKY.js");
21488
+ const { collectDiagnostics } = await import("../persistent-session-TOIMQIAU.js");
21489
21489
  await api.post("/host/heartbeat", {
21490
21490
  host_id: hostId,
21491
21491
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
@@ -21536,7 +21536,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
21536
21536
  }
21537
21537
  try {
21538
21538
  const hostId = await getHostId();
21539
- const { collectDiagnostics } = await import("../persistent-session-AMUXFQKY.js");
21539
+ const { collectDiagnostics } = await import("../persistent-session-TOIMQIAU.js");
21540
21540
  await api.post("/host/heartbeat", {
21541
21541
  host_id: hostId,
21542
21542
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
@@ -22208,7 +22208,7 @@ async function processClaudePairSessions(agents) {
22208
22208
  // cannot take it for itself — by the time it runs, the write it is looking
22209
22209
  // for may already have happened.
22210
22210
  snapshotPairConfig
22211
- } = await import("../claude-pair-runtime-NBF54YQD.js");
22211
+ } = await import("../claude-pair-runtime-KQDXWMWB.js");
22212
22212
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
22213
22213
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
22214
22214
  const killed = await killPairSession(pairTmuxSession(pairId));
@@ -37978,6 +37978,22 @@ var FLAG_REGISTRY = [
37978
37978
  public: true,
37979
37979
  defaultValue: false
37980
37980
  },
37981
+ {
37982
+ key: "ninja-lists",
37983
+ description: 'Ninja Lists (ADR-0120): small tables agents and people fill and review together. Gates the "Lists" nav item, the /lists pages AND the /ninja-sheets API, per org. Unlike its siblings `projects-menu` / `ninjafy-notes-menu`, this is the whole feature\'s gate, not only its menu entry: the surface is unlaunched, so an org with the flag off gets 404 from the API rather than a hidden link to a working one.',
37984
+ flagType: "boolean",
37985
+ // PUBLIC (ADR-0022 §2): the nav shells read it via usePublicBooleanFlag and
37986
+ // the pages via getPublicBooleanFlagServer, so it is serialized to the
37987
+ // client via GET /flags. The API evaluates it through getFlagClient() and
37988
+ // fails CLOSED on a read error. No env override (UI rollout, not an
37989
+ // operator gate). Ships dark (default false).
37990
+ public: true,
37991
+ defaultValue: false,
37992
+ // Until ADR-0120's access control exists, any member of an enabled org
37993
+ // reads every list in it, so an org admin must not be able to switch this
37994
+ // on for their own org. Only a platform admin can (PR #6522 review).
37995
+ platformAdminOnly: true
37996
+ },
37981
37997
  {
37982
37998
  key: "platform-maintenance-mode",
37983
37999
  description: 'Platform-wide maintenance mode (ENG-6506): when on, every agent across every team/org auto-replies to admitted human inbound with a "we are offline for maintenance" notice instead of dispatching to the agent \u2014 for whole-platform downtime such as DB upgrades. Read host-side per inbound from the flags cache (no MCP restart). Boolean gate; ships dark \u2014 when off, channels behave exactly as today. (Proactive "back online" follow-up is the ENG-6508 fast-follow, not this flag.)',
package/dist/mcp/index.js CHANGED
@@ -30275,6 +30275,22 @@ var FLAG_REGISTRY = [
30275
30275
  public: true,
30276
30276
  defaultValue: false
30277
30277
  },
30278
+ {
30279
+ key: "ninja-lists",
30280
+ description: 'Ninja Lists (ADR-0120): small tables agents and people fill and review together. Gates the "Lists" nav item, the /lists pages AND the /ninja-sheets API, per org. Unlike its siblings `projects-menu` / `ninjafy-notes-menu`, this is the whole feature\'s gate, not only its menu entry: the surface is unlaunched, so an org with the flag off gets 404 from the API rather than a hidden link to a working one.',
30281
+ flagType: "boolean",
30282
+ // PUBLIC (ADR-0022 §2): the nav shells read it via usePublicBooleanFlag and
30283
+ // the pages via getPublicBooleanFlagServer, so it is serialized to the
30284
+ // client via GET /flags. The API evaluates it through getFlagClient() and
30285
+ // fails CLOSED on a read error. No env override (UI rollout, not an
30286
+ // operator gate). Ships dark (default false).
30287
+ public: true,
30288
+ defaultValue: false,
30289
+ // Until ADR-0120's access control exists, any member of an enabled org
30290
+ // reads every list in it, so an org admin must not be able to switch this
30291
+ // on for their own org. Only a platform admin can (PR #6522 review).
30292
+ platformAdminOnly: true
30293
+ },
30278
30294
  {
30279
30295
  key: "platform-maintenance-mode",
30280
30296
  description: 'Platform-wide maintenance mode (ENG-6506): when on, every agent across every team/org auto-replies to admitted human inbound with a "we are offline for maintenance" notice instead of dispatching to the agent \u2014 for whole-platform downtime such as DB upgrades. Read host-side per inbound from the flags cache (no MCP restart). Boolean gate; ships dark \u2014 when off, channels behave exactly as today. (Proactive "back online" follow-up is the ENG-6508 fast-follow, not this flag.)',
@@ -44223,6 +44223,22 @@ var FLAG_REGISTRY = [
44223
44223
  public: true,
44224
44224
  defaultValue: false
44225
44225
  },
44226
+ {
44227
+ key: "ninja-lists",
44228
+ description: 'Ninja Lists (ADR-0120): small tables agents and people fill and review together. Gates the "Lists" nav item, the /lists pages AND the /ninja-sheets API, per org. Unlike its siblings `projects-menu` / `ninjafy-notes-menu`, this is the whole feature\'s gate, not only its menu entry: the surface is unlaunched, so an org with the flag off gets 404 from the API rather than a hidden link to a working one.',
44229
+ flagType: "boolean",
44230
+ // PUBLIC (ADR-0022 §2): the nav shells read it via usePublicBooleanFlag and
44231
+ // the pages via getPublicBooleanFlagServer, so it is serialized to the
44232
+ // client via GET /flags. The API evaluates it through getFlagClient() and
44233
+ // fails CLOSED on a read error. No env override (UI rollout, not an
44234
+ // operator gate). Ships dark (default false).
44235
+ public: true,
44236
+ defaultValue: false,
44237
+ // Until ADR-0120's access control exists, any member of an enabled org
44238
+ // reads every list in it, so an org admin must not be able to switch this
44239
+ // on for their own org. Only a platform admin can (PR #6522 review).
44240
+ platformAdminOnly: true
44241
+ },
44226
44242
  {
44227
44243
  key: "platform-maintenance-mode",
44228
44244
  description: 'Platform-wide maintenance mode (ENG-6506): when on, every agent across every team/org auto-replies to admitted human inbound with a "we are offline for maintenance" notice instead of dispatching to the agent \u2014 for whole-platform downtime such as DB upgrades. Read host-side per inbound from the flags cache (no MCP restart). Boolean gate; ships dark \u2014 when off, channels behave exactly as today. (Proactive "back online" follow-up is the ENG-6508 fast-follow, not this flag.)',
@@ -38862,6 +38862,22 @@ var FLAG_REGISTRY = [
38862
38862
  public: true,
38863
38863
  defaultValue: false
38864
38864
  },
38865
+ {
38866
+ key: "ninja-lists",
38867
+ description: 'Ninja Lists (ADR-0120): small tables agents and people fill and review together. Gates the "Lists" nav item, the /lists pages AND the /ninja-sheets API, per org. Unlike its siblings `projects-menu` / `ninjafy-notes-menu`, this is the whole feature\'s gate, not only its menu entry: the surface is unlaunched, so an org with the flag off gets 404 from the API rather than a hidden link to a working one.',
38868
+ flagType: "boolean",
38869
+ // PUBLIC (ADR-0022 §2): the nav shells read it via usePublicBooleanFlag and
38870
+ // the pages via getPublicBooleanFlagServer, so it is serialized to the
38871
+ // client via GET /flags. The API evaluates it through getFlagClient() and
38872
+ // fails CLOSED on a read error. No env override (UI rollout, not an
38873
+ // operator gate). Ships dark (default false).
38874
+ public: true,
38875
+ defaultValue: false,
38876
+ // Until ADR-0120's access control exists, any member of an enabled org
38877
+ // reads every list in it, so an org admin must not be able to switch this
38878
+ // on for their own org. Only a platform admin can (PR #6522 review).
38879
+ platformAdminOnly: true
38880
+ },
38865
38881
  {
38866
38882
  key: "platform-maintenance-mode",
38867
38883
  description: 'Platform-wide maintenance mode (ENG-6506): when on, every agent across every team/org auto-replies to admitted human inbound with a "we are offline for maintenance" notice instead of dispatching to the agent \u2014 for whole-platform downtime such as DB upgrades. Read host-side per inbound from the flags cache (no MCP restart). Boolean gate; ships dark \u2014 when off, channels behave exactly as today. (Proactive "back online" follow-up is the ENG-6508 fast-follow, not this flag.)',
@@ -38968,6 +38968,22 @@ var FLAG_REGISTRY = [
38968
38968
  public: true,
38969
38969
  defaultValue: false
38970
38970
  },
38971
+ {
38972
+ key: "ninja-lists",
38973
+ description: 'Ninja Lists (ADR-0120): small tables agents and people fill and review together. Gates the "Lists" nav item, the /lists pages AND the /ninja-sheets API, per org. Unlike its siblings `projects-menu` / `ninjafy-notes-menu`, this is the whole feature\'s gate, not only its menu entry: the surface is unlaunched, so an org with the flag off gets 404 from the API rather than a hidden link to a working one.',
38974
+ flagType: "boolean",
38975
+ // PUBLIC (ADR-0022 §2): the nav shells read it via usePublicBooleanFlag and
38976
+ // the pages via getPublicBooleanFlagServer, so it is serialized to the
38977
+ // client via GET /flags. The API evaluates it through getFlagClient() and
38978
+ // fails CLOSED on a read error. No env override (UI rollout, not an
38979
+ // operator gate). Ships dark (default false).
38980
+ public: true,
38981
+ defaultValue: false,
38982
+ // Until ADR-0120's access control exists, any member of an enabled org
38983
+ // reads every list in it, so an org admin must not be able to switch this
38984
+ // on for their own org. Only a platform admin can (PR #6522 review).
38985
+ platformAdminOnly: true
38986
+ },
38971
38987
  {
38972
38988
  key: "platform-maintenance-mode",
38973
38989
  description: 'Platform-wide maintenance mode (ENG-6506): when on, every agent across every team/org auto-replies to admitted human inbound with a "we are offline for maintenance" notice instead of dispatching to the agent \u2014 for whole-platform downtime such as DB upgrades. Read host-side per inbound from the flags cache (no MCP restart). Boolean gate; ships dark \u2014 when off, channels behave exactly as today. (Proactive "back online" follow-up is the ENG-6508 fast-follow, not this flag.)',
@@ -65,8 +65,8 @@ import {
65
65
  writeDirectChatSessionState,
66
66
  writeEgressAllowlist,
67
67
  writePersistentClaudeWrapper
68
- } from "./chunk-XD5GMJGJ.js";
69
- import "./chunk-TFFXAGBJ.js";
68
+ } from "./chunk-GLOCISGD.js";
69
+ import "./chunk-NCIGLRCL.js";
70
70
  import "./chunk-TQDIIS3X.js";
71
71
  import "./chunk-XWVM4KPK.js";
72
72
  import "./chunk-EL5MWGGH.js";
@@ -139,4 +139,4 @@ export {
139
139
  writeEgressAllowlist,
140
140
  writePersistentClaudeWrapper
141
141
  };
142
- //# sourceMappingURL=persistent-session-AMUXFQKY.js.map
142
+ //# sourceMappingURL=persistent-session-TOIMQIAU.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-XD5GMJGJ.js";
4
- import "./chunk-TFFXAGBJ.js";
3
+ } from "./chunk-GLOCISGD.js";
4
+ import "./chunk-NCIGLRCL.js";
5
5
  import "./chunk-TQDIIS3X.js";
6
6
  import "./chunk-XWVM4KPK.js";
7
7
  import "./chunk-EL5MWGGH.js";
@@ -802,4 +802,4 @@ export {
802
802
  readAndResetSlackReplyBindingClassifications,
803
803
  readAndResetSlackReplyTargetClassifications
804
804
  };
805
- //# sourceMappingURL=responsiveness-probe-73AXZT6D.js.map
805
+ //# sourceMappingURL=responsiveness-probe-VJOXOK66.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sessionTranscriptDir
3
- } from "./chunk-TFFXAGBJ.js";
3
+ } from "./chunk-NCIGLRCL.js";
4
4
  import "./chunk-DGUM43GV.js";
5
5
 
6
6
  // src/lib/session-auth-dead.ts
@@ -204,4 +204,4 @@ export {
204
204
  decideSessionAuthState,
205
205
  probeSessionAuth
206
206
  };
207
- //# sourceMappingURL=session-auth-dead-VINCM3ZI.js.map
207
+ //# sourceMappingURL=session-auth-dead-T5EZNDRO.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.1031",
3
+ "version": "0.28.1032",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {