@integrity-labs/agt-cli 0.28.245 → 0.28.246
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-NMSN674U.js → chunk-KN77CF2P.js} +3 -3
- package/dist/{chunk-ZS2T67OF.js → chunk-NFO3GOL3.js} +13 -1
- package/dist/{chunk-ZS2T67OF.js.map → chunk-NFO3GOL3.js.map} +1 -1
- package/dist/{claude-pair-runtime-OURKHXEW.js → claude-pair-runtime-HHEVB5WF.js} +2 -2
- package/dist/lib/manager-worker.js +10 -10
- package/dist/mcp/origami.js +12 -0
- package/dist/mcp/slack-channel.js +23 -5
- package/dist/{persistent-session-X427LHOW.js → persistent-session-7BQ2OE2R.js} +2 -2
- package/dist/{responsiveness-probe-CFF27A7B.js → responsiveness-probe-MUY7HOGQ.js} +2 -2
- package/package.json +1 -1
- /package/dist/{chunk-NMSN674U.js.map → chunk-KN77CF2P.js.map} +0 -0
- /package/dist/{claude-pair-runtime-OURKHXEW.js.map → claude-pair-runtime-HHEVB5WF.js.map} +0 -0
- /package/dist/{persistent-session-X427LHOW.js.map → persistent-session-7BQ2OE2R.js.map} +0 -0
- /package/dist/{responsiveness-probe-CFF27A7B.js.map → responsiveness-probe-MUY7HOGQ.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-7BQ2OE2R.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-HHEVB5WF.js.map
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
requireHost,
|
|
38
38
|
safeWriteJsonAtomic,
|
|
39
39
|
setConfigHash
|
|
40
|
-
} from "../chunk-
|
|
40
|
+
} from "../chunk-KN77CF2P.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-NFO3GOL3.js";
|
|
126
126
|
import {
|
|
127
127
|
reapOrphanChannelMcps
|
|
128
128
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -6509,7 +6509,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
6509
6509
|
var lastVersionCheckAt = 0;
|
|
6510
6510
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
6511
6511
|
var lastResponsivenessProbeAt = 0;
|
|
6512
|
-
var agtCliVersion = true ? "0.28.
|
|
6512
|
+
var agtCliVersion = true ? "0.28.246" : "dev";
|
|
6513
6513
|
function resolveBrewPath(execFileSync2) {
|
|
6514
6514
|
try {
|
|
6515
6515
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -7359,7 +7359,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
7359
7359
|
if (codeNames.length === 0) return;
|
|
7360
7360
|
void (async () => {
|
|
7361
7361
|
try {
|
|
7362
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
7362
|
+
const { collectDiagnostics } = await import("../persistent-session-7BQ2OE2R.js");
|
|
7363
7363
|
await api.post("/host/heartbeat", {
|
|
7364
7364
|
host_id: hostId,
|
|
7365
7365
|
agent_diagnostics: collectDiagnostics(codeNames)
|
|
@@ -7457,7 +7457,7 @@ async function pollCycle() {
|
|
|
7457
7457
|
}
|
|
7458
7458
|
try {
|
|
7459
7459
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
7460
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
7460
|
+
const { collectDiagnostics } = await import("../persistent-session-7BQ2OE2R.js");
|
|
7461
7461
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
7462
7462
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
|
|
7463
7463
|
let tailscaleHostname;
|
|
@@ -7605,7 +7605,7 @@ async function pollCycle() {
|
|
|
7605
7605
|
const {
|
|
7606
7606
|
collectResponsivenessProbes,
|
|
7607
7607
|
getResponsivenessIntervalMs
|
|
7608
|
-
} = await import("../responsiveness-probe-
|
|
7608
|
+
} = await import("../responsiveness-probe-MUY7HOGQ.js");
|
|
7609
7609
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
7610
7610
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
7611
7611
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -7637,7 +7637,7 @@ async function pollCycle() {
|
|
|
7637
7637
|
collectResponsivenessProbes,
|
|
7638
7638
|
livePendingInboundOldestAgeSeconds,
|
|
7639
7639
|
parkPendingInbound
|
|
7640
|
-
} = await import("../responsiveness-probe-
|
|
7640
|
+
} = await import("../responsiveness-probe-MUY7HOGQ.js");
|
|
7641
7641
|
const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
|
|
7642
7642
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
7643
7643
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -10452,7 +10452,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
10452
10452
|
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}`));
|
|
10453
10453
|
void (async () => {
|
|
10454
10454
|
try {
|
|
10455
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
10455
|
+
const { collectDiagnostics } = await import("../persistent-session-7BQ2OE2R.js");
|
|
10456
10456
|
await api.post("/host/heartbeat", {
|
|
10457
10457
|
host_id: hostId,
|
|
10458
10458
|
agent_diagnostics: collectDiagnostics([codeName])
|
|
@@ -10502,7 +10502,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
10502
10502
|
}
|
|
10503
10503
|
try {
|
|
10504
10504
|
const hostId = await getHostId();
|
|
10505
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
10505
|
+
const { collectDiagnostics } = await import("../persistent-session-7BQ2OE2R.js");
|
|
10506
10506
|
await api.post("/host/heartbeat", {
|
|
10507
10507
|
host_id: hostId,
|
|
10508
10508
|
agent_diagnostics: collectDiagnostics([codeName])
|
|
@@ -10893,7 +10893,7 @@ async function processClaudePairSessions(agents) {
|
|
|
10893
10893
|
killPairSession,
|
|
10894
10894
|
pairTmuxSession,
|
|
10895
10895
|
finalizeClaudePairOnboarding
|
|
10896
|
-
} = await import("../claude-pair-runtime-
|
|
10896
|
+
} = await import("../claude-pair-runtime-HHEVB5WF.js");
|
|
10897
10897
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
10898
10898
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
10899
10899
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
package/dist/mcp/origami.js
CHANGED
|
@@ -39832,6 +39832,18 @@ var FLAG_REGISTRY = [
|
|
|
39832
39832
|
defaultValue: false,
|
|
39833
39833
|
public: true
|
|
39834
39834
|
},
|
|
39835
|
+
{
|
|
39836
|
+
key: "agent-offers",
|
|
39837
|
+
description: "Agent Routines and the Offers surface (ADR-0041 D4a/D8, ENG-7417): the capability-discovery surface where an agent earns the right to propose a Routine (an Offer) from observed repetition, elicitation, or its template. off = the surface is fully dark (no candidate intake, no Offer creation, no delivery). shadow = the observer runs and would-be Offers are written with a shadow marker, visible to platform admins only, never delivered - the D4a calibration mode that must hit the precision bar on real transcripts before any org goes live. on = the full surface for the org. Evaluated API-side only (the observed feeder additionally requires the memory-extraction flag, whose pipeline it rides), so no host materialisation seam is needed. Flipping off kills candidate intake and Offer delivery but NOT already accepted Routines - their runtimes are ordinary scheduled tasks / kanban templates the user consented to; disabling those is an explicit per-routine revoke (D5b). Ships dark; per-org rollout from the admin Feature Flags page.",
|
|
39838
|
+
flagType: "enum",
|
|
39839
|
+
allowedValues: ["off", "shadow", "on"],
|
|
39840
|
+
// Declared safe value is `off` (fully dark). Fail-safe direction: a flag-DB
|
|
39841
|
+
// read error must never start accumulating routine candidates or delivering
|
|
39842
|
+
// proactive Offers on its own. Shadow is a deliberate per-org calibration
|
|
39843
|
+
// step, not the absent-flag fallback. No envVar - net-new API-side control
|
|
39844
|
+
// with no pre-flags env gate to migrate (ADR-0022 / check-new-env-gates.sh).
|
|
39845
|
+
defaultValue: "off"
|
|
39846
|
+
},
|
|
39835
39847
|
{
|
|
39836
39848
|
key: "channel-quarantine-mode",
|
|
39837
39849
|
description: "Optional-channel quarantine (ENG-5932): off = disabled, shadow = log matches only, enforce = quarantine.",
|
|
@@ -16946,7 +16946,7 @@ function describeLivePending(registry2, now) {
|
|
|
16946
16946
|
}).join("; ");
|
|
16947
16947
|
}
|
|
16948
16948
|
function resolveReplyBinding(input) {
|
|
16949
|
-
const { mode, args, registry: registry2 } = input;
|
|
16949
|
+
const { mode, args, registry: registry2, knownThread } = input;
|
|
16950
16950
|
const now = input.now ?? Date.now();
|
|
16951
16951
|
const modelChannel = args.channel;
|
|
16952
16952
|
const modelThread = args.thread_ts;
|
|
@@ -16969,7 +16969,7 @@ function resolveReplyBinding(input) {
|
|
|
16969
16969
|
unknownInboundId: true
|
|
16970
16970
|
};
|
|
16971
16971
|
}
|
|
16972
|
-
return classifyByCoords(mode, args, registry2, now, true);
|
|
16972
|
+
return classifyByCoords(mode, args, registry2, now, true, knownThread);
|
|
16973
16973
|
}
|
|
16974
16974
|
if (args.proactive === true) {
|
|
16975
16975
|
return {
|
|
@@ -16979,9 +16979,9 @@ function resolveReplyBinding(input) {
|
|
|
16979
16979
|
unknownInboundId: false
|
|
16980
16980
|
};
|
|
16981
16981
|
}
|
|
16982
|
-
return classifyByCoords(mode, args, registry2, now, false);
|
|
16982
|
+
return classifyByCoords(mode, args, registry2, now, false, knownThread);
|
|
16983
16983
|
}
|
|
16984
|
-
function classifyByCoords(mode, args, registry2, now, unknownInboundId) {
|
|
16984
|
+
function classifyByCoords(mode, args, registry2, now, unknownInboundId, knownThread) {
|
|
16985
16985
|
const modelChannel = args.channel;
|
|
16986
16986
|
const modelThread = args.thread_ts;
|
|
16987
16987
|
const matched = matchByCoords(registry2, modelChannel, args.message_ts, modelThread);
|
|
@@ -17001,6 +17001,15 @@ function classifyByCoords(mode, args, registry2, now, unknownInboundId) {
|
|
|
17001
17001
|
unknownInboundId
|
|
17002
17002
|
};
|
|
17003
17003
|
}
|
|
17004
|
+
const participatesInThread = !!modelChannel && (!!modelThread && knownThread?.(modelChannel, modelThread) || !!args.message_ts && knownThread?.(modelChannel, args.message_ts)) === true;
|
|
17005
|
+
if (participatesInThread) {
|
|
17006
|
+
return {
|
|
17007
|
+
channel: modelChannel,
|
|
17008
|
+
threadTs: modelThread,
|
|
17009
|
+
classification: "known_thread",
|
|
17010
|
+
unknownInboundId
|
|
17011
|
+
};
|
|
17012
|
+
}
|
|
17004
17013
|
const decision = {
|
|
17005
17014
|
channel: modelChannel,
|
|
17006
17015
|
threadTs: modelThread,
|
|
@@ -20469,7 +20478,16 @@ mcp.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
20469
20478
|
const binding = resolveReplyBinding({
|
|
20470
20479
|
mode: bindingMode,
|
|
20471
20480
|
args: { inbound_id, channel, thread_ts, message_ts, proactive },
|
|
20472
|
-
registry: slackInboundRegistry
|
|
20481
|
+
registry: slackInboundRegistry,
|
|
20482
|
+
// ENG-7409: the persisted bot_posted thread-participation signal (survives
|
|
20483
|
+
// restart via loadThreadStore). A reply into a thread the agent has posted
|
|
20484
|
+
// in is a legitimate follow-up, so it must not be flagged unknown_target
|
|
20485
|
+
// even when no live inbound marker survives - this is what stops warn from
|
|
20486
|
+
// nagging (and enforce from blocking) ordinary in-thread conversation.
|
|
20487
|
+
knownThread: (c, t) => {
|
|
20488
|
+
const k = buildThreadKey(c, t);
|
|
20489
|
+
return !!k && !!trackedThreads.get(k)?.bot_posted;
|
|
20490
|
+
}
|
|
20473
20491
|
});
|
|
20474
20492
|
recordReplyBindingClassification(SLACK_AGENT_DIR, "slack", {
|
|
20475
20493
|
classification: binding.classification,
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
writeDirectChatSessionState,
|
|
37
37
|
writeEgressAllowlist,
|
|
38
38
|
writePersistentClaudeWrapper
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-NFO3GOL3.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-7BQ2OE2R.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NFO3GOL3.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-MUY7HOGQ.js.map
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|