@integrity-labs/agt-cli 0.28.1181 → 0.28.1183

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-BLDO67PT.js → chunk-3QZQ2QUY.js} +5 -5
  3. package/dist/{chunk-UAGBLWU2.js → chunk-44ZVQZCD.js} +2 -2
  4. package/dist/{chunk-AR72EF4W.js → chunk-6N4BQN7E.js} +2 -2
  5. package/dist/{chunk-B4Y5MJHG.js → chunk-D4SFIYLR.js} +3 -3
  6. package/dist/{chunk-475LAYAZ.js → chunk-VWQ4Y6AV.js} +3 -1
  7. package/dist/chunk-VWQ4Y6AV.js.map +1 -0
  8. package/dist/{claude-code-updater-ZKXTHHWL.js → claude-code-updater-RZZNG4MI.js} +3 -3
  9. package/dist/{claude-pair-runtime-YL5FVVDV.js → claude-pair-runtime-N4XK2FPH.js} +3 -3
  10. package/dist/lib/manager-worker.js +25 -20
  11. package/dist/lib/manager-worker.js.map +1 -1
  12. package/dist/mcp/direct-chat-channel.js +3 -0
  13. package/dist/mcp/index.js +86 -0
  14. package/dist/mcp/origami.js +2 -0
  15. package/dist/mcp/slack-channel.js +3 -0
  16. package/dist/mcp/telegram-channel.js +3 -0
  17. package/dist/{persistent-session-KCVIJ5R7.js → persistent-session-3FNAHCU3.js} +4 -4
  18. package/dist/{responsiveness-probe-GLNAS7ZG.js → responsiveness-probe-4Y4OUCB4.js} +4 -4
  19. package/dist/{session-auth-dead-5KYOFOTM.js → session-auth-dead-BOVLUG7N.js} +3 -3
  20. package/package.json +1 -1
  21. package/dist/chunk-475LAYAZ.js.map +0 -1
  22. /package/dist/{chunk-BLDO67PT.js.map → chunk-3QZQ2QUY.js.map} +0 -0
  23. /package/dist/{chunk-UAGBLWU2.js.map → chunk-44ZVQZCD.js.map} +0 -0
  24. /package/dist/{chunk-AR72EF4W.js.map → chunk-6N4BQN7E.js.map} +0 -0
  25. /package/dist/{chunk-B4Y5MJHG.js.map → chunk-D4SFIYLR.js.map} +0 -0
  26. /package/dist/{claude-code-updater-ZKXTHHWL.js.map → claude-code-updater-RZZNG4MI.js.map} +0 -0
  27. /package/dist/{claude-pair-runtime-YL5FVVDV.js.map → claude-pair-runtime-N4XK2FPH.js.map} +0 -0
  28. /package/dist/{persistent-session-KCVIJ5R7.js.map → persistent-session-3FNAHCU3.js.map} +0 -0
  29. /package/dist/{responsiveness-probe-GLNAS7ZG.js.map → responsiveness-probe-4Y4OUCB4.js.map} +0 -0
  30. /package/dist/{session-auth-dead-5KYOFOTM.js.map → session-auth-dead-BOVLUG7N.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.
@@ -53995,6 +53997,7 @@ var MAINTENANCE_GATED_TOOLS = /* @__PURE__ */ new Set([
53995
53997
  "kanban_reopen",
53996
53998
  "kanban_assign",
53997
53999
  "kanban_reassign",
54000
+ "kanban_parked_act",
53998
54001
  "kanban_recall",
53999
54002
  "kanban_respond",
54000
54003
  "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.
@@ -47306,6 +47308,7 @@ var MAINTENANCE_GATED_TOOLS = /* @__PURE__ */ new Set([
47306
47308
  "kanban_reopen",
47307
47309
  "kanban_assign",
47308
47310
  "kanban_reassign",
47311
+ "kanban_parked_act",
47309
47312
  "kanban_recall",
47310
47313
  "kanban_respond",
47311
47314
  "kanban_progress",
@@ -48128,6 +48131,49 @@ function renderKanbanParkedError(target, message) {
48128
48131
  }
48129
48132
  return `Could not read ${target}'s parked cards: ${message}`;
48130
48133
  }
48134
+ function parkedActParamError(params) {
48135
+ if (params.action === "reassign" && !params.new_owner) return "reassign needs new_owner.";
48136
+ if (params.action === "escalate" && !params.person_id) return "escalate needs person_id, from directory_lookup.";
48137
+ return null;
48138
+ }
48139
+ function renderKanbanParkedAct(data, token = newFrameToken()) {
48140
+ if (!data.ok) {
48141
+ return `Nothing was changed (${data.code ?? "refused"}): ${data.error ?? "the card could not be acted on."}`;
48142
+ }
48143
+ const verb = {
48144
+ close: "Closed",
48145
+ reassign: "Reassigned",
48146
+ escalate: "Escalated",
48147
+ reopen: "Reopened"
48148
+ };
48149
+ const lines = [
48150
+ `${verb[data.action ?? ""] ?? "Changed"} card ${data.id ?? ""}: ${data.from_status ?? "?"} -> ${data.status ?? "?"}.`,
48151
+ frameCardText(`title: ${oneLine(data.title ?? "")}`, "whoever filed the card", token),
48152
+ data.owner_notified ? "The owning agent was told." : "The owning agent could NOT be told: tell it yourself."
48153
+ ];
48154
+ if (data.new_owner_notified !== void 0) {
48155
+ lines.push(data.new_owner_notified ? "The new owner was told." : "The new owner could NOT be told: tell it yourself.");
48156
+ }
48157
+ if (data.person_notification) {
48158
+ const n = data.person_notification;
48159
+ lines.push(
48160
+ 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.`
48161
+ );
48162
+ }
48163
+ return lines.join("\n");
48164
+ }
48165
+ function renderKanbanParkedActError(target, message) {
48166
+ if (/returned 404/.test(message)) {
48167
+ return `Nothing was changed: an agent you named was not found on your team (holder: "${target}"). Check the code_name.`;
48168
+ }
48169
+ if (/returned 403/.test(message) && /CONTENT_READ_BLOCKED/.test(message)) {
48170
+ return `Nothing was changed: ${target} is a manager-only agent, so only its human manager can act on its cards.`;
48171
+ }
48172
+ if (/returned 403/.test(message)) {
48173
+ return `Nothing was changed: only ${target}'s direct reports-to manager can act on its cards.`;
48174
+ }
48175
+ return `Could not act on the card, and it may or may not have changed (${message}). Read it again with kanban_parked before retrying.`;
48176
+ }
48131
48177
 
48132
48178
  // src/kanban-person-waiting-kind.ts
48133
48179
  function isPersonWaitingKindMcp(kind) {
@@ -50343,6 +50389,45 @@ server.tool(
50343
50389
  }
50344
50390
  }
50345
50391
  );
50392
+ server.tool(
50393
+ "kanban_parked_act",
50394
+ "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.",
50395
+ {
50396
+ target_agent: external_exports.string().describe("The agent that reports to you and holds the card: code_name (kebab-case) or agent UUID."),
50397
+ card_id: external_exports.string().uuid().describe("The card id, from kanban_parked."),
50398
+ action: external_exports.enum(["close", "reassign", "escalate", "reopen"]).describe("What to do with the card."),
50399
+ reason: external_exports.string().trim().min(1, "reason is required").max(2e3, "reason is too long").describe(
50400
+ '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").'
50401
+ ),
50402
+ new_owner: external_exports.string().trim().min(1).optional().describe("reassign only: the agent on your team to move it to."),
50403
+ person_id: external_exports.string().uuid().optional().describe("escalate only: the person_id from directory_lookup.")
50404
+ },
50405
+ async (params) => {
50406
+ const validation = parkedActParamError(params);
50407
+ if (validation) return { content: [{ type: "text", text: validation }], isError: true };
50408
+ try {
50409
+ const data = await apiPost(
50410
+ "/host/kanban/parked/act",
50411
+ {
50412
+ agent_id: AGT_AGENT_ID,
50413
+ target_agent: params.target_agent,
50414
+ card_id: params.card_id,
50415
+ action: params.action,
50416
+ reason: params.reason,
50417
+ ...params.new_owner !== void 0 ? { new_owner: params.new_owner } : {},
50418
+ ...params.person_id !== void 0 ? { person_id: params.person_id } : {}
50419
+ },
50420
+ false,
50421
+ 15e3,
50422
+ "kanban_parked_act"
50423
+ );
50424
+ return { content: [{ type: "text", text: renderKanbanParkedAct(data) }] };
50425
+ } catch (err) {
50426
+ const msg = err instanceof Error ? err.message : String(err);
50427
+ return { content: [{ type: "text", text: renderKanbanParkedActError(params.target_agent, msg) }], isError: true };
50428
+ }
50429
+ }
50430
+ );
50346
50431
  server.tool(
50347
50432
  "kanban_reassign",
50348
50433
  "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 +52759,7 @@ var LOCAL_TOOL_NAMES = /* @__PURE__ */ new Set([
52674
52759
  "agent_session_status",
52675
52760
  // ENG-11732: a direct report's parked cards, for its reports-to manager.
52676
52761
  "kanban_parked",
52762
+ "kanban_parked_act",
52677
52763
  // ENG-9789: per-agent standing rules. The ADD path is swap-only — an agent
52678
52764
  // may not displace a rule except by naming it while adding another, so a full
52679
52765
  // 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.
@@ -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.
@@ -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.
@@ -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-D4SFIYLR.js";
72
+ import "./chunk-6N4BQN7E.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-VWQ4Y6AV.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-3FNAHCU3.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-D4SFIYLR.js";
4
+ import "./chunk-6N4BQN7E.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-VWQ4Y6AV.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-4Y4OUCB4.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-6N4BQN7E.js";
4
+ import "./chunk-VWQ4Y6AV.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-BOVLUG7N.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.1181",
3
+ "version": "0.28.1183",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {