@integrity-labs/agt-cli 0.28.477 → 0.28.479
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-INPROLVI.js → chunk-MLA5NJWV.js} +3 -3
- package/dist/{chunk-6GMNDBOU.js → chunk-WANZSIX6.js} +5 -1
- package/dist/chunk-WANZSIX6.js.map +1 -0
- package/dist/{claude-pair-runtime-S7CBJ5ML.js → claude-pair-runtime-UA3ZZQ2V.js} +2 -2
- package/dist/lib/manager-worker.js +19 -12
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/mcp/direct-chat-channel.js +36 -11
- package/dist/mcp/origami.js +4 -0
- package/dist/mcp/slack-channel.js +30 -5
- package/dist/mcp/telegram-channel.js +23 -4
- package/dist/{persistent-session-3DFUJUF2.js → persistent-session-FQKD2RA6.js} +2 -2
- package/dist/{responsiveness-probe-QBKBBHYD.js → responsiveness-probe-JQUE3XQG.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-6GMNDBOU.js.map +0 -1
- /package/dist/{chunk-INPROLVI.js.map → chunk-MLA5NJWV.js.map} +0 -0
- /package/dist/{claude-pair-runtime-S7CBJ5ML.js.map → claude-pair-runtime-UA3ZZQ2V.js.map} +0 -0
- /package/dist/{persistent-session-3DFUJUF2.js.map → persistent-session-FQKD2RA6.js.map} +0 -0
- /package/dist/{responsiveness-probe-QBKBBHYD.js.map → responsiveness-probe-JQUE3XQG.js.map} +0 -0
|
@@ -33505,6 +33505,10 @@ var INSTALLABLE_NATIVE_INTEGRATION_IDS = INSTALLABLE_NATIVE_INTEGRATIONS.map((i)
|
|
|
33505
33505
|
var MB2 = 1024 * 1024;
|
|
33506
33506
|
var DIRECT_CHAT_UPLOAD_MAX_BYTES = 10 * MB2;
|
|
33507
33507
|
|
|
33508
|
+
// ../core/dist/direct-chat/notice-display.js
|
|
33509
|
+
var AGENT_DIRECTED_NOTICE_KINDS = ["scheduled_task_nudge", "kanban_check"];
|
|
33510
|
+
var AGENT_DIRECTED_KIND_SET = new Set(AGENT_DIRECTED_NOTICE_KINDS);
|
|
33511
|
+
|
|
33508
33512
|
// ../core/dist/onboarding/state-machine.js
|
|
33509
33513
|
var AREA_ORDER = [
|
|
33510
33514
|
"framing",
|
|
@@ -36224,6 +36228,31 @@ import { createHash } from "crypto";
|
|
|
36224
36228
|
function shouldArmWatch(opts) {
|
|
36225
36229
|
return !opts.isBot && opts.replyOwed;
|
|
36226
36230
|
}
|
|
36231
|
+
function decideUsageLimitCursorCall(opts) {
|
|
36232
|
+
if (opts.throttled) {
|
|
36233
|
+
return {
|
|
36234
|
+
route: "/host/direct-chat/consume",
|
|
36235
|
+
body: {
|
|
36236
|
+
agent_id: opts.agentId,
|
|
36237
|
+
session_id: opts.sessionId,
|
|
36238
|
+
message_ids: [opts.messageId]
|
|
36239
|
+
}
|
|
36240
|
+
};
|
|
36241
|
+
}
|
|
36242
|
+
return {
|
|
36243
|
+
route: "/host/direct-chat/reply",
|
|
36244
|
+
body: {
|
|
36245
|
+
agent_id: opts.agentId,
|
|
36246
|
+
session_id: opts.sessionId,
|
|
36247
|
+
content: opts.noticeText,
|
|
36248
|
+
message_ids: [opts.messageId],
|
|
36249
|
+
// ENG-8274: a cap refusal is the SYSTEM speaking, not the agent.
|
|
36250
|
+
// Orthogonal to message_ids — consuming the cursor is about delivery,
|
|
36251
|
+
// `kind` is about who authored this and whether a reply is owed.
|
|
36252
|
+
kind: "notice"
|
|
36253
|
+
}
|
|
36254
|
+
};
|
|
36255
|
+
}
|
|
36227
36256
|
function describeUnparsedRefusal(text) {
|
|
36228
36257
|
if (!text) return "refusal=absent";
|
|
36229
36258
|
const hash = createHash("sha256").update(text).digest("hex").slice(0, 12);
|
|
@@ -36958,17 +36987,13 @@ function armUsageLimitWatch(args) {
|
|
|
36958
36987
|
cooldownMs: DIRECT_CHAT_MAINTENANCE_COOLDOWN_MS,
|
|
36959
36988
|
now: Date.now()
|
|
36960
36989
|
});
|
|
36961
|
-
const route
|
|
36962
|
-
|
|
36963
|
-
|
|
36964
|
-
|
|
36965
|
-
|
|
36966
|
-
|
|
36967
|
-
|
|
36968
|
-
// Orthogonal to message_ids — consuming the cursor is about delivery,
|
|
36969
|
-
// `kind` is about who authored this and whether a reply is owed.
|
|
36970
|
-
kind: "notice"
|
|
36971
|
-
} : { agent_id: AGT_AGENT_ID, session_id: args.sessionId, message_ids: [args.messageId] };
|
|
36990
|
+
const { route, body } = decideUsageLimitCursorCall({
|
|
36991
|
+
throttled: !throttle.reply,
|
|
36992
|
+
agentId: AGT_AGENT_ID,
|
|
36993
|
+
sessionId: args.sessionId,
|
|
36994
|
+
messageId: args.messageId,
|
|
36995
|
+
noticeText: buildUsageLimitReplyText(refusal.resetsAt)
|
|
36996
|
+
});
|
|
36972
36997
|
const res = await apiPost(route, body);
|
|
36973
36998
|
const data = await res.json().catch(() => ({}));
|
|
36974
36999
|
if (res.ok && data.error == null) {
|
package/dist/mcp/origami.js
CHANGED
|
@@ -39832,6 +39832,10 @@ var INSTALLABLE_NATIVE_INTEGRATION_IDS = INSTALLABLE_NATIVE_INTEGRATIONS.map((i)
|
|
|
39832
39832
|
var MB2 = 1024 * 1024;
|
|
39833
39833
|
var DIRECT_CHAT_UPLOAD_MAX_BYTES = 10 * MB2;
|
|
39834
39834
|
|
|
39835
|
+
// ../core/dist/direct-chat/notice-display.js
|
|
39836
|
+
var AGENT_DIRECTED_NOTICE_KINDS = ["scheduled_task_nudge", "kanban_check"];
|
|
39837
|
+
var AGENT_DIRECTED_KIND_SET = new Set(AGENT_DIRECTED_NOTICE_KINDS);
|
|
39838
|
+
|
|
39835
39839
|
// ../core/dist/onboarding/state-machine.js
|
|
39836
39840
|
var AREA_ORDER = [
|
|
39837
39841
|
"framing",
|
|
@@ -33727,6 +33727,10 @@ var INSTALLABLE_NATIVE_INTEGRATION_IDS = INSTALLABLE_NATIVE_INTEGRATIONS.map((i)
|
|
|
33727
33727
|
var MB2 = 1024 * 1024;
|
|
33728
33728
|
var DIRECT_CHAT_UPLOAD_MAX_BYTES = 10 * MB2;
|
|
33729
33729
|
|
|
33730
|
+
// ../core/dist/direct-chat/notice-display.js
|
|
33731
|
+
var AGENT_DIRECTED_NOTICE_KINDS = ["scheduled_task_nudge", "kanban_check"];
|
|
33732
|
+
var AGENT_DIRECTED_KIND_SET = new Set(AGENT_DIRECTED_NOTICE_KINDS);
|
|
33733
|
+
|
|
33730
33734
|
// ../core/dist/onboarding/state-machine.js
|
|
33731
33735
|
var AREA_ORDER = [
|
|
33732
33736
|
"framing",
|
|
@@ -36955,6 +36959,18 @@ function decideRefusalAction(opts) {
|
|
|
36955
36959
|
if (!refusal.resetsAt) return "missing-reset";
|
|
36956
36960
|
return "notify";
|
|
36957
36961
|
}
|
|
36962
|
+
function describeNoticeOutcome(outcome) {
|
|
36963
|
+
switch (outcome) {
|
|
36964
|
+
case "posted":
|
|
36965
|
+
return "reported";
|
|
36966
|
+
case "throttled":
|
|
36967
|
+
return "notice throttled";
|
|
36968
|
+
case "failed":
|
|
36969
|
+
return "notice failed";
|
|
36970
|
+
case "skipped":
|
|
36971
|
+
return "no notice (unaddressable)";
|
|
36972
|
+
}
|
|
36973
|
+
}
|
|
36958
36974
|
function describeUnparsedRefusal(text) {
|
|
36959
36975
|
if (!text) return "refusal=absent";
|
|
36960
36976
|
const hash = createHash("sha256").update(text).digest("hex").slice(0, 12);
|
|
@@ -39939,8 +39955,8 @@ async function maybeSendMaintenanceNotice(args) {
|
|
|
39939
39955
|
}
|
|
39940
39956
|
var SLACK_USAGE_LIMIT_NOTICE_CACHE = /* @__PURE__ */ new Map();
|
|
39941
39957
|
async function maybeSendUsageLimitNotice(args) {
|
|
39942
|
-
if (!BOT_TOKEN) return;
|
|
39943
|
-
if (!args.channel || !args.senderId) return;
|
|
39958
|
+
if (!BOT_TOKEN) return "skipped";
|
|
39959
|
+
if (!args.channel || !args.senderId) return "skipped";
|
|
39944
39960
|
const key2 = `${args.channel}|${args.senderId}|usage_limit`;
|
|
39945
39961
|
const decision = decideDeclineReply({
|
|
39946
39962
|
cache: SLACK_USAGE_LIMIT_NOTICE_CACHE,
|
|
@@ -39953,7 +39969,7 @@ async function maybeSendUsageLimitNotice(args) {
|
|
|
39953
39969
|
`slack-channel(${AGENT_CODE_NAME}): usage-limit notice suppressed by cooldown (channel=${redactSlackId(args.channel)}, sender=${redactSlackId(args.senderId)}, remaining=${decision.remainingMs}ms)
|
|
39954
39970
|
`
|
|
39955
39971
|
);
|
|
39956
|
-
return;
|
|
39972
|
+
return "throttled";
|
|
39957
39973
|
}
|
|
39958
39974
|
const controller = new AbortController();
|
|
39959
39975
|
const timeoutId = setTimeout(() => controller.abort(), 1e4);
|
|
@@ -39978,7 +39994,16 @@ async function maybeSendUsageLimitNotice(args) {
|
|
|
39978
39994
|
`slack-channel(${AGENT_CODE_NAME}): usage-limit notice post failed: ${data.error ?? "unknown"}
|
|
39979
39995
|
`
|
|
39980
39996
|
);
|
|
39997
|
+
return "failed";
|
|
39981
39998
|
}
|
|
39999
|
+
return "posted";
|
|
40000
|
+
} catch (err) {
|
|
40001
|
+
SLACK_USAGE_LIMIT_NOTICE_CACHE.delete(key2);
|
|
40002
|
+
process.stderr.write(
|
|
40003
|
+
`slack-channel(${AGENT_CODE_NAME}): usage-limit notice failed: ${err.message}
|
|
40004
|
+
`
|
|
40005
|
+
);
|
|
40006
|
+
return "failed";
|
|
39982
40007
|
} finally {
|
|
39983
40008
|
clearTimeout(timeoutId);
|
|
39984
40009
|
}
|
|
@@ -39998,7 +40023,7 @@ function armSlackUsageLimitWatch(args) {
|
|
|
39998
40023
|
}
|
|
39999
40024
|
const resetsAt = refusal?.resetsAt;
|
|
40000
40025
|
if (!resetsAt) return;
|
|
40001
|
-
await maybeSendUsageLimitNotice({
|
|
40026
|
+
const outcome = await maybeSendUsageLimitNotice({
|
|
40002
40027
|
channel: args.channel,
|
|
40003
40028
|
senderId: args.senderId,
|
|
40004
40029
|
threadTs: args.threadTs,
|
|
@@ -40008,7 +40033,7 @@ function armSlackUsageLimitWatch(args) {
|
|
|
40008
40033
|
clearSlackPendingMarkerByMessageTs2(args.channel, args.messageTs);
|
|
40009
40034
|
}
|
|
40010
40035
|
process.stderr.write(
|
|
40011
|
-
`slack-channel(${AGENT_CODE_NAME}): [usage-limit-reactive]
|
|
40036
|
+
`slack-channel(${AGENT_CODE_NAME}): [usage-limit-reactive] ${describeNoticeOutcome(outcome)} refusal for channel=${redactSlackId(args.channel)} ts=${redactSlackId(args.messageTs)} resets=${resetsAt.toISOString()}
|
|
40012
40037
|
`
|
|
40013
40038
|
);
|
|
40014
40039
|
} catch (err) {
|
|
@@ -34053,6 +34053,10 @@ var INSTALLABLE_NATIVE_INTEGRATION_IDS = INSTALLABLE_NATIVE_INTEGRATIONS.map((i)
|
|
|
34053
34053
|
var MB2 = 1024 * 1024;
|
|
34054
34054
|
var DIRECT_CHAT_UPLOAD_MAX_BYTES = 10 * MB2;
|
|
34055
34055
|
|
|
34056
|
+
// ../core/dist/direct-chat/notice-display.js
|
|
34057
|
+
var AGENT_DIRECTED_NOTICE_KINDS = ["scheduled_task_nudge", "kanban_check"];
|
|
34058
|
+
var AGENT_DIRECTED_KIND_SET = new Set(AGENT_DIRECTED_NOTICE_KINDS);
|
|
34059
|
+
|
|
34056
34060
|
// ../core/dist/onboarding/state-machine.js
|
|
34057
34061
|
var AREA_ORDER = [
|
|
34058
34062
|
"framing",
|
|
@@ -37763,6 +37767,18 @@ function decideRefusalAction(opts) {
|
|
|
37763
37767
|
if (!refusal.resetsAt) return "missing-reset";
|
|
37764
37768
|
return "notify";
|
|
37765
37769
|
}
|
|
37770
|
+
function describeNoticeOutcome(outcome) {
|
|
37771
|
+
switch (outcome) {
|
|
37772
|
+
case "posted":
|
|
37773
|
+
return "reported";
|
|
37774
|
+
case "throttled":
|
|
37775
|
+
return "notice throttled";
|
|
37776
|
+
case "failed":
|
|
37777
|
+
return "notice failed";
|
|
37778
|
+
case "skipped":
|
|
37779
|
+
return "no notice (unaddressable)";
|
|
37780
|
+
}
|
|
37781
|
+
}
|
|
37766
37782
|
function describeUnparsedRefusal(text) {
|
|
37767
37783
|
if (!text) return "refusal=absent";
|
|
37768
37784
|
const hash = createHash("sha256").update(text).digest("hex").slice(0, 12);
|
|
@@ -38992,7 +39008,7 @@ async function maybeSendTelegramMaintenanceNotice(args) {
|
|
|
38992
39008
|
}
|
|
38993
39009
|
var TELEGRAM_USAGE_LIMIT_NOTICE_CACHE = /* @__PURE__ */ new Map();
|
|
38994
39010
|
async function maybeSendTelegramUsageLimitNotice(args) {
|
|
38995
|
-
if (args.senderId === void 0) return;
|
|
39011
|
+
if (args.senderId === void 0) return "skipped";
|
|
38996
39012
|
const key2 = `${args.chatId}|${args.senderId}|usage_limit`;
|
|
38997
39013
|
const decision = decideDeclineReply({
|
|
38998
39014
|
cache: TELEGRAM_USAGE_LIMIT_NOTICE_CACHE,
|
|
@@ -39005,7 +39021,7 @@ async function maybeSendTelegramUsageLimitNotice(args) {
|
|
|
39005
39021
|
`telegram-channel(${AGENT_CODE_NAME}): usage-limit notice suppressed by cooldown (chat=${redactId(String(args.chatId))}, remaining=${decision.remainingMs}ms)
|
|
39006
39022
|
`
|
|
39007
39023
|
);
|
|
39008
|
-
return;
|
|
39024
|
+
return "throttled";
|
|
39009
39025
|
}
|
|
39010
39026
|
try {
|
|
39011
39027
|
const resp = await telegramApiCall(
|
|
@@ -39023,13 +39039,16 @@ async function maybeSendTelegramUsageLimitNotice(args) {
|
|
|
39023
39039
|
`telegram-channel(${AGENT_CODE_NAME}): usage-limit notice rejected (chat=${redactId(String(args.chatId))}): ${resp.description ?? "unknown"}
|
|
39024
39040
|
`
|
|
39025
39041
|
);
|
|
39042
|
+
return "failed";
|
|
39026
39043
|
}
|
|
39044
|
+
return "posted";
|
|
39027
39045
|
} catch (err) {
|
|
39028
39046
|
TELEGRAM_USAGE_LIMIT_NOTICE_CACHE.delete(key2);
|
|
39029
39047
|
process.stderr.write(
|
|
39030
39048
|
`telegram-channel(${AGENT_CODE_NAME}): usage-limit notice failed: ${err.message}
|
|
39031
39049
|
`
|
|
39032
39050
|
);
|
|
39051
|
+
return "failed";
|
|
39033
39052
|
}
|
|
39034
39053
|
}
|
|
39035
39054
|
function armTelegramUsageLimitWatch(args) {
|
|
@@ -39047,7 +39066,7 @@ function armTelegramUsageLimitWatch(args) {
|
|
|
39047
39066
|
}
|
|
39048
39067
|
const resetsAt = refusal?.resetsAt;
|
|
39049
39068
|
if (!resetsAt) return;
|
|
39050
|
-
await maybeSendTelegramUsageLimitNotice({
|
|
39069
|
+
const outcome = await maybeSendTelegramUsageLimitNotice({
|
|
39051
39070
|
chatId: args.chatId,
|
|
39052
39071
|
senderId: args.senderId,
|
|
39053
39072
|
...args.messageThreadId != null ? { messageThreadId: args.messageThreadId } : {},
|
|
@@ -39055,7 +39074,7 @@ function armTelegramUsageLimitWatch(args) {
|
|
|
39055
39074
|
});
|
|
39056
39075
|
clearPendingMessage(args.chatId, args.sinceMs);
|
|
39057
39076
|
process.stderr.write(
|
|
39058
|
-
`telegram-channel(${AGENT_CODE_NAME}): [usage-limit-reactive]
|
|
39077
|
+
`telegram-channel(${AGENT_CODE_NAME}): [usage-limit-reactive] ${describeNoticeOutcome(outcome)} refusal for chat=${redactId(args.chatId)} resets=${resetsAt.toISOString()}
|
|
39059
39078
|
`
|
|
39060
39079
|
);
|
|
39061
39080
|
} catch (err) {
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
writeDirectChatSessionState,
|
|
37
37
|
writeEgressAllowlist,
|
|
38
38
|
writePersistentClaudeWrapper
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-WANZSIX6.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-FQKD2RA6.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WANZSIX6.js";
|
|
4
4
|
import "./chunk-XWVM4KPK.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/responsiveness-probe.ts
|
|
@@ -596,4 +596,4 @@ export {
|
|
|
596
596
|
readAndResetSlackReplyBindingClassifications,
|
|
597
597
|
readAndResetSlackReplyTargetClassifications
|
|
598
598
|
};
|
|
599
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
599
|
+
//# sourceMappingURL=responsiveness-probe-JQUE3XQG.js.map
|