@desplega.ai/agent-swarm 2.2.0 → 2.3.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/dist/{acp-adapter-k0vwfyvn.js → acp-adapter-v85a2bqy.js} +1 -1
- package/dist/{actions-w4pnb8vz.js → actions-zgcxfspj.js} +15 -15
- package/dist/{amp-adapter-0cmxb2t5.js → amp-adapter-jw9xfz42.js} +2 -2
- package/dist/{app-zneem7g9.js → app-4e1s4675.js} +3 -3
- package/dist/{assistant-wbzd2rnr.js → assistant-v238n9dk.js} +16 -16
- package/dist/{boot-reembed-4kx69j3g.js → boot-reembed-p666cw5n.js} +1 -1
- package/dist/{boot-reembed-db0wwgy1.js → boot-reembed-w6pm64j4.js} +1 -1
- package/dist/{boot-scrub-sweep-tfv4d3mm.js → boot-scrub-sweep-jcyjagn3.js} +2 -2
- package/dist/{boot-seeds-w2hmkxn5.js → boot-seeds-gbedmamp.js} +4 -4
- package/dist/{claude-adapter-5qrc2paq.js → claude-adapter-q7wspzt8.js} +2 -2
- package/dist/{claude-managed-setup-7ra32em4.js → claude-managed-setup-wza784fb.js} +1 -1
- package/dist/{claude-sdk-session-cd02gc76.js → claude-sdk-session-yf400ptr.js} +2 -2
- package/dist/{cli-p46xdr1m.js → cli-0rh20bp3.js} +1 -1
- package/dist/{cli-e5y285rg.js → cli-1v8w782f.js} +1 -1
- package/dist/{cli-8c1m9mhy.js → cli-30m5q8mc.js} +5 -5
- package/dist/{cli-xnp2vkx7.js → cli-4hmaheb6.js} +6 -6
- package/dist/{cli-xhgtay7w.js → cli-4s1kqrqg.js} +1 -1
- package/dist/{cli-2jm992rm.js → cli-5d1m1qca.js} +2 -2
- package/dist/{cli-mvsfbbgq.js → cli-65q70v2v.js} +3 -3
- package/dist/{cli-th8krqbf.js → cli-6p7ddg72.js} +2 -2
- package/dist/{cli-6q7pyd3k.js → cli-6vcyw6v7.js} +1 -1
- package/dist/{cli-bddxamg7.js → cli-8qsx817b.js} +23 -22
- package/dist/{cli-ztcxv5nv.js → cli-9e9kjqsj.js} +1 -1
- package/dist/{cli-jrk8mj0t.js → cli-a17tzmn0.js} +1 -1
- package/dist/{cli-raejy0mp.js → cli-d43xqzbe.js} +1 -1
- package/dist/{cli-tba8fxf9.js → cli-dxwh4j32.js} +11 -11
- package/dist/{cli-c9vrwcpb.js → cli-ea7chd26.js} +19 -19
- package/dist/{cli-vmbakbq0.js → cli-fhvqt2fp.js} +1 -1
- package/dist/{cli-z3dk189k.js → cli-fp4xbw07.js} +6 -6
- package/dist/{cli-xx13gqf3.js → cli-g6p7c2my.js} +1 -1
- package/dist/{cli-c0dpzwnx.js → cli-hn3pftj2.js} +2 -2
- package/dist/{cli-h23mr2s6.js → cli-hz64bcnj.js} +2 -2
- package/dist/{cli-dw0njd9q.js → cli-jhmjwqcg.js} +5 -5
- package/dist/{cli-0k9rcwfy.js → cli-ka01m5rb.js} +28 -12
- package/dist/{cli-jhhb2v9n.js → cli-kqypty34.js} +2 -2
- package/dist/{cli-hwc4a9xm.js → cli-q1812jbw.js} +4 -4
- package/dist/{cli-8w65vwee.js → cli-qrwp40st.js} +1 -1
- package/dist/{cli-4c7k75rq.js → cli-re4wkbzx.js} +54 -41
- package/dist/{cli-z1hh99j0.js → cli-tr24eeny.js} +2 -2
- package/dist/{cli-q6gw45wj.js → cli-wtg6edvd.js} +1 -1
- package/dist/{cli-mnry16kh.js → cli-xgn4rwyv.js} +4 -4
- package/dist/{cli-5ks6x36q.js → cli-y3dvz6ge.js} +3 -3
- package/dist/{cli-ksrphveb.js → cli-yv0vgscc.js} +1 -0
- package/dist/{cli-ak4c12mh.js → cli-yv3n83x8.js} +1 -1
- package/dist/{cli-9ac0mkg5.js → cli-zes4tsbb.js} +1 -1
- package/dist/cli.js +14 -14
- package/dist/{codex-adapter-m0fx3v3s.js → codex-adapter-nhjj2veb.js} +1 -1
- package/dist/{codex-session-runner-j9m2gfyy.js → codex-session-runner-6hggrjbx.js} +1 -1
- package/dist/{commands-ktnqwrv4.js → commands-mrw1ph2w.js} +2 -2
- package/dist/{controller-nex2he8v.js → controller-pt1zam5w.js} +2 -2
- package/dist/{controllers-connect-6yhwqv9v.js → controllers-connect-ymw5541d.js} +16 -16
- package/dist/{cursor-adapter-02s5ekva.js → cursor-adapter-cf4zh5x0.js} +1 -1
- package/dist/{db-19tw9r5s.js → db-hhpy6m4x.js} +2 -2
- package/dist/{db-jvr86v7f.js → db-hy80219q.js} +1 -1
- package/dist/{dispatcher-d3mnsg2y.js → dispatcher-6pdjtkr1.js} +14 -14
- package/dist/{dsh-adapter-63rvej88.js → dsh-adapter-fbx06re2.js} +1 -1
- package/dist/{external-channel-44cwer32.js → external-channel-j6vb6ya1.js} +2 -2
- package/dist/{grok-adapter-ysp907f6.js → grok-adapter-1193sprp.js} +2 -2
- package/dist/{handlers-t5pbabwf.js → handlers-tb3xgjnm.js} +17 -17
- package/dist/{heartbeat-2etacsqq.js → heartbeat-h1w1ktce.js} +17 -17
- package/dist/{hook-3kvmax6d.js → hook-ejja4bpe.js} +1 -1
- package/dist/{hook-mzxxs5n2.js → hook-skrbja18.js} +1 -1
- package/dist/{http-fn978m0g.js → http-mzh41mfj.js} +108 -52
- package/dist/{index-039x2sag.js → index-6rmnn89d.js} +40 -12
- package/dist/{index-w2wr89xd.js → index-epr2gnbw.js} +1 -1
- package/dist/{index-qyjbb7br.js → index-nyfcdpky.js} +17 -17
- package/dist/{index-e4tsa1h7.js → index-vjn3wbzf.js} +14 -14
- package/dist/{index-1r8hw4vd.js → index-xmmkyx82.js} +14 -14
- package/dist/{keepalive-d4nzs76x.js → keepalive-4djvbm2j.js} +3 -3
- package/dist/{lead-8h5n9k5f.js → lead-61kqp604.js} +23 -23
- package/dist/{maintenance-ea6jfw42.js → maintenance-f3xhnjsm.js} +1 -1
- package/dist/{oauth-refresh-sweep-3f25djq3.js → oauth-refresh-sweep-fpd6x6rw.js} +2 -2
- package/dist/{onboard-pvk7hdb2.js → onboard-196tjgyn.js} +2 -2
- package/dist/{otel-impl-qb7nhgdp.js → otel-impl-g8fh4c21.js} +1 -1
- package/dist/{pricing-refresh-6ehwkcmp.js → pricing-refresh-sdcf5yaz.js} +3 -3
- package/dist/{rbac-roles-9648nh00.js → rbac-roles-2x4g1wb5.js} +2 -2
- package/dist/{rbac-roles-km0f9cmm.js → rbac-roles-bsp5657v.js} +1 -1
- package/dist/{render-v2-xkze1wef.js → render-v2-0pyb39bb.js} +3 -3
- package/dist/{resume-tq0bbvt5.js → resume-a86tkj6r.js} +5 -5
- package/dist/{setup-rnrazxvd.js → setup-ypbzcapd.js} +1 -1
- package/dist/{work-objects-e75q2rqs.js → work-objects-yjp8de12.js} +17 -17
- package/dist/{worker-4ww4hjef.js → worker-4ptnn1ge.js} +23 -23
- package/openapi.json +168 -6
- package/package.json +2 -2
- package/src/be/asset-key-audit.ts +4 -13
- package/src/be/db.ts +57 -33
- package/src/be/migrations/227_inbox_item_state_last_read_at.sql +1 -0
- package/src/be/seed-scripts/catalog/heartbeat-jev-gate.ts +22 -4
- package/src/heartbeat/heartbeat.ts +25 -7
- package/src/http/assets.ts +26 -4
- package/src/http/inbox-state.ts +58 -8
- package/src/kv-reserved-namespaces.ts +1 -0
- package/src/providers/amp-adapter.ts +1 -1
- package/src/tests/asset-key-api.test.ts +128 -0
- package/src/tests/asset-key-invariants.test.ts +179 -3
- package/src/tests/asset-key-migration.test.ts +35 -0
- package/src/tests/docs-index-footprint.test.js +2 -2
- package/src/tests/heartbeat-checklist.test.ts +88 -0
- package/src/tests/heartbeat-jev-gate.test.ts +394 -10
- package/src/tests/inbox-state.test.ts +167 -0
- package/src/tests/kv-tool.test.ts +15 -0
- package/src/tests/script-connections.test.ts +2 -0
- package/src/types.ts +2 -0
- package/templates/skills/code-quality/content.md +2 -2
- package/templates/skills/pages/content.md +4 -0
- package/templates/skills/swarm-scripts/SKILL.md +6 -0
- package/templates/skills/swarm-scripts/content.md +6 -0
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
VersionableFieldSchema,
|
|
23
23
|
SessionCostModelBreakdownSchema,
|
|
24
24
|
init_types
|
|
25
|
-
} from "./cli-
|
|
25
|
+
} from "./cli-yv0vgscc.js";
|
|
26
26
|
import {
|
|
27
27
|
generateDefaultClaudeMd2,
|
|
28
28
|
generateDefaultSoulMd2,
|
|
@@ -101,7 +101,7 @@ import {
|
|
|
101
101
|
import {
|
|
102
102
|
init_package,
|
|
103
103
|
package_default
|
|
104
|
-
} from "./cli-
|
|
104
|
+
} from "./cli-5d1m1qca.js";
|
|
105
105
|
import {
|
|
106
106
|
realtimeBus,
|
|
107
107
|
init_bus
|
|
@@ -2625,9 +2625,7 @@ function auditAssetKeys(db) {
|
|
|
2625
2625
|
}
|
|
2626
2626
|
const attachmentMappings = db.prepare(`SELECT
|
|
2627
2627
|
a.id AS attachment_id,
|
|
2628
|
-
|
|
2629
|
-
m.id AS mapping_id,
|
|
2630
|
-
m."key" AS mapping_key
|
|
2628
|
+
m.id AS mapping_id
|
|
2631
2629
|
FROM task_attachments a
|
|
2632
2630
|
JOIN agent_tasks t ON t.id = a.task_id
|
|
2633
2631
|
LEFT JOIN asset_key_mappings m
|
|
@@ -2646,14 +2644,6 @@ function auditAssetKeys(db) {
|
|
|
2646
2644
|
entityId: row.attachment_id,
|
|
2647
2645
|
message: "Agent-fs attachment has no logical namespace mapping."
|
|
2648
2646
|
});
|
|
2649
|
-
} else if (row.mapping_key !== row.task_key) {
|
|
2650
|
-
issues.push({
|
|
2651
|
-
severity: "warning",
|
|
2652
|
-
code: "provider-mapping-drift",
|
|
2653
|
-
entityType: "file",
|
|
2654
|
-
entityId: row.mapping_id,
|
|
2655
|
-
message: "Provider mapping namespace differs from its parent task namespace."
|
|
2656
|
-
});
|
|
2657
2647
|
}
|
|
2658
2648
|
}
|
|
2659
2649
|
const sourcedMappings = db.prepare(`SELECT
|
|
@@ -4486,7 +4476,7 @@ var init_runtime = __esm(() => {
|
|
|
4486
4476
|
// src/telemetry-identity.ts
|
|
4487
4477
|
async function loadUserRole(userId) {
|
|
4488
4478
|
try {
|
|
4489
|
-
const { getUserGrant } = await import("./rbac-roles-
|
|
4479
|
+
const { getUserGrant } = await import("./rbac-roles-2x4g1wb5.js");
|
|
4490
4480
|
const grant = await getUserGrant(userId);
|
|
4491
4481
|
const role = grant.grantsAll ? "admin" : "member";
|
|
4492
4482
|
if (roleCache.size >= ROLE_CACHE_LIMIT) {
|
|
@@ -18494,7 +18484,7 @@ async function loadSecretRegistry() {
|
|
|
18494
18484
|
result.failed += 1;
|
|
18495
18485
|
}
|
|
18496
18486
|
try {
|
|
18497
|
-
const { loadRuntimeControllerSecrets } = await import("./db-
|
|
18487
|
+
const { loadRuntimeControllerSecrets } = await import("./db-hhpy6m4x.js");
|
|
18498
18488
|
const loaded = await loadRuntimeControllerSecrets();
|
|
18499
18489
|
result.runtimeController = loaded.count;
|
|
18500
18490
|
result.failed += loaded.failed;
|
|
@@ -20105,8 +20095,8 @@ async function moveAssetKey2(input) {
|
|
|
20105
20095
|
const previousKey = await currentAssetKey(input.entityType, input.id);
|
|
20106
20096
|
if (!previousKey)
|
|
20107
20097
|
return false;
|
|
20108
|
-
if (previousKey === key)
|
|
20109
|
-
return
|
|
20098
|
+
if (previousKey === key && input.entityType !== "task")
|
|
20099
|
+
return {};
|
|
20110
20100
|
if (input.entityType === "file") {
|
|
20111
20101
|
const mapping = await getAssetKeyMapping2(input.id);
|
|
20112
20102
|
if (mapping?.sourceEntityType === "task-attachment") {
|
|
@@ -20114,40 +20104,59 @@ async function moveAssetKey2(input) {
|
|
|
20114
20104
|
}
|
|
20115
20105
|
}
|
|
20116
20106
|
const now = new Date().toISOString();
|
|
20117
|
-
|
|
20107
|
+
return getDbClient2().transaction(async (tx) => {
|
|
20118
20108
|
switch (input.entityType) {
|
|
20119
20109
|
case "task": {
|
|
20120
|
-
const
|
|
20110
|
+
const root = await getTaskById2(input.id);
|
|
20111
|
+
if (!root)
|
|
20112
|
+
return false;
|
|
20113
|
+
const tasks = [root];
|
|
20114
|
+
for (const id of input.descendantTaskIds ?? []) {
|
|
20115
|
+
const task = id === root.id ? null : await getTaskById2(id);
|
|
20116
|
+
if (task)
|
|
20117
|
+
tasks.push(task);
|
|
20118
|
+
}
|
|
20119
|
+
const movedTaskIds = [];
|
|
20120
|
+
for (const task of tasks) {
|
|
20121
|
+
if (task.key === key)
|
|
20122
|
+
continue;
|
|
20123
|
+
const mappedFiles = await tx.query(`SELECT DISTINCT m.id, m."key" AS key
|
|
20121
20124
|
FROM asset_key_mappings m
|
|
20122
20125
|
JOIN task_attachments a
|
|
20123
20126
|
ON m.provider_id = COALESCE(NULLIF(a.provider_id, ''), 'agent-fs')
|
|
20124
20127
|
AND m.provider_org_id = COALESCE(a.agent_fs_org_id, '')
|
|
20125
20128
|
AND m.provider_drive_id = COALESCE(a.agent_fs_drive_id, '')
|
|
20126
20129
|
AND m.provider_key = COALESCE(NULLIF(a.provider_key, ''), a.path)
|
|
20127
|
-
WHERE a.task_id = ?`, [input.id]);
|
|
20128
|
-
await tx.run('UPDATE agent_tasks SET "key" = ?, lastUpdatedAt = ?, updated_by = ? WHERE id = ?', [key, now, input.changedBy ?? null, input.id]);
|
|
20129
|
-
await tx.run(`UPDATE asset_key_mappings
|
|
20130
|
-
SET "key" = ?, updated_at = ?, updated_by = ?
|
|
20131
|
-
WHERE EXISTS (
|
|
20132
|
-
SELECT 1 FROM task_attachments a
|
|
20133
20130
|
WHERE a.task_id = ?
|
|
20134
|
-
AND
|
|
20135
|
-
|
|
20136
|
-
|
|
20137
|
-
|
|
20138
|
-
|
|
20139
|
-
|
|
20140
|
-
|
|
20141
|
-
|
|
20131
|
+
AND (m.source_entity_type IS NOT 'task-attachment'
|
|
20132
|
+
OR m.source_entity_id IN (SELECT id FROM task_attachments WHERE task_id = ?))`, [task.id, task.id]);
|
|
20133
|
+
await tx.run('UPDATE agent_tasks SET "key" = ?, updated_by = ? WHERE id = ?', [
|
|
20134
|
+
key,
|
|
20135
|
+
input.changedBy ?? null,
|
|
20136
|
+
task.id
|
|
20137
|
+
]);
|
|
20138
|
+
for (const mapping of mappedFiles) {
|
|
20139
|
+
if (mapping.key === key)
|
|
20140
|
+
continue;
|
|
20141
|
+
await tx.run('UPDATE asset_key_mappings SET "key" = ?, updated_at = ?, updated_by = ? WHERE id = ?', [key, now, input.changedBy ?? null, mapping.id]);
|
|
20142
|
+
await insertAssetKeyHistory({
|
|
20143
|
+
entityType: "file",
|
|
20144
|
+
entityId: mapping.id,
|
|
20145
|
+
previousKey: mapping.key,
|
|
20146
|
+
newKey: key,
|
|
20147
|
+
changedBy: input.changedBy
|
|
20148
|
+
});
|
|
20149
|
+
}
|
|
20142
20150
|
await insertAssetKeyHistory({
|
|
20143
|
-
entityType: "
|
|
20144
|
-
entityId:
|
|
20145
|
-
previousKey:
|
|
20151
|
+
entityType: "task",
|
|
20152
|
+
entityId: task.id,
|
|
20153
|
+
previousKey: task.key,
|
|
20146
20154
|
newKey: key,
|
|
20147
20155
|
changedBy: input.changedBy
|
|
20148
20156
|
});
|
|
20157
|
+
movedTaskIds.push(task.id);
|
|
20149
20158
|
}
|
|
20150
|
-
|
|
20159
|
+
return { movedTaskIds };
|
|
20151
20160
|
}
|
|
20152
20161
|
case "workflow":
|
|
20153
20162
|
await tx.run('UPDATE workflows SET "key" = ?, lastUpdatedAt = ?, updated_by = ? WHERE id = ?', [key, now, input.changedBy ?? null, input.id]);
|
|
@@ -20189,8 +20198,8 @@ async function moveAssetKey2(input) {
|
|
|
20189
20198
|
newKey: key,
|
|
20190
20199
|
changedBy: input.changedBy
|
|
20191
20200
|
});
|
|
20201
|
+
return {};
|
|
20192
20202
|
});
|
|
20193
|
-
return true;
|
|
20194
20203
|
}
|
|
20195
20204
|
async function deleteTaskAttachment2(id) {
|
|
20196
20205
|
const result = await getDbClient2().run("DELETE FROM task_attachments WHERE id = ?", [id]);
|
|
@@ -25942,6 +25951,7 @@ function rowToInboxItemState(row) {
|
|
|
25942
25951
|
dismissedAt: row.dismissedAt ?? undefined,
|
|
25943
25952
|
doneAt: row.doneAt ?? undefined,
|
|
25944
25953
|
readAt: row.readAt ?? undefined,
|
|
25954
|
+
lastReadAt: row.lastReadAt ?? undefined,
|
|
25945
25955
|
createdAt: row.createdAt,
|
|
25946
25956
|
lastUpdatedAt: row.lastUpdatedAt
|
|
25947
25957
|
};
|
|
@@ -25967,14 +25977,15 @@ async function upsertInboxState2(opts) {
|
|
|
25967
25977
|
const doneAt = opts.doneAt ?? (opts.status === "done" ? now : null);
|
|
25968
25978
|
const snoozeUntil = opts.snoozeUntil ?? null;
|
|
25969
25979
|
const readAt = opts.readAt ?? null;
|
|
25970
|
-
const row = await getDbClient2().get(`INSERT INTO inbox_item_state (userId, itemType, itemId, status, snoozeUntil, dismissedAt, doneAt, readAt, createdAt, lastUpdatedAt)
|
|
25971
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
25980
|
+
const row = await getDbClient2().get(`INSERT INTO inbox_item_state (userId, itemType, itemId, status, snoozeUntil, dismissedAt, doneAt, readAt, lastReadAt, createdAt, lastUpdatedAt)
|
|
25981
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
25972
25982
|
ON CONFLICT(userId, itemType, itemId) DO UPDATE SET
|
|
25973
25983
|
status = excluded.status,
|
|
25974
25984
|
snoozeUntil = excluded.snoozeUntil,
|
|
25975
25985
|
dismissedAt = excluded.dismissedAt,
|
|
25976
25986
|
doneAt = excluded.doneAt,
|
|
25977
25987
|
readAt = COALESCE(inbox_item_state.readAt, excluded.readAt),
|
|
25988
|
+
lastReadAt = CASE WHEN ? THEN excluded.lastReadAt ELSE inbox_item_state.lastReadAt END,
|
|
25978
25989
|
lastUpdatedAt = excluded.lastUpdatedAt
|
|
25979
25990
|
RETURNING *`, [
|
|
25980
25991
|
opts.userId,
|
|
@@ -25985,8 +25996,10 @@ async function upsertInboxState2(opts) {
|
|
|
25985
25996
|
dismissedAt,
|
|
25986
25997
|
doneAt,
|
|
25987
25998
|
readAt,
|
|
25999
|
+
opts.lastReadAt ?? null,
|
|
25988
26000
|
now,
|
|
25989
|
-
now
|
|
26001
|
+
now,
|
|
26002
|
+
opts.lastReadAt !== undefined ? 1 : 0
|
|
25990
26003
|
]);
|
|
25991
26004
|
if (!row)
|
|
25992
26005
|
throw new Error("Failed to upsert inbox state");
|
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
import {
|
|
53
53
|
DEFAULT_MODEL_TIER_MAP,
|
|
54
54
|
init_types
|
|
55
|
-
} from "./cli-
|
|
55
|
+
} from "./cli-yv0vgscc.js";
|
|
56
56
|
import {
|
|
57
57
|
runtimeCatalogModel,
|
|
58
58
|
init_runtime_model_catalog
|
|
@@ -60,7 +60,7 @@ import {
|
|
|
60
60
|
import {
|
|
61
61
|
init_package,
|
|
62
62
|
package_default
|
|
63
|
-
} from "./cli-
|
|
63
|
+
} from "./cli-5d1m1qca.js";
|
|
64
64
|
import {
|
|
65
65
|
isEnvFlagEnabled,
|
|
66
66
|
init_env_flag
|
|
@@ -7,20 +7,20 @@ import {
|
|
|
7
7
|
tierConfigKey,
|
|
8
8
|
init_model_tier_keys,
|
|
9
9
|
init_db3
|
|
10
|
-
} from "./cli-
|
|
10
|
+
} from "./cli-re4wkbzx.js";
|
|
11
11
|
import {
|
|
12
12
|
ensureRbacSeedsSynced2,
|
|
13
13
|
init_rbac_roles
|
|
14
|
-
} from "./cli-
|
|
14
|
+
} from "./cli-6vcyw6v7.js";
|
|
15
15
|
import {
|
|
16
16
|
seedPricingFromModelsDev
|
|
17
|
-
} from "./cli-
|
|
17
|
+
} from "./cli-qrwp40st.js";
|
|
18
18
|
import {
|
|
19
19
|
MODEL_TIERS,
|
|
20
20
|
DEFAULT_MODEL_TIER_MAP,
|
|
21
21
|
ProviderNameSchema,
|
|
22
22
|
init_types
|
|
23
|
-
} from "./cli-
|
|
23
|
+
} from "./cli-yv0vgscc.js";
|
|
24
24
|
|
|
25
25
|
// src/be/boot-seeds.ts
|
|
26
26
|
init_db3();
|
|
@@ -2,17 +2,17 @@ import {
|
|
|
2
2
|
getKv2,
|
|
3
3
|
upsertKv2,
|
|
4
4
|
init_db3
|
|
5
|
-
} from "./cli-
|
|
5
|
+
} from "./cli-re4wkbzx.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveIdentity,
|
|
8
8
|
recordUnmappedIdentity
|
|
9
|
-
} from "./cli-
|
|
9
|
+
} from "./cli-8qsx817b.js";
|
|
10
10
|
import {
|
|
11
11
|
findUserByExternalId,
|
|
12
12
|
findOrCreateUserByEmail,
|
|
13
13
|
linkIdentity,
|
|
14
14
|
init_users
|
|
15
|
-
} from "./cli-
|
|
15
|
+
} from "./cli-hz64bcnj.js";
|
|
16
16
|
|
|
17
17
|
// src/slack/enrich.ts
|
|
18
18
|
init_db3();
|
|
@@ -2170,6 +2170,7 @@ var init_types = __esm(() => {
|
|
|
2170
2170
|
dismissedAt: string2().optional(),
|
|
2171
2171
|
doneAt: string2().optional(),
|
|
2172
2172
|
readAt: string2().optional(),
|
|
2173
|
+
lastReadAt: string2().optional(),
|
|
2173
2174
|
createdAt: string2(),
|
|
2174
2175
|
lastUpdatedAt: string2()
|
|
2175
2176
|
}).openapi("InboxItemState");
|
package/dist/cli.js
CHANGED
|
@@ -51,7 +51,7 @@ var import_react = __toESM(require_react(), 1);
|
|
|
51
51
|
// package.json
|
|
52
52
|
var package_default = {
|
|
53
53
|
name: "@desplega.ai/agent-swarm",
|
|
54
|
-
version: "2.
|
|
54
|
+
version: "2.3.0",
|
|
55
55
|
description: "agent-swarm.dev — an open-source operating system for AI work: a lead agent breaks goals into tasks, routes them to specialized workers such as Claude Code or Codex, runs each worker in an isolated container, and preserves shared memory, tools, schedules, and review gates so delegated work compounds across sessions.",
|
|
56
56
|
keywords: [
|
|
57
57
|
"agent-swarm.dev",
|
|
@@ -260,7 +260,7 @@ var package_default = {
|
|
|
260
260
|
"@chat-adapter/teams": "4.41.1",
|
|
261
261
|
"@chat-adapter/telegram": "4.41.1",
|
|
262
262
|
"@cursor/sdk": "1.0.38",
|
|
263
|
-
"@desplega.ai/agent-fs-just-bash": "0.
|
|
263
|
+
"@desplega.ai/agent-fs-just-bash": "0.18.4",
|
|
264
264
|
"@desplega.ai/business-use": "^0.4.2",
|
|
265
265
|
"@earendil-works/pi-agent-core": "^1.3.0",
|
|
266
266
|
"@earendil-works/pi-ai": "^1.3.0",
|
|
@@ -812,7 +812,7 @@ function McpServer({ port, apiKey, dbPath }) {
|
|
|
812
812
|
if (dbPath) {
|
|
813
813
|
process.env.DATABASE_PATH = dbPath;
|
|
814
814
|
}
|
|
815
|
-
import("./http-
|
|
815
|
+
import("./http-mzh41mfj.js").then(() => {
|
|
816
816
|
setStatus("running");
|
|
817
817
|
}).catch((err) => {
|
|
818
818
|
setStatus("error");
|
|
@@ -899,7 +899,7 @@ function WorkerRunner({
|
|
|
899
899
|
const { exit } = use_app_default();
|
|
900
900
|
import_react.useEffect(() => {
|
|
901
901
|
installConsoleScrub();
|
|
902
|
-
import("./worker-
|
|
902
|
+
import("./worker-4ptnn1ge.js").then(({ runWorker }) => runWorker({
|
|
903
903
|
prompt: prompt || undefined,
|
|
904
904
|
yolo,
|
|
905
905
|
systemPrompt: systemPrompt || undefined,
|
|
@@ -917,7 +917,7 @@ function LeadRunner({ prompt, yolo, systemPrompt, systemPromptFile, additionalAr
|
|
|
917
917
|
const { exit } = use_app_default();
|
|
918
918
|
import_react.useEffect(() => {
|
|
919
919
|
installConsoleScrub();
|
|
920
|
-
import("./lead-
|
|
920
|
+
import("./lead-61kqp604.js").then(({ runLead }) => runLead({
|
|
921
921
|
prompt: prompt || undefined,
|
|
922
922
|
yolo,
|
|
923
923
|
systemPrompt: systemPrompt || undefined,
|
|
@@ -957,8 +957,8 @@ function LazyComponent({
|
|
|
957
957
|
}
|
|
958
958
|
return import_react.createElement(Component, props);
|
|
959
959
|
}
|
|
960
|
-
var loadOnboard = () => import("./onboard-
|
|
961
|
-
var loadConnect = () => import("./setup-
|
|
960
|
+
var loadOnboard = () => import("./onboard-196tjgyn.js").then(({ Onboard }) => Onboard);
|
|
961
|
+
var loadConnect = () => import("./setup-ypbzcapd.js").then(({ Setup }) => Setup);
|
|
962
962
|
function UnknownCommand({ command }) {
|
|
963
963
|
const { exit } = use_app_default();
|
|
964
964
|
import_react.useEffect(() => {
|
|
@@ -1088,14 +1088,14 @@ ${binName} docs \u2014 v${package_default.version}
|
|
|
1088
1088
|
}
|
|
1089
1089
|
process.exit(0);
|
|
1090
1090
|
} else if (args.command === "hook") {
|
|
1091
|
-
const { runHook } = await import("./hook-
|
|
1091
|
+
const { runHook } = await import("./hook-skrbja18.js");
|
|
1092
1092
|
await runHook();
|
|
1093
1093
|
} else if (args.command === "codex-hook") {
|
|
1094
1094
|
const { handleCodexHook } = await import("./codex-hook-x6tm6y5m.js");
|
|
1095
1095
|
await handleCodexHook();
|
|
1096
1096
|
process.exit(process.exitCode ?? 0);
|
|
1097
1097
|
} else if (args.command === "session-summary-stdin") {
|
|
1098
|
-
const { runSessionSummaryFromStdin } = await import("./hook-
|
|
1098
|
+
const { runSessionSummaryFromStdin } = await import("./hook-ejja4bpe.js");
|
|
1099
1099
|
await runSessionSummaryFromStdin();
|
|
1100
1100
|
process.exit(process.exitCode ?? 0);
|
|
1101
1101
|
} else if (args.command === "x") {
|
|
@@ -1108,7 +1108,7 @@ ${binName} docs \u2014 v${package_default.version}
|
|
|
1108
1108
|
printHelp("scripts");
|
|
1109
1109
|
process.exit(scriptsArgs[0] === "reembed" || args.showHelp ? 0 : 1);
|
|
1110
1110
|
}
|
|
1111
|
-
const { runScriptsMaintenanceCommand } = await import("./maintenance-
|
|
1111
|
+
const { runScriptsMaintenanceCommand } = await import("./maintenance-f3xhnjsm.js");
|
|
1112
1112
|
await runScriptsMaintenanceCommand(scriptsArgs);
|
|
1113
1113
|
console.log("Scripts re-embedded.");
|
|
1114
1114
|
} else if (args.command === "rbac") {
|
|
@@ -1118,17 +1118,17 @@ ${binName} docs \u2014 v${package_default.version}
|
|
|
1118
1118
|
printHelp("rbac");
|
|
1119
1119
|
process.exit(args.showHelp ? 0 : 1);
|
|
1120
1120
|
}
|
|
1121
|
-
const { runRbacCliCommand } = await import("./rbac-roles-
|
|
1121
|
+
const { runRbacCliCommand } = await import("./rbac-roles-bsp5657v.js");
|
|
1122
1122
|
await runRbacCliCommand(rbacArgs);
|
|
1123
1123
|
} else if (args.command === "codex-login") {
|
|
1124
1124
|
const { runCodexLogin } = await import("./codex-login-35p4sk85.js");
|
|
1125
1125
|
const codexLoginArgs = process.argv.slice(process.argv.indexOf("codex-login") + 1);
|
|
1126
1126
|
await runCodexLogin(codexLoginArgs);
|
|
1127
1127
|
} else if (args.command === "codex-session-runner") {
|
|
1128
|
-
const { runCodexSessionRunner } = await import("./codex-session-runner-
|
|
1128
|
+
const { runCodexSessionRunner } = await import("./codex-session-runner-6hggrjbx.js");
|
|
1129
1129
|
await runCodexSessionRunner();
|
|
1130
1130
|
} else if (args.command === "claude-managed-setup") {
|
|
1131
|
-
const { runClaudeManagedSetup } = await import("./claude-managed-setup-
|
|
1131
|
+
const { runClaudeManagedSetup } = await import("./claude-managed-setup-wza784fb.js");
|
|
1132
1132
|
const setupArgs = process.argv.slice(process.argv.indexOf("claude-managed-setup") + 1);
|
|
1133
1133
|
await runClaudeManagedSetup(setupArgs);
|
|
1134
1134
|
} else if (args.command === "e2b") {
|
|
@@ -1136,7 +1136,7 @@ ${binName} docs \u2014 v${package_default.version}
|
|
|
1136
1136
|
const e2bArgs = process.argv.slice(process.argv.indexOf("e2b") + 1);
|
|
1137
1137
|
await runE2BCommand(e2bArgs);
|
|
1138
1138
|
} else if (args.command === "controller") {
|
|
1139
|
-
const { runController } = await import("./controller-
|
|
1139
|
+
const { runController } = await import("./controller-pt1zam5w.js");
|
|
1140
1140
|
await runController(process.argv.slice(process.argv.indexOf("controller") + 1));
|
|
1141
1141
|
} else {
|
|
1142
1142
|
render_default(/* @__PURE__ */ jsx_dev_runtime.jsxDEV(App, {
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
getAllAgents2,
|
|
3
3
|
getAllTasks2,
|
|
4
4
|
init_db3
|
|
5
|
-
} from "./cli-
|
|
5
|
+
} from "./cli-re4wkbzx.js";
|
|
6
6
|
import {
|
|
7
7
|
EXTERNAL_CHANNEL_BLOCKED_REPLY2,
|
|
8
8
|
shouldBlockChannel2
|
|
9
|
-
} from "./cli-
|
|
9
|
+
} from "./cli-9e9kjqsj.js";
|
|
10
10
|
import {
|
|
11
11
|
isEnvFlagEnabled,
|
|
12
12
|
init_env_flag
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
BuiltinController,
|
|
3
3
|
CONTROLLER_PROTOCOL_VERSION,
|
|
4
4
|
ControllerServerMessageSchema
|
|
5
|
-
} from "./cli-
|
|
5
|
+
} from "./cli-d43xqzbe.js";
|
|
6
6
|
import {
|
|
7
7
|
createRuntimeProvider,
|
|
8
8
|
init_runtime_providers
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
import {
|
|
11
11
|
RuntimeProviderKindSchema,
|
|
12
12
|
init_types
|
|
13
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-yv0vgscc.js";
|
|
14
14
|
import {
|
|
15
15
|
scrubSecrets,
|
|
16
16
|
registerVolatileSecret,
|
|
@@ -6,23 +6,23 @@ import {
|
|
|
6
6
|
isRuntimePoolsEnabled,
|
|
7
7
|
init_runtime_pools_flag,
|
|
8
8
|
init_db3
|
|
9
|
-
} from "./cli-
|
|
9
|
+
} from "./cli-re4wkbzx.js";
|
|
10
10
|
import {
|
|
11
11
|
CONTROLLER_PROTOCOL_VERSION,
|
|
12
12
|
CONTROLLER_PING_INTERVAL_MS,
|
|
13
13
|
ControllerClientMessageSchema
|
|
14
|
-
} from "./cli-
|
|
14
|
+
} from "./cli-d43xqzbe.js";
|
|
15
15
|
import"./cli-7a91w22y.js";
|
|
16
16
|
import {
|
|
17
17
|
route,
|
|
18
18
|
resolveHttpRequestAuth
|
|
19
|
-
} from "./cli-
|
|
19
|
+
} from "./cli-8qsx817b.js";
|
|
20
20
|
import {
|
|
21
21
|
registerSessionTokenConnection,
|
|
22
22
|
init_session_token_connections,
|
|
23
23
|
getRuntimeController2,
|
|
24
24
|
init_db
|
|
25
|
-
} from "./cli-
|
|
25
|
+
} from "./cli-hz64bcnj.js";
|
|
26
26
|
import {
|
|
27
27
|
remoteControllerSession,
|
|
28
28
|
installRemoteController,
|
|
@@ -31,25 +31,25 @@ import {
|
|
|
31
31
|
ensureRuntimeOwnerId,
|
|
32
32
|
reconcileRemoteProvisions,
|
|
33
33
|
reconcileControllerOrphans
|
|
34
|
-
} from "./cli-
|
|
35
|
-
import"./cli-
|
|
36
|
-
import"./cli-
|
|
37
|
-
import"./cli-
|
|
34
|
+
} from "./cli-fp4xbw07.js";
|
|
35
|
+
import"./cli-jhmjwqcg.js";
|
|
36
|
+
import"./cli-65q70v2v.js";
|
|
37
|
+
import"./cli-g6p7c2my.js";
|
|
38
38
|
import"./cli-3ggwdtb0.js";
|
|
39
|
-
import"./cli-
|
|
40
|
-
import"./cli-
|
|
41
|
-
import"./cli-
|
|
39
|
+
import"./cli-dxwh4j32.js";
|
|
40
|
+
import"./cli-9e9kjqsj.js";
|
|
41
|
+
import"./cli-q1812jbw.js";
|
|
42
42
|
import"./cli-8cvvytad.js";
|
|
43
43
|
import"./cli-kvzgak7c.js";
|
|
44
44
|
import"./cli-445c1vp7.js";
|
|
45
45
|
import"./cli-vjfpshn3.js";
|
|
46
46
|
import"./cli-ptkpaqfy.js";
|
|
47
|
-
import"./cli-
|
|
48
|
-
import"./cli-
|
|
49
|
-
import"./cli-
|
|
47
|
+
import"./cli-fhvqt2fp.js";
|
|
48
|
+
import"./cli-qrwp40st.js";
|
|
49
|
+
import"./cli-kqypty34.js";
|
|
50
50
|
import"./cli-qz93y3x5.js";
|
|
51
|
-
import"./cli-
|
|
52
|
-
import"./cli-
|
|
51
|
+
import"./cli-6vcyw6v7.js";
|
|
52
|
+
import"./cli-xgn4rwyv.js";
|
|
53
53
|
import"./cli-qje9k2nh.js";
|
|
54
54
|
import"./cli-3h26v7yj.js";
|
|
55
55
|
import"./cli-rdr166ht.js";
|
|
@@ -11,32 +11,32 @@ import {
|
|
|
11
11
|
listRegistered2,
|
|
12
12
|
dispatchPre2,
|
|
13
13
|
dispatchPost2
|
|
14
|
-
} from "./cli-
|
|
14
|
+
} from "./cli-8qsx817b.js";
|
|
15
15
|
import"./cli-rdr166ht.js";
|
|
16
|
-
import"./cli-
|
|
16
|
+
import"./cli-fhvqt2fp.js";
|
|
17
17
|
import"./cli-qz93y3x5.js";
|
|
18
|
-
import"./cli-
|
|
18
|
+
import"./cli-65q70v2v.js";
|
|
19
19
|
import"./cli-3h26v7yj.js";
|
|
20
20
|
import"./cli-7a91w22y.js";
|
|
21
21
|
import"./cli-3ggwdtb0.js";
|
|
22
|
-
import"./cli-
|
|
23
|
-
import"./cli-
|
|
24
|
-
import"./cli-
|
|
25
|
-
import"./cli-
|
|
22
|
+
import"./cli-g6p7c2my.js";
|
|
23
|
+
import"./cli-xgn4rwyv.js";
|
|
24
|
+
import"./cli-kqypty34.js";
|
|
25
|
+
import"./cli-qrwp40st.js";
|
|
26
26
|
import"./cli-qje9k2nh.js";
|
|
27
|
-
import"./cli-
|
|
28
|
-
import"./cli-
|
|
27
|
+
import"./cli-jhmjwqcg.js";
|
|
28
|
+
import"./cli-q1812jbw.js";
|
|
29
29
|
import"./cli-8cvvytad.js";
|
|
30
30
|
import"./cli-vjfpshn3.js";
|
|
31
31
|
import"./cli-13p25grh.js";
|
|
32
32
|
import"./cli-0adyhvq2.js";
|
|
33
|
-
import"./cli-
|
|
34
|
-
import"./cli-
|
|
35
|
-
import"./cli-
|
|
33
|
+
import"./cli-dxwh4j32.js";
|
|
34
|
+
import"./cli-9e9kjqsj.js";
|
|
35
|
+
import"./cli-hz64bcnj.js";
|
|
36
36
|
import"./cli-445c1vp7.js";
|
|
37
37
|
import"./cli-kvzgak7c.js";
|
|
38
|
-
import"./cli-
|
|
39
|
-
import"./cli-
|
|
38
|
+
import"./cli-6vcyw6v7.js";
|
|
39
|
+
import"./cli-re4wkbzx.js";
|
|
40
40
|
import"./cli-ptkpaqfy.js";
|
|
41
41
|
export {
|
|
42
42
|
ExtensionAbortedError2 as ExtensionAbortedError,
|
|
@@ -8,8 +8,8 @@ import {
|
|
|
8
8
|
shouldBlockChannel2,
|
|
9
9
|
leaveExternalChannel2,
|
|
10
10
|
scanExternalChannelsOnBoot2
|
|
11
|
-
} from "./cli-
|
|
12
|
-
import"./cli-
|
|
11
|
+
} from "./cli-9e9kjqsj.js";
|
|
12
|
+
import"./cli-re4wkbzx.js";
|
|
13
13
|
export {
|
|
14
14
|
EXTERNAL_CHANNEL_BLOCKED_REPLY2 as EXTERNAL_CHANNEL_BLOCKED_REPLY,
|
|
15
15
|
externalChannelToolError2 as externalChannelToolError,
|