@desplega.ai/agent-swarm 1.165.0 → 1.166.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-w6zws6me.js → acp-adapter-yzfxn8vj.js} +4 -4
- package/dist/{actions-jna0b3wm.js → actions-qz3m692w.js} +20 -24
- package/dist/{amp-adapter-0eve81pz.js → amp-adapter-j1xbmsqz.js} +4 -4
- package/dist/{app-75hm5cfa.js → app-43vrdmv8.js} +6 -7
- package/dist/{assistant-yzd51j33.js → assistant-ertffmka.js} +21 -25
- package/dist/{boot-reembed-z158xq32.js → boot-reembed-998jtpdg.js} +9 -12
- package/dist/{boot-reembed-2ex2mcsh.js → boot-reembed-s7k7c6v2.js} +10 -12
- package/dist/boot-scrub-sweep-nepsk4t1.js +211 -0
- package/dist/{boot-seeds-2bmnh18p.js → boot-seeds-vvzs1zhk.js} +8 -8
- package/dist/{claude-adapter-jbj1mycz.js → claude-adapter-2zvmekrp.js} +9 -11
- package/dist/{claude-managed-adapter-17ggz09t.js → claude-managed-adapter-s49wbk8t.js} +3 -3
- package/dist/{claude-managed-setup-ptm1nzm2.js → claude-managed-setup-cvhqq8qn.js} +4 -4
- package/dist/{claude-sdk-session-9re1g7r2.js → claude-sdk-session-kkbxtw5q.js} +2618 -2600
- package/dist/{cli-k6xx3pve.js → cli-0nhdwxd5.js} +4 -4
- package/dist/{cli-n9ehc28t.js → cli-0qjcsxgz.js} +4 -4
- package/dist/{cli-zn2v3t8v.js → cli-3ddybbbx.js} +1 -1
- package/dist/{cli-5anb0ev3.js → cli-3qn4r334.js} +71 -14
- package/dist/{cli-1kzfvd1z.js → cli-4r1sjfc4.js} +9 -5
- package/dist/{cli-ba66wyhy.js → cli-66zh26sp.js} +6 -6
- package/dist/{cli-9xb89xca.js → cli-68r1j4sg.js} +6 -6
- package/dist/{cli-xnzrzets.js → cli-8kgvmkak.js} +2 -2
- package/dist/{cli-28smfvbn.js → cli-8t229cmr.js} +5 -5
- package/dist/{cli-9866bd07.js → cli-aqcey741.js} +1 -1
- package/dist/{cli-90v942q1.js → cli-cpfmqz3n.js} +8 -8
- package/dist/{cli-50eg13rj.js → cli-df56tqdw.js} +459 -282
- package/dist/{cli-8gpbwy09.js → cli-dw2q9f7g.js} +5 -5
- package/dist/{cli-0n4fasz0.js → cli-ecknp7p1.js} +15 -15
- package/dist/{cli-xb3c6aat.js → cli-f2n17zhp.js} +1 -1
- package/dist/{cli-ftry7975.js → cli-feh3dkah.js} +1 -1
- package/dist/{cli-amwhs8h2.js → cli-fn697bnt.js} +2 -2
- package/dist/{cli-prt9emct.js → cli-gt8azyet.js} +3 -3
- package/dist/{cli-59jn5twa.js → cli-h3x613ze.js} +2 -2
- package/dist/{cli-mmzwwptd.js → cli-hf5s9pgf.js} +1 -1
- package/dist/cli-j2jbr8af.js +516 -0
- package/dist/{cli-wfajtmf7.js → cli-jhm6hzjn.js} +593 -10
- package/dist/{cli-xtgtyafv.js → cli-jvj6a0cv.js} +190 -439
- package/dist/{cli-hpryr6em.js → cli-mb75wpxf.js} +1 -1
- package/dist/{cli-420bdgw0.js → cli-mv2520nm.js} +1 -1
- package/dist/{cli-pjxnr1jn.js → cli-mwegs4af.js} +3 -3
- package/dist/{cli-5b2fjjzh.js → cli-p4ztb80h.js} +2 -2
- package/dist/{cli-e7t4snpa.js → cli-rggdq8wq.js} +4 -4
- package/dist/{cli-bdv39kgj.js → cli-rsy933yz.js} +5 -5
- package/dist/{cli-gh5yqzpe.js → cli-v2a8x45d.js} +2 -2
- package/dist/{cli-bns5c8k9.js → cli-vzc73wet.js} +43 -47
- package/dist/cli-wt7ccy4r.js +2654 -0
- package/dist/{cli-j0pdrmwg.js → cli-x7kpr72a.js} +3 -3
- package/dist/{cli-x7afk5wm.js → cli-xvc3q9br.js} +1 -1
- package/dist/{cli-9s3h836g.js → cli-xvdgasgy.js} +1 -1
- package/dist/{cli-zvckv750.js → cli-y59h2pk9.js} +2 -2
- package/dist/{cli-qdv8kgz7.js → cli-yshaazs1.js} +13884 -3241
- package/dist/{cli-nfygw434.js → cli-ysnyhws9.js} +2 -2
- package/dist/{cli-fw6vdcq5.js → cli-zp67qg5x.js} +34 -1
- package/dist/{cli-ma3zvh39.js → cli-zy7vwsne.js} +6066 -5829
- package/dist/cli.js +24 -20
- package/dist/{codex-adapter-3qnxshje.js → codex-adapter-dw1wxqt8.js} +7 -7
- package/dist/{codex-login-brkxhhdg.js → codex-login-terbdsqq.js} +2 -2
- package/dist/{codex-session-runner-612wnapp.js → codex-session-runner-3cgb8y1g.js} +7 -7
- package/dist/{commands-2ybfcxkj.js → commands-mhxam6z2.js} +6 -6
- package/dist/{cursor-adapter-p3jgdehv.js → cursor-adapter-2qda3st7.js} +3 -3
- package/dist/{db-f4ans0jj.js → db-sjks418k.js} +8 -6
- package/dist/{devin-adapter-dhzt01ff.js → devin-adapter-bffjj5n4.js} +2 -2
- package/dist/{dispatcher-pk182apd.js → dispatcher-1es759rn.js} +18 -22
- package/dist/{dsh-adapter-7twaeps1.js → dsh-adapter-bek4cyw9.js} +3 -3
- package/dist/{e2b-y8t3jzyz.js → e2b-nd50eccg.js} +1 -1
- package/dist/{event-bus-w7ac4n3c.js → event-bus-vnfthafg.js} +2 -2
- package/dist/{grok-adapter-yt9pab3k.js → grok-adapter-ar9cw9jg.js} +5 -5
- package/dist/{handlers-g2wnr4t9.js → handlers-1gkbhktr.js} +21 -25
- package/dist/{hook-f7jt9vnm.js → hook-ds2zxq9v.js} +14 -16
- package/dist/{hook-bbdpnkb4.js → hook-vxa3tcsy.js} +8 -10
- package/dist/{http-w40q4w94.js → http-3h21z9md.js} +247 -164
- package/dist/{index-056j5kzn.js → index-9b65j1m5.js} +8 -8
- package/dist/{index-9bfssf54.js → index-bn6cy8ps.js} +18 -22
- package/dist/{index-cj1r9q83.js → index-dkfxpkmm.js} +19 -23
- package/dist/{index-7n70jwbb.js → index-f8xnqrye.js} +19 -21
- package/dist/{index-fdk1t4d6.js → index-n0rxa4ca.js} +11962 -9900
- package/dist/{index-k8xc083e.js → index-n99fycq7.js} +18 -22
- package/dist/{keepalive-1tj10tf4.js → keepalive-3xspa9jw.js} +11 -8
- package/dist/{lead-st0bg7v4.js → lead-6qphc124.js} +34 -38
- package/dist/{maintenance-nz71zats.js → maintenance-0teem1bb.js} +7 -9
- package/dist/{node-f0ykebbv.js → node-9sg7ajby.js} +25 -7
- package/dist/{oauth-refresh-sweep-aefzwvvq.js → oauth-refresh-sweep-sh9q25xp.js} +10 -7
- package/dist/{onboard-kgpr9mbn.js → onboard-54qmnqxe.js} +2 -2
- package/dist/{opencode-adapter-0c8e70dk.js → opencode-adapter-wjfa2wvd.js} +2 -2
- package/dist/{otel-impl-x8zp4y5a.js → otel-impl-ycqzp2a1.js} +2 -2
- package/dist/{pi-mono-adapter-t280ah5c.js → pi-mono-adapter-e77e9zst.js} +4 -4
- package/dist/{pricing-refresh-9e0q7cwk.js → pricing-refresh-atnkngqs.js} +7 -7
- package/dist/{rbac-roles-kcp6zge2.js → rbac-roles-9pjphh9q.js} +6 -6
- package/dist/{rbac-roles-790j3ga8.js → rbac-roles-j78wdksm.js} +6 -6
- package/dist/{render-v2-tch4nefj.js → render-v2-pxjs49fx.js} +6 -7
- package/dist/{setup-rcm303ns.js → setup-ymej0xtx.js} +2 -2
- package/dist/{work-objects-ctg7t70w.js → work-objects-3nh4ymzb.js} +22 -26
- package/dist/{worker-5dp0xm55.js → worker-qa9fkz5s.js} +34 -38
- package/dist/{x-v3yw66zs.js → x-ma4gnfgy.js} +2 -2
- package/openapi.json +5 -2
- package/package.json +9 -5
- package/src/be/automation-preflight.ts +9 -4
- package/src/be/boot-scrub-sweep.ts +302 -0
- package/src/be/crypto/key-bootstrap.ts +1 -1
- package/src/be/db/approvals.ts +15 -1
- package/src/be/db/codex-oauth-device-flows.ts +40 -0
- package/src/be/db/config-secrets.ts +31 -0
- package/src/be/db/runtime.ts +4 -0
- package/src/be/db/script-runs.ts +15 -0
- package/src/be/db/tasks/write.ts +1 -1
- package/src/be/db-queries/mcp-oauth.ts +5 -0
- package/src/be/db-queries/oauth.ts +77 -0
- package/src/be/db.ts +162 -59
- package/src/be/events.ts +17 -1
- package/src/be/memory/index-content.ts +2 -2
- package/src/be/memory/providers/sqlite-store.ts +63 -11
- package/src/be/memory/types.ts +14 -0
- package/src/be/migrations/201_workflow_replay_columns.sql +10 -0
- package/src/be/migrations/202_codex_oauth_device_flows.sql +24 -0
- package/src/be/scripts/db.ts +28 -4
- package/src/be/scripts/source-secrets.ts +37 -0
- package/src/be/scrub-json.ts +32 -0
- package/src/be/sealed-json.ts +59 -0
- package/src/be/secret-registry.ts +131 -0
- package/src/be/workflow-replay.ts +77 -0
- package/src/http/codex-oauth-device.ts +8 -10
- package/src/http/db-query-bounded.ts +3 -0
- package/src/http/db-query-shared.ts +107 -15
- package/src/http/db-query.ts +10 -2
- package/src/http/index.ts +23 -6
- package/src/http/script-runs.ts +9 -1
- package/src/http/scripts.ts +15 -0
- package/src/http/workflows.ts +3 -2
- package/src/oauth/mcp-wrapper.ts +1 -1
- package/src/providers/acp-adapter.ts +25 -11
- package/src/providers/acp-target-catalog.ts +35 -1
- package/src/providers/acp-targets.ts +69 -3
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/cursor-adapter.ts +1 -1
- package/src/script-workflows/supervisor.ts +11 -2
- package/src/scripts-runtime/eval-harness.ts +2 -12
- package/src/scripts-runtime/executors/quickjs-bundle.ts +152 -0
- package/src/scripts-runtime/executors/quickjs-prelude.ts +285 -0
- package/src/scripts-runtime/executors/quickjs-runner.ts +580 -0
- package/src/scripts-runtime/executors/quickjs-worker.ts +81 -0
- package/src/scripts-runtime/executors/quickjs.ts +196 -0
- package/src/scripts-runtime/executors/registry.ts +2 -0
- package/src/scripts-runtime/executors/sourcemap.ts +79 -0
- package/src/scripts-runtime/script-error-hints.ts +14 -0
- package/src/server.ts +3 -1
- package/src/tests/acp-adapter.test.ts +127 -2
- package/src/tests/boot-scrub-sweep.test.ts +390 -0
- package/src/tests/check-text-columns.test.ts +145 -0
- package/src/tests/claude-sdk-process.fixture.ts +13 -2
- package/src/tests/codex-oauth-device.test.ts +23 -37
- package/src/tests/db-query-denylist.test.ts +202 -0
- package/src/tests/db-task-read-contract.test.ts +1 -0
- package/src/tests/db-task-write-contract.test.ts +1 -0
- package/src/tests/entrypoint-acp-target-binary.test.ts +31 -1
- package/src/tests/events-scrub.test.ts +88 -0
- package/src/tests/fixtures/secret-corpus.ts +320 -0
- package/src/tests/script-connections.test.ts +5 -0
- package/src/tests/script-executor-conformance.test.ts +3 -0
- package/src/tests/script-executor-quickjs.test.ts +442 -0
- package/src/tests/script-executor-registry.test.ts +6 -1
- package/src/tests/script-runs-http.test.ts +88 -1
- package/src/tests/script-runs-scrub.test.ts +275 -0
- package/src/tests/scripts-http.test.ts +82 -1
- package/src/tests/scrubbed-text-12e.test.ts +289 -0
- package/src/tests/sealed-key-guard.test.ts +166 -0
- package/src/tests/secret-canary-sweep.test.ts +958 -0
- package/src/tests/secret-registry.test.ts +355 -0
- package/src/tests/secret-rules.test.ts +230 -0
- package/src/tests/secret-scrubber.test.ts +3 -2
- package/src/tests/workflow-replay.test.ts +518 -0
- package/src/tests/workflow-scrub.test.ts +242 -0
- package/src/tools/db-query.ts +1 -1
- package/src/tools/inject-learning.ts +1 -1
- package/src/tools/workflows/get-workflow-run.ts +3 -2
- package/src/types.ts +1 -1
- package/src/utils/secret-rules.generated.ts +2055 -0
- package/src/utils/secret-scrubber.ts +363 -29
- package/src/workflows/engine.ts +39 -4
- package/src/workflows/recovery.ts +10 -1
- package/src/workflows/resume.ts +62 -3
- package/src/workflows/retry-poller.ts +3 -0
- package/dist/boot-scrub-logs-246yn076.js +0 -99
- package/dist/cli-3a4m1aws.js +0 -572
- package/dist/cli-a87b04k8.js +0 -951
- package/dist/cli-cvk6yzw5.js +0 -40
- package/dist/cli-h1spv8v4.js +0 -427
- package/dist/cli-jqt9hrnz.js +0 -168
- package/dist/cli-yhmwmv0g.js +0 -9281
- package/src/be/boot-scrub-logs.ts +0 -132
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* One-time boot-scrub: retroactively sanitize session_logs rows that contain
|
|
3
|
-
* sensitive patterns (structural regex matches) which pre-date the defense-in-
|
|
4
|
-
* depth scrub added to createSessionLogs / task persistence paths.
|
|
5
|
-
*
|
|
6
|
-
* Idempotent: already-scrubbed rows are no-ops (scrubSecrets is idempotent).
|
|
7
|
-
* Uses seed_state to avoid re-scanning on subsequent boots.
|
|
8
|
-
*
|
|
9
|
-
* Restart-safe: progress is persisted as a cursor in seed_state after each
|
|
10
|
-
* batch, so a restart (e.g. K8s probe SIGKILL) resumes from the last
|
|
11
|
-
* committed batch instead of re-scanning from zero.
|
|
12
|
-
*
|
|
13
|
-
* Non-blocking: yields to the event loop between batches so /health and
|
|
14
|
-
* startup/liveness probes stay responsive.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import { scrubSecrets } from "../utils/secret-scrubber";
|
|
18
|
-
import { getDbClient } from "./db";
|
|
19
|
-
|
|
20
|
-
const SCRUB_KEY = "boot-scrub-logs-v2";
|
|
21
|
-
const CURSOR_KEY = "boot-scrub-logs-v2-cursor";
|
|
22
|
-
const BATCH_SIZE = 200;
|
|
23
|
-
|
|
24
|
-
/** Yield to the event loop so probes can respond. */
|
|
25
|
-
const yieldTick = () => new Promise<void>((r) => setTimeout(r, 5));
|
|
26
|
-
|
|
27
|
-
export async function runBootScrubLogs(): Promise<void> {
|
|
28
|
-
const done = await getDbClient().get<{ key: string }>(
|
|
29
|
-
"SELECT key FROM seed_state WHERE kind = ? AND key = ?",
|
|
30
|
-
["maintenance", SCRUB_KEY],
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
if (done) return;
|
|
34
|
-
|
|
35
|
-
// Resume from last cursor if a previous run was interrupted
|
|
36
|
-
const savedCursor =
|
|
37
|
-
(
|
|
38
|
-
await getDbClient().get<{ seededHash: string }>(
|
|
39
|
-
"SELECT seededHash FROM seed_state WHERE kind = ? AND key = ?",
|
|
40
|
-
["maintenance", CURSOR_KEY],
|
|
41
|
-
)
|
|
42
|
-
)?.seededHash ?? "";
|
|
43
|
-
|
|
44
|
-
const lastProcessedId = savedCursor || "";
|
|
45
|
-
|
|
46
|
-
// Count total work remaining (for logging only)
|
|
47
|
-
const totalRemaining =
|
|
48
|
-
(
|
|
49
|
-
await getDbClient().get<{ count: number }>(
|
|
50
|
-
`SELECT COUNT(*) as count FROM session_logs
|
|
51
|
-
WHERE id > ?
|
|
52
|
-
AND (content LIKE '%lin!_oauth!_%' ESCAPE '!'
|
|
53
|
-
OR content LIKE '%lin!_api!_%' ESCAPE '!'
|
|
54
|
-
OR content LIKE '%npm!_%' ESCAPE '!'
|
|
55
|
-
OR content LIKE '%ATATT%')`,
|
|
56
|
-
[lastProcessedId],
|
|
57
|
-
)
|
|
58
|
-
)?.count ?? 0;
|
|
59
|
-
|
|
60
|
-
if (totalRemaining === 0) {
|
|
61
|
-
await markDone();
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
console.log(
|
|
66
|
-
`[boot-scrub-logs] starting: ${totalRemaining} candidate rows remaining` +
|
|
67
|
-
(lastProcessedId ? ` (resuming from cursor ${lastProcessedId.slice(0, 8)}…)` : ""),
|
|
68
|
-
);
|
|
69
|
-
|
|
70
|
-
const saveCursorSql = `INSERT INTO seed_state (kind, key, seededHash, seededAt)
|
|
71
|
-
VALUES ('maintenance', '${CURSOR_KEY}', ?, datetime('now'))
|
|
72
|
-
ON CONFLICT (kind, key) DO UPDATE SET seededHash = ?, seededAt = datetime('now')`;
|
|
73
|
-
|
|
74
|
-
let scrubbed = 0;
|
|
75
|
-
let scanned = 0;
|
|
76
|
-
let cursor = lastProcessedId;
|
|
77
|
-
|
|
78
|
-
// Paginated cursor loop — each iteration fetches the next BATCH_SIZE rows
|
|
79
|
-
// ordered by id, processes them in a transaction, saves the cursor, and
|
|
80
|
-
// yields to the event loop.
|
|
81
|
-
for (;;) {
|
|
82
|
-
const rows = await getDbClient().query<{ id: string; content: string }>(
|
|
83
|
-
`SELECT id, content FROM session_logs
|
|
84
|
-
WHERE id > ?
|
|
85
|
-
AND (content LIKE '%lin!_oauth!_%' ESCAPE '!'
|
|
86
|
-
OR content LIKE '%lin!_api!_%' ESCAPE '!'
|
|
87
|
-
OR content LIKE '%npm!_%' ESCAPE '!'
|
|
88
|
-
OR content LIKE '%ATATT%')
|
|
89
|
-
ORDER BY id ASC
|
|
90
|
-
LIMIT ${BATCH_SIZE}`,
|
|
91
|
-
[cursor],
|
|
92
|
-
);
|
|
93
|
-
if (rows.length === 0) break;
|
|
94
|
-
|
|
95
|
-
const batchLastId = rows[rows.length - 1]!.id;
|
|
96
|
-
|
|
97
|
-
await getDbClient().transaction(async (tx) => {
|
|
98
|
-
for (const row of rows) {
|
|
99
|
-
const cleaned = scrubSecrets(row.content);
|
|
100
|
-
if (cleaned !== row.content) {
|
|
101
|
-
await tx.run("UPDATE session_logs SET content = ? WHERE id = ?", [cleaned, row.id]);
|
|
102
|
-
scrubbed++;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
// Persist cursor inside the same transaction so it's atomic with the scrub
|
|
106
|
-
await tx.run(saveCursorSql, [batchLastId, batchLastId]);
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
scanned += rows.length;
|
|
110
|
-
cursor = batchLastId;
|
|
111
|
-
|
|
112
|
-
// Yield to the event loop between batches
|
|
113
|
-
await yieldTick();
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
await markDone();
|
|
117
|
-
// Clean up the cursor key now that we're fully done
|
|
118
|
-
await getDbClient().run("DELETE FROM seed_state WHERE kind = 'maintenance' AND key = ?", [
|
|
119
|
-
CURSOR_KEY,
|
|
120
|
-
]);
|
|
121
|
-
|
|
122
|
-
console.log(`[boot-scrub-logs] complete: scanned=${scanned} scrubbed=${scrubbed}`);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
async function markDone(): Promise<void> {
|
|
126
|
-
await getDbClient().run(
|
|
127
|
-
`INSERT INTO seed_state (kind, key, seededHash, seededAt)
|
|
128
|
-
VALUES ('maintenance', ?, 'done', datetime('now'))
|
|
129
|
-
ON CONFLICT (kind, key) DO UPDATE SET seededHash = 'done', seededAt = datetime('now')`,
|
|
130
|
-
[SCRUB_KEY],
|
|
131
|
-
);
|
|
132
|
-
}
|