@integrity-labs/agt-cli 0.28.558 → 0.28.560

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.
@@ -34975,6 +34975,12 @@ var FLAG_REGISTRY = [
34975
34975
  // operational decision with blast radius, so mutations require confirmation.
34976
34976
  sensitive: true
34977
34977
  },
34978
+ {
34979
+ key: "frozen-customer-waiting-page",
34980
+ description: "Frozen-prompt-with-a-customer-waiting PAGE (ENG-8683): when ON, the responsiveness-probe route opens a `warning` `agent_frozen_customer_waiting` alert for an agent whose input watchdog gave up on the session AFTER a message was queued, and whose message is still unanswered past the window. Both halves were already measured in the same request and both were `info` (agent_input_stuck, agent_pending_inbound), which alert-pager drops before routing \u2014 so the condition was detected twice a minute and paged nobody. Defaults ON, unlike the usual ships-dark posture for anything that pages, because both inputs have been in observe mode for months (the input-stuck alarm has defaulted ON since ENG-6055, the pending-inbound metric has been written since ENG-6017) and the conjunction is strictly narrower than either \u2014 shipping it dark would make the fix a fleet-wide no-op and leave the ticket open in everything but name. Flip OFF from the admin Feature Flags page to disarm stage-wide; the wait window is tuned with the AUGMENTED_FROZEN_CUSTOMER_WAITING_SECONDS API tunable (default 300). No envVar: an API-evaluated flag with a declared envVar risks the ENG-8303 sst.config.ts pin, and a new AUGMENTED_*_ENABLED gate is what check-new-env-gates.sh rejects.",
34981
+ flagType: "boolean",
34982
+ defaultValue: true
34983
+ },
34978
34984
  {
34979
34985
  key: "promise-outstanding-alarm",
34980
34986
  description: 'Outstanding-interim-promise alarm (ENG-8265): when ON, the responsiveness-probe route creates a per-agent CloudWatch alarm on `PromiseOutstandingOldestAgeSeconds` \u2014 an inbound the agent acknowledged with an interim reply ("on it") and never answered substantively. Closes the blind spot where an ack satisfied channel-silent-loss, refreshed pending-inbound, and left agent_stall with no in_progress card to see, so a broken promise looked like a served request. Defaults ON (armed on deploy) because the alert it opens is `info` severity \u2014 dashboard-only, never paged \u2014 so a day-one false positive costs a visible row, not a woken human. Flip OFF from the admin Feature Flags page to disarm stage-wide; the window itself is tuned with the AUGMENTED_PROMISE_OUTSTANDING_THRESHOLD_SECONDS API tunable (default 1800).',
package/dist/mcp/index.js CHANGED
@@ -21083,14 +21083,47 @@ function groupKanbanByStatus(items) {
21083
21083
  }
21084
21084
  return groups;
21085
21085
  }
21086
- function renderKanbanItemLine(item) {
21086
+ function formatWaitingAge(since, nowMs) {
21087
+ if (!since) return null;
21088
+ const ms = nowMs - Date.parse(since);
21089
+ if (!Number.isFinite(ms)) return null;
21090
+ const mins = Math.max(0, Math.floor(ms / 6e4));
21091
+ if (mins < 1) return "<1m";
21092
+ if (mins < 60) return `${mins}m`;
21093
+ const hours = Math.floor(mins / 60);
21094
+ if (hours < 24) return `${hours}h`;
21095
+ return `${Math.floor(hours / 24)}d`;
21096
+ }
21097
+ function renderPrWaitTarget(item) {
21098
+ if (item.waiting_kind !== "pr-review" && item.waiting_kind !== "pr-merged") return null;
21099
+ const pr = item.waiting_context?.pr_number;
21100
+ if (!Number.isSafeInteger(pr) || pr <= 0) return null;
21101
+ const verb = item.waiting_kind === "pr-review" ? "Review" : "Merge";
21102
+ const repo = item.waiting_context?.repo;
21103
+ const where = repo && repo !== "Integrity-Labs/augmented" ? ` in ${repo}` : "";
21104
+ return `${verb} PR #${pr}${where}`;
21105
+ }
21106
+ function renderWaitingClause(item, nowMs) {
21107
+ if (item.status !== "waiting") return "";
21108
+ const parts = [];
21109
+ if (item.waiting_kind) parts.push(item.waiting_kind);
21110
+ const age = formatWaitingAge(item.waiting_since, nowMs);
21111
+ if (age) parts.push(`${age}`);
21112
+ const head = parts.length ? ` \u23F8 ${parts.join(", ")}` : "";
21113
+ const prTarget = renderPrWaitTarget(item);
21114
+ if (prTarget) return head ? `${head}: ${prTarget}` : ` \u23F8 ${prTarget}`;
21115
+ const ask = item.waiting_on ? `: ${item.waiting_on.length > 80 ? `${item.waiting_on.slice(0, 77)}...` : item.waiting_on}` : "";
21116
+ return head ? `${head}${ask}` : "";
21117
+ }
21118
+ function renderKanbanItemLine(item, nowMs) {
21087
21119
  const pri = kanbanPriorityLabel(item.priority);
21088
21120
  const est = item.estimated_minutes ? ` ~${item.estimated_minutes}min` : "";
21089
21121
  const del = item.deliverable ? ` \u2192 ${item.deliverable}` : "";
21090
21122
  const res = item.result ? ` \u2713 ${item.result}` : "";
21091
- return `- [${pri}] ${item.title}${est}${del}${res} (id: ${item.id})`;
21123
+ const wait = renderWaitingClause(item, nowMs);
21124
+ return `- [${pri}] ${item.title}${wait}${est}${del}${res} (id: ${item.id})`;
21092
21125
  }
21093
- function renderKanbanList(items) {
21126
+ function renderKanbanList(items, nowMs = Date.now()) {
21094
21127
  if (!items.length) return "Board is empty.";
21095
21128
  const humanAssigned = items.filter(isHumanAssigned);
21096
21129
  const mine = items.filter((i) => !isHumanAssigned(i));
@@ -21104,7 +21137,7 @@ function renderKanbanList(items) {
21104
21137
  if (!group?.length) continue;
21105
21138
  lines.push(`
21106
21139
  ## ${kanbanStatusLabel(status)} (${group.length})`);
21107
- for (const item of group) lines.push(renderKanbanItemLine(item));
21140
+ for (const item of group) lines.push(renderKanbanItemLine(item, nowMs));
21108
21141
  }
21109
21142
  if (humanAssigned.length) {
21110
21143
  lines.push(`
@@ -21112,7 +21145,7 @@ function renderKanbanList(items) {
21112
21145
  lines.push(HUMAN_ASSIGNED_SECTION_NOTE);
21113
21146
  for (const item of humanAssigned) {
21114
21147
  const who = item.assignee_name ? ` [with ${item.assignee_name}]` : "";
21115
- lines.push(`${renderKanbanItemLine(item)}${who}`);
21148
+ lines.push(`${renderKanbanItemLine(item, nowMs)}${who}`);
21116
21149
  }
21117
21150
  }
21118
21151
  return lines.join("\n");
@@ -40866,6 +40866,12 @@ var FLAG_REGISTRY = [
40866
40866
  // operational decision with blast radius, so mutations require confirmation.
40867
40867
  sensitive: true
40868
40868
  },
40869
+ {
40870
+ key: "frozen-customer-waiting-page",
40871
+ description: "Frozen-prompt-with-a-customer-waiting PAGE (ENG-8683): when ON, the responsiveness-probe route opens a `warning` `agent_frozen_customer_waiting` alert for an agent whose input watchdog gave up on the session AFTER a message was queued, and whose message is still unanswered past the window. Both halves were already measured in the same request and both were `info` (agent_input_stuck, agent_pending_inbound), which alert-pager drops before routing \u2014 so the condition was detected twice a minute and paged nobody. Defaults ON, unlike the usual ships-dark posture for anything that pages, because both inputs have been in observe mode for months (the input-stuck alarm has defaulted ON since ENG-6055, the pending-inbound metric has been written since ENG-6017) and the conjunction is strictly narrower than either \u2014 shipping it dark would make the fix a fleet-wide no-op and leave the ticket open in everything but name. Flip OFF from the admin Feature Flags page to disarm stage-wide; the wait window is tuned with the AUGMENTED_FROZEN_CUSTOMER_WAITING_SECONDS API tunable (default 300). No envVar: an API-evaluated flag with a declared envVar risks the ENG-8303 sst.config.ts pin, and a new AUGMENTED_*_ENABLED gate is what check-new-env-gates.sh rejects.",
40872
+ flagType: "boolean",
40873
+ defaultValue: true
40874
+ },
40869
40875
  {
40870
40876
  key: "promise-outstanding-alarm",
40871
40877
  description: 'Outstanding-interim-promise alarm (ENG-8265): when ON, the responsiveness-probe route creates a per-agent CloudWatch alarm on `PromiseOutstandingOldestAgeSeconds` \u2014 an inbound the agent acknowledged with an interim reply ("on it") and never answered substantively. Closes the blind spot where an ack satisfied channel-silent-loss, refreshed pending-inbound, and left agent_stall with no in_progress card to see, so a broken promise looked like a served request. Defaults ON (armed on deploy) because the alert it opens is `info` severity \u2014 dashboard-only, never paged \u2014 so a day-one false positive costs a visible row, not a woken human. Flip OFF from the admin Feature Flags page to disarm stage-wide; the window itself is tuned with the AUGMENTED_PROMISE_OUTSTANDING_THRESHOLD_SECONDS API tunable (default 1800).',
@@ -35311,6 +35311,12 @@ var FLAG_REGISTRY = [
35311
35311
  // operational decision with blast radius, so mutations require confirmation.
35312
35312
  sensitive: true
35313
35313
  },
35314
+ {
35315
+ key: "frozen-customer-waiting-page",
35316
+ description: "Frozen-prompt-with-a-customer-waiting PAGE (ENG-8683): when ON, the responsiveness-probe route opens a `warning` `agent_frozen_customer_waiting` alert for an agent whose input watchdog gave up on the session AFTER a message was queued, and whose message is still unanswered past the window. Both halves were already measured in the same request and both were `info` (agent_input_stuck, agent_pending_inbound), which alert-pager drops before routing \u2014 so the condition was detected twice a minute and paged nobody. Defaults ON, unlike the usual ships-dark posture for anything that pages, because both inputs have been in observe mode for months (the input-stuck alarm has defaulted ON since ENG-6055, the pending-inbound metric has been written since ENG-6017) and the conjunction is strictly narrower than either \u2014 shipping it dark would make the fix a fleet-wide no-op and leave the ticket open in everything but name. Flip OFF from the admin Feature Flags page to disarm stage-wide; the wait window is tuned with the AUGMENTED_FROZEN_CUSTOMER_WAITING_SECONDS API tunable (default 300). No envVar: an API-evaluated flag with a declared envVar risks the ENG-8303 sst.config.ts pin, and a new AUGMENTED_*_ENABLED gate is what check-new-env-gates.sh rejects.",
35317
+ flagType: "boolean",
35318
+ defaultValue: true
35319
+ },
35314
35320
  {
35315
35321
  key: "promise-outstanding-alarm",
35316
35322
  description: 'Outstanding-interim-promise alarm (ENG-8265): when ON, the responsiveness-probe route creates a per-agent CloudWatch alarm on `PromiseOutstandingOldestAgeSeconds` \u2014 an inbound the agent acknowledged with an interim reply ("on it") and never answered substantively. Closes the blind spot where an ack satisfied channel-silent-loss, refreshed pending-inbound, and left agent_stall with no in_progress card to see, so a broken promise looked like a served request. Defaults ON (armed on deploy) because the alert it opens is `info` severity \u2014 dashboard-only, never paged \u2014 so a day-one false positive costs a visible row, not a woken human. Flip OFF from the admin Feature Flags page to disarm stage-wide; the window itself is tuned with the AUGMENTED_PROMISE_OUTSTANDING_THRESHOLD_SECONDS API tunable (default 1800).',
@@ -35470,6 +35470,12 @@ var FLAG_REGISTRY = [
35470
35470
  // operational decision with blast radius, so mutations require confirmation.
35471
35471
  sensitive: true
35472
35472
  },
35473
+ {
35474
+ key: "frozen-customer-waiting-page",
35475
+ description: "Frozen-prompt-with-a-customer-waiting PAGE (ENG-8683): when ON, the responsiveness-probe route opens a `warning` `agent_frozen_customer_waiting` alert for an agent whose input watchdog gave up on the session AFTER a message was queued, and whose message is still unanswered past the window. Both halves were already measured in the same request and both were `info` (agent_input_stuck, agent_pending_inbound), which alert-pager drops before routing \u2014 so the condition was detected twice a minute and paged nobody. Defaults ON, unlike the usual ships-dark posture for anything that pages, because both inputs have been in observe mode for months (the input-stuck alarm has defaulted ON since ENG-6055, the pending-inbound metric has been written since ENG-6017) and the conjunction is strictly narrower than either \u2014 shipping it dark would make the fix a fleet-wide no-op and leave the ticket open in everything but name. Flip OFF from the admin Feature Flags page to disarm stage-wide; the wait window is tuned with the AUGMENTED_FROZEN_CUSTOMER_WAITING_SECONDS API tunable (default 300). No envVar: an API-evaluated flag with a declared envVar risks the ENG-8303 sst.config.ts pin, and a new AUGMENTED_*_ENABLED gate is what check-new-env-gates.sh rejects.",
35476
+ flagType: "boolean",
35477
+ defaultValue: true
35478
+ },
35473
35479
  {
35474
35480
  key: "promise-outstanding-alarm",
35475
35481
  description: 'Outstanding-interim-promise alarm (ENG-8265): when ON, the responsiveness-probe route creates a per-agent CloudWatch alarm on `PromiseOutstandingOldestAgeSeconds` \u2014 an inbound the agent acknowledged with an interim reply ("on it") and never answered substantively. Closes the blind spot where an ack satisfied channel-silent-loss, refreshed pending-inbound, and left agent_stall with no in_progress card to see, so a broken promise looked like a served request. Defaults ON (armed on deploy) because the alert it opens is `info` severity \u2014 dashboard-only, never paged \u2014 so a day-one false positive costs a visible row, not a woken human. Flip OFF from the admin Feature Flags page to disarm stage-wide; the window itself is tuned with the AUGMENTED_PROMISE_OUTSTANDING_THRESHOLD_SECONDS API tunable (default 1800).',
@@ -41,7 +41,7 @@ import {
41
41
  writeDirectChatSessionState,
42
42
  writeEgressAllowlist,
43
43
  writePersistentClaudeWrapper
44
- } from "./chunk-TBP245GG.js";
44
+ } from "./chunk-AN7V4OG6.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-WX4ILTCF.js.map
90
+ //# sourceMappingURL=persistent-session-7P5B6Z4M.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-TBP245GG.js";
3
+ } from "./chunk-AN7V4OG6.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-FKJBQ6PQ.js.map
692
+ //# sourceMappingURL=responsiveness-probe-AALUPZKZ.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.558",
3
+ "version": "0.28.560",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {