@integrity-labs/agt-cli 0.28.944 → 0.28.946
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-6J4R5MJQ.js → chunk-RTMBVYTR.js} +4 -4
- package/dist/{chunk-UHW6YFL2.js → chunk-XN5MOKSV.js} +2 -2
- package/dist/{chunk-CO3QPWIB.js → chunk-YZ5HGHPG.js} +23 -6
- package/dist/{chunk-CO3QPWIB.js.map → chunk-YZ5HGHPG.js.map} +1 -1
- package/dist/{claude-pair-runtime-MH55KUOA.js → claude-pair-runtime-K2J6WVEN.js} +2 -2
- package/dist/lib/manager-worker.js +14 -14
- package/dist/mcp/direct-chat-channel.js +22 -5
- package/dist/mcp/index.js +38 -15
- package/dist/mcp/origami.js +22 -5
- package/dist/mcp/slack-channel.js +22 -5
- package/dist/mcp/telegram-channel.js +22 -5
- package/dist/{persistent-session-6OAQAAWH.js → persistent-session-523F5U4H.js} +3 -3
- package/dist/{responsiveness-probe-DKYZBD3Y.js → responsiveness-probe-CHGET573.js} +3 -3
- package/dist/{session-auth-dead-IQ3WUFLF.js → session-auth-dead-T5SUK2HT.js} +2 -2
- package/package.json +1 -1
- /package/dist/{chunk-6J4R5MJQ.js.map → chunk-RTMBVYTR.js.map} +0 -0
- /package/dist/{chunk-UHW6YFL2.js.map → chunk-XN5MOKSV.js.map} +0 -0
- /package/dist/{claude-pair-runtime-MH55KUOA.js.map → claude-pair-runtime-K2J6WVEN.js.map} +0 -0
- /package/dist/{persistent-session-6OAQAAWH.js.map → persistent-session-523F5U4H.js.map} +0 -0
- /package/dist/{responsiveness-probe-DKYZBD3Y.js.map → responsiveness-probe-CHGET573.js.map} +0 -0
- /package/dist/{session-auth-dead-IQ3WUFLF.js.map → session-auth-dead-T5SUK2HT.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-523F5U4H.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-K2J6WVEN.js.map
|
|
@@ -63,7 +63,7 @@ import {
|
|
|
63
63
|
safeWriteJsonAtomic,
|
|
64
64
|
setConfigHash,
|
|
65
65
|
tripClass
|
|
66
|
-
} from "../chunk-
|
|
66
|
+
} from "../chunk-RTMBVYTR.js";
|
|
67
67
|
import {
|
|
68
68
|
getProjectDir as getProjectDir2,
|
|
69
69
|
getReadyTasks,
|
|
@@ -136,7 +136,7 @@ import {
|
|
|
136
136
|
takeZombieDetection,
|
|
137
137
|
toOpencodeModel,
|
|
138
138
|
writeEgressAllowlist
|
|
139
|
-
} from "../chunk-
|
|
139
|
+
} from "../chunk-XN5MOKSV.js";
|
|
140
140
|
import {
|
|
141
141
|
ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
|
|
142
142
|
AnchorSessionClient,
|
|
@@ -232,7 +232,7 @@ import {
|
|
|
232
232
|
subagentActivityAgeSeconds,
|
|
233
233
|
sumTranscriptUsageInWindow,
|
|
234
234
|
transcriptActivityAgeSeconds
|
|
235
|
-
} from "../chunk-
|
|
235
|
+
} from "../chunk-YZ5HGHPG.js";
|
|
236
236
|
import {
|
|
237
237
|
reapOrphanChannelMcps
|
|
238
238
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -13257,7 +13257,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
|
|
|
13257
13257
|
var dayRolloverInboundHold = /* @__PURE__ */ new Map();
|
|
13258
13258
|
var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
|
|
13259
13259
|
async function channelInboundActivityAgeSecondsFor(codeName) {
|
|
13260
|
-
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-
|
|
13260
|
+
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-CHGET573.js");
|
|
13261
13261
|
const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
|
|
13262
13262
|
if (newest === null) return null;
|
|
13263
13263
|
return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
|
|
@@ -13942,7 +13942,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
13942
13942
|
var lastVersionCheckAt = 0;
|
|
13943
13943
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
13944
13944
|
var lastResponsivenessProbeAt = 0;
|
|
13945
|
-
var agtCliVersion = true ? "0.28.
|
|
13945
|
+
var agtCliVersion = true ? "0.28.946" : "dev";
|
|
13946
13946
|
function resolveBrewPath(execFileSync2) {
|
|
13947
13947
|
try {
|
|
13948
13948
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -15532,7 +15532,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
15532
15532
|
if (codeNames.length === 0) return;
|
|
15533
15533
|
void (async () => {
|
|
15534
15534
|
try {
|
|
15535
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15535
|
+
const { collectDiagnostics } = await import("../persistent-session-523F5U4H.js");
|
|
15536
15536
|
await api.post("/host/heartbeat", {
|
|
15537
15537
|
host_id: hostId,
|
|
15538
15538
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -15674,7 +15674,7 @@ async function pollCycleInner() {
|
|
|
15674
15674
|
}
|
|
15675
15675
|
try {
|
|
15676
15676
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
15677
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15677
|
+
const { collectDiagnostics } = await import("../persistent-session-523F5U4H.js");
|
|
15678
15678
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
15679
15679
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor) : void 0;
|
|
15680
15680
|
let tailscaleHostname;
|
|
@@ -15849,7 +15849,7 @@ async function pollCycleInner() {
|
|
|
15849
15849
|
collectPanelessActivityProbes,
|
|
15850
15850
|
getResponsivenessIntervalMs,
|
|
15851
15851
|
occupancyQualificationClassifications
|
|
15852
|
-
} = await import("../responsiveness-probe-
|
|
15852
|
+
} = await import("../responsiveness-probe-CHGET573.js");
|
|
15853
15853
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
15854
15854
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
15855
15855
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -15966,7 +15966,7 @@ async function pollCycleInner() {
|
|
|
15966
15966
|
collectResponsivenessProbes,
|
|
15967
15967
|
livePendingInboundOldestAgeSeconds,
|
|
15968
15968
|
parkPendingInbound
|
|
15969
|
-
} = await import("../responsiveness-probe-
|
|
15969
|
+
} = await import("../responsiveness-probe-CHGET573.js");
|
|
15970
15970
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
|
|
15971
15971
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
15972
15972
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -16122,7 +16122,7 @@ async function pollCycleInner() {
|
|
|
16122
16122
|
}
|
|
16123
16123
|
try {
|
|
16124
16124
|
const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-JA437JIB.js");
|
|
16125
|
-
const { probeSessionAuth } = await import("../session-auth-dead-
|
|
16125
|
+
const { probeSessionAuth } = await import("../session-auth-dead-T5SUK2HT.js");
|
|
16126
16126
|
const observations = [];
|
|
16127
16127
|
const pendingCacheCommits = [];
|
|
16128
16128
|
const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
|
|
@@ -20386,7 +20386,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
20386
20386
|
try {
|
|
20387
20387
|
const freshId = rotateSessionForWedge(codeName);
|
|
20388
20388
|
consecutiveWedgeCycles.delete(codeName);
|
|
20389
|
-
const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-
|
|
20389
|
+
const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-CHGET573.js");
|
|
20390
20390
|
const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
|
|
20391
20391
|
const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
|
|
20392
20392
|
const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
|
|
@@ -20429,7 +20429,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
20429
20429
|
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}`));
|
|
20430
20430
|
void (async () => {
|
|
20431
20431
|
try {
|
|
20432
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
20432
|
+
const { collectDiagnostics } = await import("../persistent-session-523F5U4H.js");
|
|
20433
20433
|
await api.post("/host/heartbeat", {
|
|
20434
20434
|
host_id: hostId,
|
|
20435
20435
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -20480,7 +20480,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
20480
20480
|
}
|
|
20481
20481
|
try {
|
|
20482
20482
|
const hostId = await getHostId();
|
|
20483
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
20483
|
+
const { collectDiagnostics } = await import("../persistent-session-523F5U4H.js");
|
|
20484
20484
|
await api.post("/host/heartbeat", {
|
|
20485
20485
|
host_id: hostId,
|
|
20486
20486
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -21122,7 +21122,7 @@ async function processClaudePairSessions(agents) {
|
|
|
21122
21122
|
killPairSession,
|
|
21123
21123
|
pairTmuxSession,
|
|
21124
21124
|
finalizeClaudePairOnboarding
|
|
21125
|
-
} = await import("../claude-pair-runtime-
|
|
21125
|
+
} = await import("../claude-pair-runtime-K2J6WVEN.js");
|
|
21126
21126
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
21127
21127
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
21128
21128
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -32980,7 +32980,24 @@ var composio_approved_egress_default = {
|
|
|
32980
32980
|
"WHEN ENG-9426 LANDS THIS GOES RED UNTIL IT IS UPDATED. That is the forcing function",
|
|
32981
32981
|
"working, not a fault. ENG-9426 adds a NAT in ap-southeast-2b, i.e. a THIRD egress",
|
|
32982
32982
|
"address: add it here in the same change that lands it, or the detector correctly",
|
|
32983
|
-
"reports that hosts are leaving from an address no key allows. Do not loosen the check."
|
|
32983
|
+
"reports that hosts are leaving from an address no key allows. Do not loosen the check.",
|
|
32984
|
+
"",
|
|
32985
|
+
" crossing to 2a and stop dying with it. The address does not exist until",
|
|
32986
|
+
"",
|
|
32987
|
+
"15.135.204.192 IS GONE AND MUST NOT BE RE-ADDED (ENG-9426, 2026-09-15).",
|
|
32988
|
+
"The dev NAT was retired and that address was RELEASED back to the AWS pool, so it can",
|
|
32989
|
+
"be reassigned to another AWS customer at any time. An allowlist entry naming it would",
|
|
32990
|
+
"then permit a stranger's host rather than simply failing closed. Nothing was armed when",
|
|
32991
|
+
"this happened, so no key ever held it - but this file IS what an operator pastes from,",
|
|
32992
|
+
"which is why it is removed here the same day.",
|
|
32993
|
+
"",
|
|
32994
|
+
"WHY retainOnDelete DID NOT SAVE IT, because the next person will assume it would.",
|
|
32995
|
+
"The option was added in the SAME change that set dev's natMode to `none`. Pulumi reads",
|
|
32996
|
+
"delete-time options from the STATE recorded at the resource's last registration, and by",
|
|
32997
|
+
"the time this ran the resource was no longer in the program at all - so the state still",
|
|
32998
|
+
"said 'delete normally'. retainOnDelete has to land in a deploy that STILL DECLARES the",
|
|
32999
|
+
"resource before it protects anything. The two prod EIPs above are protected, because",
|
|
33000
|
+
"this apply registered them with the option set."
|
|
32984
33001
|
],
|
|
32985
33002
|
account: "711726113003",
|
|
32986
33003
|
homeRegion: "ap-southeast-2",
|
|
@@ -32992,10 +33009,10 @@ var composio_approved_egress_default = {
|
|
|
32992
33009
|
note: "Prod hosts NAT. Measured 2026-09-12 (ENG-10392): 25 of 25 active prod host instances route 0.0.0.0/0 here."
|
|
32993
33010
|
},
|
|
32994
33011
|
{
|
|
32995
|
-
ip: "
|
|
32996
|
-
stage: "
|
|
32997
|
-
seenAsGateway: "nat-
|
|
32998
|
-
note: "
|
|
33012
|
+
ip: "54.253.255.215",
|
|
33013
|
+
stage: "prod",
|
|
33014
|
+
seenAsGateway: "nat-04384e27ab04973b5",
|
|
33015
|
+
note: "Prod hosts NAT in ap-southeast-2b, created 2026-09-15 by ENG-9426. The 12 prod hosts in the 2b private subnet egress here instead of crossing to 2a. Verified live after the Pulumi apply, not predicted."
|
|
32999
33016
|
}
|
|
33000
33017
|
]
|
|
33001
33018
|
};
|
package/dist/mcp/index.js
CHANGED
|
@@ -25581,7 +25581,24 @@ var composio_approved_egress_default = {
|
|
|
25581
25581
|
"WHEN ENG-9426 LANDS THIS GOES RED UNTIL IT IS UPDATED. That is the forcing function",
|
|
25582
25582
|
"working, not a fault. ENG-9426 adds a NAT in ap-southeast-2b, i.e. a THIRD egress",
|
|
25583
25583
|
"address: add it here in the same change that lands it, or the detector correctly",
|
|
25584
|
-
"reports that hosts are leaving from an address no key allows. Do not loosen the check."
|
|
25584
|
+
"reports that hosts are leaving from an address no key allows. Do not loosen the check.",
|
|
25585
|
+
"",
|
|
25586
|
+
" crossing to 2a and stop dying with it. The address does not exist until",
|
|
25587
|
+
"",
|
|
25588
|
+
"15.135.204.192 IS GONE AND MUST NOT BE RE-ADDED (ENG-9426, 2026-09-15).",
|
|
25589
|
+
"The dev NAT was retired and that address was RELEASED back to the AWS pool, so it can",
|
|
25590
|
+
"be reassigned to another AWS customer at any time. An allowlist entry naming it would",
|
|
25591
|
+
"then permit a stranger's host rather than simply failing closed. Nothing was armed when",
|
|
25592
|
+
"this happened, so no key ever held it - but this file IS what an operator pastes from,",
|
|
25593
|
+
"which is why it is removed here the same day.",
|
|
25594
|
+
"",
|
|
25595
|
+
"WHY retainOnDelete DID NOT SAVE IT, because the next person will assume it would.",
|
|
25596
|
+
"The option was added in the SAME change that set dev's natMode to `none`. Pulumi reads",
|
|
25597
|
+
"delete-time options from the STATE recorded at the resource's last registration, and by",
|
|
25598
|
+
"the time this ran the resource was no longer in the program at all - so the state still",
|
|
25599
|
+
"said 'delete normally'. retainOnDelete has to land in a deploy that STILL DECLARES the",
|
|
25600
|
+
"resource before it protects anything. The two prod EIPs above are protected, because",
|
|
25601
|
+
"this apply registered them with the option set."
|
|
25585
25602
|
],
|
|
25586
25603
|
account: "711726113003",
|
|
25587
25604
|
homeRegion: "ap-southeast-2",
|
|
@@ -25593,10 +25610,10 @@ var composio_approved_egress_default = {
|
|
|
25593
25610
|
note: "Prod hosts NAT. Measured 2026-09-12 (ENG-10392): 25 of 25 active prod host instances route 0.0.0.0/0 here."
|
|
25594
25611
|
},
|
|
25595
25612
|
{
|
|
25596
|
-
ip: "
|
|
25597
|
-
stage: "
|
|
25598
|
-
seenAsGateway: "nat-
|
|
25599
|
-
note: "
|
|
25613
|
+
ip: "54.253.255.215",
|
|
25614
|
+
stage: "prod",
|
|
25615
|
+
seenAsGateway: "nat-04384e27ab04973b5",
|
|
25616
|
+
note: "Prod hosts NAT in ap-southeast-2b, created 2026-09-15 by ENG-9426. The 12 prod hosts in the 2b private subnet egress here instead of crossing to 2a. Verified live after the Pulumi apply, not predicted."
|
|
25600
25617
|
}
|
|
25601
25618
|
]
|
|
25602
25619
|
};
|
|
@@ -46406,6 +46423,11 @@ function describeAssignHumanResult(resp, email2) {
|
|
|
46406
46423
|
// src/artefact-source.ts
|
|
46407
46424
|
var SOURCE_READBACK_MAX_CHUNKS = 128;
|
|
46408
46425
|
var SOURCE_READBACK_CHUNK_BYTES = 65536;
|
|
46426
|
+
function codePointLength(text) {
|
|
46427
|
+
let n = 0;
|
|
46428
|
+
for (const ch of text) n += ch ? 1 : 0;
|
|
46429
|
+
return n;
|
|
46430
|
+
}
|
|
46409
46431
|
async function assembleArtefactSource(fetchChunk, maxChunks = SOURCE_READBACK_MAX_CHUNKS) {
|
|
46410
46432
|
const parts = [];
|
|
46411
46433
|
let offset = 0;
|
|
@@ -46419,12 +46441,12 @@ async function assembleArtefactSource(fetchChunk, maxChunks = SOURCE_READBACK_MA
|
|
|
46419
46441
|
if (data.end_of_content) break;
|
|
46420
46442
|
if (data.length <= 0) {
|
|
46421
46443
|
throw new Error(
|
|
46422
|
-
`source read stalled at offset ${offset} of ${totalLength}
|
|
46444
|
+
`source read stalled at offset ${offset} of ${totalLength} characters (server returned an empty chunk without signalling end of content)`
|
|
46423
46445
|
);
|
|
46424
46446
|
}
|
|
46425
46447
|
if (chunks >= maxChunks) {
|
|
46426
46448
|
throw new Error(
|
|
46427
|
-
`source read exceeded ${maxChunks} chunks (${totalLength}
|
|
46449
|
+
`source read exceeded ${maxChunks} chunks (${totalLength} characters reported); refusing to continue`
|
|
46428
46450
|
);
|
|
46429
46451
|
}
|
|
46430
46452
|
offset = data.offset + data.length;
|
|
@@ -46435,14 +46457,14 @@ function classifyRevision(before, after) {
|
|
|
46435
46457
|
if (before === null || after === null) return "unknown";
|
|
46436
46458
|
return before === after ? "stable" : "changed";
|
|
46437
46459
|
}
|
|
46438
|
-
function describeSourceIntegrity(
|
|
46460
|
+
function describeSourceIntegrity(assembledChars, totalLength, revisionState = "stable") {
|
|
46439
46461
|
if (revisionState === "changed") {
|
|
46440
46462
|
return "WARNING: the artefact was re-published while this was being read, so the file may mix two versions - re-read it before editing, and do NOT re-publish this copy";
|
|
46441
46463
|
}
|
|
46442
46464
|
if (revisionState === "unknown") {
|
|
46443
|
-
return
|
|
46465
|
+
return assembledChars === totalLength ? "assembled OK, but UNVERIFIED: the revision marker could not be read, so we cannot confirm the artefact stayed unchanged during the read - safe to read, but re-read before re-publishing" : `WARNING: assembled ${assembledChars} characters but the server reports ${totalLength}, and the revision marker could not be read - do NOT re-publish this as-is`;
|
|
46444
46466
|
}
|
|
46445
|
-
return
|
|
46467
|
+
return assembledChars === totalLength ? "complete" : `WARNING: assembled ${assembledChars} characters but the server reports ${totalLength} - do NOT re-publish this as-is`;
|
|
46446
46468
|
}
|
|
46447
46469
|
|
|
46448
46470
|
// src/directory.ts
|
|
@@ -49877,7 +49899,7 @@ async function getPublishedArtefactSourceChunkText(artefactId, offset, limit) {
|
|
|
49877
49899
|
const trailer = data.end_of_content ? "\n\n---\n(end of source)" : `
|
|
49878
49900
|
|
|
49879
49901
|
---
|
|
49880
|
-
(more \u2014 next offset: ${data.offset + data.length}, total: ${data.total_length}
|
|
49902
|
+
(more \u2014 next offset: ${data.offset + data.length}, total: ${data.total_length} characters)`;
|
|
49881
49903
|
return data.chunk + trailer;
|
|
49882
49904
|
}
|
|
49883
49905
|
function formatDwellMs(ms) {
|
|
@@ -49974,8 +49996,8 @@ server.tool(
|
|
|
49974
49996
|
"Fetch ONE chunk of source HTML for a published artefact. For editing a page, prefer artefacts_get_source, which saves the whole document to a file in a single call - assembling a large document from chunks by hand costs one round trip per 64KB and puts every byte in your context.",
|
|
49975
49997
|
{
|
|
49976
49998
|
artefact_id: external_exports.string().uuid().describe("The artefact id returned by artefacts_list"),
|
|
49977
|
-
offset: external_exports.number().int().min(0).describe(
|
|
49978
|
-
limit: external_exports.number().int().min(1).max(65536).optional().describe("Max
|
|
49999
|
+
offset: external_exports.number().int().min(0).describe('Character offset into the source HTML to start from (continue from the "next offset" the previous chunk reported)'),
|
|
50000
|
+
limit: external_exports.number().int().min(1).max(65536).optional().describe("Max characters to return (default 32K, max 64K)")
|
|
49979
50001
|
},
|
|
49980
50002
|
async (params) => ({
|
|
49981
50003
|
content: [
|
|
@@ -50019,6 +50041,7 @@ async function saveArtefactSourceToFile(artefactId) {
|
|
|
50019
50041
|
return {
|
|
50020
50042
|
path: filePath,
|
|
50021
50043
|
bytes: Buffer.byteLength(result.html, "utf8"),
|
|
50044
|
+
characters: codePointLength(result.html),
|
|
50022
50045
|
totalLength: result.totalLength,
|
|
50023
50046
|
chunks: result.chunks,
|
|
50024
50047
|
revisionState: result.revisionState
|
|
@@ -50026,10 +50049,10 @@ async function saveArtefactSourceToFile(artefactId) {
|
|
|
50026
50049
|
}
|
|
50027
50050
|
async function saveArtefactSourceText(artefactId) {
|
|
50028
50051
|
const r = await saveArtefactSourceToFile(artefactId);
|
|
50029
|
-
const integrity = describeSourceIntegrity(r.
|
|
50052
|
+
const integrity = describeSourceIntegrity(r.characters, r.totalLength, r.revisionState);
|
|
50030
50053
|
return [
|
|
50031
50054
|
`Saved source HTML to ${r.path}`,
|
|
50032
|
-
`${r.bytes} bytes in ${r.chunks} chunk(s) \u2014 ${integrity}`,
|
|
50055
|
+
`${r.characters} characters (${r.bytes} bytes) in ${r.chunks} chunk(s) \u2014 ${integrity}`,
|
|
50033
50056
|
"Read/edit that file, then pass the edited HTML back as `content` to agt_live_publish with the same slug."
|
|
50034
50057
|
].join("\n");
|
|
50035
50058
|
}
|
package/dist/mcp/origami.js
CHANGED
|
@@ -39711,7 +39711,24 @@ var composio_approved_egress_default = {
|
|
|
39711
39711
|
"WHEN ENG-9426 LANDS THIS GOES RED UNTIL IT IS UPDATED. That is the forcing function",
|
|
39712
39712
|
"working, not a fault. ENG-9426 adds a NAT in ap-southeast-2b, i.e. a THIRD egress",
|
|
39713
39713
|
"address: add it here in the same change that lands it, or the detector correctly",
|
|
39714
|
-
"reports that hosts are leaving from an address no key allows. Do not loosen the check."
|
|
39714
|
+
"reports that hosts are leaving from an address no key allows. Do not loosen the check.",
|
|
39715
|
+
"",
|
|
39716
|
+
" crossing to 2a and stop dying with it. The address does not exist until",
|
|
39717
|
+
"",
|
|
39718
|
+
"15.135.204.192 IS GONE AND MUST NOT BE RE-ADDED (ENG-9426, 2026-09-15).",
|
|
39719
|
+
"The dev NAT was retired and that address was RELEASED back to the AWS pool, so it can",
|
|
39720
|
+
"be reassigned to another AWS customer at any time. An allowlist entry naming it would",
|
|
39721
|
+
"then permit a stranger's host rather than simply failing closed. Nothing was armed when",
|
|
39722
|
+
"this happened, so no key ever held it - but this file IS what an operator pastes from,",
|
|
39723
|
+
"which is why it is removed here the same day.",
|
|
39724
|
+
"",
|
|
39725
|
+
"WHY retainOnDelete DID NOT SAVE IT, because the next person will assume it would.",
|
|
39726
|
+
"The option was added in the SAME change that set dev's natMode to `none`. Pulumi reads",
|
|
39727
|
+
"delete-time options from the STATE recorded at the resource's last registration, and by",
|
|
39728
|
+
"the time this ran the resource was no longer in the program at all - so the state still",
|
|
39729
|
+
"said 'delete normally'. retainOnDelete has to land in a deploy that STILL DECLARES the",
|
|
39730
|
+
"resource before it protects anything. The two prod EIPs above are protected, because",
|
|
39731
|
+
"this apply registered them with the option set."
|
|
39715
39732
|
],
|
|
39716
39733
|
account: "711726113003",
|
|
39717
39734
|
homeRegion: "ap-southeast-2",
|
|
@@ -39723,10 +39740,10 @@ var composio_approved_egress_default = {
|
|
|
39723
39740
|
note: "Prod hosts NAT. Measured 2026-09-12 (ENG-10392): 25 of 25 active prod host instances route 0.0.0.0/0 here."
|
|
39724
39741
|
},
|
|
39725
39742
|
{
|
|
39726
|
-
ip: "
|
|
39727
|
-
stage: "
|
|
39728
|
-
seenAsGateway: "nat-
|
|
39729
|
-
note: "
|
|
39743
|
+
ip: "54.253.255.215",
|
|
39744
|
+
stage: "prod",
|
|
39745
|
+
seenAsGateway: "nat-04384e27ab04973b5",
|
|
39746
|
+
note: "Prod hosts NAT in ap-southeast-2b, created 2026-09-15 by ENG-9426. The 12 prod hosts in the 2b private subnet egress here instead of crossing to 2a. Verified live after the Pulumi apply, not predicted."
|
|
39730
39747
|
}
|
|
39731
39748
|
]
|
|
39732
39749
|
};
|
|
@@ -33949,7 +33949,24 @@ var composio_approved_egress_default = {
|
|
|
33949
33949
|
"WHEN ENG-9426 LANDS THIS GOES RED UNTIL IT IS UPDATED. That is the forcing function",
|
|
33950
33950
|
"working, not a fault. ENG-9426 adds a NAT in ap-southeast-2b, i.e. a THIRD egress",
|
|
33951
33951
|
"address: add it here in the same change that lands it, or the detector correctly",
|
|
33952
|
-
"reports that hosts are leaving from an address no key allows. Do not loosen the check."
|
|
33952
|
+
"reports that hosts are leaving from an address no key allows. Do not loosen the check.",
|
|
33953
|
+
"",
|
|
33954
|
+
" crossing to 2a and stop dying with it. The address does not exist until",
|
|
33955
|
+
"",
|
|
33956
|
+
"15.135.204.192 IS GONE AND MUST NOT BE RE-ADDED (ENG-9426, 2026-09-15).",
|
|
33957
|
+
"The dev NAT was retired and that address was RELEASED back to the AWS pool, so it can",
|
|
33958
|
+
"be reassigned to another AWS customer at any time. An allowlist entry naming it would",
|
|
33959
|
+
"then permit a stranger's host rather than simply failing closed. Nothing was armed when",
|
|
33960
|
+
"this happened, so no key ever held it - but this file IS what an operator pastes from,",
|
|
33961
|
+
"which is why it is removed here the same day.",
|
|
33962
|
+
"",
|
|
33963
|
+
"WHY retainOnDelete DID NOT SAVE IT, because the next person will assume it would.",
|
|
33964
|
+
"The option was added in the SAME change that set dev's natMode to `none`. Pulumi reads",
|
|
33965
|
+
"delete-time options from the STATE recorded at the resource's last registration, and by",
|
|
33966
|
+
"the time this ran the resource was no longer in the program at all - so the state still",
|
|
33967
|
+
"said 'delete normally'. retainOnDelete has to land in a deploy that STILL DECLARES the",
|
|
33968
|
+
"resource before it protects anything. The two prod EIPs above are protected, because",
|
|
33969
|
+
"this apply registered them with the option set."
|
|
33953
33970
|
],
|
|
33954
33971
|
account: "711726113003",
|
|
33955
33972
|
homeRegion: "ap-southeast-2",
|
|
@@ -33961,10 +33978,10 @@ var composio_approved_egress_default = {
|
|
|
33961
33978
|
note: "Prod hosts NAT. Measured 2026-09-12 (ENG-10392): 25 of 25 active prod host instances route 0.0.0.0/0 here."
|
|
33962
33979
|
},
|
|
33963
33980
|
{
|
|
33964
|
-
ip: "
|
|
33965
|
-
stage: "
|
|
33966
|
-
seenAsGateway: "nat-
|
|
33967
|
-
note: "
|
|
33981
|
+
ip: "54.253.255.215",
|
|
33982
|
+
stage: "prod",
|
|
33983
|
+
seenAsGateway: "nat-04384e27ab04973b5",
|
|
33984
|
+
note: "Prod hosts NAT in ap-southeast-2b, created 2026-09-15 by ENG-9426. The 12 prod hosts in the 2b private subnet egress here instead of crossing to 2a. Verified live after the Pulumi apply, not predicted."
|
|
33968
33985
|
}
|
|
33969
33986
|
]
|
|
33970
33987
|
};
|
|
@@ -33967,7 +33967,24 @@ var composio_approved_egress_default = {
|
|
|
33967
33967
|
"WHEN ENG-9426 LANDS THIS GOES RED UNTIL IT IS UPDATED. That is the forcing function",
|
|
33968
33968
|
"working, not a fault. ENG-9426 adds a NAT in ap-southeast-2b, i.e. a THIRD egress",
|
|
33969
33969
|
"address: add it here in the same change that lands it, or the detector correctly",
|
|
33970
|
-
"reports that hosts are leaving from an address no key allows. Do not loosen the check."
|
|
33970
|
+
"reports that hosts are leaving from an address no key allows. Do not loosen the check.",
|
|
33971
|
+
"",
|
|
33972
|
+
" crossing to 2a and stop dying with it. The address does not exist until",
|
|
33973
|
+
"",
|
|
33974
|
+
"15.135.204.192 IS GONE AND MUST NOT BE RE-ADDED (ENG-9426, 2026-09-15).",
|
|
33975
|
+
"The dev NAT was retired and that address was RELEASED back to the AWS pool, so it can",
|
|
33976
|
+
"be reassigned to another AWS customer at any time. An allowlist entry naming it would",
|
|
33977
|
+
"then permit a stranger's host rather than simply failing closed. Nothing was armed when",
|
|
33978
|
+
"this happened, so no key ever held it - but this file IS what an operator pastes from,",
|
|
33979
|
+
"which is why it is removed here the same day.",
|
|
33980
|
+
"",
|
|
33981
|
+
"WHY retainOnDelete DID NOT SAVE IT, because the next person will assume it would.",
|
|
33982
|
+
"The option was added in the SAME change that set dev's natMode to `none`. Pulumi reads",
|
|
33983
|
+
"delete-time options from the STATE recorded at the resource's last registration, and by",
|
|
33984
|
+
"the time this ran the resource was no longer in the program at all - so the state still",
|
|
33985
|
+
"said 'delete normally'. retainOnDelete has to land in a deploy that STILL DECLARES the",
|
|
33986
|
+
"resource before it protects anything. The two prod EIPs above are protected, because",
|
|
33987
|
+
"this apply registered them with the option set."
|
|
33971
33988
|
],
|
|
33972
33989
|
account: "711726113003",
|
|
33973
33990
|
homeRegion: "ap-southeast-2",
|
|
@@ -33979,10 +33996,10 @@ var composio_approved_egress_default = {
|
|
|
33979
33996
|
note: "Prod hosts NAT. Measured 2026-09-12 (ENG-10392): 25 of 25 active prod host instances route 0.0.0.0/0 here."
|
|
33980
33997
|
},
|
|
33981
33998
|
{
|
|
33982
|
-
ip: "
|
|
33983
|
-
stage: "
|
|
33984
|
-
seenAsGateway: "nat-
|
|
33985
|
-
note: "
|
|
33999
|
+
ip: "54.253.255.215",
|
|
34000
|
+
stage: "prod",
|
|
34001
|
+
seenAsGateway: "nat-04384e27ab04973b5",
|
|
34002
|
+
note: "Prod hosts NAT in ap-southeast-2b, created 2026-09-15 by ENG-9426. The 12 prod hosts in the 2b private subnet egress here instead of crossing to 2a. Verified live after the Pulumi apply, not predicted."
|
|
33986
34003
|
}
|
|
33987
34004
|
]
|
|
33988
34005
|
};
|
|
@@ -62,8 +62,8 @@ import {
|
|
|
62
62
|
writeDirectChatSessionState,
|
|
63
63
|
writeEgressAllowlist,
|
|
64
64
|
writePersistentClaudeWrapper
|
|
65
|
-
} from "./chunk-
|
|
66
|
-
import "./chunk-
|
|
65
|
+
} from "./chunk-XN5MOKSV.js";
|
|
66
|
+
import "./chunk-YZ5HGHPG.js";
|
|
67
67
|
import "./chunk-XWVM4KPK.js";
|
|
68
68
|
export {
|
|
69
69
|
CLAUDE_HOST_WIDE,
|
|
@@ -130,4 +130,4 @@ export {
|
|
|
130
130
|
writeEgressAllowlist,
|
|
131
131
|
writePersistentClaudeWrapper
|
|
132
132
|
};
|
|
133
|
-
//# sourceMappingURL=persistent-session-
|
|
133
|
+
//# sourceMappingURL=persistent-session-523F5U4H.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-XN5MOKSV.js";
|
|
4
|
+
import "./chunk-YZ5HGHPG.js";
|
|
5
5
|
import "./chunk-XWVM4KPK.js";
|
|
6
6
|
|
|
7
7
|
// src/lib/responsiveness-probe.ts
|
|
@@ -799,4 +799,4 @@ export {
|
|
|
799
799
|
readAndResetSlackReplyBindingClassifications,
|
|
800
800
|
readAndResetSlackReplyTargetClassifications
|
|
801
801
|
};
|
|
802
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
802
|
+
//# sourceMappingURL=responsiveness-probe-CHGET573.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionTranscriptDir
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YZ5HGHPG.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-T5SUK2HT.js.map
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|