@integrity-labs/agt-cli 0.28.453 → 0.28.455
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-HYKSLRTJ.js → chunk-4X4JXF4D.js} +3 -3
- package/dist/{chunk-3NJHNIO3.js → chunk-UIUYOGPK.js} +17 -2
- package/dist/{chunk-3NJHNIO3.js.map → chunk-UIUYOGPK.js.map} +1 -1
- package/dist/{claude-pair-runtime-NRKOKQYR.js → claude-pair-runtime-PHAR4IF4.js} +2 -2
- package/dist/lib/manager-worker.js +10 -10
- package/dist/mcp/direct-chat-channel.js +16 -1
- package/dist/mcp/origami.js +18 -2
- package/dist/mcp/slack-channel.js +66 -12
- package/dist/mcp/telegram-channel.js +66 -12
- package/dist/{persistent-session-X5N7UFEF.js → persistent-session-Z2UQ4VVF.js} +2 -2
- package/dist/{responsiveness-probe-OAZ55KPC.js → responsiveness-probe-WCF2QEVT.js} +2 -2
- package/package.json +1 -1
- /package/dist/{chunk-HYKSLRTJ.js.map → chunk-4X4JXF4D.js.map} +0 -0
- /package/dist/{claude-pair-runtime-NRKOKQYR.js.map → claude-pair-runtime-PHAR4IF4.js.map} +0 -0
- /package/dist/{persistent-session-X5N7UFEF.js.map → persistent-session-Z2UQ4VVF.js.map} +0 -0
- /package/dist/{responsiveness-probe-OAZ55KPC.js.map → responsiveness-probe-WCF2QEVT.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-Z2UQ4VVF.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-PHAR4IF4.js.map
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
resolveEffectivePinRaw,
|
|
43
43
|
safeWriteJsonAtomic,
|
|
44
44
|
setConfigHash
|
|
45
|
-
} from "../chunk-
|
|
45
|
+
} from "../chunk-4X4JXF4D.js";
|
|
46
46
|
import {
|
|
47
47
|
getProjectDir as getProjectDir2,
|
|
48
48
|
getReadyTasks,
|
|
@@ -164,7 +164,7 @@ import {
|
|
|
164
164
|
toOpencodeModel,
|
|
165
165
|
transcriptActivityAgeSeconds,
|
|
166
166
|
writeEgressAllowlist
|
|
167
|
-
} from "../chunk-
|
|
167
|
+
} from "../chunk-UIUYOGPK.js";
|
|
168
168
|
import {
|
|
169
169
|
reapOrphanChannelMcps
|
|
170
170
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -9949,7 +9949,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
9949
9949
|
var lastVersionCheckAt = 0;
|
|
9950
9950
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
9951
9951
|
var lastResponsivenessProbeAt = 0;
|
|
9952
|
-
var agtCliVersion = true ? "0.28.
|
|
9952
|
+
var agtCliVersion = true ? "0.28.455" : "dev";
|
|
9953
9953
|
function resolveBrewPath(execFileSync2) {
|
|
9954
9954
|
try {
|
|
9955
9955
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -11110,7 +11110,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
11110
11110
|
if (codeNames.length === 0) return;
|
|
11111
11111
|
void (async () => {
|
|
11112
11112
|
try {
|
|
11113
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
11113
|
+
const { collectDiagnostics } = await import("../persistent-session-Z2UQ4VVF.js");
|
|
11114
11114
|
await api.post("/host/heartbeat", {
|
|
11115
11115
|
host_id: hostId,
|
|
11116
11116
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor)
|
|
@@ -11217,7 +11217,7 @@ async function pollCycle() {
|
|
|
11217
11217
|
}
|
|
11218
11218
|
try {
|
|
11219
11219
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
11220
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
11220
|
+
const { collectDiagnostics } = await import("../persistent-session-Z2UQ4VVF.js");
|
|
11221
11221
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
11222
11222
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor) : void 0;
|
|
11223
11223
|
let tailscaleHostname;
|
|
@@ -11331,7 +11331,7 @@ async function pollCycle() {
|
|
|
11331
11331
|
collectResponsivenessProbes,
|
|
11332
11332
|
collectPanelessActivityProbes,
|
|
11333
11333
|
getResponsivenessIntervalMs
|
|
11334
|
-
} = await import("../responsiveness-probe-
|
|
11334
|
+
} = await import("../responsiveness-probe-WCF2QEVT.js");
|
|
11335
11335
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
11336
11336
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
11337
11337
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -11395,7 +11395,7 @@ async function pollCycle() {
|
|
|
11395
11395
|
collectResponsivenessProbes,
|
|
11396
11396
|
livePendingInboundOldestAgeSeconds,
|
|
11397
11397
|
parkPendingInbound
|
|
11398
|
-
} = await import("../responsiveness-probe-
|
|
11398
|
+
} = await import("../responsiveness-probe-WCF2QEVT.js");
|
|
11399
11399
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
|
|
11400
11400
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
11401
11401
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -14767,7 +14767,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
14767
14767
|
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}`));
|
|
14768
14768
|
void (async () => {
|
|
14769
14769
|
try {
|
|
14770
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
14770
|
+
const { collectDiagnostics } = await import("../persistent-session-Z2UQ4VVF.js");
|
|
14771
14771
|
await api.post("/host/heartbeat", {
|
|
14772
14772
|
host_id: hostId,
|
|
14773
14773
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
|
|
@@ -14817,7 +14817,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
14817
14817
|
}
|
|
14818
14818
|
try {
|
|
14819
14819
|
const hostId = await getHostId();
|
|
14820
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
14820
|
+
const { collectDiagnostics } = await import("../persistent-session-Z2UQ4VVF.js");
|
|
14821
14821
|
await api.post("/host/heartbeat", {
|
|
14822
14822
|
host_id: hostId,
|
|
14823
14823
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
|
|
@@ -15270,7 +15270,7 @@ async function processClaudePairSessions(agents) {
|
|
|
15270
15270
|
killPairSession,
|
|
15271
15271
|
pairTmuxSession,
|
|
15272
15272
|
finalizeClaudePairOnboarding
|
|
15273
|
-
} = await import("../claude-pair-runtime-
|
|
15273
|
+
} = await import("../claude-pair-runtime-PHAR4IF4.js");
|
|
15274
15274
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
15275
15275
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
15276
15276
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -35154,7 +35154,22 @@ var FLAG_REGISTRY = [
|
|
|
35154
35154
|
// enforce reroutes a message the agent asked to send to channel root into a
|
|
35155
35155
|
// thread - a visible destination change, so flipping toward it is deliberate
|
|
35156
35156
|
// (ADR-0022 sensitive-flag confirm).
|
|
35157
|
-
sensitive: true
|
|
35157
|
+
sensitive: true,
|
|
35158
|
+
// ENG-8235: the agt-cli whose bundle first carries resolveSlackHotThreadMode.
|
|
35159
|
+
// Without this the flip-reach modal reports FULL reach (an undefined `since`
|
|
35160
|
+
// means "every host can honour it"), which is wrong for a host-read flag that
|
|
35161
|
+
// older hosts have no reader for - and this flag's pending action IS a flip,
|
|
35162
|
+
// once the ENG-7855 soak has data.
|
|
35163
|
+
//
|
|
35164
|
+
// BISECTED from the published npm artifacts rather than inferred from the
|
|
35165
|
+
// merge commit: 0.28.338 lacks the reader; 0.28.339 (2026-07-18T02:48Z) carries
|
|
35166
|
+
// both AGT_SLACK_HOT_THREAD_GUARD_MODE and to_channel_root in
|
|
35167
|
+
// dist/mcp/slack-channel.js. ENG-7462 is usually cited as 0.28.340, but two
|
|
35168
|
+
// publishes fired 8 minutes apart and .339 is the one that shipped the reader;
|
|
35169
|
+
// `since` is a reach THRESHOLD, so .340 would wrongly mark hosts on exactly
|
|
35170
|
+
// .339 as un-reached. Excluded from projectDefinition, so setting it does not
|
|
35171
|
+
// roll FLAGS_SCHEMA_VERSION.
|
|
35172
|
+
since: "0.28.339"
|
|
35158
35173
|
},
|
|
35159
35174
|
{
|
|
35160
35175
|
key: "compaction-notice",
|
package/dist/mcp/origami.js
CHANGED
|
@@ -40499,7 +40499,22 @@ var FLAG_REGISTRY = [
|
|
|
40499
40499
|
// enforce reroutes a message the agent asked to send to channel root into a
|
|
40500
40500
|
// thread - a visible destination change, so flipping toward it is deliberate
|
|
40501
40501
|
// (ADR-0022 sensitive-flag confirm).
|
|
40502
|
-
sensitive: true
|
|
40502
|
+
sensitive: true,
|
|
40503
|
+
// ENG-8235: the agt-cli whose bundle first carries resolveSlackHotThreadMode.
|
|
40504
|
+
// Without this the flip-reach modal reports FULL reach (an undefined `since`
|
|
40505
|
+
// means "every host can honour it"), which is wrong for a host-read flag that
|
|
40506
|
+
// older hosts have no reader for - and this flag's pending action IS a flip,
|
|
40507
|
+
// once the ENG-7855 soak has data.
|
|
40508
|
+
//
|
|
40509
|
+
// BISECTED from the published npm artifacts rather than inferred from the
|
|
40510
|
+
// merge commit: 0.28.338 lacks the reader; 0.28.339 (2026-07-18T02:48Z) carries
|
|
40511
|
+
// both AGT_SLACK_HOT_THREAD_GUARD_MODE and to_channel_root in
|
|
40512
|
+
// dist/mcp/slack-channel.js. ENG-7462 is usually cited as 0.28.340, but two
|
|
40513
|
+
// publishes fired 8 minutes apart and .339 is the one that shipped the reader;
|
|
40514
|
+
// `since` is a reach THRESHOLD, so .340 would wrongly mark hosts on exactly
|
|
40515
|
+
// .339 as un-reached. Excluded from projectDefinition, so setting it does not
|
|
40516
|
+
// roll FLAGS_SCHEMA_VERSION.
|
|
40517
|
+
since: "0.28.339"
|
|
40503
40518
|
},
|
|
40504
40519
|
{
|
|
40505
40520
|
key: "compaction-notice",
|
|
@@ -41231,7 +41246,8 @@ var IdentityResolver = class {
|
|
|
41231
41246
|
);
|
|
41232
41247
|
}
|
|
41233
41248
|
if (res.status >= 400) {
|
|
41234
|
-
|
|
41249
|
+
const explanation = data.detail?.trim() || data.error?.trim() || "";
|
|
41250
|
+
throw new IdentityError(res.status, `Credential fetch failed: ${res.status} ${explanation}`.trim());
|
|
41235
41251
|
}
|
|
41236
41252
|
if (!data.access_token) {
|
|
41237
41253
|
throw new IdentityError(502, "Broker returned 200 but no access_token - API contract mismatch");
|
|
@@ -7633,6 +7633,42 @@ var require__ = __commonJS({
|
|
|
7633
7633
|
}
|
|
7634
7634
|
});
|
|
7635
7635
|
|
|
7636
|
+
// ../core/dist/alerts/snooze.js
|
|
7637
|
+
var FIXED_SECONDS;
|
|
7638
|
+
var init_snooze = __esm({
|
|
7639
|
+
"../core/dist/alerts/snooze.js"() {
|
|
7640
|
+
"use strict";
|
|
7641
|
+
FIXED_SECONDS = {
|
|
7642
|
+
"15m": 15 * 60,
|
|
7643
|
+
"1h": 60 * 60,
|
|
7644
|
+
"4h": 4 * 60 * 60
|
|
7645
|
+
};
|
|
7646
|
+
}
|
|
7647
|
+
});
|
|
7648
|
+
|
|
7649
|
+
// ../core/dist/channels/slack-block-kit.js
|
|
7650
|
+
function decodeActionId(actionId) {
|
|
7651
|
+
const m = ACTION_ID_RE.exec(actionId);
|
|
7652
|
+
if (!m)
|
|
7653
|
+
return null;
|
|
7654
|
+
return { callbackId: m[1], token: m[2] };
|
|
7655
|
+
}
|
|
7656
|
+
function isRoutableActionId(actionId) {
|
|
7657
|
+
return decodeActionId(actionId) !== null;
|
|
7658
|
+
}
|
|
7659
|
+
function isLinkButton(element) {
|
|
7660
|
+
return typeof element.url === "string" && element.url.length > 0;
|
|
7661
|
+
}
|
|
7662
|
+
var ACTION_ID_RE, UNROUTABLE_ACTION_ID_MESSAGE;
|
|
7663
|
+
var init_slack_block_kit = __esm({
|
|
7664
|
+
"../core/dist/channels/slack-block-kit.js"() {
|
|
7665
|
+
"use strict";
|
|
7666
|
+
init_snooze();
|
|
7667
|
+
ACTION_ID_RE = /^aug:([0-9a-f-]{36}):([A-Za-z0-9_-]{1,200})$/;
|
|
7668
|
+
UNROUTABLE_ACTION_ID_MESSAGE = "interactive buttons must be created with the `request_buttons` tool \u2014 it mints the `aug:<callback-id>:<token>` action_id that makes a tap routable. A hand-written action_id renders fine but its click is silently dropped: the agent is never notified and the buttons are never swapped for the chosen value. For a non-interactive button, set `url` to make it a link button.";
|
|
7669
|
+
}
|
|
7670
|
+
});
|
|
7671
|
+
|
|
7636
7672
|
// ../../node_modules/.pnpm/yaml@2.8.4/node_modules/yaml/dist/nodes/identity.js
|
|
7637
7673
|
var require_identity = __commonJS({
|
|
7638
7674
|
"../../node_modules/.pnpm/yaml@2.8.4/node_modules/yaml/dist/nodes/identity.js"(exports) {
|
|
@@ -22561,7 +22597,7 @@ __export(slack_block_kit_runtime_exports, {
|
|
|
22561
22597
|
apiCall: () => apiCall,
|
|
22562
22598
|
buildAskUserBlocks: () => buildAskUserBlocks,
|
|
22563
22599
|
createPendingInteraction: () => createPendingInteraction,
|
|
22564
|
-
decodeActionId: () =>
|
|
22600
|
+
decodeActionId: () => decodeActionId2,
|
|
22565
22601
|
encodeActionId: () => encodeActionId2,
|
|
22566
22602
|
generateOptionToken: () => generateOptionToken,
|
|
22567
22603
|
getMutedNotifyChannels: () => getMutedNotifyChannels,
|
|
@@ -22682,6 +22718,8 @@ function validateActionsBlock(b, path, push) {
|
|
|
22682
22718
|
push(`${path}.elements[${i}].action_id`, "button requires a non-empty `action_id`");
|
|
22683
22719
|
} else if (actionId.length > SLACK_LIMITS.identifierChars) {
|
|
22684
22720
|
push(`${path}.elements[${i}].action_id`, `max ${SLACK_LIMITS.identifierChars} chars`);
|
|
22721
|
+
} else if (!isRoutableActionId(actionId) && !isLinkButton(el)) {
|
|
22722
|
+
push(`${path}.elements[${i}].action_id`, UNROUTABLE_ACTION_ID_MESSAGE);
|
|
22685
22723
|
}
|
|
22686
22724
|
const value = el.value;
|
|
22687
22725
|
if (value !== void 0) {
|
|
@@ -22712,8 +22750,8 @@ function validateTextObject(text, path, maxChars, allowedTypes, push) {
|
|
|
22712
22750
|
function encodeActionId2(callbackId, token) {
|
|
22713
22751
|
return `aug:${callbackId}:${token}`;
|
|
22714
22752
|
}
|
|
22715
|
-
function
|
|
22716
|
-
const m =
|
|
22753
|
+
function decodeActionId2(actionId) {
|
|
22754
|
+
const m = ACTION_ID_RE2.exec(actionId);
|
|
22717
22755
|
if (!m) return null;
|
|
22718
22756
|
return { callbackId: m[1], token: m[2] };
|
|
22719
22757
|
}
|
|
@@ -22806,11 +22844,12 @@ async function getMutedNotifyChannels(cfg) {
|
|
|
22806
22844
|
return [];
|
|
22807
22845
|
}
|
|
22808
22846
|
}
|
|
22809
|
-
var SLACK_LIMITS, SUPPORTED_BLOCK_TYPES, SUPPORTED_ACTION_ELEMENTS,
|
|
22847
|
+
var SLACK_LIMITS, SUPPORTED_BLOCK_TYPES, SUPPORTED_ACTION_ELEMENTS, ACTION_ID_RE2;
|
|
22810
22848
|
var init_slack_block_kit_runtime = __esm({
|
|
22811
22849
|
"src/slack-block-kit-runtime.ts"() {
|
|
22812
22850
|
"use strict";
|
|
22813
22851
|
init_ask_user_runtime();
|
|
22852
|
+
init_slack_block_kit();
|
|
22814
22853
|
init_ask_user_runtime();
|
|
22815
22854
|
SLACK_LIMITS = {
|
|
22816
22855
|
blocksPerMessage: 50,
|
|
@@ -22825,7 +22864,7 @@ var init_slack_block_kit_runtime = __esm({
|
|
|
22825
22864
|
};
|
|
22826
22865
|
SUPPORTED_BLOCK_TYPES = ["header", "section", "divider", "context", "actions"];
|
|
22827
22866
|
SUPPORTED_ACTION_ELEMENTS = ["button"];
|
|
22828
|
-
|
|
22867
|
+
ACTION_ID_RE2 = /^aug:([0-9a-f-]{36}):([A-Za-z0-9_-]{1,200})$/;
|
|
22829
22868
|
}
|
|
22830
22869
|
});
|
|
22831
22870
|
|
|
@@ -31308,12 +31347,8 @@ var compiledCharter = ajv.compile(charterSchema);
|
|
|
31308
31347
|
var compiledTools = ajv.compile(toolsSchema);
|
|
31309
31348
|
var compiledIntegrationMetadata = ajv.compile(integrationMetadataSchema);
|
|
31310
31349
|
|
|
31311
|
-
// ../core/dist/
|
|
31312
|
-
|
|
31313
|
-
"15m": 15 * 60,
|
|
31314
|
-
"1h": 60 * 60,
|
|
31315
|
-
"4h": 4 * 60 * 60
|
|
31316
|
-
};
|
|
31350
|
+
// ../core/dist/integrations/integration-broker/card-renderer.js
|
|
31351
|
+
init_slack_block_kit();
|
|
31317
31352
|
|
|
31318
31353
|
// ../core/dist/channels/registry.js
|
|
31319
31354
|
var CHANNEL_REGISTRY = [
|
|
@@ -31779,6 +31814,7 @@ var MSTEAMS_SCOPE_PRESETS = {
|
|
|
31779
31814
|
};
|
|
31780
31815
|
|
|
31781
31816
|
// ../core/dist/channels/kanban-card-state.js
|
|
31817
|
+
init_slack_block_kit();
|
|
31782
31818
|
var KANBAN_TERMINAL_STATUSES = /* @__PURE__ */ new Set([
|
|
31783
31819
|
"done",
|
|
31784
31820
|
"failed",
|
|
@@ -34061,6 +34097,9 @@ var WAITING_KINDS = [
|
|
|
34061
34097
|
];
|
|
34062
34098
|
var WAITING_KIND_SET = new Set(WAITING_KINDS);
|
|
34063
34099
|
|
|
34100
|
+
// ../core/dist/alerts/index.js
|
|
34101
|
+
init_snooze();
|
|
34102
|
+
|
|
34064
34103
|
// ../core/dist/conversations/metrics.js
|
|
34065
34104
|
var PERIOD_CONFIG = {
|
|
34066
34105
|
"24h": { windowMs: 24 * 60 * 60 * 1e3, bucket: "hour" },
|
|
@@ -34723,7 +34762,22 @@ var FLAG_REGISTRY = [
|
|
|
34723
34762
|
// enforce reroutes a message the agent asked to send to channel root into a
|
|
34724
34763
|
// thread - a visible destination change, so flipping toward it is deliberate
|
|
34725
34764
|
// (ADR-0022 sensitive-flag confirm).
|
|
34726
|
-
sensitive: true
|
|
34765
|
+
sensitive: true,
|
|
34766
|
+
// ENG-8235: the agt-cli whose bundle first carries resolveSlackHotThreadMode.
|
|
34767
|
+
// Without this the flip-reach modal reports FULL reach (an undefined `since`
|
|
34768
|
+
// means "every host can honour it"), which is wrong for a host-read flag that
|
|
34769
|
+
// older hosts have no reader for - and this flag's pending action IS a flip,
|
|
34770
|
+
// once the ENG-7855 soak has data.
|
|
34771
|
+
//
|
|
34772
|
+
// BISECTED from the published npm artifacts rather than inferred from the
|
|
34773
|
+
// merge commit: 0.28.338 lacks the reader; 0.28.339 (2026-07-18T02:48Z) carries
|
|
34774
|
+
// both AGT_SLACK_HOT_THREAD_GUARD_MODE and to_channel_root in
|
|
34775
|
+
// dist/mcp/slack-channel.js. ENG-7462 is usually cited as 0.28.340, but two
|
|
34776
|
+
// publishes fired 8 minutes apart and .339 is the one that shipped the reader;
|
|
34777
|
+
// `since` is a reach THRESHOLD, so .340 would wrongly mark hosts on exactly
|
|
34778
|
+
// .339 as un-reached. Excluded from projectDefinition, so setting it does not
|
|
34779
|
+
// roll FLAGS_SCHEMA_VERSION.
|
|
34780
|
+
since: "0.28.339"
|
|
34727
34781
|
},
|
|
34728
34782
|
{
|
|
34729
34783
|
key: "compaction-notice",
|
|
@@ -7633,6 +7633,42 @@ var require__ = __commonJS({
|
|
|
7633
7633
|
}
|
|
7634
7634
|
});
|
|
7635
7635
|
|
|
7636
|
+
// ../core/dist/alerts/snooze.js
|
|
7637
|
+
var FIXED_SECONDS;
|
|
7638
|
+
var init_snooze = __esm({
|
|
7639
|
+
"../core/dist/alerts/snooze.js"() {
|
|
7640
|
+
"use strict";
|
|
7641
|
+
FIXED_SECONDS = {
|
|
7642
|
+
"15m": 15 * 60,
|
|
7643
|
+
"1h": 60 * 60,
|
|
7644
|
+
"4h": 4 * 60 * 60
|
|
7645
|
+
};
|
|
7646
|
+
}
|
|
7647
|
+
});
|
|
7648
|
+
|
|
7649
|
+
// ../core/dist/channels/slack-block-kit.js
|
|
7650
|
+
function decodeActionId(actionId) {
|
|
7651
|
+
const m = ACTION_ID_RE.exec(actionId);
|
|
7652
|
+
if (!m)
|
|
7653
|
+
return null;
|
|
7654
|
+
return { callbackId: m[1], token: m[2] };
|
|
7655
|
+
}
|
|
7656
|
+
function isRoutableActionId(actionId) {
|
|
7657
|
+
return decodeActionId(actionId) !== null;
|
|
7658
|
+
}
|
|
7659
|
+
function isLinkButton(element) {
|
|
7660
|
+
return typeof element.url === "string" && element.url.length > 0;
|
|
7661
|
+
}
|
|
7662
|
+
var ACTION_ID_RE, UNROUTABLE_ACTION_ID_MESSAGE;
|
|
7663
|
+
var init_slack_block_kit = __esm({
|
|
7664
|
+
"../core/dist/channels/slack-block-kit.js"() {
|
|
7665
|
+
"use strict";
|
|
7666
|
+
init_snooze();
|
|
7667
|
+
ACTION_ID_RE = /^aug:([0-9a-f-]{36}):([A-Za-z0-9_-]{1,200})$/;
|
|
7668
|
+
UNROUTABLE_ACTION_ID_MESSAGE = "interactive buttons must be created with the `request_buttons` tool \u2014 it mints the `aug:<callback-id>:<token>` action_id that makes a tap routable. A hand-written action_id renders fine but its click is silently dropped: the agent is never notified and the buttons are never swapped for the chosen value. For a non-interactive button, set `url` to make it a link button.";
|
|
7669
|
+
}
|
|
7670
|
+
});
|
|
7671
|
+
|
|
7636
7672
|
// ../../node_modules/.pnpm/yaml@2.8.4/node_modules/yaml/dist/nodes/identity.js
|
|
7637
7673
|
var require_identity = __commonJS({
|
|
7638
7674
|
"../../node_modules/.pnpm/yaml@2.8.4/node_modules/yaml/dist/nodes/identity.js"(exports) {
|
|
@@ -22561,7 +22597,7 @@ __export(slack_block_kit_runtime_exports, {
|
|
|
22561
22597
|
apiCall: () => apiCall,
|
|
22562
22598
|
buildAskUserBlocks: () => buildAskUserBlocks,
|
|
22563
22599
|
createPendingInteraction: () => createPendingInteraction,
|
|
22564
|
-
decodeActionId: () =>
|
|
22600
|
+
decodeActionId: () => decodeActionId2,
|
|
22565
22601
|
encodeActionId: () => encodeActionId2,
|
|
22566
22602
|
generateOptionToken: () => generateOptionToken,
|
|
22567
22603
|
getMutedNotifyChannels: () => getMutedNotifyChannels,
|
|
@@ -22682,6 +22718,8 @@ function validateActionsBlock(b, path, push) {
|
|
|
22682
22718
|
push(`${path}.elements[${i}].action_id`, "button requires a non-empty `action_id`");
|
|
22683
22719
|
} else if (actionId.length > SLACK_LIMITS.identifierChars) {
|
|
22684
22720
|
push(`${path}.elements[${i}].action_id`, `max ${SLACK_LIMITS.identifierChars} chars`);
|
|
22721
|
+
} else if (!isRoutableActionId(actionId) && !isLinkButton(el)) {
|
|
22722
|
+
push(`${path}.elements[${i}].action_id`, UNROUTABLE_ACTION_ID_MESSAGE);
|
|
22685
22723
|
}
|
|
22686
22724
|
const value = el.value;
|
|
22687
22725
|
if (value !== void 0) {
|
|
@@ -22712,8 +22750,8 @@ function validateTextObject(text, path, maxChars, allowedTypes, push) {
|
|
|
22712
22750
|
function encodeActionId2(callbackId, token) {
|
|
22713
22751
|
return `aug:${callbackId}:${token}`;
|
|
22714
22752
|
}
|
|
22715
|
-
function
|
|
22716
|
-
const m =
|
|
22753
|
+
function decodeActionId2(actionId) {
|
|
22754
|
+
const m = ACTION_ID_RE2.exec(actionId);
|
|
22717
22755
|
if (!m) return null;
|
|
22718
22756
|
return { callbackId: m[1], token: m[2] };
|
|
22719
22757
|
}
|
|
@@ -22806,11 +22844,12 @@ async function getMutedNotifyChannels(cfg) {
|
|
|
22806
22844
|
return [];
|
|
22807
22845
|
}
|
|
22808
22846
|
}
|
|
22809
|
-
var SLACK_LIMITS, SUPPORTED_BLOCK_TYPES, SUPPORTED_ACTION_ELEMENTS,
|
|
22847
|
+
var SLACK_LIMITS, SUPPORTED_BLOCK_TYPES, SUPPORTED_ACTION_ELEMENTS, ACTION_ID_RE2;
|
|
22810
22848
|
var init_slack_block_kit_runtime = __esm({
|
|
22811
22849
|
"src/slack-block-kit-runtime.ts"() {
|
|
22812
22850
|
"use strict";
|
|
22813
22851
|
init_ask_user_runtime();
|
|
22852
|
+
init_slack_block_kit();
|
|
22814
22853
|
init_ask_user_runtime();
|
|
22815
22854
|
SLACK_LIMITS = {
|
|
22816
22855
|
blocksPerMessage: 50,
|
|
@@ -22825,7 +22864,7 @@ var init_slack_block_kit_runtime = __esm({
|
|
|
22825
22864
|
};
|
|
22826
22865
|
SUPPORTED_BLOCK_TYPES = ["header", "section", "divider", "context", "actions"];
|
|
22827
22866
|
SUPPORTED_ACTION_ELEMENTS = ["button"];
|
|
22828
|
-
|
|
22867
|
+
ACTION_ID_RE2 = /^aug:([0-9a-f-]{36}):([A-Za-z0-9_-]{1,200})$/;
|
|
22829
22868
|
}
|
|
22830
22869
|
});
|
|
22831
22870
|
|
|
@@ -31610,12 +31649,8 @@ var compiledCharter = ajv.compile(charterSchema);
|
|
|
31610
31649
|
var compiledTools = ajv.compile(toolsSchema);
|
|
31611
31650
|
var compiledIntegrationMetadata = ajv.compile(integrationMetadataSchema);
|
|
31612
31651
|
|
|
31613
|
-
// ../core/dist/
|
|
31614
|
-
|
|
31615
|
-
"15m": 15 * 60,
|
|
31616
|
-
"1h": 60 * 60,
|
|
31617
|
-
"4h": 4 * 60 * 60
|
|
31618
|
-
};
|
|
31652
|
+
// ../core/dist/integrations/integration-broker/card-renderer.js
|
|
31653
|
+
init_slack_block_kit();
|
|
31619
31654
|
|
|
31620
31655
|
// ../core/dist/channels/registry.js
|
|
31621
31656
|
var CHANNEL_REGISTRY = [
|
|
@@ -32081,6 +32116,7 @@ var MSTEAMS_SCOPE_PRESETS = {
|
|
|
32081
32116
|
};
|
|
32082
32117
|
|
|
32083
32118
|
// ../core/dist/channels/kanban-card-state.js
|
|
32119
|
+
init_slack_block_kit();
|
|
32084
32120
|
var KANBAN_TERMINAL_STATUSES = /* @__PURE__ */ new Set([
|
|
32085
32121
|
"done",
|
|
32086
32122
|
"failed",
|
|
@@ -34363,6 +34399,9 @@ var WAITING_KINDS = [
|
|
|
34363
34399
|
];
|
|
34364
34400
|
var WAITING_KIND_SET = new Set(WAITING_KINDS);
|
|
34365
34401
|
|
|
34402
|
+
// ../core/dist/alerts/index.js
|
|
34403
|
+
init_snooze();
|
|
34404
|
+
|
|
34366
34405
|
// ../core/dist/conversations/metrics.js
|
|
34367
34406
|
var PERIOD_CONFIG = {
|
|
34368
34407
|
"24h": { windowMs: 24 * 60 * 60 * 1e3, bucket: "hour" },
|
|
@@ -35025,7 +35064,22 @@ var FLAG_REGISTRY = [
|
|
|
35025
35064
|
// enforce reroutes a message the agent asked to send to channel root into a
|
|
35026
35065
|
// thread - a visible destination change, so flipping toward it is deliberate
|
|
35027
35066
|
// (ADR-0022 sensitive-flag confirm).
|
|
35028
|
-
sensitive: true
|
|
35067
|
+
sensitive: true,
|
|
35068
|
+
// ENG-8235: the agt-cli whose bundle first carries resolveSlackHotThreadMode.
|
|
35069
|
+
// Without this the flip-reach modal reports FULL reach (an undefined `since`
|
|
35070
|
+
// means "every host can honour it"), which is wrong for a host-read flag that
|
|
35071
|
+
// older hosts have no reader for - and this flag's pending action IS a flip,
|
|
35072
|
+
// once the ENG-7855 soak has data.
|
|
35073
|
+
//
|
|
35074
|
+
// BISECTED from the published npm artifacts rather than inferred from the
|
|
35075
|
+
// merge commit: 0.28.338 lacks the reader; 0.28.339 (2026-07-18T02:48Z) carries
|
|
35076
|
+
// both AGT_SLACK_HOT_THREAD_GUARD_MODE and to_channel_root in
|
|
35077
|
+
// dist/mcp/slack-channel.js. ENG-7462 is usually cited as 0.28.340, but two
|
|
35078
|
+
// publishes fired 8 minutes apart and .339 is the one that shipped the reader;
|
|
35079
|
+
// `since` is a reach THRESHOLD, so .340 would wrongly mark hosts on exactly
|
|
35080
|
+
// .339 as un-reached. Excluded from projectDefinition, so setting it does not
|
|
35081
|
+
// roll FLAGS_SCHEMA_VERSION.
|
|
35082
|
+
since: "0.28.339"
|
|
35029
35083
|
},
|
|
35030
35084
|
{
|
|
35031
35085
|
key: "compaction-notice",
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
writeDirectChatSessionState,
|
|
37
37
|
writeEgressAllowlist,
|
|
38
38
|
writePersistentClaudeWrapper
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-UIUYOGPK.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-Z2UQ4VVF.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UIUYOGPK.js";
|
|
4
4
|
import "./chunk-XWVM4KPK.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/responsiveness-probe.ts
|
|
@@ -528,4 +528,4 @@ export {
|
|
|
528
528
|
readAndResetSlackReplyBindingClassifications,
|
|
529
529
|
readAndResetSlackReplyTargetClassifications
|
|
530
530
|
};
|
|
531
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
531
|
+
//# sourceMappingURL=responsiveness-probe-WCF2QEVT.js.map
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|