@integrity-labs/agt-cli 0.28.1174 → 0.28.1175
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/bin/agt.js
CHANGED
|
@@ -40,7 +40,7 @@ import {
|
|
|
40
40
|
success,
|
|
41
41
|
table,
|
|
42
42
|
warn
|
|
43
|
-
} from "../chunk-
|
|
43
|
+
} from "../chunk-P2B2SQHD.js";
|
|
44
44
|
import {
|
|
45
45
|
getProjectDir,
|
|
46
46
|
isSessionResumeDisabled,
|
|
@@ -5513,7 +5513,7 @@ import { execFileSync, execSync } from "child_process";
|
|
|
5513
5513
|
import { existsSync as existsSync11, realpathSync as realpathSync2 } from "fs";
|
|
5514
5514
|
import chalk18 from "chalk";
|
|
5515
5515
|
import ora16 from "ora";
|
|
5516
|
-
var cliVersion = true ? "0.28.
|
|
5516
|
+
var cliVersion = true ? "0.28.1175" : "dev";
|
|
5517
5517
|
async function fetchLatestVersion() {
|
|
5518
5518
|
const host2 = getHost();
|
|
5519
5519
|
if (!host2) return null;
|
|
@@ -6773,7 +6773,7 @@ function handleError(err) {
|
|
|
6773
6773
|
}
|
|
6774
6774
|
|
|
6775
6775
|
// src/bin/agt.ts
|
|
6776
|
-
var cliVersion2 = true ? "0.28.
|
|
6776
|
+
var cliVersion2 = true ? "0.28.1175" : "dev";
|
|
6777
6777
|
var program = new Command();
|
|
6778
6778
|
program.name("agt").description("Augmented CLI \u2014 agent provisioning and management").version(cliVersion2).option("--json", "Emit machine-readable JSON output (suppress spinners and colors)").option("--skip-update-check", "Skip the automatic update check on startup");
|
|
6779
6779
|
program.hook("preAction", async (thisCommand, actionCommand) => {
|
|
@@ -8078,7 +8078,7 @@ function exchangeFailureKind(err) {
|
|
|
8078
8078
|
}
|
|
8079
8079
|
|
|
8080
8080
|
// src/lib/api-client.ts
|
|
8081
|
-
var agtCliVersion = true ? "0.28.
|
|
8081
|
+
var agtCliVersion = true ? "0.28.1175" : "dev";
|
|
8082
8082
|
var lastConfigHash = null;
|
|
8083
8083
|
function setConfigHash(hash) {
|
|
8084
8084
|
lastConfigHash = hash && hash.length > 0 ? hash : null;
|
|
@@ -13235,4 +13235,4 @@ export {
|
|
|
13235
13235
|
managerInstallSystemUnitCommand,
|
|
13236
13236
|
managerUninstallSystemUnitCommand
|
|
13237
13237
|
};
|
|
13238
|
-
//# sourceMappingURL=chunk-
|
|
13238
|
+
//# sourceMappingURL=chunk-P2B2SQHD.js.map
|
|
@@ -77,7 +77,7 @@ import {
|
|
|
77
77
|
setConfigHash,
|
|
78
78
|
shellGuard,
|
|
79
79
|
tripClass
|
|
80
|
-
} from "../chunk-
|
|
80
|
+
} from "../chunk-P2B2SQHD.js";
|
|
81
81
|
import {
|
|
82
82
|
CLAUDE_CODE_SECURITY_FLOOR,
|
|
83
83
|
SELF_UPDATE_TIMEOUTS,
|
|
@@ -15928,7 +15928,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
15928
15928
|
var lastVersionCheckAt = 0;
|
|
15929
15929
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
15930
15930
|
var lastResponsivenessProbeAt = 0;
|
|
15931
|
-
var agtCliVersion = true ? "0.28.
|
|
15931
|
+
var agtCliVersion = true ? "0.28.1175" : "dev";
|
|
15932
15932
|
function resolveBrewPath(execFileSync3) {
|
|
15933
15933
|
try {
|
|
15934
15934
|
const out = execFileSync3("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
package/dist/mcp/index.js
CHANGED
|
@@ -48014,6 +48014,56 @@ function renderKanbanPeek(data, fallbackTeam) {
|
|
|
48014
48014
|
return `${data.target_agent}${where} \u2014 ${parts.join(" \xB7 ")}`;
|
|
48015
48015
|
}
|
|
48016
48016
|
|
|
48017
|
+
// src/kanban-parked-render.ts
|
|
48018
|
+
function oneLine(text) {
|
|
48019
|
+
return text.replace(/[\r\n\u2028\u2029\t]+/g, " ").trim();
|
|
48020
|
+
}
|
|
48021
|
+
function renderCard(card, target, token) {
|
|
48022
|
+
const facts = [
|
|
48023
|
+
card.column === "needs_attention" ? "needs attention" : card.column,
|
|
48024
|
+
`age ${formatPeekAge(card.age_hours)}`,
|
|
48025
|
+
...card.parked_hours === null ? [] : [`parked ${formatPeekAge(card.parked_hours)}`],
|
|
48026
|
+
...card.origin ? [`origin ${card.origin}`] : [],
|
|
48027
|
+
...card.waiting_kind ? [`waiting kind ${card.waiting_kind}`] : [],
|
|
48028
|
+
`id ${card.id}`
|
|
48029
|
+
].join(" \xB7 ");
|
|
48030
|
+
const reference = [card.source_integration, card.source_external_id, card.source_url].filter((part) => Boolean(part)).join(" ");
|
|
48031
|
+
const text = [
|
|
48032
|
+
`title: ${oneLine(card.title)}`,
|
|
48033
|
+
...card.waiting_on ? [`waiting on: ${oneLine(card.waiting_on)}`] : [],
|
|
48034
|
+
...reference ? [`linked: ${oneLine(reference)}`] : [],
|
|
48035
|
+
...card.waiting_pr ? [`waiting on PR: ${oneLine(card.waiting_pr.repo)}#${card.waiting_pr.number}`] : []
|
|
48036
|
+
].join("\n");
|
|
48037
|
+
return `- ${facts}
|
|
48038
|
+
${frameCardText(text, `${target} or whoever filed the card`, token)}`;
|
|
48039
|
+
}
|
|
48040
|
+
function renderKanbanParked(data, isLaterPage = false, token = newFrameToken()) {
|
|
48041
|
+
if (data.cards.length === 0) {
|
|
48042
|
+
return isLaterPage ? `${data.target_agent} has no more parked cards.` : `${data.target_agent} has no parked cards (needs attention or waiting).`;
|
|
48043
|
+
}
|
|
48044
|
+
const lines = [
|
|
48045
|
+
`${data.target_agent}: ${data.cards.length} parked card${data.cards.length === 1 ? "" : "s"}, oldest first.`,
|
|
48046
|
+
"Linked tickets and PRs are the references stored on the card; their current state was not looked up.",
|
|
48047
|
+
...data.cards.map((card) => renderCard(card, data.target_agent, token))
|
|
48048
|
+
];
|
|
48049
|
+
lines.push(
|
|
48050
|
+
data.next_cursor ? `More cards exist. To read them, call kanban_parked again with cursor "${data.next_cursor}".` : "End of the list."
|
|
48051
|
+
);
|
|
48052
|
+
return lines.join("\n");
|
|
48053
|
+
}
|
|
48054
|
+
function renderKanbanParkedError(target, message) {
|
|
48055
|
+
if (/returned 404/.test(message)) {
|
|
48056
|
+
return `Could not read parked cards: no agent "${target}" found on your team. Check the code_name and make sure they're a teammate on the same team.`;
|
|
48057
|
+
}
|
|
48058
|
+
if (/returned 403/.test(message) && /CONTENT_READ_BLOCKED/.test(message)) {
|
|
48059
|
+
return `Could not read ${target}'s parked cards: it is a manager-only agent, so only its human manager can read its cards. kanban_peek still gives you the counts.`;
|
|
48060
|
+
}
|
|
48061
|
+
if (/returned 403/.test(message)) {
|
|
48062
|
+
return `Could not read ${target}'s parked cards: only its direct reports-to manager can. kanban_peek still gives you the counts.`;
|
|
48063
|
+
}
|
|
48064
|
+
return `Could not read ${target}'s parked cards: ${message}`;
|
|
48065
|
+
}
|
|
48066
|
+
|
|
48017
48067
|
// src/kanban-person-waiting-kind.ts
|
|
48018
48068
|
function isPersonWaitingKindMcp(kind) {
|
|
48019
48069
|
if (kind === void 0 || kind === null || kind === "") return true;
|
|
@@ -50164,6 +50214,39 @@ server.tool(
|
|
|
50164
50214
|
}
|
|
50165
50215
|
}
|
|
50166
50216
|
);
|
|
50217
|
+
server.tool(
|
|
50218
|
+
"kanban_parked",
|
|
50219
|
+
"List the cards parked on an agent that reports directly to you: its needs_attention and waiting cards, oldest first. Each card shows its title, column, age, why it was parked where that is recorded (origin, waiting kind, waiting-on line), and the ticket or PR reference stored on it. Read-only: it changes nothing on the board. It never returns descriptions, results or notes. References are as stored, with no live ticket or PR state, and a linked reference can be a chat thread rather than a ticket. Only the direct reports-to manager can read this, the agent must be on your own team, and a manager-only agent refuses it. Use kanban_peek for counts on any teammate. Don't know the agent's code_name? Call directory_lookup first.",
|
|
50220
|
+
{
|
|
50221
|
+
target_agent: external_exports.string().describe("The agent that reports to you: its agent code_name (kebab-case) or agent UUID."),
|
|
50222
|
+
column: external_exports.enum(["needs_attention", "waiting"]).optional().describe("Only this column. Omit for both."),
|
|
50223
|
+
limit: external_exports.number().int().min(1).max(50).optional().describe("Cards per page. Default 25, maximum 50."),
|
|
50224
|
+
cursor: external_exports.string().min(1).optional().describe("The cursor from the previous page, to read the next one. Keep column the same between pages.")
|
|
50225
|
+
},
|
|
50226
|
+
async (params) => {
|
|
50227
|
+
try {
|
|
50228
|
+
const data = await apiPost(
|
|
50229
|
+
"/host/kanban/parked",
|
|
50230
|
+
{
|
|
50231
|
+
agent_id: AGT_AGENT_ID,
|
|
50232
|
+
target_agent: params.target_agent,
|
|
50233
|
+
...params.column !== void 0 ? { column: params.column } : {},
|
|
50234
|
+
...params.limit !== void 0 ? { limit: params.limit } : {},
|
|
50235
|
+
...params.cursor !== void 0 ? { cursor: params.cursor } : {}
|
|
50236
|
+
},
|
|
50237
|
+
false,
|
|
50238
|
+
15e3,
|
|
50239
|
+
"kanban_parked",
|
|
50240
|
+
// Read-only: a timeout here can never have committed anything.
|
|
50241
|
+
true
|
|
50242
|
+
);
|
|
50243
|
+
return { content: [{ type: "text", text: renderKanbanParked(data, params.cursor !== void 0) }] };
|
|
50244
|
+
} catch (err) {
|
|
50245
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
50246
|
+
return { content: [{ type: "text", text: renderKanbanParkedError(params.target_agent, msg) }], isError: true };
|
|
50247
|
+
}
|
|
50248
|
+
}
|
|
50249
|
+
);
|
|
50167
50250
|
server.tool(
|
|
50168
50251
|
"kanban_reassign",
|
|
50169
50252
|
"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.",
|
|
@@ -52492,6 +52575,8 @@ var LOCAL_TOOL_NAMES = /* @__PURE__ */ new Set([
|
|
|
52492
52575
|
"kanban_reopen",
|
|
52493
52576
|
// ENG-9375: the READ path over a teammate's board (counts only).
|
|
52494
52577
|
"kanban_peek",
|
|
52578
|
+
// ENG-11732: a direct report's parked cards, for its reports-to manager.
|
|
52579
|
+
"kanban_parked",
|
|
52495
52580
|
// ENG-9789: per-agent standing rules. The ADD path is swap-only — an agent
|
|
52496
52581
|
// may not displace a rule except by naming it while adding another, so a full
|
|
52497
52582
|
// list can never be resolved by a silent delete.
|
package/package.json
CHANGED
|
File without changes
|