@desplega.ai/agent-swarm 1.151.0 → 1.152.0
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 +1 -1
- package/dist/{acp-adapter-ex8hzjfc.js → acp-adapter-d05sg0q4.js} +1 -1
- package/dist/{actions-2bgpyhww.js → actions-4sc0v342.js} +13 -13
- package/dist/{app-1706zhr1.js → app-2d0v6kt6.js} +3 -3
- package/dist/{assistant-bavke5p7.js → assistant-zs6wdnrf.js} +14 -14
- package/dist/{boot-reembed-nafcmmmc.js → boot-reembed-3dwdnnsr.js} +3 -3
- package/dist/{boot-reembed-3cmrrmpa.js → boot-reembed-vhh33520.js} +4 -4
- package/dist/{boot-scrub-logs-cd6a2sq0.js → boot-scrub-logs-e1fnabcg.js} +2 -2
- package/dist/{claude-adapter-wfp2gzvz.js → claude-adapter-h58xqzzd.js} +3 -3
- package/dist/{claude-sdk-session-bht9jjak.js → claude-sdk-session-pbaczbgt.js} +3 -3
- package/dist/{cli-a1z3h107.js → cli-4fqn2vpg.js} +4 -4
- package/dist/{cli-g69fdc9g.js → cli-5bqt4gwa.js} +2 -2
- package/dist/{cli-gjyvhmmh.js → cli-5p007m2q.js} +5 -5
- package/dist/{cli-5jd2z7av.js → cli-6k2athpf.js} +6 -2
- package/dist/{cli-5tpgq60f.js → cli-72vksk1n.js} +152 -23
- package/dist/{cli-vwm416m6.js → cli-87hdfyde.js} +1 -1
- package/dist/{cli-3v9xhjcn.js → cli-8fy9dmpv.js} +2 -2
- package/dist/{cli-czjtgfys.js → cli-awb59f08.js} +2 -2
- package/dist/{cli-j9xczhaq.js → cli-cs9z1hw3.js} +1 -1
- package/dist/{cli-r2q6pevn.js → cli-cwvey7n1.js} +43 -21
- package/dist/{cli-ppm4975n.js → cli-evgy5w3y.js} +1 -1
- package/dist/{cli-frcta2w4.js → cli-f1f9n77e.js} +1 -1
- package/dist/{cli-9004vfdf.js → cli-fhdssm2v.js} +2 -2
- package/dist/{cli-s14agm5s.js → cli-gacq5hg8.js} +12 -3
- package/dist/{cli-zkxymas5.js → cli-jh9txj4n.js} +1 -1
- package/dist/{cli-q88st9aj.js → cli-nd5s3m4y.js} +2 -2
- package/dist/{cli-sjaae6ff.js → cli-p2hx1pxm.js} +3 -3
- package/dist/{cli-2tbvf1z1.js → cli-t1mykkng.js} +8 -8
- package/dist/{cli-7tgcstn2.js → cli-t6axtdcg.js} +2 -2
- package/dist/{cli-f1wky6zp.js → cli-wp7cejrg.js} +1 -1
- package/dist/{cli-0qb1z6s2.js → cli-zdcdh02m.js} +1 -1
- package/dist/{cli-gbfwcd3k.js → cli-zfzznn7c.js} +7 -6
- package/dist/cli.js +11 -11
- package/dist/{codex-adapter-jjjk8w4m.js → codex-adapter-v3cz462q.js} +2 -2
- package/dist/{codex-session-runner-nd6ayxkx.js → codex-session-runner-de1a5g5z.js} +2 -2
- package/dist/{commands-9v4psyq1.js → commands-wfqqpn95.js} +2 -2
- package/dist/{db-wnt58tpe.js → db-9zzv5y05.js} +2 -2
- package/dist/{dispatcher-05jh1aqk.js → dispatcher-hfm1jbgx.js} +12 -12
- package/dist/{handlers-tw90pkh5.js → handlers-wrrhsack.js} +15 -15
- package/dist/{hook-sxe3r349.js → hook-9skye8zd.js} +1 -1
- package/dist/{hook-123e2scb.js → hook-fgjv62k5.js} +2 -2
- package/dist/{http-ecsar8ez.js → http-7grttjfq.js} +37 -34
- package/dist/{index-nnrbpcjp.js → index-29gxx9ar.js} +12 -12
- package/dist/{index-hw26vj40.js → index-30pz2h9w.js} +12 -12
- package/dist/{index-zj518gf9.js → index-4ek1df87.js} +13 -13
- package/dist/{index-16js521z.js → index-myfwqqyq.js} +8 -8
- package/dist/{index-ymn7em0p.js → index-pfhzrh1d.js} +3 -3
- package/dist/{keepalive-asqtcm4y.js → keepalive-j75m2m7k.js} +4 -4
- package/dist/{lead-xbfr7fvt.js → lead-a1hpjt0a.js} +16 -16
- package/dist/{maintenance-qma55qvw.js → maintenance-tngjzqdq.js} +4 -4
- package/dist/{oauth-refresh-sweep-3s04c6qw.js → oauth-refresh-sweep-em1fn044.js} +3 -3
- package/dist/{onboard-drskd386.js → onboard-fv7ezvwx.js} +2 -2
- package/dist/{otel-impl-943c96er.js → otel-impl-6vbb568y.js} +1 -1
- package/dist/{pricing-refresh-mx51az05.js → pricing-refresh-nmm949an.js} +4 -4
- package/dist/{rbac-roles-wcmrg6sv.js → rbac-roles-0fz5qryx.js} +4 -4
- package/dist/{rbac-roles-78baecqd.js → rbac-roles-xtp05syf.js} +3 -3
- package/dist/{render-v2-8zjntgf5.js → render-v2-fpb8whme.js} +3 -3
- package/dist/{seed-pricing-jqjs6cws.js → seed-pricing-zwa8bs3t.js} +3 -3
- package/dist/{setup-4pks0vfk.js → setup-3ybwbdpd.js} +2 -2
- package/dist/{work-objects-wangt792.js → work-objects-rmayxcx7.js} +18 -17
- package/dist/{worker-p2mr422x.js → worker-rng4jhnh.js} +16 -16
- package/openapi.json +4 -4
- package/package.json +1 -1
- 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/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/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
|
@@ -18,18 +18,18 @@ import {
|
|
|
18
18
|
} from "./cli-3dpj7atn.js";
|
|
19
19
|
import {
|
|
20
20
|
startPricingRefreshLoop
|
|
21
|
-
} from "./cli-
|
|
21
|
+
} from "./cli-5bqt4gwa.js";
|
|
22
22
|
import {
|
|
23
23
|
ensureRbacSeedsSynced,
|
|
24
24
|
getUserGrant
|
|
25
|
-
} from "./cli-
|
|
25
|
+
} from "./cli-t6axtdcg.js";
|
|
26
26
|
import {
|
|
27
27
|
can,
|
|
28
28
|
decideAdmission,
|
|
29
29
|
grantLeadEquivalence,
|
|
30
30
|
isRbacEnabled,
|
|
31
31
|
revokeLeadEquivalence
|
|
32
|
-
} from "./cli-
|
|
32
|
+
} from "./cli-zfzznn7c.js";
|
|
33
33
|
import {
|
|
34
34
|
AppDefinitionSchema,
|
|
35
35
|
AppElementsSchema,
|
|
@@ -93,7 +93,7 @@ import {
|
|
|
93
93
|
upsertScriptConnection,
|
|
94
94
|
validateDefinition,
|
|
95
95
|
writeBareImportShim
|
|
96
|
-
} from "./cli-
|
|
96
|
+
} from "./cli-p2hx1pxm.js";
|
|
97
97
|
import {
|
|
98
98
|
detachedProcessGroup,
|
|
99
99
|
registerProcessGroup,
|
|
@@ -120,10 +120,10 @@ import {
|
|
|
120
120
|
listAuthorizationsForApp,
|
|
121
121
|
onAuthorizationRefreshed,
|
|
122
122
|
upsertOAuthApp
|
|
123
|
-
} from "./cli-
|
|
123
|
+
} from "./cli-cs9z1hw3.js";
|
|
124
124
|
import {
|
|
125
125
|
seedPricingFromModelsDev
|
|
126
|
-
} from "./cli-
|
|
126
|
+
} from "./cli-zdcdh02m.js";
|
|
127
127
|
import {
|
|
128
128
|
require_dist
|
|
129
129
|
} from "./cli-51tf7ac3.js";
|
|
@@ -137,7 +137,7 @@ import {
|
|
|
137
137
|
startSlackApp,
|
|
138
138
|
stopSlackApp,
|
|
139
139
|
withSpan
|
|
140
|
-
} from "./cli-
|
|
140
|
+
} from "./cli-cwvey7n1.js";
|
|
141
141
|
import {
|
|
142
142
|
CANDIDATE_SET_MULTIPLIER,
|
|
143
143
|
computeScore,
|
|
@@ -149,7 +149,7 @@ import {
|
|
|
149
149
|
isGraphExpansionEnabled,
|
|
150
150
|
rerank,
|
|
151
151
|
rowToCandidate
|
|
152
|
-
} from "./cli-
|
|
152
|
+
} from "./cli-evgy5w3y.js";
|
|
153
153
|
import {
|
|
154
154
|
init_task_attachment_links,
|
|
155
155
|
taskAttachmentDisplayUrl,
|
|
@@ -463,7 +463,7 @@ import {
|
|
|
463
463
|
upsertSwarmConfig,
|
|
464
464
|
validateConfigValue,
|
|
465
465
|
workflowContextKey
|
|
466
|
-
} from "./cli-
|
|
466
|
+
} from "./cli-gacq5hg8.js";
|
|
467
467
|
import {
|
|
468
468
|
generateDefaultClaudeMd,
|
|
469
469
|
generateDefaultIdentityMd,
|
|
@@ -541,7 +541,7 @@ import {
|
|
|
541
541
|
import {
|
|
542
542
|
init_package,
|
|
543
543
|
package_default
|
|
544
|
-
} from "./cli-
|
|
544
|
+
} from "./cli-jh9txj4n.js";
|
|
545
545
|
import {
|
|
546
546
|
init_secret_scrubber,
|
|
547
547
|
isSensitiveKey,
|
|
@@ -23685,7 +23685,7 @@ async function notifySlack(text) {
|
|
|
23685
23685
|
return;
|
|
23686
23686
|
}
|
|
23687
23687
|
try {
|
|
23688
|
-
const { getSlackApp: getSlackApp2 } = await import("./app-
|
|
23688
|
+
const { getSlackApp: getSlackApp2 } = await import("./app-2d0v6kt6.js");
|
|
23689
23689
|
const app = getSlackApp2();
|
|
23690
23690
|
if (!app) {
|
|
23691
23691
|
console.warn("[Jira webhook keepalive] Slack not available, cannot send notification");
|
|
@@ -23756,7 +23756,7 @@ async function deleteJiraWebhook(webhookId) {
|
|
|
23756
23756
|
console.log(`[Jira webhook keepalive] Deleted webhook id=${webhookId}`);
|
|
23757
23757
|
}
|
|
23758
23758
|
async function overwriteWebhookIds(next) {
|
|
23759
|
-
const { getDbClient: getDbClient2 } = await import("./db-
|
|
23759
|
+
const { getDbClient: getDbClient2 } = await import("./db-9zzv5y05.js");
|
|
23760
23760
|
await getDbClient2().transaction(async (tx) => {
|
|
23761
23761
|
const row = await tx.get("SELECT metadata FROM oauth_apps WHERE provider = 'jira'");
|
|
23762
23762
|
if (!row) {
|
|
@@ -97476,7 +97476,7 @@ async function reloadGlobalConfigsAndIntegrations() {
|
|
|
97476
97476
|
return runWithoutRequestAuth(() => reloadGlobalConfigsAndIntegrationsInner());
|
|
97477
97477
|
}
|
|
97478
97478
|
async function reloadGlobalConfigsAndIntegrationsInner() {
|
|
97479
|
-
const { getEmbeddingProvider: getEmbeddingProvider2, resetEmbeddingProvider } = await import("./index-
|
|
97479
|
+
const { getEmbeddingProvider: getEmbeddingProvider2, resetEmbeddingProvider } = await import("./index-pfhzrh1d.js");
|
|
97480
97480
|
const wasEmbeddingsConfigured = getEmbeddingProvider2().isConfigured();
|
|
97481
97481
|
const updated = await loadGlobalConfigsIntoEnv(true);
|
|
97482
97482
|
const { resetFileStorageProvider } = await import("./registry-v5wytg0s.js");
|
|
@@ -97488,10 +97488,10 @@ async function reloadGlobalConfigsAndIntegrationsInner() {
|
|
|
97488
97488
|
integrations.push("embeddings");
|
|
97489
97489
|
}
|
|
97490
97490
|
if (!wasEmbeddingsConfigured && isEmbeddingsConfigured) {
|
|
97491
|
-
import("./boot-reembed-
|
|
97491
|
+
import("./boot-reembed-3dwdnnsr.js").then(({ runBootReembed }) => runBootReembed()).catch((err) => {
|
|
97492
97492
|
console.error("[config-reload] memory backfill failed (non-fatal):", err);
|
|
97493
97493
|
});
|
|
97494
|
-
import("./boot-reembed-
|
|
97494
|
+
import("./boot-reembed-vhh33520.js").then(({ runBootReembedScripts }) => runBootReembedScripts()).catch((err) => {
|
|
97495
97495
|
console.error("[config-reload] script backfill failed (non-fatal):", err);
|
|
97496
97496
|
});
|
|
97497
97497
|
}
|
|
@@ -98304,7 +98304,7 @@ function setPreloadedTools(server, names) {
|
|
|
98304
98304
|
async function applyPreToolCall(name, args, requestInfo, inputSchema) {
|
|
98305
98305
|
if (requestInfo.callOrigin !== "mcp")
|
|
98306
98306
|
return { args };
|
|
98307
|
-
const dispatcher = await import("./dispatcher-
|
|
98307
|
+
const dispatcher = await import("./dispatcher-hfm1jbgx.js");
|
|
98308
98308
|
const result = await dispatcher.dispatchPre("pre.tool.call", { tool: name, args, requestInfo }, inputSchema ? {
|
|
98309
98309
|
validateModify: async (data) => {
|
|
98310
98310
|
const schema = normalizeObjectSchema(inputSchema) ?? inputSchema;
|
|
@@ -105897,9 +105897,8 @@ var registerDeletePageTool = (server) => {
|
|
|
105897
105897
|
});
|
|
105898
105898
|
};
|
|
105899
105899
|
|
|
105900
|
-
// src/tools/extension-
|
|
105900
|
+
// src/tools/extension-activate-version.ts
|
|
105901
105901
|
init_zod();
|
|
105902
|
-
init_types();
|
|
105903
105902
|
|
|
105904
105903
|
// src/tools/extension-common.ts
|
|
105905
105904
|
init_zod();
|
|
@@ -106074,6 +106073,7 @@ var extensionToolOutputSchema = swarmToolOutputSchema({
|
|
|
106074
106073
|
priority: number().optional(),
|
|
106075
106074
|
consecutiveFailures: number().optional(),
|
|
106076
106075
|
contentDeduped: boolean().optional(),
|
|
106076
|
+
deleted: boolean().optional(),
|
|
106077
106077
|
extensions: array(extensionListItemSchema).optional()
|
|
106078
106078
|
});
|
|
106079
106079
|
function isRecord2(value) {
|
|
@@ -106121,15 +106121,100 @@ async function proxyExtensionsApi(args) {
|
|
|
106121
106121
|
});
|
|
106122
106122
|
}
|
|
106123
106123
|
|
|
106124
|
+
// src/tools/extension-activate-version.ts
|
|
106125
|
+
var registerExtensionActivateVersionTool = (server) => {
|
|
106126
|
+
createToolRegistrar(server)("extension-activate-version", {
|
|
106127
|
+
title: "Extension Activate Version",
|
|
106128
|
+
description: "Activate a stored extension version, reloading it if enabled. Requires a lead, operator, or dashboard user.",
|
|
106129
|
+
annotations: { openWorldHint: false },
|
|
106130
|
+
inputSchema: object({
|
|
106131
|
+
id: string().uuid().describe("Installed extension ID from extension-list."),
|
|
106132
|
+
version: number().int().min(1).describe("Stored version number to activate.")
|
|
106133
|
+
}).strict(),
|
|
106134
|
+
outputSchema: extensionToolOutputSchema
|
|
106135
|
+
}, async (args, requestInfo) => proxyExtensionsApi({
|
|
106136
|
+
method: "POST",
|
|
106137
|
+
path: `/api/extensions/${args.id}/activate-version`,
|
|
106138
|
+
body: { version: args.version },
|
|
106139
|
+
requestInfo,
|
|
106140
|
+
success: (data) => toolOk("Extension activated.", {
|
|
106141
|
+
data: coerceExtensionSummary(data.extension)
|
|
106142
|
+
})
|
|
106143
|
+
}));
|
|
106144
|
+
};
|
|
106145
|
+
|
|
106146
|
+
// src/tools/extension-delete.ts
|
|
106147
|
+
init_zod();
|
|
106148
|
+
var registerExtensionDeleteTool = (server) => {
|
|
106149
|
+
createToolRegistrar(server)("extension-delete", {
|
|
106150
|
+
title: "Extension Delete",
|
|
106151
|
+
description: "Uninstall a disabled extension and delete its stored history. Disable it first with extension-disable. Requires a lead, operator, or dashboard user.",
|
|
106152
|
+
annotations: { openWorldHint: false, destructiveHint: true },
|
|
106153
|
+
inputSchema: object({
|
|
106154
|
+
id: string().uuid().describe("Installed extension ID from extension-list.")
|
|
106155
|
+
}).strict(),
|
|
106156
|
+
outputSchema: extensionToolOutputSchema
|
|
106157
|
+
}, async (args, requestInfo) => proxyExtensionsApi({
|
|
106158
|
+
method: "DELETE",
|
|
106159
|
+
path: `/api/extensions/${args.id}`,
|
|
106160
|
+
requestInfo,
|
|
106161
|
+
success: () => toolOk("Extension deleted.", { data: { id: args.id, deleted: true } })
|
|
106162
|
+
}));
|
|
106163
|
+
};
|
|
106164
|
+
|
|
106165
|
+
// src/tools/extension-disable.ts
|
|
106166
|
+
init_zod();
|
|
106167
|
+
var registerExtensionDisableTool = (server) => {
|
|
106168
|
+
createToolRegistrar(server)("extension-disable", {
|
|
106169
|
+
title: "Extension Disable",
|
|
106170
|
+
description: "Unload and disable an installed extension. Requires a lead, operator, or dashboard user.",
|
|
106171
|
+
annotations: { openWorldHint: false },
|
|
106172
|
+
inputSchema: object({
|
|
106173
|
+
id: string().uuid().describe("Installed extension ID from extension-list.")
|
|
106174
|
+
}).strict(),
|
|
106175
|
+
outputSchema: extensionToolOutputSchema
|
|
106176
|
+
}, async (args, requestInfo) => proxyExtensionsApi({
|
|
106177
|
+
method: "POST",
|
|
106178
|
+
path: `/api/extensions/${args.id}/disable`,
|
|
106179
|
+
requestInfo,
|
|
106180
|
+
success: (data) => toolOk("Extension disabled.", {
|
|
106181
|
+
data: coerceExtensionSummary(data.extension)
|
|
106182
|
+
})
|
|
106183
|
+
}));
|
|
106184
|
+
};
|
|
106185
|
+
|
|
106186
|
+
// src/tools/extension-enable.ts
|
|
106187
|
+
init_zod();
|
|
106188
|
+
var registerExtensionEnableTool = (server) => {
|
|
106189
|
+
createToolRegistrar(server)("extension-enable", {
|
|
106190
|
+
title: "Extension Enable",
|
|
106191
|
+
description: "Load and enable an installed extension. Requires a lead, operator, or dashboard user.",
|
|
106192
|
+
annotations: { openWorldHint: false },
|
|
106193
|
+
inputSchema: object({
|
|
106194
|
+
id: string().uuid().describe("Installed extension ID from extension-list.")
|
|
106195
|
+
}).strict(),
|
|
106196
|
+
outputSchema: extensionToolOutputSchema
|
|
106197
|
+
}, async (args, requestInfo) => proxyExtensionsApi({
|
|
106198
|
+
method: "POST",
|
|
106199
|
+
path: `/api/extensions/${args.id}/enable`,
|
|
106200
|
+
requestInfo,
|
|
106201
|
+
success: (data) => toolOk("Extension enabled.", {
|
|
106202
|
+
data: coerceExtensionSummary(data.extension)
|
|
106203
|
+
})
|
|
106204
|
+
}));
|
|
106205
|
+
};
|
|
106206
|
+
|
|
106124
106207
|
// src/tools/extension-install.ts
|
|
106125
|
-
|
|
106208
|
+
init_zod();
|
|
106209
|
+
init_types();
|
|
106210
|
+
var EXTENSION_INSTALL_DESCRIPTION = "Validate and store a TypeScript extension bundle (manifest plus a files map with one hooks.ts). Fetch the hook contract first: GET /api/extensions/type-defs returns swarm-extension.d.ts with every event and modify shape. The extension remains disabled until a lead, operator, or dashboard user enables it with extension-enable.";
|
|
106126
106211
|
function extensionInstallResult(data, fallbackName) {
|
|
106127
106212
|
const body = data;
|
|
106128
106213
|
const extension = coerceExtensionSummary(body.extension);
|
|
106129
106214
|
const name = extension.name ?? fallbackName;
|
|
106130
106215
|
const version = typeof extension.version === "number" ? ` v${extension.version}` : "";
|
|
106131
106216
|
const deduped = body.contentDeduped === true ? " Content was unchanged." : "";
|
|
106132
|
-
const enableInstruction = "
|
|
106217
|
+
const enableInstruction = "A lead, operator, or dashboard user can enable it with `extension-enable` or `POST /api/extensions/{id}/enable`.";
|
|
106133
106218
|
return toolOk(`Extension \`${name}\`${version} installed.${deduped} ${enableInstruction}`, {
|
|
106134
106219
|
data: {
|
|
106135
106220
|
...extension,
|
|
@@ -116947,7 +117032,7 @@ async function notifyAutomationPreflightFailure(preflight) {
|
|
|
116947
117032
|
return;
|
|
116948
117033
|
}
|
|
116949
117034
|
try {
|
|
116950
|
-
const { getSlackApp: getSlackApp2 } = await import("./app-
|
|
117035
|
+
const { getSlackApp: getSlackApp2 } = await import("./app-2d0v6kt6.js");
|
|
116951
117036
|
const app = getSlackApp2();
|
|
116952
117037
|
if (!app) {
|
|
116953
117038
|
console.warn("[Automation Preflight] Slack not available, cannot send notification");
|
|
@@ -120092,7 +120177,7 @@ class HumanInTheLoopExecutor extends BaseExecutor {
|
|
|
120092
120177
|
}
|
|
120093
120178
|
if (notification.channel === "slack") {
|
|
120094
120179
|
try {
|
|
120095
|
-
const { getSlackApp: getSlackApp2 } = await import("./app-
|
|
120180
|
+
const { getSlackApp: getSlackApp2 } = await import("./app-2d0v6kt6.js");
|
|
120096
120181
|
const slackApp = getSlackApp2();
|
|
120097
120182
|
if (!slackApp) {
|
|
120098
120183
|
console.warn("[HITL] Slack not initialized — cannot send notification");
|
|
@@ -120212,7 +120297,7 @@ class NotifyExecutor extends BaseExecutor {
|
|
|
120212
120297
|
}
|
|
120213
120298
|
}
|
|
120214
120299
|
case "slack": {
|
|
120215
|
-
const { getSlackApp: getSlackApp2 } = await import("./app-
|
|
120300
|
+
const { getSlackApp: getSlackApp2 } = await import("./app-2d0v6kt6.js");
|
|
120216
120301
|
const app = getSlackApp2();
|
|
120217
120302
|
if (!app) {
|
|
120218
120303
|
return {
|
|
@@ -126427,6 +126512,23 @@ var registerStoreProgressTool = (server) => {
|
|
|
126427
126512
|
}
|
|
126428
126513
|
}
|
|
126429
126514
|
const status = requestedStatus === "completed" || requestedStatus === "failed" ? requestedStatus : undefined;
|
|
126515
|
+
const leakedParameter = output?.match(/(?:<\/(?:output|parameter)>\s*)?<parameter name="([a-zA-Z_]+)">\s*([\s\S]*)$/);
|
|
126516
|
+
if (leakedParameter) {
|
|
126517
|
+
output = output?.slice(0, leakedParameter.index);
|
|
126518
|
+
let recovered = false;
|
|
126519
|
+
if (leakedParameter[1] === "attachments") {
|
|
126520
|
+
try {
|
|
126521
|
+
const parsed = array(AttachmentInputSchema).max(20).safeParse(JSON.parse(leakedParameter[2].replace(/\s*<\/parameter>\s*$/, "")));
|
|
126522
|
+
if (parsed.success && (attachments?.length ?? 0) + parsed.data.length <= 20) {
|
|
126523
|
+
attachments = [...attachments ?? [], ...parsed.data];
|
|
126524
|
+
recovered = true;
|
|
126525
|
+
}
|
|
126526
|
+
} catch {}
|
|
126527
|
+
}
|
|
126528
|
+
if (!recovered) {
|
|
126529
|
+
console.warn(`[store-progress] Stripped malformed output tail for task ${taskId}; parameter ${leakedParameter[1]} was not recovered.`);
|
|
126530
|
+
}
|
|
126531
|
+
}
|
|
126430
126532
|
const agentFsScopes = new Map;
|
|
126431
126533
|
const agentFsAttachments = attachments?.filter((a) => a.kind === "agent-fs") ?? [];
|
|
126432
126534
|
if (agentFsAttachments.length > 0) {
|
|
@@ -129038,6 +129140,10 @@ async function createServer(opts = {}) {
|
|
|
129038
129140
|
registerScriptSearchTool(server);
|
|
129039
129141
|
registerScriptRunTool(server);
|
|
129040
129142
|
registerScriptUpsertTool(server);
|
|
129143
|
+
registerExtensionDeleteTool(server);
|
|
129144
|
+
registerExtensionEnableTool(server);
|
|
129145
|
+
registerExtensionDisableTool(server);
|
|
129146
|
+
registerExtensionActivateVersionTool(server);
|
|
129041
129147
|
registerExtensionInstallTool(server);
|
|
129042
129148
|
registerExtensionListTool(server);
|
|
129043
129149
|
registerScriptDeleteTool(server);
|
|
@@ -129081,6 +129187,10 @@ async function createServer(opts = {}) {
|
|
|
129081
129187
|
registerScriptApisTool(server);
|
|
129082
129188
|
registerScriptRunTool(server);
|
|
129083
129189
|
registerScriptUpsertTool(server);
|
|
129190
|
+
registerExtensionDeleteTool(server);
|
|
129191
|
+
registerExtensionEnableTool(server);
|
|
129192
|
+
registerExtensionDisableTool(server);
|
|
129193
|
+
registerExtensionActivateVersionTool(server);
|
|
129084
129194
|
registerExtensionInstallTool(server);
|
|
129085
129195
|
registerExtensionListTool(server);
|
|
129086
129196
|
registerScriptDeleteTool(server);
|
|
@@ -129280,6 +129390,10 @@ var SDK_TOOL_NAME_MAP = {
|
|
|
129280
129390
|
script_launchRun: "launch-script-run",
|
|
129281
129391
|
script_getRun: "get-script-run",
|
|
129282
129392
|
script_listRuns: "list-script-runs",
|
|
129393
|
+
extension_delete: "extension-delete",
|
|
129394
|
+
extension_enable: "extension-enable",
|
|
129395
|
+
extension_disable: "extension-disable",
|
|
129396
|
+
extension_activate_version: "extension-activate-version",
|
|
129283
129397
|
extension_install: "extension-install",
|
|
129284
129398
|
extension_list: "extension-list",
|
|
129285
129399
|
swarm_get: "get-swarm",
|
|
@@ -130452,11 +130566,24 @@ async function removeRegistered(id2) {
|
|
|
130452
130566
|
if (previous)
|
|
130453
130567
|
await previous.dispose();
|
|
130454
130568
|
}
|
|
130569
|
+
async function recordLifecycleRequest(record3, operation, agentId, version = record3.activeVersion) {
|
|
130570
|
+
if (!agentId)
|
|
130571
|
+
return;
|
|
130572
|
+
await insertExtensionRun({
|
|
130573
|
+
extensionId: record3.id,
|
|
130574
|
+
version,
|
|
130575
|
+
event: `lifecycle.${operation}.requested`,
|
|
130576
|
+
action: "continue",
|
|
130577
|
+
agentId,
|
|
130578
|
+
subject: record3.name
|
|
130579
|
+
});
|
|
130580
|
+
}
|
|
130455
130581
|
async function enableExtension(id2, opts = {}) {
|
|
130456
130582
|
initExtensionPostBridge();
|
|
130457
130583
|
let record3 = await getExtensionById(id2);
|
|
130458
130584
|
if (!record3)
|
|
130459
130585
|
throw new ExtensionLifecycleError("Extension not found", 404);
|
|
130586
|
+
await recordLifecycleRequest(record3, "enable", opts.agentId);
|
|
130460
130587
|
const agentId = await ensureExtensionAgent(record3.name);
|
|
130461
130588
|
const identified = await setExtensionState(id2, { agentId, updatedBy: opts.by });
|
|
130462
130589
|
if (!identified)
|
|
@@ -130489,6 +130616,7 @@ async function disableExtension(id2, opts = {}) {
|
|
|
130489
130616
|
const record3 = await getExtensionById(id2);
|
|
130490
130617
|
if (!record3)
|
|
130491
130618
|
throw new ExtensionLifecycleError("Extension not found", 404);
|
|
130619
|
+
await recordLifecycleRequest(record3, "disable", opts.agentId);
|
|
130492
130620
|
await removeRegistered(id2);
|
|
130493
130621
|
attemptedFingerprints.delete(id2);
|
|
130494
130622
|
await deactivateExtensionAgent(record3.name);
|
|
@@ -130508,6 +130636,7 @@ async function activateVersion(id2, version, opts = {}) {
|
|
|
130508
130636
|
if (!await getExtensionVersion(id2, version)) {
|
|
130509
130637
|
throw new ExtensionLifecycleError(`Extension version ${version} was not found`, 404);
|
|
130510
130638
|
}
|
|
130639
|
+
await recordLifecycleRequest(current, "activate-version", opts.agentId, version);
|
|
130511
130640
|
const wasEnabled = current.enabled;
|
|
130512
130641
|
if (wasEnabled)
|
|
130513
130642
|
await disableExtension(id2, opts);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runStopHookSessionSummarySubprocess
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-f1f9n77e.js";
|
|
4
4
|
import {
|
|
5
5
|
fetchInstalledMcpServers
|
|
6
6
|
} from "./cli-tng3131n.js";
|
|
@@ -819,7 +819,7 @@ class ClaudeAdapter {
|
|
|
819
819
|
if (transport === "sdk" && isClaudeBridgeEffective(sourceEnv)) {
|
|
820
820
|
throw new Error("CLAUDE_TRANSPORT=sdk cannot run with an effective Claude Bridge configuration. Select CLI transport or disable the bridge.");
|
|
821
821
|
}
|
|
822
|
-
const claudeSdk = transport === "sdk" ? await import("./claude-sdk-session-
|
|
822
|
+
const claudeSdk = transport === "sdk" ? await import("./claude-sdk-session-pbaczbgt.js") : undefined;
|
|
823
823
|
claudeSdk?.validateClaudeSdkAdditionalArgs([
|
|
824
824
|
...claudeBinaryArgv.slice(1),
|
|
825
825
|
...config.additionalArgs ?? []
|
|
@@ -4,12 +4,12 @@ import {
|
|
|
4
4
|
linkIdentity,
|
|
5
5
|
recordUnmappedIdentity,
|
|
6
6
|
resolveIdentity
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-72vksk1n.js";
|
|
8
8
|
import {
|
|
9
9
|
getKv,
|
|
10
10
|
init_db,
|
|
11
11
|
upsertKv
|
|
12
|
-
} from "./cli-
|
|
12
|
+
} from "./cli-gacq5hg8.js";
|
|
13
13
|
|
|
14
14
|
// src/slack/enrich.ts
|
|
15
15
|
init_db();
|
|
@@ -49,7 +49,7 @@ import {
|
|
|
49
49
|
setSlackMessageTracking,
|
|
50
50
|
slackContextKey,
|
|
51
51
|
updateSlackMessageRecord
|
|
52
|
-
} from "./cli-
|
|
52
|
+
} from "./cli-gacq5hg8.js";
|
|
53
53
|
import {
|
|
54
54
|
getAppUrl,
|
|
55
55
|
init_constants
|
|
@@ -54475,7 +54475,7 @@ async function initOtel(serviceRole = process.env.AGENT_ROLE || "api") {
|
|
|
54475
54475
|
return;
|
|
54476
54476
|
initialized = true;
|
|
54477
54477
|
try {
|
|
54478
|
-
const impl = await import("./otel-impl-
|
|
54478
|
+
const impl = await import("./otel-impl-6vbb568y.js");
|
|
54479
54479
|
await impl.boot(serviceRole);
|
|
54480
54480
|
realWithSpan = impl.withSpan;
|
|
54481
54481
|
realStartSpan = impl.startSpan;
|
|
@@ -54871,6 +54871,24 @@ function buildTreeBlocks(roots) {
|
|
|
54871
54871
|
|
|
54872
54872
|
// src/slack/responses.ts
|
|
54873
54873
|
init_db();
|
|
54874
|
+
|
|
54875
|
+
// src/slack/task-output.ts
|
|
54876
|
+
function slackTaskOutput(task) {
|
|
54877
|
+
const output = task.output ?? undefined;
|
|
54878
|
+
if (task.status !== "completed" || task.outputSchema || !task.tags?.includes("deferred")) {
|
|
54879
|
+
return output;
|
|
54880
|
+
}
|
|
54881
|
+
const notice = output?.match(/^Deferred until [^\n]+? \([^\n]+?\) -> (.*)$/);
|
|
54882
|
+
if (!notice)
|
|
54883
|
+
return output;
|
|
54884
|
+
const pending = notice[1]?.trim();
|
|
54885
|
+
return pending ? `Pending: ${pending}` : "";
|
|
54886
|
+
}
|
|
54887
|
+
function isSlackEtaOnlyNotice(task) {
|
|
54888
|
+
return !!task.output && slackTaskOutput(task) === "";
|
|
54889
|
+
}
|
|
54890
|
+
|
|
54891
|
+
// src/slack/responses.ts
|
|
54874
54892
|
function classifySlackUpdateError(error) {
|
|
54875
54893
|
const errorCode = error?.data?.error;
|
|
54876
54894
|
if (errorCode === "message_not_found" || errorCode === "channel_not_found" || errorCode === "thread_not_found") {
|
|
@@ -54890,7 +54908,7 @@ function shouldPostInlineCompletionOutput(task) {
|
|
|
54890
54908
|
return false;
|
|
54891
54909
|
if (task.slackReplySent)
|
|
54892
54910
|
return false;
|
|
54893
|
-
const output = task
|
|
54911
|
+
const output = slackTaskOutput(task)?.trim();
|
|
54894
54912
|
return !!output && isTreeOutputTruncated(markdownToSlack(output));
|
|
54895
54913
|
}
|
|
54896
54914
|
function formatInlineCompletionOutputChunks(opts) {
|
|
@@ -54913,7 +54931,7 @@ async function sendInlineTaskOutput(task) {
|
|
|
54913
54931
|
const chunks = formatInlineCompletionOutputChunks({
|
|
54914
54932
|
agentName: agent.name,
|
|
54915
54933
|
taskId: task.id,
|
|
54916
|
-
output: task
|
|
54934
|
+
output: slackTaskOutput(task) ?? ""
|
|
54917
54935
|
});
|
|
54918
54936
|
try {
|
|
54919
54937
|
for (let i = 0;i < chunks.length; i += MAX_INLINE_OUTPUT_BLOCKS_PER_MESSAGE) {
|
|
@@ -54940,6 +54958,8 @@ async function sendInlineTaskOutput(task) {
|
|
|
54940
54958
|
}
|
|
54941
54959
|
}
|
|
54942
54960
|
async function sendTaskResponse(task) {
|
|
54961
|
+
if (isSlackEtaOnlyNotice(task))
|
|
54962
|
+
return true;
|
|
54943
54963
|
const app = getSlackApp();
|
|
54944
54964
|
if (!app || !task.slackChannelId || !task.slackThreadTs) {
|
|
54945
54965
|
return false;
|
|
@@ -54957,7 +54977,7 @@ async function sendTaskResponse(task) {
|
|
|
54957
54977
|
const agentName = agent.name;
|
|
54958
54978
|
try {
|
|
54959
54979
|
if (task.status === "completed") {
|
|
54960
|
-
const output = task
|
|
54980
|
+
const output = slackTaskOutput(task) || "Task completed.";
|
|
54961
54981
|
const slackOutput = markdownToSlack(output);
|
|
54962
54982
|
const attachmentsBlock = formatAttachmentsBlockForSlack(await getTaskAttachments(task.id));
|
|
54963
54983
|
const body = slackOutput + attachmentsBlock;
|
|
@@ -55065,6 +55085,8 @@ async function updateProgressInPlace(task, progress, messageTs) {
|
|
|
55065
55085
|
}
|
|
55066
55086
|
}
|
|
55067
55087
|
async function updateToFinal(task, messageTs) {
|
|
55088
|
+
if (isSlackEtaOnlyNotice(task))
|
|
55089
|
+
return "ok";
|
|
55068
55090
|
const app = getSlackApp();
|
|
55069
55091
|
if (!app || !task.slackChannelId || !task.agentId)
|
|
55070
55092
|
return "failed";
|
|
@@ -55076,7 +55098,7 @@ async function updateToFinal(task, messageTs) {
|
|
|
55076
55098
|
let text;
|
|
55077
55099
|
let completionBlockBatches;
|
|
55078
55100
|
if (task.status === "completed") {
|
|
55079
|
-
const output = task
|
|
55101
|
+
const output = slackTaskOutput(task) || "Task completed.";
|
|
55080
55102
|
const slackOutput = markdownToSlack(output);
|
|
55081
55103
|
const attachmentsBlock = formatAttachmentsBlockForSlack(await getTaskAttachments(task.id));
|
|
55082
55104
|
const body = slackOutput + attachmentsBlock;
|
|
@@ -55265,7 +55287,7 @@ async function buildTreeNodes(tree) {
|
|
|
55265
55287
|
progress: child.progress ?? undefined,
|
|
55266
55288
|
duration: childDuration,
|
|
55267
55289
|
slackReplySent: child.slackReplySent,
|
|
55268
|
-
output: child
|
|
55290
|
+
output: slackTaskOutput(child),
|
|
55269
55291
|
failureReason: child.failureReason ?? undefined,
|
|
55270
55292
|
attachments: childAttachments,
|
|
55271
55293
|
steered: childSteered,
|
|
@@ -55283,7 +55305,7 @@ async function buildTreeNodes(tree) {
|
|
|
55283
55305
|
progress: task.progress ?? undefined,
|
|
55284
55306
|
duration,
|
|
55285
55307
|
slackReplySent: task.slackReplySent,
|
|
55286
|
-
output: task
|
|
55308
|
+
output: slackTaskOutput(task),
|
|
55287
55309
|
failureReason: task.failureReason ?? undefined,
|
|
55288
55310
|
attachments: rootAttachments,
|
|
55289
55311
|
steered: rootSteered,
|
|
@@ -55793,15 +55815,15 @@ async function initSlackApp() {
|
|
|
55793
55815
|
logLevel: import_bolt.LogLevel.DEBUG,
|
|
55794
55816
|
...slackApiUrl ? { clientOptions: { slackApiUrl } } : {}
|
|
55795
55817
|
});
|
|
55796
|
-
const { registerMessageHandler } = await import("./handlers-
|
|
55797
|
-
const { registerCommandHandler } = await import("./commands-
|
|
55798
|
-
const { registerActionHandlers } = await import("./actions-
|
|
55799
|
-
const { registerWorkObjectHandlers } = await import("./work-objects-
|
|
55818
|
+
const { registerMessageHandler } = await import("./handlers-wrrhsack.js");
|
|
55819
|
+
const { registerCommandHandler } = await import("./commands-wfqqpn95.js");
|
|
55820
|
+
const { registerActionHandlers } = await import("./actions-4sc0v342.js");
|
|
55821
|
+
const { registerWorkObjectHandlers } = await import("./work-objects-rmayxcx7.js");
|
|
55800
55822
|
registerMessageHandler(app);
|
|
55801
55823
|
registerCommandHandler(app);
|
|
55802
55824
|
registerActionHandlers(app);
|
|
55803
55825
|
registerWorkObjectHandlers(app);
|
|
55804
|
-
const { createAssistant } = await import("./assistant-
|
|
55826
|
+
const { createAssistant } = await import("./assistant-zs6wdnrf.js");
|
|
55805
55827
|
app.assistant(createAssistant());
|
|
55806
55828
|
return app;
|
|
55807
55829
|
}
|
|
@@ -55810,7 +55832,7 @@ async function startSlackApp() {
|
|
|
55810
55832
|
await initSlackApp();
|
|
55811
55833
|
}
|
|
55812
55834
|
if (app) {
|
|
55813
|
-
const { isSlackRenderV2Enabled: isSlackRenderV2Enabled2 } = await import("./render-v2-
|
|
55835
|
+
const { isSlackRenderV2Enabled: isSlackRenderV2Enabled2 } = await import("./render-v2-fpb8whme.js");
|
|
55814
55836
|
if (isSlackRenderV2Enabled2())
|
|
55815
55837
|
await ensureSlackRenderV2Activation();
|
|
55816
55838
|
await app.start();
|
|
@@ -56513,7 +56535,7 @@ ${outcomeText(task.failureReason, "Task was cancelled.")}`;
|
|
|
56513
56535
|
}
|
|
56514
56536
|
return `✅
|
|
56515
56537
|
|
|
56516
|
-
${outcomeText(task
|
|
56538
|
+
${outcomeText(slackTaskOutput(task), "Task completed.")}`;
|
|
56517
56539
|
}
|
|
56518
56540
|
async function agentDisplayNameFor(task) {
|
|
56519
56541
|
return task.agentId ? (await getAgentById(task.agentId))?.name ?? "Agent" : "Agent";
|
|
@@ -56530,23 +56552,23 @@ ${outcomeText(task.failureReason, "Task failed.")}`;
|
|
|
56530
56552
|
}
|
|
56531
56553
|
return `↳ ✅ ${agentName} — result
|
|
56532
56554
|
|
|
56533
|
-
${outcomeText(task
|
|
56555
|
+
${outcomeText(slackTaskOutput(task), "Task completed.")}`;
|
|
56534
56556
|
}
|
|
56535
56557
|
function isSlackContinuation(task) {
|
|
56536
56558
|
return task.source === "schedule" && task.taskType === "deferred" && !!task.slackChannelId && !!task.slackThreadTs;
|
|
56537
56559
|
}
|
|
56538
56560
|
function isChildCardCandidate(task, delegationActivatedAt) {
|
|
56539
|
-
return task.source !== "slack" && !isSlackContinuation(task) && !!task.slackChannelId && !!task.slackThreadTs && (task.status === "completed" || task.status === "failed") && task.taskType !== "follow-up" && task.taskType !== "reroute-decision" && task.createdAt >= delegationActivatedAt;
|
|
56561
|
+
return !isSlackEtaOnlyNotice(task) && task.source !== "slack" && !isSlackContinuation(task) && !!task.slackChannelId && !!task.slackThreadTs && (task.status === "completed" || task.status === "failed") && task.taskType !== "follow-up" && task.taskType !== "reroute-decision" && task.createdAt >= delegationActivatedAt;
|
|
56540
56562
|
}
|
|
56541
56563
|
function taskNeedsDirectOutcome(task, activatedAt) {
|
|
56542
|
-
return (task.source === "slack" && isAskOutcomeStatus(task.status) || isSlackContinuation(task) && isOutcomeStatus(task.status)) && task.createdAt >= activatedAt;
|
|
56564
|
+
return !isSlackEtaOnlyNotice(task) && (task.source === "slack" && isAskOutcomeStatus(task.status) || isSlackContinuation(task) && isOutcomeStatus(task.status)) && task.createdAt >= activatedAt;
|
|
56543
56565
|
}
|
|
56544
56566
|
async function conclusionResultsLines(closure) {
|
|
56545
56567
|
const lines = [];
|
|
56546
56568
|
for (const member of closure) {
|
|
56547
56569
|
if (member.taskType === "follow-up" || member.taskType === "reroute-decision")
|
|
56548
56570
|
continue;
|
|
56549
|
-
if (!isOutcomeStatus(member.status))
|
|
56571
|
+
if (!isOutcomeStatus(member.status) || isSlackEtaOnlyNotice(member))
|
|
56550
56572
|
continue;
|
|
56551
56573
|
const glyph = await taskStateGlyph(member, new Date);
|
|
56552
56574
|
const agentName = await agentDisplayNameFor(member);
|
|
@@ -56555,7 +56577,7 @@ async function conclusionResultsLines(closure) {
|
|
|
56555
56577
|
lines.push(`↳ ${glyph} ${agentName} — ${card.permalink}`);
|
|
56556
56578
|
continue;
|
|
56557
56579
|
}
|
|
56558
|
-
const raw = outcomeText(member.status === "failed" ? member.failureReason : member
|
|
56580
|
+
const raw = outcomeText(member.status === "failed" ? member.failureReason : slackTaskOutput(member), "");
|
|
56559
56581
|
const digest = raw.length > CONCLUSION_DIGEST_LENGTH ? `${raw.slice(0, CONCLUSION_DIGEST_LENGTH).trimEnd()}…` : raw;
|
|
56560
56582
|
const label = digest ? `${agentName} — ${digest}` : agentName;
|
|
56561
56583
|
lines.push(`↳ ${glyph} ${label} ${getTaskLink(member.id)}`);
|
|
@@ -57051,4 +57073,4 @@ function _resetSlackRenderV2ForTests() {
|
|
|
57051
57073
|
outcomeDeliveryFailures.clear();
|
|
57052
57074
|
}
|
|
57053
57075
|
|
|
57054
|
-
export { initialize, ensure, isPollTracingEnabled, initOtel, withSpan, startSpan, withSpanContext, withRemoteContext, injectTraceContext, recordSessionCost, recordDbRetentionSweep, recordDbRetentionStatement, require_dist7 as require_dist, ackSlackMessage, getTaskLink, getTaskUrl, markdownToSlack, buildCancelledBlocks, buildBufferFlushBlocks, buildTreeBlocks, getAgentDisplayName, getAgentEmoji, isSlackRenderV2Enabled, isSlackDelegationEnabled, callSlackWithRetry, formatV2Duration, renderThreadTree, ensureSlackThreadTree, childOutcomeContent, streamOutcomeCard, processSlackRenderV2, _resetSlackRenderV2ForTests, registerTreeMessage, getSlackApp, initSlackApp, startSlackApp, stopSlackApp };
|
|
57076
|
+
export { initialize, ensure, isPollTracingEnabled, initOtel, withSpan, startSpan, withSpanContext, withRemoteContext, injectTraceContext, recordSessionCost, recordDbRetentionSweep, recordDbRetentionStatement, require_dist7 as require_dist, ackSlackMessage, getTaskLink, getTaskUrl, markdownToSlack, buildCancelledBlocks, buildBufferFlushBlocks, buildTreeBlocks, slackTaskOutput, getAgentDisplayName, getAgentEmoji, isSlackRenderV2Enabled, isSlackDelegationEnabled, callSlackWithRetry, formatV2Duration, renderThreadTree, ensureSlackThreadTree, childOutcomeContent, streamOutcomeCard, processSlackRenderV2, _resetSlackRenderV2ForTests, registerTreeMessage, getSlackApp, initSlackApp, startSlackApp, stopSlackApp };
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
recoverIncompleteRuns,
|
|
16
16
|
repointTrackerSyncBySwarmId,
|
|
17
17
|
resolveLeadOnlyRecoveryAssignment
|
|
18
|
-
} from "./cli-
|
|
18
|
+
} from "./cli-72vksk1n.js";
|
|
19
19
|
import {
|
|
20
20
|
isMultiRuntimeEnabled
|
|
21
21
|
} from "./cli-re8z5p8p.js";
|
|
@@ -61,7 +61,7 @@ import {
|
|
|
61
61
|
releaseStaleReviewingTasks,
|
|
62
62
|
supersedeTask,
|
|
63
63
|
updateAgentStatus
|
|
64
|
-
} from "./cli-
|
|
64
|
+
} from "./cli-gacq5hg8.js";
|
|
65
65
|
import {
|
|
66
66
|
init_registry,
|
|
67
67
|
init_resolver,
|