@integrity-labs/agt-cli 0.28.513 → 0.28.514
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 +4 -4
- package/dist/{chunk-PZ3RIMNA.js → chunk-GJ6U2XU6.js} +3 -3
- package/dist/{chunk-MDEA3PIS.js → chunk-S5RR4UHQ.js} +15 -3
- package/dist/chunk-S5RR4UHQ.js.map +1 -0
- package/dist/{claude-pair-runtime-C7FJTY3F.js → claude-pair-runtime-YGKYLV4M.js} +2 -2
- package/dist/lib/manager-worker.js +10 -10
- package/dist/mcp/direct-chat-channel.js +13 -1
- package/dist/mcp/index.js +34 -5
- package/dist/mcp/origami.js +13 -1
- package/dist/mcp/slack-channel.js +13 -1
- package/dist/mcp/telegram-channel.js +13 -1
- package/dist/{persistent-session-QNYR2ZJA.js → persistent-session-RM5ZY2SB.js} +2 -2
- package/dist/{responsiveness-probe-X3PAOSNA.js → responsiveness-probe-C4KMTKWR.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-MDEA3PIS.js.map +0 -1
- /package/dist/{chunk-PZ3RIMNA.js.map → chunk-GJ6U2XU6.js.map} +0 -0
- /package/dist/{claude-pair-runtime-C7FJTY3F.js.map → claude-pair-runtime-YGKYLV4M.js.map} +0 -0
- /package/dist/{persistent-session-QNYR2ZJA.js.map → persistent-session-RM5ZY2SB.js.map} +0 -0
- /package/dist/{responsiveness-probe-X3PAOSNA.js.map → responsiveness-probe-C4KMTKWR.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-RM5ZY2SB.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-YGKYLV4M.js.map
|
|
@@ -53,7 +53,7 @@ import {
|
|
|
53
53
|
safeWriteJsonAtomic,
|
|
54
54
|
setConfigHash,
|
|
55
55
|
tripClass
|
|
56
|
-
} from "../chunk-
|
|
56
|
+
} from "../chunk-GJ6U2XU6.js";
|
|
57
57
|
import {
|
|
58
58
|
getProjectDir as getProjectDir2,
|
|
59
59
|
getReadyTasks,
|
|
@@ -173,7 +173,7 @@ import {
|
|
|
173
173
|
toOpencodeModel,
|
|
174
174
|
transcriptActivityAgeSeconds,
|
|
175
175
|
writeEgressAllowlist
|
|
176
|
-
} from "../chunk-
|
|
176
|
+
} from "../chunk-S5RR4UHQ.js";
|
|
177
177
|
import {
|
|
178
178
|
reapOrphanChannelMcps
|
|
179
179
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -10071,7 +10071,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
10071
10071
|
var lastVersionCheckAt = 0;
|
|
10072
10072
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
10073
10073
|
var lastResponsivenessProbeAt = 0;
|
|
10074
|
-
var agtCliVersion = true ? "0.28.
|
|
10074
|
+
var agtCliVersion = true ? "0.28.514" : "dev";
|
|
10075
10075
|
function resolveBrewPath(execFileSync2) {
|
|
10076
10076
|
try {
|
|
10077
10077
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -11278,7 +11278,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
11278
11278
|
if (codeNames.length === 0) return;
|
|
11279
11279
|
void (async () => {
|
|
11280
11280
|
try {
|
|
11281
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
11281
|
+
const { collectDiagnostics } = await import("../persistent-session-RM5ZY2SB.js");
|
|
11282
11282
|
await api.post("/host/heartbeat", {
|
|
11283
11283
|
host_id: hostId,
|
|
11284
11284
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor)
|
|
@@ -11385,7 +11385,7 @@ async function pollCycle() {
|
|
|
11385
11385
|
}
|
|
11386
11386
|
try {
|
|
11387
11387
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
11388
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
11388
|
+
const { collectDiagnostics } = await import("../persistent-session-RM5ZY2SB.js");
|
|
11389
11389
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
11390
11390
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor) : void 0;
|
|
11391
11391
|
let tailscaleHostname;
|
|
@@ -11500,7 +11500,7 @@ async function pollCycle() {
|
|
|
11500
11500
|
collectResponsivenessProbes,
|
|
11501
11501
|
collectPanelessActivityProbes,
|
|
11502
11502
|
getResponsivenessIntervalMs
|
|
11503
|
-
} = await import("../responsiveness-probe-
|
|
11503
|
+
} = await import("../responsiveness-probe-C4KMTKWR.js");
|
|
11504
11504
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
11505
11505
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
11506
11506
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -11564,7 +11564,7 @@ async function pollCycle() {
|
|
|
11564
11564
|
collectResponsivenessProbes,
|
|
11565
11565
|
livePendingInboundOldestAgeSeconds,
|
|
11566
11566
|
parkPendingInbound
|
|
11567
|
-
} = await import("../responsiveness-probe-
|
|
11567
|
+
} = await import("../responsiveness-probe-C4KMTKWR.js");
|
|
11568
11568
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
|
|
11569
11569
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
11570
11570
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -15072,7 +15072,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
15072
15072
|
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}`));
|
|
15073
15073
|
void (async () => {
|
|
15074
15074
|
try {
|
|
15075
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15075
|
+
const { collectDiagnostics } = await import("../persistent-session-RM5ZY2SB.js");
|
|
15076
15076
|
await api.post("/host/heartbeat", {
|
|
15077
15077
|
host_id: hostId,
|
|
15078
15078
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
|
|
@@ -15122,7 +15122,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
15122
15122
|
}
|
|
15123
15123
|
try {
|
|
15124
15124
|
const hostId = await getHostId();
|
|
15125
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15125
|
+
const { collectDiagnostics } = await import("../persistent-session-RM5ZY2SB.js");
|
|
15126
15126
|
await api.post("/host/heartbeat", {
|
|
15127
15127
|
host_id: hostId,
|
|
15128
15128
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
|
|
@@ -15640,7 +15640,7 @@ async function processClaudePairSessions(agents) {
|
|
|
15640
15640
|
killPairSession,
|
|
15641
15641
|
pairTmuxSession,
|
|
15642
15642
|
finalizeClaudePairOnboarding
|
|
15643
|
-
} = await import("../claude-pair-runtime-
|
|
15643
|
+
} = await import("../claude-pair-runtime-YGKYLV4M.js");
|
|
15644
15644
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
15645
15645
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
15646
15646
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -33579,7 +33579,19 @@ var MB2 = 1024 * 1024;
|
|
|
33579
33579
|
var DIRECT_CHAT_UPLOAD_MAX_BYTES = 10 * MB2;
|
|
33580
33580
|
|
|
33581
33581
|
// ../core/dist/direct-chat/notice-display.js
|
|
33582
|
-
var AGENT_DIRECTED_NOTICE_KINDS = [
|
|
33582
|
+
var AGENT_DIRECTED_NOTICE_KINDS = [
|
|
33583
|
+
"scheduled_task_nudge",
|
|
33584
|
+
"kanban_check",
|
|
33585
|
+
// ENG-8394. These two were originally cited BELOW as examples of user-facing
|
|
33586
|
+
// notices; reading their content builders shows the opposite. The manager
|
|
33587
|
+
// feedback notice opens "Your manager just completed a performance review of
|
|
33588
|
+
// your work" and closes "Please reflect on this feedback and act on it now";
|
|
33589
|
+
// the form-timeout notice ends "do NOT keep waiting for this form" and quotes
|
|
33590
|
+
// a raw request id and Slack channel id. Both are second-person instructions
|
|
33591
|
+
// to the agent and were being rendered verbatim to the customer.
|
|
33592
|
+
"manager_feedback",
|
|
33593
|
+
"form_timeout"
|
|
33594
|
+
];
|
|
33583
33595
|
var AGENT_DIRECTED_KIND_SET = new Set(AGENT_DIRECTED_NOTICE_KINDS);
|
|
33584
33596
|
|
|
33585
33597
|
// ../core/dist/direct-chat/cursor-advance.js
|
package/dist/mcp/index.js
CHANGED
|
@@ -21756,33 +21756,62 @@ function describeAssignHumanResult(resp, email2) {
|
|
|
21756
21756
|
}
|
|
21757
21757
|
|
|
21758
21758
|
// src/directory.ts
|
|
21759
|
+
function scopedCount(n, scope) {
|
|
21760
|
+
const org = orgLabel(scope);
|
|
21761
|
+
if (!org) return `${n}`;
|
|
21762
|
+
return `${n} in ${org} \u2014 this directory cannot see other organizations`;
|
|
21763
|
+
}
|
|
21764
|
+
function orgLabel(scope) {
|
|
21765
|
+
if (scope?.cross_org !== false) return null;
|
|
21766
|
+
const named = scope.organization_name?.trim();
|
|
21767
|
+
if (named) return named;
|
|
21768
|
+
return scope.organization_id ? "your organization" : null;
|
|
21769
|
+
}
|
|
21770
|
+
function scopeFooter(scope) {
|
|
21771
|
+
const org = orgLabel(scope);
|
|
21772
|
+
if (!org) return null;
|
|
21773
|
+
const visible = scope?.teams_visible;
|
|
21774
|
+
const total = scope?.teams_in_org;
|
|
21775
|
+
const teams = typeof visible === "number" && typeof total === "number" ? ` (${visible} of ${total} team${total === 1 ? "" : "s"} visible to you)` : "";
|
|
21776
|
+
return `Scope: ${org} only${teams}. Other organizations are not searchable from here, so one match is not proof it is the only one, and no match is not proof there is none.`;
|
|
21777
|
+
}
|
|
21759
21778
|
function formatDirectoryResult(data, query, slackUserId) {
|
|
21760
21779
|
const agents = data.agents ?? [];
|
|
21761
21780
|
const people = data.people ?? [];
|
|
21781
|
+
const footer = scopeFooter(data.scope);
|
|
21762
21782
|
if (agents.length === 0 && people.length === 0) {
|
|
21763
21783
|
if (slackUserId) {
|
|
21764
21784
|
return {
|
|
21765
|
-
text: `No agent or person in your directory matches Slack id ${slackUserId}. Either they are not someone you're authorised to see, or they haven't linked their Slack account. Do not guess who it is.`
|
|
21785
|
+
text: `No agent or person in your directory matches Slack id ${slackUserId}. Either they are not someone you're authorised to see, or they haven't linked their Slack account. Do not guess who it is.` + (footer ? `
|
|
21786
|
+
|
|
21787
|
+
${footer}` : "")
|
|
21766
21788
|
};
|
|
21767
21789
|
}
|
|
21768
21790
|
return {
|
|
21769
|
-
text: query ? `No agents or people match "${query}" in your directory.` : "No agents or people are visible in your directory."
|
|
21791
|
+
text: (query ? `No agents or people match "${query}" in your directory.` : "No agents or people are visible in your directory.") + (footer ? `
|
|
21792
|
+
|
|
21793
|
+
${footer}` : "")
|
|
21770
21794
|
};
|
|
21771
21795
|
}
|
|
21772
21796
|
const slackTag = (id) => id ? ` \u2014 Slack <@${id}>` : "";
|
|
21773
21797
|
const agentLines = agents.map((a) => {
|
|
21774
21798
|
const scope = a.same_team ? "your team" : `team ${a.team_slug}`;
|
|
21775
21799
|
const assignHint = a.same_team ? `kanban_assign target_agent="${a.code_name}"` : `kanban_assign target_agent="${a.code_name}" target_team="${a.team_slug}"`;
|
|
21776
|
-
return ` \u2022 ${a.code_name} (${a.display_name}) - ${scope} [${a.team_name}]${slackTag(a.slack_user_id)} \u2192 ${assignHint}`;
|
|
21800
|
+
return ` \u2022 ${a.code_name} (${a.display_name}) - ${scope} [team: ${a.team_name}]${slackTag(a.slack_user_id)} \u2192 ${assignHint}`;
|
|
21777
21801
|
});
|
|
21778
21802
|
const peopleLines = people.map(
|
|
21779
21803
|
(p) => ` \u2022 ${p.name ?? p.email} <${p.email}>${slackTag(p.slack_user_id)} \u2192 assign_kanban_to_human assignee_email="${p.email}"`
|
|
21780
21804
|
);
|
|
21781
21805
|
const sections = [];
|
|
21782
|
-
if (agents.length > 0)
|
|
21806
|
+
if (agents.length > 0) {
|
|
21807
|
+
sections.push(`Agents (${scopedCount(agents.length, data.scope)}):
|
|
21783
21808
|
${agentLines.join("\n")}`);
|
|
21784
|
-
|
|
21809
|
+
}
|
|
21810
|
+
if (people.length > 0) {
|
|
21811
|
+
sections.push(`People (${scopedCount(people.length, data.scope)}):
|
|
21785
21812
|
${peopleLines.join("\n")}`);
|
|
21813
|
+
}
|
|
21814
|
+
if (footer) sections.push(footer);
|
|
21786
21815
|
return { text: sections.join("\n\n") };
|
|
21787
21816
|
}
|
|
21788
21817
|
|
package/dist/mcp/origami.js
CHANGED
|
@@ -39917,7 +39917,19 @@ var MB2 = 1024 * 1024;
|
|
|
39917
39917
|
var DIRECT_CHAT_UPLOAD_MAX_BYTES = 10 * MB2;
|
|
39918
39918
|
|
|
39919
39919
|
// ../core/dist/direct-chat/notice-display.js
|
|
39920
|
-
var AGENT_DIRECTED_NOTICE_KINDS = [
|
|
39920
|
+
var AGENT_DIRECTED_NOTICE_KINDS = [
|
|
39921
|
+
"scheduled_task_nudge",
|
|
39922
|
+
"kanban_check",
|
|
39923
|
+
// ENG-8394. These two were originally cited BELOW as examples of user-facing
|
|
39924
|
+
// notices; reading their content builders shows the opposite. The manager
|
|
39925
|
+
// feedback notice opens "Your manager just completed a performance review of
|
|
39926
|
+
// your work" and closes "Please reflect on this feedback and act on it now";
|
|
39927
|
+
// the form-timeout notice ends "do NOT keep waiting for this form" and quotes
|
|
39928
|
+
// a raw request id and Slack channel id. Both are second-person instructions
|
|
39929
|
+
// to the agent and were being rendered verbatim to the customer.
|
|
39930
|
+
"manager_feedback",
|
|
39931
|
+
"form_timeout"
|
|
39932
|
+
];
|
|
39921
39933
|
var AGENT_DIRECTED_KIND_SET = new Set(AGENT_DIRECTED_NOTICE_KINDS);
|
|
39922
39934
|
|
|
39923
39935
|
// ../core/dist/direct-chat/cursor-advance.js
|
|
@@ -33801,7 +33801,19 @@ var MB2 = 1024 * 1024;
|
|
|
33801
33801
|
var DIRECT_CHAT_UPLOAD_MAX_BYTES = 10 * MB2;
|
|
33802
33802
|
|
|
33803
33803
|
// ../core/dist/direct-chat/notice-display.js
|
|
33804
|
-
var AGENT_DIRECTED_NOTICE_KINDS = [
|
|
33804
|
+
var AGENT_DIRECTED_NOTICE_KINDS = [
|
|
33805
|
+
"scheduled_task_nudge",
|
|
33806
|
+
"kanban_check",
|
|
33807
|
+
// ENG-8394. These two were originally cited BELOW as examples of user-facing
|
|
33808
|
+
// notices; reading their content builders shows the opposite. The manager
|
|
33809
|
+
// feedback notice opens "Your manager just completed a performance review of
|
|
33810
|
+
// your work" and closes "Please reflect on this feedback and act on it now";
|
|
33811
|
+
// the form-timeout notice ends "do NOT keep waiting for this form" and quotes
|
|
33812
|
+
// a raw request id and Slack channel id. Both are second-person instructions
|
|
33813
|
+
// to the agent and were being rendered verbatim to the customer.
|
|
33814
|
+
"manager_feedback",
|
|
33815
|
+
"form_timeout"
|
|
33816
|
+
];
|
|
33805
33817
|
var AGENT_DIRECTED_KIND_SET = new Set(AGENT_DIRECTED_NOTICE_KINDS);
|
|
33806
33818
|
|
|
33807
33819
|
// ../core/dist/direct-chat/cursor-advance.js
|
|
@@ -34127,7 +34127,19 @@ var MB2 = 1024 * 1024;
|
|
|
34127
34127
|
var DIRECT_CHAT_UPLOAD_MAX_BYTES = 10 * MB2;
|
|
34128
34128
|
|
|
34129
34129
|
// ../core/dist/direct-chat/notice-display.js
|
|
34130
|
-
var AGENT_DIRECTED_NOTICE_KINDS = [
|
|
34130
|
+
var AGENT_DIRECTED_NOTICE_KINDS = [
|
|
34131
|
+
"scheduled_task_nudge",
|
|
34132
|
+
"kanban_check",
|
|
34133
|
+
// ENG-8394. These two were originally cited BELOW as examples of user-facing
|
|
34134
|
+
// notices; reading their content builders shows the opposite. The manager
|
|
34135
|
+
// feedback notice opens "Your manager just completed a performance review of
|
|
34136
|
+
// your work" and closes "Please reflect on this feedback and act on it now";
|
|
34137
|
+
// the form-timeout notice ends "do NOT keep waiting for this form" and quotes
|
|
34138
|
+
// a raw request id and Slack channel id. Both are second-person instructions
|
|
34139
|
+
// to the agent and were being rendered verbatim to the customer.
|
|
34140
|
+
"manager_feedback",
|
|
34141
|
+
"form_timeout"
|
|
34142
|
+
];
|
|
34131
34143
|
var AGENT_DIRECTED_KIND_SET = new Set(AGENT_DIRECTED_NOTICE_KINDS);
|
|
34132
34144
|
|
|
34133
34145
|
// ../core/dist/direct-chat/cursor-advance.js
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
writeDirectChatSessionState,
|
|
38
38
|
writeEgressAllowlist,
|
|
39
39
|
writePersistentClaudeWrapper
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-S5RR4UHQ.js";
|
|
41
41
|
import "./chunk-XWVM4KPK.js";
|
|
42
42
|
export {
|
|
43
43
|
EGRESS_BASELINE_DOMAINS,
|
|
@@ -79,4 +79,4 @@ export {
|
|
|
79
79
|
writeEgressAllowlist,
|
|
80
80
|
writePersistentClaudeWrapper
|
|
81
81
|
};
|
|
82
|
-
//# sourceMappingURL=persistent-session-
|
|
82
|
+
//# sourceMappingURL=persistent-session-RM5ZY2SB.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-S5RR4UHQ.js";
|
|
4
4
|
import "./chunk-XWVM4KPK.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/responsiveness-probe.ts
|
|
@@ -662,4 +662,4 @@ export {
|
|
|
662
662
|
readAndResetSlackReplyBindingClassifications,
|
|
663
663
|
readAndResetSlackReplyTargetClassifications
|
|
664
664
|
};
|
|
665
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
665
|
+
//# sourceMappingURL=responsiveness-probe-C4KMTKWR.js.map
|