@integrity-labs/agt-cli 0.28.292 → 0.28.294
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-PTJHDSJU.js → chunk-5F23HET3.js} +3 -3
- package/dist/{chunk-BNQPLUUB.js → chunk-IGADZDYT.js} +15 -1
- package/dist/{chunk-BNQPLUUB.js.map → chunk-IGADZDYT.js.map} +1 -1
- package/dist/{claude-pair-runtime-DVAUH47F.js → claude-pair-runtime-EWJQ5QXS.js} +2 -2
- package/dist/lib/manager-worker.js +10 -10
- package/dist/mcp/direct-chat-channel.js +5 -2
- package/dist/mcp/index.js +4 -0
- package/dist/mcp/origami.js +14 -0
- package/dist/mcp/slack-channel.js +5 -2
- package/dist/mcp/teams-channel.js +5 -2
- package/dist/mcp/telegram-channel.js +6 -2
- package/dist/{persistent-session-WVLFEQPW.js → persistent-session-7Z33SV2X.js} +2 -2
- package/dist/{responsiveness-probe-VCOYMMIT.js → responsiveness-probe-RPX63Y5S.js} +2 -2
- package/package.json +1 -1
- /package/dist/{chunk-PTJHDSJU.js.map → chunk-5F23HET3.js.map} +0 -0
- /package/dist/{claude-pair-runtime-DVAUH47F.js.map → claude-pair-runtime-EWJQ5QXS.js.map} +0 -0
- /package/dist/{persistent-session-WVLFEQPW.js.map → persistent-session-7Z33SV2X.js.map} +0 -0
- /package/dist/{responsiveness-probe-VCOYMMIT.js.map → responsiveness-probe-RPX63Y5S.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-7Z33SV2X.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-EWJQ5QXS.js.map
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
requireHost,
|
|
40
40
|
safeWriteJsonAtomic,
|
|
41
41
|
setConfigHash
|
|
42
|
-
} from "../chunk-
|
|
42
|
+
} from "../chunk-5F23HET3.js";
|
|
43
43
|
import {
|
|
44
44
|
getProjectDir as getProjectDir2,
|
|
45
45
|
getReadyTasks,
|
|
@@ -126,7 +126,7 @@ import {
|
|
|
126
126
|
takeZombieDetection,
|
|
127
127
|
transcriptActivityAgeSeconds,
|
|
128
128
|
writeEgressAllowlist
|
|
129
|
-
} from "../chunk-
|
|
129
|
+
} from "../chunk-IGADZDYT.js";
|
|
130
130
|
import {
|
|
131
131
|
reapOrphanChannelMcps
|
|
132
132
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -6922,7 +6922,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
6922
6922
|
var lastVersionCheckAt = 0;
|
|
6923
6923
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
6924
6924
|
var lastResponsivenessProbeAt = 0;
|
|
6925
|
-
var agtCliVersion = true ? "0.28.
|
|
6925
|
+
var agtCliVersion = true ? "0.28.294" : "dev";
|
|
6926
6926
|
function resolveBrewPath(execFileSync2) {
|
|
6927
6927
|
try {
|
|
6928
6928
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -7775,7 +7775,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
7775
7775
|
if (codeNames.length === 0) return;
|
|
7776
7776
|
void (async () => {
|
|
7777
7777
|
try {
|
|
7778
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
7778
|
+
const { collectDiagnostics } = await import("../persistent-session-7Z33SV2X.js");
|
|
7779
7779
|
await api.post("/host/heartbeat", {
|
|
7780
7780
|
host_id: hostId,
|
|
7781
7781
|
agent_diagnostics: collectDiagnostics(codeNames)
|
|
@@ -7873,7 +7873,7 @@ async function pollCycle() {
|
|
|
7873
7873
|
}
|
|
7874
7874
|
try {
|
|
7875
7875
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
7876
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
7876
|
+
const { collectDiagnostics } = await import("../persistent-session-7Z33SV2X.js");
|
|
7877
7877
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
7878
7878
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
|
|
7879
7879
|
let tailscaleHostname;
|
|
@@ -8021,7 +8021,7 @@ async function pollCycle() {
|
|
|
8021
8021
|
const {
|
|
8022
8022
|
collectResponsivenessProbes,
|
|
8023
8023
|
getResponsivenessIntervalMs
|
|
8024
|
-
} = await import("../responsiveness-probe-
|
|
8024
|
+
} = await import("../responsiveness-probe-RPX63Y5S.js");
|
|
8025
8025
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
8026
8026
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
8027
8027
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -8053,7 +8053,7 @@ async function pollCycle() {
|
|
|
8053
8053
|
collectResponsivenessProbes,
|
|
8054
8054
|
livePendingInboundOldestAgeSeconds,
|
|
8055
8055
|
parkPendingInbound
|
|
8056
|
-
} = await import("../responsiveness-probe-
|
|
8056
|
+
} = await import("../responsiveness-probe-RPX63Y5S.js");
|
|
8057
8057
|
const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
|
|
8058
8058
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
8059
8059
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -10981,7 +10981,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
10981
10981
|
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}`));
|
|
10982
10982
|
void (async () => {
|
|
10983
10983
|
try {
|
|
10984
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
10984
|
+
const { collectDiagnostics } = await import("../persistent-session-7Z33SV2X.js");
|
|
10985
10985
|
await api.post("/host/heartbeat", {
|
|
10986
10986
|
host_id: hostId,
|
|
10987
10987
|
agent_diagnostics: collectDiagnostics([codeName])
|
|
@@ -11031,7 +11031,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
11031
11031
|
}
|
|
11032
11032
|
try {
|
|
11033
11033
|
const hostId = await getHostId();
|
|
11034
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
11034
|
+
const { collectDiagnostics } = await import("../persistent-session-7Z33SV2X.js");
|
|
11035
11035
|
await api.post("/host/heartbeat", {
|
|
11036
11036
|
host_id: hostId,
|
|
11037
11037
|
agent_diagnostics: collectDiagnostics([codeName])
|
|
@@ -11435,7 +11435,7 @@ async function processClaudePairSessions(agents) {
|
|
|
11435
11435
|
killPairSession,
|
|
11436
11436
|
pairTmuxSession,
|
|
11437
11437
|
finalizeClaudePairOnboarding
|
|
11438
|
-
} = await import("../claude-pair-runtime-
|
|
11438
|
+
} = await import("../claude-pair-runtime-EWJQ5QXS.js");
|
|
11439
11439
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
11440
11440
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
11441
11441
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -13907,7 +13907,8 @@ function createInboundContextClient(args) {
|
|
|
13907
13907
|
agent_id: agentId,
|
|
13908
13908
|
source_integration: args2.sourceIntegration,
|
|
13909
13909
|
source_external_id: args2.sourceExternalId,
|
|
13910
|
-
...args2.sourceUrl ? { source_url: args2.sourceUrl } : {}
|
|
13910
|
+
...args2.sourceUrl ? { source_url: args2.sourceUrl } : {},
|
|
13911
|
+
...args2.senderId ? { sender_id: args2.senderId } : {}
|
|
13911
13912
|
};
|
|
13912
13913
|
try {
|
|
13913
13914
|
let resp = await postOnce(body);
|
|
@@ -15351,7 +15352,9 @@ async function pollForMessages(sinceMs) {
|
|
|
15351
15352
|
}
|
|
15352
15353
|
inboundContextClient?.recordInbound({
|
|
15353
15354
|
sourceIntegration: "direct-chat",
|
|
15354
|
-
sourceExternalId: msg.session_id
|
|
15355
|
+
sourceExternalId: msg.session_id,
|
|
15356
|
+
// ENG-7643 (P4a): the D16 verified sender uuid (requester identity).
|
|
15357
|
+
...msg.sender_id ? { senderId: msg.sender_id } : {}
|
|
15355
15358
|
});
|
|
15356
15359
|
process.stderr.write(
|
|
15357
15360
|
`direct-chat-channel: Injected message ${msg.id} (session=${msg.session_id})
|
package/dist/mcp/index.js
CHANGED
|
@@ -21748,6 +21748,9 @@ server.tool(
|
|
|
21748
21748
|
source_integration: external_exports.string().optional().describe('Integration name (e.g., "linear", "github") when source is "integration"'),
|
|
21749
21749
|
source_external_id: external_exports.string().optional().describe('ID in the external system (e.g., "ENG-123")'),
|
|
21750
21750
|
source_url: external_exports.string().optional().describe("Deep link URL to the external source"),
|
|
21751
|
+
deliver_to: external_exports.string().optional().describe(
|
|
21752
|
+
"Optional: the Slack user id of the person who asked for this (the requester), so you can notify/deliver to them when the task needs their input or is done. Omit to default to whoever you are talking to right now (auto-detected from the conversation this card came from)."
|
|
21753
|
+
),
|
|
21751
21754
|
project_id: external_exports.string().uuid().optional().describe(
|
|
21752
21755
|
"Optional project to file this task under (id from projects_list). Groups the task with related tasks/artefacts across agents. Reuse an existing project where one fits; use projects_create only after checking projects_list and confirming with the human."
|
|
21753
21756
|
)
|
|
@@ -21768,6 +21771,7 @@ server.tool(
|
|
|
21768
21771
|
source_integration: params.source_integration,
|
|
21769
21772
|
source_external_id: params.source_external_id,
|
|
21770
21773
|
source_url: params.source_url,
|
|
21774
|
+
deliver_to: params.deliver_to,
|
|
21771
21775
|
project_id: params.project_id
|
|
21772
21776
|
}
|
|
21773
21777
|
]
|
package/dist/mcp/origami.js
CHANGED
|
@@ -39644,6 +39644,20 @@ var FLAG_REGISTRY = [
|
|
|
39644
39644
|
// sensitive.
|
|
39645
39645
|
public: true
|
|
39646
39646
|
},
|
|
39647
|
+
{
|
|
39648
|
+
key: "integration-cap-enforcement",
|
|
39649
|
+
description: "Enforce the per-agent integration cap (ENG-7180 / ENG-7639). When ON for an org, adding an integration to an agent already at its plan cap (plans.max_integrations_per_agent, default 10) is refused with a 409 across all three attach paths (POST /integrations, the OAuth callback, and the GitHub App manifest-init), and GET /integrations/agent-cap reports at_limit so the webapp Add control blocks. When OFF (default) the cap is not enforced - an agent can add integrations without limit and agent-cap reports at_limit=false. Evaluated per-org API-side via getEvaluatedFlags; the authoritative BEFORE INSERT DB trigger was removed in ENG-7639, so the flag-gated app-level pre-flights are the sole enforcement point. Boolean gate; ships OFF (enforcement disabled) - flip ON per org from the admin Feature Flags page to re-arm the cap.",
|
|
39650
|
+
flagType: "boolean",
|
|
39651
|
+
// Declared safe value is `false` = NOT enforced. This is both the ENG-7639
|
|
39652
|
+
// intent (disable the cap for now) and the fail-safe direction for the route
|
|
39653
|
+
// read: a flag-DB error degrades to "don't enforce", so a flags outage never
|
|
39654
|
+
// blocks a customer's integration add. Flip on per org to re-arm enforcement.
|
|
39655
|
+
defaultValue: false,
|
|
39656
|
+
// Enforcement gate: leaving it OFF relaxes a plan-capacity control and turning
|
|
39657
|
+
// it ON blocks customer adds - either way it is a deliberate, audited decision,
|
|
39658
|
+
// so mutations require explicit confirmation (ADR-0022 §4).
|
|
39659
|
+
sensitive: true
|
|
39660
|
+
},
|
|
39647
39661
|
{
|
|
39648
39662
|
key: "augmented-live-stream-producer",
|
|
39649
39663
|
description: "Augmented Live live-preview streaming producer (ENG-7210). The receiver (codec, artifact-draft channel, stream route, console Live Preview tab) shipped under ENG-6234 but never engages because nothing writes the working file the manager scanner watches. When ON for an org, a host-side PostToolUse hook mirrors agt-live.publish/editing content to ~/.augmented/{codeName}/artifacts/<slug>/index.html, so the scanner mints a draft and streams a keyframe to the console Live Preview tab. Additive, best-effort. Boolean gate; ships dark. Materialized to the host flags-cache; the bash hook reads it (operator/canary override AGT_LIVE_STREAM_PRODUCER_ENABLED).",
|
|
@@ -17766,7 +17766,8 @@ function createInboundContextClient(args) {
|
|
|
17766
17766
|
agent_id: agentId,
|
|
17767
17767
|
source_integration: args2.sourceIntegration,
|
|
17768
17768
|
source_external_id: args2.sourceExternalId,
|
|
17769
|
-
...args2.sourceUrl ? { source_url: args2.sourceUrl } : {}
|
|
17769
|
+
...args2.sourceUrl ? { source_url: args2.sourceUrl } : {},
|
|
17770
|
+
...args2.senderId ? { sender_id: args2.senderId } : {}
|
|
17770
17771
|
};
|
|
17771
17772
|
try {
|
|
17772
17773
|
let resp = await postOnce(body);
|
|
@@ -22402,7 +22403,9 @@ ${forwarded.text}` : forwarded.text;
|
|
|
22402
22403
|
if (!isFromBot && threadTs) {
|
|
22403
22404
|
inboundContextClient?.recordInbound({
|
|
22404
22405
|
sourceIntegration: "slack",
|
|
22405
|
-
sourceExternalId: `${channel}:${threadTs}
|
|
22406
|
+
sourceExternalId: `${channel}:${threadTs}`,
|
|
22407
|
+
// ENG-7643 (P4a): the platform-verified Slack sender (requester id).
|
|
22408
|
+
...evt.user ? { senderId: evt.user } : {}
|
|
22406
22409
|
});
|
|
22407
22410
|
}
|
|
22408
22411
|
}
|
|
@@ -14672,7 +14672,8 @@ function createInboundContextClient(args) {
|
|
|
14672
14672
|
agent_id: agentId,
|
|
14673
14673
|
source_integration: args2.sourceIntegration,
|
|
14674
14674
|
source_external_id: args2.sourceExternalId,
|
|
14675
|
-
...args2.sourceUrl ? { source_url: args2.sourceUrl } : {}
|
|
14675
|
+
...args2.sourceUrl ? { source_url: args2.sourceUrl } : {},
|
|
14676
|
+
...args2.senderId ? { sender_id: args2.senderId } : {}
|
|
14676
14677
|
};
|
|
14677
14678
|
try {
|
|
14678
14679
|
let resp = await postOnce(body);
|
|
@@ -15485,7 +15486,9 @@ async function processPendingFile(filename) {
|
|
|
15485
15486
|
inboundContextClient?.recordInbound({
|
|
15486
15487
|
sourceIntegration: "msteams",
|
|
15487
15488
|
sourceExternalId: `${activity.conversation.id}#${rootActivityId}`,
|
|
15488
|
-
sourceUrl: activity.serviceUrl
|
|
15489
|
+
sourceUrl: activity.serviceUrl,
|
|
15490
|
+
// ENG-7643 (P4a): the Teams AAD object id of the sender (requester id).
|
|
15491
|
+
...activity.from?.aadObjectId ? { senderId: activity.from.aadObjectId } : {}
|
|
15489
15492
|
});
|
|
15490
15493
|
}
|
|
15491
15494
|
}
|
|
@@ -16471,7 +16471,8 @@ function createInboundContextClient(args) {
|
|
|
16471
16471
|
agent_id: agentId,
|
|
16472
16472
|
source_integration: args2.sourceIntegration,
|
|
16473
16473
|
source_external_id: args2.sourceExternalId,
|
|
16474
|
-
...args2.sourceUrl ? { source_url: args2.sourceUrl } : {}
|
|
16474
|
+
...args2.sourceUrl ? { source_url: args2.sourceUrl } : {},
|
|
16475
|
+
...args2.senderId ? { sender_id: args2.senderId } : {}
|
|
16475
16476
|
};
|
|
16476
16477
|
try {
|
|
16477
16478
|
let resp = await postOnce(body);
|
|
@@ -20960,7 +20961,10 @@ async function pollLoop() {
|
|
|
20960
20961
|
if (!isFromBot && !peerAgentMeta) {
|
|
20961
20962
|
inboundContextClient?.recordInbound({
|
|
20962
20963
|
sourceIntegration: "telegram",
|
|
20963
|
-
sourceExternalId: String(chatId)
|
|
20964
|
+
sourceExternalId: String(chatId),
|
|
20965
|
+
// ENG-7643 (P4a): the verified Telegram from-id (requester id);
|
|
20966
|
+
// 'unknown' means from.id was absent, so don't record it.
|
|
20967
|
+
...userId && userId !== "unknown" ? { senderId: String(userId) } : {}
|
|
20964
20968
|
});
|
|
20965
20969
|
}
|
|
20966
20970
|
}
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
writeDirectChatSessionState,
|
|
37
37
|
writeEgressAllowlist,
|
|
38
38
|
writePersistentClaudeWrapper
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-IGADZDYT.js";
|
|
40
40
|
import "./chunk-XWVM4KPK.js";
|
|
41
41
|
export {
|
|
42
42
|
EGRESS_BASELINE_DOMAINS,
|
|
@@ -77,4 +77,4 @@ export {
|
|
|
77
77
|
writeEgressAllowlist,
|
|
78
78
|
writePersistentClaudeWrapper
|
|
79
79
|
};
|
|
80
|
-
//# sourceMappingURL=persistent-session-
|
|
80
|
+
//# sourceMappingURL=persistent-session-7Z33SV2X.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IGADZDYT.js";
|
|
4
4
|
import "./chunk-XWVM4KPK.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/responsiveness-probe.ts
|
|
@@ -418,4 +418,4 @@ export {
|
|
|
418
418
|
readAndResetSlackReplyBindingClassifications,
|
|
419
419
|
readAndResetSlackReplyTargetClassifications
|
|
420
420
|
};
|
|
421
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
421
|
+
//# sourceMappingURL=responsiveness-probe-RPX63Y5S.js.map
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|