@desplega.ai/agent-swarm 1.153.0 → 1.154.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-ahmjxhek.js → acp-adapter-eb2aj8xy.js} +1 -1
- package/dist/{actions-jzrfpkmn.js → actions-kpnwp1kz.js} +18 -18
- package/dist/{app-03na2vwb.js → app-zk1apkf6.js} +6 -6
- package/dist/{assistant-hfkxvhgt.js → assistant-kwq4y50q.js} +19 -19
- package/dist/{boot-reembed-c98xrad3.js → boot-reembed-22hd3jjn.js} +7 -7
- package/dist/{boot-reembed-zt3qm9xn.js → boot-reembed-qe168424.js} +8 -8
- package/dist/{boot-scrub-logs-jcqd8ksj.js → boot-scrub-logs-pkdpsrjd.js} +5 -5
- package/dist/{claude-adapter-mgryg8g3.js → claude-adapter-3fx90nww.js} +10 -10
- package/dist/{claude-sdk-session-jjf4zss1.js → claude-sdk-session-z7fahf1k.js} +10 -10
- package/dist/{cli-1hwnb4hc.js → cli-09y3tjxz.js} +1 -1
- package/dist/{cli-b2g6mzjc.js → cli-0e31nm4n.js} +1 -1
- package/dist/{cli-5mbmvxnn.js → cli-1jpjafw4.js} +5 -5
- package/dist/{cli-bw0dfwkr.js → cli-243tzws8.js} +1 -1
- package/dist/{cli-rj7de4b2.js → cli-24k806sc.js} +1 -1
- package/dist/{cli-7g9s78jf.js → cli-3bkz2p7j.js} +7 -6
- package/dist/{cli-zcsyfw2z.js → cli-4k7jazkq.js} +4 -0
- package/dist/{cli-s5s1f2yn.js → cli-5vs0nh43.js} +25 -20
- package/dist/{cli-qrqhc31j.js → cli-6r3cgpk2.js} +94 -52
- package/dist/{cli-pgj4a5fb.js → cli-71cj99hx.js} +4 -3
- package/dist/{cli-d6hk10xx.js → cli-8sea27q4.js} +2 -2
- package/dist/{cli-a9scg8sv.js → cli-913yakhv.js} +22 -7
- package/dist/{cli-pf9q3696.js → cli-927erqqt.js} +5 -2
- package/dist/{cli-zy5w9gpt.js → cli-95jnpnqg.js} +1 -1
- package/dist/{cli-cdq08v3r.js → cli-abp3g4ax.js} +15 -2
- package/dist/{cli-nq0kgyxe.js → cli-acy6bfhr.js} +10 -7
- package/dist/{cli-n0q9b7j4.js → cli-c1v10xb2.js} +157 -52
- package/dist/{cli-tdh4hjr2.js → cli-e0pg4zeh.js} +1 -1
- package/dist/{cli-83wkg402.js → cli-e31ehqwy.js} +1 -1
- package/dist/{cli-m04pt18h.js → cli-e3229na9.js} +3 -3
- package/dist/{cli-ysc1kbet.js → cli-e3cyf59d.js} +2 -2
- package/dist/{cli-mzgyhxbe.js → cli-fdzg6jhf.js} +2 -2
- package/dist/{cli-0d9nbqxf.js → cli-g2h29qar.js} +2 -2
- package/dist/{cli-djvxhnc4.js → cli-ge67p080.js} +124 -26
- package/dist/{cli-7pnz2v6s.js → cli-hws0vn86.js} +2 -2
- package/dist/{cli-3bcmp015.js → cli-kp3qs53m.js} +2 -2
- package/dist/{cli-ybpp1srm.js → cli-myaxtgh8.js} +2 -1
- package/dist/{cli-r8tdds6s.js → cli-n62atwh9.js} +1 -1
- package/dist/{cli-6ks9xf1n.js → cli-pf1v8xhb.js} +4 -4
- package/dist/{cli-5taqtpze.js → cli-q85qhckh.js} +6 -6
- package/dist/{cli-eazstkad.js → cli-r1d3dzt6.js} +2 -2
- package/dist/{cli-ja7mrygn.js → cli-rxkqvngf.js} +2 -2
- package/dist/{cli-vw03hg5t.js → cli-stwsmd6k.js} +2 -2
- package/dist/{cli-z61ykvam.js → cli-wg04s9kr.js} +4 -3
- package/dist/cli.js +13 -12
- package/dist/{codex-adapter-8548daap.js → codex-adapter-ttdm995v.js} +5 -5
- package/dist/{codex-hook-8jexc34x.js → codex-hook-8gx7bcz0.js} +3 -3
- package/dist/{codex-session-runner-2dad8p4x.js → codex-session-runner-3v8nh4c8.js} +5 -5
- package/dist/{commands-355dbpa8.js → commands-1cxwbhhq.js} +5 -5
- package/dist/{db-4jjvwz1s.js → db-y9zwsr79.js} +23 -5
- package/dist/{dispatcher-ca590nkz.js → dispatcher-9m9zss36.js} +17 -17
- package/dist/{dsh-adapter-rgvj6ykp.js → dsh-adapter-gsb2qqf9.js} +2 -2
- package/dist/{google-generative-ai-xtw7tggr.js → google-generative-ai-gwwrnzqn.js} +1 -1
- package/dist/{google-vertex-zdqpms6n.js → google-vertex-5wfawpwz.js} +1 -1
- package/dist/{handlers-2y6dqpvf.js → handlers-36fm1bwn.js} +20 -20
- package/dist/{hook-0s8knepr.js → hook-pntw4r8h.js} +8 -8
- package/dist/{hook-k0gec254.js → hook-vwq8y26p.js} +9 -9
- package/dist/{http-jp2nb4zw.js → http-20jesakk.js} +89 -56
- package/dist/{index-42s7eezq.js → index-6artrehg.js} +17 -17
- package/dist/{index-3mq6ce93.js → index-9n5z2492.js} +17 -17
- package/dist/{index-0wzg3sp3.js → index-j5wrf1yw.js} +11 -11
- package/dist/{index-s37dbevy.js → index-m2xqpz5r.js} +18 -18
- package/dist/{index-b56xkbc7.js → index-m9ks8a7t.js} +7 -7
- package/dist/{keepalive-9pfw7t02.js → keepalive-pwxvxd2c.js} +7 -7
- package/dist/{lead-7vcmcdq4.js → lead-m789wqa3.js} +26 -26
- package/dist/{maintenance-x277jbpd.js → maintenance-bvg6w7e2.js} +8 -8
- package/dist/{oauth-refresh-sweep-5fwa7th2.js → oauth-refresh-sweep-6v4bd737.js} +6 -6
- package/dist/{onboard-17sv0f51.js → onboard-snckpcj1.js} +14 -2
- package/dist/{otel-impl-srjy4be4.js → otel-impl-e0ytens5.js} +1 -1
- package/dist/{pi-mono-adapter-946a0sdd.js → pi-mono-adapter-c4ggemhz.js} +6 -6
- package/dist/{pricing-refresh-vetcm563.js → pricing-refresh-52g2ywrw.js} +7 -7
- package/dist/{rbac-roles-cmxaddmy.js → rbac-roles-5455kfdn.js} +5 -5
- package/dist/{rbac-roles-cfzgr6r1.js → rbac-roles-hbf0xa52.js} +6 -6
- package/dist/{render-v2-f9hzff72.js → render-v2-npm8xdzh.js} +12 -8
- package/dist/{seed-pricing-jggk6rsy.js → seed-pricing-650wbr1n.js} +6 -6
- package/dist/{setup-8mfceb9t.js → setup-k1mew5rf.js} +2 -2
- package/dist/{virtual-modules-ax661xp0.js → virtual-modules-2q5b2pk4.js} +2 -2
- package/dist/{work-objects-vdsdcczj.js → work-objects-2ea3kvwg.js} +20 -20
- package/dist/{worker-cd0nhyv1.js → worker-ec6hvc4m.js} +26 -26
- package/openapi.json +74 -3
- package/package.json +2 -1
- package/plugin/opencode-plugins/lib/memory-raters.ts +7 -0
- package/src/be/db/agents.ts +75 -2
- package/src/be/db/tasks/read.ts +2 -0
- package/src/be/db/tasks/write.ts +7 -1
- package/src/be/db.ts +140 -18
- package/src/be/memory/raters/llm.ts +2 -6
- package/src/be/memory/raters/noop.ts +2 -3
- package/src/be/memory/raters/registry.ts +4 -10
- package/src/be/migrations/157_defer_provenance_and_marker.sql +27 -0
- package/src/be/seed/agent-fs-provision.ts +23 -0
- package/src/commands/onboard/compose-generator.ts +10 -0
- package/src/commands/onboard/env-generator.ts +8 -0
- package/src/commands/runner.ts +18 -2
- package/src/extensions/identity.ts +15 -7
- package/src/hooks/codex-hook.ts +7 -1
- package/src/http/agents.ts +10 -2
- package/src/http/poll.ts +7 -0
- package/src/http/schedules.ts +10 -0
- package/src/http/script-runs.ts +35 -26
- package/src/http/status.ts +2 -1
- package/src/http/tasks.ts +6 -1
- package/src/prompts/memories.ts +5 -7
- package/src/prompts/session-templates.ts +3 -2
- package/src/prompts/steering-delivery.ts +2 -0
- package/src/providers/codex-adapter.ts +3 -6
- package/src/providers/pi-mono-extension.ts +2 -5
- package/src/slack/ack.ts +43 -8
- package/src/slack/handlers.ts +7 -1
- package/src/slack/render-v2.ts +186 -17
- package/src/slack/responses.ts +1 -3
- package/src/slack/task-output.ts +66 -8
- package/src/slack/thread-buffer.ts +27 -3
- package/src/tests/agent-fs-provision-seeder.test.ts +56 -2
- package/src/tests/codex-steering-hook.test.ts +2 -2
- package/src/tests/db-task-read-contract.test.ts +9 -0
- package/src/tests/db-task-write-contract.test.ts +9 -0
- package/src/tests/defer-task.test.ts +115 -16
- package/src/tests/extension-agent-visibility.test.ts +474 -0
- package/src/tests/extensions-lifecycle.test.ts +3 -1
- package/src/tests/fetch-resolved-env.test.ts +43 -0
- package/src/tests/memory-rate-tool.test.ts +7 -10
- package/src/tests/memory-rater-defaults.test.ts +23 -0
- package/src/tests/memory-rater-e2e.test.ts +2 -3
- package/src/tests/script-connections.test.ts +3 -0
- package/src/tests/slack-render-v2.test.ts +446 -16
- package/src/tests/slack-steering.test.ts +69 -1
- package/src/tests/slack-task-output.test.ts +33 -12
- package/src/tests/steering-core.test.ts +35 -0
- package/src/tests/steering-delivery.test.ts +39 -0
- package/src/tests/steering-transport.test.ts +2 -2
- package/src/tests/workflow-live-recovery.test.ts +126 -0
- package/src/tools/defer-task.ts +64 -26
- package/src/tools/join-swarm.ts +1 -1
- package/src/tools/schedules/create-schedule.ts +11 -1
- package/src/tools/schedules/patch-schedule.ts +5 -0
- package/src/tools/schedules/update-schedule.ts +5 -0
- package/src/tools/send-task.ts +6 -0
- package/src/tools/utils.ts +1 -1
- package/src/types.ts +13 -0
- package/src/utils/memory-raters.ts +3 -0
- package/src/workflows/engine.ts +28 -0
- package/src/workflows/recovery.ts +7 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
renderSteeringDelivery
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-71cj99hx.js";
|
|
4
4
|
import {
|
|
5
5
|
checkClaudeManagedCredentials
|
|
6
6
|
} from "./cli-scwq51gn.js";
|
|
@@ -12,18 +12,18 @@ import {
|
|
|
12
12
|
} from "./cli-18amys3y.js";
|
|
13
13
|
import {
|
|
14
14
|
checkDshCredentials
|
|
15
|
-
} from "./cli-
|
|
15
|
+
} from "./cli-95jnpnqg.js";
|
|
16
16
|
import {
|
|
17
17
|
checkCodexCredentials,
|
|
18
18
|
codexUserHome
|
|
19
|
-
} from "./cli-
|
|
19
|
+
} from "./cli-q85qhckh.js";
|
|
20
20
|
import {
|
|
21
21
|
renderMemoriesPrompt,
|
|
22
22
|
writeSkillsToFilesystem
|
|
23
|
-
} from "./cli-
|
|
23
|
+
} from "./cli-927erqqt.js";
|
|
24
24
|
import {
|
|
25
25
|
checkClaudeCredentials
|
|
26
|
-
} from "./cli-
|
|
26
|
+
} from "./cli-kp3qs53m.js";
|
|
27
27
|
import {
|
|
28
28
|
MAX_RATE_LIMIT_RESET_MS,
|
|
29
29
|
isCodexCreditsExhaustedMessage,
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
import {
|
|
38
38
|
resolveScriptsOnlyMode,
|
|
39
39
|
validateJsonSchema
|
|
40
|
-
} from "./cli-
|
|
40
|
+
} from "./cli-6r3cgpk2.js";
|
|
41
41
|
import {
|
|
42
42
|
authJsonToCredentialSelection,
|
|
43
43
|
credentialsToAuthJson,
|
|
@@ -64,7 +64,7 @@ import {
|
|
|
64
64
|
syncProfileFilesToServer,
|
|
65
65
|
writeIdentityBaselines,
|
|
66
66
|
writeProfileFileFromDb
|
|
67
|
-
} from "./cli-
|
|
67
|
+
} from "./cli-g2h29qar.js";
|
|
68
68
|
import {
|
|
69
69
|
ensure,
|
|
70
70
|
initOtel,
|
|
@@ -74,7 +74,7 @@ import {
|
|
|
74
74
|
startSpan,
|
|
75
75
|
withSpan,
|
|
76
76
|
withSpanContext
|
|
77
|
-
} from "./cli-
|
|
77
|
+
} from "./cli-c1v10xb2.js";
|
|
78
78
|
import {
|
|
79
79
|
init_task_attachment_links,
|
|
80
80
|
taskAttachmentFetchCommand
|
|
@@ -83,12 +83,12 @@ import {
|
|
|
83
83
|
initTelemetry,
|
|
84
84
|
init_telemetry,
|
|
85
85
|
telemetry
|
|
86
|
-
} from "./cli-
|
|
86
|
+
} from "./cli-ge67p080.js";
|
|
87
87
|
import {
|
|
88
88
|
ProviderNameSchema,
|
|
89
89
|
init_types,
|
|
90
90
|
resolveTaskModelSelection
|
|
91
|
-
} from "./cli-
|
|
91
|
+
} from "./cli-4k7jazkq.js";
|
|
92
92
|
import {
|
|
93
93
|
generateDefaultClaudeMd,
|
|
94
94
|
generateDefaultIdentityMd,
|
|
@@ -98,7 +98,7 @@ import {
|
|
|
98
98
|
init_base_prompt,
|
|
99
99
|
init_defaults,
|
|
100
100
|
init_templates
|
|
101
|
-
} from "./cli-
|
|
101
|
+
} from "./cli-0e31nm4n.js";
|
|
102
102
|
import {
|
|
103
103
|
configureHttpResolver,
|
|
104
104
|
init_resolver,
|
|
@@ -107,7 +107,7 @@ import {
|
|
|
107
107
|
interpolate,
|
|
108
108
|
isSteeringEnabled,
|
|
109
109
|
resolveTemplateAsync
|
|
110
|
-
} from "./cli-
|
|
110
|
+
} from "./cli-wg04s9kr.js";
|
|
111
111
|
import {
|
|
112
112
|
init_credentials,
|
|
113
113
|
resolveCredentialPools
|
|
@@ -156,15 +156,15 @@ async function materializeCodexAuthJson(_slot, creds, deps = {}) {
|
|
|
156
156
|
async function createProviderAdapter(provider) {
|
|
157
157
|
switch (provider) {
|
|
158
158
|
case "claude": {
|
|
159
|
-
const { ClaudeAdapter } = await import("./claude-adapter-
|
|
159
|
+
const { ClaudeAdapter } = await import("./claude-adapter-3fx90nww.js");
|
|
160
160
|
return new ClaudeAdapter;
|
|
161
161
|
}
|
|
162
162
|
case "pi": {
|
|
163
|
-
const { PiMonoAdapter } = await import("./pi-mono-adapter-
|
|
163
|
+
const { PiMonoAdapter } = await import("./pi-mono-adapter-c4ggemhz.js");
|
|
164
164
|
return new PiMonoAdapter;
|
|
165
165
|
}
|
|
166
166
|
case "codex": {
|
|
167
|
-
const { CodexAdapter } = await import("./codex-adapter-
|
|
167
|
+
const { CodexAdapter } = await import("./codex-adapter-ttdm995v.js");
|
|
168
168
|
return new CodexAdapter;
|
|
169
169
|
}
|
|
170
170
|
case "claude-managed": {
|
|
@@ -180,11 +180,11 @@ async function createProviderAdapter(provider) {
|
|
|
180
180
|
return new OpencodeAdapter;
|
|
181
181
|
}
|
|
182
182
|
case "dsh": {
|
|
183
|
-
const { DshAdapter } = await import("./dsh-adapter-
|
|
183
|
+
const { DshAdapter } = await import("./dsh-adapter-gsb2qqf9.js");
|
|
184
184
|
return new DshAdapter;
|
|
185
185
|
}
|
|
186
186
|
case "acp": {
|
|
187
|
-
const { ACPAdapter } = await import("./acp-adapter-
|
|
187
|
+
const { ACPAdapter } = await import("./acp-adapter-eb2aj8xy.js");
|
|
188
188
|
return new ACPAdapter;
|
|
189
189
|
}
|
|
190
190
|
default:
|
|
@@ -598,7 +598,7 @@ var CREDENTIAL_PROVIDER_CHECKERS = {
|
|
|
598
598
|
devin: (env) => checkDevinCredentials(env),
|
|
599
599
|
opencode: (env, opts) => checkOpencodeCredentials(env, opts),
|
|
600
600
|
pi: async (env, opts) => {
|
|
601
|
-
const { checkPiMonoCredentials } = await import("./pi-mono-adapter-
|
|
601
|
+
const { checkPiMonoCredentials } = await import("./pi-mono-adapter-c4ggemhz.js");
|
|
602
602
|
return checkPiMonoCredentials(env, opts);
|
|
603
603
|
},
|
|
604
604
|
acp: () => ({ ready: true, missing: [], satisfiedBy: "sdk-delegated" })
|
|
@@ -1377,7 +1377,7 @@ async function pollAndStartSteeringDispatches(config, taskId, session, state, fe
|
|
|
1377
1377
|
state.inFlightMessageIds.add(message.id);
|
|
1378
1378
|
const item = { message };
|
|
1379
1379
|
prepared.push(item);
|
|
1380
|
-
item.text = session.deliverSteering && !state.outcomes.has(message.id) ? await renderSteeringDelivery(message.id, message.body) : undefined;
|
|
1380
|
+
item.text = session.deliverSteering && !state.outcomes.has(message.id) ? await renderSteeringDelivery(message.id, message.body, message.senderLabel ?? message.createdByKind) : undefined;
|
|
1381
1381
|
}
|
|
1382
1382
|
} catch (error) {
|
|
1383
1383
|
for (const { message } of prepared)
|
|
@@ -1473,6 +1473,7 @@ async function closeAgent(config, role) {
|
|
|
1473
1473
|
console.log(`[${role}] Agent marked as offline`);
|
|
1474
1474
|
} catch {}
|
|
1475
1475
|
}
|
|
1476
|
+
var deploymentMemoryRaters = process.env.MEMORY_RATERS;
|
|
1476
1477
|
async function fetchResolvedEnv(apiUrl, apiKey, agentId, baseEnv = process.env, taskModel, sessionContext) {
|
|
1477
1478
|
const env = { ...baseEnv };
|
|
1478
1479
|
const repoId = sessionContext?.repoId;
|
|
@@ -1488,6 +1489,7 @@ async function fetchResolvedEnv(apiUrl, apiKey, agentId, baseEnv = process.env,
|
|
|
1488
1489
|
console.warn(`[env-reload] Failed to fetch config: ${response.status}`);
|
|
1489
1490
|
} else {
|
|
1490
1491
|
const data = await response.json();
|
|
1492
|
+
env.MEMORY_RATERS = baseEnv === process.env ? deploymentMemoryRaters : baseEnv.MEMORY_RATERS;
|
|
1491
1493
|
if (data.configs?.length) {
|
|
1492
1494
|
scriptsOnlyConfigValue = data.configs.find((config) => config.key === "SCRIPTS_ONLY_MCP")?.value;
|
|
1493
1495
|
for (const config of data.configs) {
|
|
@@ -1583,7 +1585,10 @@ function applyResolvedEnvToProcessEnv(freshEnv) {
|
|
|
1583
1585
|
const changed = [];
|
|
1584
1586
|
for (const key of RELOADABLE_ENV_KEYS) {
|
|
1585
1587
|
const next = freshEnv[key];
|
|
1586
|
-
if (
|
|
1588
|
+
if (key === "MEMORY_RATERS" && next === undefined && process.env[key] !== undefined) {
|
|
1589
|
+
delete process.env[key];
|
|
1590
|
+
changed.push(key);
|
|
1591
|
+
} else if (next !== undefined && next !== process.env[key]) {
|
|
1587
1592
|
const previous = process.env[key];
|
|
1588
1593
|
process.env[key] = next;
|
|
1589
1594
|
changed.push(key);
|
|
@@ -7,9 +7,10 @@ import {
|
|
|
7
7
|
DEFAULT_MODEL,
|
|
8
8
|
LlmRater,
|
|
9
9
|
REFERENCES_SOURCE_MAX_LENGTH,
|
|
10
|
+
getMemoryRaterNames,
|
|
10
11
|
resolveCredential,
|
|
11
12
|
sanitizeReferencesSource
|
|
12
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-3bkz2p7j.js";
|
|
13
14
|
import {
|
|
14
15
|
isMultiRuntimeEnabled
|
|
15
16
|
} from "./cli-re8z5p8p.js";
|
|
@@ -18,14 +19,14 @@ import {
|
|
|
18
19
|
} from "./cli-3dpj7atn.js";
|
|
19
20
|
import {
|
|
20
21
|
startPricingRefreshLoop
|
|
21
|
-
} from "./cli-
|
|
22
|
+
} from "./cli-stwsmd6k.js";
|
|
22
23
|
import {
|
|
23
24
|
seedPricingFromModelsDev
|
|
24
|
-
} from "./cli-
|
|
25
|
+
} from "./cli-e0pg4zeh.js";
|
|
25
26
|
import {
|
|
26
27
|
ensureRbacSeedsSynced,
|
|
27
28
|
getUserGrant
|
|
28
|
-
} from "./cli-
|
|
29
|
+
} from "./cli-e31ehqwy.js";
|
|
29
30
|
import {
|
|
30
31
|
can,
|
|
31
32
|
decideAdmission,
|
|
@@ -96,7 +97,7 @@ import {
|
|
|
96
97
|
upsertScriptConnection,
|
|
97
98
|
validateDefinition,
|
|
98
99
|
writeBareImportShim
|
|
99
|
-
} from "./cli-
|
|
100
|
+
} from "./cli-pf1v8xhb.js";
|
|
100
101
|
import {
|
|
101
102
|
detachedProcessGroup,
|
|
102
103
|
registerProcessGroup,
|
|
@@ -119,7 +120,7 @@ import {
|
|
|
119
120
|
listAuthorizationsForApp,
|
|
120
121
|
onAuthorizationRefreshed,
|
|
121
122
|
upsertOAuthApp
|
|
122
|
-
} from "./cli-
|
|
123
|
+
} from "./cli-n62atwh9.js";
|
|
123
124
|
import {
|
|
124
125
|
ZodFirstPartyTypeKind,
|
|
125
126
|
objectType
|
|
@@ -140,7 +141,7 @@ import {
|
|
|
140
141
|
isGraphExpansionEnabled,
|
|
141
142
|
rerank,
|
|
142
143
|
rowToCandidate
|
|
143
|
-
} from "./cli-
|
|
144
|
+
} from "./cli-hws0vn86.js";
|
|
144
145
|
import {
|
|
145
146
|
require_dist
|
|
146
147
|
} from "./cli-51tf7ac3.js";
|
|
@@ -154,7 +155,7 @@ import {
|
|
|
154
155
|
startSlackApp,
|
|
155
156
|
stopSlackApp,
|
|
156
157
|
withSpan
|
|
157
|
-
} from "./cli-
|
|
158
|
+
} from "./cli-c1v10xb2.js";
|
|
158
159
|
import {
|
|
159
160
|
init_task_attachment_links,
|
|
160
161
|
taskAttachmentDisplayUrl,
|
|
@@ -162,6 +163,7 @@ import {
|
|
|
162
163
|
} from "./cli-2658f6at.js";
|
|
163
164
|
import {
|
|
164
165
|
CredentialBindingSchema,
|
|
166
|
+
EXTENSION_AGENT_ROLE,
|
|
165
167
|
KvTypeCollisionError,
|
|
166
168
|
MAX_EMPTY_POLLS,
|
|
167
169
|
SteeringRequestError,
|
|
@@ -215,6 +217,7 @@ import {
|
|
|
215
217
|
deleteWorkflow,
|
|
216
218
|
emitMcpServerConnectedTelemetry,
|
|
217
219
|
exports_db,
|
|
220
|
+
extensionAgentAssignmentError,
|
|
218
221
|
failTask,
|
|
219
222
|
findCompletedTaskInThread,
|
|
220
223
|
findExistingLinearTrackerContextWork,
|
|
@@ -339,6 +342,7 @@ import {
|
|
|
339
342
|
installMcpServer,
|
|
340
343
|
installSkill,
|
|
341
344
|
isAgentEligibleForTask,
|
|
345
|
+
isExtensionAgent,
|
|
342
346
|
isInTransaction,
|
|
343
347
|
isReservedConfigKey,
|
|
344
348
|
isSteeringEnabled,
|
|
@@ -411,7 +415,7 @@ import {
|
|
|
411
415
|
upsertSwarmConfig,
|
|
412
416
|
validateConfigValue,
|
|
413
417
|
workflowContextKey
|
|
414
|
-
} from "./cli-
|
|
418
|
+
} from "./cli-ge67p080.js";
|
|
415
419
|
import {
|
|
416
420
|
$OpenAPIRegistry,
|
|
417
421
|
$OpenApiGeneratorV31,
|
|
@@ -465,13 +469,13 @@ import {
|
|
|
465
469
|
normalizeAssetKey,
|
|
466
470
|
parseAssetKey,
|
|
467
471
|
splitLegacyModelAlias
|
|
468
|
-
} from "./cli-
|
|
472
|
+
} from "./cli-4k7jazkq.js";
|
|
469
473
|
import {
|
|
470
474
|
generateDefaultClaudeMd,
|
|
471
475
|
generateDefaultIdentityMd,
|
|
472
476
|
generateDefaultSoulMd,
|
|
473
477
|
init_defaults
|
|
474
|
-
} from "./cli-
|
|
478
|
+
} from "./cli-0e31nm4n.js";
|
|
475
479
|
import {
|
|
476
480
|
deepInterpolate,
|
|
477
481
|
findInterpolationTokens,
|
|
@@ -482,7 +486,7 @@ import {
|
|
|
482
486
|
interpolate,
|
|
483
487
|
registerTemplate,
|
|
484
488
|
resolveTemplate
|
|
485
|
-
} from "./cli-
|
|
489
|
+
} from "./cli-wg04s9kr.js";
|
|
486
490
|
import {
|
|
487
491
|
MAX_PROFILE_FILE_LENGTH,
|
|
488
492
|
getAppUrl,
|
|
@@ -548,7 +552,7 @@ import {
|
|
|
548
552
|
import {
|
|
549
553
|
init_package,
|
|
550
554
|
package_default
|
|
551
|
-
} from "./cli-
|
|
555
|
+
} from "./cli-myaxtgh8.js";
|
|
552
556
|
import {
|
|
553
557
|
init_secret_scrubber,
|
|
554
558
|
isSensitiveKey,
|
|
@@ -23712,7 +23716,7 @@ async function notifySlack(text) {
|
|
|
23712
23716
|
return;
|
|
23713
23717
|
}
|
|
23714
23718
|
try {
|
|
23715
|
-
const { getSlackApp: getSlackApp2 } = await import("./app-
|
|
23719
|
+
const { getSlackApp: getSlackApp2 } = await import("./app-zk1apkf6.js");
|
|
23716
23720
|
const app = getSlackApp2();
|
|
23717
23721
|
if (!app) {
|
|
23718
23722
|
console.warn("[Jira webhook keepalive] Slack not available, cannot send notification");
|
|
@@ -23783,7 +23787,7 @@ async function deleteJiraWebhook(webhookId) {
|
|
|
23783
23787
|
console.log(`[Jira webhook keepalive] Deleted webhook id=${webhookId}`);
|
|
23784
23788
|
}
|
|
23785
23789
|
async function overwriteWebhookIds(next) {
|
|
23786
|
-
const { getDbClient: getDbClient2 } = await import("./db-
|
|
23790
|
+
const { getDbClient: getDbClient2 } = await import("./db-y9zwsr79.js");
|
|
23787
23791
|
await getDbClient2().transaction(async (tx) => {
|
|
23788
23792
|
const row = await tx.get("SELECT metadata FROM oauth_apps WHERE provider = 'jira'");
|
|
23789
23793
|
if (!row) {
|
|
@@ -97503,7 +97507,7 @@ async function reloadGlobalConfigsAndIntegrations() {
|
|
|
97503
97507
|
return runWithoutRequestAuth(() => reloadGlobalConfigsAndIntegrationsInner());
|
|
97504
97508
|
}
|
|
97505
97509
|
async function reloadGlobalConfigsAndIntegrationsInner() {
|
|
97506
|
-
const { getEmbeddingProvider: getEmbeddingProvider2, resetEmbeddingProvider } = await import("./index-
|
|
97510
|
+
const { getEmbeddingProvider: getEmbeddingProvider2, resetEmbeddingProvider } = await import("./index-m9ks8a7t.js");
|
|
97507
97511
|
const wasEmbeddingsConfigured = getEmbeddingProvider2().isConfigured();
|
|
97508
97512
|
const updated = await loadGlobalConfigsIntoEnv(true);
|
|
97509
97513
|
await stopSlackApp();
|
|
@@ -97516,10 +97520,10 @@ async function reloadGlobalConfigsAndIntegrationsInner() {
|
|
|
97516
97520
|
integrations.push("embeddings");
|
|
97517
97521
|
}
|
|
97518
97522
|
if (!wasEmbeddingsConfigured && isEmbeddingsConfigured) {
|
|
97519
|
-
import("./boot-reembed-
|
|
97523
|
+
import("./boot-reembed-22hd3jjn.js").then(({ runBootReembed }) => runBootReembed()).catch((err) => {
|
|
97520
97524
|
console.error("[config-reload] memory backfill failed (non-fatal):", err);
|
|
97521
97525
|
});
|
|
97522
|
-
import("./boot-reembed-
|
|
97526
|
+
import("./boot-reembed-qe168424.js").then(({ runBootReembedScripts }) => runBootReembedScripts()).catch((err) => {
|
|
97523
97527
|
console.error("[config-reload] script backfill failed (non-fatal):", err);
|
|
97524
97528
|
});
|
|
97525
97529
|
}
|
|
@@ -98006,7 +98010,7 @@ var storeProgressBlockedWaitingNudge = (r) => {
|
|
|
98006
98010
|
const ms = r.data?.blockedWaitingElapsedMs;
|
|
98007
98011
|
if (typeof ms !== "number")
|
|
98008
98012
|
return;
|
|
98009
|
-
return `That reads as blocked-waiting, ${formatIdleDuration(ms)} since your last update —
|
|
98013
|
+
return `That reads as blocked-waiting, ${formatIdleDuration(ms)} since your last update — keep working if you can, and if the wait is genuinely long, defer-task is one way to resume later instead of polling.`;
|
|
98010
98014
|
};
|
|
98011
98015
|
var workflowLongScriptTimeoutNudge = (r) => {
|
|
98012
98016
|
if (!r.ok)
|
|
@@ -98332,7 +98336,7 @@ function setPreloadedTools(server, names) {
|
|
|
98332
98336
|
async function applyPreToolCall(name, args, requestInfo, inputSchema) {
|
|
98333
98337
|
if (requestInfo.callOrigin !== "mcp")
|
|
98334
98338
|
return { args };
|
|
98335
|
-
const dispatcher = await import("./dispatcher-
|
|
98339
|
+
const dispatcher = await import("./dispatcher-9m9zss36.js");
|
|
98336
98340
|
const result = await dispatcher.dispatchPre("pre.tool.call", { tool: name, args, requestInfo }, inputSchema ? {
|
|
98337
98341
|
validateModify: async (data) => {
|
|
98338
98342
|
const schema = normalizeObjectSchema(inputSchema) ?? inputSchema;
|
|
@@ -104660,11 +104664,7 @@ var FACTORIES = {
|
|
|
104660
104664
|
};
|
|
104661
104665
|
var SERVER_RATERS = new Set(["implicit-citation"]);
|
|
104662
104666
|
function getRegisteredRaters() {
|
|
104663
|
-
const
|
|
104664
|
-
if (!raw || raw.trim() === "") {
|
|
104665
|
-
return [new NoopRater];
|
|
104666
|
-
}
|
|
104667
|
-
const names = raw.split(",").map((s) => s.trim()).filter((s) => s.length > 0);
|
|
104667
|
+
const names = getMemoryRaterNames();
|
|
104668
104668
|
const raters = [];
|
|
104669
104669
|
for (const name of names) {
|
|
104670
104670
|
const factory = FACTORIES[name];
|
|
@@ -105519,7 +105519,6 @@ async function guardTerminalTaskResultWrite(task, write) {
|
|
|
105519
105519
|
|
|
105520
105520
|
// src/tools/defer-task.ts
|
|
105521
105521
|
init_types();
|
|
105522
|
-
init_constants();
|
|
105523
105522
|
|
|
105524
105523
|
class DeferAbortedError extends Error {
|
|
105525
105524
|
}
|
|
@@ -105562,7 +105561,7 @@ function formatDeferralDateTime(target, now, tz) {
|
|
|
105562
105561
|
zone = "UTC";
|
|
105563
105562
|
}
|
|
105564
105563
|
const t = partsInTz(target, zone);
|
|
105565
|
-
const time = `${t.hour}:${t.minute}
|
|
105564
|
+
const time = `${t.hour}:${t.minute}`;
|
|
105566
105565
|
const n = partsInTz(now, zone);
|
|
105567
105566
|
if (t.year === n.year && t.month === n.month && t.day === n.day)
|
|
105568
105567
|
return { date: "today", time };
|
|
@@ -105580,22 +105579,26 @@ async function resolveRequesterTimezone(requestedByUserId) {
|
|
|
105580
105579
|
}
|
|
105581
105580
|
return { tz: "UTC", isFallback: true };
|
|
105582
105581
|
}
|
|
105583
|
-
function
|
|
105584
|
-
|
|
105585
|
-
|
|
105586
|
-
|
|
105587
|
-
return firstLine;
|
|
105588
|
-
return `${firstLine.slice(0, max - 1).trimEnd()}…`;
|
|
105582
|
+
function joinNames(names) {
|
|
105583
|
+
if (names.length < 2)
|
|
105584
|
+
return names[0] ?? "";
|
|
105585
|
+
return `${names.slice(0, -1).join(", ")} and ${names[names.length - 1]}`;
|
|
105589
105586
|
}
|
|
105590
|
-
function
|
|
105591
|
-
const
|
|
105592
|
-
|
|
105593
|
-
|
|
105587
|
+
function renderWaitingOn(agentNames, watchedCount) {
|
|
105588
|
+
const named = joinNames([...new Set(agentNames.filter((name) => name.trim()))]);
|
|
105589
|
+
if (named)
|
|
105590
|
+
return named;
|
|
105591
|
+
return `${watchedCount} task${watchedCount === 1 ? "" : "s"}`;
|
|
105592
|
+
}
|
|
105593
|
+
function renderWhen(nextRunAt, tz, isFallbackTz) {
|
|
105594
|
+
const { date: date2, time } = formatDeferralDateTime(new Date(nextRunAt), new Date, tz);
|
|
105594
105595
|
const timeLabel = isFallbackTz ? `${time} UTC` : time;
|
|
105595
|
-
const
|
|
105596
|
-
|
|
105597
|
-
|
|
105598
|
-
|
|
105596
|
+
const day = date2 === "today" || date2 === "tomorrow" ? date2 : `on ${date2}`;
|
|
105597
|
+
return `${day} at ${timeLabel}`;
|
|
105598
|
+
}
|
|
105599
|
+
function renderHumanFacingDeferral(nextRunAt, tz, isFallbackTz, waitingOn) {
|
|
105600
|
+
const when = renderWhen(nextRunAt, tz, isFallbackTz);
|
|
105601
|
+
return waitingOn ? `Waiting on ${waitingOn} — or ${when} at the latest` : `Checking back ${when}`;
|
|
105599
105602
|
}
|
|
105600
105603
|
var registerDeferTaskTool = (server) => {
|
|
105601
105604
|
createToolRegistrar(server)("defer-task", {
|
|
@@ -105678,6 +105681,7 @@ var registerDeferTaskTool = (server) => {
|
|
|
105678
105681
|
const { tz: requesterTz, isFallback: isFallbackTz } = await resolveRequesterTimezone(task.requestedByUserId);
|
|
105679
105682
|
try {
|
|
105680
105683
|
const committed = await getDbClient().transaction(async () => {
|
|
105684
|
+
const watchedAgentNames = [];
|
|
105681
105685
|
for (const watchedId of watchedTaskIds) {
|
|
105682
105686
|
if (watchedId === taskId)
|
|
105683
105687
|
throw new DeferAbortedError("Cannot wake on the task being deferred.");
|
|
@@ -105686,6 +105690,9 @@ var registerDeferTaskTool = (server) => {
|
|
|
105686
105690
|
throw new DeferAbortedError(`Watched task ${watchedId} not found.`);
|
|
105687
105691
|
if (isTerminalTaskStatus(watched.status))
|
|
105688
105692
|
throw new DeferAbortedError(`Watched task ${watchedId} is already ${watched.status}; read its result instead of deferring.`);
|
|
105693
|
+
const watchedAgent = watched.agentId ? await getAgentById(watched.agentId) : null;
|
|
105694
|
+
if (watchedAgent?.name)
|
|
105695
|
+
watchedAgentNames.push(watchedAgent.name);
|
|
105689
105696
|
}
|
|
105690
105697
|
const schedule = await createScheduledTask({
|
|
105691
105698
|
name: `deferred-${taskId.slice(0, 8)}-${Date.now()}-${crypto.randomUUID()}`,
|
|
@@ -105699,6 +105706,8 @@ var registerDeferTaskTool = (server) => {
|
|
|
105699
105706
|
taskType: "deferred",
|
|
105700
105707
|
tags: ["deferred"],
|
|
105701
105708
|
priority: task.priority,
|
|
105709
|
+
requestedDelayMs: delayMs,
|
|
105710
|
+
requestedRunAt: runAt,
|
|
105702
105711
|
modelTier: task.modelTier,
|
|
105703
105712
|
parentTaskId: taskId,
|
|
105704
105713
|
createdBy
|
|
@@ -105717,9 +105726,10 @@ var registerDeferTaskTool = (server) => {
|
|
|
105717
105726
|
const deferralDetails = `${summary}
|
|
105718
105727
|
|
|
105719
105728
|
Deferred until ${nextRunAt} (schedule ${schedule.id}). Pending: ${note}${checksBlock}`;
|
|
105720
|
-
const terminalOutput = task.outputSchema ? output : renderHumanFacingDeferral(
|
|
105729
|
+
const terminalOutput = task.outputSchema ? output : renderHumanFacingDeferral(nextRunAt, requesterTz, isFallbackTz, wakeOn ? renderWaitingOn(watchedAgentNames, watchedTaskIds.length) : undefined);
|
|
105721
105730
|
const completed = await completeTask(taskId, terminalOutput, {
|
|
105722
|
-
addTags: ["deferred"]
|
|
105731
|
+
addTags: ["deferred"],
|
|
105732
|
+
deferredAt: new Date().toISOString()
|
|
105723
105733
|
});
|
|
105724
105734
|
if (!completed) {
|
|
105725
105735
|
throw new DeferAbortedError(`Task ${taskId} reached a terminal state before this deferral committed.`);
|
|
@@ -106692,7 +106702,7 @@ var registerJoinSwarmTool = (server) => {
|
|
|
106692
106702
|
const agentId = requestInfo.agentId ?? requestedId ?? "";
|
|
106693
106703
|
try {
|
|
106694
106704
|
const agent = await getDbClient().transaction(async () => {
|
|
106695
|
-
const agents = await getAllAgents();
|
|
106705
|
+
const agents = await getAllAgents({ includeExtensions: true });
|
|
106696
106706
|
const existingIdAgent = agents.find((agent3) => agent3.id === agentId);
|
|
106697
106707
|
if (existingIdAgent) {
|
|
106698
106708
|
throw new Error(`Agent with ID "${agentId}" already exists.`);
|
|
@@ -117063,7 +117073,7 @@ async function notifyAutomationPreflightFailure(preflight) {
|
|
|
117063
117073
|
return;
|
|
117064
117074
|
}
|
|
117065
117075
|
try {
|
|
117066
|
-
const { getSlackApp: getSlackApp2 } = await import("./app-
|
|
117076
|
+
const { getSlackApp: getSlackApp2 } = await import("./app-zk1apkf6.js");
|
|
117067
117077
|
const app = getSlackApp2();
|
|
117068
117078
|
if (!app) {
|
|
117069
117079
|
console.warn("[Automation Preflight] Slack not available, cannot send notification");
|
|
@@ -117806,7 +117816,23 @@ async function startWorkflowExecution(workflow, triggerData, registry, options =
|
|
|
117806
117816
|
await walkGraph(workflow.definition, runId, ctx, entryNodes, registry, workflow.id, secretKeys, options);
|
|
117807
117817
|
return runId;
|
|
117808
117818
|
}
|
|
117819
|
+
var activeWalks = new Map;
|
|
117820
|
+
function isWorkflowRunActive(runId) {
|
|
117821
|
+
return activeWalks.has(runId);
|
|
117822
|
+
}
|
|
117809
117823
|
async function walkGraph(def, runId, ctx, startNodes, registry, workflowId, secretKeys = new Set, options = {}) {
|
|
117824
|
+
activeWalks.set(runId, (activeWalks.get(runId) ?? 0) + 1);
|
|
117825
|
+
try {
|
|
117826
|
+
await walkGraphOwned(def, runId, ctx, startNodes, registry, workflowId, secretKeys, options);
|
|
117827
|
+
} finally {
|
|
117828
|
+
const remaining = activeWalks.get(runId) - 1;
|
|
117829
|
+
if (remaining === 0)
|
|
117830
|
+
activeWalks.delete(runId);
|
|
117831
|
+
else
|
|
117832
|
+
activeWalks.set(runId, remaining);
|
|
117833
|
+
}
|
|
117834
|
+
}
|
|
117835
|
+
async function walkGraphOwned(def, runId, ctx, startNodes, registry, workflowId, secretKeys = new Set, options = {}) {
|
|
117810
117836
|
if (!options.requestedByUserId) {
|
|
117811
117837
|
options = {
|
|
117812
117838
|
...options,
|
|
@@ -119094,7 +119120,7 @@ async function recoverIncompleteRuns(registry) {
|
|
|
119094
119120
|
recovered += await recoverApprovalWaitingRuns(registry);
|
|
119095
119121
|
recovered += await recoverWaitStates(registry);
|
|
119096
119122
|
if (recovered > 0) {
|
|
119097
|
-
console.log(`[workflows] Recovered ${recovered} incomplete run(s)
|
|
119123
|
+
console.log(`[workflows] Recovered ${recovered} incomplete run(s)`);
|
|
119098
119124
|
}
|
|
119099
119125
|
return recovered;
|
|
119100
119126
|
}
|
|
@@ -119103,6 +119129,8 @@ async function recoverRunningRuns(registry) {
|
|
|
119103
119129
|
let recovered = 0;
|
|
119104
119130
|
for (const runId of runningRunIds) {
|
|
119105
119131
|
try {
|
|
119132
|
+
if (isWorkflowRunActive(runId))
|
|
119133
|
+
continue;
|
|
119106
119134
|
const run = await getWorkflowRun(runId);
|
|
119107
119135
|
if (!run || run.status !== "running")
|
|
119108
119136
|
continue;
|
|
@@ -119112,6 +119140,8 @@ async function recoverRunningRuns(registry) {
|
|
|
119112
119140
|
const completedNodeIds = new Set(await getCompletedStepNodeIds(runId));
|
|
119113
119141
|
const ctx = run.context ?? {};
|
|
119114
119142
|
const readyNodes = findReadyNodes(workflow.definition, completedNodeIds);
|
|
119143
|
+
if (isWorkflowRunActive(runId))
|
|
119144
|
+
continue;
|
|
119115
119145
|
if (readyNodes.length === 0) {
|
|
119116
119146
|
await updateWorkflowRun(runId, {
|
|
119117
119147
|
status: "completed",
|
|
@@ -120209,7 +120239,7 @@ class HumanInTheLoopExecutor extends BaseExecutor {
|
|
|
120209
120239
|
}
|
|
120210
120240
|
if (notification.channel === "slack") {
|
|
120211
120241
|
try {
|
|
120212
|
-
const { getSlackApp: getSlackApp2 } = await import("./app-
|
|
120242
|
+
const { getSlackApp: getSlackApp2 } = await import("./app-zk1apkf6.js");
|
|
120213
120243
|
const slackApp = getSlackApp2();
|
|
120214
120244
|
if (!slackApp) {
|
|
120215
120245
|
console.warn("[HITL] Slack not initialized — cannot send notification");
|
|
@@ -120329,7 +120359,7 @@ class NotifyExecutor extends BaseExecutor {
|
|
|
120329
120359
|
}
|
|
120330
120360
|
}
|
|
120331
120361
|
case "slack": {
|
|
120332
|
-
const { getSlackApp: getSlackApp2 } = await import("./app-
|
|
120362
|
+
const { getSlackApp: getSlackApp2 } = await import("./app-zk1apkf6.js");
|
|
120333
120363
|
const app = getSlackApp2();
|
|
120334
120364
|
if (!app) {
|
|
120335
120365
|
return {
|
|
@@ -121636,6 +121666,9 @@ var registerCreateScheduleTool = (server) => {
|
|
|
121636
121666
|
if (!agent) {
|
|
121637
121667
|
return toolErr(`Target agent not found: ${targetAgentId}`);
|
|
121638
121668
|
}
|
|
121669
|
+
if (isExtensionAgent(agent)) {
|
|
121670
|
+
return toolErr(extensionAgentAssignmentError(agent));
|
|
121671
|
+
}
|
|
121639
121672
|
}
|
|
121640
121673
|
const resolvedTargetType = targetType ?? "agent-task";
|
|
121641
121674
|
if (resolvedTargetType === "agent-task" && !taskTemplate) {
|
|
@@ -122174,6 +122207,9 @@ var registerPatchScheduleTool = (server) => {
|
|
|
122174
122207
|
if (!agent) {
|
|
122175
122208
|
return toolErr(`Target agent not found: ${targetAgentId}`);
|
|
122176
122209
|
}
|
|
122210
|
+
if (isExtensionAgent(agent)) {
|
|
122211
|
+
return toolErr(extensionAgentAssignmentError(agent));
|
|
122212
|
+
}
|
|
122177
122213
|
}
|
|
122178
122214
|
if (newName && newName !== schedule.name) {
|
|
122179
122215
|
const existing = await getScheduledTaskByName(newName);
|
|
@@ -122461,6 +122497,9 @@ var registerUpdateScheduleTool = (server) => {
|
|
|
122461
122497
|
if (!agent) {
|
|
122462
122498
|
return toolErr(`Target agent not found: ${targetAgentId}`);
|
|
122463
122499
|
}
|
|
122500
|
+
if (isExtensionAgent(agent)) {
|
|
122501
|
+
return toolErr(extensionAgentAssignmentError(agent));
|
|
122502
|
+
}
|
|
122464
122503
|
}
|
|
122465
122504
|
if (newName && newName !== schedule.name) {
|
|
122466
122505
|
const existing = await getScheduledTaskByName(newName);
|
|
@@ -123666,6 +123705,9 @@ async function sendTaskHandler(ctx, {
|
|
|
123666
123705
|
message: `Agent with ID "${targetAgentId}" not found.`
|
|
123667
123706
|
};
|
|
123668
123707
|
}
|
|
123708
|
+
if (isExtensionAgent(agent)) {
|
|
123709
|
+
return { success: false, message: extensionAgentAssignmentError(agent) };
|
|
123710
|
+
}
|
|
123669
123711
|
if (taskOptions.routingAffinity?.leadOnly && !agent.isLead) {
|
|
123670
123712
|
return {
|
|
123671
123713
|
success: false,
|
|
@@ -130261,7 +130303,7 @@ function extensionAgentName(name) {
|
|
|
130261
130303
|
async function ensureExtensionAgent(name) {
|
|
130262
130304
|
const agentName = extensionAgentName(name);
|
|
130263
130305
|
return await getDbClient().transaction(async () => {
|
|
130264
|
-
let agent = (await getAllAgents()).find((candidate) => candidate.name === agentName);
|
|
130306
|
+
let agent = (await getAllAgents({ includeExtensions: true })).find((candidate) => candidate.name === agentName);
|
|
130265
130307
|
if (!agent) {
|
|
130266
130308
|
agent = await createAgent({
|
|
130267
130309
|
name: agentName,
|
|
@@ -130277,14 +130319,14 @@ async function ensureExtensionAgent(name) {
|
|
|
130277
130319
|
await updateAgentMaxTasks(agent.id, 0);
|
|
130278
130320
|
await updateAgentProfile(agent.id, {
|
|
130279
130321
|
description: `System agent for extension ${name}`,
|
|
130280
|
-
role:
|
|
130322
|
+
role: EXTENSION_AGENT_ROLE,
|
|
130281
130323
|
capabilities: []
|
|
130282
|
-
});
|
|
130324
|
+
}, undefined, { allowExtensionRole: true });
|
|
130283
130325
|
return agent.id;
|
|
130284
130326
|
});
|
|
130285
130327
|
}
|
|
130286
130328
|
async function deactivateExtensionAgent(name) {
|
|
130287
|
-
const agent = (await getAllAgents()).find((candidate) => candidate.name === extensionAgentName(name));
|
|
130329
|
+
const agent = (await getAllAgents({ includeExtensions: true })).find((candidate) => candidate.name === extensionAgentName(name));
|
|
130288
130330
|
if (agent && agent.status !== "offline")
|
|
130289
130331
|
await updateAgentStatus(agent.id, "offline");
|
|
130290
130332
|
}
|
|
@@ -2,16 +2,17 @@ import {
|
|
|
2
2
|
init_resolver,
|
|
3
3
|
init_session_templates,
|
|
4
4
|
resolveTemplateAsync
|
|
5
|
-
} from "./cli-
|
|
5
|
+
} from "./cli-wg04s9kr.js";
|
|
6
6
|
|
|
7
7
|
// src/prompts/steering-delivery.ts
|
|
8
8
|
init_session_templates();
|
|
9
9
|
init_resolver();
|
|
10
|
-
async function renderSteeringDelivery(steeringMessageId, body) {
|
|
10
|
+
async function renderSteeringDelivery(steeringMessageId, body, sender = "Unknown sender") {
|
|
11
11
|
try {
|
|
12
12
|
const result = await resolveTemplateAsync("system.agent.steering.delivery", {
|
|
13
13
|
steeringMessageId,
|
|
14
|
-
body
|
|
14
|
+
body,
|
|
15
|
+
sender: sender.replace(/\s+/g, " ").trim()
|
|
15
16
|
});
|
|
16
17
|
return result.skipped || !result.text.trim() ? body : result.text;
|
|
17
18
|
} catch {
|
|
@@ -10759,7 +10759,7 @@ function githubCopilotProvider() {
|
|
|
10759
10759
|
}
|
|
10760
10760
|
|
|
10761
10761
|
// node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.lazy.js
|
|
10762
|
-
var googleGenerativeAIApi = () => lazyApi(() => import("./google-generative-ai-
|
|
10762
|
+
var googleGenerativeAIApi = () => lazyApi(() => import("./google-generative-ai-gwwrnzqn.js"));
|
|
10763
10763
|
|
|
10764
10764
|
// node_modules/@earendil-works/pi-ai/dist/providers/google.js
|
|
10765
10765
|
function googleProvider() {
|
|
@@ -10774,7 +10774,7 @@ function googleProvider() {
|
|
|
10774
10774
|
}
|
|
10775
10775
|
|
|
10776
10776
|
// node_modules/@earendil-works/pi-ai/dist/api/google-vertex.lazy.js
|
|
10777
|
-
var googleVertexApi = () => lazyApi(() => import("./google-vertex-
|
|
10777
|
+
var googleVertexApi = () => lazyApi(() => import("./google-vertex-5wfawpwz.js"));
|
|
10778
10778
|
|
|
10779
10779
|
// node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.js
|
|
10780
10780
|
var VERTEX_ADC_PATH = "~/.config/gcloud/application_default_credentials.json";
|