@desplega.ai/agent-swarm 1.151.0 → 1.152.1
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/README.md +3 -1
- package/dist/{acp-adapter-ex8hzjfc.js → acp-adapter-4s7q25ft.js} +1 -1
- package/dist/{actions-2bgpyhww.js → actions-cs6rhmvc.js} +13 -13
- package/dist/{app-1706zhr1.js → app-j54aq0dj.js} +3 -3
- package/dist/{assistant-bavke5p7.js → assistant-w1pgn7vf.js} +14 -14
- package/dist/{boot-reembed-3cmrrmpa.js → boot-reembed-42vgkrrj.js} +4 -4
- package/dist/{boot-reembed-nafcmmmc.js → boot-reembed-smy30z32.js} +3 -3
- package/dist/{boot-scrub-logs-cd6a2sq0.js → boot-scrub-logs-b6s72fsw.js} +2 -2
- package/dist/{claude-adapter-wfp2gzvz.js → claude-adapter-fh7rmcj9.js} +3 -3
- package/dist/{claude-sdk-session-bht9jjak.js → claude-sdk-session-xhynatn9.js} +3 -3
- package/dist/{cli-f1wky6zp.js → cli-3g61md6v.js} +1 -1
- package/dist/{cli-a1z3h107.js → cli-3pft2z6r.js} +4 -4
- package/dist/{cli-5tpgq60f.js → cli-72tgtzr1.js} +152 -23
- package/dist/{cli-0qb1z6s2.js → cli-7bwaerjt.js} +1 -1
- package/dist/{cli-czjtgfys.js → cli-b4dyetqt.js} +2 -2
- package/dist/{cli-s14agm5s.js → cli-bdt7w021.js} +12 -3
- package/dist/{cli-sjaae6ff.js → cli-dsyg66vt.js} +3 -3
- package/dist/{cli-2tbvf1z1.js → cli-ftdjz1mk.js} +8 -8
- package/dist/{cli-zkxymas5.js → cli-gfez0qmk.js} +1 -1
- package/dist/{cli-q88st9aj.js → cli-gxf2ebyz.js} +2 -2
- package/dist/{cli-ppm4975n.js → cli-jtvs5m8q.js} +1 -1
- package/dist/{cli-7tgcstn2.js → cli-jytf5mw9.js} +2 -2
- package/dist/{cli-g69fdc9g.js → cli-kf8qp2vf.js} +2 -2
- package/dist/{cli-5jd2z7av.js → cli-ks8a1cgq.js} +6 -2
- package/dist/{cli-gjyvhmmh.js → cli-ng4q6a9t.js} +5 -5
- package/dist/{cli-3v9xhjcn.js → cli-sakxd2rg.js} +2 -2
- package/dist/{cli-frcta2w4.js → cli-sqmh7jj1.js} +1 -1
- package/dist/{cli-vwm416m6.js → cli-v9sk4dzw.js} +1 -1
- package/dist/{cli-j9xczhaq.js → cli-vbk025fm.js} +1 -1
- package/dist/{cli-r2q6pevn.js → cli-wfve107r.js} +43 -21
- package/dist/{cli-9004vfdf.js → cli-y8tayczk.js} +2 -2
- package/dist/{cli-gbfwcd3k.js → cli-zfzznn7c.js} +7 -6
- package/dist/cli.js +11 -11
- package/dist/{codex-adapter-jjjk8w4m.js → codex-adapter-k6yq95sn.js} +2 -2
- package/dist/{codex-session-runner-nd6ayxkx.js → codex-session-runner-3rp84pk8.js} +2 -2
- package/dist/{commands-9v4psyq1.js → commands-pbr5jzy5.js} +2 -2
- package/dist/{db-wnt58tpe.js → db-z0xaa59a.js} +2 -2
- package/dist/{dispatcher-05jh1aqk.js → dispatcher-pwpgsj0x.js} +12 -12
- package/dist/{handlers-tw90pkh5.js → handlers-5mzk4mbg.js} +15 -15
- package/dist/{hook-sxe3r349.js → hook-8bz33zee.js} +1 -1
- package/dist/{hook-123e2scb.js → hook-kbh84zb1.js} +2 -2
- package/dist/{http-ecsar8ez.js → http-pppxg5vr.js} +100 -36
- package/dist/{index-hw26vj40.js → index-68bd9b5f.js} +12 -12
- package/dist/{index-16js521z.js → index-k1hq1qt6.js} +8 -8
- package/dist/{index-zj518gf9.js → index-mjpxsr6k.js} +13 -13
- package/dist/{index-ymn7em0p.js → index-y0te09pn.js} +3 -3
- package/dist/{index-nnrbpcjp.js → index-z0zwjtkn.js} +12 -12
- package/dist/{keepalive-asqtcm4y.js → keepalive-xvmwnh1d.js} +4 -4
- package/dist/{lead-xbfr7fvt.js → lead-pf8nvxt8.js} +16 -16
- package/dist/{maintenance-qma55qvw.js → maintenance-jk4q0wgg.js} +4 -4
- package/dist/{oauth-refresh-sweep-3s04c6qw.js → oauth-refresh-sweep-6207x9sj.js} +3 -3
- package/dist/{onboard-drskd386.js → onboard-b0csgm0q.js} +2 -2
- package/dist/{otel-impl-943c96er.js → otel-impl-b6rfehth.js} +1 -1
- package/dist/{pricing-refresh-mx51az05.js → pricing-refresh-4e201wtd.js} +4 -4
- package/dist/{rbac-roles-wcmrg6sv.js → rbac-roles-mkc5n5qa.js} +4 -4
- package/dist/{rbac-roles-78baecqd.js → rbac-roles-zp6e4geh.js} +3 -3
- package/dist/{render-v2-8zjntgf5.js → render-v2-4fazz9tf.js} +3 -3
- package/dist/{seed-pricing-jqjs6cws.js → seed-pricing-thxpn9vn.js} +3 -3
- package/dist/{setup-4pks0vfk.js → setup-wb0z8cat.js} +2 -2
- package/dist/{work-objects-wangt792.js → work-objects-h3498kwe.js} +18 -17
- package/dist/{worker-p2mr422x.js → worker-2m2tzxp3.js} +16 -16
- package/openapi.json +5 -5
- package/package.json +1 -1
- package/src/agentmail/inbound-archive.ts +71 -0
- package/src/agentmail/types.ts +2 -0
- package/src/be/db.ts +1 -1
- package/src/be/scripts/typecheck.ts +4 -0
- package/src/be/swarm-config-guard.ts +7 -1
- package/src/extensions/lifecycle.ts +26 -4
- package/src/http/extensions.ts +8 -3
- package/src/http/webhooks.ts +13 -5
- package/src/rbac/legacy-policy.ts +13 -1
- package/src/scripts-runtime/sdk-allowlist.ts +4 -0
- package/src/scripts-runtime/types/stdlib.d.ts +4 -0
- package/src/scripts-runtime/types/swarm-sdk.d.ts +4 -0
- package/src/server.ts +12 -0
- package/src/slack/render-v2.ts +10 -4
- package/src/slack/responses.ts +7 -4
- package/src/slack/task-output.ts +21 -0
- package/src/slack/watcher.ts +3 -2
- package/src/slack/work-objects.ts +2 -1
- package/src/tests/agentmail-inbound-archive.test.ts +418 -0
- package/src/tests/extensions-example-mcp-install.test.ts +2 -2
- package/src/tests/extensions-http.test.ts +84 -3
- package/src/tests/extensions-lead-equivalence.test.ts +21 -0
- package/src/tests/extensions-mcp-tools.test.ts +111 -3
- package/src/tests/fixtures/store-progress-malformed-output.json +4 -0
- package/src/tests/rbac-admission-e2e.test.ts +35 -4
- package/src/tests/rbac-e2e-helpers.ts +18 -0
- package/src/tests/rbac-engine.test.ts +2 -2
- package/src/tests/rbac-mcp-admission-e2e.test.ts +22 -4
- package/src/tests/reload-config.test.ts +17 -0
- package/src/tests/scripts-only-gating.test.ts +4 -0
- package/src/tests/slack-render-v2.test.ts +24 -2
- package/src/tests/slack-task-output.test.ts +36 -0
- package/src/tests/store-progress-attachments-handler.test.ts +100 -1
- package/src/tests/swarm-config-reserved-keys.test.ts +6 -1
- package/src/tests/tool-annotations.test.ts +1 -1
- package/src/tools/extension-activate-version.ts +38 -0
- package/src/tools/extension-common.ts +2 -1
- package/src/tools/extension-delete.ts +29 -0
- package/src/tools/extension-disable.ts +36 -0
- package/src/tools/extension-enable.ts +36 -0
- package/src/tools/extension-install.ts +2 -2
- package/src/tools/store-progress.ts +30 -0
- package/src/tools/tool-config.ts +5 -1
- package/templates/skills/agent-browser/SKILL.md +84 -0
- package/templates/skills/agent-browser/content.md +21 -0
|
@@ -31,12 +31,12 @@ import {
|
|
|
31
31
|
scriptStdlibTypesWithGeneratedApis,
|
|
32
32
|
typecheckScript,
|
|
33
33
|
typecheckWithAmbient
|
|
34
|
-
} from "./cli-
|
|
34
|
+
} from "./cli-ks8a1cgq.js";
|
|
35
35
|
import {
|
|
36
36
|
checkHeartbeatChecklist,
|
|
37
37
|
runHeartbeatSweep,
|
|
38
38
|
stopHeartbeat
|
|
39
|
-
} from "./cli-
|
|
39
|
+
} from "./cli-y8tayczk.js";
|
|
40
40
|
import {
|
|
41
41
|
AGENT_MAX_TASKS_CONFIG_KEY,
|
|
42
42
|
ALL_CAPABILITIES,
|
|
@@ -285,7 +285,7 @@ import {
|
|
|
285
285
|
verifyWebhookSignature,
|
|
286
286
|
warnIfCorsAllowsAnyOrigin,
|
|
287
287
|
wireHttpSpanLifecycle
|
|
288
|
-
} from "./cli-
|
|
288
|
+
} from "./cli-72tgtzr1.js";
|
|
289
289
|
import"./cli-0z2v4nhw.js";
|
|
290
290
|
import {
|
|
291
291
|
REFERENCES_SOURCE_MAX_LENGTH,
|
|
@@ -302,17 +302,17 @@ import {
|
|
|
302
302
|
import"./cli-3dpj7atn.js";
|
|
303
303
|
import {
|
|
304
304
|
getModelsCatalog
|
|
305
|
-
} from "./cli-
|
|
305
|
+
} from "./cli-kf8qp2vf.js";
|
|
306
306
|
import {
|
|
307
307
|
getUserGrant
|
|
308
|
-
} from "./cli-
|
|
308
|
+
} from "./cli-jytf5mw9.js";
|
|
309
309
|
import {
|
|
310
310
|
can,
|
|
311
311
|
clearAuditSink,
|
|
312
312
|
decideToolAdmission,
|
|
313
313
|
isRbacEnabled,
|
|
314
314
|
setAuditSink
|
|
315
|
-
} from "./cli-
|
|
315
|
+
} from "./cli-zfzznn7c.js";
|
|
316
316
|
import {
|
|
317
317
|
ConnectionAuthInputSchema,
|
|
318
318
|
MAX_SCRIPT_WALL_CLOCK_MS,
|
|
@@ -395,7 +395,7 @@ import {
|
|
|
395
395
|
upsertScriptByName,
|
|
396
396
|
upsertScriptConnection,
|
|
397
397
|
validateDefinition
|
|
398
|
-
} from "./cli-
|
|
398
|
+
} from "./cli-dsyg66vt.js";
|
|
399
399
|
import"./cli-epan13p1.js";
|
|
400
400
|
import {
|
|
401
401
|
detachedProcessGroup,
|
|
@@ -431,14 +431,14 @@ import {
|
|
|
431
431
|
updateAuthorizationIdentity,
|
|
432
432
|
updateOAuthAppById,
|
|
433
433
|
upsertAuthorization
|
|
434
|
-
} from "./cli-
|
|
434
|
+
} from "./cli-vbk025fm.js";
|
|
435
435
|
import {
|
|
436
436
|
normalizeModelKey
|
|
437
|
-
} from "./cli-
|
|
437
|
+
} from "./cli-7bwaerjt.js";
|
|
438
438
|
import"./cli-bsakbbkm.js";
|
|
439
439
|
import {
|
|
440
440
|
searchScripts
|
|
441
|
-
} from "./cli-
|
|
441
|
+
} from "./cli-gxf2ebyz.js";
|
|
442
442
|
import"./cli-51tf7ac3.js";
|
|
443
443
|
import {
|
|
444
444
|
ensure,
|
|
@@ -455,7 +455,7 @@ import {
|
|
|
455
455
|
withRemoteContext,
|
|
456
456
|
withSpan,
|
|
457
457
|
withSpanContext
|
|
458
|
-
} from "./cli-
|
|
458
|
+
} from "./cli-wfve107r.js";
|
|
459
459
|
import"./cli-q51yprfq.js";
|
|
460
460
|
import"./cli-yatxqynm.js";
|
|
461
461
|
import {
|
|
@@ -465,7 +465,7 @@ import {
|
|
|
465
465
|
init_constants as init_constants2,
|
|
466
466
|
init_reranker,
|
|
467
467
|
rerank
|
|
468
|
-
} from "./cli-
|
|
468
|
+
} from "./cli-jtvs5m8q.js";
|
|
469
469
|
import"./cli-fm4ytsdk.js";
|
|
470
470
|
import"./cli-aehm1rbq.js";
|
|
471
471
|
import"./cli-2658f6at.js";
|
|
@@ -605,6 +605,7 @@ import {
|
|
|
605
605
|
backfillSupersedeTaskResumeTaskId,
|
|
606
606
|
cancelTask,
|
|
607
607
|
checkoutPromptTemplate,
|
|
608
|
+
claimKv,
|
|
608
609
|
claimMentions,
|
|
609
610
|
claimOfferedTask,
|
|
610
611
|
claimTask,
|
|
@@ -842,6 +843,7 @@ import {
|
|
|
842
843
|
splitLegacyModelAlias,
|
|
843
844
|
startTask,
|
|
844
845
|
supersedeTask,
|
|
846
|
+
sweepExpiredKv,
|
|
845
847
|
telemetry,
|
|
846
848
|
uninstallMcpServer,
|
|
847
849
|
uninstallSkill,
|
|
@@ -882,7 +884,7 @@ import {
|
|
|
882
884
|
upsertSwarmConfig,
|
|
883
885
|
validateConfigValue,
|
|
884
886
|
withFavoriteFlags
|
|
885
|
-
} from "./cli-
|
|
887
|
+
} from "./cli-bdt7w021.js";
|
|
886
888
|
import {
|
|
887
889
|
IDENTITY_FIELD_BUDGETS,
|
|
888
890
|
IdentityFieldBudgetError,
|
|
@@ -928,7 +930,7 @@ import {
|
|
|
928
930
|
import {
|
|
929
931
|
init_package,
|
|
930
932
|
package_default
|
|
931
|
-
} from "./cli-
|
|
933
|
+
} from "./cli-gfez0qmk.js";
|
|
932
934
|
import {
|
|
933
935
|
init_secret_scrubber,
|
|
934
936
|
registerVolatileSecret,
|
|
@@ -7029,7 +7031,7 @@ var enableRoute = route({
|
|
|
7029
7031
|
pattern: ["api", "extensions", null, "enable"],
|
|
7030
7032
|
operationId: "extensions_enable",
|
|
7031
7033
|
summary: "Enable an extension",
|
|
7032
|
-
description: "Loads and enables an extension.
|
|
7034
|
+
description: "Loads and enables an extension. Available to leads, operators, and dashboard users.",
|
|
7033
7035
|
tags: ["Extensions"],
|
|
7034
7036
|
params: idParamsSchema,
|
|
7035
7037
|
responses: {
|
|
@@ -7046,7 +7048,7 @@ var disableRoute = route({
|
|
|
7046
7048
|
pattern: ["api", "extensions", null, "disable"],
|
|
7047
7049
|
operationId: "extensions_disable",
|
|
7048
7050
|
summary: "Disable an extension",
|
|
7049
|
-
description: "Unloads and disables an extension.
|
|
7051
|
+
description: "Unloads and disables an extension. Available to leads, operators, and dashboard users.",
|
|
7050
7052
|
tags: ["Extensions"],
|
|
7051
7053
|
params: idParamsSchema,
|
|
7052
7054
|
responses: {
|
|
@@ -7062,7 +7064,7 @@ var activateVersionRoute = route({
|
|
|
7062
7064
|
pattern: ["api", "extensions", null, "activate-version"],
|
|
7063
7065
|
operationId: "extensions_activate_version",
|
|
7064
7066
|
summary: "Activate an extension version",
|
|
7065
|
-
description: "Activates a stored version.
|
|
7067
|
+
description: "Activates a stored version. Available to leads, operators, and dashboard users.",
|
|
7066
7068
|
tags: ["Extensions"],
|
|
7067
7069
|
params: idParamsSchema,
|
|
7068
7070
|
body: exports_external.object({ version: exports_external.number().int().min(1) }).strict(),
|
|
@@ -7290,7 +7292,8 @@ async function handleExtensions(req, res, pathSegments, queryParams, agentId) {
|
|
|
7290
7292
|
const writerAgentId = principal.kind === "agent" ? principal.agentId : undefined;
|
|
7291
7293
|
try {
|
|
7292
7294
|
const extension = await enableExtension(parsed.params.id, {
|
|
7293
|
-
by: await resolveHttpAuditUserId(req, writerAgentId)
|
|
7295
|
+
by: await resolveHttpAuditUserId(req, writerAgentId),
|
|
7296
|
+
agentId: writerAgentId
|
|
7294
7297
|
});
|
|
7295
7298
|
enableRoute.respond(res, 200, { extension: redactExtension(extension) });
|
|
7296
7299
|
} catch (error) {
|
|
@@ -7308,7 +7311,8 @@ async function handleExtensions(req, res, pathSegments, queryParams, agentId) {
|
|
|
7308
7311
|
const writerAgentId = principal.kind === "agent" ? principal.agentId : undefined;
|
|
7309
7312
|
try {
|
|
7310
7313
|
const extension = await disableExtension(parsed.params.id, {
|
|
7311
|
-
by: await resolveHttpAuditUserId(req, writerAgentId)
|
|
7314
|
+
by: await resolveHttpAuditUserId(req, writerAgentId),
|
|
7315
|
+
agentId: writerAgentId
|
|
7312
7316
|
});
|
|
7313
7317
|
disableRoute.respond(res, 200, { extension: redactExtension(extension) });
|
|
7314
7318
|
} catch (error) {
|
|
@@ -7326,7 +7330,8 @@ async function handleExtensions(req, res, pathSegments, queryParams, agentId) {
|
|
|
7326
7330
|
const writerAgentId = principal.kind === "agent" ? principal.agentId : undefined;
|
|
7327
7331
|
try {
|
|
7328
7332
|
const extension = await activateVersion(parsed.params.id, parsed.body.version, {
|
|
7329
|
-
by: await resolveHttpAuditUserId(req, writerAgentId)
|
|
7333
|
+
by: await resolveHttpAuditUserId(req, writerAgentId),
|
|
7334
|
+
agentId: writerAgentId
|
|
7330
7335
|
});
|
|
7331
7336
|
activateVersionRoute.respond(res, 200, { extension: redactExtension(extension) });
|
|
7332
7337
|
} catch (error) {
|
|
@@ -25581,6 +25586,57 @@ async function handleUsers(req, res, pathSegments, queryParams) {
|
|
|
25581
25586
|
// src/http/webhooks.ts
|
|
25582
25587
|
init_zod();
|
|
25583
25588
|
|
|
25589
|
+
// src/agentmail/inbound-archive.ts
|
|
25590
|
+
init_db();
|
|
25591
|
+
init_secret_scrubber();
|
|
25592
|
+
import { createHash as createHash3 } from "node:crypto";
|
|
25593
|
+
var INBOUND_ARCHIVE_NAMESPACE = "agentmail-inbound";
|
|
25594
|
+
var INBOUND_ARCHIVE_TTL_MS = 30 * 24 * 60 * 60 * 1000;
|
|
25595
|
+
var text = (value, limit) => typeof value === "string" ? scrubSecrets(value).slice(0, limit) : "";
|
|
25596
|
+
var inboundArchiveKey = (inboxId, messageId) => createHash3("sha256").update(JSON.stringify([inboxId, messageId])).digest("hex");
|
|
25597
|
+
async function archiveInboundMessage(payload) {
|
|
25598
|
+
if (![
|
|
25599
|
+
"message.received",
|
|
25600
|
+
"message.received.unauthenticated",
|
|
25601
|
+
"message.received.blocked",
|
|
25602
|
+
"message.received.spam"
|
|
25603
|
+
].includes(payload.event_type))
|
|
25604
|
+
return;
|
|
25605
|
+
const message = payload.message;
|
|
25606
|
+
if (!message?.inbox_id || !message.message_id || !message.thread_id) {
|
|
25607
|
+
throw new Error("Inbound webhook missing inbox, message or thread ID");
|
|
25608
|
+
}
|
|
25609
|
+
const now = Date.now();
|
|
25610
|
+
await sweepExpiredKv(INBOUND_ARCHIVE_NAMESPACE, now);
|
|
25611
|
+
const minimized = {
|
|
25612
|
+
event_type: payload.event_type,
|
|
25613
|
+
message: {
|
|
25614
|
+
inbox_id: message.inbox_id,
|
|
25615
|
+
message_id: message.message_id,
|
|
25616
|
+
thread_id: message.thread_id,
|
|
25617
|
+
from_: text(Array.isArray(message.from_) ? message.from_.join(", ") : message.from_, 1500),
|
|
25618
|
+
reply_to: Array.isArray(message.reply_to) ? message.reply_to.slice(0, 20).map((value) => text(value, 1500)) : undefined,
|
|
25619
|
+
subject: text(message.subject, 300),
|
|
25620
|
+
text: text(message.text, 16000),
|
|
25621
|
+
html: text(message.html, 16000),
|
|
25622
|
+
timestamp: text(message.timestamp || message.created_at, 100),
|
|
25623
|
+
labels: Array.isArray(message.labels) ? message.labels.filter((label) => label === "unauthenticated") : [],
|
|
25624
|
+
attachments: Array.isArray(message.attachments) ? message.attachments.map((attachment) => ({
|
|
25625
|
+
filename: text(attachment.filename, 1500),
|
|
25626
|
+
content_type: text(attachment.content_type, 200),
|
|
25627
|
+
size: typeof attachment.size === "number" ? attachment.size : null
|
|
25628
|
+
})) : undefined
|
|
25629
|
+
}
|
|
25630
|
+
};
|
|
25631
|
+
await claimKv({
|
|
25632
|
+
namespace: INBOUND_ARCHIVE_NAMESPACE,
|
|
25633
|
+
key: inboundArchiveKey(message.inbox_id, message.message_id),
|
|
25634
|
+
value: { version: 1, capturedAt: new Date(now).toISOString(), payload: minimized },
|
|
25635
|
+
expiresAt: now + INBOUND_ARCHIVE_TTL_MS,
|
|
25636
|
+
valueType: "json"
|
|
25637
|
+
});
|
|
25638
|
+
}
|
|
25639
|
+
|
|
25584
25640
|
// src/integrations/kapso/inbound.ts
|
|
25585
25641
|
init_resolver();
|
|
25586
25642
|
init_event_bus();
|
|
@@ -25730,7 +25786,7 @@ var agentmailWebhook = route({
|
|
|
25730
25786
|
responses: {
|
|
25731
25787
|
200: { description: "Event received", schema: exports_external.object({ received: exports_external.literal(true) }) },
|
|
25732
25788
|
401: { description: "Invalid signature" },
|
|
25733
|
-
503: { description: "AgentMail integration not configured" }
|
|
25789
|
+
503: { description: "AgentMail integration not configured or inbound archive unavailable" }
|
|
25734
25790
|
}
|
|
25735
25791
|
});
|
|
25736
25792
|
var kapsoWebhook = route({
|
|
@@ -26053,8 +26109,16 @@ async function handleWebhooks(req, res, pathSegments) {
|
|
|
26053
26109
|
res.end(JSON.stringify({ error: "Invalid signature" }));
|
|
26054
26110
|
return true;
|
|
26055
26111
|
}
|
|
26056
|
-
agentmailWebhook.respond(res, 200, { received: true });
|
|
26057
26112
|
const payload = verified;
|
|
26113
|
+
try {
|
|
26114
|
+
await archiveInboundMessage(payload);
|
|
26115
|
+
} catch (err) {
|
|
26116
|
+
console.error("[AgentMail] Inbound archive failed; requesting webhook retry", err);
|
|
26117
|
+
res.writeHead(503, { "Content-Type": "application/json" });
|
|
26118
|
+
res.end(JSON.stringify({ error: "Inbound archive unavailable" }));
|
|
26119
|
+
return true;
|
|
26120
|
+
}
|
|
26121
|
+
agentmailWebhook.respond(res, 200, { received: true });
|
|
26058
26122
|
if (payload.message && !isInboxAllowed(payload.message.inbox_id, process.env.AGENTMAIL_INBOX_DOMAIN_FILTER)) {
|
|
26059
26123
|
const domain = payload.message.inbox_id.split("@")[1] ?? "unknown";
|
|
26060
26124
|
console.log(`[AgentMail] Ignoring event for inbox domain "${domain}" (not in AGENTMAIL_INBOX_DOMAIN_FILTER)`);
|
|
@@ -27402,7 +27466,7 @@ async function shutdown() {
|
|
|
27402
27466
|
sessionsProcessed: getServerSessionsProcessed()
|
|
27403
27467
|
});
|
|
27404
27468
|
if (hasCapability("scheduling")) {
|
|
27405
|
-
const { stopScheduler } = await import("./index-
|
|
27469
|
+
const { stopScheduler } = await import("./index-68bd9b5f.js");
|
|
27406
27470
|
stopScheduler();
|
|
27407
27471
|
}
|
|
27408
27472
|
stopHeartbeat();
|
|
@@ -27410,7 +27474,7 @@ async function shutdown() {
|
|
|
27410
27474
|
await stopScriptRunSupervisor();
|
|
27411
27475
|
await stopSlackApp();
|
|
27412
27476
|
if (process.env.OAUTH_KEEPALIVE_DISABLE !== "true") {
|
|
27413
|
-
const { stopOAuthKeepalive } = await import("./keepalive-
|
|
27477
|
+
const { stopOAuthKeepalive } = await import("./keepalive-xvmwnh1d.js");
|
|
27414
27478
|
await stopOAuthKeepalive();
|
|
27415
27479
|
}
|
|
27416
27480
|
stopOAuthPendingGc();
|
|
@@ -27478,15 +27542,15 @@ try {
|
|
|
27478
27542
|
console.warn("[startup] CAPABILITIES upgrade seed failed (non-fatal):", err);
|
|
27479
27543
|
}
|
|
27480
27544
|
try {
|
|
27481
|
-
const { seedPricingFromModelsDev } = await import("./seed-pricing-
|
|
27545
|
+
const { seedPricingFromModelsDev } = await import("./seed-pricing-thxpn9vn.js");
|
|
27482
27546
|
seedPricingFromModelsDev();
|
|
27483
|
-
const { startPricingRefreshLoop } = await import("./pricing-refresh-
|
|
27547
|
+
const { startPricingRefreshLoop } = await import("./pricing-refresh-4e201wtd.js");
|
|
27484
27548
|
startPricingRefreshLoop();
|
|
27485
27549
|
} catch (err) {
|
|
27486
27550
|
console.error("[startup] Failed to seed pricing rows:", err);
|
|
27487
27551
|
}
|
|
27488
27552
|
try {
|
|
27489
|
-
const { ensureRbacSeedsSynced } = await import("./rbac-roles-
|
|
27553
|
+
const { ensureRbacSeedsSynced } = await import("./rbac-roles-mkc5n5qa.js");
|
|
27490
27554
|
ensureRbacSeedsSynced();
|
|
27491
27555
|
} catch (err) {
|
|
27492
27556
|
console.error("[startup] Failed to sync RBAC seed rows:", err);
|
|
@@ -27494,7 +27558,7 @@ try {
|
|
|
27494
27558
|
throw err;
|
|
27495
27559
|
}
|
|
27496
27560
|
try {
|
|
27497
|
-
const { runAllSeeders } = await import("./index-
|
|
27561
|
+
const { runAllSeeders } = await import("./index-k1hq1qt6.js");
|
|
27498
27562
|
await runAllSeeders({ scriptEmbeddingMode: "skip" });
|
|
27499
27563
|
} catch (err) {
|
|
27500
27564
|
console.error("[startup] Failed to seed built-in entities:", err);
|
|
@@ -27548,36 +27612,36 @@ httpServer.listen(port, async () => {
|
|
|
27548
27612
|
await initWorkflows();
|
|
27549
27613
|
await startScriptRunSupervisor(getMcpBaseUrl());
|
|
27550
27614
|
if (hasCapability("scheduling")) {
|
|
27551
|
-
const { startScheduler } = await import("./index-
|
|
27552
|
-
const { getExecutorRegistry: getExecutorRegistry2 } = await import("./index-
|
|
27615
|
+
const { startScheduler } = await import("./index-68bd9b5f.js");
|
|
27616
|
+
const { getExecutorRegistry: getExecutorRegistry2 } = await import("./index-z0zwjtkn.js");
|
|
27553
27617
|
const intervalMs = Number(process.env.SCHEDULER_INTERVAL_MS) || 1e4;
|
|
27554
27618
|
startScheduler(getExecutorRegistry2(), intervalMs, {
|
|
27555
27619
|
runId: globalState.__runId
|
|
27556
27620
|
});
|
|
27557
27621
|
}
|
|
27558
27622
|
if (!isEnvFlagEnabled("HEARTBEAT_DISABLE", false)) {
|
|
27559
|
-
const { startHeartbeat } = await import("./index-
|
|
27623
|
+
const { startHeartbeat } = await import("./index-mjpxsr6k.js");
|
|
27560
27624
|
const heartbeatMs = Number(process.env.HEARTBEAT_INTERVAL_MS) || 90000;
|
|
27561
27625
|
startHeartbeat(heartbeatMs);
|
|
27562
27626
|
}
|
|
27563
27627
|
if (process.env.OAUTH_KEEPALIVE_DISABLE !== "true") {
|
|
27564
|
-
const { startOAuthKeepalive } = await import("./keepalive-
|
|
27628
|
+
const { startOAuthKeepalive } = await import("./keepalive-xvmwnh1d.js");
|
|
27565
27629
|
startOAuthKeepalive();
|
|
27566
27630
|
}
|
|
27567
27631
|
if (process.env.OAUTH_REFRESH_SWEEP_DISABLE !== "true") {
|
|
27568
|
-
const { startOAuthRefreshSweep } = await import("./oauth-refresh-sweep-
|
|
27632
|
+
const { startOAuthRefreshSweep } = await import("./oauth-refresh-sweep-6207x9sj.js");
|
|
27569
27633
|
startOAuthRefreshSweep();
|
|
27570
27634
|
}
|
|
27571
27635
|
startOAuthPendingGc();
|
|
27572
27636
|
await startMemoryGc();
|
|
27573
27637
|
await startDbRetention();
|
|
27574
|
-
import("./boot-reembed-
|
|
27638
|
+
import("./boot-reembed-smy30z32.js").then(({ runBootReembed }) => runBootReembed()).catch((err) => {
|
|
27575
27639
|
console.error("[boot-reembed] startup backfill failed (non-fatal):", err);
|
|
27576
27640
|
});
|
|
27577
|
-
import("./boot-reembed-
|
|
27641
|
+
import("./boot-reembed-42vgkrrj.js").then(({ runBootReembedScripts }) => runBootReembedScripts()).catch((err) => {
|
|
27578
27642
|
console.error("[boot-reembed-scripts] startup backfill failed (non-fatal):", err);
|
|
27579
27643
|
});
|
|
27580
|
-
import("./boot-scrub-logs-
|
|
27644
|
+
import("./boot-scrub-logs-b6s72fsw.js").then(({ runBootScrubLogs }) => runBootScrubLogs()).catch((err) => {
|
|
27581
27645
|
console.error("[boot-scrub-logs] startup scrub failed (non-fatal):", err);
|
|
27582
27646
|
});
|
|
27583
27647
|
}).on("error", (err) => {
|
|
@@ -4,34 +4,34 @@ import {
|
|
|
4
4
|
runScheduleNow,
|
|
5
5
|
startScheduler,
|
|
6
6
|
stopScheduler
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-72tgtzr1.js";
|
|
8
8
|
import"./cli-0z2v4nhw.js";
|
|
9
9
|
import"./cli-4wppfkcm.js";
|
|
10
10
|
import"./cli-e7d20cty.js";
|
|
11
11
|
import"./cli-re8z5p8p.js";
|
|
12
12
|
import"./cli-3dpj7atn.js";
|
|
13
|
-
import"./cli-
|
|
14
|
-
import"./cli-
|
|
15
|
-
import"./cli-
|
|
16
|
-
import"./cli-
|
|
13
|
+
import"./cli-kf8qp2vf.js";
|
|
14
|
+
import"./cli-jytf5mw9.js";
|
|
15
|
+
import"./cli-zfzznn7c.js";
|
|
16
|
+
import"./cli-dsyg66vt.js";
|
|
17
17
|
import"./cli-epan13p1.js";
|
|
18
18
|
import"./cli-y89t4nca.js";
|
|
19
19
|
import"./cli-f14fvzag.js";
|
|
20
20
|
import"./cli-fad8m16k.js";
|
|
21
|
-
import"./cli-
|
|
22
|
-
import"./cli-
|
|
21
|
+
import"./cli-vbk025fm.js";
|
|
22
|
+
import"./cli-7bwaerjt.js";
|
|
23
23
|
import"./cli-bsakbbkm.js";
|
|
24
|
-
import"./cli-
|
|
24
|
+
import"./cli-gxf2ebyz.js";
|
|
25
25
|
import"./cli-51tf7ac3.js";
|
|
26
|
-
import"./cli-
|
|
26
|
+
import"./cli-wfve107r.js";
|
|
27
27
|
import"./cli-q51yprfq.js";
|
|
28
28
|
import"./cli-yatxqynm.js";
|
|
29
|
-
import"./cli-
|
|
29
|
+
import"./cli-jtvs5m8q.js";
|
|
30
30
|
import"./cli-fm4ytsdk.js";
|
|
31
31
|
import"./cli-aehm1rbq.js";
|
|
32
32
|
import"./cli-2658f6at.js";
|
|
33
33
|
import"./cli-jsp14b6c.js";
|
|
34
|
-
import"./cli-
|
|
34
|
+
import"./cli-bdt7w021.js";
|
|
35
35
|
import"./cli-ht5rs63n.js";
|
|
36
36
|
import"./cli-z61ykvam.js";
|
|
37
37
|
import"./cli-dv6cdjs2.js";
|
|
@@ -39,7 +39,7 @@ import"./cli-c2mk1kgf.js";
|
|
|
39
39
|
import"./cli-ej6gbxfb.js";
|
|
40
40
|
import"./cli-sd0mxa3c.js";
|
|
41
41
|
import"./cli-w5e1d1vv.js";
|
|
42
|
-
import"./cli-
|
|
42
|
+
import"./cli-gfez0qmk.js";
|
|
43
43
|
import"./cli-r2ap2czm.js";
|
|
44
44
|
import"./cli-pzxba7gw.js";
|
|
45
45
|
import"./cli-f7kvq46p.js";
|
|
@@ -6,20 +6,20 @@ import {
|
|
|
6
6
|
extractArgsJsonSchema,
|
|
7
7
|
extractScriptSignature,
|
|
8
8
|
typecheckScript
|
|
9
|
-
} from "./cli-
|
|
9
|
+
} from "./cli-ks8a1cgq.js";
|
|
10
10
|
import {
|
|
11
11
|
getScript,
|
|
12
12
|
require_dist,
|
|
13
13
|
upsertScriptByName,
|
|
14
14
|
validateDefinition,
|
|
15
15
|
validateScriptImports
|
|
16
|
-
} from "./cli-
|
|
16
|
+
} from "./cli-dsyg66vt.js";
|
|
17
17
|
import"./cli-epan13p1.js";
|
|
18
18
|
import"./cli-y89t4nca.js";
|
|
19
19
|
import"./cli-f14fvzag.js";
|
|
20
|
-
import"./cli-
|
|
21
|
-
import"./cli-
|
|
22
|
-
import"./cli-
|
|
20
|
+
import"./cli-vbk025fm.js";
|
|
21
|
+
import"./cli-gxf2ebyz.js";
|
|
22
|
+
import"./cli-jtvs5m8q.js";
|
|
23
23
|
import"./cli-fm4ytsdk.js";
|
|
24
24
|
import"./cli-aehm1rbq.js";
|
|
25
25
|
import"./cli-2658f6at.js";
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
updateSkill,
|
|
40
40
|
updateWorkflow,
|
|
41
41
|
upsertSkillFiles
|
|
42
|
-
} from "./cli-
|
|
42
|
+
} from "./cli-bdt7w021.js";
|
|
43
43
|
import"./cli-ht5rs63n.js";
|
|
44
44
|
import"./cli-z61ykvam.js";
|
|
45
45
|
import"./cli-dv6cdjs2.js";
|
|
@@ -47,7 +47,7 @@ import"./cli-c2mk1kgf.js";
|
|
|
47
47
|
import"./cli-ej6gbxfb.js";
|
|
48
48
|
import"./cli-sd0mxa3c.js";
|
|
49
49
|
import"./cli-w5e1d1vv.js";
|
|
50
|
-
import"./cli-
|
|
50
|
+
import"./cli-gfez0qmk.js";
|
|
51
51
|
import"./cli-r2ap2czm.js";
|
|
52
52
|
import"./cli-zf8jjwex.js";
|
|
53
53
|
import {
|
|
@@ -5655,7 +5655,7 @@ var config_default = `{
|
|
|
5655
5655
|
`;
|
|
5656
5656
|
|
|
5657
5657
|
// templates/skills/agent-browser/content.md
|
|
5658
|
-
var content_default = '# agent-browser\n\n`agent-browser` (vercel-labs) is the swarm\'s browser-automation CLI. It drives a headless Chromium over CDP and returns accessibility-tree snapshots with compact `@eN` refs. Use it for any browser task: verify a UI change, take a screenshot, walk a page, fill a form, extract page text, reproduce a frontend bug, or attach UI evidence to a PR, issue, Linear comment, or Slack thread.\n\nDo not use `qa-use`. It is not installed in the worker image any more.\n\n## Step 0: check that the CLI is present\n\nThe full worker image (`agent-swarm-worker:latest`) ships `agent-browser` and a headless Chromium. The slim image (`:slim`) has neither. The first command of any browser work is:\n\n```bash\ncommand -v agent-browser\n```\n\nIf it prints nothing, you are on the slim image. Say so in your progress report ("agent-browser is not available on this worker image") and fall back to manual QA: write the exact steps a human should run and mark the browser test cases as **Blocked**, not failed. Do not install a browser or the CLI yourself.\n\n## Step 1: load the version-matched guide\n\nThe CLI bundles its own usage guide. Load it once per task before the first browser command. Do not guess flags from memory.\n\n```bash\nagent-browser skills get core # overview + common patterns\nagent-browser skills get core --full # adds the full command reference\nagent-browser skills list # specialized guides (dogfood, electron, slack, ...)\n```\n\n## Step 2: the core loop\n\n```bash\nagent-browser open <url>\nagent-browser snapshot -i # accessibility tree, interactive elements only, @eN refs\nagent-browser click @e12 # act on refs from the snapshot\nagent-browser fill @e7 "text"\nagent-browser screenshot /tmp/<name>.png\nagent-browser close\n```\n\n- Re-run `snapshot` after every navigation or state change. Refs are only valid for the snapshot that produced them.\n- Run one browser session at a time. Call `store-progress` between page batches so the heartbeat watchdog sees you.\n- The browser is headless. Local servers inside the worker container are reachable at `http://localhost:<port>`.\n- The image launches Chromium with `--no-sandbox,--disable-dev-shm-usage` through `AGENT_BROWSER_ARGS`. If you pass your own `--args`, include `--no-sandbox` again or Chrome will not start.\n\n## Step 3: share the screenshot through agent-fs\n\nScreenshots on the worker disk disappear with the task. Upload them to agent-fs under the qa path convention and share the signed URL. `--file` is binary-safe. `--content` is text-only and mangles PNGs.\n\n```bash\nagent-fs write thoughts/<agent-id>/qa/<topic>-screenshots/<name>.png \\\n --file /tmp/<name>.png -m "<what it shows>"\nagent-fs stat thoughts/<agent-id>/qa/<topic>-screenshots/<name>.png --json # confirm size > 0\nagent-fs signed-url thoughts/<agent-id>/qa/<topic>-screenshots/<name>.png --json # 24h default, --expires-in up to 7d\n```\n\n- Embed the URL as `` in the PR body, review comment, Linear comment, or Slack message.\n- In `store-progress`, list the upload in the `attachments` field with `kind: "agent-fs"` and the path, and paste the signed URL in the progress text.\n- If `agent-fs auth whoami` fails, report the local path, say the upload was skipped, and continue.\n\nThe `artifacts` skill holds the full agent-fs recipe and the naming conventions.\n';
|
|
5658
|
+
var content_default = '# agent-browser\n\n`agent-browser` (vercel-labs) is the swarm\'s browser-automation CLI. It drives a headless Chromium over CDP and returns accessibility-tree snapshots with compact `@eN` refs. Use it for any browser task: verify a UI change, take a screenshot, walk a page, fill a form, extract page text, reproduce a frontend bug, or attach UI evidence to a PR, issue, Linear comment, or Slack thread.\n\nDo not use `qa-use`. It is not installed in the worker image any more.\n\n## Step 0: check that the CLI is present\n\nThe full worker image (`agent-swarm-worker:latest`) ships `agent-browser` and a headless Chromium. The slim image (`:slim`) has neither. The first command of any browser work is:\n\n```bash\ncommand -v agent-browser\n```\n\nIf it prints nothing, you are on the slim image. Say so in your progress report ("agent-browser is not available on this worker image") and fall back to manual QA: write the exact steps a human should run and mark the browser test cases as **Blocked**, not failed. Do not install a browser or the CLI yourself.\n\n## Step 1: load the version-matched guide\n\nThe CLI bundles its own usage guide. Load it once per task before the first browser command. Do not guess flags from memory.\n\n```bash\nagent-browser skills get core # overview + common patterns\nagent-browser skills get core --full # adds the full command reference\nagent-browser skills list # specialized guides (dogfood, electron, slack, ...)\n```\n\n## Step 2: the core loop\n\n```bash\nagent-browser open <url>\nagent-browser snapshot -i # accessibility tree, interactive elements only, @eN refs\nagent-browser click @e12 # act on refs from the snapshot\nagent-browser fill @e7 "text"\nagent-browser screenshot /tmp/<name>.png\nagent-browser close\n```\n\n- Re-run `snapshot` after every navigation or state change. Refs are only valid for the snapshot that produced them.\n- Run one browser session at a time. Call `store-progress` between page batches so the heartbeat watchdog sees you.\n- The browser is headless. Local servers inside the worker container are reachable at `http://localhost:<port>`.\n- The image launches Chromium with `--no-sandbox,--disable-dev-shm-usage` through `AGENT_BROWSER_ARGS`. If you pass your own `--args`, include `--no-sandbox` again or Chrome will not start.\n\n## Recording\n\nDefault: record with `--cursor`, drive every supported pointer action (`click`, `mouse move`, `drag`) with `--human`, and ship the **1.5x video**. Keep the 1x original only if a reviewer asks for it. Human pointer movement follows an eased curve; use `--seed <n>` on `mouse move` to make the take reproducible instead of using a bare move.\n\nOpen the page first, then record the interaction:\n\n```bash\nagent-browser record start ./in.mp4 --cursor\nagent-browser snapshot -i\nagent-browser mouse move 600 400 --human --seed 42 --duration 1400\nagent-browser click @e3 --human # use a ref from the current snapshot\n# Perform the remaining QA steps; use --human for drag actions too.\nagent-browser record stop\nffmpeg -y -i in.mp4 -filter:v "setpts=PTS/1.5,fps=30" -an \\\n -c:v libx264 -preset veryfast -crf 23 -pix_fmt yuv420p out-1.5x.mp4\n```\n\nSpeed-up is a post-process step: `record start` has no speed or human flag. Keep `fps=30` to preserve a steady 30 fps output rather than uneven frame drops at an inferred rate. `-an` disables audio because agent-browser recordings carry no audio track. The worker ships only `ffmpeg`, not `ffprobe`; inspect duration with `ffmpeg -i out-1.5x.mp4 2>&1 | grep Duration`.\n\nAdd `--contact-sheet` to the start command for a timestamped PNG summary of visual changes. Recording needs `ffmpeg` on PATH; check `agent-browser doctor` before starting. Stop the recording before closing the browser so the video is saved. Upload the 1.5x file through the same agent-fs QA path and signed-URL steps as screenshots below, and link it in the PR body.\n\n## Step 3: share the screenshot through agent-fs\n\nScreenshots on the worker disk disappear with the task. Upload them to agent-fs under the qa path convention and share the signed URL. `--file` is binary-safe. `--content` is text-only and mangles PNGs.\n\n```bash\nagent-fs write thoughts/<agent-id>/qa/<topic>-screenshots/<name>.png \\\n --file /tmp/<name>.png -m "<what it shows>"\nagent-fs stat thoughts/<agent-id>/qa/<topic>-screenshots/<name>.png --json # confirm size > 0\nagent-fs signed-url thoughts/<agent-id>/qa/<topic>-screenshots/<name>.png --json # 24h default, --expires-in up to 7d\n```\n\n- Embed the URL as `` in the PR body, review comment, Linear comment, or Slack message.\n- In `store-progress`, list the upload in the `attachments` field with `kind: "agent-fs"` and the path, and paste the signed URL in the progress text.\n- If `agent-fs auth whoami` fails, report the local path, say the upload was skipped, and continue.\n\nThe `artifacts` skill holds the full agent-fs recipe and the naming conventions.\n';
|
|
5659
5659
|
|
|
5660
5660
|
// templates/skills/apps/config.json
|
|
5661
5661
|
var config_default2 = `{
|
|
@@ -4,35 +4,35 @@ import {
|
|
|
4
4
|
runRebootSweep,
|
|
5
5
|
startHeartbeat,
|
|
6
6
|
stopHeartbeat
|
|
7
|
-
} from "./cli-
|
|
8
|
-
import"./cli-
|
|
7
|
+
} from "./cli-y8tayczk.js";
|
|
8
|
+
import"./cli-72tgtzr1.js";
|
|
9
9
|
import"./cli-0z2v4nhw.js";
|
|
10
10
|
import"./cli-4wppfkcm.js";
|
|
11
11
|
import"./cli-e7d20cty.js";
|
|
12
12
|
import"./cli-re8z5p8p.js";
|
|
13
13
|
import"./cli-3dpj7atn.js";
|
|
14
|
-
import"./cli-
|
|
15
|
-
import"./cli-
|
|
16
|
-
import"./cli-
|
|
17
|
-
import"./cli-
|
|
14
|
+
import"./cli-kf8qp2vf.js";
|
|
15
|
+
import"./cli-jytf5mw9.js";
|
|
16
|
+
import"./cli-zfzznn7c.js";
|
|
17
|
+
import"./cli-dsyg66vt.js";
|
|
18
18
|
import"./cli-epan13p1.js";
|
|
19
19
|
import"./cli-y89t4nca.js";
|
|
20
20
|
import"./cli-f14fvzag.js";
|
|
21
21
|
import"./cli-fad8m16k.js";
|
|
22
|
-
import"./cli-
|
|
23
|
-
import"./cli-
|
|
22
|
+
import"./cli-vbk025fm.js";
|
|
23
|
+
import"./cli-7bwaerjt.js";
|
|
24
24
|
import"./cli-bsakbbkm.js";
|
|
25
|
-
import"./cli-
|
|
25
|
+
import"./cli-gxf2ebyz.js";
|
|
26
26
|
import"./cli-51tf7ac3.js";
|
|
27
|
-
import"./cli-
|
|
27
|
+
import"./cli-wfve107r.js";
|
|
28
28
|
import"./cli-q51yprfq.js";
|
|
29
29
|
import"./cli-yatxqynm.js";
|
|
30
|
-
import"./cli-
|
|
30
|
+
import"./cli-jtvs5m8q.js";
|
|
31
31
|
import"./cli-fm4ytsdk.js";
|
|
32
32
|
import"./cli-aehm1rbq.js";
|
|
33
33
|
import"./cli-2658f6at.js";
|
|
34
34
|
import"./cli-jsp14b6c.js";
|
|
35
|
-
import"./cli-
|
|
35
|
+
import"./cli-bdt7w021.js";
|
|
36
36
|
import"./cli-ht5rs63n.js";
|
|
37
37
|
import"./cli-z61ykvam.js";
|
|
38
38
|
import"./cli-dv6cdjs2.js";
|
|
@@ -40,7 +40,7 @@ import"./cli-c2mk1kgf.js";
|
|
|
40
40
|
import"./cli-ej6gbxfb.js";
|
|
41
41
|
import"./cli-sd0mxa3c.js";
|
|
42
42
|
import"./cli-w5e1d1vv.js";
|
|
43
|
-
import"./cli-
|
|
43
|
+
import"./cli-gfez0qmk.js";
|
|
44
44
|
import"./cli-r2ap2czm.js";
|
|
45
45
|
import"./cli-pzxba7gw.js";
|
|
46
46
|
import"./cli-f7kvq46p.js";
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
getEmbeddingProvider,
|
|
3
3
|
getMemoryStore,
|
|
4
4
|
resetEmbeddingProvider
|
|
5
|
-
} from "./cli-
|
|
5
|
+
} from "./cli-jtvs5m8q.js";
|
|
6
6
|
import"./cli-fm4ytsdk.js";
|
|
7
7
|
import"./cli-aehm1rbq.js";
|
|
8
8
|
import"./cli-2658f6at.js";
|
|
9
|
-
import"./cli-
|
|
9
|
+
import"./cli-bdt7w021.js";
|
|
10
10
|
import"./cli-ht5rs63n.js";
|
|
11
11
|
import"./cli-z61ykvam.js";
|
|
12
12
|
import"./cli-dv6cdjs2.js";
|
|
@@ -14,7 +14,7 @@ import"./cli-c2mk1kgf.js";
|
|
|
14
14
|
import"./cli-ej6gbxfb.js";
|
|
15
15
|
import"./cli-sd0mxa3c.js";
|
|
16
16
|
import"./cli-w5e1d1vv.js";
|
|
17
|
-
import"./cli-
|
|
17
|
+
import"./cli-gfez0qmk.js";
|
|
18
18
|
import"./cli-r2ap2czm.js";
|
|
19
19
|
import"./cli-zf8jjwex.js";
|
|
20
20
|
import"./cli-bc05qbss.js";
|
|
@@ -20,37 +20,37 @@ import {
|
|
|
20
20
|
stopWaitPoller,
|
|
21
21
|
subscribeWaitToBus,
|
|
22
22
|
validateTemplateVariables
|
|
23
|
-
} from "./cli-
|
|
23
|
+
} from "./cli-72tgtzr1.js";
|
|
24
24
|
import"./cli-0z2v4nhw.js";
|
|
25
25
|
import"./cli-4wppfkcm.js";
|
|
26
26
|
import"./cli-e7d20cty.js";
|
|
27
27
|
import"./cli-re8z5p8p.js";
|
|
28
28
|
import"./cli-3dpj7atn.js";
|
|
29
|
-
import"./cli-
|
|
30
|
-
import"./cli-
|
|
31
|
-
import"./cli-
|
|
29
|
+
import"./cli-kf8qp2vf.js";
|
|
30
|
+
import"./cli-jytf5mw9.js";
|
|
31
|
+
import"./cli-zfzznn7c.js";
|
|
32
32
|
import {
|
|
33
33
|
findEntryNodes,
|
|
34
34
|
getSuccessors
|
|
35
|
-
} from "./cli-
|
|
35
|
+
} from "./cli-dsyg66vt.js";
|
|
36
36
|
import"./cli-epan13p1.js";
|
|
37
37
|
import"./cli-y89t4nca.js";
|
|
38
38
|
import"./cli-f14fvzag.js";
|
|
39
39
|
import"./cli-fad8m16k.js";
|
|
40
|
-
import"./cli-
|
|
41
|
-
import"./cli-
|
|
40
|
+
import"./cli-vbk025fm.js";
|
|
41
|
+
import"./cli-7bwaerjt.js";
|
|
42
42
|
import"./cli-bsakbbkm.js";
|
|
43
|
-
import"./cli-
|
|
43
|
+
import"./cli-gxf2ebyz.js";
|
|
44
44
|
import"./cli-51tf7ac3.js";
|
|
45
|
-
import"./cli-
|
|
45
|
+
import"./cli-wfve107r.js";
|
|
46
46
|
import"./cli-q51yprfq.js";
|
|
47
47
|
import"./cli-yatxqynm.js";
|
|
48
|
-
import"./cli-
|
|
48
|
+
import"./cli-jtvs5m8q.js";
|
|
49
49
|
import"./cli-fm4ytsdk.js";
|
|
50
50
|
import"./cli-aehm1rbq.js";
|
|
51
51
|
import"./cli-2658f6at.js";
|
|
52
52
|
import"./cli-jsp14b6c.js";
|
|
53
|
-
import"./cli-
|
|
53
|
+
import"./cli-bdt7w021.js";
|
|
54
54
|
import"./cli-ht5rs63n.js";
|
|
55
55
|
import {
|
|
56
56
|
interpolate
|
|
@@ -60,7 +60,7 @@ import"./cli-c2mk1kgf.js";
|
|
|
60
60
|
import"./cli-ej6gbxfb.js";
|
|
61
61
|
import"./cli-sd0mxa3c.js";
|
|
62
62
|
import"./cli-w5e1d1vv.js";
|
|
63
|
-
import"./cli-
|
|
63
|
+
import"./cli-gfez0qmk.js";
|
|
64
64
|
import"./cli-r2ap2czm.js";
|
|
65
65
|
import"./cli-pzxba7gw.js";
|
|
66
66
|
import {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ensureAuthorizationTokenOrThrow,
|
|
3
3
|
listKeepAliveAuthorizations
|
|
4
|
-
} from "./cli-
|
|
5
|
-
import"./cli-
|
|
4
|
+
} from "./cli-vbk025fm.js";
|
|
5
|
+
import"./cli-bdt7w021.js";
|
|
6
6
|
import"./cli-ht5rs63n.js";
|
|
7
7
|
import"./cli-z61ykvam.js";
|
|
8
8
|
import"./cli-dv6cdjs2.js";
|
|
@@ -10,7 +10,7 @@ import"./cli-c2mk1kgf.js";
|
|
|
10
10
|
import"./cli-ej6gbxfb.js";
|
|
11
11
|
import"./cli-sd0mxa3c.js";
|
|
12
12
|
import"./cli-w5e1d1vv.js";
|
|
13
|
-
import"./cli-
|
|
13
|
+
import"./cli-gfez0qmk.js";
|
|
14
14
|
import {
|
|
15
15
|
init_secret_scrubber,
|
|
16
16
|
scrubSecrets
|
|
@@ -66,7 +66,7 @@ async function notifySlack(text) {
|
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
68
|
try {
|
|
69
|
-
const { getSlackApp } = await import("./app-
|
|
69
|
+
const { getSlackApp } = await import("./app-j54aq0dj.js");
|
|
70
70
|
const app = getSlackApp();
|
|
71
71
|
if (!app) {
|
|
72
72
|
console.warn("[OAuth Keepalive] Slack not available, cannot send notification");
|