@integrity-labs/agt-cli 0.28.938 → 0.28.940

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.
package/dist/mcp/index.js CHANGED
@@ -46316,6 +46316,25 @@ function buildKanbanUpdateItem(id, fields) {
46316
46316
  return item;
46317
46317
  }
46318
46318
 
46319
+ // src/kanban-add.ts
46320
+ function buildKanbanAddItem(params) {
46321
+ return {
46322
+ title: params.title,
46323
+ description: params.description,
46324
+ priority: params.priority ?? 2,
46325
+ status: params.status ?? "todo",
46326
+ estimated_minutes: params.estimated_minutes,
46327
+ deliverable: params.deliverable,
46328
+ source: params.source ?? "manual",
46329
+ source_integration: params.source_integration,
46330
+ source_external_id: params.source_external_id,
46331
+ source_url: params.source_url,
46332
+ deliver_to: params.deliver_to,
46333
+ no_channel_origin: params.no_channel_origin,
46334
+ project_id: params.project_id
46335
+ };
46336
+ }
46337
+
46319
46338
  // src/assign-human.ts
46320
46339
  function describeAssignHumanResult(resp, email2) {
46321
46340
  if (!resp.ok) {
@@ -46859,7 +46878,10 @@ server.tool(
46859
46878
  source_external_id: external_exports.string().optional().describe('ID in the external system (e.g., "ENG-123")'),
46860
46879
  source_url: external_exports.string().optional().describe("Deep link URL to the external source"),
46861
46880
  deliver_to: external_exports.string().optional().describe(
46862
- "Optional: the Slack user id of the person who asked for this (the requester), so you can notify/deliver to them when the task needs their input or is done. Omit to default to whoever you are talking to right now (auto-detected from the conversation this card came from)."
46881
+ "Optional: the Slack user id of the person who asked for this (the requester), so you can notify/deliver to them when the task needs their input or is done. If omitted on a card that came FROM a conversation, it defaults to the person you are talking to. It never defaults for a card created with no_channel_origin: true."
46882
+ ),
46883
+ no_channel_origin: external_exports.boolean().optional().describe(
46884
+ "Set true when this card did NOT come from a message someone sent you: work you started yourself, a scheduled/routine run, follow-up you decided to do, anything not answering a specific conversation. Without it, a card created shortly after any inbound message is attached to THAT conversation - its progress card posts into that person's thread and its result is addressed to them, even if the work has nothing to do with them. Leave it unset for a card that IS the answer to the message you are handling."
46863
46885
  ),
46864
46886
  project_id: external_exports.string().uuid().optional().describe(
46865
46887
  "Optional project to file this task under (id from projects_list). Groups the task with related tasks/artefacts across agents. Reuse an existing project where one fits; use projects_create only after checking projects_list and confirming with the human."
@@ -46869,22 +46891,9 @@ server.tool(
46869
46891
  const data = await apiPost("/host/kanban", {
46870
46892
  agent_id: AGT_AGENT_ID,
46871
46893
  run_id: AGT_RUN_ID,
46872
- add: [
46873
- {
46874
- title: params.title,
46875
- description: params.description,
46876
- priority: params.priority ?? 2,
46877
- status: params.status ?? "todo",
46878
- estimated_minutes: params.estimated_minutes,
46879
- deliverable: params.deliverable,
46880
- source: params.source ?? "manual",
46881
- source_integration: params.source_integration,
46882
- source_external_id: params.source_external_id,
46883
- source_url: params.source_url,
46884
- deliver_to: params.deliver_to,
46885
- project_id: params.project_id
46886
- }
46887
- ]
46894
+ // ENG-10583: built in kanban-add.ts so a test can pin that
46895
+ // `no_channel_origin` actually reaches the server.
46896
+ add: [buildKanbanAddItem(params)]
46888
46897
  });
46889
46898
  const text = kanbanAddResultText(data, params.title, params.status ?? "todo");
46890
46899
  return {
@@ -39554,6 +39554,14 @@ function channelReplayEnabled() {
39554
39554
  defaultValue: true
39555
39555
  });
39556
39556
  }
39557
+ function resolveSessionLiveness(i) {
39558
+ if (!i.env.TMUX) return "unknown";
39559
+ if (!i.codeName || i.codeName === "unknown") return "unknown";
39560
+ const probe = i.probe(i.codeName);
39561
+ if (probe.tmux === "dead" || probe.claude === "dead") return "dead";
39562
+ if (probe.tmux === "alive" && probe.claude === "alive") return "alive";
39563
+ return "unknown";
39564
+ }
39557
39565
  function combineMarkerReplayFacts(markers) {
39558
39566
  if (markers.length === 0) return null;
39559
39567
  return {
@@ -39569,7 +39577,7 @@ function markerReplayable(i) {
39569
39577
  }
39570
39578
  function shouldReplayMarker(i) {
39571
39579
  if (!markerReplayable(i)) return false;
39572
- if (!i.sessionAlive) return false;
39580
+ if (i.sessionState === "dead") return false;
39573
39581
  const paneFreshDeferMax = i.paneFreshDeferMaxMs ?? paneFreshDeferMaxMs();
39574
39582
  const minAge = i.minAgeMs ?? Math.min(REPLY_WEDGED_THRESHOLD_MS, Math.floor(paneFreshDeferMax / 2));
39575
39583
  if (i.markerAgeMs < minAge) return false;
@@ -48765,9 +48773,12 @@ var SLACK_REPLAY_SCAN_INTERVAL_MS = 6e4;
48765
48773
  async function replayPendingSlackMarkers() {
48766
48774
  if (!channelReplayEnabled()) return;
48767
48775
  if (!SLACK_PENDING_INBOUND_DIR || !existsSync10(SLACK_PENDING_INBOUND_DIR)) return;
48768
- const probe = process.env.TMUX && AGENT_CODE_NAME ? probeAgentSessionCached(AGENT_CODE_NAME) : { tmux: "unknown", claude: "unknown" };
48769
- const sessionAlive = probe.tmux === "alive" && probe.claude === "alive";
48770
- if (!sessionAlive) return;
48776
+ const sessionState = resolveSessionLiveness({
48777
+ env: process.env,
48778
+ codeName: AGENT_CODE_NAME,
48779
+ probe: probeAgentSessionCached
48780
+ });
48781
+ if (sessionState === "dead") return;
48771
48782
  let filenames;
48772
48783
  try {
48773
48784
  filenames = readdirSync7(SLACK_PENDING_INBOUND_DIR);
@@ -48803,7 +48814,7 @@ async function replayPendingSlackMarkers() {
48803
48814
  if (!shouldReplayMarker({
48804
48815
  enabled: true,
48805
48816
  hasPayload: Boolean(marker.payload),
48806
- sessionAlive,
48817
+ sessionState,
48807
48818
  markerAgeMs: ageMs,
48808
48819
  replayCount: marker.replay_count ?? 0,
48809
48820
  paneFreshAgeMs,
@@ -42165,6 +42165,14 @@ function channelReplayEnabled() {
42165
42165
  defaultValue: true
42166
42166
  });
42167
42167
  }
42168
+ function resolveSessionLiveness(i) {
42169
+ if (!i.env.TMUX) return "unknown";
42170
+ if (!i.codeName || i.codeName === "unknown") return "unknown";
42171
+ const probe = i.probe(i.codeName);
42172
+ if (probe.tmux === "dead" || probe.claude === "dead") return "dead";
42173
+ if (probe.tmux === "alive" && probe.claude === "alive") return "alive";
42174
+ return "unknown";
42175
+ }
42168
42176
  function combineMarkerReplayFacts(markers) {
42169
42177
  if (markers.length === 0) return null;
42170
42178
  return {
@@ -42180,7 +42188,7 @@ function markerReplayable(i) {
42180
42188
  }
42181
42189
  function shouldReplayMarker(i) {
42182
42190
  if (!markerReplayable(i)) return false;
42183
- if (!i.sessionAlive) return false;
42191
+ if (i.sessionState === "dead") return false;
42184
42192
  const paneFreshDeferMax = i.paneFreshDeferMaxMs ?? paneFreshDeferMaxMs();
42185
42193
  const minAge = i.minAgeMs ?? Math.min(REPLY_WEDGED_THRESHOLD_MS, Math.floor(paneFreshDeferMax / 2));
42186
42194
  if (i.markerAgeMs < minAge) return false;
@@ -45713,9 +45721,12 @@ var REPLAY_SCAN_INTERVAL_MS = 6e4;
45713
45721
  async function replayPendingTelegramMarkers() {
45714
45722
  if (!channelReplayEnabled()) return;
45715
45723
  if (!PENDING_INBOUND_DIR || !existsSync9(PENDING_INBOUND_DIR)) return;
45716
- const probe = process.env.TMUX && AGENT_CODE_NAME && AGENT_CODE_NAME !== "unknown" ? probeAgentSessionCached(AGENT_CODE_NAME) : { tmux: "unknown", claude: "unknown" };
45717
- const sessionAlive = probe.tmux === "alive" && probe.claude === "alive";
45718
- if (!sessionAlive) return;
45724
+ const sessionState = resolveSessionLiveness({
45725
+ env: process.env,
45726
+ codeName: AGENT_CODE_NAME,
45727
+ probe: probeAgentSessionCached
45728
+ });
45729
+ if (sessionState === "dead") return;
45719
45730
  let filenames;
45720
45731
  try {
45721
45732
  filenames = readdirSync6(PENDING_INBOUND_DIR);
@@ -45751,7 +45762,7 @@ async function replayPendingTelegramMarkers() {
45751
45762
  if (!shouldReplayMarker({
45752
45763
  enabled: true,
45753
45764
  hasPayload: Boolean(marker.payload),
45754
- sessionAlive,
45765
+ sessionState,
45755
45766
  markerAgeMs: ageMs,
45756
45767
  replayCount: marker.replay_count ?? 0,
45757
45768
  paneFreshAgeMs,
@@ -62,8 +62,8 @@ import {
62
62
  writeDirectChatSessionState,
63
63
  writeEgressAllowlist,
64
64
  writePersistentClaudeWrapper
65
- } from "./chunk-3ZYWTOUW.js";
66
- import "./chunk-TH3HADAH.js";
65
+ } from "./chunk-5LIYT2YF.js";
66
+ import "./chunk-4ZRXKEXO.js";
67
67
  import "./chunk-XWVM4KPK.js";
68
68
  export {
69
69
  CLAUDE_HOST_WIDE,
@@ -130,4 +130,4 @@ export {
130
130
  writeEgressAllowlist,
131
131
  writePersistentClaudeWrapper
132
132
  };
133
- //# sourceMappingURL=persistent-session-JL7QVQJH.js.map
133
+ //# sourceMappingURL=persistent-session-BBN5CBFI.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-3ZYWTOUW.js";
4
- import "./chunk-TH3HADAH.js";
3
+ } from "./chunk-5LIYT2YF.js";
4
+ import "./chunk-4ZRXKEXO.js";
5
5
  import "./chunk-XWVM4KPK.js";
6
6
 
7
7
  // src/lib/responsiveness-probe.ts
@@ -799,4 +799,4 @@ export {
799
799
  readAndResetSlackReplyBindingClassifications,
800
800
  readAndResetSlackReplyTargetClassifications
801
801
  };
802
- //# sourceMappingURL=responsiveness-probe-H5HCW7HT.js.map
802
+ //# sourceMappingURL=responsiveness-probe-5GAOO7P4.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sessionTranscriptDir
3
- } from "./chunk-TH3HADAH.js";
3
+ } from "./chunk-4ZRXKEXO.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-PRK7BNLU.js.map
206
+ //# sourceMappingURL=session-auth-dead-FRVOFPZL.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.938",
3
+ "version": "0.28.940",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {