@integrity-labs/agt-cli 0.28.817 → 0.28.819
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 +5 -5
- package/dist/{chunk-356JFTPK.js → chunk-KXNIFBRC.js} +4 -4
- package/dist/{chunk-SZ47B4KO.js → chunk-NVUWRJWX.js} +2 -2
- package/dist/chunk-NVUWRJWX.js.map +1 -0
- package/dist/{chunk-5RZBTMBD.js → chunk-ZDV575SW.js} +162 -59
- package/dist/chunk-ZDV575SW.js.map +1 -0
- package/dist/{claude-pair-runtime-ZG6I4NMN.js → claude-pair-runtime-HVO7IOCM.js} +2 -2
- package/dist/lib/manager-worker.js +13 -13
- package/dist/mcp/direct-chat-channel.js +1 -1
- package/dist/mcp/index.js +124 -14
- package/dist/mcp/origami.js +1 -1
- package/dist/mcp/slack-channel.js +1 -1
- package/dist/mcp/telegram-channel.js +1 -1
- package/dist/{persistent-session-YX4JTHMC.js → persistent-session-AGMIVLTP.js} +3 -3
- package/dist/{responsiveness-probe-63R3PUAU.js → responsiveness-probe-URK6CHNZ.js} +3 -3
- package/dist/{session-auth-dead-2NFR7OFR.js → session-auth-dead-5FPVU375.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-5RZBTMBD.js.map +0 -1
- package/dist/chunk-SZ47B4KO.js.map +0 -1
- /package/dist/{chunk-356JFTPK.js.map → chunk-KXNIFBRC.js.map} +0 -0
- /package/dist/{claude-pair-runtime-ZG6I4NMN.js.map → claude-pair-runtime-HVO7IOCM.js.map} +0 -0
- /package/dist/{persistent-session-YX4JTHMC.js.map → persistent-session-AGMIVLTP.js.map} +0 -0
- /package/dist/{responsiveness-probe-63R3PUAU.js.map → responsiveness-probe-URK6CHNZ.js.map} +0 -0
- /package/dist/{session-auth-dead-2NFR7OFR.js.map → session-auth-dead-5FPVU375.js.map} +0 -0
|
@@ -100,7 +100,7 @@ async function spawnPairSession(session) {
|
|
|
100
100
|
return { ok: true };
|
|
101
101
|
} catch {
|
|
102
102
|
}
|
|
103
|
-
const { resolveClaudeBinary } = await import("./persistent-session-
|
|
103
|
+
const { resolveClaudeBinary } = await import("./persistent-session-AGMIVLTP.js");
|
|
104
104
|
const claudeBin = resolveClaudeBinary();
|
|
105
105
|
const pairEnv = {
|
|
106
106
|
...process.env,
|
|
@@ -373,4 +373,4 @@ export {
|
|
|
373
373
|
startClaudePair,
|
|
374
374
|
submitClaudePairCode
|
|
375
375
|
};
|
|
376
|
-
//# sourceMappingURL=claude-pair-runtime-
|
|
376
|
+
//# sourceMappingURL=claude-pair-runtime-HVO7IOCM.js.map
|
|
@@ -58,7 +58,7 @@ import {
|
|
|
58
58
|
safeWriteJsonAtomic,
|
|
59
59
|
setConfigHash,
|
|
60
60
|
tripClass
|
|
61
|
-
} from "../chunk-
|
|
61
|
+
} from "../chunk-KXNIFBRC.js";
|
|
62
62
|
import {
|
|
63
63
|
getProjectDir as getProjectDir2,
|
|
64
64
|
getReadyTasks,
|
|
@@ -123,7 +123,7 @@ import {
|
|
|
123
123
|
takeZombieDetection,
|
|
124
124
|
toOpencodeModel,
|
|
125
125
|
writeEgressAllowlist
|
|
126
|
-
} from "../chunk-
|
|
126
|
+
} from "../chunk-ZDV575SW.js";
|
|
127
127
|
import {
|
|
128
128
|
ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
|
|
129
129
|
AnchorSessionClient,
|
|
@@ -215,7 +215,7 @@ import {
|
|
|
215
215
|
subagentActivityAgeSeconds,
|
|
216
216
|
sumTranscriptUsageInWindow,
|
|
217
217
|
transcriptActivityAgeSeconds
|
|
218
|
-
} from "../chunk-
|
|
218
|
+
} from "../chunk-NVUWRJWX.js";
|
|
219
219
|
import {
|
|
220
220
|
reapOrphanChannelMcps
|
|
221
221
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -12918,7 +12918,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
|
|
|
12918
12918
|
var dayRolloverInboundHold = /* @__PURE__ */ new Map();
|
|
12919
12919
|
var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
|
|
12920
12920
|
async function channelInboundActivityAgeSecondsFor(codeName) {
|
|
12921
|
-
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-
|
|
12921
|
+
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-URK6CHNZ.js");
|
|
12922
12922
|
const newest = newestPendingInboundActivityMtimeMs(dirname10(paneLogPath(codeName)));
|
|
12923
12923
|
if (newest === null) return null;
|
|
12924
12924
|
return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
|
|
@@ -13586,7 +13586,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
13586
13586
|
var lastVersionCheckAt = 0;
|
|
13587
13587
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
13588
13588
|
var lastResponsivenessProbeAt = 0;
|
|
13589
|
-
var agtCliVersion = true ? "0.28.
|
|
13589
|
+
var agtCliVersion = true ? "0.28.819" : "dev";
|
|
13590
13590
|
function resolveBrewPath(execFileSync2) {
|
|
13591
13591
|
try {
|
|
13592
13592
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -15151,7 +15151,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
15151
15151
|
if (codeNames.length === 0) return;
|
|
15152
15152
|
void (async () => {
|
|
15153
15153
|
try {
|
|
15154
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15154
|
+
const { collectDiagnostics } = await import("../persistent-session-AGMIVLTP.js");
|
|
15155
15155
|
await api.post("/host/heartbeat", {
|
|
15156
15156
|
host_id: hostId,
|
|
15157
15157
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -15292,7 +15292,7 @@ async function pollCycleInner() {
|
|
|
15292
15292
|
}
|
|
15293
15293
|
try {
|
|
15294
15294
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
15295
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15295
|
+
const { collectDiagnostics } = await import("../persistent-session-AGMIVLTP.js");
|
|
15296
15296
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
15297
15297
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor) : void 0;
|
|
15298
15298
|
let tailscaleHostname;
|
|
@@ -15461,7 +15461,7 @@ async function pollCycleInner() {
|
|
|
15461
15461
|
collectPanelessActivityProbes,
|
|
15462
15462
|
getResponsivenessIntervalMs,
|
|
15463
15463
|
occupancyQualificationClassifications
|
|
15464
|
-
} = await import("../responsiveness-probe-
|
|
15464
|
+
} = await import("../responsiveness-probe-URK6CHNZ.js");
|
|
15465
15465
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
15466
15466
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
15467
15467
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -15578,7 +15578,7 @@ async function pollCycleInner() {
|
|
|
15578
15578
|
collectResponsivenessProbes,
|
|
15579
15579
|
livePendingInboundOldestAgeSeconds,
|
|
15580
15580
|
parkPendingInbound
|
|
15581
|
-
} = await import("../responsiveness-probe-
|
|
15581
|
+
} = await import("../responsiveness-probe-URK6CHNZ.js");
|
|
15582
15582
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
|
|
15583
15583
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
15584
15584
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -15734,7 +15734,7 @@ async function pollCycleInner() {
|
|
|
15734
15734
|
}
|
|
15735
15735
|
try {
|
|
15736
15736
|
const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-JA437JIB.js");
|
|
15737
|
-
const { probeSessionAuth } = await import("../session-auth-dead-
|
|
15737
|
+
const { probeSessionAuth } = await import("../session-auth-dead-5FPVU375.js");
|
|
15738
15738
|
const observations = [];
|
|
15739
15739
|
const pendingCacheCommits = [];
|
|
15740
15740
|
const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
|
|
@@ -19934,7 +19934,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
19934
19934
|
void api.post("/host/restart-ack", { host_id: hostId, agent_id: agentId, restart_requested_at: requestedAt }).catch((err) => log(`[restart-lane] ack failed for '${codeName}': ${err.message}`));
|
|
19935
19935
|
void (async () => {
|
|
19936
19936
|
try {
|
|
19937
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
19937
|
+
const { collectDiagnostics } = await import("../persistent-session-AGMIVLTP.js");
|
|
19938
19938
|
await api.post("/host/heartbeat", {
|
|
19939
19939
|
host_id: hostId,
|
|
19940
19940
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -19980,7 +19980,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
19980
19980
|
}
|
|
19981
19981
|
try {
|
|
19982
19982
|
const hostId = await getHostId();
|
|
19983
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
19983
|
+
const { collectDiagnostics } = await import("../persistent-session-AGMIVLTP.js");
|
|
19984
19984
|
await api.post("/host/heartbeat", {
|
|
19985
19985
|
host_id: hostId,
|
|
19986
19986
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -20616,7 +20616,7 @@ async function processClaudePairSessions(agents) {
|
|
|
20616
20616
|
killPairSession,
|
|
20617
20617
|
pairTmuxSession,
|
|
20618
20618
|
finalizeClaudePairOnboarding
|
|
20619
|
-
} = await import("../claude-pair-runtime-
|
|
20619
|
+
} = await import("../claude-pair-runtime-HVO7IOCM.js");
|
|
20620
20620
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
20621
20621
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
20622
20622
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -30385,7 +30385,7 @@ var KNOWN_MODEL_SLOTS = new Set(Object.values(FRAMEWORK_MODEL_SLOTS).flat());
|
|
|
30385
30385
|
// ../core/dist/types/model-policy.js
|
|
30386
30386
|
var KNOWN_MODEL_POLICY_SLOTS = [...KNOWN_MODEL_SLOTS].sort();
|
|
30387
30387
|
var MODEL_POLICY_SLOTS_IN_ORDER = [...KNOWN_MODEL_SLOTS];
|
|
30388
|
-
var MODEL_POLICY_SLOTS_PENDING_ACTUATOR = /* @__PURE__ */ new Set(
|
|
30388
|
+
var MODEL_POLICY_SLOTS_PENDING_ACTUATOR = /* @__PURE__ */ new Set();
|
|
30389
30389
|
var OFFERABLE_MODEL_POLICY_SLOTS = MODEL_POLICY_SLOTS_IN_ORDER.filter((slot) => !MODEL_POLICY_SLOTS_PENDING_ACTUATOR.has(slot));
|
|
30390
30390
|
|
|
30391
30391
|
// ../core/dist/types/integration.js
|
package/dist/mcp/index.js
CHANGED
|
@@ -22413,7 +22413,7 @@ var KNOWN_MODEL_SLOTS = new Set(Object.values(FRAMEWORK_MODEL_SLOTS).flat());
|
|
|
22413
22413
|
// ../core/dist/types/model-policy.js
|
|
22414
22414
|
var KNOWN_MODEL_POLICY_SLOTS = [...KNOWN_MODEL_SLOTS].sort();
|
|
22415
22415
|
var MODEL_POLICY_SLOTS_IN_ORDER = [...KNOWN_MODEL_SLOTS];
|
|
22416
|
-
var MODEL_POLICY_SLOTS_PENDING_ACTUATOR = /* @__PURE__ */ new Set(
|
|
22416
|
+
var MODEL_POLICY_SLOTS_PENDING_ACTUATOR = /* @__PURE__ */ new Set();
|
|
22417
22417
|
var OFFERABLE_MODEL_POLICY_SLOTS = MODEL_POLICY_SLOTS_IN_ORDER.filter((slot) => !MODEL_POLICY_SLOTS_PENDING_ACTUATOR.has(slot));
|
|
22418
22418
|
|
|
22419
22419
|
// ../core/dist/types/integration.js
|
|
@@ -29659,6 +29659,13 @@ var MIN_PROVISIONING_MAX_FOR_QUARANTINE_ORDERING = BIND_FAILURE_QUARANTINE_THRES
|
|
|
29659
29659
|
var FORCED_UPDATE_RELAX_AFTER_MS = 7 * 6e4;
|
|
29660
29660
|
var FORCED_UPDATE_HARD_DEADLINE_MS = 15 * 6e4;
|
|
29661
29661
|
|
|
29662
|
+
// src/kanban-get-error.ts
|
|
29663
|
+
function kanbanGetErrorMessage(status, id, fallbackMessage) {
|
|
29664
|
+
if (status === 400) return "A card id is required.";
|
|
29665
|
+
if (status === 404) return `No card with id "${id}" on your board.`;
|
|
29666
|
+
return `Could not read the card: ${fallbackMessage}`;
|
|
29667
|
+
}
|
|
29668
|
+
|
|
29662
29669
|
// src/index.ts
|
|
29663
29670
|
import { homedir as homedir3, tmpdir } from "os";
|
|
29664
29671
|
import { basename, isAbsolute, join as join4, resolve as pathResolve, sep } from "path";
|
|
@@ -44304,7 +44311,7 @@ function renderDescriptionClause(item) {
|
|
|
44304
44311
|
const { shown, total, truncated } = truncateByCodePoints(text, KANBAN_DESCRIPTION_MAX_CHARS);
|
|
44305
44312
|
if (!truncated) return ` ${text}`;
|
|
44306
44313
|
return ` ${shown}
|
|
44307
|
-
[description truncated \u2014 showing ${KANBAN_DESCRIPTION_MAX_CHARS} of ${total} characters;
|
|
44314
|
+
[description truncated \u2014 showing ${KANBAN_DESCRIPTION_MAX_CHARS} of ${total} characters; use kanban_get(id: "${item.id}") for the rest]`;
|
|
44308
44315
|
}
|
|
44309
44316
|
function renderKanbanItemLine(item, nowMs, suffix = "") {
|
|
44310
44317
|
const pri = kanbanPriorityLabel(item.priority);
|
|
@@ -44358,6 +44365,74 @@ var BLOCKED_ON_ME_SECTION_HEADING = "You are blocking these (another agent has s
|
|
|
44358
44365
|
var BLOCKED_ON_ME_SECTION_NOTE = "_Another agent has PARKED its own work until you act. These are not your cards and not pullable work \u2014 you cannot move, note or complete them, and they do not count toward your in-progress load. Do the thing named, then answer with `kanban_respond` (card_id + your answer) \u2014 that delivers it ON the parked card and un-parks it. Do NOT open a second card to carry the answer._";
|
|
44359
44366
|
var HUMAN_ASSIGNED_SECTION_HEADING = "Assigned to a person (not yours to action)";
|
|
44360
44367
|
var HUMAN_ASSIGNED_SECTION_NOTE = "_These belong to a person, not to you. You cannot move, note or complete them \u2014 every kanban write is refused. If the work is finished (or was never really theirs), use `kanban_recall` to pull the card back onto your board, then close it as normal._";
|
|
44368
|
+
function fullCardField(label, value) {
|
|
44369
|
+
if (value === null || value === void 0 || value === "") return null;
|
|
44370
|
+
return `${label}: ${value}`;
|
|
44371
|
+
}
|
|
44372
|
+
function renderKanbanFullCard(item, nowMs = Date.now()) {
|
|
44373
|
+
const lines = [];
|
|
44374
|
+
lines.push(`# ${item.title}`);
|
|
44375
|
+
lines.push(
|
|
44376
|
+
[
|
|
44377
|
+
`id: ${item.id}`,
|
|
44378
|
+
`status: ${item.status}`,
|
|
44379
|
+
`priority: ${kanbanPriorityLabel(item.priority)}`
|
|
44380
|
+
].join(" \xB7 ")
|
|
44381
|
+
);
|
|
44382
|
+
if (item.status === "waiting") {
|
|
44383
|
+
const clause = renderWaitingClause(
|
|
44384
|
+
{
|
|
44385
|
+
...item,
|
|
44386
|
+
estimated_minutes: item.estimated_minutes ?? void 0,
|
|
44387
|
+
description: void 0,
|
|
44388
|
+
// the clause below prints description separately, in full
|
|
44389
|
+
result: void 0,
|
|
44390
|
+
deliverable: void 0
|
|
44391
|
+
},
|
|
44392
|
+
nowMs
|
|
44393
|
+
);
|
|
44394
|
+
if (clause) lines.push(clause.trim().replace(/^⏸\s*/, "waiting: "));
|
|
44395
|
+
}
|
|
44396
|
+
const meta = [
|
|
44397
|
+
fullCardField("created", item.created_at),
|
|
44398
|
+
fullCardField("updated", item.updated_at),
|
|
44399
|
+
fullCardField("completed", item.completed_at)
|
|
44400
|
+
].filter((l) => l !== null);
|
|
44401
|
+
if (meta.length) lines.push(meta.join(" \xB7 "));
|
|
44402
|
+
const source = [
|
|
44403
|
+
fullCardField("source", item.source),
|
|
44404
|
+
fullCardField("source_type", item.source_type),
|
|
44405
|
+
fullCardField("source_integration", item.source_integration),
|
|
44406
|
+
fullCardField("source_ref", item.source_ref),
|
|
44407
|
+
fullCardField("source_external_id", item.source_external_id),
|
|
44408
|
+
fullCardField("source_url", item.source_url)
|
|
44409
|
+
].filter((l) => l !== null);
|
|
44410
|
+
if (source.length) lines.push(source.join(" \xB7 "));
|
|
44411
|
+
if (item.assignee_type && item.assignee_type !== "agent") {
|
|
44412
|
+
lines.push(`assigned to: ${item.assignee_type}${item.assignee_user_id ? ` (${item.assignee_user_id})` : ""}`);
|
|
44413
|
+
}
|
|
44414
|
+
if (item.description && item.description.trim().length > 0) {
|
|
44415
|
+
lines.push("");
|
|
44416
|
+
lines.push("## Description");
|
|
44417
|
+
lines.push(item.description);
|
|
44418
|
+
}
|
|
44419
|
+
if (item.notes && item.notes.trim().length > 0) {
|
|
44420
|
+
lines.push("");
|
|
44421
|
+
lines.push("## Notes");
|
|
44422
|
+
lines.push(item.notes);
|
|
44423
|
+
}
|
|
44424
|
+
if (item.deliverable && item.deliverable.trim().length > 0) {
|
|
44425
|
+
lines.push("");
|
|
44426
|
+
lines.push("## Deliverable");
|
|
44427
|
+
lines.push(item.deliverable);
|
|
44428
|
+
}
|
|
44429
|
+
if (item.result && item.result.trim().length > 0) {
|
|
44430
|
+
lines.push("");
|
|
44431
|
+
lines.push("## Result");
|
|
44432
|
+
lines.push(item.result);
|
|
44433
|
+
}
|
|
44434
|
+
return lines.join("\n");
|
|
44435
|
+
}
|
|
44361
44436
|
|
|
44362
44437
|
// src/kanban-peek-render.ts
|
|
44363
44438
|
var PEEK_RENDER_COLUMNS = [
|
|
@@ -45377,6 +45452,13 @@ async function getToken() {
|
|
|
45377
45452
|
}
|
|
45378
45453
|
return AGT_TOKEN;
|
|
45379
45454
|
}
|
|
45455
|
+
var ApiPostError = class extends Error {
|
|
45456
|
+
constructor(message, status) {
|
|
45457
|
+
super(message);
|
|
45458
|
+
this.status = status;
|
|
45459
|
+
this.name = "ApiPostError";
|
|
45460
|
+
}
|
|
45461
|
+
};
|
|
45380
45462
|
async function apiPost(path, body, retried = false, timeoutMs = 15e3, toolName, readOnly = false) {
|
|
45381
45463
|
const token = await getToken();
|
|
45382
45464
|
const controller = new AbortController();
|
|
@@ -45399,11 +45481,12 @@ async function apiPost(path, body, retried = false, timeoutMs = 15e3, toolName,
|
|
|
45399
45481
|
if (!res.ok) {
|
|
45400
45482
|
const text = await res.text().catch(() => res.statusText);
|
|
45401
45483
|
if (res.status === 401 && AGT_AGENT_SESSION_TOKEN) {
|
|
45402
|
-
throw new
|
|
45403
|
-
`API ${path} returned 401: agent-session rejected (expired or revoked). Re-run \`agt impersonate connect\` to mint a fresh session. (${text})
|
|
45484
|
+
throw new ApiPostError(
|
|
45485
|
+
`API ${path} returned 401: agent-session rejected (expired or revoked). Re-run \`agt impersonate connect\` to mint a fresh session. (${text})`,
|
|
45486
|
+
401
|
|
45404
45487
|
);
|
|
45405
45488
|
}
|
|
45406
|
-
throw new
|
|
45489
|
+
throw new ApiPostError(
|
|
45407
45490
|
describeToolCallFailure({
|
|
45408
45491
|
path,
|
|
45409
45492
|
toolName,
|
|
@@ -45411,25 +45494,27 @@ async function apiPost(path, body, retried = false, timeoutMs = 15e3, toolName,
|
|
|
45411
45494
|
state: classifyMutationCommitState({ status: res.status, body: text }),
|
|
45412
45495
|
status: res.status,
|
|
45413
45496
|
body: text
|
|
45414
|
-
})
|
|
45497
|
+
}),
|
|
45498
|
+
res.status
|
|
45415
45499
|
);
|
|
45416
45500
|
}
|
|
45417
45501
|
try {
|
|
45418
45502
|
return await res.json();
|
|
45419
45503
|
} catch {
|
|
45420
|
-
throw new
|
|
45504
|
+
throw new ApiPostError(
|
|
45421
45505
|
describeToolCallFailure({
|
|
45422
45506
|
path,
|
|
45423
45507
|
toolName,
|
|
45424
45508
|
state: "committed",
|
|
45425
45509
|
status: res.status,
|
|
45426
45510
|
body: "response body was not valid JSON"
|
|
45427
|
-
})
|
|
45511
|
+
}),
|
|
45512
|
+
res.status
|
|
45428
45513
|
);
|
|
45429
45514
|
}
|
|
45430
45515
|
} catch (err) {
|
|
45431
45516
|
if (err instanceof DOMException && err.name === "AbortError") {
|
|
45432
|
-
throw new
|
|
45517
|
+
throw new ApiPostError(
|
|
45433
45518
|
describeToolCallFailure({
|
|
45434
45519
|
path,
|
|
45435
45520
|
toolName,
|
|
@@ -45438,11 +45523,12 @@ async function apiPost(path, body, retried = false, timeoutMs = 15e3, toolName,
|
|
|
45438
45523
|
status: null,
|
|
45439
45524
|
aborted: true,
|
|
45440
45525
|
timeoutMs
|
|
45441
|
-
})
|
|
45526
|
+
}),
|
|
45527
|
+
null
|
|
45442
45528
|
);
|
|
45443
45529
|
}
|
|
45444
45530
|
if (err instanceof Error && !/^API /.test(err.message)) {
|
|
45445
|
-
throw new
|
|
45531
|
+
throw new ApiPostError(
|
|
45446
45532
|
describeToolCallFailure({
|
|
45447
45533
|
path,
|
|
45448
45534
|
toolName,
|
|
@@ -45450,7 +45536,8 @@ async function apiPost(path, body, retried = false, timeoutMs = 15e3, toolName,
|
|
|
45450
45536
|
state: classifyMutationCommitState({ status: null }),
|
|
45451
45537
|
status: null,
|
|
45452
45538
|
body: err.message
|
|
45453
|
-
})
|
|
45539
|
+
}),
|
|
45540
|
+
null
|
|
45454
45541
|
);
|
|
45455
45542
|
}
|
|
45456
45543
|
throw err;
|
|
@@ -45556,18 +45643,40 @@ server.tool(
|
|
|
45556
45643
|
desc,
|
|
45557
45644
|
KANBAN_SEARCH_DESCRIPTION_MAX_CHARS
|
|
45558
45645
|
);
|
|
45559
|
-
const line = truncated ? `${shown} \u2026(description trimmed at ${KANBAN_SEARCH_DESCRIPTION_MAX_CHARS} of ${total} characters;
|
|
45646
|
+
const line = truncated ? `${shown} \u2026(description trimmed at ${KANBAN_SEARCH_DESCRIPTION_MAX_CHARS} of ${total} characters; use kanban_get(id: "${item.id}") for the full text)` : desc;
|
|
45560
45647
|
lines.push(` ${line}`);
|
|
45561
45648
|
}
|
|
45562
45649
|
if (item.deliverable) lines.push(` \u2192 ${item.deliverable}`);
|
|
45563
45650
|
if (item.result) {
|
|
45564
|
-
const more = item.result_truncated ?
|
|
45651
|
+
const more = item.result_truncated ? ` \u2026(result trimmed; use kanban_get(id: "${item.id}") for the full text)` : "";
|
|
45565
45652
|
lines.push(` \u2713 ${item.result}${more}`);
|
|
45566
45653
|
}
|
|
45567
45654
|
}
|
|
45568
45655
|
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
45569
45656
|
}
|
|
45570
45657
|
);
|
|
45658
|
+
server.tool(
|
|
45659
|
+
"kanban_get",
|
|
45660
|
+
'Read ONE of your own kanban cards IN FULL, with no truncation anywhere - description, notes, result, deliverable, every field. kanban_list caps a description at 1,200 characters and kanban_search at 300; this is the one surface where "read the whole thing" always means the whole thing. Use it whenever a card matters enough to read completely - especially a scheduled-task card, whose description IS the routine prompt you are executing: a long one may already be silently truncated everywhere else you have seen it.',
|
|
45661
|
+
{
|
|
45662
|
+
id: external_exports.string().describe("The card id (from kanban_list, kanban_search, or any other kanban tool's response).")
|
|
45663
|
+
},
|
|
45664
|
+
async ({ id }) => {
|
|
45665
|
+
let data;
|
|
45666
|
+
try {
|
|
45667
|
+
data = await apiPost("/host/kanban/get", { agent_id: AGT_AGENT_ID, id }, false, 15e3, "kanban_get", true);
|
|
45668
|
+
} catch (err) {
|
|
45669
|
+
const status = err instanceof ApiPostError ? err.status : null;
|
|
45670
|
+
return {
|
|
45671
|
+
content: [{ type: "text", text: kanbanGetErrorMessage(status, id, err.message) }]
|
|
45672
|
+
};
|
|
45673
|
+
}
|
|
45674
|
+
if (!data.item) {
|
|
45675
|
+
return { content: [{ type: "text", text: kanbanGetErrorMessage(404, id, "card not found") }] };
|
|
45676
|
+
}
|
|
45677
|
+
return { content: [{ type: "text", text: renderKanbanFullCard(data.item) }] };
|
|
45678
|
+
}
|
|
45679
|
+
);
|
|
45571
45680
|
server.tool(
|
|
45572
45681
|
"kanban_add",
|
|
45573
45682
|
"Add a new item to the kanban board.",
|
|
@@ -48191,6 +48300,7 @@ var LOCAL_TOOL_NAMES = /* @__PURE__ */ new Set([
|
|
|
48191
48300
|
"cancel_approval",
|
|
48192
48301
|
"kanban_list",
|
|
48193
48302
|
"kanban_search",
|
|
48303
|
+
"kanban_get",
|
|
48194
48304
|
"kanban_add",
|
|
48195
48305
|
"kanban_move",
|
|
48196
48306
|
"kanban_update",
|
package/dist/mcp/origami.js
CHANGED
|
@@ -36386,7 +36386,7 @@ var KNOWN_MODEL_SLOTS = new Set(Object.values(FRAMEWORK_MODEL_SLOTS).flat());
|
|
|
36386
36386
|
// ../core/dist/types/model-policy.js
|
|
36387
36387
|
var KNOWN_MODEL_POLICY_SLOTS = [...KNOWN_MODEL_SLOTS].sort();
|
|
36388
36388
|
var MODEL_POLICY_SLOTS_IN_ORDER = [...KNOWN_MODEL_SLOTS];
|
|
36389
|
-
var MODEL_POLICY_SLOTS_PENDING_ACTUATOR = /* @__PURE__ */ new Set(
|
|
36389
|
+
var MODEL_POLICY_SLOTS_PENDING_ACTUATOR = /* @__PURE__ */ new Set();
|
|
36390
36390
|
var OFFERABLE_MODEL_POLICY_SLOTS = MODEL_POLICY_SLOTS_IN_ORDER.filter((slot) => !MODEL_POLICY_SLOTS_PENDING_ACTUATOR.has(slot));
|
|
36391
36391
|
|
|
36392
36392
|
// ../core/dist/types/integration.js
|
|
@@ -30712,7 +30712,7 @@ var KNOWN_MODEL_SLOTS = new Set(Object.values(FRAMEWORK_MODEL_SLOTS).flat());
|
|
|
30712
30712
|
// ../core/dist/types/model-policy.js
|
|
30713
30713
|
var KNOWN_MODEL_POLICY_SLOTS = [...KNOWN_MODEL_SLOTS].sort();
|
|
30714
30714
|
var MODEL_POLICY_SLOTS_IN_ORDER = [...KNOWN_MODEL_SLOTS];
|
|
30715
|
-
var MODEL_POLICY_SLOTS_PENDING_ACTUATOR = /* @__PURE__ */ new Set(
|
|
30715
|
+
var MODEL_POLICY_SLOTS_PENDING_ACTUATOR = /* @__PURE__ */ new Set();
|
|
30716
30716
|
var OFFERABLE_MODEL_POLICY_SLOTS = MODEL_POLICY_SLOTS_IN_ORDER.filter((slot) => !MODEL_POLICY_SLOTS_PENDING_ACTUATOR.has(slot));
|
|
30717
30717
|
|
|
30718
30718
|
// ../core/dist/types/integration.js
|
|
@@ -30850,7 +30850,7 @@ var KNOWN_MODEL_SLOTS = new Set(Object.values(FRAMEWORK_MODEL_SLOTS).flat());
|
|
|
30850
30850
|
// ../core/dist/types/model-policy.js
|
|
30851
30851
|
var KNOWN_MODEL_POLICY_SLOTS = [...KNOWN_MODEL_SLOTS].sort();
|
|
30852
30852
|
var MODEL_POLICY_SLOTS_IN_ORDER = [...KNOWN_MODEL_SLOTS];
|
|
30853
|
-
var MODEL_POLICY_SLOTS_PENDING_ACTUATOR = /* @__PURE__ */ new Set(
|
|
30853
|
+
var MODEL_POLICY_SLOTS_PENDING_ACTUATOR = /* @__PURE__ */ new Set();
|
|
30854
30854
|
var OFFERABLE_MODEL_POLICY_SLOTS = MODEL_POLICY_SLOTS_IN_ORDER.filter((slot) => !MODEL_POLICY_SLOTS_PENDING_ACTUATOR.has(slot));
|
|
30855
30855
|
|
|
30856
30856
|
// ../core/dist/types/integration.js
|
|
@@ -49,8 +49,8 @@ import {
|
|
|
49
49
|
writeDirectChatSessionState,
|
|
50
50
|
writeEgressAllowlist,
|
|
51
51
|
writePersistentClaudeWrapper
|
|
52
|
-
} from "./chunk-
|
|
53
|
-
import "./chunk-
|
|
52
|
+
} from "./chunk-ZDV575SW.js";
|
|
53
|
+
import "./chunk-NVUWRJWX.js";
|
|
54
54
|
import "./chunk-XWVM4KPK.js";
|
|
55
55
|
export {
|
|
56
56
|
EGRESS_BASELINE_DOMAINS,
|
|
@@ -104,4 +104,4 @@ export {
|
|
|
104
104
|
writeEgressAllowlist,
|
|
105
105
|
writePersistentClaudeWrapper
|
|
106
106
|
};
|
|
107
|
-
//# sourceMappingURL=persistent-session-
|
|
107
|
+
//# sourceMappingURL=persistent-session-AGMIVLTP.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-ZDV575SW.js";
|
|
4
|
+
import "./chunk-NVUWRJWX.js";
|
|
5
5
|
import "./chunk-XWVM4KPK.js";
|
|
6
6
|
|
|
7
7
|
// src/lib/responsiveness-probe.ts
|
|
@@ -745,4 +745,4 @@ export {
|
|
|
745
745
|
readAndResetSlackReplyBindingClassifications,
|
|
746
746
|
readAndResetSlackReplyTargetClassifications
|
|
747
747
|
};
|
|
748
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
748
|
+
//# sourceMappingURL=responsiveness-probe-URK6CHNZ.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionTranscriptDir
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NVUWRJWX.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/session-auth-dead.ts
|
|
6
6
|
import { closeSync, openSync, readSync, readdirSync, statSync } from "fs";
|
|
@@ -203,4 +203,4 @@ export {
|
|
|
203
203
|
decideSessionAuthState,
|
|
204
204
|
probeSessionAuth
|
|
205
205
|
};
|
|
206
|
-
//# sourceMappingURL=session-auth-dead-
|
|
206
|
+
//# sourceMappingURL=session-auth-dead-5FPVU375.js.map
|