@integrity-labs/agt-cli 0.28.785 → 0.28.787

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-HJTJ6EKF.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-5OCP47I3.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-E6TFXEK3.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-ML7KET4B.js.map
@@ -58,7 +58,7 @@ import {
58
58
  safeWriteJsonAtomic,
59
59
  setConfigHash,
60
60
  tripClass
61
- } from "../chunk-7DP5AYK4.js";
61
+ } from "../chunk-IEBDDVAG.js";
62
62
  import {
63
63
  getProjectDir as getProjectDir2,
64
64
  getReadyTasks,
@@ -120,7 +120,7 @@ import {
120
120
  takeZombieDetection,
121
121
  toOpencodeModel,
122
122
  writeEgressAllowlist
123
- } from "../chunk-P4HONWYQ.js";
123
+ } from "../chunk-EXCWZPDJ.js";
124
124
  import {
125
125
  ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
126
126
  AnchorSessionClient,
@@ -212,7 +212,7 @@ import {
212
212
  subagentActivityAgeSeconds,
213
213
  sumTranscriptUsageInWindow,
214
214
  transcriptActivityAgeSeconds
215
- } from "../chunk-WAE44B3T.js";
215
+ } from "../chunk-LLDK74IY.js";
216
216
  import {
217
217
  reapOrphanChannelMcps
218
218
  } from "../chunk-XWVM4KPK.js";
@@ -12915,7 +12915,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
12915
12915
  var dayRolloverInboundHold = /* @__PURE__ */ new Map();
12916
12916
  var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
12917
12917
  async function channelInboundActivityAgeSecondsFor(codeName) {
12918
- const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-E3VDOXGQ.js");
12918
+ const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-QYSMGG5E.js");
12919
12919
  const newest = newestPendingInboundActivityMtimeMs(dirname10(paneLogPath(codeName)));
12920
12920
  if (newest === null) return null;
12921
12921
  return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
@@ -13575,7 +13575,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
13575
13575
  var lastVersionCheckAt = 0;
13576
13576
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
13577
13577
  var lastResponsivenessProbeAt = 0;
13578
- var agtCliVersion = true ? "0.28.785" : "dev";
13578
+ var agtCliVersion = true ? "0.28.787" : "dev";
13579
13579
  function resolveBrewPath(execFileSync2) {
13580
13580
  try {
13581
13581
  const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -15122,7 +15122,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
15122
15122
  if (codeNames.length === 0) return;
15123
15123
  void (async () => {
15124
15124
  try {
15125
- const { collectDiagnostics } = await import("../persistent-session-HJTJ6EKF.js");
15125
+ const { collectDiagnostics } = await import("../persistent-session-5OCP47I3.js");
15126
15126
  await api.post("/host/heartbeat", {
15127
15127
  host_id: hostId,
15128
15128
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
@@ -15263,7 +15263,7 @@ async function pollCycleInner() {
15263
15263
  }
15264
15264
  try {
15265
15265
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
15266
- const { collectDiagnostics } = await import("../persistent-session-HJTJ6EKF.js");
15266
+ const { collectDiagnostics } = await import("../persistent-session-5OCP47I3.js");
15267
15267
  const diagCodeNames = [...agentState.persistentSessionAgents];
15268
15268
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor) : void 0;
15269
15269
  let tailscaleHostname;
@@ -15432,7 +15432,7 @@ async function pollCycleInner() {
15432
15432
  collectPanelessActivityProbes,
15433
15433
  getResponsivenessIntervalMs,
15434
15434
  occupancyQualificationClassifications
15435
- } = await import("../responsiveness-probe-E3VDOXGQ.js");
15435
+ } = await import("../responsiveness-probe-QYSMGG5E.js");
15436
15436
  const probeIntervalMs = getResponsivenessIntervalMs();
15437
15437
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
15438
15438
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -15542,7 +15542,7 @@ async function pollCycleInner() {
15542
15542
  collectResponsivenessProbes,
15543
15543
  livePendingInboundOldestAgeSeconds,
15544
15544
  parkPendingInbound
15545
- } = await import("../responsiveness-probe-E3VDOXGQ.js");
15545
+ } = await import("../responsiveness-probe-QYSMGG5E.js");
15546
15546
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
15547
15547
  const wedgeNow = /* @__PURE__ */ new Date();
15548
15548
  const liveAgents = agentState.persistentSessionAgents;
@@ -15698,7 +15698,7 @@ async function pollCycleInner() {
15698
15698
  }
15699
15699
  try {
15700
15700
  const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-JA437JIB.js");
15701
- const { probeSessionAuth } = await import("../session-auth-dead-UWEWK2WY.js");
15701
+ const { probeSessionAuth } = await import("../session-auth-dead-WFXDJQ5L.js");
15702
15702
  const observations = [];
15703
15703
  const pendingCacheCommits = [];
15704
15704
  const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
@@ -19799,7 +19799,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
19799
19799
  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}`));
19800
19800
  void (async () => {
19801
19801
  try {
19802
- const { collectDiagnostics } = await import("../persistent-session-HJTJ6EKF.js");
19802
+ const { collectDiagnostics } = await import("../persistent-session-5OCP47I3.js");
19803
19803
  await api.post("/host/heartbeat", {
19804
19804
  host_id: hostId,
19805
19805
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
@@ -19845,7 +19845,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
19845
19845
  }
19846
19846
  try {
19847
19847
  const hostId = await getHostId();
19848
- const { collectDiagnostics } = await import("../persistent-session-HJTJ6EKF.js");
19848
+ const { collectDiagnostics } = await import("../persistent-session-5OCP47I3.js");
19849
19849
  await api.post("/host/heartbeat", {
19850
19850
  host_id: hostId,
19851
19851
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
@@ -20481,7 +20481,7 @@ async function processClaudePairSessions(agents) {
20481
20481
  killPairSession,
20482
20482
  pairTmuxSession,
20483
20483
  finalizeClaudePairOnboarding
20484
- } = await import("../claude-pair-runtime-E6TFXEK3.js");
20484
+ } = await import("../claude-pair-runtime-ML7KET4B.js");
20485
20485
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
20486
20486
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
20487
20487
  const killed = await killPairSession(pairTmuxSession(pairId));
package/dist/mcp/index.js CHANGED
@@ -22392,6 +22392,17 @@ function kanbanAddResultText(data, submittedTitle, status) {
22392
22392
  ${first.duplicate_hint}` : added;
22393
22393
  }
22394
22394
 
22395
+ // src/kanban-assign-result.ts
22396
+ function kanbanAssignResultText(data, fallbackTargetAgent, fallbackTargetTeam) {
22397
+ if (!data.ok) return `Failed to assign task to ${fallbackTargetAgent}.`;
22398
+ const where = data.cross_team ? ` on team ${data.target_team ?? fallbackTargetTeam}` : "";
22399
+ const inOrg = data.organization_name ? ` in ${data.organization_name}` : "";
22400
+ const confirmation = `Assigned "${data.title}" to ${data.target_agent}${where}${inOrg} (id: ${data.id}). It will appear on their board on their next refresh.`;
22401
+ return data.duplicate_hint ? `${confirmation}
22402
+
22403
+ ${data.duplicate_hint}` : confirmation;
22404
+ }
22405
+
22395
22406
  // src/index.ts
22396
22407
  import { homedir as homedir3, tmpdir } from "os";
22397
22408
  import { basename, isAbsolute, join as join4, resolve as pathResolve, sep } from "path";
@@ -45624,36 +45635,37 @@ server.tool(
45624
45635
  },
45625
45636
  async (params) => {
45626
45637
  try {
45627
- const data = await apiPost("/host/kanban/assign", {
45628
- agent_id: AGT_AGENT_ID,
45629
- target_agent: params.target_agent,
45630
- // Only sent when assigning across teams — the route branches on its
45631
- // presence, so omit it for the same-team path. The schema rejects empty
45632
- // strings (.trim().min(1)), so a present value is always meaningful;
45633
- // check presence (!== undefined), not truthiness.
45634
- ...params.target_team !== void 0 ? { target_team: params.target_team } : {},
45635
- title: params.title,
45636
- description: params.description,
45637
- priority: params.priority ?? 2,
45638
- // ENG-6967: only send status when set, so the route applies its default
45639
- // ('todo') and the same-team handoff path stays byte-for-byte unchanged.
45640
- ...params.status !== void 0 ? { status: params.status } : {},
45641
- deliverable: params.deliverable,
45642
- // CS-1438: only sent when set; the route treats absence as board-ack-only.
45643
- ...params.deliver_to !== void 0 ? { deliver_to: params.deliver_to } : {},
45644
- // ENG-8649: only sent when set, so an existing caller's request body is
45645
- // byte-for-byte unchanged and the route keeps its channel-origin path.
45646
- ...params.source_integration !== void 0 ? { source_integration: params.source_integration } : {},
45647
- ...params.source_external_id !== void 0 ? { source_external_id: params.source_external_id } : {},
45648
- ...params.source_url !== void 0 ? { source_url: params.source_url } : {}
45649
- });
45650
- const where = data.cross_team ? ` on team ${data.target_team ?? params.target_team}` : "";
45651
- const inOrg = data.organization_name ? ` in ${data.organization_name}` : "";
45638
+ const data = await apiPost(
45639
+ "/host/kanban/assign",
45640
+ {
45641
+ agent_id: AGT_AGENT_ID,
45642
+ target_agent: params.target_agent,
45643
+ // Only sent when assigning across teams — the route branches on its
45644
+ // presence, so omit it for the same-team path. The schema rejects empty
45645
+ // strings (.trim().min(1)), so a present value is always meaningful;
45646
+ // check presence (!== undefined), not truthiness.
45647
+ ...params.target_team !== void 0 ? { target_team: params.target_team } : {},
45648
+ title: params.title,
45649
+ description: params.description,
45650
+ priority: params.priority ?? 2,
45651
+ // ENG-6967: only send status when set, so the route applies its default
45652
+ // ('todo') and the same-team handoff path stays byte-for-byte unchanged.
45653
+ ...params.status !== void 0 ? { status: params.status } : {},
45654
+ deliverable: params.deliverable,
45655
+ // CS-1438: only sent when set; the route treats absence as board-ack-only.
45656
+ ...params.deliver_to !== void 0 ? { deliver_to: params.deliver_to } : {},
45657
+ // ENG-8649: only sent when set, so an existing caller's request body is
45658
+ // byte-for-byte unchanged and the route keeps its channel-origin path.
45659
+ ...params.source_integration !== void 0 ? { source_integration: params.source_integration } : {},
45660
+ ...params.source_external_id !== void 0 ? { source_external_id: params.source_external_id } : {},
45661
+ ...params.source_url !== void 0 ? { source_url: params.source_url } : {}
45662
+ }
45663
+ );
45652
45664
  return {
45653
45665
  content: [
45654
45666
  {
45655
45667
  type: "text",
45656
- text: data.ok ? `Assigned "${data.title}" to ${data.target_agent}${where}${inOrg} (id: ${data.id}). It will appear on their board on their next refresh.` : `Failed to assign task to ${params.target_agent}.`
45668
+ text: kanbanAssignResultText(data, params.target_agent, params.target_team)
45657
45669
  }
45658
45670
  ]
45659
45671
  };
@@ -49,8 +49,8 @@ import {
49
49
  writeDirectChatSessionState,
50
50
  writeEgressAllowlist,
51
51
  writePersistentClaudeWrapper
52
- } from "./chunk-P4HONWYQ.js";
53
- import "./chunk-WAE44B3T.js";
52
+ } from "./chunk-EXCWZPDJ.js";
53
+ import "./chunk-LLDK74IY.js";
54
54
  import "./chunk-XWVM4KPK.js";
55
55
  export {
56
56
  EGRESS_BASELINE_DOMAINS,
@@ -104,4 +104,4 @@ export {
104
104
  writeEgressAllowlist,
105
105
  writePersistentClaudeWrapper
106
106
  };
107
- //# sourceMappingURL=persistent-session-HJTJ6EKF.js.map
107
+ //# sourceMappingURL=persistent-session-5OCP47I3.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-P4HONWYQ.js";
4
- import "./chunk-WAE44B3T.js";
3
+ } from "./chunk-EXCWZPDJ.js";
4
+ import "./chunk-LLDK74IY.js";
5
5
  import "./chunk-XWVM4KPK.js";
6
6
 
7
7
  // src/lib/responsiveness-probe.ts
@@ -745,4 +745,4 @@ export {
745
745
  readAndResetSlackReplyBindingClassifications,
746
746
  readAndResetSlackReplyTargetClassifications
747
747
  };
748
- //# sourceMappingURL=responsiveness-probe-E3VDOXGQ.js.map
748
+ //# sourceMappingURL=responsiveness-probe-QYSMGG5E.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sessionTranscriptDir
3
- } from "./chunk-WAE44B3T.js";
3
+ } from "./chunk-LLDK74IY.js";
4
4
 
5
5
  // src/lib/session-auth-dead.ts
6
6
  import { closeSync, openSync, readSync, readdirSync, statSync } from "fs";
@@ -203,4 +203,4 @@ export {
203
203
  decideSessionAuthState,
204
204
  probeSessionAuth
205
205
  };
206
- //# sourceMappingURL=session-auth-dead-UWEWK2WY.js.map
206
+ //# sourceMappingURL=session-auth-dead-WFXDJQ5L.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.785",
3
+ "version": "0.28.787",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {