@integrity-labs/agt-cli 0.28.1182 → 0.28.1184

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.
Files changed (30) hide show
  1. package/dist/bin/agt.js +6 -6
  2. package/dist/{chunk-B4Y5MJHG.js → chunk-2DWMFJEV.js} +3 -3
  3. package/dist/{chunk-UAGBLWU2.js → chunk-5L2UZW22.js} +2 -2
  4. package/dist/{chunk-475LAYAZ.js → chunk-B57YZ2QD.js} +9 -3
  5. package/dist/chunk-B57YZ2QD.js.map +1 -0
  6. package/dist/{chunk-OHGGDZVQ.js → chunk-CIZ2UI77.js} +5 -5
  7. package/dist/{chunk-AR72EF4W.js → chunk-TGHAQABK.js} +7 -2
  8. package/dist/{chunk-AR72EF4W.js.map → chunk-TGHAQABK.js.map} +1 -1
  9. package/dist/{claude-code-updater-ZKXTHHWL.js → claude-code-updater-JYVD3MJJ.js} +3 -3
  10. package/dist/{claude-pair-runtime-YL5FVVDV.js → claude-pair-runtime-IJAQHR2V.js} +3 -3
  11. package/dist/lib/manager-worker.js +179 -100
  12. package/dist/lib/manager-worker.js.map +1 -1
  13. package/dist/mcp/direct-chat-channel.js +5 -1
  14. package/dist/mcp/index.js +88 -1
  15. package/dist/mcp/origami.js +4 -1
  16. package/dist/mcp/slack-channel.js +5 -1
  17. package/dist/mcp/telegram-channel.js +5 -1
  18. package/dist/{persistent-session-KCVIJ5R7.js → persistent-session-C7632TPG.js} +4 -4
  19. package/dist/{responsiveness-probe-GLNAS7ZG.js → responsiveness-probe-NFT3GSDL.js} +4 -4
  20. package/dist/{session-auth-dead-5KYOFOTM.js → session-auth-dead-BTGGL4MA.js} +3 -3
  21. package/package.json +1 -1
  22. package/dist/chunk-475LAYAZ.js.map +0 -1
  23. /package/dist/{chunk-B4Y5MJHG.js.map → chunk-2DWMFJEV.js.map} +0 -0
  24. /package/dist/{chunk-UAGBLWU2.js.map → chunk-5L2UZW22.js.map} +0 -0
  25. /package/dist/{chunk-OHGGDZVQ.js.map → chunk-CIZ2UI77.js.map} +0 -0
  26. /package/dist/{claude-code-updater-ZKXTHHWL.js.map → claude-code-updater-JYVD3MJJ.js.map} +0 -0
  27. /package/dist/{claude-pair-runtime-YL5FVVDV.js.map → claude-pair-runtime-IJAQHR2V.js.map} +0 -0
  28. /package/dist/{persistent-session-KCVIJ5R7.js.map → persistent-session-C7632TPG.js.map} +0 -0
  29. /package/dist/{responsiveness-probe-GLNAS7ZG.js.map → responsiveness-probe-NFT3GSDL.js.map} +0 -0
  30. /package/dist/{session-auth-dead-5KYOFOTM.js.map → session-auth-dead-BTGGL4MA.js.map} +0 -0
@@ -42527,6 +42527,8 @@ var NOTICE_KIND_AUDIENCE = {
42527
42527
  live_advisor_session_close: "agent",
42528
42528
  // The assigner reopened a card and the agent must work it again.
42529
42529
  assigner_reopen: "agent",
42530
+ // ENG-11732: second person, to the agent whose card a manager changed, with a raw card id.
42531
+ manager_action: "agent",
42530
42532
  // An inbound trigger event delivered onto the rail for the agent to handle.
42531
42533
  // Named `trigger_event` by `triggerDeliveryPayload` — NOT `trigger_delivery`,
42532
42534
  // which is what the producing module is called. Read from the builder.
@@ -43374,7 +43376,8 @@ var NO_TRANSCRIPT_ACTIVITY = Object.freeze({
43374
43376
  lastToolName: null,
43375
43377
  lastToolAtMs: null,
43376
43378
  lastCompletedTurnAtMs: null,
43377
- newestTurnOpen: false
43379
+ newestTurnOpen: false,
43380
+ hasTurn: false
43378
43381
  });
43379
43382
  var AGENT_STATUS_STALE_MS = 10 * 60 * 1e3;
43380
43383
 
@@ -53995,6 +53998,7 @@ var MAINTENANCE_GATED_TOOLS = /* @__PURE__ */ new Set([
53995
53998
  "kanban_reopen",
53996
53999
  "kanban_assign",
53997
54000
  "kanban_reassign",
54001
+ "kanban_parked_act",
53998
54002
  "kanban_recall",
53999
54003
  "kanban_respond",
54000
54004
  "kanban_progress",
package/dist/mcp/index.js CHANGED
@@ -28391,6 +28391,8 @@ var NOTICE_KIND_AUDIENCE = {
28391
28391
  live_advisor_session_close: "agent",
28392
28392
  // The assigner reopened a card and the agent must work it again.
28393
28393
  assigner_reopen: "agent",
28394
+ // ENG-11732: second person, to the agent whose card a manager changed, with a raw card id.
28395
+ manager_action: "agent",
28394
28396
  // An inbound trigger event delivered onto the rail for the agent to handle.
28395
28397
  // Named `trigger_event` by `triggerDeliveryPayload` — NOT `trigger_delivery`,
28396
28398
  // which is what the producing module is called. Read from the builder.
@@ -28965,7 +28967,8 @@ var NO_TRANSCRIPT_ACTIVITY = Object.freeze({
28965
28967
  lastToolName: null,
28966
28968
  lastToolAtMs: null,
28967
28969
  lastCompletedTurnAtMs: null,
28968
- newestTurnOpen: false
28970
+ newestTurnOpen: false,
28971
+ hasTurn: false
28969
28972
  });
28970
28973
  var AGENT_STATUS_STALE_MS = 10 * 60 * 1e3;
28971
28974
 
@@ -47306,6 +47309,7 @@ var MAINTENANCE_GATED_TOOLS = /* @__PURE__ */ new Set([
47306
47309
  "kanban_reopen",
47307
47310
  "kanban_assign",
47308
47311
  "kanban_reassign",
47312
+ "kanban_parked_act",
47309
47313
  "kanban_recall",
47310
47314
  "kanban_respond",
47311
47315
  "kanban_progress",
@@ -48128,6 +48132,49 @@ function renderKanbanParkedError(target, message) {
48128
48132
  }
48129
48133
  return `Could not read ${target}'s parked cards: ${message}`;
48130
48134
  }
48135
+ function parkedActParamError(params) {
48136
+ if (params.action === "reassign" && !params.new_owner) return "reassign needs new_owner.";
48137
+ if (params.action === "escalate" && !params.person_id) return "escalate needs person_id, from directory_lookup.";
48138
+ return null;
48139
+ }
48140
+ function renderKanbanParkedAct(data, token = newFrameToken()) {
48141
+ if (!data.ok) {
48142
+ return `Nothing was changed (${data.code ?? "refused"}): ${data.error ?? "the card could not be acted on."}`;
48143
+ }
48144
+ const verb = {
48145
+ close: "Closed",
48146
+ reassign: "Reassigned",
48147
+ escalate: "Escalated",
48148
+ reopen: "Reopened"
48149
+ };
48150
+ const lines = [
48151
+ `${verb[data.action ?? ""] ?? "Changed"} card ${data.id ?? ""}: ${data.from_status ?? "?"} -> ${data.status ?? "?"}.`,
48152
+ frameCardText(`title: ${oneLine(data.title ?? "")}`, "whoever filed the card", token),
48153
+ data.owner_notified ? "The owning agent was told." : "The owning agent could NOT be told: tell it yourself."
48154
+ ];
48155
+ if (data.new_owner_notified !== void 0) {
48156
+ lines.push(data.new_owner_notified ? "The new owner was told." : "The new owner could NOT be told: tell it yourself.");
48157
+ }
48158
+ if (data.person_notification) {
48159
+ const n = data.person_notification;
48160
+ lines.push(
48161
+ n.delivered ? `The person was notified by ${n.channel ?? "message"}.` : `The person was NOT messaged (${n.skipped ?? (n.enabled ? "delivery failed" : "notifications are off here")}). It is in their console queue: tell them another way if it is urgent.`
48162
+ );
48163
+ }
48164
+ return lines.join("\n");
48165
+ }
48166
+ function renderKanbanParkedActError(target, message) {
48167
+ if (/returned 404/.test(message)) {
48168
+ return `Nothing was changed: an agent you named was not found on your team (holder: "${target}"). Check the code_name.`;
48169
+ }
48170
+ if (/returned 403/.test(message) && /CONTENT_READ_BLOCKED/.test(message)) {
48171
+ return `Nothing was changed: ${target} is a manager-only agent, so only its human manager can act on its cards.`;
48172
+ }
48173
+ if (/returned 403/.test(message)) {
48174
+ return `Nothing was changed: only ${target}'s direct reports-to manager can act on its cards.`;
48175
+ }
48176
+ return `Could not act on the card, and it may or may not have changed (${message}). Read it again with kanban_parked before retrying.`;
48177
+ }
48131
48178
 
48132
48179
  // src/kanban-person-waiting-kind.ts
48133
48180
  function isPersonWaitingKindMcp(kind) {
@@ -50343,6 +50390,45 @@ server.tool(
50343
50390
  }
50344
50391
  }
50345
50392
  );
50393
+ server.tool(
50394
+ "kanban_parked_act",
50395
+ "Act on ONE parked card (needs_attention or waiting) belonging to an agent that reports directly to you. close: the card is dead. It becomes failed with your reason, nobody is told it completed, and a linked ticket is not touched. reassign: move it to another agent on your team (new_owner), keeping its column. escalate: park it on a named person (person_id from directory_lookup), who is notified; the owner keeps the card. reopen: undo your last close, reassign or escalate on this card, restoring what it replaced. Check a linked ticket or PR yourself before closing: this tool does not look it up. A reason is required, the owning agent is told, and every call is audited. Refused for in-progress, todo, backlog, done and failed cards, for cards parked on a pending approval, for any agent that does not report directly to you, and for a manager-only agent. Use kanban_parked first to get the card id.",
50396
+ {
50397
+ target_agent: external_exports.string().describe("The agent that reports to you and holds the card: code_name (kebab-case) or agent UUID."),
50398
+ card_id: external_exports.string().uuid().describe("The card id, from kanban_parked."),
50399
+ action: external_exports.enum(["close", "reassign", "escalate", "reopen"]).describe("What to do with the card."),
50400
+ reason: external_exports.string().trim().min(1, "reason is required").max(2e3, "reason is too long").describe(
50401
+ 'Why, for whoever reads this card later. On escalate it is what the person is asked to do, so write it as a request ("confirm the refund was issued").'
50402
+ ),
50403
+ new_owner: external_exports.string().trim().min(1).optional().describe("reassign only: the agent on your team to move it to."),
50404
+ person_id: external_exports.string().uuid().optional().describe("escalate only: the person_id from directory_lookup.")
50405
+ },
50406
+ async (params) => {
50407
+ const validation = parkedActParamError(params);
50408
+ if (validation) return { content: [{ type: "text", text: validation }], isError: true };
50409
+ try {
50410
+ const data = await apiPost(
50411
+ "/host/kanban/parked/act",
50412
+ {
50413
+ agent_id: AGT_AGENT_ID,
50414
+ target_agent: params.target_agent,
50415
+ card_id: params.card_id,
50416
+ action: params.action,
50417
+ reason: params.reason,
50418
+ ...params.new_owner !== void 0 ? { new_owner: params.new_owner } : {},
50419
+ ...params.person_id !== void 0 ? { person_id: params.person_id } : {}
50420
+ },
50421
+ false,
50422
+ 15e3,
50423
+ "kanban_parked_act"
50424
+ );
50425
+ return { content: [{ type: "text", text: renderKanbanParkedAct(data) }] };
50426
+ } catch (err) {
50427
+ const msg = err instanceof Error ? err.message : String(err);
50428
+ return { content: [{ type: "text", text: renderKanbanParkedActError(params.target_agent, msg) }], isError: true };
50429
+ }
50430
+ }
50431
+ );
50346
50432
  server.tool(
50347
50433
  "kanban_reassign",
50348
50434
  "Move an EXISTING kanban card to ANOTHER agent\u2019s board, preserving its id, history, comments, priority and status. Use this to re-home a task you already have (e.g. you picked up a card but it\u2019s really another specialist\u2019s job) - it removes the card from the current board and places the same card on the target agent\u2019s board. This is different from kanban_assign, which CREATES a new card. The card must currently live on your team. To move across teams in your organization, also pass `target_team` (same cross-team rules as kanban_assign). Don\u2019t know the agent code_name or team slug? Call directory_lookup first.",
@@ -52674,6 +52760,7 @@ var LOCAL_TOOL_NAMES = /* @__PURE__ */ new Set([
52674
52760
  "agent_session_status",
52675
52761
  // ENG-11732: a direct report's parked cards, for its reports-to manager.
52676
52762
  "kanban_parked",
52763
+ "kanban_parked_act",
52677
52764
  // ENG-9789: per-agent standing rules. The ADD path is swap-only — an agent
52678
52765
  // may not displace a rule except by naming it while adding another, so a full
52679
52766
  // list can never be resolved by a silent delete.
@@ -42521,6 +42521,8 @@ var NOTICE_KIND_AUDIENCE = {
42521
42521
  live_advisor_session_close: "agent",
42522
42522
  // The assigner reopened a card and the agent must work it again.
42523
42523
  assigner_reopen: "agent",
42524
+ // ENG-11732: second person, to the agent whose card a manager changed, with a raw card id.
42525
+ manager_action: "agent",
42524
42526
  // An inbound trigger event delivered onto the rail for the agent to handle.
42525
42527
  // Named `trigger_event` by `triggerDeliveryPayload` — NOT `trigger_delivery`,
42526
42528
  // which is what the producing module is called. Read from the builder.
@@ -42913,7 +42915,8 @@ var NO_TRANSCRIPT_ACTIVITY = Object.freeze({
42913
42915
  lastToolName: null,
42914
42916
  lastToolAtMs: null,
42915
42917
  lastCompletedTurnAtMs: null,
42916
- newestTurnOpen: false
42918
+ newestTurnOpen: false,
42919
+ hasTurn: false
42917
42920
  });
42918
42921
  var AGENT_STATUS_STALE_MS = 10 * 60 * 1e3;
42919
42922
 
@@ -30961,6 +30961,7 @@ var MAINTENANCE_GATED_TOOLS = /* @__PURE__ */ new Set([
30961
30961
  "kanban_reopen",
30962
30962
  "kanban_assign",
30963
30963
  "kanban_reassign",
30964
+ "kanban_parked_act",
30964
30965
  "kanban_recall",
30965
30966
  "kanban_respond",
30966
30967
  "kanban_progress",
@@ -36938,6 +36939,8 @@ var NOTICE_KIND_AUDIENCE = {
36938
36939
  live_advisor_session_close: "agent",
36939
36940
  // The assigner reopened a card and the agent must work it again.
36940
36941
  assigner_reopen: "agent",
36942
+ // ENG-11732: second person, to the agent whose card a manager changed, with a raw card id.
36943
+ manager_action: "agent",
36941
36944
  // An inbound trigger event delivered onto the rail for the agent to handle.
36942
36945
  // Named `trigger_event` by `triggerDeliveryPayload` — NOT `trigger_delivery`,
36943
36946
  // which is what the producing module is called. Read from the builder.
@@ -37707,7 +37710,8 @@ var NO_TRANSCRIPT_ACTIVITY = Object.freeze({
37707
37710
  lastToolName: null,
37708
37711
  lastToolAtMs: null,
37709
37712
  lastCompletedTurnAtMs: null,
37710
- newestTurnOpen: false
37713
+ newestTurnOpen: false,
37714
+ hasTurn: false
37711
37715
  });
37712
37716
  var AGENT_STATUS_STALE_MS = 10 * 60 * 1e3;
37713
37717
 
@@ -31178,6 +31178,7 @@ var MAINTENANCE_GATED_TOOLS = /* @__PURE__ */ new Set([
31178
31178
  "kanban_reopen",
31179
31179
  "kanban_assign",
31180
31180
  "kanban_reassign",
31181
+ "kanban_parked_act",
31181
31182
  "kanban_recall",
31182
31183
  "kanban_respond",
31183
31184
  "kanban_progress",
@@ -37149,6 +37150,8 @@ var NOTICE_KIND_AUDIENCE = {
37149
37150
  live_advisor_session_close: "agent",
37150
37151
  // The assigner reopened a card and the agent must work it again.
37151
37152
  assigner_reopen: "agent",
37153
+ // ENG-11732: second person, to the agent whose card a manager changed, with a raw card id.
37154
+ manager_action: "agent",
37152
37155
  // An inbound trigger event delivered onto the rail for the agent to handle.
37153
37156
  // Named `trigger_event` by `triggerDeliveryPayload` — NOT `trigger_delivery`,
37154
37157
  // which is what the producing module is called. Read from the builder.
@@ -37918,7 +37921,8 @@ var NO_TRANSCRIPT_ACTIVITY = Object.freeze({
37918
37921
  lastToolName: null,
37919
37922
  lastToolAtMs: null,
37920
37923
  lastCompletedTurnAtMs: null,
37921
- newestTurnOpen: false
37924
+ newestTurnOpen: false,
37925
+ hasTurn: false
37922
37926
  });
37923
37927
  var AGENT_STATUS_STALE_MS = 10 * 60 * 1e3;
37924
37928
 
@@ -68,12 +68,12 @@ import {
68
68
  writeDirectChatSessionState,
69
69
  writeEgressAllowlist,
70
70
  writePersistentClaudeWrapper
71
- } from "./chunk-B4Y5MJHG.js";
72
- import "./chunk-AR72EF4W.js";
71
+ } from "./chunk-2DWMFJEV.js";
72
+ import "./chunk-TGHAQABK.js";
73
73
  import "./chunk-OO36JBFI.js";
74
74
  import "./chunk-6HBXEJHO.js";
75
75
  import "./chunk-XWVM4KPK.js";
76
- import "./chunk-475LAYAZ.js";
76
+ import "./chunk-B57YZ2QD.js";
77
77
  import "./chunk-AIUIMEUS.js";
78
78
  import "./chunk-DGUM43GV.js";
79
79
  export {
@@ -147,4 +147,4 @@ export {
147
147
  writeEgressAllowlist,
148
148
  writePersistentClaudeWrapper
149
149
  };
150
- //# sourceMappingURL=persistent-session-KCVIJ5R7.js.map
150
+ //# sourceMappingURL=persistent-session-C7632TPG.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-B4Y5MJHG.js";
4
- import "./chunk-AR72EF4W.js";
3
+ } from "./chunk-2DWMFJEV.js";
4
+ import "./chunk-TGHAQABK.js";
5
5
  import "./chunk-OO36JBFI.js";
6
6
  import "./chunk-6HBXEJHO.js";
7
7
  import "./chunk-XWVM4KPK.js";
8
- import "./chunk-475LAYAZ.js";
8
+ import "./chunk-B57YZ2QD.js";
9
9
  import "./chunk-AIUIMEUS.js";
10
10
  import "./chunk-DGUM43GV.js";
11
11
 
@@ -804,4 +804,4 @@ export {
804
804
  readAndResetSlackReplyBindingClassifications,
805
805
  readAndResetSlackReplyTargetClassifications
806
806
  };
807
- //# sourceMappingURL=responsiveness-probe-GLNAS7ZG.js.map
807
+ //# sourceMappingURL=responsiveness-probe-NFT3GSDL.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  sessionTranscriptDir
3
- } from "./chunk-AR72EF4W.js";
4
- import "./chunk-475LAYAZ.js";
3
+ } from "./chunk-TGHAQABK.js";
4
+ import "./chunk-B57YZ2QD.js";
5
5
  import "./chunk-DGUM43GV.js";
6
6
 
7
7
  // src/lib/session-auth-dead.ts
@@ -205,4 +205,4 @@ export {
205
205
  decideSessionAuthState,
206
206
  probeSessionAuth
207
207
  };
208
- //# sourceMappingURL=session-auth-dead-5KYOFOTM.js.map
208
+ //# sourceMappingURL=session-auth-dead-BTGGL4MA.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.1182",
3
+ "version": "0.28.1184",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {