@integrity-labs/agt-cli 0.28.282 → 0.28.283

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
@@ -21525,6 +21525,10 @@ function readRunId() {
21525
21525
  }
21526
21526
  var AGT_RUN_ID = readRunId();
21527
21527
  var AGT_TOKEN = process.env.AGT_TOKEN ?? "";
21528
+ var AGT_KANBAN_WAITING_ENABLED = (() => {
21529
+ const raw = (process.env.AGT_KANBAN_WAITING_ENABLED ?? "").trim().toLowerCase();
21530
+ return raw === "true" || raw === "1";
21531
+ })();
21528
21532
  if (!AGT_HOST || !AGT_AGENT_ID || !AGT_TOKEN && !AGT_API_KEY && !AGT_AGENT_SESSION_TOKEN) {
21529
21533
  console.error(
21530
21534
  "augmented-mcp: Missing required env vars. Need AGT_HOST, AGT_AGENT_ID, and one of AGT_AGENT_SESSION_TOKEN, AGT_TOKEN, or AGT_API_KEY"
@@ -21775,14 +21779,22 @@ server.tool(
21775
21779
  };
21776
21780
  }
21777
21781
  );
21782
+ var kanbanMoveStatuses = AGT_KANBAN_WAITING_ENABLED ? ["backlog", "todo", "in_progress", "waiting", "done", "failed"] : ["backlog", "todo", "in_progress", "done", "failed"];
21783
+ var kanbanMoveDescription = AGT_KANBAN_WAITING_ENABLED ? 'Move a kanban item to a different status column. Use status="failed" for a task attempted but not completable. Use status="waiting" when you have COMPLETED your part and cannot proceed until one specific external action happens (a person approves/answers/decides, or a dependency like a PR merge or deploy completes) - set waiting_on to that single concrete action, phrased as an instruction ("Merge PR #3120", "Approve the budget"). Do NOT use waiting to offload hard work, and do NOT confuse it with a failure. (matches the hosted kanban_move enum).' : 'Move a kanban item to a different status column. Use status="failed" to mark a task that was attempted but could not complete (matches the hosted kanban_move enum).';
21784
+ var kanbanMoveStatusDescribe = AGT_KANBAN_WAITING_ENABLED ? 'Target status. "waiting" parks the card (blocked on a human decision or an external dependency); pair it with waiting_on. "failed" closes the row as a failed attempt; there is no "cancelled" status, close no-longer-needed work via kanban_done with an explanatory result.' : 'Target status. "failed" closes the row as a failed attempt; there is no "cancelled" status, close no-longer-needed work via kanban_done with an explanatory result.';
21778
21785
  server.tool(
21779
21786
  "kanban_move",
21780
- 'Move a kanban item to a different status column. Use status="failed" to mark a task that was attempted but could not complete (matches the hosted kanban_move enum).',
21787
+ kanbanMoveDescription,
21781
21788
  {
21782
21789
  id: external_exports.string().optional().describe("Item UUID (preferred)"),
21783
21790
  title: external_exports.string().optional().describe("Item title for fuzzy match (if no id)"),
21784
- status: external_exports.enum(["backlog", "todo", "in_progress", "done", "failed"]).describe('Target status. "failed" closes the row as a failed attempt; there is no "cancelled" status \u2014 close no-longer-needed work via kanban_done with an explanatory result.'),
21785
- notes: external_exports.string().optional().describe("Progress notes")
21791
+ status: external_exports.enum(kanbanMoveStatuses).describe(kanbanMoveStatusDescribe),
21792
+ notes: external_exports.string().optional().describe("Progress notes"),
21793
+ ...AGT_KANBAN_WAITING_ENABLED ? {
21794
+ waiting_on: external_exports.string().optional().describe(
21795
+ 'Only with status="waiting": the single concrete action you are parked on, phrased as an instruction ("Merge PR #3120", "Approve the budget"). Shown as the card headline.'
21796
+ )
21797
+ } : {}
21786
21798
  },
21787
21799
  async (params) => {
21788
21800
  if (!params.id && !params.title) {
@@ -21798,7 +21810,8 @@ server.tool(
21798
21810
  id: params.id,
21799
21811
  title: params.title,
21800
21812
  status: params.status,
21801
- notes: params.notes
21813
+ notes: params.notes,
21814
+ waiting_on: params.waiting_on
21802
21815
  }
21803
21816
  ]
21804
21817
  });
@@ -23473,8 +23486,11 @@ function statusLabel(status) {
23473
23486
  backlog: "Backlog",
23474
23487
  todo: "To Do",
23475
23488
  in_progress: "In Progress",
23489
+ waiting: "Waiting",
23476
23490
  done: "Done",
23477
- failed: "Failed"
23491
+ failed: "Failed",
23492
+ // ENG-5723: reaper-only state; render it if the board carries one.
23493
+ needs_attention: "Needs attention"
23478
23494
  };
23479
23495
  return labels[status] ?? status;
23480
23496
  }
@@ -39322,7 +39322,8 @@ var KANBAN_STATUSES = [
39322
39322
  "done",
39323
39323
  "failed",
39324
39324
  "cancelled",
39325
- "needs_attention"
39325
+ "needs_attention",
39326
+ "waiting"
39326
39327
  ];
39327
39328
  var KANBAN_STATUS_SET = new Set(KANBAN_STATUSES);
39328
39329
 
@@ -40174,6 +40175,21 @@ var FLAG_REGISTRY = [
40174
40175
  // current behaviour (single-slot injection). Turning it ON only makes the
40175
40176
  // fallback MORE conservative (injects less), so it removes no control.
40176
40177
  defaultValue: false
40178
+ },
40179
+ {
40180
+ key: "kanban-waiting-status",
40181
+ description: "Let managed agents set the 'waiting' kanban status via POST /host/kanban (ADR-0044 / ENG-7493) - work that has started but is parked on a human decision or an external dependency (a PR review, an approval). This is the DEPLOY-ORDER gate (ADR-0044 section 8): the status value + its migration (20260709000003), the webapp Waiting column, and the ~7-day reaper backstop all ship first, and this flag is flipped ON per org LAST, once they are live - the moment agents are allowed to emit `waiting`. Off (default) = the API rejects an agent `waiting` write with the existing 400, exactly as today. The API gate (evaluated per-org in POST /host/kanban via getEvaluatedFlags()) is the authoritative boundary. It is ALSO materialized host-side into AGT_KANBAN_WAITING_ENABLED (ENG-7591) so the kanban_move MCP tool only exposes `waiting` to agents once the host resolves the flag on - a host-grained UX hint, not the security boundary (the per-org API gate still decides). Ships dark.",
40182
+ flagType: "boolean",
40183
+ // Declared safe value is `false`: agents cannot emit `waiting` until an operator
40184
+ // flips it on for the org, after the migration + webapp column + reaper backstop
40185
+ // are deployed. Turning it ON grants a new capability, so it is not sensitive in
40186
+ // the "relaxing a control" sense, but it MUST stay off until the deploy order is met.
40187
+ defaultValue: false,
40188
+ // Host-side materialization vehicle (ENG-7591): the manager writes this into the
40189
+ // agent's spawn env from the resolved flag so the stdio MCP server (which cannot
40190
+ // call the flag evaluator) can gate the kanban_move `waiting` option. Also the
40191
+ // highest-precedence operator override, per ADR-0022.
40192
+ envVar: "AGT_KANBAN_WAITING_ENABLED"
40177
40193
  }
40178
40194
  ];
40179
40195
  var REGISTRY_BY_KEY = new Map(FLAG_REGISTRY.map((definition) => [definition.key, definition]));
@@ -36,7 +36,7 @@ import {
36
36
  writeDirectChatSessionState,
37
37
  writeEgressAllowlist,
38
38
  writePersistentClaudeWrapper
39
- } from "./chunk-C4QMCOAN.js";
39
+ } from "./chunk-CUQUOIPW.js";
40
40
  import "./chunk-XWVM4KPK.js";
41
41
  export {
42
42
  EGRESS_BASELINE_DOMAINS,
@@ -77,4 +77,4 @@ export {
77
77
  writeEgressAllowlist,
78
78
  writePersistentClaudeWrapper
79
79
  };
80
- //# sourceMappingURL=persistent-session-7H3IYXXP.js.map
80
+ //# sourceMappingURL=persistent-session-WRL7JV3G.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-C4QMCOAN.js";
3
+ } from "./chunk-CUQUOIPW.js";
4
4
  import "./chunk-XWVM4KPK.js";
5
5
 
6
6
  // src/lib/responsiveness-probe.ts
@@ -418,4 +418,4 @@ export {
418
418
  readAndResetSlackReplyBindingClassifications,
419
419
  readAndResetSlackReplyTargetClassifications
420
420
  };
421
- //# sourceMappingURL=responsiveness-probe-PFJM4QMQ.js.map
421
+ //# sourceMappingURL=responsiveness-probe-LSRBQ5OJ.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.282",
3
+ "version": "0.28.283",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {