@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.
Files changed (188) hide show
  1. package/dist/{acp-adapter-w6zws6me.js → acp-adapter-yzfxn8vj.js} +4 -4
  2. package/dist/{actions-jna0b3wm.js → actions-qz3m692w.js} +20 -24
  3. package/dist/{amp-adapter-0eve81pz.js → amp-adapter-j1xbmsqz.js} +4 -4
  4. package/dist/{app-75hm5cfa.js → app-43vrdmv8.js} +6 -7
  5. package/dist/{assistant-yzd51j33.js → assistant-ertffmka.js} +21 -25
  6. package/dist/{boot-reembed-z158xq32.js → boot-reembed-998jtpdg.js} +9 -12
  7. package/dist/{boot-reembed-2ex2mcsh.js → boot-reembed-s7k7c6v2.js} +10 -12
  8. package/dist/boot-scrub-sweep-nepsk4t1.js +211 -0
  9. package/dist/{boot-seeds-2bmnh18p.js → boot-seeds-vvzs1zhk.js} +8 -8
  10. package/dist/{claude-adapter-jbj1mycz.js → claude-adapter-2zvmekrp.js} +9 -11
  11. package/dist/{claude-managed-adapter-17ggz09t.js → claude-managed-adapter-s49wbk8t.js} +3 -3
  12. package/dist/{claude-managed-setup-ptm1nzm2.js → claude-managed-setup-cvhqq8qn.js} +4 -4
  13. package/dist/{claude-sdk-session-9re1g7r2.js → claude-sdk-session-kkbxtw5q.js} +2618 -2600
  14. package/dist/{cli-k6xx3pve.js → cli-0nhdwxd5.js} +4 -4
  15. package/dist/{cli-n9ehc28t.js → cli-0qjcsxgz.js} +4 -4
  16. package/dist/{cli-zn2v3t8v.js → cli-3ddybbbx.js} +1 -1
  17. package/dist/{cli-5anb0ev3.js → cli-3qn4r334.js} +71 -14
  18. package/dist/{cli-1kzfvd1z.js → cli-4r1sjfc4.js} +9 -5
  19. package/dist/{cli-ba66wyhy.js → cli-66zh26sp.js} +6 -6
  20. package/dist/{cli-9xb89xca.js → cli-68r1j4sg.js} +6 -6
  21. package/dist/{cli-xnzrzets.js → cli-8kgvmkak.js} +2 -2
  22. package/dist/{cli-28smfvbn.js → cli-8t229cmr.js} +5 -5
  23. package/dist/{cli-9866bd07.js → cli-aqcey741.js} +1 -1
  24. package/dist/{cli-90v942q1.js → cli-cpfmqz3n.js} +8 -8
  25. package/dist/{cli-50eg13rj.js → cli-df56tqdw.js} +459 -282
  26. package/dist/{cli-8gpbwy09.js → cli-dw2q9f7g.js} +5 -5
  27. package/dist/{cli-0n4fasz0.js → cli-ecknp7p1.js} +15 -15
  28. package/dist/{cli-xb3c6aat.js → cli-f2n17zhp.js} +1 -1
  29. package/dist/{cli-ftry7975.js → cli-feh3dkah.js} +1 -1
  30. package/dist/{cli-amwhs8h2.js → cli-fn697bnt.js} +2 -2
  31. package/dist/{cli-prt9emct.js → cli-gt8azyet.js} +3 -3
  32. package/dist/{cli-59jn5twa.js → cli-h3x613ze.js} +2 -2
  33. package/dist/{cli-mmzwwptd.js → cli-hf5s9pgf.js} +1 -1
  34. package/dist/cli-j2jbr8af.js +516 -0
  35. package/dist/{cli-wfajtmf7.js → cli-jhm6hzjn.js} +593 -10
  36. package/dist/{cli-xtgtyafv.js → cli-jvj6a0cv.js} +190 -439
  37. package/dist/{cli-hpryr6em.js → cli-mb75wpxf.js} +1 -1
  38. package/dist/{cli-420bdgw0.js → cli-mv2520nm.js} +1 -1
  39. package/dist/{cli-pjxnr1jn.js → cli-mwegs4af.js} +3 -3
  40. package/dist/{cli-5b2fjjzh.js → cli-p4ztb80h.js} +2 -2
  41. package/dist/{cli-e7t4snpa.js → cli-rggdq8wq.js} +4 -4
  42. package/dist/{cli-bdv39kgj.js → cli-rsy933yz.js} +5 -5
  43. package/dist/{cli-gh5yqzpe.js → cli-v2a8x45d.js} +2 -2
  44. package/dist/{cli-bns5c8k9.js → cli-vzc73wet.js} +43 -47
  45. package/dist/cli-wt7ccy4r.js +2654 -0
  46. package/dist/{cli-j0pdrmwg.js → cli-x7kpr72a.js} +3 -3
  47. package/dist/{cli-x7afk5wm.js → cli-xvc3q9br.js} +1 -1
  48. package/dist/{cli-9s3h836g.js → cli-xvdgasgy.js} +1 -1
  49. package/dist/{cli-zvckv750.js → cli-y59h2pk9.js} +2 -2
  50. package/dist/{cli-qdv8kgz7.js → cli-yshaazs1.js} +13884 -3241
  51. package/dist/{cli-nfygw434.js → cli-ysnyhws9.js} +2 -2
  52. package/dist/{cli-fw6vdcq5.js → cli-zp67qg5x.js} +34 -1
  53. package/dist/{cli-ma3zvh39.js → cli-zy7vwsne.js} +6066 -5829
  54. package/dist/cli.js +24 -20
  55. package/dist/{codex-adapter-3qnxshje.js → codex-adapter-dw1wxqt8.js} +7 -7
  56. package/dist/{codex-login-brkxhhdg.js → codex-login-terbdsqq.js} +2 -2
  57. package/dist/{codex-session-runner-612wnapp.js → codex-session-runner-3cgb8y1g.js} +7 -7
  58. package/dist/{commands-2ybfcxkj.js → commands-mhxam6z2.js} +6 -6
  59. package/dist/{cursor-adapter-p3jgdehv.js → cursor-adapter-2qda3st7.js} +3 -3
  60. package/dist/{db-f4ans0jj.js → db-sjks418k.js} +8 -6
  61. package/dist/{devin-adapter-dhzt01ff.js → devin-adapter-bffjj5n4.js} +2 -2
  62. package/dist/{dispatcher-pk182apd.js → dispatcher-1es759rn.js} +18 -22
  63. package/dist/{dsh-adapter-7twaeps1.js → dsh-adapter-bek4cyw9.js} +3 -3
  64. package/dist/{e2b-y8t3jzyz.js → e2b-nd50eccg.js} +1 -1
  65. package/dist/{event-bus-w7ac4n3c.js → event-bus-vnfthafg.js} +2 -2
  66. package/dist/{grok-adapter-yt9pab3k.js → grok-adapter-ar9cw9jg.js} +5 -5
  67. package/dist/{handlers-g2wnr4t9.js → handlers-1gkbhktr.js} +21 -25
  68. package/dist/{hook-f7jt9vnm.js → hook-ds2zxq9v.js} +14 -16
  69. package/dist/{hook-bbdpnkb4.js → hook-vxa3tcsy.js} +8 -10
  70. package/dist/{http-w40q4w94.js → http-3h21z9md.js} +247 -164
  71. package/dist/{index-056j5kzn.js → index-9b65j1m5.js} +8 -8
  72. package/dist/{index-9bfssf54.js → index-bn6cy8ps.js} +18 -22
  73. package/dist/{index-cj1r9q83.js → index-dkfxpkmm.js} +19 -23
  74. package/dist/{index-7n70jwbb.js → index-f8xnqrye.js} +19 -21
  75. package/dist/{index-fdk1t4d6.js → index-n0rxa4ca.js} +11962 -9900
  76. package/dist/{index-k8xc083e.js → index-n99fycq7.js} +18 -22
  77. package/dist/{keepalive-1tj10tf4.js → keepalive-3xspa9jw.js} +11 -8
  78. package/dist/{lead-st0bg7v4.js → lead-6qphc124.js} +34 -38
  79. package/dist/{maintenance-nz71zats.js → maintenance-0teem1bb.js} +7 -9
  80. package/dist/{node-f0ykebbv.js → node-9sg7ajby.js} +25 -7
  81. package/dist/{oauth-refresh-sweep-aefzwvvq.js → oauth-refresh-sweep-sh9q25xp.js} +10 -7
  82. package/dist/{onboard-kgpr9mbn.js → onboard-54qmnqxe.js} +2 -2
  83. package/dist/{opencode-adapter-0c8e70dk.js → opencode-adapter-wjfa2wvd.js} +2 -2
  84. package/dist/{otel-impl-x8zp4y5a.js → otel-impl-ycqzp2a1.js} +2 -2
  85. package/dist/{pi-mono-adapter-t280ah5c.js → pi-mono-adapter-e77e9zst.js} +4 -4
  86. package/dist/{pricing-refresh-9e0q7cwk.js → pricing-refresh-atnkngqs.js} +7 -7
  87. package/dist/{rbac-roles-kcp6zge2.js → rbac-roles-9pjphh9q.js} +6 -6
  88. package/dist/{rbac-roles-790j3ga8.js → rbac-roles-j78wdksm.js} +6 -6
  89. package/dist/{render-v2-tch4nefj.js → render-v2-pxjs49fx.js} +6 -7
  90. package/dist/{setup-rcm303ns.js → setup-ymej0xtx.js} +2 -2
  91. package/dist/{work-objects-ctg7t70w.js → work-objects-3nh4ymzb.js} +22 -26
  92. package/dist/{worker-5dp0xm55.js → worker-qa9fkz5s.js} +34 -38
  93. package/dist/{x-v3yw66zs.js → x-ma4gnfgy.js} +2 -2
  94. package/openapi.json +5 -2
  95. package/package.json +9 -5
  96. package/src/be/automation-preflight.ts +9 -4
  97. package/src/be/boot-scrub-sweep.ts +302 -0
  98. package/src/be/crypto/key-bootstrap.ts +1 -1
  99. package/src/be/db/approvals.ts +15 -1
  100. package/src/be/db/codex-oauth-device-flows.ts +40 -0
  101. package/src/be/db/config-secrets.ts +31 -0
  102. package/src/be/db/runtime.ts +4 -0
  103. package/src/be/db/script-runs.ts +15 -0
  104. package/src/be/db/tasks/write.ts +1 -1
  105. package/src/be/db-queries/mcp-oauth.ts +5 -0
  106. package/src/be/db-queries/oauth.ts +77 -0
  107. package/src/be/db.ts +162 -59
  108. package/src/be/events.ts +17 -1
  109. package/src/be/memory/index-content.ts +2 -2
  110. package/src/be/memory/providers/sqlite-store.ts +63 -11
  111. package/src/be/memory/types.ts +14 -0
  112. package/src/be/migrations/201_workflow_replay_columns.sql +10 -0
  113. package/src/be/migrations/202_codex_oauth_device_flows.sql +24 -0
  114. package/src/be/scripts/db.ts +28 -4
  115. package/src/be/scripts/source-secrets.ts +37 -0
  116. package/src/be/scrub-json.ts +32 -0
  117. package/src/be/sealed-json.ts +59 -0
  118. package/src/be/secret-registry.ts +131 -0
  119. package/src/be/workflow-replay.ts +77 -0
  120. package/src/http/codex-oauth-device.ts +8 -10
  121. package/src/http/db-query-bounded.ts +3 -0
  122. package/src/http/db-query-shared.ts +107 -15
  123. package/src/http/db-query.ts +10 -2
  124. package/src/http/index.ts +23 -6
  125. package/src/http/script-runs.ts +9 -1
  126. package/src/http/scripts.ts +15 -0
  127. package/src/http/workflows.ts +3 -2
  128. package/src/oauth/mcp-wrapper.ts +1 -1
  129. package/src/providers/acp-adapter.ts +25 -11
  130. package/src/providers/acp-target-catalog.ts +35 -1
  131. package/src/providers/acp-targets.ts +69 -3
  132. package/src/providers/amp-adapter.ts +1 -1
  133. package/src/providers/cursor-adapter.ts +1 -1
  134. package/src/script-workflows/supervisor.ts +11 -2
  135. package/src/scripts-runtime/eval-harness.ts +2 -12
  136. package/src/scripts-runtime/executors/quickjs-bundle.ts +152 -0
  137. package/src/scripts-runtime/executors/quickjs-prelude.ts +285 -0
  138. package/src/scripts-runtime/executors/quickjs-runner.ts +580 -0
  139. package/src/scripts-runtime/executors/quickjs-worker.ts +81 -0
  140. package/src/scripts-runtime/executors/quickjs.ts +196 -0
  141. package/src/scripts-runtime/executors/registry.ts +2 -0
  142. package/src/scripts-runtime/executors/sourcemap.ts +79 -0
  143. package/src/scripts-runtime/script-error-hints.ts +14 -0
  144. package/src/server.ts +3 -1
  145. package/src/tests/acp-adapter.test.ts +127 -2
  146. package/src/tests/boot-scrub-sweep.test.ts +390 -0
  147. package/src/tests/check-text-columns.test.ts +145 -0
  148. package/src/tests/claude-sdk-process.fixture.ts +13 -2
  149. package/src/tests/codex-oauth-device.test.ts +23 -37
  150. package/src/tests/db-query-denylist.test.ts +202 -0
  151. package/src/tests/db-task-read-contract.test.ts +1 -0
  152. package/src/tests/db-task-write-contract.test.ts +1 -0
  153. package/src/tests/entrypoint-acp-target-binary.test.ts +31 -1
  154. package/src/tests/events-scrub.test.ts +88 -0
  155. package/src/tests/fixtures/secret-corpus.ts +320 -0
  156. package/src/tests/script-connections.test.ts +5 -0
  157. package/src/tests/script-executor-conformance.test.ts +3 -0
  158. package/src/tests/script-executor-quickjs.test.ts +442 -0
  159. package/src/tests/script-executor-registry.test.ts +6 -1
  160. package/src/tests/script-runs-http.test.ts +88 -1
  161. package/src/tests/script-runs-scrub.test.ts +275 -0
  162. package/src/tests/scripts-http.test.ts +82 -1
  163. package/src/tests/scrubbed-text-12e.test.ts +289 -0
  164. package/src/tests/sealed-key-guard.test.ts +166 -0
  165. package/src/tests/secret-canary-sweep.test.ts +958 -0
  166. package/src/tests/secret-registry.test.ts +355 -0
  167. package/src/tests/secret-rules.test.ts +230 -0
  168. package/src/tests/secret-scrubber.test.ts +3 -2
  169. package/src/tests/workflow-replay.test.ts +518 -0
  170. package/src/tests/workflow-scrub.test.ts +242 -0
  171. package/src/tools/db-query.ts +1 -1
  172. package/src/tools/inject-learning.ts +1 -1
  173. package/src/tools/workflows/get-workflow-run.ts +3 -2
  174. package/src/types.ts +1 -1
  175. package/src/utils/secret-rules.generated.ts +2055 -0
  176. package/src/utils/secret-scrubber.ts +363 -29
  177. package/src/workflows/engine.ts +39 -4
  178. package/src/workflows/recovery.ts +10 -1
  179. package/src/workflows/resume.ts +62 -3
  180. package/src/workflows/retry-poller.ts +3 -0
  181. package/dist/boot-scrub-logs-246yn076.js +0 -99
  182. package/dist/cli-3a4m1aws.js +0 -572
  183. package/dist/cli-a87b04k8.js +0 -951
  184. package/dist/cli-cvk6yzw5.js +0 -40
  185. package/dist/cli-h1spv8v4.js +0 -427
  186. package/dist/cli-jqt9hrnz.js +0 -168
  187. package/dist/cli-yhmwmv0g.js +0 -9281
  188. package/src/be/boot-scrub-logs.ts +0 -132
@@ -2,12 +2,12 @@ import {
2
2
  COMPOSIO_HTTP_METHODS,
3
3
  composioArgsFromParts,
4
4
  executeComposioRequest
5
- } from "./cli-x7afk5wm.js";
5
+ } from "./cli-xvc3q9br.js";
6
6
  import {
7
7
  ampModelError,
8
8
  ampPinCatalogError,
9
9
  ampPinProviderError
10
- } from "./cli-420bdgw0.js";
10
+ } from "./cli-mv2520nm.js";
11
11
  import {
12
12
  LlmRater,
13
13
  REFERENCES_SOURCE_MAX_LENGTH,
@@ -20,7 +20,7 @@ import {
20
20
  import {
21
21
  ensurePricingSeeded,
22
22
  ensureRbacSeeded
23
- } from "./cli-k6xx3pve.js";
23
+ } from "./cli-0nhdwxd5.js";
24
24
  import {
25
25
  buildCatalogEntries,
26
26
  getCatalogGeneration,
@@ -30,10 +30,10 @@ import {
30
30
  requestModelCatalogRefresh,
31
31
  startPricingRefreshLoop,
32
32
  upsertModelCatalogOverlay
33
- } from "./cli-e7t4snpa.js";
33
+ } from "./cli-rggdq8wq.js";
34
34
  import {
35
35
  loadModelsDevCache
36
- } from "./cli-nfygw434.js";
36
+ } from "./cli-ysnyhws9.js";
37
37
  import {
38
38
  AppDefinitionSchema,
39
39
  AppElementsSchema,
@@ -64,7 +64,6 @@ import {
64
64
  decodeAppDefinition,
65
65
  definitionNodeIds,
66
66
  deleteApp,
67
- deleteScript,
68
67
  disableCredentialBinding,
69
68
  extractArgsJsonSchema,
70
69
  extractScriptSignature,
@@ -75,12 +74,9 @@ import {
75
74
  getOAuthBindingTokenStatus,
76
75
  getOAuthProviderConfig,
77
76
  getSavedScriptOwnerAgentId,
78
- getScript,
79
77
  getScriptApiConnectionDescriptors,
80
- getScriptById,
81
78
  getScriptConnectionById,
82
79
  getScriptMcpConnectionDescriptors,
83
- getScriptVersion,
84
80
  getSuccessors,
85
81
  isIso8601Date,
86
82
  listApps,
@@ -95,7 +91,6 @@ import {
95
91
  resolveSyncRunAs,
96
92
  resolveValidationPort,
97
93
  resolveWorkflowLlmConfig,
98
- restoreScratchScriptLastUsedIfUnchanged,
99
94
  runSavedScriptAsAgent,
100
95
  runScript,
101
96
  sandboxSpawnEnv,
@@ -103,17 +98,15 @@ import {
103
98
  snapshotCapped,
104
99
  systemOneRetryViolations,
105
100
  systemOneUnresolvedError,
106
- touchScratchScriptLastUsed,
107
101
  typecheckScript,
108
102
  updateApp,
109
103
  upgradeAppDefinition,
110
104
  upsertCredentialBinding,
111
- upsertScriptByName,
112
105
  upsertScriptConnection,
113
106
  validateDefinition,
114
107
  validateScriptImports,
115
108
  writeBareImportShim
116
- } from "./cli-xtgtyafv.js";
109
+ } from "./cli-jvj6a0cv.js";
117
110
  import {
118
111
  getApiKey
119
112
  } from "./cli-f14fvzag.js";
@@ -127,46 +120,13 @@ import {
127
120
  getFileStorageProvider,
128
121
  providerPath
129
122
  } from "./cli-mzfth0bp.js";
130
- import {
131
- embedScript
132
- } from "./cli-jqt9hrnz.js";
133
- import {
134
- CANDIDATE_SET_MULTIPLIER,
135
- LONGTERM_ROOT,
136
- MEMORY_KEY_MAX_LENGTH,
137
- MEMORY_KEY_PATTERN,
138
- MEMORY_KEY_PATTERN_MESSAGE,
139
- computeScore,
140
- consolidatedKeyMessage,
141
- getEmbeddingProvider,
142
- getMemoryStore,
143
- init_constants as init_constants2,
144
- init_key_paths,
145
- init_reranker,
146
- init_sqlite_store,
147
- isConsolidatedKey,
148
- isGraphExpansionEnabled,
149
- isLongtermKey,
150
- longtermKeyError,
151
- rerank,
152
- resolveStoreKey,
153
- rowToCandidate
154
- } from "./cli-yhmwmv0g.js";
155
123
  import {
156
124
  buildAuthorizationUrl,
157
- createOAuthApp,
158
125
  ensureAuthorizationTokenOrThrow,
159
126
  ensureToken,
160
127
  ensureTokenOrThrow,
161
- getAuthorizationById,
162
- getOAuthApp,
163
- getOAuthAppById,
164
- getOAuthAppIdByProvider,
165
- getOAuthTokens,
166
- listAuthorizationsForApp,
167
- onAuthorizationRefreshed,
168
- upsertOAuthApp
169
- } from "./cli-a87b04k8.js";
128
+ onAuthorizationRefreshed
129
+ } from "./cli-j2jbr8af.js";
170
130
  import {
171
131
  ZodFirstPartyTypeKind,
172
132
  objectType
@@ -196,16 +156,11 @@ import {
196
156
  taskCitationWarnings,
197
157
  upsertTaskCitations,
198
158
  withSpan
199
- } from "./cli-0n4fasz0.js";
200
- import {
201
- init_task_attachment_links,
202
- taskAttachmentDisplayUrl,
203
- taskAttachmentFetchCommand
204
- } from "./cli-cvk6yzw5.js";
159
+ } from "./cli-ecknp7p1.js";
205
160
  import {
206
161
  getUserGrant,
207
162
  init_rbac_roles
208
- } from "./cli-xnzrzets.js";
163
+ } from "./cli-8kgvmkak.js";
209
164
  import {
210
165
  can,
211
166
  decideAdmission,
@@ -217,16 +172,23 @@ import {
217
172
  } from "./cli-rfphkzh5.js";
218
173
  import {
219
174
  API_DRAIN_MAX_MS_LIMIT,
175
+ CANDIDATE_SET_MULTIPLIER,
220
176
  CredentialBindingSchema,
221
177
  EXTENSION_AGENT_ROLE,
222
178
  KvTypeCollisionError,
179
+ LONGTERM_ROOT,
223
180
  MAX_EMPTY_POLLS,
181
+ MEMORY_KEY_MAX_LENGTH,
182
+ MEMORY_KEY_PATTERN,
183
+ MEMORY_KEY_PATTERN_MESSAGE,
224
184
  SteeringRequestError,
185
+ WorkflowReplayStateError,
225
186
  acceptTask,
226
187
  agentContextKey,
227
188
  agentmailContextKey,
228
189
  azureDevOpsContextKey,
229
190
  beginRequestAuthScope,
191
+ breaksJsonValidity,
230
192
  buildJiraContextKey,
231
193
  buildRoutingAffinityFromAgent,
232
194
  cancelApprovalRequestById,
@@ -238,6 +200,8 @@ import {
238
200
  claimTask,
239
201
  completeTask,
240
202
  computeContentHash,
203
+ computeScore,
204
+ consolidatedKeyMessage,
241
205
  countKv,
242
206
  createAgent,
243
207
  createAgentMailInboxMapping,
@@ -248,6 +212,7 @@ import {
248
212
  createMcpServer,
249
213
  createMetric,
250
214
  createMetricVersion,
215
+ createOAuthApp,
251
216
  createPage,
252
217
  createPageVersion,
253
218
  createScheduledTask,
@@ -265,6 +230,7 @@ import {
265
230
  deletePage,
266
231
  deletePromptTemplate,
267
232
  deleteScheduledTask,
233
+ deleteScript,
268
234
  deleteService,
269
235
  deleteSkill,
270
236
  deleteSkillFile,
@@ -272,6 +238,7 @@ import {
272
238
  deleteUser,
273
239
  deleteWorkflow,
274
240
  detachTaskFromWorkflowRunStep,
241
+ embedScript,
275
242
  emitMcpServerConnectedTelemetry,
276
243
  exports_db,
277
244
  extensionAgentAssignmentError,
@@ -299,6 +266,7 @@ import {
299
266
  getAppVersion,
300
267
  getAppVersions,
301
268
  getApprovalRequestById,
269
+ getAuthorizationById,
302
270
  getBudget,
303
271
  getChannelById,
304
272
  getChannelByName,
@@ -315,6 +283,7 @@ import {
315
283
  getDependentTasks,
316
284
  getDueScheduledTasks,
317
285
  getDueWaitStates,
286
+ getEmbeddingProvider,
318
287
  getInProgressTasksByContextKey,
319
288
  getInboxMessageById,
320
289
  getInboxSummary,
@@ -328,10 +297,15 @@ import {
328
297
  getLogsByTaskIdChronological,
329
298
  getMcpServerById,
330
299
  getMcpServerByName,
300
+ getMemoryStore,
331
301
  getMentionsForAgent,
332
302
  getMetric,
333
303
  getMetricBySlug,
334
304
  getMetricVersions,
305
+ getOAuthApp,
306
+ getOAuthAppById,
307
+ getOAuthAppIdByProvider,
308
+ getOAuthTokens,
335
309
  getOfferedTasksForAgent,
336
310
  getPage,
337
311
  getPageBySlug,
@@ -349,6 +323,9 @@ import {
349
323
  getScheduledTaskById,
350
324
  getScheduledTaskByName,
351
325
  getScheduledTasks,
326
+ getScript,
327
+ getScriptById,
328
+ getScriptVersion,
352
329
  getServiceByAgentAndName,
353
330
  getServiceById,
354
331
  getSessionLogsByTaskId,
@@ -389,39 +366,54 @@ import {
389
366
  incrementEmptyPollCount,
390
367
  initDb,
391
368
  init_api_drain,
369
+ init_constants as init_constants2,
392
370
  init_context_key,
393
371
  init_credential_broker,
394
372
  init_date_utils,
395
373
  init_db,
374
+ init_db1 as init_db2,
396
375
  init_db_client,
376
+ init_embeddings,
377
+ init_key_paths,
378
+ init_memory,
397
379
  init_model_tier_keys,
380
+ init_oauth,
398
381
  init_request_auth_context,
382
+ init_reranker,
383
+ init_scrub_json,
399
384
  init_slack_routing,
385
+ init_sqlite_store,
400
386
  init_steering,
401
387
  init_swarm_config_guard,
402
388
  init_task_lifecycle_events,
403
389
  init_telemetry,
404
390
  init_telemetry_identity,
405
391
  init_templates1 as init_templates,
392
+ init_workflow_replay,
406
393
  insertTaskAttachment,
407
394
  installMcpServer,
408
395
  installSkill,
409
396
  internalConfigKeyError,
410
397
  isAgentEligibleForTask,
398
+ isConsolidatedKey,
411
399
  isExtensionAgent,
400
+ isGraphExpansionEnabled,
412
401
  isInTransaction,
413
402
  isInternalConfigKey,
414
403
  isLinearTrackerContextKey,
404
+ isLongtermKey,
415
405
  isReservedConfigKey,
416
406
  isSteeringEnabled,
417
407
  kvPrefixUpperBound,
418
408
  linearContextKey,
409
+ listAuthorizationsForApp,
419
410
  listCancelledApprovalRequestsForRun,
420
411
  listKv,
421
412
  listMcpServers,
422
413
  listSkills,
423
414
  listWorkflowRunsPage,
424
415
  listWorkflows,
416
+ longtermKeyError,
425
417
  markInboxMessageResponded,
426
418
  markSteeringHandled,
427
419
  markTaskSlackReplySent,
@@ -443,14 +435,19 @@ import {
443
435
  releaseMentionProcessing,
444
436
  releaseTask,
445
437
  requestSteering,
438
+ rerank,
446
439
  reservedKeyError,
447
440
  resetEmptyPollCount,
448
441
  resolveApprovalRequest,
449
442
  resolveSqliteVecExtensionPath,
443
+ resolveStoreKey,
450
444
  resolveWaitState,
445
+ restoreScratchScriptLastUsedIfUnchanged,
446
+ rowToCandidate,
451
447
  runWithoutRequestAuth,
452
448
  scheduleContextKey,
453
449
  scheduleOrgDomainRecompute,
450
+ scrubJsonValue,
454
451
  searchSkills,
455
452
  setBudgetRefusalFollowUpTaskId,
456
453
  setRequestAuth,
@@ -459,6 +456,7 @@ import {
459
456
  sweepExpiredKvPrefix,
460
457
  telemetry,
461
458
  tierConfigKey,
459
+ touchScratchScriptLastUsed,
462
460
  uninstallMcpServer,
463
461
  uninstallSkill,
464
462
  updateAgentMaxTasks,
@@ -480,13 +478,15 @@ import {
480
478
  updateWorkflowRun,
481
479
  updateWorkflowRunStep,
482
480
  upsertKv,
481
+ upsertOAuthApp,
483
482
  upsertPromptTemplate,
483
+ upsertScriptByName,
484
484
  upsertService,
485
485
  upsertSkillFiles,
486
486
  upsertSwarmConfig,
487
487
  validateConfigValue,
488
488
  workflowContextKey
489
- } from "./cli-qdv8kgz7.js";
489
+ } from "./cli-yshaazs1.js";
490
490
  import {
491
491
  $OpenAPIRegistry,
492
492
  $OpenApiGeneratorV31,
@@ -546,13 +546,16 @@ import {
546
546
  parseAssetKey,
547
547
  parseModelTier,
548
548
  splitLegacyModelAlias
549
- } from "./cli-9s3h836g.js";
549
+ } from "./cli-xvdgasgy.js";
550
550
  import {
551
551
  generateDefaultClaudeMd,
552
552
  generateDefaultIdentityMd,
553
553
  generateDefaultSoulMd,
554
- init_defaults
555
- } from "./cli-3a4m1aws.js";
554
+ init_defaults,
555
+ init_task_attachment_links,
556
+ taskAttachmentDisplayUrl,
557
+ taskAttachmentFetchCommand
558
+ } from "./cli-jhm6hzjn.js";
556
559
  import {
557
560
  getSlackConfiguration,
558
561
  init_config,
@@ -647,11 +650,11 @@ import {
647
650
  import {
648
651
  init_package,
649
652
  package_default
650
- } from "./cli-1kzfvd1z.js";
653
+ } from "./cli-4r1sjfc4.js";
651
654
  import {
652
655
  init_event_bus,
653
656
  workflowEventBus
654
- } from "./cli-hpryr6em.js";
657
+ } from "./cli-mb75wpxf.js";
655
658
  import {
656
659
  init_bus,
657
660
  realtimeBus
@@ -664,7 +667,7 @@ import {
664
667
  registerVolatileSecret,
665
668
  scrubObject,
666
669
  scrubSecrets
667
- } from "./cli-h1spv8v4.js";
670
+ } from "./cli-wt7ccy4r.js";
668
671
  import {
669
672
  __callDispose,
670
673
  __commonJS,
@@ -14387,7 +14390,7 @@ async function notifyAutomationPreflightFailure(preflight) {
14387
14390
  return;
14388
14391
  }
14389
14392
  try {
14390
- const { getSlackApp: getSlackApp2 } = await import("./app-75hm5cfa.js");
14393
+ const { getSlackApp: getSlackApp2 } = await import("./app-43vrdmv8.js");
14391
14394
  const app = getSlackApp2();
14392
14395
  if (!app) {
14393
14396
  console.warn("[Automation Preflight] Slack not available, cannot send notification");
@@ -14412,7 +14415,10 @@ Fix setup: ${getAppUrl()}${preflight.fixUrl}`),
14412
14415
  // src/be/automation-preflight.ts
14413
14416
  init_config();
14414
14417
  init_env_flag();
14415
- init_db();
14418
+ init_secret_scrubber();
14419
+ init_db2();
14420
+ init_oauth();
14421
+ init_scrub_json();
14416
14422
  var NEEDS_SETUP_PREFIX = "needs_setup:";
14417
14423
  function hasValue(value) {
14418
14424
  if (value == null)
@@ -14623,16 +14629,17 @@ function utcDayBounds(now) {
14623
14629
  return { start: start.toISOString(), end: new Date(start.getTime() + 86400000).toISOString() };
14624
14630
  }
14625
14631
  async function recordSchedulePreflightFailure(scheduleId, failureReason, now = new Date) {
14632
+ const message = scrubSecrets(failureReason);
14626
14633
  return await getDbClient().transaction(async (tx) => {
14627
14634
  const row = await tx.get("SELECT lastErrorAt, lastErrorMessage FROM scheduled_tasks WHERE id = ?", [scheduleId]);
14628
14635
  if (!row)
14629
14636
  return false;
14630
- if (row.lastErrorMessage === failureReason && row.lastErrorAt?.slice(0, 10) === now.toISOString().slice(0, 10)) {
14637
+ if (row.lastErrorMessage === message && row.lastErrorAt?.slice(0, 10) === now.toISOString().slice(0, 10)) {
14631
14638
  return false;
14632
14639
  }
14633
14640
  await tx.run(`UPDATE scheduled_tasks
14634
14641
  SET lastErrorAt = ?, lastErrorMessage = ?, lastUpdatedAt = ?
14635
- WHERE id = ?`, [now.toISOString(), failureReason, now.toISOString(), scheduleId]);
14642
+ WHERE id = ?`, [now.toISOString(), message, now.toISOString(), scheduleId]);
14636
14643
  return true;
14637
14644
  });
14638
14645
  }
@@ -14656,8 +14663,8 @@ async function recordWorkflowPreflightFailure(input) {
14656
14663
  runId,
14657
14664
  input.workflowId,
14658
14665
  input.triggerType,
14659
- input.triggerData === undefined ? null : JSON.stringify(input.triggerData),
14660
- input.failureReason,
14666
+ input.triggerData === undefined ? null : scrubJsonValue(input.triggerData),
14667
+ scrubSecrets(input.failureReason),
14661
14668
  input.createdBy ?? null,
14662
14669
  timestamp,
14663
14670
  timestamp,
@@ -14668,11 +14675,12 @@ async function recordWorkflowPreflightFailure(input) {
14668
14675
  }
14669
14676
 
14670
14677
  // src/workflows/engine.ts
14671
- init_db();
14678
+ init_db2();
14679
+ init_workflow_replay();
14672
14680
  init_telemetry();
14673
14681
 
14674
14682
  // src/workflows/checkpoint.ts
14675
- init_db();
14683
+ init_db2();
14676
14684
  async function checkpointStep(runId, stepId, nodeId, result, ctx) {
14677
14685
  await getDbClient().transaction(async () => {
14678
14686
  await updateWorkflowRunStep(stepId, {
@@ -14759,10 +14767,10 @@ function calculateBackoff(policy, attempt) {
14759
14767
  }
14760
14768
 
14761
14769
  // src/workflows/completed-step-routing.ts
14762
- init_db();
14770
+ init_db2();
14763
14771
 
14764
14772
  // src/workflows/foreach-join.ts
14765
- init_db();
14773
+ init_db2();
14766
14774
  var FOREACH_TERMINAL_STEP_STATUSES = new Set([
14767
14775
  "completed",
14768
14776
  "failed",
@@ -14859,7 +14867,7 @@ async function loadCompletedStepRouting(def, runId, completedNodeIds) {
14859
14867
  }
14860
14868
 
14861
14869
  // src/workflows/cooldown.ts
14862
- init_db();
14870
+ init_db2();
14863
14871
  function cooldownToMs(cooldown) {
14864
14872
  let ms = 0;
14865
14873
  if (cooldown.hours)
@@ -14889,7 +14897,7 @@ async function shouldSkipCooldown(workflowId, cooldown) {
14889
14897
  }
14890
14898
 
14891
14899
  // src/workflows/input.ts
14892
- init_db();
14900
+ init_db2();
14893
14901
  init_secret_scrubber();
14894
14902
  async function resolveInputs(input) {
14895
14903
  const resolved = {};
@@ -15297,6 +15305,22 @@ async function startWorkflowExecution(workflow, triggerData, registry, options =
15297
15305
  }
15298
15306
  var activeWalks = new Map;
15299
15307
  var executingSteps = new Set;
15308
+ async function failRunOnUnreadableReplay(runId, err, stepId) {
15309
+ if (!(err instanceof WorkflowReplayStateError))
15310
+ return false;
15311
+ const finishedAt = new Date().toISOString();
15312
+ console.error(`[workflow] ${err.message}`);
15313
+ if (stepId) {
15314
+ await updateWorkflowRunStep(stepId, {
15315
+ status: "failed",
15316
+ error: err.message,
15317
+ finishedAt,
15318
+ nextRetryAt: null
15319
+ });
15320
+ }
15321
+ await updateWorkflowRun(runId, { status: "failed", error: err.message, finishedAt });
15322
+ return true;
15323
+ }
15300
15324
  function isWorkflowRunActive(runId) {
15301
15325
  return activeWalks.has(runId);
15302
15326
  }
@@ -15318,6 +15342,9 @@ async function walkGraph(def, runId, ctx, startNodes, registry, workflowId, secr
15318
15342
  const release = holdWorkflowRun(runId);
15319
15343
  try {
15320
15344
  await walkGraphOwned(def, runId, ctx, startNodes, registry, workflowId, secretKeys, options);
15345
+ } catch (err) {
15346
+ if (!await failRunOnUnreadableReplay(runId, err))
15347
+ throw err;
15321
15348
  } finally {
15322
15349
  release();
15323
15350
  }
@@ -15373,10 +15400,10 @@ async function walkGraphOwned(def, runId, ctx, startNodes, registry, workflowId,
15373
15400
  });
15374
15401
  return;
15375
15402
  }
15376
- const results = await Promise.all(pendingNodes.map((node) => executeStep(def, runId, ctx, node, registry, workflowId, secretKeys, options).catch((_err) => ({
15377
- outcome: "failed",
15378
- successors: []
15379
- }))));
15403
+ const results = await Promise.all(pendingNodes.map((node) => executeStep(def, runId, ctx, node, registry, workflowId, secretKeys, options).catch(async (err) => {
15404
+ await failRunOnUnreadableReplay(runId, err);
15405
+ return { outcome: "failed", successors: [] };
15406
+ })));
15380
15407
  const nextBatch = new Map;
15381
15408
  let hasWaiting = false;
15382
15409
  for (let i = 0;i < results.length; i++) {
@@ -15590,6 +15617,11 @@ async function executeStep(def, runId, ctx, node, registry, workflowId, secretKe
15590
15617
  }
15591
15618
  try {
15592
15619
  return await runClaimedStep(def, runId, ctx, node, registry, dedup.existingStep, dedup.stepId, workflowId, options);
15620
+ } catch (err) {
15621
+ if (await failRunOnUnreadableReplay(runId, err, dedup.stepId)) {
15622
+ return { outcome: "failed", successors: [] };
15623
+ }
15624
+ throw err;
15593
15625
  } finally {
15594
15626
  executingSteps.delete(dedup.stepId);
15595
15627
  }
@@ -15877,7 +15909,7 @@ function timeoutPromise(ms) {
15877
15909
  init_event_bus();
15878
15910
 
15879
15911
  // src/workflows/recovery.ts
15880
- init_db();
15912
+ init_db2();
15881
15913
 
15882
15914
  // src/workflows/approval-resolution.ts
15883
15915
  function shapeApprovalResolution(registry, definition, nodeId, parkedOutput, approval) {
@@ -15901,7 +15933,7 @@ function shapeApprovalResolution(registry, definition, nodeId, parkedOutput, app
15901
15933
  var FAILED_TASK_OUTPUT_PREFIX = "[FAILED:";
15902
15934
 
15903
15935
  // src/workflows/resume.ts
15904
- init_db();
15936
+ init_db2();
15905
15937
  init_secret_scrubber();
15906
15938
  init_event_bus();
15907
15939
 
@@ -16182,7 +16214,7 @@ function computeNextPort(mode, status) {
16182
16214
  }
16183
16215
 
16184
16216
  // src/workflows/task-step-routing.ts
16185
- init_db();
16217
+ init_db2();
16186
16218
  init_types();
16187
16219
  async function isTaskBoundToStep(taskId, stepId) {
16188
16220
  const task = await getTaskById(taskId);
@@ -16336,7 +16368,18 @@ function setupWorkflowResumeListener(eventBus, registry) {
16336
16368
  eventBus.off("approval.resolved", onApprovalResolved);
16337
16369
  };
16338
16370
  }
16371
+ async function failClosedOnUnreadableReplay(runId, stepId, resume) {
16372
+ try {
16373
+ await resume();
16374
+ } catch (err) {
16375
+ if (!await failRunOnUnreadableReplay(runId, err, stepId))
16376
+ throw err;
16377
+ }
16378
+ }
16339
16379
  async function resumeFromTaskCompletion(event, registry) {
16380
+ await failClosedOnUnreadableReplay(event.workflowRunId, event.workflowRunStepId, () => resumeFromTaskCompletionUnguarded(event, registry));
16381
+ }
16382
+ async function resumeFromTaskCompletionUnguarded(event, registry) {
16340
16383
  const run = await getWorkflowRun(event.workflowRunId);
16341
16384
  if (!run || run.status !== "waiting" && run.status !== "running")
16342
16385
  return;
@@ -16391,6 +16434,9 @@ async function finalizeOrWait(runId) {
16391
16434
  });
16392
16435
  }
16393
16436
  async function handleTaskFailure(event, reason, registry, options) {
16437
+ await failClosedOnUnreadableReplay(event.workflowRunId, event.workflowRunStepId, () => handleTaskFailureUnguarded(event, reason, registry, options));
16438
+ }
16439
+ async function handleTaskFailureUnguarded(event, reason, registry, options) {
16394
16440
  const run = await getWorkflowRun(event.workflowRunId);
16395
16441
  if (!run || run.status !== "waiting" && run.status !== "running")
16396
16442
  return;
@@ -16533,6 +16579,9 @@ async function cancelWorkflowRun(runId, reason) {
16533
16579
  await postApprovalCancellationUpdates(cancelledApprovals, applied ? cancelReason : latestRun?.error ?? cancelReason);
16534
16580
  }
16535
16581
  async function resumeFromApprovalResolution(event, registry) {
16582
+ await failClosedOnUnreadableReplay(event.workflowRunId, event.workflowRunStepId, () => resumeFromApprovalResolutionUnguarded(event, registry));
16583
+ }
16584
+ async function resumeFromApprovalResolutionUnguarded(event, registry) {
16536
16585
  const run = await getWorkflowRun(event.workflowRunId);
16537
16586
  if (!run || run.status !== "waiting" && run.status !== "running")
16538
16587
  return;
@@ -16542,11 +16591,11 @@ async function resumeFromApprovalResolution(event, registry) {
16542
16591
  const workflow = await getWorkflow(run.workflowId);
16543
16592
  if (!workflow)
16544
16593
  return;
16545
- const ctx = run.context ?? {};
16546
16594
  if (event.status === "cancelled") {
16547
16595
  console.warn(`[workflows] approval ${event.requestId} is cancelled; step ${event.workflowRunStepId} stays waiting for the run cancel path`);
16548
16596
  return;
16549
16597
  }
16598
+ const ctx = run.context ?? {};
16550
16599
  const { output: stepOutput, nextPort } = shapeApprovalResolution(registry, workflow.definition, step.nodeId, step.output, { requestId: event.requestId, status: event.status, responses: event.responses });
16551
16600
  const routing = await checkpointPortStepAndResolveSuccessors(workflow.definition, run.id, step.id, step.nodeId, stepOutput, nextPort, ctx);
16552
16601
  if (!routing.claimed)
@@ -16565,6 +16614,9 @@ async function resumeWaitState(waitId, status, payload, registry) {
16565
16614
  if (!result.updated || !result.row)
16566
16615
  return;
16567
16616
  const waitRow = result.row;
16617
+ await failClosedOnUnreadableReplay(waitRow.workflowRunId, waitRow.workflowRunStepId, () => resumeClaimedWait(waitRow, status, cappedPayload, registry));
16618
+ }
16619
+ async function resumeClaimedWait(waitRow, status, cappedPayload, registry) {
16568
16620
  const run = await getWorkflowRun(waitRow.workflowRunId);
16569
16621
  if (!run || run.status !== "waiting" && run.status !== "running")
16570
16622
  return;
@@ -16749,6 +16801,8 @@ async function recoverRunningRuns(registry) {
16749
16801
  }
16750
16802
  recovered++;
16751
16803
  } catch (err) {
16804
+ if (await failRunOnUnreadableReplay(runId, err))
16805
+ continue;
16752
16806
  console.error(`[workflows] Failed to recover running run ${runId}:`, err);
16753
16807
  }
16754
16808
  }
@@ -16834,6 +16888,8 @@ async function recoverWaitingRuns(registry) {
16834
16888
  }
16835
16889
  recovered++;
16836
16890
  } catch (err) {
16891
+ if (await failRunOnUnreadableReplay(stuck.runId, err))
16892
+ continue;
16837
16893
  console.error(`[workflows] Failed to recover waiting run ${stuck.runId}:`, err);
16838
16894
  }
16839
16895
  }
@@ -16888,6 +16944,8 @@ async function recoverApprovalWaitingRuns(registry) {
16888
16944
  }
16889
16945
  recovered++;
16890
16946
  } catch (err) {
16947
+ if (await failRunOnUnreadableReplay(stuck.runId, err))
16948
+ continue;
16891
16949
  console.error(`[workflows] Failed to recover approval-waiting run ${stuck.runId}:`, err);
16892
16950
  }
16893
16951
  }
@@ -16911,6 +16969,8 @@ async function recoverWaitStates(registry) {
16911
16969
  await resumeWaitState(stuck.waitId, resumeStatus, payload, registry);
16912
16970
  recovered++;
16913
16971
  } catch (err) {
16972
+ if (await failRunOnUnreadableReplay(stuck.runId, err))
16973
+ continue;
16914
16974
  console.error(`[workflows] Failed to recover wait-state ${stuck.waitId}:`, err);
16915
16975
  }
16916
16976
  }
@@ -16928,7 +16988,7 @@ async function getRunIdsByStatus(status) {
16928
16988
  return rows.map((r) => r.id);
16929
16989
  }
16930
16990
  // src/workflows/retry-poller.ts
16931
- init_db();
16991
+ init_db2();
16932
16992
  var pollerTimeout = null;
16933
16993
  function startRetryPoller(registry, intervalMs = 5000) {
16934
16994
  if (pollerTimeout !== null)
@@ -17017,11 +17077,15 @@ function startRetryPoller(registry, intervalMs = 5000) {
17017
17077
  }
17018
17078
  }
17019
17079
  } catch (err) {
17080
+ if (await failRunOnUnreadableReplay(run.id, err, step.id))
17081
+ continue;
17020
17082
  const errorMsg = err instanceof Error ? err.message : String(err);
17021
17083
  const retryPolicy = node.retry || executor.retryPolicy;
17022
17084
  await checkpointStepFailure(run.id, step.id, errorMsg, step.retryCount, retryPolicy);
17023
17085
  }
17024
17086
  } catch (err) {
17087
+ if (await failRunOnUnreadableReplay(step.runId, err, step.id))
17088
+ continue;
17025
17089
  console.error(`[workflows] Retry failed for step ${step.id}:`, err);
17026
17090
  } finally {
17027
17091
  release?.();
@@ -17129,7 +17193,7 @@ function replaceStringPlaceholders(template, variables) {
17129
17193
  });
17130
17194
  }
17131
17195
  // src/workflows/triggers.ts
17132
- init_db();
17196
+ init_db2();
17133
17197
  import crypto2 from "node:crypto";
17134
17198
  var DEFAULT_HMAC_HEADER = "X-Hub-Signature-256";
17135
17199
  var FALLBACK_HMAC_HEADERS = ["x-hub-signature-256", "x-signature", "x-webhook-signature"];
@@ -17397,7 +17461,7 @@ class WebhookError extends Error {
17397
17461
  }
17398
17462
  }
17399
17463
  // src/workflows/version.ts
17400
- init_db();
17464
+ init_db2();
17401
17465
  async function snapshotWorkflow(workflowId, changedByAgentId) {
17402
17466
  const workflow = await getWorkflow(workflowId);
17403
17467
  if (!workflow) {
@@ -17443,7 +17507,7 @@ async function snapshotAndUpdateWorkflow(workflowId, updates, opts = {}) {
17443
17507
  });
17444
17508
  }
17445
17509
  // src/workflows/wait-poller.ts
17446
- init_db();
17510
+ init_db2();
17447
17511
  var pollerTimeout2 = null;
17448
17512
  function startWaitPoller(registry, intervalMs = 5000) {
17449
17513
  if (pollerTimeout2 !== null)
@@ -17474,7 +17538,7 @@ function stopWaitPoller() {
17474
17538
  }
17475
17539
 
17476
17540
  // src/workflows/index.ts
17477
- init_db();
17541
+ init_db2();
17478
17542
  init_secret_scrubber();
17479
17543
  init_event_bus();
17480
17544
 
@@ -17486,18 +17550,18 @@ init_zod();
17486
17550
 
17487
17551
  // src/be/model-validation.ts
17488
17552
  init_src();
17489
- init_db();
17553
+ init_db2();
17490
17554
 
17491
17555
  // src/be/model-tier-resolution.ts
17492
17556
  init_src();
17493
17557
  init_zod();
17494
17558
  init_types();
17495
- init_db();
17559
+ init_db2();
17496
17560
 
17497
17561
  // src/be/harness-model-support.ts
17498
17562
  init_src();
17499
17563
  init_secret_scrubber();
17500
- init_db();
17564
+ init_db2();
17501
17565
  var CLI_PINNED_HARNESSES = new Set(["claude", "codex"]);
17502
17566
  async function getHarnessModelSupport(harness, cliVersion, modelId) {
17503
17567
  const row = await getDbClient().get("SELECT status FROM harness_model_support WHERE harness = ? AND cliVersion = ? AND modelId = ?", [harness, cliVersion, modelId]);
@@ -18005,19 +18069,20 @@ ${issues.join(`
18005
18069
 
18006
18070
  // src/scheduler/scheduler.ts
18007
18071
  var import_cron_parser = __toESM(require_dist2(), 1);
18072
+ init_db2();
18008
18073
  init_db();
18009
18074
  init_telemetry();
18010
18075
 
18011
18076
  // src/scheduler/deferred-task-waits.ts
18012
- init_db();
18077
+ init_db2();
18013
18078
  init_event_bus();
18014
18079
 
18015
18080
  // src/scheduler/schedule-task.ts
18016
- init_db();
18081
+ init_db2();
18017
18082
  init_context_key();
18018
18083
 
18019
18084
  // src/tasks/sibling-awareness.ts
18020
- init_db();
18085
+ init_db2();
18021
18086
 
18022
18087
  // src/tasks/errors.ts
18023
18088
  class TaskCreationBlockedError extends Error {
@@ -18777,7 +18842,9 @@ async function runScheduleNow(scheduleId) {
18777
18842
  }
18778
18843
 
18779
18844
  // src/be/extensions/assets.ts
18845
+ init_db2();
18780
18846
  init_db();
18847
+ init_embeddings();
18781
18848
 
18782
18849
  // src/be/skill-parser.ts
18783
18850
  function parseSkillContent(content) {
@@ -19436,7 +19503,7 @@ async function removeAssets(extensionId) {
19436
19503
  }
19437
19504
 
19438
19505
  // src/be/extensions/db.ts
19439
- init_db();
19506
+ init_db2();
19440
19507
 
19441
19508
  class ExtensionOwnershipError extends Error {
19442
19509
  }
@@ -24241,7 +24308,7 @@ var EMPTY_COMPLETION_RESULT = {
24241
24308
 
24242
24309
  // src/server.ts
24243
24310
  init_package();
24244
- init_db();
24311
+ init_db2();
24245
24312
  init_steering();
24246
24313
 
24247
24314
  // src/github/task-reactions.ts
@@ -24593,11 +24660,11 @@ function verifyAgentMailWebhook(rawBody, headers) {
24593
24660
  }
24594
24661
  }
24595
24662
  // src/agentmail/handlers.ts
24596
- init_db();
24663
+ init_db2();
24597
24664
 
24598
24665
  // src/be/users.ts
24599
24666
  init_telemetry_identity();
24600
- init_db();
24667
+ init_db2();
24601
24668
  import { createHash, randomBytes, randomUUID } from "node:crypto";
24602
24669
  function actorString(actor) {
24603
24670
  return `${actor.kind}:${actor.id}`;
@@ -25514,7 +25581,7 @@ async function likeAzureDevOpsComment(ref, threadId, commentId) {
25514
25581
  }
25515
25582
  }
25516
25583
  // src/azure-devops/handlers.ts
25517
- init_db();
25584
+ init_db2();
25518
25585
  init_resolver();
25519
25586
  init_context_key();
25520
25587
 
@@ -25908,10 +25975,10 @@ _Note: There's an active task (${existingTask.id}) for this PR #${pr.pullRequest
25908
25975
  return { created: true, taskId: task.id };
25909
25976
  }
25910
25977
  // src/http/core.ts
25911
- init_db();
25978
+ init_db2();
25912
25979
 
25913
25980
  // src/be/multi-runtime.ts
25914
- init_db();
25981
+ init_db2();
25915
25982
  var AGENT_MAX_TASKS_CONFIG_KEY = "AGENT_MAX_TASKS";
25916
25983
  function parseAgentMaxTasksValue(raw) {
25917
25984
  const str = raw.trim();
@@ -26094,7 +26161,7 @@ async function expireStaleRuntimeInstances() {
26094
26161
 
26095
26162
  // src/be/rbac-audit.ts
26096
26163
  init_env_flag();
26097
- init_db();
26164
+ init_db2();
26098
26165
  import { AsyncLocalStorage } from "node:async_hooks";
26099
26166
  var FLUSH_INTERVAL_MS = 2000;
26100
26167
  var FLUSH_MAX_ROWS = 200;
@@ -26279,7 +26346,7 @@ function stopAuditGc() {
26279
26346
  // src/http/core.ts
26280
26347
  init_rbac_roles();
26281
26348
  // src/github/handlers.ts
26282
- init_db();
26349
+ init_db2();
26283
26350
  init_resolver();
26284
26351
  init_context_key();
26285
26352
 
@@ -27629,7 +27696,7 @@ function resetGitLab() {
27629
27696
  gitlabUrl = "https://gitlab.com";
27630
27697
  }
27631
27698
  // src/gitlab/handlers.ts
27632
- init_db();
27699
+ init_db2();
27633
27700
  init_resolver();
27634
27701
  init_context_key();
27635
27702
 
@@ -28232,12 +28299,13 @@ function extractMentions(adf) {
28232
28299
  return ids;
28233
28300
  }
28234
28301
  // src/jira/app.ts
28302
+ init_oauth();
28235
28303
  init_constants();
28236
28304
  init_env_flag();
28237
28305
 
28238
28306
  // src/be/db-queries/tracker.ts
28239
28307
  init_date_utils();
28240
- init_db();
28308
+ init_db2();
28241
28309
  function normalizeTrackerSync(row) {
28242
28310
  return {
28243
28311
  ...row,
@@ -28381,8 +28449,12 @@ async function createTrackerAgentMapping(data) {
28381
28449
  init_secret_scrubber();
28382
28450
  init_event_bus();
28383
28451
 
28452
+ // src/jira/client.ts
28453
+ init_oauth();
28454
+
28384
28455
  // src/jira/metadata.ts
28385
- init_db();
28456
+ init_db2();
28457
+ init_oauth();
28386
28458
  async function getJiraMetadata() {
28387
28459
  const app = await getOAuthApp("jira");
28388
28460
  if (!app)
@@ -28675,10 +28747,11 @@ Original issue: {{issue_key}} — {{issue_summary}}`,
28675
28747
  });
28676
28748
 
28677
28749
  // src/jira/sync.ts
28678
- init_db();
28750
+ init_db2();
28751
+ init_oauth();
28679
28752
 
28680
28753
  // src/be/unmapped-identities.ts
28681
- init_db();
28754
+ init_db2();
28682
28755
  var TTL_MS = 30 * 24 * 60 * 60 * 1000;
28683
28756
  function namespace(kind) {
28684
28757
  return `integration:unmapped:${kind}`;
@@ -29097,7 +29170,7 @@ async function notifySlack(text) {
29097
29170
  return;
29098
29171
  }
29099
29172
  try {
29100
- const { getSlackApp: getSlackApp2 } = await import("./app-75hm5cfa.js");
29173
+ const { getSlackApp: getSlackApp2 } = await import("./app-43vrdmv8.js");
29101
29174
  const app = getSlackApp2();
29102
29175
  if (!app) {
29103
29176
  console.warn("[Jira webhook keepalive] Slack not available, cannot send notification");
@@ -29168,7 +29241,7 @@ async function deleteJiraWebhook(webhookId) {
29168
29241
  console.log(`[Jira webhook keepalive] Deleted webhook id=${webhookId}`);
29169
29242
  }
29170
29243
  async function overwriteWebhookIds(next) {
29171
- const { getDbClient: getDbClient2 } = await import("./db-f4ans0jj.js");
29244
+ const { getDbClient: getDbClient2 } = await import("./db-sjks418k.js");
29172
29245
  await getDbClient2().transaction(async (tx) => {
29173
29246
  const row = await tx.get("SELECT metadata FROM oauth_apps WHERE provider = 'jira'");
29174
29247
  if (!row) {
@@ -29408,6 +29481,7 @@ async function dispatchAndRecord(event, body, deliveryId) {
29408
29481
  }
29409
29482
  }
29410
29483
  // src/linear/app.ts
29484
+ init_oauth();
29411
29485
  init_constants();
29412
29486
  init_env_flag();
29413
29487
 
@@ -100886,6 +100960,7 @@ var LinearClient = class extends LinearSdk {
100886
100960
  };
100887
100961
 
100888
100962
  // src/linear/client.ts
100963
+ init_oauth();
100889
100964
  var linearClient = null;
100890
100965
  async function getLinearClient() {
100891
100966
  const tokens = await getOAuthTokens("linear");
@@ -100905,7 +100980,8 @@ init_secret_scrubber();
100905
100980
  init_event_bus();
100906
100981
 
100907
100982
  // src/linear/sync.ts
100908
- init_db();
100983
+ init_db2();
100984
+ init_oauth();
100909
100985
  init_resolver();
100910
100986
  init_context_key();
100911
100987
  init_types();
@@ -102055,7 +102131,7 @@ async function getFileInfo(client, fileId) {
102055
102131
  }
102056
102132
  }
102057
102133
  // src/slack/router.ts
102058
- init_db();
102134
+ init_db2();
102059
102135
  init_env_flag();
102060
102136
  function hasOtherUserMention(text, botUserId) {
102061
102137
  const mentions = text.match(/<@([A-Z0-9]+)>/g) ?? [];
@@ -102120,7 +102196,7 @@ init_request_auth_context();
102120
102196
  init_secret_scrubber();
102121
102197
 
102122
102198
  // src/http/auth.ts
102123
- init_db();
102199
+ init_db2();
102124
102200
 
102125
102201
  // src/utils/page-session.ts
102126
102202
  import { createHmac, randomBytes as randomBytes2, timingSafeEqual as timingSafeEqual2 } from "node:crypto";
@@ -102366,7 +102442,7 @@ init_zod();
102366
102442
  init_secret_scrubber();
102367
102443
 
102368
102444
  // src/http/utils.ts
102369
- init_db();
102445
+ init_db2();
102370
102446
  init_env_flag();
102371
102447
  init_secret_scrubber();
102372
102448
  var DEFAULT_ALLOWED_ORIGINS = [
@@ -102970,7 +103046,7 @@ async function reloadGlobalConfigsAndIntegrations() {
102970
103046
  return runWithoutRequestAuth(() => reloadGlobalConfigsAndIntegrationsInner());
102971
103047
  }
102972
103048
  async function reloadGlobalConfigsAndIntegrationsInner() {
102973
- const { getEmbeddingProvider: getEmbeddingProvider2, resetEmbeddingProvider } = await import("./index-056j5kzn.js");
103049
+ const { getEmbeddingProvider: getEmbeddingProvider2, resetEmbeddingProvider } = await import("./index-9b65j1m5.js");
102974
103050
  const wasEmbeddingsConfigured = getEmbeddingProvider2().isConfigured();
102975
103051
  const updated = await loadGlobalConfigsIntoEnv(true);
102976
103052
  await stopSlackApp();
@@ -102983,10 +103059,10 @@ async function reloadGlobalConfigsAndIntegrationsInner() {
102983
103059
  integrations.push("embeddings");
102984
103060
  }
102985
103061
  if (!wasEmbeddingsConfigured && isEmbeddingsConfigured) {
102986
- import("./boot-reembed-2ex2mcsh.js").then(({ runBootReembed }) => runBootReembed()).catch((err) => {
103062
+ import("./boot-reembed-s7k7c6v2.js").then(({ runBootReembed }) => runBootReembed()).catch((err) => {
102987
103063
  console.error("[config-reload] memory backfill failed (non-fatal):", err);
102988
103064
  });
102989
- import("./boot-reembed-z158xq32.js").then(({ runBootReembedScripts }) => runBootReembedScripts()).catch((err) => {
103065
+ import("./boot-reembed-998jtpdg.js").then(({ runBootReembedScripts }) => runBootReembedScripts()).catch((err) => {
102990
103066
  console.error("[config-reload] script backfill failed (non-fatal):", err);
102991
103067
  });
102992
103068
  }
@@ -103317,14 +103393,14 @@ init_config();
103317
103393
 
103318
103394
  // src/tools/accept-steer.ts
103319
103395
  init_zod();
103320
- init_db();
103396
+ init_db2();
103321
103397
 
103322
103398
  // src/tools/task-tool-ctx.ts
103323
103399
  init_rbac();
103324
103400
 
103325
103401
  // src/tools/utils.ts
103326
103402
  init_zod();
103327
- init_db();
103403
+ init_db2();
103328
103404
 
103329
103405
  // src/kv-overflow.ts
103330
103406
  var MCP_OVERFLOW_NAMESPACE = "mcp:overflow";
@@ -104104,7 +104180,7 @@ function setPreloadedTools(server, names) {
104104
104180
  async function applyPreToolCall(name, args, requestInfo, inputSchema) {
104105
104181
  if (requestInfo.callOrigin !== "mcp")
104106
104182
  return { args };
104107
- const dispatcher = await import("./dispatcher-pk182apd.js");
104183
+ const dispatcher = await import("./dispatcher-1es759rn.js");
104108
104184
  const result = await dispatcher.dispatchPre("pre.tool.call", { tool: name, args, requestInfo }, inputSchema ? {
104109
104185
  validateModify: async (data) => {
104110
104186
  const schema = normalizeObjectSchema(inputSchema) ?? inputSchema;
@@ -104318,15 +104394,15 @@ var registerAcceptSteerTool = (server) => {
104318
104394
  init_zod();
104319
104395
 
104320
104396
  // src/apps/version.ts
104321
- init_db();
104397
+ init_db2();
104322
104398
 
104323
104399
  // src/apps/schema-migrate.ts
104324
104400
  init_zod();
104325
- init_db();
104401
+ init_db2();
104326
104402
  init_secret_scrubber();
104327
104403
 
104328
104404
  // src/apps/row-store.ts
104329
- init_db();
104405
+ init_db2();
104330
104406
  init_db_client();
104331
104407
  class AppRowValidationError extends Error {
104332
104408
  issues;
@@ -104705,6 +104781,7 @@ function purgeAppRows(appId2, models, afterPurge) {
104705
104781
 
104706
104782
  // src/apps/sync.ts
104707
104783
  init_zod();
104784
+ init_db2();
104708
104785
  init_db();
104709
104786
  init_types();
104710
104787
  init_secret_scrubber();
@@ -106115,12 +106192,12 @@ async function rollbackApp(input) {
106115
106192
  }
106116
106193
 
106117
106194
  // src/tools/app-diff.ts
106118
- init_db();
106195
+ init_db2();
106119
106196
  init_rbac();
106120
106197
 
106121
106198
  // src/tools/context-diff.ts
106122
106199
  init_zod();
106123
- init_db();
106200
+ init_db2();
106124
106201
  init_rbac();
106125
106202
  import { tmpdir } from "node:os";
106126
106203
  import { join } from "node:path";
@@ -106302,13 +106379,13 @@ var registerAppDiffTool = (server) => {
106302
106379
 
106303
106380
  // src/tools/app-get.ts
106304
106381
  init_zod();
106305
- init_db();
106382
+ init_db2();
106306
106383
 
106307
106384
  // src/http/apps.ts
106308
106385
  init_zod();
106309
106386
 
106310
106387
  // src/apps/user-config.ts
106311
- init_db();
106388
+ init_db2();
106312
106389
  var USER_CONFIG_THEME_KEY = "$theme";
106313
106390
  var RESERVED_KEY_PATTERNS = {
106314
106391
  [USER_CONFIG_THEME_KEY]: /^[a-z][a-z0-9-]{0,39}$/
@@ -106390,6 +106467,7 @@ async function upsertAppUserConfigValues(appId2, scope, values) {
106390
106467
 
106391
106468
  // src/http/apps.ts
106392
106469
  init_key();
106470
+ init_db2();
106393
106471
  init_db();
106394
106472
  init_resolver();
106395
106473
  init_rbac();
@@ -106399,7 +106477,7 @@ init_secret_scrubber();
106399
106477
 
106400
106478
  // src/be/audit-user.ts
106401
106479
  init_request_auth_context();
106402
- init_db();
106480
+ init_db2();
106403
106481
  async function resolveTaskAuditUserId(sourceTaskId, callerAgentId) {
106404
106482
  if (!callerAgentId)
106405
106483
  return null;
@@ -107950,7 +108028,7 @@ var registerAppQueryTool = (server) => {
107950
108028
 
107951
108029
  // src/tools/app-history.ts
107952
108030
  init_zod();
107953
- init_db();
108031
+ init_db2();
107954
108032
  init_rbac();
107955
108033
  function escapeTableCell2(value) {
107956
108034
  return String(value ?? "—").replaceAll("\\", "\\\\").replaceAll("|", "\\|").replace(/\r\n|\r|\n/g, "<br>");
@@ -108055,7 +108133,7 @@ var registerAppListTool = (server) => {
108055
108133
 
108056
108134
  // src/tools/app-patch.ts
108057
108135
  init_zod();
108058
- init_db();
108136
+ init_db2();
108059
108137
  init_rbac();
108060
108138
  var registerAppPatchTool = (server) => {
108061
108139
  createToolRegistrar(server)("app-patch", {
@@ -108176,7 +108254,7 @@ var registerAppPatchTool = (server) => {
108176
108254
  };
108177
108255
  // src/tools/app-rollback.ts
108178
108256
  init_zod();
108179
- init_db();
108257
+ init_db2();
108180
108258
  init_rbac();
108181
108259
  var registerAppRollbackTool = (server) => {
108182
108260
  createToolRegistrar(server)("app-rollback", {
@@ -108256,7 +108334,7 @@ var registerAppRollbackTool = (server) => {
108256
108334
 
108257
108335
  // src/tools/app-sync.ts
108258
108336
  init_zod();
108259
- init_db();
108337
+ init_db2();
108260
108338
  init_rbac();
108261
108339
  function cell(value) {
108262
108340
  return String(value ?? "—").replaceAll("\\", "\\\\").replaceAll("|", "\\|").replace(/\r\n|\r|\n/g, "<br>");
@@ -108343,7 +108421,7 @@ var registerAppSyncTool = (server) => {
108343
108421
 
108344
108422
  // src/tools/app-upsert.ts
108345
108423
  init_zod();
108346
- init_db();
108424
+ init_db2();
108347
108425
  init_rbac();
108348
108426
  var registerAppUpsertTool = (server) => {
108349
108427
  createToolRegistrar(server)("app-upsert", {
@@ -108487,10 +108565,10 @@ var registerAppUpsertTool = (server) => {
108487
108565
 
108488
108566
  // src/tools/cancel-approval-request.ts
108489
108567
  init_zod();
108490
- init_db();
108568
+ init_db2();
108491
108569
 
108492
108570
  // src/workflows/approval-cancel.ts
108493
- init_db();
108571
+ init_db2();
108494
108572
  init_rbac();
108495
108573
  var LIVE_RUN_STATUSES = new Set(["running", "waiting"]);
108496
108574
  async function cancelApprovalRequest(input) {
@@ -108630,12 +108708,12 @@ var registerCancelApprovalRequestTool = (server) => {
108630
108708
 
108631
108709
  // src/tools/cancel-task.ts
108632
108710
  init_zod();
108633
- init_db();
108711
+ init_db2();
108634
108712
  init_rbac();
108635
108713
 
108636
108714
  // src/tools/get-task-details.ts
108637
108715
  init_zod();
108638
- init_db();
108716
+ init_db2();
108639
108717
  init_types();
108640
108718
 
108641
108719
  // src/utils/requester-comms.ts
@@ -108948,7 +109026,7 @@ var registerCancelTaskTool = (server) => {
108948
109026
 
108949
109027
  // src/tools/context-history.ts
108950
109028
  init_zod();
108951
- init_db();
109029
+ init_db2();
108952
109030
  init_rbac();
108953
109031
  var registerContextHistoryTool = (server) => {
108954
109032
  createToolRegistrar(server)("context-history", {
@@ -109024,7 +109102,7 @@ var registerContextHistoryTool = (server) => {
109024
109102
 
109025
109103
  // src/tools/create-channel.ts
109026
109104
  init_zod();
109027
- init_db();
109105
+ init_db2();
109028
109106
  init_types();
109029
109107
  var ChannelOutputSchema = looseObject({
109030
109108
  id: string().optional(),
@@ -109081,16 +109159,17 @@ var registerCreateChannelTool = (server) => {
109081
109159
 
109082
109160
  // src/tools/create-metric.ts
109083
109161
  init_zod();
109084
- init_db();
109162
+ init_db2();
109085
109163
 
109086
109164
  // src/http/db-query.ts
109087
109165
  init_zod();
109166
+ init_secret_scrubber();
109088
109167
 
109089
109168
  // src/http/db-query-bounded.ts
109090
- init_db();
109169
+ init_db2();
109091
109170
 
109092
109171
  // src/http/db-query-shared.ts
109093
- init_db();
109172
+ init_db2();
109094
109173
  init_env_flag();
109095
109174
  import { Database } from "bun:sqlite";
109096
109175
  class DbQueryTimeoutError extends Error {
@@ -109115,19 +109194,91 @@ function assertSingleStatement(sql) {
109115
109194
  throw new Error("Only one SQL statement is allowed");
109116
109195
  }
109117
109196
  }
109118
- function executeReadOnlyQuery(sql, params = [], maxRows) {
109119
- assertSingleStatement(sql);
109197
+ var DB_QUERY_DENIED_TABLES = new Set([
109198
+ "oauth_authorizations",
109199
+ "oauth_apps",
109200
+ "oauth_pending",
109201
+ "user_tokens",
109202
+ "session_tokens",
109203
+ "script_apis",
109204
+ "codex_oauth_device_flows"
109205
+ ]);
109206
+
109207
+ class DbQueryDeniedTableError extends Error {
109208
+ tables;
109209
+ constructor(tables) {
109210
+ super(`db-query cannot read ${tables.join(", ")}: ${tables.length === 1 ? "this table holds" : "these tables hold"} credentials. ` + "Use the dedicated OAuth, token or config tools instead.");
109211
+ this.tables = tables;
109212
+ this.name = "DbQueryDeniedTableError";
109213
+ }
109214
+ }
109215
+ var CURSOR_OPEN_OPCODES = new Set(["OpenRead", "ReopenIdx", "OpenWrite"]);
109216
+ function openReadOnlyReader() {
109120
109217
  const database = getDb();
109121
109218
  const reader = !database.filename || database.filename === ":memory:" ? Database.deserialize(database.serialize(), { readonly: true }) : new Database(database.filename, { readonly: true });
109219
+ const vecExtensionPath = resolveSqliteVecExtensionPath();
109220
+ if (vecExtensionPath) {
109221
+ try {
109222
+ reader.loadExtension(vecExtensionPath);
109223
+ } catch {}
109224
+ }
109225
+ return reader;
109226
+ }
109227
+ function assertNoDeniedTables(sql, reader) {
109228
+ const statement = stripTrailingSemicolon(sql);
109229
+ if (/^explain\b/i.test(stripLeadingComments(statement)))
109230
+ return;
109231
+ const db = reader ?? openReadOnlyReader();
109122
109232
  try {
109123
109233
  let __stack = [];
109124
109234
  try {
109125
- const vecExtensionPath = resolveSqliteVecExtensionPath();
109126
- if (vecExtensionPath) {
109127
- try {
109128
- reader.loadExtension(vecExtensionPath);
109129
- } catch {}
109235
+ const rootPages = new Map;
109236
+ for (const row of db.query("SELECT rootpage, tbl_name FROM main.sqlite_master WHERE rootpage > 0").all()) {
109237
+ rootPages.set(row.rootpage, row.tbl_name.toLowerCase());
109238
+ }
109239
+ const program = __using(__stack, db.prepare(`EXPLAIN ${statement}`), 0);
109240
+ const denied = new Set;
109241
+ for (const op of program.all()) {
109242
+ if (!CURSOR_OPEN_OPCODES.has(op.opcode) || op.p3 !== 0)
109243
+ continue;
109244
+ const table = rootPages.get(op.p2);
109245
+ if (table && DB_QUERY_DENIED_TABLES.has(table))
109246
+ denied.add(table);
109130
109247
  }
109248
+ if (denied.size > 0)
109249
+ throw new DbQueryDeniedTableError([...denied].sort());
109250
+ } catch (_catch) {
109251
+ var _err = _catch, _hasErr = 1;
109252
+ } finally {
109253
+ __callDispose(__stack, _err, _hasErr);
109254
+ }
109255
+ } finally {
109256
+ if (!reader)
109257
+ db.close();
109258
+ }
109259
+ }
109260
+ function stripLeadingComments(sql) {
109261
+ let rest = sql.trimStart();
109262
+ for (;; ) {
109263
+ if (rest.startsWith("--")) {
109264
+ const end = rest.indexOf(`
109265
+ `);
109266
+ rest = end === -1 ? "" : rest.slice(end + 1).trimStart();
109267
+ } else if (rest.startsWith("/*")) {
109268
+ const end = rest.indexOf("*/");
109269
+ rest = end === -1 ? "" : rest.slice(end + 2).trimStart();
109270
+ } else {
109271
+ return rest;
109272
+ }
109273
+ }
109274
+ }
109275
+ function executeReadOnlyQuery(sql, params = [], maxRows) {
109276
+ assertSingleStatement(sql);
109277
+ const reader = openReadOnlyReader();
109278
+ try {
109279
+ let __stack = [];
109280
+ try {
109281
+ assertNoDeniedTables(sql, reader);
109131
109282
  const stmt = __using(__stack, reader.prepare(sql), 0);
109132
109283
  if (stmt.columnNames.length === 0) {
109133
109284
  throw new Error("Only read-only queries are allowed");
@@ -109276,6 +109427,7 @@ function releaseBoundedQuerySlot() {
109276
109427
  }
109277
109428
  async function executeReadOnlyQueryBounded(sql, params = [], budgetMs, maxRows) {
109278
109429
  assertSingleStatement(sql);
109430
+ assertNoDeniedTables(sql);
109279
109431
  acquireBoundedQuerySlot();
109280
109432
  try {
109281
109433
  return await runBoundedQueryChild(sql, params, budgetMs, maxRows);
@@ -109399,7 +109551,9 @@ var dbQueryRoute = route({
109399
109551
  rowLimit: exports_external.number().nullable()
109400
109552
  })
109401
109553
  },
109402
- 400: { description: "Invalid or disallowed SQL" },
109554
+ 400: {
109555
+ description: "Invalid or disallowed SQL, including queries that read credential tables"
109556
+ },
109403
109557
  408: { description: "Query exceeded its wall-clock budget and was terminated" },
109404
109558
  429: { description: "Too many concurrent bounded db-query executions; retry shortly" }
109405
109559
  },
@@ -109414,7 +109568,7 @@ async function handleDbQuery(req, res, pathSegments, queryParams) {
109414
109568
  return true;
109415
109569
  try {
109416
109570
  const result = await executeReadOnlyQueryGated(resolveDbQuerySql(parsed.body), parsed.body.params, getDbQueryHttpBudgetMs(), getDbQueryHttpMaxRows());
109417
- dbQueryRoute.respond(res, 200, result);
109571
+ dbQueryRoute.respond(res, 200, scrubObject(result));
109418
109572
  } catch (err) {
109419
109573
  if (err instanceof DbQueryConcurrencyCapError) {
109420
109574
  res.setHeader("Retry-After", "1");
@@ -109432,7 +109586,7 @@ async function handleDbQuery(req, res, pathSegments, queryParams) {
109432
109586
  }
109433
109587
 
109434
109588
  // src/metrics/version.ts
109435
- init_db();
109589
+ init_db2();
109436
109590
  async function snapshotMetric(metricId, changedByAgentId) {
109437
109591
  const metric = await getMetric(metricId);
109438
109592
  if (!metric) {
@@ -109582,10 +109736,10 @@ async function authorizeAssetKeyWrite(input, trustedUserId) {
109582
109736
  }
109583
109737
 
109584
109738
  // src/tools/create-page.ts
109585
- init_db();
109739
+ init_db2();
109586
109740
 
109587
109741
  // src/pages/version.ts
109588
- init_db();
109742
+ init_db2();
109589
109743
  async function snapshotPage(pageId, changedByAgentId) {
109590
109744
  const page = await getPage(pageId);
109591
109745
  if (!page) {
@@ -109745,7 +109899,8 @@ var registerCreatePageTool = (server) => {
109745
109899
 
109746
109900
  // src/tools/credential-bindings/tool.ts
109747
109901
  init_zod();
109748
- init_db();
109902
+ init_db2();
109903
+ init_oauth();
109749
109904
 
109750
109905
  // src/oauth/app-validation.ts
109751
109906
  function assertOAuthAppUrlsSafe(input) {
@@ -110300,7 +110455,7 @@ var DbQueryToolInputSchema = object({
110300
110455
  var registerDbQueryTool = (server) => {
110301
110456
  createToolRegistrar(server)("db-query", {
110302
110457
  title: "Execute database query",
110303
- description: "Execute a read-only SQL query against the swarm database (SQLite). Available to all authenticated agents — be aware results may include secrets (oauth_tokens, configs). Runs in a short-lived child process with a wall-clock budget by default (fails gracefully with a timeout or a 429-style concurrency error rather than freezing); results capped at a default row count (operator-configurable via `DB_QUERY_MCP_MAX_ROWS`) regardless of how many the query matched. See the sql parameter's description for which tables are unsafe to read whole, and the db-query-guidance skill for config knobs.",
110458
+ description: "Execute a read-only SQL query against the swarm database (SQLite). Available to all authenticated agents. Queries that read credential tables (OAuth authorizations, apps and pending flows, user and session tokens, script API bearers, Codex device-login state) are rejected, and secret-shaped values in results are redacted. Runs in a short-lived child process with a wall-clock budget by default (fails gracefully with a timeout or a 429-style concurrency error rather than freezing); results capped at a default row count (operator-configurable via `DB_QUERY_MCP_MAX_ROWS`) regardless of how many the query matched. See the sql parameter's description for which tables are unsafe to read whole, and the db-query-guidance skill for config knobs.",
110304
110459
  annotations: { readOnlyHint: true },
110305
110460
  inputSchema: DbQueryToolInputSchema,
110306
110461
  outputSchema: swarmToolOutputSchema({
@@ -110340,13 +110495,14 @@ ${result.total} rows in ${result.elapsed}ms`;
110340
110495
 
110341
110496
  // src/tools/defer-task.ts
110342
110497
  init_zod();
110343
- init_db();
110498
+ init_db2();
110344
110499
 
110345
110500
  // src/tasks/task-terminal-effects.ts
110346
- init_db();
110501
+ init_db2();
110502
+ init_memory();
110347
110503
 
110348
110504
  // src/be/memory/raters/retrieval.ts
110349
- init_db();
110505
+ init_db2();
110350
110506
  function dedupeMemoryDocumentIds(memories) {
110351
110507
  const documents = new Map;
110352
110508
  for (const memory of memories) {
@@ -110497,7 +110653,7 @@ function getRaterWeightMultiplier(name) {
110497
110653
  }
110498
110654
 
110499
110655
  // src/be/memory/raters/store.ts
110500
- init_db();
110656
+ init_db2();
110501
110657
  class ExplicitSelfDuplicateError extends Error {
110502
110658
  event;
110503
110659
  constructor(message, event) {
@@ -110698,7 +110854,7 @@ var shouldPersistTaskCompletionMemory = shouldPersistAutomaticTaskMemory;
110698
110854
 
110699
110855
  // src/tasks/worker-follow-up.ts
110700
110856
  init_zod();
110701
- init_db();
110857
+ init_db2();
110702
110858
  init_resolver();
110703
110859
  init_types();
110704
110860
  init_env_flag();
@@ -111162,7 +111318,7 @@ ${taskContent}`,
111162
111318
  }
111163
111319
 
111164
111320
  // src/tasks/terminal-result-guard.ts
111165
- init_db();
111321
+ init_db2();
111166
111322
  init_types();
111167
111323
  init_secret_scrubber();
111168
111324
  function getTaskOutputValidationError(outputSchema, output) {
@@ -111519,7 +111675,7 @@ Deferred until ${nextRunAt} (schedule ${schedule.id}). Pending: ${note}${checksB
111519
111675
 
111520
111676
  // src/tools/delete-channel.ts
111521
111677
  init_zod();
111522
- init_db();
111678
+ init_db2();
111523
111679
  init_rbac();
111524
111680
  var GENERAL_CHANNEL_ID = "00000000-0000-4000-8000-000000000001";
111525
111681
  var registerDeleteChannelTool = (server) => {
@@ -111597,7 +111753,7 @@ var registerDeleteChannelTool = (server) => {
111597
111753
 
111598
111754
  // src/tools/delete-page.ts
111599
111755
  init_zod();
111600
- init_db();
111756
+ init_db2();
111601
111757
  init_rbac();
111602
111758
  var DeletedPageSchema = looseObject({
111603
111759
  id: string().optional(),
@@ -112122,7 +112278,7 @@ var registerExtensionListTool = (server) => {
112122
112278
 
112123
112279
  // src/tools/get-metrics.ts
112124
112280
  init_zod();
112125
- init_db();
112281
+ init_db2();
112126
112282
  var CountByStatusSchema = record(string(), number());
112127
112283
  var registerGetMetricsTool = (server) => {
112128
112284
  createToolRegistrar(server)("get-metrics", {
@@ -112165,7 +112321,7 @@ var registerGetMetricsTool = (server) => {
112165
112321
 
112166
112322
  // src/tools/get-swarm.ts
112167
112323
  init_zod();
112168
- init_db();
112324
+ init_db2();
112169
112325
  init_types();
112170
112326
  var agentOutputShape = looseObject({
112171
112327
  id: string().optional(),
@@ -112218,7 +112374,7 @@ var registerGetSwarmTool = (server) => {
112218
112374
 
112219
112375
  // src/tools/get-tasks.ts
112220
112376
  init_zod();
112221
- init_db();
112377
+ init_db2();
112222
112378
  init_types();
112223
112379
  var TaskSummarySchema = looseObject({
112224
112380
  id: string().optional(),
@@ -112376,7 +112532,8 @@ var registerGetTasksTool = (server) => {
112376
112532
 
112377
112533
  // src/tools/inject-learning.ts
112378
112534
  init_zod();
112379
- init_db();
112535
+ init_db2();
112536
+ init_memory();
112380
112537
  init_rbac();
112381
112538
  var LearningCategoryEnum = _enum([
112382
112539
  "mistake-pattern",
@@ -112433,7 +112590,7 @@ ${learning}`;
112433
112590
  });
112434
112591
  try {
112435
112592
  const provider = getEmbeddingProvider();
112436
- const embedding = await provider.embed(content);
112593
+ const embedding = await provider.embed(memory.content);
112437
112594
  if (embedding) {
112438
112595
  await store.updateEmbedding(memory.id, embedding, provider.name);
112439
112596
  }
@@ -112447,7 +112604,7 @@ ${learning}`;
112447
112604
 
112448
112605
  // src/tools/join-swarm.ts
112449
112606
  init_zod();
112450
- init_db();
112607
+ init_db2();
112451
112608
  init_defaults();
112452
112609
  init_types();
112453
112610
  var agentOutputShape2 = looseObject({
@@ -112553,11 +112710,11 @@ var registerJoinSwarmTool = (server) => {
112553
112710
 
112554
112711
  // src/tools/kv/kv-delete.ts
112555
112712
  init_zod();
112556
- init_db();
112713
+ init_db2();
112557
112714
  init_types();
112558
112715
 
112559
112716
  // src/tools/kv/kv-write-auth.ts
112560
- init_db();
112717
+ init_db2();
112561
112718
 
112562
112719
  // src/kv-reserved-namespaces.ts
112563
112720
  var RESERVED_FAMILIES = new Map([
@@ -112605,7 +112762,7 @@ async function kvWriteAuthError(namespace2, info, key) {
112605
112762
  }
112606
112763
 
112607
112764
  // src/tools/kv/resolve-namespace.ts
112608
- init_db();
112765
+ init_db2();
112609
112766
  init_context_key();
112610
112767
  async function resolveNamespace(explicit, info) {
112611
112768
  if (explicit && explicit.length > 0) {
@@ -112666,7 +112823,7 @@ var registerKvDeleteTool = (server) => {
112666
112823
  };
112667
112824
  // src/tools/kv/kv-get.ts
112668
112825
  init_zod();
112669
- init_db();
112826
+ init_db2();
112670
112827
  init_types();
112671
112828
 
112672
112829
  // src/tools/kv/kv-read-auth.ts
@@ -112798,7 +112955,7 @@ var registerKvGetTool = (server) => {
112798
112955
  };
112799
112956
  // src/tools/kv/kv-incr.ts
112800
112957
  init_zod();
112801
- init_db();
112958
+ init_db2();
112802
112959
  init_types();
112803
112960
  var kvEntryOutputSchema2 = looseObject({
112804
112961
  namespace: string().optional(),
@@ -112855,7 +113012,7 @@ var registerKvIncrTool = (server) => {
112855
113012
  };
112856
113013
  // src/tools/kv/kv-list.ts
112857
113014
  init_zod();
112858
- init_db();
113015
+ init_db2();
112859
113016
  init_types();
112860
113017
  var MAX_KV_LIST_LIMIT = 1000;
112861
113018
  var kvEntryOutputSchema3 = looseObject({
@@ -112925,7 +113082,7 @@ var registerKvListTool = (server) => {
112925
113082
  };
112926
113083
  // src/tools/kv/kv-set.ts
112927
113084
  init_zod();
112928
- init_db();
113085
+ init_db2();
112929
113086
  init_types();
112930
113087
  var MAX_KV_BODY_BYTES = 2 * 1024 * 1024;
112931
113088
  var kvEntryOutputSchema4 = looseObject({
@@ -113026,7 +113183,7 @@ var registerKvSetTool = (server) => {
113026
113183
  };
113027
113184
  // src/tools/list-channels.ts
113028
113185
  init_zod();
113029
- init_db();
113186
+ init_db2();
113030
113187
  init_types();
113031
113188
  var ChannelOutputSchema2 = looseObject({
113032
113189
  id: string().optional(),
@@ -113060,7 +113217,7 @@ var registerListChannelsTool = (server) => {
113060
113217
 
113061
113218
  // src/tools/list-services.ts
113062
113219
  init_zod();
113063
- init_db();
113220
+ init_db2();
113064
113221
  init_types();
113065
113222
  var serviceWithAgentNameOutputShape = looseObject({
113066
113223
  id: string().optional(),
@@ -113138,7 +113295,7 @@ var registerListServicesTool = (server) => {
113138
113295
 
113139
113296
  // src/tools/manage-user.ts
113140
113297
  init_zod();
113141
- init_db();
113298
+ init_db2();
113142
113299
  init_rbac();
113143
113300
  var userOutputShape = looseObject({
113144
113301
  id: string().optional(),
@@ -113353,7 +113510,7 @@ var registerManageUserTool = (server) => {
113353
113510
 
113354
113511
  // src/tools/mcp-servers/mcp-server-create.ts
113355
113512
  init_zod();
113356
- init_db();
113513
+ init_db2();
113357
113514
  init_rbac();
113358
113515
  var registerMcpServerCreateTool = (server) => {
113359
113516
  createToolRegistrar(server)("mcp-server-create", {
@@ -113458,7 +113615,7 @@ var registerMcpServerCreateTool = (server) => {
113458
113615
  };
113459
113616
  // src/tools/mcp-servers/mcp-server-delete.ts
113460
113617
  init_zod();
113461
- init_db();
113618
+ init_db2();
113462
113619
  init_rbac();
113463
113620
  var registerMcpServerDeleteTool = (server) => {
113464
113621
  createToolRegistrar(server)("mcp-server-delete", {
@@ -113503,7 +113660,7 @@ var registerMcpServerDeleteTool = (server) => {
113503
113660
  };
113504
113661
  // src/tools/mcp-servers/mcp-server-get.ts
113505
113662
  init_zod();
113506
- init_db();
113663
+ init_db2();
113507
113664
  var registerMcpServerGetTool = (server) => {
113508
113665
  createToolRegistrar(server)("mcp-server-get", {
113509
113666
  title: "Get MCP Server",
@@ -113540,7 +113697,7 @@ var registerMcpServerGetTool = (server) => {
113540
113697
  };
113541
113698
  // src/tools/mcp-servers/mcp-server-install.ts
113542
113699
  init_zod();
113543
- init_db();
113700
+ init_db2();
113544
113701
  init_rbac();
113545
113702
  var registerMcpServerInstallTool = (server) => {
113546
113703
  createToolRegistrar(server)("mcp-server-install", {
@@ -113598,7 +113755,7 @@ var registerMcpServerInstallTool = (server) => {
113598
113755
  };
113599
113756
  // src/tools/mcp-servers/mcp-server-list.ts
113600
113757
  init_zod();
113601
- init_db();
113758
+ init_db2();
113602
113759
  function renderServerLines(servers) {
113603
113760
  if (servers.length === 0)
113604
113761
  return;
@@ -113647,7 +113804,7 @@ var registerMcpServerListTool = (server) => {
113647
113804
  };
113648
113805
  // src/tools/mcp-servers/mcp-server-uninstall.ts
113649
113806
  init_zod();
113650
- init_db();
113807
+ init_db2();
113651
113808
  init_rbac();
113652
113809
  var registerMcpServerUninstallTool = (server) => {
113653
113810
  createToolRegistrar(server)("mcp-server-uninstall", {
@@ -113691,10 +113848,10 @@ var registerMcpServerUninstallTool = (server) => {
113691
113848
  };
113692
113849
  // src/tools/mcp-servers/mcp-server-update.ts
113693
113850
  init_zod();
113694
- init_db();
113851
+ init_db2();
113695
113852
 
113696
113853
  // src/be/mcp-server-checked-update.ts
113697
- init_db();
113854
+ init_db2();
113698
113855
  async function updateMcpServerChecked(id, updates, check) {
113699
113856
  return await getDbClient().transaction(async () => {
113700
113857
  const existing = await getMcpServerById(id);
@@ -113817,7 +113974,8 @@ var registerMcpServerUpdateTool = (server) => {
113817
113974
  };
113818
113975
  // src/tools/memory-delete.ts
113819
113976
  init_zod();
113820
- init_db();
113977
+ init_db2();
113978
+ init_memory();
113821
113979
  init_rbac();
113822
113980
  var registerMemoryDeleteTool = (server) => {
113823
113981
  createToolRegistrar(server)("memory-delete", {
@@ -113863,7 +114021,8 @@ var registerMemoryDeleteTool = (server) => {
113863
114021
 
113864
114022
  // src/tools/memory-edit.ts
113865
114023
  init_zod();
113866
- init_db();
114024
+ init_db2();
114025
+ init_memory();
113867
114026
 
113868
114027
  // src/be/memory/key-guard.ts
113869
114028
  init_rbac();
@@ -113913,7 +114072,7 @@ function assertKeyWritable(key, origin, writer) {
113913
114072
  init_key_paths();
113914
114073
 
113915
114074
  // src/be/memory/link-resolver.ts
113916
- init_db();
114075
+ init_db2();
113917
114076
  init_constants();
113918
114077
  var WIKILINK_RE = /\[\[([^\]]+)\]\]/g;
113919
114078
  var PR_HASH_RE = /(?:^|[\s(])#(\d{1,5})(?=[\s,.)!?]|$)/gm;
@@ -114270,7 +114429,8 @@ var registerMemoryEditTool = (server) => {
114270
114429
 
114271
114430
  // src/tools/memory-get.ts
114272
114431
  init_zod();
114273
- init_db();
114432
+ init_db2();
114433
+ init_memory();
114274
114434
 
114275
114435
  // src/be/memory/access.ts
114276
114436
  function canReadMemory(memory, agentId) {
@@ -114278,7 +114438,7 @@ function canReadMemory(memory, agentId) {
114278
114438
  }
114279
114439
 
114280
114440
  // src/be/memory/links-store.ts
114281
- init_db();
114441
+ init_db2();
114282
114442
  function redactedTargetId(sourceText) {
114283
114443
  const wikilink = /^\[\[(.+)\]\]$/.exec(sourceText ?? "");
114284
114444
  return wikilink?.[1] ?? "";
@@ -114568,11 +114728,12 @@ var registerMemoryRateTool = (server) => {
114568
114728
 
114569
114729
  // src/tools/memory-search.ts
114570
114730
  init_zod();
114571
- init_db();
114731
+ init_db2();
114732
+ init_memory();
114572
114733
  init_constants2();
114573
114734
 
114574
114735
  // src/be/memory/graph-expansion.ts
114575
- init_db();
114736
+ init_db2();
114576
114737
  init_constants2();
114577
114738
  init_sqlite_store();
114578
114739
  init_reranker();
@@ -114818,7 +114979,7 @@ var registerMemorySearchTool = (server) => {
114818
114979
 
114819
114980
  // src/tools/memory-store.ts
114820
114981
  init_zod();
114821
- init_db();
114982
+ init_db2();
114822
114983
 
114823
114984
  // src/be/chunking.ts
114824
114985
  var MAX_CHUNK_SIZE = 2000;
@@ -114968,6 +115129,7 @@ function addOverlap(chunks, _originalText) {
114968
115129
  }
114969
115130
 
114970
115131
  // src/be/memory/index-content.ts
115132
+ init_memory();
114971
115133
  init_secret_scrubber();
114972
115134
  async function indexMemoryContent(params) {
114973
115135
  const { agentId, content, name, scope, source, sourceTaskId, sourcePath, tags } = params;
@@ -115000,7 +115162,7 @@ async function indexMemoryContent(params) {
115000
115162
  intent: "re-index memory source path",
115001
115163
  changedByAgentId: agentId
115002
115164
  });
115003
- const embedding = await provider.embed(contentChunks[0].content);
115165
+ const embedding = await provider.embed(result.memory.content);
115004
115166
  if (embedding)
115005
115167
  await store.updateEmbedding(result.memory.id, embedding, provider.name);
115006
115168
  try {
@@ -115040,7 +115202,7 @@ async function indexMemoryContent(params) {
115040
115202
  }
115041
115203
  (async () => {
115042
115204
  try {
115043
- const embeddings = await provider.embedBatch(contentChunks.map((c) => c.content));
115205
+ const embeddings = await provider.embedBatch(memories.map((m) => m.content));
115044
115206
  for (let i = 0;i < embeddings.length; i++) {
115045
115207
  if (embeddings[i]) {
115046
115208
  await store.updateEmbedding(memories[i].id, embeddings[i], provider.name);
@@ -115132,7 +115294,7 @@ var registerMemoryStoreTool = (server) => {
115132
115294
 
115133
115295
  // src/tools/model-catalog/index.ts
115134
115296
  init_zod();
115135
- init_db();
115297
+ init_db2();
115136
115298
  init_rbac();
115137
115299
  async function denyUnlessCatalogWriter(agentId) {
115138
115300
  const agent = await getAgentById(agentId);
@@ -115233,7 +115395,7 @@ var registerModelCatalogOverlayUpsertTool = (server) => {
115233
115395
 
115234
115396
  // src/tools/my-agent-info.ts
115235
115397
  init_zod();
115236
- init_db();
115398
+ init_db2();
115237
115399
  init_types();
115238
115400
  var agentOutputShape3 = looseObject({
115239
115401
  id: string().optional(),
@@ -115288,6 +115450,7 @@ var registerMyAgentInfoTool = (server) => {
115288
115450
 
115289
115451
  // src/tools/oauth-access-token.ts
115290
115452
  init_zod();
115453
+ init_oauth();
115291
115454
  init_secret_scrubber();
115292
115455
  function assertTokenUsable(provider, expiresAt, minValidityMs) {
115293
115456
  const expiresAtMs = Date.parse(expiresAt);
@@ -115411,7 +115574,7 @@ init_zod();
115411
115574
  // src/be/api-drain.ts
115412
115575
  init_api_drain();
115413
115576
  init_secret_scrubber();
115414
- init_db();
115577
+ init_db2();
115415
115578
  var DEFAULT_API_DRAIN_MAX_MS = 0;
115416
115579
  var DRAIN_CHECK_INTERVAL_MS = 500;
115417
115580
  var LIVE_WORKER_WINDOW_MS = 30000;
@@ -115509,7 +115672,7 @@ function describe2(err) {
115509
115672
  }
115510
115673
 
115511
115674
  // src/tools/poll-task.ts
115512
- init_db();
115675
+ init_db2();
115513
115676
  var DEFAULT_POLL_INTERVAL_MS = 2000;
115514
115677
  var MAX_POLL_DURATION_MS = 1 * 60 * 1000;
115515
115678
  var registerPollTaskTool = (server) => {
@@ -115677,7 +115840,7 @@ var registerPollTaskTool = (server) => {
115677
115840
 
115678
115841
  // src/tools/post-message.ts
115679
115842
  init_zod();
115680
- init_db();
115843
+ init_db2();
115681
115844
  var PostedMessageSchema = looseObject({
115682
115845
  id: string().optional(),
115683
115846
  channelId: string().optional(),
@@ -115736,7 +115899,7 @@ var registerPostMessageTool = (server) => {
115736
115899
 
115737
115900
  // src/tools/prompt-templates/delete.ts
115738
115901
  init_zod();
115739
- init_db();
115902
+ init_db2();
115740
115903
  var registerDeletePromptTemplateTool = (server) => {
115741
115904
  createToolRegistrar(server)("delete-prompt-template", {
115742
115905
  title: "Delete Prompt Template",
@@ -115779,7 +115942,7 @@ var registerDeletePromptTemplateTool = (server) => {
115779
115942
  };
115780
115943
  // src/tools/prompt-templates/get.ts
115781
115944
  init_zod();
115782
- init_db();
115945
+ init_db2();
115783
115946
  init_registry();
115784
115947
  var promptTemplateOutputShape = looseObject({
115785
115948
  id: string().optional(),
@@ -115859,7 +116022,7 @@ History: ${history.length} version(s)`,
115859
116022
  };
115860
116023
  // src/tools/prompt-templates/list.ts
115861
116024
  init_zod();
115862
- init_db();
116025
+ init_db2();
115863
116026
  init_types();
115864
116027
  var promptTemplateOutputShape2 = looseObject({
115865
116028
  id: string().optional(),
@@ -115964,7 +116127,7 @@ Unresolved variables: ${unresolved.join(", ")}` : ""}`,
115964
116127
  };
115965
116128
  // src/tools/prompt-templates/set.ts
115966
116129
  init_zod();
115967
- init_db();
116130
+ init_db2();
115968
116131
  init_types();
115969
116132
  var promptTemplateOutputShape3 = looseObject({
115970
116133
  id: string().optional(),
@@ -116031,7 +116194,7 @@ var registerSetPromptTemplateTool = (server) => {
116031
116194
  };
116032
116195
  // src/tools/read-messages.ts
116033
116196
  init_zod();
116034
- init_db();
116197
+ init_db2();
116035
116198
  var ChannelMessageOutputSchema = looseObject({
116036
116199
  id: string().optional(),
116037
116200
  channelId: string().optional(),
@@ -116156,7 +116319,7 @@ var registerReadMessagesTool = (server) => {
116156
116319
 
116157
116320
  // src/tools/register-agentmail-inbox.ts
116158
116321
  init_zod();
116159
- init_db();
116322
+ init_db2();
116160
116323
  var registerRegisterAgentmailInboxTool = (server) => {
116161
116324
  createToolRegistrar(server)("register-agentmail-inbox", {
116162
116325
  title: "Register AgentMail Inbox",
@@ -116229,7 +116392,7 @@ ${mappings.map((m) => ` - ${m.inboxId} (${m.inboxEmail ?? "no email"})`).join(`
116229
116392
 
116230
116393
  // src/tools/register-kapso-number.ts
116231
116394
  init_zod();
116232
- init_db();
116395
+ init_db2();
116233
116396
 
116234
116397
  // src/integrations/kapso/client.ts
116235
116398
  init_secret_scrubber();
@@ -116402,7 +116565,7 @@ async function registerKapsoWebhook(params) {
116402
116565
  }
116403
116566
 
116404
116567
  // src/integrations/kapso/config.ts
116405
- init_db();
116568
+ init_db2();
116406
116569
  var KAPSO_NUMBERS_NAMESPACE = "integrations:kapso:numbers";
116407
116570
  var KAPSO_DEDUPE_NAMESPACE = "integrations:kapso:dedupe";
116408
116571
  var KAPSO_DEDUPE_TTL_MS = 24 * 60 * 60 * 1000;
@@ -116584,7 +116747,7 @@ var registerUnregisterKapsoNumberTool = (server) => {
116584
116747
 
116585
116748
  // src/tools/register-service.ts
116586
116749
  init_zod();
116587
- init_db();
116750
+ init_db2();
116588
116751
  import path2 from "node:path";
116589
116752
  init_types();
116590
116753
  var serviceOutputShape = looseObject({
@@ -116715,7 +116878,7 @@ var registerRegisterServiceTool = (server) => {
116715
116878
 
116716
116879
  // src/tools/repos/get-repos.ts
116717
116880
  init_zod();
116718
- init_db();
116881
+ init_db2();
116719
116882
  var swarmRepoOutputShape = looseObject({
116720
116883
  id: string().optional(),
116721
116884
  url: string().optional(),
@@ -116759,10 +116922,10 @@ var registerGetReposTool = (server) => {
116759
116922
  };
116760
116923
  // src/tools/repos/update-repo.ts
116761
116924
  init_zod();
116762
- init_db();
116925
+ init_db2();
116763
116926
 
116764
116927
  // src/be/repo-checked-update.ts
116765
- init_db();
116928
+ init_db2();
116766
116929
 
116767
116930
  // src/be/repo-merge-policy.ts
116768
116931
  function changesAllowMerge(current, incoming) {
@@ -116854,7 +117017,7 @@ var registerUpdateRepoTool = (server) => {
116854
117017
  };
116855
117018
  // src/tools/request-human-input.ts
116856
117019
  init_zod();
116857
- init_db();
117020
+ init_db2();
116858
117021
  init_constants();
116859
117022
  var QuestionSchema = object({
116860
117023
  id: string().describe("Unique ID for the question (used as key in responses)"),
@@ -117015,7 +117178,7 @@ var registerResolveUserTool = (server) => {
117015
117178
  init_zod();
117016
117179
 
117017
117180
  // src/realtime/auth.ts
117018
- init_db();
117181
+ init_db2();
117019
117182
  init_rbac_roles();
117020
117183
 
117021
117184
  // src/comb/config.ts
@@ -122877,7 +123040,7 @@ var removeAwarenessStates = (awareness, clients, origin) => {
122877
123040
  };
122878
123041
 
122879
123042
  // src/realtime/rooms.ts
122880
- init_db();
123043
+ init_db2();
122881
123044
  init_secret_scrubber();
122882
123045
  init_bus();
122883
123046
  var ROOM_KEY_PREFIX = "_room/";
@@ -123444,6 +123607,7 @@ var registerRoomDecodeTool = (server) => {
123444
123607
  // src/tools/schedules/create-schedule.ts
123445
123608
  init_zod();
123446
123609
  var import_cron_parser2 = __toESM(require_dist2(), 1);
123610
+ init_db2();
123447
123611
  init_db();
123448
123612
  init_types();
123449
123613
  var createScheduleInputSchema = object({
@@ -123660,13 +123824,15 @@ var registerCreateScheduleTool = (server) => {
123660
123824
  };
123661
123825
  // src/tools/schedules/delete-schedule.ts
123662
123826
  init_zod();
123663
- init_db();
123827
+ init_db2();
123664
123828
 
123665
123829
  // src/be/events.ts
123666
- init_db();
123830
+ init_secret_scrubber();
123831
+ init_db2();
123832
+ init_scrub_json();
123667
123833
 
123668
123834
  // src/be/memory/key-browser.ts
123669
- init_db();
123835
+ init_db2();
123670
123836
  var MEMORY_KEYS_DEFAULT_PREFIX = "/longterm/";
123671
123837
  var MEMORY_KEYS_MAX_LIMIT = 2000;
123672
123838
  function estimateTokens(chars) {
@@ -123899,6 +124065,13 @@ function rowToSwarmEvent(row) {
123899
124065
  var INSERT_EVENT_SQL = `INSERT INTO events (id, category, event, status, source, agentId, taskId,
123900
124066
  sessionId, parentEventId, numericValue, durationMs, data, createdAt)
123901
124067
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))`;
124068
+ function serializeEventData(data) {
124069
+ const raw = JSON.stringify(data);
124070
+ const scrubbed = scrubSecrets(raw);
124071
+ if (!breaksJsonValidity(raw, scrubbed))
124072
+ return scrubbed;
124073
+ return JSON.stringify(scrubObject(data));
124074
+ }
123902
124075
  async function insertEvent(db, id2, input) {
123903
124076
  await db.run(INSERT_EVENT_SQL, [
123904
124077
  id2,
@@ -123912,7 +124085,7 @@ async function insertEvent(db, id2, input) {
123912
124085
  input.parentEventId ?? null,
123913
124086
  input.numericValue ?? null,
123914
124087
  input.durationMs ?? null,
123915
- input.data ? JSON.stringify(input.data) : null
124088
+ input.data ? serializeEventData(input.data) : null
123916
124089
  ]);
123917
124090
  await recordSkillInvocation(db, input, id2);
123918
124091
  }
@@ -124121,7 +124294,7 @@ var registerDeleteScheduleTool = (server) => {
124121
124294
  };
124122
124295
  // src/tools/schedules/list-schedules.ts
124123
124296
  init_zod();
124124
- init_db();
124297
+ init_db2();
124125
124298
  init_types();
124126
124299
  var scheduleRowShape = {
124127
124300
  id: string().optional(),
@@ -124223,7 +124396,7 @@ var registerListSchedulesTool = (server) => {
124223
124396
  // src/tools/schedules/patch-schedule.ts
124224
124397
  init_zod();
124225
124398
  var import_cron_parser3 = __toESM(require_dist2(), 1);
124226
- init_db();
124399
+ init_db2();
124227
124400
 
124228
124401
  // src/be/schedules/validate.ts
124229
124402
  function mergeScheduleTiming(existing, patch) {
@@ -124240,6 +124413,7 @@ function validateRecurringTiming(merged) {
124240
124413
  }
124241
124414
 
124242
124415
  // src/tools/schedules/patch-schedule.ts
124416
+ init_db();
124243
124417
  init_types();
124244
124418
  var patchScheduleInputSchema = object({
124245
124419
  key: AssetKeySchema.optional().describe("Move to a logical namespace."),
@@ -124490,7 +124664,7 @@ var registerPatchScheduleTool = (server) => {
124490
124664
  };
124491
124665
  // src/tools/schedules/run-schedule-now.ts
124492
124666
  init_zod();
124493
- init_db();
124667
+ init_db2();
124494
124668
  var registerRunScheduleNowTool = (server) => {
124495
124669
  createToolRegistrar(server)("run-schedule-now", {
124496
124670
  title: "Run Schedule Now",
@@ -124549,6 +124723,7 @@ var registerRunScheduleNowTool = (server) => {
124549
124723
  // src/tools/schedules/update-schedule.ts
124550
124724
  init_zod();
124551
124725
  var import_cron_parser4 = __toESM(require_dist2(), 1);
124726
+ init_db2();
124552
124727
  init_db();
124553
124728
  init_types();
124554
124729
  var updateScheduleInputSchema = object({
@@ -124800,7 +124975,7 @@ var registerUpdateScheduleTool = (server) => {
124800
124975
  };
124801
124976
  // src/tools/script-apis.ts
124802
124977
  init_zod();
124803
- init_db();
124978
+ init_db2();
124804
124979
  init_rbac();
124805
124980
  init_secret_scrubber();
124806
124981
  var scriptApisInputSchema = object({
@@ -124973,7 +125148,7 @@ var registerScriptApisTool = (server) => {
124973
125148
 
124974
125149
  // src/tools/script-connections/tool.ts
124975
125150
  init_zod();
124976
- init_db();
125151
+ init_db2();
124977
125152
  init_rbac();
124978
125153
  var scriptConnectionsInputSchema = object({
124979
125154
  action: _enum(["list", "upsert-openapi", "upsert-mcp", "upsert-graphql", "refresh", "disable"]).describe("List, create/update, refresh, or disable a script connection."),
@@ -125549,12 +125724,12 @@ var registerScriptUpsertTool = (server) => {
125549
125724
 
125550
125725
  // src/tools/send-task.ts
125551
125726
  init_zod();
125552
- init_db();
125727
+ init_db2();
125553
125728
  init_rbac();
125554
125729
  init_slack_routing();
125555
125730
 
125556
125731
  // src/tools/task-dedup.ts
125557
- init_db();
125732
+ init_db2();
125558
125733
  function jaccardSimilarity(a, b) {
125559
125734
  const tokenize = (s) => new Set(s.toLowerCase().replace(/[^\w\s]/g, " ").split(/\s+/).filter((w) => w.length > 0));
125560
125735
  const wordsA = tokenize(a);
@@ -126003,7 +126178,7 @@ var registerSendTaskTool = (server) => {
126003
126178
 
126004
126179
  // src/tools/skills/skill-create.ts
126005
126180
  init_zod();
126006
- init_db();
126181
+ init_db2();
126007
126182
  init_rbac();
126008
126183
  var registerSkillCreateTool = (server) => {
126009
126184
  createToolRegistrar(server)("skill-create", {
@@ -126072,7 +126247,7 @@ var registerSkillCreateTool = (server) => {
126072
126247
  };
126073
126248
  // src/tools/skills/skill-delete.ts
126074
126249
  init_zod();
126075
- init_db();
126250
+ init_db2();
126076
126251
  init_rbac();
126077
126252
  var SYSTEM_DEFAULT_SKILL_LOCKED_MESSAGE = "This skill is system-managed and cannot be edited from the UI; it is re-seeded on each start. Fork it under a new name to customize.";
126078
126253
  var registerSkillDeleteTool = (server) => {
@@ -126122,7 +126297,7 @@ var registerSkillDeleteTool = (server) => {
126122
126297
  };
126123
126298
  // src/tools/skills/skill-get.ts
126124
126299
  init_zod();
126125
- init_db();
126300
+ init_db2();
126126
126301
  var registerSkillGetTool = (server) => {
126127
126302
  createToolRegistrar(server)("skill-get", {
126128
126303
  title: "Get Skill",
@@ -126161,7 +126336,7 @@ ${skill.content}`,
126161
126336
  };
126162
126337
  // src/tools/skills/skill-get-file.ts
126163
126338
  init_zod();
126164
- init_db();
126339
+ init_db2();
126165
126340
  var registerSkillGetFileTool = (server) => {
126166
126341
  createToolRegistrar(server)("skill-get-file", {
126167
126342
  title: "Get Skill File",
@@ -126200,7 +126375,7 @@ ${file.content}`,
126200
126375
  };
126201
126376
  // src/tools/skills/skill-install.ts
126202
126377
  init_zod();
126203
- init_db();
126378
+ init_db2();
126204
126379
  init_rbac();
126205
126380
  var registerSkillInstallTool = (server) => {
126206
126381
  createToolRegistrar(server)("skill-install", {
@@ -126259,7 +126434,7 @@ var registerSkillInstallTool = (server) => {
126259
126434
  };
126260
126435
  // src/tools/skills/skill-install-remote.ts
126261
126436
  init_zod();
126262
- init_db();
126437
+ init_db2();
126263
126438
  init_rbac();
126264
126439
  var registerSkillInstallRemoteTool = (server) => {
126265
126440
  createToolRegistrar(server)("skill-install-remote", {
@@ -126357,7 +126532,7 @@ var registerSkillInstallRemoteTool = (server) => {
126357
126532
  };
126358
126533
  // src/tools/skills/skill-list.ts
126359
126534
  init_zod();
126360
- init_db();
126535
+ init_db2();
126361
126536
  function renderSkillList(skills) {
126362
126537
  if (skills.length === 0)
126363
126538
  return;
@@ -126407,7 +126582,7 @@ var registerSkillListTool = (server) => {
126407
126582
  };
126408
126583
  // src/tools/skills/skill-publish.ts
126409
126584
  init_zod();
126410
- init_db();
126585
+ init_db2();
126411
126586
  var registerSkillPublishTool = (server) => {
126412
126587
  createToolRegistrar(server)("skill-publish", {
126413
126588
  title: "Publish Skill",
@@ -126479,7 +126654,7 @@ To reject: close this task with a rejection reason.`;
126479
126654
  };
126480
126655
  // src/tools/skills/skill-search.ts
126481
126656
  init_zod();
126482
- init_db();
126657
+ init_db2();
126483
126658
  function renderSkillList2(skills) {
126484
126659
  if (skills.length === 0)
126485
126660
  return;
@@ -126514,7 +126689,7 @@ var registerSkillSearchTool = (server) => {
126514
126689
  };
126515
126690
  // src/tools/skills/skill-sync-remote.ts
126516
126691
  init_zod();
126517
- init_db();
126692
+ init_db2();
126518
126693
  function contentHash(content) {
126519
126694
  const hash = new Bun.CryptoHasher("sha256").update(content).digest("hex");
126520
126695
  return hash;
@@ -126606,7 +126781,7 @@ var registerSkillSyncRemoteTool = (server) => {
126606
126781
  };
126607
126782
  // src/tools/skills/skill-uninstall.ts
126608
126783
  init_zod();
126609
- init_db();
126784
+ init_db2();
126610
126785
  init_rbac();
126611
126786
  var registerSkillUninstallTool = (server) => {
126612
126787
  createToolRegistrar(server)("skill-uninstall", {
@@ -126650,7 +126825,7 @@ var registerSkillUninstallTool = (server) => {
126650
126825
  };
126651
126826
  // src/tools/skills/skill-update.ts
126652
126827
  init_zod();
126653
- init_db();
126828
+ init_db2();
126654
126829
  init_rbac();
126655
126830
  var SYSTEM_DEFAULT_SKILL_LOCKED_MESSAGE2 = "This skill is system-managed and cannot be edited from the UI; it is re-seeded on each start. Fork it under a new name to customize.";
126656
126831
  var registerSkillUpdateTool = (server) => {
@@ -126754,7 +126929,7 @@ var registerSkillUpdateTool = (server) => {
126754
126929
  };
126755
126930
  // src/tools/slack-archive-channel.ts
126756
126931
  init_zod();
126757
- init_db();
126932
+ init_db2();
126758
126933
  init_rbac();
126759
126934
 
126760
126935
  // src/slack/channel-join.ts
@@ -126932,7 +127107,7 @@ var registerSlackArchiveChannelTool = (server) => {
126932
127107
 
126933
127108
  // src/tools/slack-create-channel.ts
126934
127109
  init_zod();
126935
- init_db();
127110
+ init_db2();
126936
127111
  init_rbac();
126937
127112
  var registerSlackCreateChannelTool = (server) => {
126938
127113
  createToolRegistrar(server)("slack-create-channel", {
@@ -126988,7 +127163,7 @@ var registerSlackCreateChannelTool = (server) => {
126988
127163
 
126989
127164
  // src/tools/slack-delete.ts
126990
127165
  init_zod();
126991
- init_db();
127166
+ init_db2();
126992
127167
  init_rbac();
126993
127168
 
126994
127169
  // src/slack/message-text.ts
@@ -127206,17 +127381,17 @@ var registerSlackDeleteTool = (server) => {
127206
127381
 
127207
127382
  // src/tools/slack-download-file.ts
127208
127383
  init_zod();
127209
- init_db();
127384
+ init_db2();
127210
127385
 
127211
127386
  // src/slack/inbound-files.ts
127212
- init_db();
127387
+ init_db2();
127213
127388
  import { mkdtemp, rm } from "node:fs/promises";
127214
127389
  import { tmpdir as tmpdir2 } from "node:os";
127215
127390
  import { join as join2 } from "node:path";
127216
127391
 
127217
127392
  // src/be/task-attachment-store.ts
127218
127393
  init_secret_scrubber();
127219
- init_db();
127394
+ init_db2();
127220
127395
  var MAX_TASK_ATTACHMENT_BYTES = 50 * 1024 * 1024;
127221
127396
  async function recordTaskAttachmentUpload(input) {
127222
127397
  const { provider, scope, uploaded, contentType } = input;
@@ -127683,7 +127858,7 @@ ${fetchCommand}`,
127683
127858
 
127684
127859
  // src/tools/slack-invite-to-channel.ts
127685
127860
  init_zod();
127686
- init_db();
127861
+ init_db2();
127687
127862
  init_rbac();
127688
127863
  var registerSlackInviteToChannelTool = (server) => {
127689
127864
  createToolRegistrar(server)("slack-invite-to-channel", {
@@ -127738,7 +127913,7 @@ var registerSlackInviteToChannelTool = (server) => {
127738
127913
 
127739
127914
  // src/tools/slack-list-channels.ts
127740
127915
  init_zod();
127741
- init_db();
127916
+ init_db2();
127742
127917
  var SlackChannelSchema = looseObject({
127743
127918
  id: string().optional(),
127744
127919
  name: string().optional(),
@@ -127833,7 +128008,7 @@ var registerSlackListChannelsTool = (server) => {
127833
128008
 
127834
128009
  // src/tools/slack-post.ts
127835
128010
  init_zod();
127836
- init_db();
128011
+ init_db2();
127837
128012
  init_rbac();
127838
128013
  var registerSlackPostTool = (server) => {
127839
128014
  createToolRegistrar(server)("slack-post", {
@@ -127937,7 +128112,7 @@ var registerSlackPostTool = (server) => {
127937
128112
 
127938
128113
  // src/tools/slack-read.ts
127939
128114
  init_zod();
127940
- init_db();
128115
+ init_db2();
127941
128116
  init_rbac();
127942
128117
  var AUTO_DOWNLOAD_DIR = "/app/shared/downloads/slack";
127943
128118
  var SlackFileSchema = looseObject({
@@ -128167,7 +128342,7 @@ ${fileList}`;
128167
128342
 
128168
128343
  // src/tools/slack-reply.ts
128169
128344
  init_zod();
128170
- init_db();
128345
+ init_db2();
128171
128346
  var registerSlackReplyTool = (server) => {
128172
128347
  createToolRegistrar(server)("slack-reply", {
128173
128348
  title: "Reply to Slack thread",
@@ -128307,7 +128482,7 @@ var registerSlackReplyTool = (server) => {
128307
128482
 
128308
128483
  // src/tools/slack-start-thread.ts
128309
128484
  init_zod();
128310
- init_db();
128485
+ init_db2();
128311
128486
  init_rbac();
128312
128487
  var registerSlackStartThreadTool = (server) => {
128313
128488
  createToolRegistrar(server)("slack-start-thread", {
@@ -128396,7 +128571,7 @@ var registerSlackStartThreadTool = (server) => {
128396
128571
 
128397
128572
  // src/tools/slack-update.ts
128398
128573
  init_zod();
128399
- init_db();
128574
+ init_db2();
128400
128575
  init_rbac();
128401
128576
  var registerSlackUpdateTool = (server) => {
128402
128577
  createToolRegistrar(server)("slack-update", {
@@ -128483,7 +128658,7 @@ var registerSlackUpdateTool = (server) => {
128483
128658
 
128484
128659
  // src/tools/slack-upload-file.ts
128485
128660
  init_zod();
128486
- init_db();
128661
+ init_db2();
128487
128662
  init_rbac();
128488
128663
  var WORKSPACE_DIR = "/workspace";
128489
128664
  function resolveTaskUploadThreadTs(task) {
@@ -128675,7 +128850,7 @@ ${triedPathsList}
128675
128850
 
128676
128851
  // src/tools/steer-task.ts
128677
128852
  init_zod();
128678
- init_db();
128853
+ init_db2();
128679
128854
  init_steering();
128680
128855
  init_rbac();
128681
128856
  init_types();
@@ -128772,7 +128947,7 @@ var registerSteerTaskTool = (server) => {
128772
128947
 
128773
128948
  // src/tools/store-progress.ts
128774
128949
  init_zod();
128775
- init_db();
128950
+ init_db2();
128776
128951
  init_rbac();
128777
128952
  init_types();
128778
128953
  init_secret_scrubber();
@@ -129130,7 +129305,7 @@ This check refuses once per task; the next completion is accepted and unfixed ci
129130
129305
 
129131
129306
  // src/tools/swarm-config/delete-config.ts
129132
129307
  init_zod();
129133
- init_db();
129308
+ init_db2();
129134
129309
  init_swarm_config_guard();
129135
129310
  init_rbac();
129136
129311
  var registerDeleteConfigTool = (server) => {
@@ -129202,7 +129377,7 @@ var registerDeleteConfigTool = (server) => {
129202
129377
  };
129203
129378
  // src/tools/swarm-config/get-config.ts
129204
129379
  init_zod();
129205
- init_db();
129380
+ init_db2();
129206
129381
  init_swarm_config_guard();
129207
129382
  init_rbac();
129208
129383
  init_types();
@@ -129293,7 +129468,7 @@ var registerGetConfigTool = (server) => {
129293
129468
  };
129294
129469
  // src/tools/swarm-config/list-config.ts
129295
129470
  init_zod();
129296
- init_db();
129471
+ init_db2();
129297
129472
  init_swarm_config_guard();
129298
129473
  init_rbac();
129299
129474
  init_types();
@@ -129384,7 +129559,7 @@ var registerListConfigTool = (server) => {
129384
129559
  };
129385
129560
  // src/tools/swarm-config/set-config.ts
129386
129561
  init_zod();
129387
- init_db();
129562
+ init_db2();
129388
129563
  init_swarm_config_guard();
129389
129564
  init_rbac();
129390
129565
  init_types();
@@ -129562,7 +129737,7 @@ init_zod();
129562
129737
 
129563
129738
  // src/be/budget-admission.ts
129564
129739
  init_env_flag();
129565
- init_db();
129740
+ init_db2();
129566
129741
  var killSwitchWarned = false;
129567
129742
  function dateUtcFrom(now) {
129568
129743
  return now.toISOString().slice(0, 10);
@@ -129628,7 +129803,7 @@ async function canClaim(agentId, nowUtc, requestedByUserId) {
129628
129803
  // src/be/budget-refusal-notify.ts
129629
129804
  init_resolver();
129630
129805
  init_secret_scrubber();
129631
- init_db();
129806
+ init_db2();
129632
129807
  function formatSpendSummary(ctx) {
129633
129808
  const fmt = (n) => n === undefined ? "?" : `$${n.toFixed(2)}`;
129634
129809
  if (ctx.cause === "agent") {
@@ -129679,7 +129854,7 @@ async function emitBudgetRefusalSideEffects(ctx, inserted) {
129679
129854
  console.warn(`[budget-refusal-notify] Failed to create follow-up task for budget refusal (task=${ctx.task.id.slice(0, 8)}): ${err}`);
129680
129855
  }
129681
129856
  }
129682
- import("./event-bus-w7ac4n3c.js").then(({ workflowEventBus: workflowEventBus2 }) => {
129857
+ import("./event-bus-vnfthafg.js").then(({ workflowEventBus: workflowEventBus2 }) => {
129683
129858
  workflowEventBus2.emit("task.budget_refused", {
129684
129859
  taskId: ctx.task.id,
129685
129860
  agentId: ctx.agentId,
@@ -129696,7 +129871,7 @@ async function emitBudgetRefusalSideEffects(ctx, inserted) {
129696
129871
  }
129697
129872
 
129698
129873
  // src/tools/task-action.ts
129699
- init_db();
129874
+ init_db2();
129700
129875
  init_types();
129701
129876
  var TaskActionSchema = _enum([
129702
129877
  "create",
@@ -130235,6 +130410,7 @@ var registerTrackerMapAgentTool = (server) => {
130235
130410
  };
130236
130411
  // src/tools/tracker/tracker-status.ts
130237
130412
  init_zod();
130413
+ init_oauth();
130238
130414
  var registerTrackerStatusTool = (server) => {
130239
130415
  createToolRegistrar(server)("tracker-status", {
130240
130416
  title: "Tracker Status",
@@ -130321,7 +130497,7 @@ var registerTrackerUnlinkTool = (server) => {
130321
130497
  };
130322
130498
  // src/tools/unregister-service.ts
130323
130499
  init_zod();
130324
- init_db();
130500
+ init_db2();
130325
130501
  var registerUnregisterServiceTool = (server) => {
130326
130502
  createToolRegistrar(server)("unregister-service", {
130327
130503
  title: "Unregister Service",
@@ -130376,7 +130552,7 @@ var registerUnregisterServiceTool = (server) => {
130376
130552
 
130377
130553
  // src/tools/update-profile.ts
130378
130554
  init_zod();
130379
- init_db();
130555
+ init_db2();
130380
130556
  init_rbac();
130381
130557
  import { mkdtemp as mkdtemp2, rm as rm2 } from "node:fs/promises";
130382
130558
  import { tmpdir as tmpdir3 } from "node:os";
@@ -130627,7 +130803,7 @@ ${setupScript}
130627
130803
 
130628
130804
  // src/tools/update-service-status.ts
130629
130805
  init_zod();
130630
- init_db();
130806
+ init_db2();
130631
130807
  init_types();
130632
130808
  var serviceOutputShape2 = looseObject({
130633
130809
  id: string().optional(),
@@ -130797,7 +130973,7 @@ var registerCancelWorkflowRunTool = (server) => {
130797
130973
  };
130798
130974
  // src/tools/workflows/create-workflow.ts
130799
130975
  init_zod();
130800
- init_db();
130976
+ init_db2();
130801
130977
  init_types();
130802
130978
 
130803
130979
  // src/workflows/model-validation.ts
@@ -130924,7 +131100,7 @@ var registerCreateWorkflowTool = (server) => {
130924
131100
  };
130925
131101
  // src/tools/workflows/delete-workflow.ts
130926
131102
  init_zod();
130927
- init_db();
131103
+ init_db2();
130928
131104
  var registerDeleteWorkflowTool = (server) => {
130929
131105
  createToolRegistrar(server)("delete-workflow", {
130930
131106
  title: "Delete Workflow",
@@ -130948,7 +131124,7 @@ var registerDeleteWorkflowTool = (server) => {
130948
131124
  };
130949
131125
  // src/tools/workflows/get-workflow.ts
130950
131126
  init_zod();
130951
- init_db();
131127
+ init_db2();
130952
131128
  var registerGetWorkflowTool = (server) => {
130953
131129
  createToolRegistrar(server)("get-workflow", {
130954
131130
  title: "Get Workflow",
@@ -130979,7 +131155,7 @@ var registerGetWorkflowTool = (server) => {
130979
131155
  };
130980
131156
  // src/tools/workflows/get-workflow-run.ts
130981
131157
  init_zod();
130982
- init_db();
131158
+ init_db2();
130983
131159
  var STEP_VALUE_CAP = 400;
130984
131160
  function stepValuePreview(value) {
130985
131161
  if (value === undefined || value === null)
@@ -131019,11 +131195,11 @@ var registerGetWorkflowRunTool = (server) => {
131019
131195
  })
131020
131196
  }, async ({ id: id2 }) => {
131021
131197
  try {
131022
- const run = await getWorkflowRun(id2);
131198
+ const run = await getWorkflowRun(id2, "display");
131023
131199
  if (!run) {
131024
131200
  return toolErr(`Workflow run not found: ${id2}`, { data: { steps: [] } });
131025
131201
  }
131026
- const steps = await getWorkflowRunStepsByRunId(id2);
131202
+ const steps = await getWorkflowRunStepsByRunId(id2, "display");
131027
131203
  return toolOk(`Run ${id2} status: ${run.status}.`, {
131028
131204
  details: renderSteps(steps),
131029
131205
  data: { run, steps }
@@ -131035,7 +131211,7 @@ var registerGetWorkflowRunTool = (server) => {
131035
131211
  };
131036
131212
  // src/tools/workflows/list-workflow-runs.ts
131037
131213
  init_zod();
131038
- init_db();
131214
+ init_db2();
131039
131215
  init_types();
131040
131216
  var DEFAULT_RUN_LIMIT = 20;
131041
131217
  var TRIGGER_DATA_SUMMARY_CAP = 400;
@@ -131119,7 +131295,7 @@ var registerListWorkflowRunsTool = (server) => {
131119
131295
  };
131120
131296
  // src/tools/workflows/list-workflows.ts
131121
131297
  init_zod();
131122
- init_db();
131298
+ init_db2();
131123
131299
  init_types();
131124
131300
  var registerListWorkflowsTool = (server) => {
131125
131301
  createToolRegistrar(server)("list-workflows", {
@@ -131152,7 +131328,7 @@ init_zod();
131152
131328
  init_types();
131153
131329
 
131154
131330
  // src/workflows/patch-definition.ts
131155
- init_db();
131331
+ init_db2();
131156
131332
  async function patchWorkflowDefinition(options) {
131157
131333
  const { id: id2, patch, registry, snapshotAgentId, snapshotOptional, updates } = options;
131158
131334
  return await getDbClient().transaction(async () => {
@@ -131360,7 +131536,7 @@ var registerRetryWorkflowRunTool = (server) => {
131360
131536
  };
131361
131537
  // src/tools/workflows/trigger-workflow.ts
131362
131538
  init_zod();
131363
- init_db();
131539
+ init_db2();
131364
131540
  var registerTriggerWorkflowTool = (server) => {
131365
131541
  createToolRegistrar(server)("trigger-workflow", {
131366
131542
  title: "Trigger Workflow",
@@ -131427,7 +131603,7 @@ ${bulleted}${schemaBlock}`,
131427
131603
  };
131428
131604
  // src/tools/workflows/update-workflow.ts
131429
131605
  init_zod();
131430
- init_db();
131606
+ init_db2();
131431
131607
  init_types();
131432
131608
  var registerUpdateWorkflowTool = (server) => {
131433
131609
  createToolRegistrar(server)("update-workflow", {
@@ -132718,12 +132894,12 @@ function createSwarmSdk(config) {
132718
132894
  init_secret_scrubber();
132719
132895
 
132720
132896
  // src/extensions/lifecycle.ts
132721
- init_db();
132897
+ init_db2();
132722
132898
  init_types();
132723
132899
  init_secret_scrubber();
132724
132900
 
132725
132901
  // src/extensions/identity.ts
132726
- init_db();
132902
+ init_db2();
132727
132903
  function extensionAgentName(name) {
132728
132904
  return `ext:${name}`;
132729
132905
  }
@@ -132901,7 +133077,7 @@ async function loadExtension(input) {
132901
133077
  }
132902
133078
 
132903
133079
  // src/extensions/post-bridge.ts
132904
- init_db();
133080
+ init_db2();
132905
133081
  init_secret_scrubber();
132906
133082
  init_event_bus();
132907
133083
  var subscribed3 = false;
@@ -134385,7 +134561,7 @@ class NotifyExecutor extends BaseExecutor {
134385
134561
  }
134386
134562
  }
134387
134563
  case "slack": {
134388
- const { getSlackApp: getSlackApp2 } = await import("./app-75hm5cfa.js");
134564
+ const { getSlackApp: getSlackApp2 } = await import("./app-43vrdmv8.js");
134389
134565
  const app = getSlackApp2();
134390
134566
  if (!app) {
134391
134567
  return {
@@ -134738,6 +134914,7 @@ class ScriptExecutor extends BaseExecutor {
134738
134914
 
134739
134915
  // src/workflows/executors/swarm-script.ts
134740
134916
  init_zod();
134917
+ init_db();
134741
134918
  init_constants();
134742
134919
  init_template();
134743
134920
  var SWARM_SCRIPT_DEFAULT_TIMEOUT_MS = DEFAULT_SCRIPT_RESOURCES.wallClockMs;