@integrity-labs/agt-cli 0.28.259 → 0.28.261
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-VPDUKN7W.js → chunk-6R7TDVCE.js} +48 -4
- package/dist/chunk-6R7TDVCE.js.map +1 -0
- package/dist/{chunk-22BZ2WQM.js → chunk-RPM3FGSV.js} +6 -3
- package/dist/chunk-RPM3FGSV.js.map +1 -0
- package/dist/{claude-pair-runtime-7ZP2OZ5T.js → claude-pair-runtime-OVZ4NZK5.js} +2 -2
- package/dist/lib/manager-worker.js +10 -10
- package/dist/mcp/index.js +8 -1
- package/dist/mcp/origami.js +5 -2
- package/dist/mcp/slack-channel.js +5 -1
- package/dist/mcp/telegram-channel.js +9 -2
- package/dist/{persistent-session-XHJIV3VJ.js → persistent-session-2SO5QQ56.js} +2 -2
- package/dist/{responsiveness-probe-JMPLO34I.js → responsiveness-probe-XAMFIB2G.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-22BZ2WQM.js.map +0 -1
- package/dist/chunk-VPDUKN7W.js.map +0 -1
- /package/dist/{claude-pair-runtime-7ZP2OZ5T.js.map → claude-pair-runtime-OVZ4NZK5.js.map} +0 -0
- /package/dist/{persistent-session-XHJIV3VJ.js.map → persistent-session-2SO5QQ56.js.map} +0 -0
- /package/dist/{responsiveness-probe-JMPLO34I.js.map → responsiveness-probe-XAMFIB2G.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-2SO5QQ56.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-OVZ4NZK5.js.map
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
requireHost,
|
|
38
38
|
safeWriteJsonAtomic,
|
|
39
39
|
setConfigHash
|
|
40
|
-
} from "../chunk-
|
|
40
|
+
} from "../chunk-6R7TDVCE.js";
|
|
41
41
|
import {
|
|
42
42
|
getProjectDir as getProjectDir2,
|
|
43
43
|
getReadyTasks,
|
|
@@ -122,7 +122,7 @@ import {
|
|
|
122
122
|
takeZombieDetection,
|
|
123
123
|
transcriptActivityAgeSeconds,
|
|
124
124
|
writeEgressAllowlist
|
|
125
|
-
} from "../chunk-
|
|
125
|
+
} from "../chunk-RPM3FGSV.js";
|
|
126
126
|
import {
|
|
127
127
|
reapOrphanChannelMcps
|
|
128
128
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -6669,7 +6669,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
6669
6669
|
var lastVersionCheckAt = 0;
|
|
6670
6670
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
6671
6671
|
var lastResponsivenessProbeAt = 0;
|
|
6672
|
-
var agtCliVersion = true ? "0.28.
|
|
6672
|
+
var agtCliVersion = true ? "0.28.261" : "dev";
|
|
6673
6673
|
function resolveBrewPath(execFileSync2) {
|
|
6674
6674
|
try {
|
|
6675
6675
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -7519,7 +7519,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
7519
7519
|
if (codeNames.length === 0) return;
|
|
7520
7520
|
void (async () => {
|
|
7521
7521
|
try {
|
|
7522
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
7522
|
+
const { collectDiagnostics } = await import("../persistent-session-2SO5QQ56.js");
|
|
7523
7523
|
await api.post("/host/heartbeat", {
|
|
7524
7524
|
host_id: hostId,
|
|
7525
7525
|
agent_diagnostics: collectDiagnostics(codeNames)
|
|
@@ -7617,7 +7617,7 @@ async function pollCycle() {
|
|
|
7617
7617
|
}
|
|
7618
7618
|
try {
|
|
7619
7619
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
7620
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
7620
|
+
const { collectDiagnostics } = await import("../persistent-session-2SO5QQ56.js");
|
|
7621
7621
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
7622
7622
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
|
|
7623
7623
|
let tailscaleHostname;
|
|
@@ -7765,7 +7765,7 @@ async function pollCycle() {
|
|
|
7765
7765
|
const {
|
|
7766
7766
|
collectResponsivenessProbes,
|
|
7767
7767
|
getResponsivenessIntervalMs
|
|
7768
|
-
} = await import("../responsiveness-probe-
|
|
7768
|
+
} = await import("../responsiveness-probe-XAMFIB2G.js");
|
|
7769
7769
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
7770
7770
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
7771
7771
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -7797,7 +7797,7 @@ async function pollCycle() {
|
|
|
7797
7797
|
collectResponsivenessProbes,
|
|
7798
7798
|
livePendingInboundOldestAgeSeconds,
|
|
7799
7799
|
parkPendingInbound
|
|
7800
|
-
} = await import("../responsiveness-probe-
|
|
7800
|
+
} = await import("../responsiveness-probe-XAMFIB2G.js");
|
|
7801
7801
|
const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
|
|
7802
7802
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
7803
7803
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -10623,7 +10623,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
10623
10623
|
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}`));
|
|
10624
10624
|
void (async () => {
|
|
10625
10625
|
try {
|
|
10626
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
10626
|
+
const { collectDiagnostics } = await import("../persistent-session-2SO5QQ56.js");
|
|
10627
10627
|
await api.post("/host/heartbeat", {
|
|
10628
10628
|
host_id: hostId,
|
|
10629
10629
|
agent_diagnostics: collectDiagnostics([codeName])
|
|
@@ -10673,7 +10673,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
10673
10673
|
}
|
|
10674
10674
|
try {
|
|
10675
10675
|
const hostId = await getHostId();
|
|
10676
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
10676
|
+
const { collectDiagnostics } = await import("../persistent-session-2SO5QQ56.js");
|
|
10677
10677
|
await api.post("/host/heartbeat", {
|
|
10678
10678
|
host_id: hostId,
|
|
10679
10679
|
agent_diagnostics: collectDiagnostics([codeName])
|
|
@@ -11064,7 +11064,7 @@ async function processClaudePairSessions(agents) {
|
|
|
11064
11064
|
killPairSession,
|
|
11065
11065
|
pairTmuxSession,
|
|
11066
11066
|
finalizeClaudePairOnboarding
|
|
11067
|
-
} = await import("../claude-pair-runtime-
|
|
11067
|
+
} = await import("../claude-pair-runtime-OVZ4NZK5.js");
|
|
11068
11068
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
11069
11069
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
11070
11070
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
package/dist/mcp/index.js
CHANGED
|
@@ -21506,7 +21506,14 @@ async function refreshToken() {
|
|
|
21506
21506
|
const res = await fetch(`${AGT_HOST}/host/exchange`, {
|
|
21507
21507
|
method: "POST",
|
|
21508
21508
|
headers: { "Content-Type": "application/json" },
|
|
21509
|
-
|
|
21509
|
+
// ENG-7449 (ADR-0042 P1): scope the main agent token to its own agent. The
|
|
21510
|
+
// general-purpose token verifies AS self (`body.agent_id = AGT_AGENT_ID`) on
|
|
21511
|
+
// every host route; cross-agent tools (kanban_assign / move) carry the peer
|
|
21512
|
+
// as `target_agent` and are gated by the cross-team peer-consent model, NOT
|
|
21513
|
+
// this token's host binding — so self-scope bounds the token without
|
|
21514
|
+
// breaking cross-agent delegation. `agent_id` drops out if AGT_AGENT_ID is
|
|
21515
|
+
// unset (claim-less, unchanged).
|
|
21516
|
+
body: JSON.stringify({ host_key: AGT_API_KEY, agent_id: AGT_AGENT_ID })
|
|
21510
21517
|
});
|
|
21511
21518
|
if (!res.ok) {
|
|
21512
21519
|
const text = await res.text().catch(() => res.statusText);
|
package/dist/mcp/origami.js
CHANGED
|
@@ -38429,9 +38429,12 @@ var INTEGRATION_REGISTRY = [
|
|
|
38429
38429
|
name: "GitHub",
|
|
38430
38430
|
category: "code",
|
|
38431
38431
|
description: "Source code hosting, pull requests, and CI/CD",
|
|
38432
|
-
|
|
38432
|
+
// CS-1441: `github_app` adds BYO GitHub App installation auth (bot identity,
|
|
38433
|
+
// per-repo least-privilege, survives personnel changes) alongside the
|
|
38434
|
+
// existing user OAuth + PAT options.
|
|
38435
|
+
supported_auth_types: ["api_key", "oauth2", "github_app"],
|
|
38433
38436
|
// ENG-7015: customer-installable native — OAuth-first in the connect UI.
|
|
38434
|
-
installable: { category: "Code", authTypes: ["oauth2", "api_key"] },
|
|
38437
|
+
installable: { category: "Code", authTypes: ["oauth2", "api_key", "github_app"] },
|
|
38435
38438
|
capabilities: [
|
|
38436
38439
|
{ id: "github:read-repos", name: "Read Repositories", description: "View repos, issues, and PRs", access: "read" },
|
|
38437
38440
|
{ id: "github:write-code", name: "Write Code", description: "Push commits and create PRs", access: "write" },
|
|
@@ -17459,7 +17459,11 @@ function createCrossTeamPeerAuditClient(args) {
|
|
|
17459
17459
|
const resp = await fetchImpl(`${base}/host/exchange`, {
|
|
17460
17460
|
method: "POST",
|
|
17461
17461
|
headers: { "Content-Type": "application/json" },
|
|
17462
|
-
|
|
17462
|
+
// ENG-7449 (ADR-0042 P1): scope the exchanged token to this agent. This
|
|
17463
|
+
// client acts strictly AS self (every event is posted with
|
|
17464
|
+
// `agent_id: agentId`); the foreign `peer_agent_id` is audit DATA, never
|
|
17465
|
+
// the auth subject, so a self-scoped token is correct and complete.
|
|
17466
|
+
body: JSON.stringify({ host_key: apiKey, agent_id: agentId }),
|
|
17463
17467
|
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS2)
|
|
17464
17468
|
});
|
|
17465
17469
|
if (!resp.ok) {
|
|
@@ -15480,7 +15480,10 @@ function createDefaultPeerRateApiClient(args) {
|
|
|
15480
15480
|
const resp = await fetchImpl(`${base}/host/exchange`, {
|
|
15481
15481
|
method: "POST",
|
|
15482
15482
|
headers: { "Content-Type": "application/json" },
|
|
15483
|
-
|
|
15483
|
+
// ENG-7449 (ADR-0042 P1): scope the token to this agent. Every rate event
|
|
15484
|
+
// is recorded/queried with `agent_id: args.agentId` (self); `peer_bot_id`
|
|
15485
|
+
// is a Telegram bot id, not an agent, so self-scope is correct.
|
|
15486
|
+
body: JSON.stringify({ host_key: args.agtApiKey, agent_id: args.agentId })
|
|
15484
15487
|
});
|
|
15485
15488
|
if (!resp.ok) {
|
|
15486
15489
|
const body = await resp.text().catch(() => "");
|
|
@@ -15553,7 +15556,11 @@ function createCrossTeamPeerAuditClient(args) {
|
|
|
15553
15556
|
const resp = await fetchImpl(`${base}/host/exchange`, {
|
|
15554
15557
|
method: "POST",
|
|
15555
15558
|
headers: { "Content-Type": "application/json" },
|
|
15556
|
-
|
|
15559
|
+
// ENG-7449 (ADR-0042 P1): scope the exchanged token to this agent. This
|
|
15560
|
+
// client acts strictly AS self (every event is posted with
|
|
15561
|
+
// `agent_id: agentId`); the foreign `peer_agent_id` is audit DATA, never
|
|
15562
|
+
// the auth subject, so a self-scoped token is correct and complete.
|
|
15563
|
+
body: JSON.stringify({ host_key: apiKey, agent_id: agentId }),
|
|
15557
15564
|
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS)
|
|
15558
15565
|
});
|
|
15559
15566
|
if (!resp.ok) {
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
writeDirectChatSessionState,
|
|
37
37
|
writeEgressAllowlist,
|
|
38
38
|
writePersistentClaudeWrapper
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-RPM3FGSV.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-2SO5QQ56.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RPM3FGSV.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-XAMFIB2G.js.map
|