@integrity-labs/agt-cli 0.28.552 → 0.28.554

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.
@@ -42,7 +42,7 @@ import {
42
42
  resolveConnectivityProbe,
43
43
  worseConnectivityOutcome,
44
44
  wrapScheduledTaskPrompt
45
- } from "./chunk-ST4PZ6RF.js";
45
+ } from "./chunk-6WAJQWYD.js";
46
46
  import {
47
47
  parsePsRows
48
48
  } from "./chunk-XWVM4KPK.js";
@@ -5608,7 +5608,7 @@ function exchangeFailureKind(err) {
5608
5608
  }
5609
5609
 
5610
5610
  // src/lib/api-client.ts
5611
- var agtCliVersion = true ? "0.28.552" : "dev";
5611
+ var agtCliVersion = true ? "0.28.554" : "dev";
5612
5612
  var lastConfigHash = null;
5613
5613
  function setConfigHash(hash) {
5614
5614
  lastConfigHash = hash && hash.length > 0 ? hash : null;
@@ -8920,4 +8920,4 @@ export {
8920
8920
  managerInstallSystemUnitCommand,
8921
8921
  managerUninstallSystemUnitCommand
8922
8922
  };
8923
- //# sourceMappingURL=chunk-3R4LUCPB.js.map
8923
+ //# sourceMappingURL=chunk-D6GENZSV.js.map
@@ -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-KVONGDAL.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-AQYYRJFQ.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-TZKJGXZU.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-EMHLLRWQ.js.map
@@ -53,7 +53,7 @@ import {
53
53
  safeWriteJsonAtomic,
54
54
  setConfigHash,
55
55
  tripClass
56
- } from "../chunk-3R4LUCPB.js";
56
+ } from "../chunk-D6GENZSV.js";
57
57
  import {
58
58
  getProjectDir as getProjectDir2,
59
59
  getReadyTasks,
@@ -181,7 +181,7 @@ import {
181
181
  toOpencodeModel,
182
182
  transcriptActivityAgeSeconds,
183
183
  writeEgressAllowlist
184
- } from "../chunk-ST4PZ6RF.js";
184
+ } from "../chunk-6WAJQWYD.js";
185
185
  import {
186
186
  reapOrphanChannelMcps
187
187
  } from "../chunk-XWVM4KPK.js";
@@ -10512,7 +10512,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
10512
10512
  var lastVersionCheckAt = 0;
10513
10513
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
10514
10514
  var lastResponsivenessProbeAt = 0;
10515
- var agtCliVersion = true ? "0.28.552" : "dev";
10515
+ var agtCliVersion = true ? "0.28.554" : "dev";
10516
10516
  function resolveBrewPath(execFileSync2) {
10517
10517
  try {
10518
10518
  const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -11816,7 +11816,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
11816
11816
  if (codeNames.length === 0) return;
11817
11817
  void (async () => {
11818
11818
  try {
11819
- const { collectDiagnostics } = await import("../persistent-session-KVONGDAL.js");
11819
+ const { collectDiagnostics } = await import("../persistent-session-AQYYRJFQ.js");
11820
11820
  await api.post("/host/heartbeat", {
11821
11821
  host_id: hostId,
11822
11822
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor)
@@ -11924,7 +11924,7 @@ async function pollCycle() {
11924
11924
  }
11925
11925
  try {
11926
11926
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
11927
- const { collectDiagnostics } = await import("../persistent-session-KVONGDAL.js");
11927
+ const { collectDiagnostics } = await import("../persistent-session-AQYYRJFQ.js");
11928
11928
  const diagCodeNames = [...agentState.persistentSessionAgents];
11929
11929
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor) : void 0;
11930
11930
  let tailscaleHostname;
@@ -12047,7 +12047,7 @@ async function pollCycle() {
12047
12047
  collectPanelessActivityProbes,
12048
12048
  getResponsivenessIntervalMs,
12049
12049
  occupancyQualificationClassifications
12050
- } = await import("../responsiveness-probe-OUHRYJYH.js");
12050
+ } = await import("../responsiveness-probe-PCMO3QQW.js");
12051
12051
  const probeIntervalMs = getResponsivenessIntervalMs();
12052
12052
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
12053
12053
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -12138,7 +12138,7 @@ async function pollCycle() {
12138
12138
  collectResponsivenessProbes,
12139
12139
  livePendingInboundOldestAgeSeconds,
12140
12140
  parkPendingInbound
12141
- } = await import("../responsiveness-probe-OUHRYJYH.js");
12141
+ } = await import("../responsiveness-probe-PCMO3QQW.js");
12142
12142
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
12143
12143
  const wedgeNow = /* @__PURE__ */ new Date();
12144
12144
  const liveAgents = agentState.persistentSessionAgents;
@@ -15672,7 +15672,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
15672
15672
  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}`));
15673
15673
  void (async () => {
15674
15674
  try {
15675
- const { collectDiagnostics } = await import("../persistent-session-KVONGDAL.js");
15675
+ const { collectDiagnostics } = await import("../persistent-session-AQYYRJFQ.js");
15676
15676
  await api.post("/host/heartbeat", {
15677
15677
  host_id: hostId,
15678
15678
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
@@ -15722,7 +15722,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
15722
15722
  }
15723
15723
  try {
15724
15724
  const hostId = await getHostId();
15725
- const { collectDiagnostics } = await import("../persistent-session-KVONGDAL.js");
15725
+ const { collectDiagnostics } = await import("../persistent-session-AQYYRJFQ.js");
15726
15726
  await api.post("/host/heartbeat", {
15727
15727
  host_id: hostId,
15728
15728
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
@@ -16294,7 +16294,7 @@ async function processClaudePairSessions(agents) {
16294
16294
  killPairSession,
16295
16295
  pairTmuxSession,
16296
16296
  finalizeClaudePairOnboarding
16297
- } = await import("../claude-pair-runtime-TZKJGXZU.js");
16297
+ } = await import("../claude-pair-runtime-EMHLLRWQ.js");
16298
16298
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
16299
16299
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
16300
16300
  const killed = await killPairSession(pairTmuxSession(pairId));
package/dist/mcp/index.js CHANGED
@@ -22456,7 +22456,7 @@ server.tool(
22456
22456
  );
22457
22457
  server.tool(
22458
22458
  "kanban_assign",
22459
- "Delegate a task to ANOTHER agent by placing a new card on THEIR board. Use this to hand off or route work to a teammate agent (e.g. you triage a request and route the fix to a specialist agent). This is different from kanban_add, which adds a card to YOUR OWN board. By default the target must be an agent on your OWN team. To assign across teams within your organization, also pass `target_team` (the other team's slug) \u2014 this only works if your org has enabled cross-team assignment and a peer grant links the two teams; otherwise it reads as not-found. When the target finishes, you get a completion notice back on your board. Don't know the agent's code_name or team slug? Call directory_lookup first to find them.",
22459
+ 'Delegate a task to ANOTHER agent by placing a new card on THEIR board. Use this to hand off or route work to a teammate agent (e.g. you triage a request and route the fix to a specialist agent). This is different from kanban_add, which adds a card to YOUR OWN board. By default the target must be an agent on your OWN team. To assign across teams within your organization, also pass `target_team` (the other team\'s slug) \u2014 this only works if your org has enabled cross-team assignment and a peer grant links the two teams; otherwise it reads as not-found. When the target finishes, you get a completion notice back on your board. Delegating a ticket? Pass `source_integration` + `source_external_id` (e.g. "composio/linear" / "ENG-123") so the card is linked to it and completing the card pushes status back to the issue \u2014 putting the URL in the description only leaves the link in prose. Don\'t know the agent\'s code_name or team slug? Call directory_lookup first to find them.',
22460
22460
  {
22461
22461
  target_agent: external_exports.string().describe(
22462
22462
  "The teammate to assign to: their agent code_name (kebab-case) or agent UUID. On your own team unless target_team is also set."
@@ -22473,7 +22473,16 @@ server.tool(
22473
22473
  deliverable: external_exports.string().optional().describe("Expected output/deliverable from the target"),
22474
22474
  deliver_to: external_exports.string().trim().regex(/^[UW][A-Z0-9]{6,}$/, "deliver_to must be a Slack user id (e.g. U01234567)").optional().describe(
22475
22475
  "Optional: a Slack user id (e.g. U01234567) to DM the completion notice to directly when the target finishes, in ADDITION to the notice landing on your board. Use this to deliver the result straight to the person who wanted it (e.g. the requester's Slack id from the originating message) instead of hand-forwarding it yourself. Must be a Slack user id, not a @handle or display name."
22476
- )
22476
+ ),
22477
+ // ENG-8649: the source linkage kanban_add has always had. Pass BOTH or
22478
+ // neither — one alone is rejected.
22479
+ source_integration: external_exports.string().optional().describe(
22480
+ 'Integration the work came from \u2014 the toolkit slug, e.g. "composio/linear" or "composio/jira". A bare name ("linear") is accepted and normalised. Pass together with source_external_id when you are delegating a ticket, so completing the card pushes the status back to the issue instead of the link living only in prose. Status write-back only happens for integrations with an import adapter (linear, jira, asana, trello, notion); for anything else the linkage is recorded but nothing is pushed upstream.'
22481
+ ),
22482
+ source_external_id: external_exports.string().optional().describe(
22483
+ 'ID in the external system (e.g. "ENG-123"). Required alongside source_integration.'
22484
+ ),
22485
+ source_url: external_exports.string().optional().describe("Deep link to the external source (e.g. the Linear issue URL).")
22477
22486
  },
22478
22487
  async (params) => {
22479
22488
  try {
@@ -22493,7 +22502,12 @@ server.tool(
22493
22502
  ...params.status !== void 0 ? { status: params.status } : {},
22494
22503
  deliverable: params.deliverable,
22495
22504
  // CS-1438: only sent when set; the route treats absence as board-ack-only.
22496
- ...params.deliver_to !== void 0 ? { deliver_to: params.deliver_to } : {}
22505
+ ...params.deliver_to !== void 0 ? { deliver_to: params.deliver_to } : {},
22506
+ // ENG-8649: only sent when set, so an existing caller's request body is
22507
+ // byte-for-byte unchanged and the route keeps its channel-origin path.
22508
+ ...params.source_integration !== void 0 ? { source_integration: params.source_integration } : {},
22509
+ ...params.source_external_id !== void 0 ? { source_external_id: params.source_external_id } : {},
22510
+ ...params.source_url !== void 0 ? { source_url: params.source_url } : {}
22497
22511
  });
22498
22512
  const where = data.cross_team ? ` on team ${data.target_team ?? params.target_team}` : "";
22499
22513
  const inOrg = data.organization_name ? ` in ${data.organization_name}` : "";
@@ -41,7 +41,7 @@ import {
41
41
  writeDirectChatSessionState,
42
42
  writeEgressAllowlist,
43
43
  writePersistentClaudeWrapper
44
- } from "./chunk-ST4PZ6RF.js";
44
+ } from "./chunk-6WAJQWYD.js";
45
45
  import "./chunk-XWVM4KPK.js";
46
46
  export {
47
47
  EGRESS_BASELINE_DOMAINS,
@@ -87,4 +87,4 @@ export {
87
87
  writeEgressAllowlist,
88
88
  writePersistentClaudeWrapper
89
89
  };
90
- //# sourceMappingURL=persistent-session-KVONGDAL.js.map
90
+ //# sourceMappingURL=persistent-session-AQYYRJFQ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-ST4PZ6RF.js";
3
+ } from "./chunk-6WAJQWYD.js";
4
4
  import "./chunk-XWVM4KPK.js";
5
5
 
6
6
  // src/lib/responsiveness-probe.ts
@@ -689,4 +689,4 @@ export {
689
689
  readAndResetSlackReplyBindingClassifications,
690
690
  readAndResetSlackReplyTargetClassifications
691
691
  };
692
- //# sourceMappingURL=responsiveness-probe-OUHRYJYH.js.map
692
+ //# sourceMappingURL=responsiveness-probe-PCMO3QQW.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.552",
3
+ "version": "0.28.554",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {