@integrity-labs/agt-cli 0.28.518 → 0.28.519

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-ZB5BXOWR.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-U4GCKL6C.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-4JSAVQLI.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-7SEXFLEZ.js.map
@@ -53,7 +53,7 @@ import {
53
53
  safeWriteJsonAtomic,
54
54
  setConfigHash,
55
55
  tripClass
56
- } from "../chunk-RDDUP6Z4.js";
56
+ } from "../chunk-FRIAJDCT.js";
57
57
  import {
58
58
  getProjectDir as getProjectDir2,
59
59
  getReadyTasks,
@@ -177,7 +177,7 @@ import {
177
177
  toOpencodeModel,
178
178
  transcriptActivityAgeSeconds,
179
179
  writeEgressAllowlist
180
- } from "../chunk-SSRYNA7T.js";
180
+ } from "../chunk-XH3O62OZ.js";
181
181
  import {
182
182
  reapOrphanChannelMcps
183
183
  } from "../chunk-XWVM4KPK.js";
@@ -10106,7 +10106,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
10106
10106
  var lastVersionCheckAt = 0;
10107
10107
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
10108
10108
  var lastResponsivenessProbeAt = 0;
10109
- var agtCliVersion = true ? "0.28.518" : "dev";
10109
+ var agtCliVersion = true ? "0.28.519" : "dev";
10110
10110
  function resolveBrewPath(execFileSync2) {
10111
10111
  try {
10112
10112
  const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -11314,7 +11314,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
11314
11314
  if (codeNames.length === 0) return;
11315
11315
  void (async () => {
11316
11316
  try {
11317
- const { collectDiagnostics } = await import("../persistent-session-ZB5BXOWR.js");
11317
+ const { collectDiagnostics } = await import("../persistent-session-U4GCKL6C.js");
11318
11318
  await api.post("/host/heartbeat", {
11319
11319
  host_id: hostId,
11320
11320
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor)
@@ -11421,7 +11421,7 @@ async function pollCycle() {
11421
11421
  }
11422
11422
  try {
11423
11423
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
11424
- const { collectDiagnostics } = await import("../persistent-session-ZB5BXOWR.js");
11424
+ const { collectDiagnostics } = await import("../persistent-session-U4GCKL6C.js");
11425
11425
  const diagCodeNames = [...agentState.persistentSessionAgents];
11426
11426
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor) : void 0;
11427
11427
  let tailscaleHostname;
@@ -11536,7 +11536,7 @@ async function pollCycle() {
11536
11536
  collectResponsivenessProbes,
11537
11537
  collectPanelessActivityProbes,
11538
11538
  getResponsivenessIntervalMs
11539
- } = await import("../responsiveness-probe-4KU7FOTM.js");
11539
+ } = await import("../responsiveness-probe-G2CAGG6M.js");
11540
11540
  const probeIntervalMs = getResponsivenessIntervalMs();
11541
11541
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
11542
11542
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -11600,7 +11600,7 @@ async function pollCycle() {
11600
11600
  collectResponsivenessProbes,
11601
11601
  livePendingInboundOldestAgeSeconds,
11602
11602
  parkPendingInbound
11603
- } = await import("../responsiveness-probe-4KU7FOTM.js");
11603
+ } = await import("../responsiveness-probe-G2CAGG6M.js");
11604
11604
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
11605
11605
  const wedgeNow = /* @__PURE__ */ new Date();
11606
11606
  const liveAgents = agentState.persistentSessionAgents;
@@ -15108,7 +15108,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
15108
15108
  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}`));
15109
15109
  void (async () => {
15110
15110
  try {
15111
- const { collectDiagnostics } = await import("../persistent-session-ZB5BXOWR.js");
15111
+ const { collectDiagnostics } = await import("../persistent-session-U4GCKL6C.js");
15112
15112
  await api.post("/host/heartbeat", {
15113
15113
  host_id: hostId,
15114
15114
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
@@ -15158,7 +15158,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
15158
15158
  }
15159
15159
  try {
15160
15160
  const hostId = await getHostId();
15161
- const { collectDiagnostics } = await import("../persistent-session-ZB5BXOWR.js");
15161
+ const { collectDiagnostics } = await import("../persistent-session-U4GCKL6C.js");
15162
15162
  await api.post("/host/heartbeat", {
15163
15163
  host_id: hostId,
15164
15164
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
@@ -15676,7 +15676,7 @@ async function processClaudePairSessions(agents) {
15676
15676
  killPairSession,
15677
15677
  pairTmuxSession,
15678
15678
  finalizeClaudePairOnboarding
15679
- } = await import("../claude-pair-runtime-4JSAVQLI.js");
15679
+ } = await import("../claude-pair-runtime-7SEXFLEZ.js");
15680
15680
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
15681
15681
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
15682
15682
  const killed = await killPairSession(pairTmuxSession(pairId));
@@ -32303,11 +32303,60 @@ var MARKUP_BRIDGE_SCRIPT = `<script>(function(){
32303
32303
  e.preventDefault(); e.stopPropagation(); startEditTextNode(tn, el);
32304
32304
  }
32305
32305
  }, true);
32306
- document.addEventListener('keydown', function(e){
32306
+ // ENG-8500: while the inline editor is focused, the artefact's OWN keyboard
32307
+ // handlers must not see the keystroke.
32308
+ //
32309
+ // Decks ship as a single self-contained file with their own slide navigation
32310
+ // bound to space and the arrow keys, and that script is agent-authored content
32311
+ // we neither control nor can retro-patch - the published object is immutable,
32312
+ // so every deck already out there has its handler baked in. It also runs FIRST:
32313
+ // the bridge is appended after the artefact HTML (frame.srcdoc = html +
32314
+ // MARKUP_BRIDGE in publisher.ts), so the deck registers its listener before we
32315
+ // register ours.
32316
+ //
32317
+ // The consequence was not a keyboard annoyance, it was silent data corruption.
32318
+ // The deck's handler called preventDefault() on space, so the spaces a viewer
32319
+ // typed never reached the editor and words concatenated -
32320
+ // "albreakevenreached in June 2026" - with Save sitting right there. In English
32321
+ // prose a reader might catch it; in a number, a product name or a URL they
32322
+ // would not.
32323
+ //
32324
+ // Registration order cannot be won, so win on PHASE instead. The capture path
32325
+ // is window -> document -> ... -> target, so a capture listener on the window object
32326
+ // fires before any document-level or bubble-phase listener no matter when it
32327
+ // was registered. stopImmediatePropagation() then keeps the event from ever
32328
+ // reaching the deck.
32329
+ //
32330
+ // The one case this does not beat is an artefact that itself registers on
32331
+ // the window object with capture BEFORE the bridge loads. Deck templates use
32332
+ // document.addEventListener for keydown, so that is theoretical rather
32333
+ // than observed - but it is a real limit and worth knowing before someone
32334
+ // assumes this is airtight.
32335
+ //
32336
+ // Note what is deliberately NOT called for ordinary keys: preventDefault(). The
32337
+ // whole point is that space, arrows, Home/End and PageUp/PageDown do their
32338
+ // normal text-editing work. We suppress the artefact, not the browser.
32339
+ window.addEventListener('keydown', function(e){
32340
+ // Not editing: the artefact keeps its keyboard entirely. Slide navigation
32341
+ // must behave exactly as it does today (ENG-8500 AC2).
32307
32342
  if(!editing) return;
32308
- if(e.key==='Escape'){ e.preventDefault(); endEdit(false); }
32309
- else if(e.key==='Enter' && !e.shiftKey){ e.preventDefault(); endEdit(true); }
32310
- });
32343
+ // Editing, but the keystroke is going somewhere else (the viewer clicked
32344
+ // away, or is in the shell's own UI). Not ours to swallow.
32345
+ var t=e.target;
32346
+ var inEditor = t===editing || (editing.contains && t && t.nodeType && editing.contains(t));
32347
+ if(!inEditor) return;
32348
+
32349
+ // Escape cancels the edit; Enter commits. Both are deliberate terminal
32350
+ // actions rather than text input, so they DO preventDefault - Enter must not
32351
+ // also insert a newline into the field it is closing. Shift+Enter is left
32352
+ // alone as a genuine newline.
32353
+ if(e.key==='Escape'){ e.preventDefault(); e.stopImmediatePropagation(); endEdit(false); return; }
32354
+ if(e.key==='Enter' && !e.shiftKey){ e.preventDefault(); e.stopImmediatePropagation(); endEdit(true); return; }
32355
+
32356
+ // Everything else: let the browser handle it as text input, and stop the
32357
+ // artefact's own handlers from seeing it at all.
32358
+ e.stopImmediatePropagation();
32359
+ }, true);
32311
32360
 
32312
32361
  document.addEventListener('mouseup', function(){
32313
32362
  if(editing) return; // a selection inside the editor is for the cursor, not a comment
@@ -38641,11 +38641,60 @@ var MARKUP_BRIDGE_SCRIPT = `<script>(function(){
38641
38641
  e.preventDefault(); e.stopPropagation(); startEditTextNode(tn, el);
38642
38642
  }
38643
38643
  }, true);
38644
- document.addEventListener('keydown', function(e){
38644
+ // ENG-8500: while the inline editor is focused, the artefact's OWN keyboard
38645
+ // handlers must not see the keystroke.
38646
+ //
38647
+ // Decks ship as a single self-contained file with their own slide navigation
38648
+ // bound to space and the arrow keys, and that script is agent-authored content
38649
+ // we neither control nor can retro-patch - the published object is immutable,
38650
+ // so every deck already out there has its handler baked in. It also runs FIRST:
38651
+ // the bridge is appended after the artefact HTML (frame.srcdoc = html +
38652
+ // MARKUP_BRIDGE in publisher.ts), so the deck registers its listener before we
38653
+ // register ours.
38654
+ //
38655
+ // The consequence was not a keyboard annoyance, it was silent data corruption.
38656
+ // The deck's handler called preventDefault() on space, so the spaces a viewer
38657
+ // typed never reached the editor and words concatenated -
38658
+ // "albreakevenreached in June 2026" - with Save sitting right there. In English
38659
+ // prose a reader might catch it; in a number, a product name or a URL they
38660
+ // would not.
38661
+ //
38662
+ // Registration order cannot be won, so win on PHASE instead. The capture path
38663
+ // is window -> document -> ... -> target, so a capture listener on the window object
38664
+ // fires before any document-level or bubble-phase listener no matter when it
38665
+ // was registered. stopImmediatePropagation() then keeps the event from ever
38666
+ // reaching the deck.
38667
+ //
38668
+ // The one case this does not beat is an artefact that itself registers on
38669
+ // the window object with capture BEFORE the bridge loads. Deck templates use
38670
+ // document.addEventListener for keydown, so that is theoretical rather
38671
+ // than observed - but it is a real limit and worth knowing before someone
38672
+ // assumes this is airtight.
38673
+ //
38674
+ // Note what is deliberately NOT called for ordinary keys: preventDefault(). The
38675
+ // whole point is that space, arrows, Home/End and PageUp/PageDown do their
38676
+ // normal text-editing work. We suppress the artefact, not the browser.
38677
+ window.addEventListener('keydown', function(e){
38678
+ // Not editing: the artefact keeps its keyboard entirely. Slide navigation
38679
+ // must behave exactly as it does today (ENG-8500 AC2).
38645
38680
  if(!editing) return;
38646
- if(e.key==='Escape'){ e.preventDefault(); endEdit(false); }
38647
- else if(e.key==='Enter' && !e.shiftKey){ e.preventDefault(); endEdit(true); }
38648
- });
38681
+ // Editing, but the keystroke is going somewhere else (the viewer clicked
38682
+ // away, or is in the shell's own UI). Not ours to swallow.
38683
+ var t=e.target;
38684
+ var inEditor = t===editing || (editing.contains && t && t.nodeType && editing.contains(t));
38685
+ if(!inEditor) return;
38686
+
38687
+ // Escape cancels the edit; Enter commits. Both are deliberate terminal
38688
+ // actions rather than text input, so they DO preventDefault - Enter must not
38689
+ // also insert a newline into the field it is closing. Shift+Enter is left
38690
+ // alone as a genuine newline.
38691
+ if(e.key==='Escape'){ e.preventDefault(); e.stopImmediatePropagation(); endEdit(false); return; }
38692
+ if(e.key==='Enter' && !e.shiftKey){ e.preventDefault(); e.stopImmediatePropagation(); endEdit(true); return; }
38693
+
38694
+ // Everything else: let the browser handle it as text input, and stop the
38695
+ // artefact's own handlers from seeing it at all.
38696
+ e.stopImmediatePropagation();
38697
+ }, true);
38649
38698
 
38650
38699
  document.addEventListener('mouseup', function(){
38651
38700
  if(editing) return; // a selection inside the editor is for the cursor, not a comment
@@ -32525,11 +32525,60 @@ var MARKUP_BRIDGE_SCRIPT = `<script>(function(){
32525
32525
  e.preventDefault(); e.stopPropagation(); startEditTextNode(tn, el);
32526
32526
  }
32527
32527
  }, true);
32528
- document.addEventListener('keydown', function(e){
32528
+ // ENG-8500: while the inline editor is focused, the artefact's OWN keyboard
32529
+ // handlers must not see the keystroke.
32530
+ //
32531
+ // Decks ship as a single self-contained file with their own slide navigation
32532
+ // bound to space and the arrow keys, and that script is agent-authored content
32533
+ // we neither control nor can retro-patch - the published object is immutable,
32534
+ // so every deck already out there has its handler baked in. It also runs FIRST:
32535
+ // the bridge is appended after the artefact HTML (frame.srcdoc = html +
32536
+ // MARKUP_BRIDGE in publisher.ts), so the deck registers its listener before we
32537
+ // register ours.
32538
+ //
32539
+ // The consequence was not a keyboard annoyance, it was silent data corruption.
32540
+ // The deck's handler called preventDefault() on space, so the spaces a viewer
32541
+ // typed never reached the editor and words concatenated -
32542
+ // "albreakevenreached in June 2026" - with Save sitting right there. In English
32543
+ // prose a reader might catch it; in a number, a product name or a URL they
32544
+ // would not.
32545
+ //
32546
+ // Registration order cannot be won, so win on PHASE instead. The capture path
32547
+ // is window -> document -> ... -> target, so a capture listener on the window object
32548
+ // fires before any document-level or bubble-phase listener no matter when it
32549
+ // was registered. stopImmediatePropagation() then keeps the event from ever
32550
+ // reaching the deck.
32551
+ //
32552
+ // The one case this does not beat is an artefact that itself registers on
32553
+ // the window object with capture BEFORE the bridge loads. Deck templates use
32554
+ // document.addEventListener for keydown, so that is theoretical rather
32555
+ // than observed - but it is a real limit and worth knowing before someone
32556
+ // assumes this is airtight.
32557
+ //
32558
+ // Note what is deliberately NOT called for ordinary keys: preventDefault(). The
32559
+ // whole point is that space, arrows, Home/End and PageUp/PageDown do their
32560
+ // normal text-editing work. We suppress the artefact, not the browser.
32561
+ window.addEventListener('keydown', function(e){
32562
+ // Not editing: the artefact keeps its keyboard entirely. Slide navigation
32563
+ // must behave exactly as it does today (ENG-8500 AC2).
32529
32564
  if(!editing) return;
32530
- if(e.key==='Escape'){ e.preventDefault(); endEdit(false); }
32531
- else if(e.key==='Enter' && !e.shiftKey){ e.preventDefault(); endEdit(true); }
32532
- });
32565
+ // Editing, but the keystroke is going somewhere else (the viewer clicked
32566
+ // away, or is in the shell's own UI). Not ours to swallow.
32567
+ var t=e.target;
32568
+ var inEditor = t===editing || (editing.contains && t && t.nodeType && editing.contains(t));
32569
+ if(!inEditor) return;
32570
+
32571
+ // Escape cancels the edit; Enter commits. Both are deliberate terminal
32572
+ // actions rather than text input, so they DO preventDefault - Enter must not
32573
+ // also insert a newline into the field it is closing. Shift+Enter is left
32574
+ // alone as a genuine newline.
32575
+ if(e.key==='Escape'){ e.preventDefault(); e.stopImmediatePropagation(); endEdit(false); return; }
32576
+ if(e.key==='Enter' && !e.shiftKey){ e.preventDefault(); e.stopImmediatePropagation(); endEdit(true); return; }
32577
+
32578
+ // Everything else: let the browser handle it as text input, and stop the
32579
+ // artefact's own handlers from seeing it at all.
32580
+ e.stopImmediatePropagation();
32581
+ }, true);
32533
32582
 
32534
32583
  document.addEventListener('mouseup', function(){
32535
32584
  if(editing) return; // a selection inside the editor is for the cursor, not a comment
@@ -32851,11 +32851,60 @@ var MARKUP_BRIDGE_SCRIPT = `<script>(function(){
32851
32851
  e.preventDefault(); e.stopPropagation(); startEditTextNode(tn, el);
32852
32852
  }
32853
32853
  }, true);
32854
- document.addEventListener('keydown', function(e){
32854
+ // ENG-8500: while the inline editor is focused, the artefact's OWN keyboard
32855
+ // handlers must not see the keystroke.
32856
+ //
32857
+ // Decks ship as a single self-contained file with their own slide navigation
32858
+ // bound to space and the arrow keys, and that script is agent-authored content
32859
+ // we neither control nor can retro-patch - the published object is immutable,
32860
+ // so every deck already out there has its handler baked in. It also runs FIRST:
32861
+ // the bridge is appended after the artefact HTML (frame.srcdoc = html +
32862
+ // MARKUP_BRIDGE in publisher.ts), so the deck registers its listener before we
32863
+ // register ours.
32864
+ //
32865
+ // The consequence was not a keyboard annoyance, it was silent data corruption.
32866
+ // The deck's handler called preventDefault() on space, so the spaces a viewer
32867
+ // typed never reached the editor and words concatenated -
32868
+ // "albreakevenreached in June 2026" - with Save sitting right there. In English
32869
+ // prose a reader might catch it; in a number, a product name or a URL they
32870
+ // would not.
32871
+ //
32872
+ // Registration order cannot be won, so win on PHASE instead. The capture path
32873
+ // is window -> document -> ... -> target, so a capture listener on the window object
32874
+ // fires before any document-level or bubble-phase listener no matter when it
32875
+ // was registered. stopImmediatePropagation() then keeps the event from ever
32876
+ // reaching the deck.
32877
+ //
32878
+ // The one case this does not beat is an artefact that itself registers on
32879
+ // the window object with capture BEFORE the bridge loads. Deck templates use
32880
+ // document.addEventListener for keydown, so that is theoretical rather
32881
+ // than observed - but it is a real limit and worth knowing before someone
32882
+ // assumes this is airtight.
32883
+ //
32884
+ // Note what is deliberately NOT called for ordinary keys: preventDefault(). The
32885
+ // whole point is that space, arrows, Home/End and PageUp/PageDown do their
32886
+ // normal text-editing work. We suppress the artefact, not the browser.
32887
+ window.addEventListener('keydown', function(e){
32888
+ // Not editing: the artefact keeps its keyboard entirely. Slide navigation
32889
+ // must behave exactly as it does today (ENG-8500 AC2).
32855
32890
  if(!editing) return;
32856
- if(e.key==='Escape'){ e.preventDefault(); endEdit(false); }
32857
- else if(e.key==='Enter' && !e.shiftKey){ e.preventDefault(); endEdit(true); }
32858
- });
32891
+ // Editing, but the keystroke is going somewhere else (the viewer clicked
32892
+ // away, or is in the shell's own UI). Not ours to swallow.
32893
+ var t=e.target;
32894
+ var inEditor = t===editing || (editing.contains && t && t.nodeType && editing.contains(t));
32895
+ if(!inEditor) return;
32896
+
32897
+ // Escape cancels the edit; Enter commits. Both are deliberate terminal
32898
+ // actions rather than text input, so they DO preventDefault - Enter must not
32899
+ // also insert a newline into the field it is closing. Shift+Enter is left
32900
+ // alone as a genuine newline.
32901
+ if(e.key==='Escape'){ e.preventDefault(); e.stopImmediatePropagation(); endEdit(false); return; }
32902
+ if(e.key==='Enter' && !e.shiftKey){ e.preventDefault(); e.stopImmediatePropagation(); endEdit(true); return; }
32903
+
32904
+ // Everything else: let the browser handle it as text input, and stop the
32905
+ // artefact's own handlers from seeing it at all.
32906
+ e.stopImmediatePropagation();
32907
+ }, true);
32859
32908
 
32860
32909
  document.addEventListener('mouseup', function(){
32861
32910
  if(editing) return; // a selection inside the editor is for the cursor, not a comment
@@ -37,7 +37,7 @@ import {
37
37
  writeDirectChatSessionState,
38
38
  writeEgressAllowlist,
39
39
  writePersistentClaudeWrapper
40
- } from "./chunk-SSRYNA7T.js";
40
+ } from "./chunk-XH3O62OZ.js";
41
41
  import "./chunk-XWVM4KPK.js";
42
42
  export {
43
43
  EGRESS_BASELINE_DOMAINS,
@@ -79,4 +79,4 @@ export {
79
79
  writeEgressAllowlist,
80
80
  writePersistentClaudeWrapper
81
81
  };
82
- //# sourceMappingURL=persistent-session-ZB5BXOWR.js.map
82
+ //# sourceMappingURL=persistent-session-U4GCKL6C.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-SSRYNA7T.js";
3
+ } from "./chunk-XH3O62OZ.js";
4
4
  import "./chunk-XWVM4KPK.js";
5
5
 
6
6
  // src/lib/responsiveness-probe.ts
@@ -662,4 +662,4 @@ export {
662
662
  readAndResetSlackReplyBindingClassifications,
663
663
  readAndResetSlackReplyTargetClassifications
664
664
  };
665
- //# sourceMappingURL=responsiveness-probe-4KU7FOTM.js.map
665
+ //# sourceMappingURL=responsiveness-probe-G2CAGG6M.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.518",
3
+ "version": "0.28.519",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {