nomoreide 0.1.103 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (621) hide show
  1. package/README.md +72 -20
  2. package/bin/nomoreide.js +82 -0
  3. package/package.json +24 -90
  4. package/dist/cli/agents.d.ts +0 -2
  5. package/dist/cli/agents.js +0 -43
  6. package/dist/cli/agents.js.map +0 -1
  7. package/dist/cli/commands.d.ts +0 -11
  8. package/dist/cli/commands.js +0 -235
  9. package/dist/cli/commands.js.map +0 -1
  10. package/dist/cli/daemon.d.ts +0 -15
  11. package/dist/cli/daemon.js +0 -139
  12. package/dist/cli/daemon.js.map +0 -1
  13. package/dist/cli/database.d.ts +0 -2
  14. package/dist/cli/database.js +0 -145
  15. package/dist/cli/database.js.map +0 -1
  16. package/dist/cli/errors.d.ts +0 -2
  17. package/dist/cli/errors.js +0 -3
  18. package/dist/cli/errors.js.map +0 -1
  19. package/dist/cli/flags.d.ts +0 -1
  20. package/dist/cli/flags.js +0 -19
  21. package/dist/cli/flags.js.map +0 -1
  22. package/dist/cli/git.d.ts +0 -2
  23. package/dist/cli/git.js +0 -113
  24. package/dist/cli/git.js.map +0 -1
  25. package/dist/cli/profile.d.ts +0 -2
  26. package/dist/cli/profile.js +0 -171
  27. package/dist/cli/profile.js.map +0 -1
  28. package/dist/core/agent-context.d.ts +0 -9
  29. package/dist/core/agent-context.js +0 -43
  30. package/dist/core/agent-context.js.map +0 -1
  31. package/dist/core/agent-env/antigravity-reader.d.ts +0 -7
  32. package/dist/core/agent-env/antigravity-reader.js +0 -86
  33. package/dist/core/agent-env/antigravity-reader.js.map +0 -1
  34. package/dist/core/agent-env/availability.d.ts +0 -6
  35. package/dist/core/agent-env/availability.js +0 -79
  36. package/dist/core/agent-env/availability.js.map +0 -1
  37. package/dist/core/agent-env/claude-reader.d.ts +0 -7
  38. package/dist/core/agent-env/claude-reader.js +0 -101
  39. package/dist/core/agent-env/claude-reader.js.map +0 -1
  40. package/dist/core/agent-env/codex-reader.d.ts +0 -11
  41. package/dist/core/agent-env/codex-reader.js +0 -164
  42. package/dist/core/agent-env/codex-reader.js.map +0 -1
  43. package/dist/core/agent-env/index.d.ts +0 -9
  44. package/dist/core/agent-env/index.js +0 -29
  45. package/dist/core/agent-env/index.js.map +0 -1
  46. package/dist/core/agent-env/managed-plugins.d.ts +0 -18
  47. package/dist/core/agent-env/managed-plugins.js +0 -68
  48. package/dist/core/agent-env/managed-plugins.js.map +0 -1
  49. package/dist/core/agent-env/plugin-reader.d.ts +0 -9
  50. package/dist/core/agent-env/plugin-reader.js +0 -174
  51. package/dist/core/agent-env/plugin-reader.js.map +0 -1
  52. package/dist/core/agent-env/shared.d.ts +0 -26
  53. package/dist/core/agent-env/shared.js +0 -116
  54. package/dist/core/agent-env/shared.js.map +0 -1
  55. package/dist/core/agent-env/types.d.ts +0 -66
  56. package/dist/core/agent-env/types.js +0 -7
  57. package/dist/core/agent-env/types.js.map +0 -1
  58. package/dist/core/agent-env-actions.d.ts +0 -117
  59. package/dist/core/agent-env-actions.js +0 -273
  60. package/dist/core/agent-env-actions.js.map +0 -1
  61. package/dist/core/agent-env-plugin-uninstall.d.ts +0 -11
  62. package/dist/core/agent-env-plugin-uninstall.js +0 -189
  63. package/dist/core/agent-env-plugin-uninstall.js.map +0 -1
  64. package/dist/core/agent-env-writers.d.ts +0 -71
  65. package/dist/core/agent-env-writers.js +0 -632
  66. package/dist/core/agent-env-writers.js.map +0 -1
  67. package/dist/core/agent-profiles/apply.d.ts +0 -57
  68. package/dist/core/agent-profiles/apply.js +0 -209
  69. package/dist/core/agent-profiles/apply.js.map +0 -1
  70. package/dist/core/agent-profiles/builtin.d.ts +0 -8
  71. package/dist/core/agent-profiles/builtin.js +0 -33
  72. package/dist/core/agent-profiles/builtin.js.map +0 -1
  73. package/dist/core/agent-profiles/credentials.d.ts +0 -26
  74. package/dist/core/agent-profiles/credentials.js +0 -151
  75. package/dist/core/agent-profiles/credentials.js.map +0 -1
  76. package/dist/core/agent-profiles/debug-setup.d.ts +0 -18
  77. package/dist/core/agent-profiles/debug-setup.js +0 -237
  78. package/dist/core/agent-profiles/debug-setup.js.map +0 -1
  79. package/dist/core/agent-profiles/index.d.ts +0 -18
  80. package/dist/core/agent-profiles/index.js +0 -19
  81. package/dist/core/agent-profiles/index.js.map +0 -1
  82. package/dist/core/agent-profiles/plugin-apply.d.ts +0 -16
  83. package/dist/core/agent-profiles/plugin-apply.js +0 -383
  84. package/dist/core/agent-profiles/plugin-apply.js.map +0 -1
  85. package/dist/core/agent-profiles/plugin-bundle.d.ts +0 -6
  86. package/dist/core/agent-profiles/plugin-bundle.js +0 -32
  87. package/dist/core/agent-profiles/plugin-bundle.js.map +0 -1
  88. package/dist/core/agent-profiles/publication.d.ts +0 -105
  89. package/dist/core/agent-profiles/publication.js +0 -126
  90. package/dist/core/agent-profiles/publication.js.map +0 -1
  91. package/dist/core/agent-profiles/registry-auth.d.ts +0 -25
  92. package/dist/core/agent-profiles/registry-auth.js +0 -78
  93. package/dist/core/agent-profiles/registry-auth.js.map +0 -1
  94. package/dist/core/agent-profiles/registry-client.d.ts +0 -98
  95. package/dist/core/agent-profiles/registry-client.js +0 -109
  96. package/dist/core/agent-profiles/registry-client.js.map +0 -1
  97. package/dist/core/agent-profiles/registry-config.d.ts +0 -62
  98. package/dist/core/agent-profiles/registry-config.js +0 -221
  99. package/dist/core/agent-profiles/registry-config.js.map +0 -1
  100. package/dist/core/agent-profiles/registry-transfer.d.ts +0 -42
  101. package/dist/core/agent-profiles/registry-transfer.js +0 -133
  102. package/dist/core/agent-profiles/registry-transfer.js.map +0 -1
  103. package/dist/core/agent-profiles/store.d.ts +0 -62
  104. package/dist/core/agent-profiles/store.js +0 -479
  105. package/dist/core/agent-profiles/store.js.map +0 -1
  106. package/dist/core/agent-profiles/transfer.d.ts +0 -27
  107. package/dist/core/agent-profiles/transfer.js +0 -354
  108. package/dist/core/agent-profiles/transfer.js.map +0 -1
  109. package/dist/core/agent-profiles/types.d.ts +0 -364
  110. package/dist/core/agent-profiles/types.js +0 -79
  111. package/dist/core/agent-profiles/types.js.map +0 -1
  112. package/dist/core/agent-runtime.d.ts +0 -114
  113. package/dist/core/agent-runtime.js +0 -494
  114. package/dist/core/agent-runtime.js.map +0 -1
  115. package/dist/core/agent-sessions.d.ts +0 -46
  116. package/dist/core/agent-sessions.js +0 -109
  117. package/dist/core/agent-sessions.js.map +0 -1
  118. package/dist/core/agent-settings.d.ts +0 -31
  119. package/dist/core/agent-settings.js +0 -129
  120. package/dist/core/agent-settings.js.map +0 -1
  121. package/dist/core/agent-terminal.d.ts +0 -22
  122. package/dist/core/agent-terminal.js +0 -62
  123. package/dist/core/agent-terminal.js.map +0 -1
  124. package/dist/core/agent-transcripts.d.ts +0 -29
  125. package/dist/core/agent-transcripts.js +0 -281
  126. package/dist/core/agent-transcripts.js.map +0 -1
  127. package/dist/core/app-settings.d.ts +0 -74
  128. package/dist/core/app-settings.js +0 -118
  129. package/dist/core/app-settings.js.map +0 -1
  130. package/dist/core/app-version.d.ts +0 -2
  131. package/dist/core/app-version.js +0 -16
  132. package/dist/core/app-version.js.map +0 -1
  133. package/dist/core/approval-broker.d.ts +0 -29
  134. package/dist/core/approval-broker.js +0 -48
  135. package/dist/core/approval-broker.js.map +0 -1
  136. package/dist/core/claude-settings.d.ts +0 -18
  137. package/dist/core/claude-settings.js +0 -48
  138. package/dist/core/claude-settings.js.map +0 -1
  139. package/dist/core/cloudflare-actions.d.ts +0 -90
  140. package/dist/core/cloudflare-actions.js +0 -178
  141. package/dist/core/cloudflare-actions.js.map +0 -1
  142. package/dist/core/cloudflare-auth.d.ts +0 -61
  143. package/dist/core/cloudflare-auth.js +0 -149
  144. package/dist/core/cloudflare-auth.js.map +0 -1
  145. package/dist/core/cloudflare-context.d.ts +0 -2
  146. package/dist/core/cloudflare-context.js +0 -106
  147. package/dist/core/cloudflare-context.js.map +0 -1
  148. package/dist/core/cloudflare-manager.d.ts +0 -256
  149. package/dist/core/cloudflare-manager.js +0 -409
  150. package/dist/core/cloudflare-manager.js.map +0 -1
  151. package/dist/core/cloudflare-provider.d.ts +0 -64
  152. package/dist/core/cloudflare-provider.js +0 -343
  153. package/dist/core/cloudflare-provider.js.map +0 -1
  154. package/dist/core/config-files.d.ts +0 -27
  155. package/dist/core/config-files.js +0 -154
  156. package/dist/core/config-files.js.map +0 -1
  157. package/dist/core/config-store.d.ts +0 -181
  158. package/dist/core/config-store.js +0 -1026
  159. package/dist/core/config-store.js.map +0 -1
  160. package/dist/core/context-library.d.ts +0 -53
  161. package/dist/core/context-library.js +0 -605
  162. package/dist/core/context-library.js.map +0 -1
  163. package/dist/core/context-types.d.ts +0 -83
  164. package/dist/core/context-types.js +0 -9
  165. package/dist/core/context-types.js.map +0 -1
  166. package/dist/core/daemon-client.d.ts +0 -70
  167. package/dist/core/daemon-client.js +0 -136
  168. package/dist/core/daemon-client.js.map +0 -1
  169. package/dist/core/daemon-lifecycle.d.ts +0 -59
  170. package/dist/core/daemon-lifecycle.js +0 -147
  171. package/dist/core/daemon-lifecycle.js.map +0 -1
  172. package/dist/core/db/catalog.d.ts +0 -57
  173. package/dist/core/db/catalog.js +0 -38
  174. package/dist/core/db/catalog.js.map +0 -1
  175. package/dist/core/db/data-masking.d.ts +0 -3
  176. package/dist/core/db/data-masking.js +0 -14
  177. package/dist/core/db/data-masking.js.map +0 -1
  178. package/dist/core/db/driver.d.ts +0 -151
  179. package/dist/core/db/driver.js +0 -209
  180. package/dist/core/db/driver.js.map +0 -1
  181. package/dist/core/db/export.d.ts +0 -17
  182. package/dist/core/db/export.js +0 -67
  183. package/dist/core/db/export.js.map +0 -1
  184. package/dist/core/db/mysql-driver.d.ts +0 -33
  185. package/dist/core/db/mysql-driver.js +0 -364
  186. package/dist/core/db/mysql-driver.js.map +0 -1
  187. package/dist/core/db/postgres-driver.d.ts +0 -34
  188. package/dist/core/db/postgres-driver.js +0 -430
  189. package/dist/core/db/postgres-driver.js.map +0 -1
  190. package/dist/core/db/sqlite-driver.d.ts +0 -30
  191. package/dist/core/db/sqlite-driver.js +0 -301
  192. package/dist/core/db/sqlite-driver.js.map +0 -1
  193. package/dist/core/db-peek.d.ts +0 -99
  194. package/dist/core/db-peek.js +0 -322
  195. package/dist/core/db-peek.js.map +0 -1
  196. package/dist/core/db-write.d.ts +0 -45
  197. package/dist/core/db-write.js +0 -190
  198. package/dist/core/db-write.js.map +0 -1
  199. package/dist/core/docker-inspect.d.ts +0 -34
  200. package/dist/core/docker-inspect.js +0 -108
  201. package/dist/core/docker-inspect.js.map +0 -1
  202. package/dist/core/docker-resources.d.ts +0 -28
  203. package/dist/core/docker-resources.js +0 -59
  204. package/dist/core/docker-resources.js.map +0 -1
  205. package/dist/core/docker-service-runner.d.ts +0 -21
  206. package/dist/core/docker-service-runner.js +0 -80
  207. package/dist/core/docker-service-runner.js.map +0 -1
  208. package/dist/core/docker-stats.d.ts +0 -24
  209. package/dist/core/docker-stats.js +0 -76
  210. package/dist/core/docker-stats.js.map +0 -1
  211. package/dist/core/docker.d.ts +0 -75
  212. package/dist/core/docker.js +0 -219
  213. package/dist/core/docker.js.map +0 -1
  214. package/dist/core/env-file.d.ts +0 -24
  215. package/dist/core/env-file.js +0 -123
  216. package/dist/core/env-file.js.map +0 -1
  217. package/dist/core/env-runtime.d.ts +0 -32
  218. package/dist/core/env-runtime.js +0 -42
  219. package/dist/core/env-runtime.js.map +0 -1
  220. package/dist/core/error-inbox.d.ts +0 -91
  221. package/dist/core/error-inbox.js +0 -292
  222. package/dist/core/error-inbox.js.map +0 -1
  223. package/dist/core/extensions.d.ts +0 -78
  224. package/dist/core/extensions.js +0 -41
  225. package/dist/core/extensions.js.map +0 -1
  226. package/dist/core/external-terminal.d.ts +0 -60
  227. package/dist/core/external-terminal.js +0 -429
  228. package/dist/core/external-terminal.js.map +0 -1
  229. package/dist/core/fix-loop.d.ts +0 -55
  230. package/dist/core/fix-loop.js +0 -73
  231. package/dist/core/fix-loop.js.map +0 -1
  232. package/dist/core/git-actions.d.ts +0 -69
  233. package/dist/core/git-actions.js +0 -161
  234. package/dist/core/git-actions.js.map +0 -1
  235. package/dist/core/git-graph-layout.d.ts +0 -34
  236. package/dist/core/git-graph-layout.js +0 -94
  237. package/dist/core/git-graph-layout.js.map +0 -1
  238. package/dist/core/git-identity.d.ts +0 -78
  239. package/dist/core/git-identity.js +0 -178
  240. package/dist/core/git-identity.js.map +0 -1
  241. package/dist/core/git-manager.d.ts +0 -129
  242. package/dist/core/git-manager.js +0 -509
  243. package/dist/core/git-manager.js.map +0 -1
  244. package/dist/core/git-worktrees.d.ts +0 -35
  245. package/dist/core/git-worktrees.js +0 -142
  246. package/dist/core/git-worktrees.js.map +0 -1
  247. package/dist/core/github-auth.d.ts +0 -28
  248. package/dist/core/github-auth.js +0 -134
  249. package/dist/core/github-auth.js.map +0 -1
  250. package/dist/core/github-context.d.ts +0 -12
  251. package/dist/core/github-context.js +0 -36
  252. package/dist/core/github-context.js.map +0 -1
  253. package/dist/core/github-manager.d.ts +0 -223
  254. package/dist/core/github-manager.js +0 -285
  255. package/dist/core/github-manager.js.map +0 -1
  256. package/dist/core/host-metrics.d.ts +0 -41
  257. package/dist/core/host-metrics.js +0 -93
  258. package/dist/core/host-metrics.js.map +0 -1
  259. package/dist/core/http-inspector.d.ts +0 -20
  260. package/dist/core/http-inspector.js +0 -106
  261. package/dist/core/http-inspector.js.map +0 -1
  262. package/dist/core/jetbrains-import.d.ts +0 -85
  263. package/dist/core/jetbrains-import.js +0 -599
  264. package/dist/core/jetbrains-import.js.map +0 -1
  265. package/dist/core/log-sources.d.ts +0 -21
  266. package/dist/core/log-sources.js +0 -219
  267. package/dist/core/log-sources.js.map +0 -1
  268. package/dist/core/log-store.d.ts +0 -33
  269. package/dist/core/log-store.js +0 -94
  270. package/dist/core/log-store.js.map +0 -1
  271. package/dist/core/log-volume.d.ts +0 -41
  272. package/dist/core/log-volume.js +0 -81
  273. package/dist/core/log-volume.js.map +0 -1
  274. package/dist/core/mcp-auth.d.ts +0 -27
  275. package/dist/core/mcp-auth.js +0 -90
  276. package/dist/core/mcp-auth.js.map +0 -1
  277. package/dist/core/metrics-store.d.ts +0 -74
  278. package/dist/core/metrics-store.js +0 -187
  279. package/dist/core/metrics-store.js.map +0 -1
  280. package/dist/core/one-time-skills.d.ts +0 -27
  281. package/dist/core/one-time-skills.js +0 -185
  282. package/dist/core/one-time-skills.js.map +0 -1
  283. package/dist/core/port-utils.d.ts +0 -23
  284. package/dist/core/port-utils.js +0 -83
  285. package/dist/core/port-utils.js.map +0 -1
  286. package/dist/core/process-manager.d.ts +0 -99
  287. package/dist/core/process-manager.js +0 -738
  288. package/dist/core/process-manager.js.map +0 -1
  289. package/dist/core/process-tree.d.ts +0 -17
  290. package/dist/core/process-tree.js +0 -64
  291. package/dist/core/process-tree.js.map +0 -1
  292. package/dist/core/project-overview.d.ts +0 -52
  293. package/dist/core/project-overview.js +0 -122
  294. package/dist/core/project-overview.js.map +0 -1
  295. package/dist/core/providers/credentials.d.ts +0 -93
  296. package/dist/core/providers/credentials.js +0 -88
  297. package/dist/core/providers/credentials.js.map +0 -1
  298. package/dist/core/providers/deploy-provider.d.ts +0 -327
  299. package/dist/core/providers/deploy-provider.js +0 -25
  300. package/dist/core/providers/deploy-provider.js.map +0 -1
  301. package/dist/core/providers/egress.d.ts +0 -58
  302. package/dist/core/providers/egress.js +0 -115
  303. package/dist/core/providers/egress.js.map +0 -1
  304. package/dist/core/providers/host-bridge.d.ts +0 -20
  305. package/dist/core/providers/host-bridge.js +0 -57
  306. package/dist/core/providers/host-bridge.js.map +0 -1
  307. package/dist/core/providers/host-provider.d.ts +0 -160
  308. package/dist/core/providers/host-provider.js +0 -2
  309. package/dist/core/providers/host-provider.js.map +0 -1
  310. package/dist/core/providers/oauth.d.ts +0 -97
  311. package/dist/core/providers/oauth.js +0 -238
  312. package/dist/core/providers/oauth.js.map +0 -1
  313. package/dist/core/providers/project-resolution.d.ts +0 -81
  314. package/dist/core/providers/project-resolution.js +0 -101
  315. package/dist/core/providers/project-resolution.js.map +0 -1
  316. package/dist/core/providers/registry.d.ts +0 -73
  317. package/dist/core/providers/registry.js +0 -53
  318. package/dist/core/providers/registry.js.map +0 -1
  319. package/dist/core/providers/strings.d.ts +0 -95
  320. package/dist/core/providers/strings.js +0 -59
  321. package/dist/core/providers/strings.js.map +0 -1
  322. package/dist/core/public-config.d.ts +0 -18
  323. package/dist/core/public-config.js +0 -76
  324. package/dist/core/public-config.js.map +0 -1
  325. package/dist/core/read-only-files.d.ts +0 -28
  326. package/dist/core/read-only-files.js +0 -93
  327. package/dist/core/read-only-files.js.map +0 -1
  328. package/dist/core/repo-create.d.ts +0 -11
  329. package/dist/core/repo-create.js +0 -54
  330. package/dist/core/repo-create.js.map +0 -1
  331. package/dist/core/repo-match.d.ts +0 -12
  332. package/dist/core/repo-match.js +0 -40
  333. package/dist/core/repo-match.js.map +0 -1
  334. package/dist/core/repo-onboard.d.ts +0 -297
  335. package/dist/core/repo-onboard.js +0 -667
  336. package/dist/core/repo-onboard.js.map +0 -1
  337. package/dist/core/repro-bundle.d.ts +0 -30
  338. package/dist/core/repro-bundle.js +0 -116
  339. package/dist/core/repro-bundle.js.map +0 -1
  340. package/dist/core/service-graph.d.ts +0 -50
  341. package/dist/core/service-graph.js +0 -143
  342. package/dist/core/service-graph.js.map +0 -1
  343. package/dist/core/service-health.d.ts +0 -10
  344. package/dist/core/service-health.js +0 -46
  345. package/dist/core/service-health.js.map +0 -1
  346. package/dist/core/service-log-source.d.ts +0 -9
  347. package/dist/core/service-log-source.js +0 -49
  348. package/dist/core/service-log-source.js.map +0 -1
  349. package/dist/core/service-registry.d.ts +0 -52
  350. package/dist/core/service-registry.js +0 -101
  351. package/dist/core/service-registry.js.map +0 -1
  352. package/dist/core/snapshot-manager.d.ts +0 -62
  353. package/dist/core/snapshot-manager.js +0 -219
  354. package/dist/core/snapshot-manager.js.map +0 -1
  355. package/dist/core/ssh-servers.d.ts +0 -89
  356. package/dist/core/ssh-servers.js +0 -251
  357. package/dist/core/ssh-servers.js.map +0 -1
  358. package/dist/core/ssh-service-runner.d.ts +0 -7
  359. package/dist/core/ssh-service-runner.js +0 -36
  360. package/dist/core/ssh-service-runner.js.map +0 -1
  361. package/dist/core/ssh-setup.d.ts +0 -11
  362. package/dist/core/ssh-setup.js +0 -49
  363. package/dist/core/ssh-setup.js.map +0 -1
  364. package/dist/core/system-processes.d.ts +0 -29
  365. package/dist/core/system-processes.js +0 -119
  366. package/dist/core/system-processes.js.map +0 -1
  367. package/dist/core/terminal-manager.d.ts +0 -123
  368. package/dist/core/terminal-manager.js +0 -470
  369. package/dist/core/terminal-manager.js.map +0 -1
  370. package/dist/core/terminal-session.d.ts +0 -122
  371. package/dist/core/terminal-session.js +0 -242
  372. package/dist/core/terminal-session.js.map +0 -1
  373. package/dist/core/terminal-spawn.d.ts +0 -26
  374. package/dist/core/terminal-spawn.js +0 -63
  375. package/dist/core/terminal-spawn.js.map +0 -1
  376. package/dist/core/test-runner.d.ts +0 -69
  377. package/dist/core/test-runner.js +0 -199
  378. package/dist/core/test-runner.js.map +0 -1
  379. package/dist/core/timeline-store.d.ts +0 -20
  380. package/dist/core/timeline-store.js +0 -36
  381. package/dist/core/timeline-store.js.map +0 -1
  382. package/dist/core/tool-call-store.d.ts +0 -25
  383. package/dist/core/tool-call-store.js +0 -62
  384. package/dist/core/tool-call-store.js.map +0 -1
  385. package/dist/core/types.d.ts +0 -312
  386. package/dist/core/types.js +0 -2
  387. package/dist/core/types.js.map +0 -1
  388. package/dist/core/usage-history.d.ts +0 -81
  389. package/dist/core/usage-history.js +0 -149
  390. package/dist/core/usage-history.js.map +0 -1
  391. package/dist/core/vercel-actions.d.ts +0 -71
  392. package/dist/core/vercel-actions.js +0 -109
  393. package/dist/core/vercel-actions.js.map +0 -1
  394. package/dist/core/vercel-auth.d.ts +0 -40
  395. package/dist/core/vercel-auth.js +0 -88
  396. package/dist/core/vercel-auth.js.map +0 -1
  397. package/dist/core/vercel-context.d.ts +0 -2
  398. package/dist/core/vercel-context.js +0 -97
  399. package/dist/core/vercel-context.js.map +0 -1
  400. package/dist/core/vercel-manager.d.ts +0 -266
  401. package/dist/core/vercel-manager.js +0 -389
  402. package/dist/core/vercel-manager.js.map +0 -1
  403. package/dist/core/vercel-oauth.d.ts +0 -37
  404. package/dist/core/vercel-oauth.js +0 -51
  405. package/dist/core/vercel-oauth.js.map +0 -1
  406. package/dist/core/vercel-provider.d.ts +0 -23
  407. package/dist/core/vercel-provider.js +0 -271
  408. package/dist/core/vercel-provider.js.map +0 -1
  409. package/dist/core/vultr-actions.d.ts +0 -52
  410. package/dist/core/vultr-actions.js +0 -62
  411. package/dist/core/vultr-actions.js.map +0 -1
  412. package/dist/core/vultr-auth.d.ts +0 -32
  413. package/dist/core/vultr-auth.js +0 -54
  414. package/dist/core/vultr-auth.js.map +0 -1
  415. package/dist/core/vultr-context.d.ts +0 -2
  416. package/dist/core/vultr-context.js +0 -55
  417. package/dist/core/vultr-context.js.map +0 -1
  418. package/dist/core/vultr-manager.d.ts +0 -105
  419. package/dist/core/vultr-manager.js +0 -159
  420. package/dist/core/vultr-manager.js.map +0 -1
  421. package/dist/core/vultr-provider.d.ts +0 -69
  422. package/dist/core/vultr-provider.js +0 -224
  423. package/dist/core/vultr-provider.js.map +0 -1
  424. package/dist/core/workflow-triggers.d.ts +0 -139
  425. package/dist/core/workflow-triggers.js +0 -208
  426. package/dist/core/workflow-triggers.js.map +0 -1
  427. package/dist/core/workflows.d.ts +0 -290
  428. package/dist/core/workflows.js +0 -190
  429. package/dist/core/workflows.js.map +0 -1
  430. package/dist/index.d.ts +0 -2
  431. package/dist/index.js +0 -56
  432. package/dist/index.js.map +0 -1
  433. package/dist/mcp/server.d.ts +0 -37
  434. package/dist/mcp/server.js +0 -84
  435. package/dist/mcp/server.js.map +0 -1
  436. package/dist/mcp/tools/agent-env.d.ts +0 -9
  437. package/dist/mcp/tools/agent-env.js +0 -160
  438. package/dist/mcp/tools/agent-env.js.map +0 -1
  439. package/dist/mcp/tools/agent-profiles.d.ts +0 -9
  440. package/dist/mcp/tools/agent-profiles.js +0 -197
  441. package/dist/mcp/tools/agent-profiles.js.map +0 -1
  442. package/dist/mcp/tools/agent-registry.d.ts +0 -9
  443. package/dist/mcp/tools/agent-registry.js +0 -81
  444. package/dist/mcp/tools/agent-registry.js.map +0 -1
  445. package/dist/mcp/tools/agent.d.ts +0 -4
  446. package/dist/mcp/tools/agent.js +0 -29
  447. package/dist/mcp/tools/agent.js.map +0 -1
  448. package/dist/mcp/tools/context.d.ts +0 -36
  449. package/dist/mcp/tools/context.js +0 -69
  450. package/dist/mcp/tools/context.js.map +0 -1
  451. package/dist/mcp/tools/database.d.ts +0 -9
  452. package/dist/mcp/tools/database.js +0 -166
  453. package/dist/mcp/tools/database.js.map +0 -1
  454. package/dist/mcp/tools/docs.d.ts +0 -29
  455. package/dist/mcp/tools/docs.js +0 -125
  456. package/dist/mcp/tools/docs.js.map +0 -1
  457. package/dist/mcp/tools/errors.d.ts +0 -5
  458. package/dist/mcp/tools/errors.js +0 -40
  459. package/dist/mcp/tools/errors.js.map +0 -1
  460. package/dist/mcp/tools/git.d.ts +0 -4
  461. package/dist/mcp/tools/git.js +0 -208
  462. package/dist/mcp/tools/git.js.map +0 -1
  463. package/dist/mcp/tools/github.d.ts +0 -4
  464. package/dist/mcp/tools/github.js +0 -196
  465. package/dist/mcp/tools/github.js.map +0 -1
  466. package/dist/mcp/tools/index.d.ts +0 -20
  467. package/dist/mcp/tools/index.js +0 -60
  468. package/dist/mcp/tools/index.js.map +0 -1
  469. package/dist/mcp/tools/onboard.d.ts +0 -10
  470. package/dist/mcp/tools/onboard.js +0 -30
  471. package/dist/mcp/tools/onboard.js.map +0 -1
  472. package/dist/mcp/tools/provider.d.ts +0 -16
  473. package/dist/mcp/tools/provider.js +0 -110
  474. package/dist/mcp/tools/provider.js.map +0 -1
  475. package/dist/mcp/tools/services.d.ts +0 -11
  476. package/dist/mcp/tools/services.js +0 -200
  477. package/dist/mcp/tools/services.js.map +0 -1
  478. package/dist/mcp/tools/snapshots.d.ts +0 -8
  479. package/dist/mcp/tools/snapshots.js +0 -37
  480. package/dist/mcp/tools/snapshots.js.map +0 -1
  481. package/dist/mcp/tools/terminal.d.ts +0 -4
  482. package/dist/mcp/tools/terminal.js +0 -38
  483. package/dist/mcp/tools/terminal.js.map +0 -1
  484. package/dist/tui/app.d.ts +0 -22
  485. package/dist/tui/app.js +0 -138
  486. package/dist/tui/app.js.map +0 -1
  487. package/dist/web/agent-info.d.ts +0 -82
  488. package/dist/web/agent-info.js +0 -775
  489. package/dist/web/agent-info.js.map +0 -1
  490. package/dist/web/client/assets/SymbolsNerdFontMono-Regular-DDncdh2F.ttf +0 -0
  491. package/dist/web/client/assets/code-editor-B2_SPkzS.js +0 -30
  492. package/dist/web/client/assets/context-graph-DVrWyUaG.js +0 -7
  493. package/dist/web/client/assets/core-DhEqZVGG.js +0 -1
  494. package/dist/web/client/assets/event-BK_86lmQ.js +0 -1
  495. package/dist/web/client/assets/index-BhDAhmA1.js +0 -1
  496. package/dist/web/client/assets/index-DIspyq1R.js +0 -352
  497. package/dist/web/client/assets/index-DT9Uq0bE.css +0 -1
  498. package/dist/web/client/assets/nomoreide-favicon-Ds7Tgj9p.svg +0 -24
  499. package/dist/web/client/assets/system-process-table-CWZIisGo.js +0 -1
  500. package/dist/web/client/assets/window-DlR023_X.js +0 -1
  501. package/dist/web/client/index.html +0 -44
  502. package/dist/web/dashboard.d.ts +0 -61
  503. package/dist/web/dashboard.js +0 -221
  504. package/dist/web/dashboard.js.map +0 -1
  505. package/dist/web/directories.d.ts +0 -27
  506. package/dist/web/directories.js +0 -81
  507. package/dist/web/directories.js.map +0 -1
  508. package/dist/web/http-utils.d.ts +0 -13
  509. package/dist/web/http-utils.js +0 -72
  510. package/dist/web/http-utils.js.map +0 -1
  511. package/dist/web/routes/agent-chat-routes.d.ts +0 -3
  512. package/dist/web/routes/agent-chat-routes.js +0 -186
  513. package/dist/web/routes/agent-chat-routes.js.map +0 -1
  514. package/dist/web/routes/agent-env-routes.d.ts +0 -9
  515. package/dist/web/routes/agent-env-routes.js +0 -86
  516. package/dist/web/routes/agent-env-routes.js.map +0 -1
  517. package/dist/web/routes/agent-profile-routes.d.ts +0 -8
  518. package/dist/web/routes/agent-profile-routes.js +0 -211
  519. package/dist/web/routes/agent-profile-routes.js.map +0 -1
  520. package/dist/web/routes/agent-registry-routes.d.ts +0 -2
  521. package/dist/web/routes/agent-registry-routes.js +0 -361
  522. package/dist/web/routes/agent-registry-routes.js.map +0 -1
  523. package/dist/web/routes/agent-routes.d.ts +0 -3
  524. package/dist/web/routes/agent-routes.js +0 -73
  525. package/dist/web/routes/agent-routes.js.map +0 -1
  526. package/dist/web/routes/agent-settings-routes.d.ts +0 -8
  527. package/dist/web/routes/agent-settings-routes.js +0 -67
  528. package/dist/web/routes/agent-settings-routes.js.map +0 -1
  529. package/dist/web/routes/context-library-routes.d.ts +0 -2
  530. package/dist/web/routes/context-library-routes.js +0 -139
  531. package/dist/web/routes/context-library-routes.js.map +0 -1
  532. package/dist/web/routes/context.d.ts +0 -73
  533. package/dist/web/routes/context.js +0 -48
  534. package/dist/web/routes/context.js.map +0 -1
  535. package/dist/web/routes/dashboard-routes.d.ts +0 -3
  536. package/dist/web/routes/dashboard-routes.js +0 -47
  537. package/dist/web/routes/dashboard-routes.js.map +0 -1
  538. package/dist/web/routes/database-routes.d.ts +0 -3
  539. package/dist/web/routes/database-routes.js +0 -341
  540. package/dist/web/routes/database-routes.js.map +0 -1
  541. package/dist/web/routes/docker-routes.d.ts +0 -7
  542. package/dist/web/routes/docker-routes.js +0 -122
  543. package/dist/web/routes/docker-routes.js.map +0 -1
  544. package/dist/web/routes/errors-routes.d.ts +0 -3
  545. package/dist/web/routes/errors-routes.js +0 -77
  546. package/dist/web/routes/errors-routes.js.map +0 -1
  547. package/dist/web/routes/extensions-routes.d.ts +0 -14
  548. package/dist/web/routes/extensions-routes.js +0 -21
  549. package/dist/web/routes/extensions-routes.js.map +0 -1
  550. package/dist/web/routes/git-routes.d.ts +0 -3
  551. package/dist/web/routes/git-routes.js +0 -598
  552. package/dist/web/routes/git-routes.js.map +0 -1
  553. package/dist/web/routes/github-context.d.ts +0 -11
  554. package/dist/web/routes/github-context.js +0 -34
  555. package/dist/web/routes/github-context.js.map +0 -1
  556. package/dist/web/routes/github-routes.d.ts +0 -2
  557. package/dist/web/routes/github-routes.js +0 -699
  558. package/dist/web/routes/github-routes.js.map +0 -1
  559. package/dist/web/routes/host-routes.d.ts +0 -2
  560. package/dist/web/routes/host-routes.js +0 -188
  561. package/dist/web/routes/host-routes.js.map +0 -1
  562. package/dist/web/routes/index.d.ts +0 -10
  563. package/dist/web/routes/index.js +0 -72
  564. package/dist/web/routes/index.js.map +0 -1
  565. package/dist/web/routes/jetbrains-import-routes.d.ts +0 -2
  566. package/dist/web/routes/jetbrains-import-routes.js +0 -121
  567. package/dist/web/routes/jetbrains-import-routes.js.map +0 -1
  568. package/dist/web/routes/log-sources-routes.d.ts +0 -6
  569. package/dist/web/routes/log-sources-routes.js +0 -102
  570. package/dist/web/routes/log-sources-routes.js.map +0 -1
  571. package/dist/web/routes/metrics-routes.d.ts +0 -3
  572. package/dist/web/routes/metrics-routes.js +0 -60
  573. package/dist/web/routes/metrics-routes.js.map +0 -1
  574. package/dist/web/routes/onboard-routes.d.ts +0 -9
  575. package/dist/web/routes/onboard-routes.js +0 -146
  576. package/dist/web/routes/onboard-routes.js.map +0 -1
  577. package/dist/web/routes/overview-routes.d.ts +0 -2
  578. package/dist/web/routes/overview-routes.js +0 -36
  579. package/dist/web/routes/overview-routes.js.map +0 -1
  580. package/dist/web/routes/provider-routes.d.ts +0 -2
  581. package/dist/web/routes/provider-routes.js +0 -558
  582. package/dist/web/routes/provider-routes.js.map +0 -1
  583. package/dist/web/routes/service-routes.d.ts +0 -3
  584. package/dist/web/routes/service-routes.js +0 -511
  585. package/dist/web/routes/service-routes.js.map +0 -1
  586. package/dist/web/routes/settings-routes.d.ts +0 -2
  587. package/dist/web/routes/settings-routes.js +0 -151
  588. package/dist/web/routes/settings-routes.js.map +0 -1
  589. package/dist/web/routes/shell-routes.d.ts +0 -22
  590. package/dist/web/routes/shell-routes.js +0 -75
  591. package/dist/web/routes/shell-routes.js.map +0 -1
  592. package/dist/web/routes/skills-routes.d.ts +0 -2
  593. package/dist/web/routes/skills-routes.js +0 -49
  594. package/dist/web/routes/skills-routes.js.map +0 -1
  595. package/dist/web/routes/snapshot-routes.d.ts +0 -8
  596. package/dist/web/routes/snapshot-routes.js +0 -194
  597. package/dist/web/routes/snapshot-routes.js.map +0 -1
  598. package/dist/web/routes/ssh-server-routes.d.ts +0 -10
  599. package/dist/web/routes/ssh-server-routes.js +0 -163
  600. package/dist/web/routes/ssh-server-routes.js.map +0 -1
  601. package/dist/web/routes/terminal-routes.d.ts +0 -7
  602. package/dist/web/routes/terminal-routes.js +0 -313
  603. package/dist/web/routes/terminal-routes.js.map +0 -1
  604. package/dist/web/routes/workflow-routes.d.ts +0 -8
  605. package/dist/web/routes/workflow-routes.js +0 -45
  606. package/dist/web/routes/workflow-routes.js.map +0 -1
  607. package/dist/web/routes/workflow-trigger-routes.d.ts +0 -9
  608. package/dist/web/routes/workflow-trigger-routes.js +0 -78
  609. package/dist/web/routes/workflow-trigger-routes.js.map +0 -1
  610. package/dist/web/server.d.ts +0 -31
  611. package/dist/web/server.js +0 -325
  612. package/dist/web/server.js.map +0 -1
  613. package/dist/web/service-tester.d.ts +0 -16
  614. package/dist/web/service-tester.js +0 -107
  615. package/dist/web/service-tester.js.map +0 -1
  616. package/dist/web/static-assets.d.ts +0 -3
  617. package/dist/web/static-assets.js +0 -64
  618. package/dist/web/static-assets.js.map +0 -1
  619. package/dist/web/usage-info.d.ts +0 -56
  620. package/dist/web/usage-info.js +0 -265
  621. package/dist/web/usage-info.js.map +0 -1
@@ -1,151 +0,0 @@
1
- import type { DatabaseEngine } from "../types.js";
2
- import type { DatabaseCapabilities, DatabaseObject, DatabaseObjectDetails, DatabaseObjectKind, DatabaseSchema } from "./catalog.js";
3
- /** A table the user can browse. `schema` is undefined for SQLite. */
4
- export interface TableRef {
5
- schema?: string;
6
- name: string;
7
- /** Stable key used by the API/UI, e.g. "public.users" or "users". */
8
- qualifiedName: string;
9
- }
10
- export interface ColumnInfo {
11
- name: string;
12
- dataType: string;
13
- nullable: boolean;
14
- primaryKey: boolean;
15
- }
16
- export interface RowSample {
17
- columns: ColumnInfo[];
18
- rows: Array<Record<string, unknown>>;
19
- /** Number of rows returned (≤ requested limit). */
20
- rowCount: number;
21
- /** The page window actually applied, echoed back so the UI can paginate. */
22
- limit: number;
23
- offset: number;
24
- }
25
- export type RowFilterOperator = "eq" | "neq" | "contains" | "startsWith" | "endsWith" | "gt" | "gte" | "lt" | "lte" | "isNull" | "isNotNull";
26
- export interface RowFilter {
27
- column: string;
28
- operator: RowFilterOperator;
29
- value?: string;
30
- }
31
- export interface RowSort {
32
- column: string;
33
- direction: "asc" | "desc";
34
- }
35
- export interface RowBrowseQuery {
36
- filters?: RowFilter[];
37
- sort?: RowSort;
38
- }
39
- export interface StreamRowsOptions {
40
- batchSize?: number;
41
- signal?: AbortSignal;
42
- }
43
- /** Result of running a user-authored read-only query through the SQL console. */
44
- export interface QueryResult {
45
- columns: ColumnInfo[];
46
- rows: Array<Record<string, unknown>>;
47
- /** Number of rows returned (≤ the row cap). */
48
- rowCount: number;
49
- /** True when the query produced more rows than the cap; the UI flags it. */
50
- truncated: boolean;
51
- }
52
- /**
53
- * Read-only access to a single database. Implementations enforce read-only at
54
- * the connection/transaction level: `runQuery` accepts user SQL but the server
55
- * itself rejects any write — there is no write passthrough.
56
- */
57
- export interface DbDriver {
58
- readonly engine: DatabaseEngine;
59
- /** Throws if the connection cannot be established. */
60
- testConnection(): Promise<void>;
61
- listTables(): Promise<TableRef[]>;
62
- capabilities(): DatabaseCapabilities;
63
- listSchemas(): Promise<DatabaseSchema[]>;
64
- listObjects(schema: string, kinds?: DatabaseObjectKind[]): Promise<DatabaseObject[]>;
65
- describeObject(object: DatabaseObject): Promise<DatabaseObjectDetails>;
66
- sampleRows(table: TableRef, limit: number, offset?: number, query?: RowBrowseQuery): Promise<RowSample>;
67
- /** Stream a stable read-only snapshot in bounded batches. */
68
- streamRows(table: TableRef, columns: ColumnInfo[], options?: StreamRowsOptions): AsyncIterable<Array<Record<string, unknown>>>;
69
- /** Run an arbitrary SELECT-style statement in a read-only context. */
70
- runQuery(sql: string, maxRows: number): Promise<QueryResult>;
71
- close(): Promise<void>;
72
- }
73
- /** Outcome of a write run — previewed (rolled back) or committed. */
74
- export interface WriteResult {
75
- /** Rows the statement affected (INSERT/UPDATE/DELETE) or returned (SELECT). */
76
- affectedRows: number;
77
- /** Rows produced by a SELECT or RETURNING clause, if any. */
78
- rows: Array<Record<string, unknown>>;
79
- columns: ColumnInfo[];
80
- /** True when committed; false when this was a rolled-back preview. */
81
- committed: boolean;
82
- }
83
- /**
84
- * Write-capable view of a database, deliberately separate from `DbDriver` so a
85
- * read-only consumer can never reach a write. A writable connection is only
86
- * ever constructed by the `DbWrite` module, behind a per-connection unlock.
87
- */
88
- export type PrimaryKeyValue = string | number | boolean;
89
- export type PrimaryKeyTuple = Record<string, PrimaryKeyValue>;
90
- export interface DeleteRowsOptions {
91
- table: TableRef;
92
- primaryKeys: string[];
93
- tuples: PrimaryKeyTuple[];
94
- commit: boolean;
95
- /** When supplied for a commit, a mismatch must roll the transaction back. */
96
- expectedAffectedRows?: number;
97
- }
98
- export interface DbWriteDriver extends DbDriver {
99
- /**
100
- * Run a statement inside a read-write transaction. When `commit` is false the
101
- * transaction is rolled back, so the caller can preview affected rows without
102
- * persisting anything.
103
- */
104
- executeWrite(sql: string, commit: boolean): Promise<WriteResult>;
105
- /** Delete exact primary-key tuples using bound values in one transaction. */
106
- deleteRows(options: DeleteRowsOptions): Promise<WriteResult>;
107
- }
108
- /** Throw inside the active transaction when a guarded commit changed unexpectedly. */
109
- export declare function assertExpectedDeleteCount(options: DeleteRowsOptions, affectedRows: number): void;
110
- /** Defence in depth: a catalog-sourced identifier must still be well-formed. */
111
- export declare function assertSafeIdentifier(value: string): string;
112
- /** Clamp a caller-supplied row limit into a sane range. */
113
- export declare function clampLimit(limit: number | undefined, fallback?: number): number;
114
- /** Clamp a caller-supplied page offset to a non-negative integer. */
115
- export declare function clampOffset(offset: number | undefined): number;
116
- /** Validate browser query controls against columns read from the live catalog. */
117
- export declare function normalizeRowBrowseQuery(columns: ColumnInfo[], query: RowBrowseQuery | undefined): RowBrowseQuery;
118
- /** Build a parameterized WHERE/ORDER BY fragment shared by all Node drivers. */
119
- export declare function buildRowBrowseClauses(columns: ColumnInfo[], query: RowBrowseQuery | undefined, quoteIdentifier: (value: string) => string, placeholder: (index: number) => string): {
120
- whereSql: string;
121
- orderBySql: string;
122
- values: string[];
123
- };
124
- /**
125
- * Normalize user SQL before we wrap it in a row-capping subquery: trim and drop
126
- * a single trailing semicolon. Drivers run the result inside a read-only
127
- * transaction, so a write would be rejected server-side regardless.
128
- */
129
- export declare function prepareUserQuery(sql: string): string;
130
- /** The leading keyword of a statement, lowercased (e.g. "select", "delete"). */
131
- export declare function leadingKeyword(sql: string): string;
132
- /** True for plain read statements; anything else is treated as a write. */
133
- export declare function isReadStatement(sql: string): boolean;
134
- /**
135
- * Whether a write can be safely previewed by running it in a transaction and
136
- * rolling back. True everywhere except MySQL DDL, which auto-commits — there a
137
- * "preview" would actually apply the change, so we refuse to dry-run it.
138
- */
139
- export declare function canPreviewWrite(engine: DatabaseEngine, sql: string): boolean;
140
- /**
141
- * Query results carry no catalog metadata, so synthesize ColumnInfo from the
142
- * result's field names — preserving order even when zero rows come back.
143
- */
144
- export declare function columnsFromNames(names: string[]): ColumnInfo[];
145
- /**
146
- * Drivers select `*` and return whatever the row shapes are. JSON.stringify
147
- * can't serialize Buffers/BigInts/Dates cleanly, so normalize to display-safe
148
- * primitives before they leave the core layer.
149
- */
150
- export declare function normalizeCell(value: unknown): unknown;
151
- export declare function normalizeRow(row: Record<string, unknown>): Record<string, unknown>;
@@ -1,209 +0,0 @@
1
- /** Throw inside the active transaction when a guarded commit changed unexpectedly. */
2
- export function assertExpectedDeleteCount(options, affectedRows) {
3
- if (options.commit &&
4
- options.expectedAffectedRows !== undefined &&
5
- affectedRows !== options.expectedAffectedRows) {
6
- throw new Error(`Delete affected ${affectedRows} rows; expected ${options.expectedAffectedRows}. The transaction was rolled back.`);
7
- }
8
- }
9
- /** Identifiers we accept after resolving against the live catalog. */
10
- const SAFE_IDENTIFIER = /^[A-Za-z0-9_$]+$/;
11
- /** Defence in depth: a catalog-sourced identifier must still be well-formed. */
12
- export function assertSafeIdentifier(value) {
13
- if (!SAFE_IDENTIFIER.test(value)) {
14
- throw new Error(`Unsafe identifier: ${value}`);
15
- }
16
- return value;
17
- }
18
- /** Clamp a caller-supplied row limit into a sane range. */
19
- export function clampLimit(limit, fallback = 100) {
20
- if (!Number.isFinite(limit) || limit === undefined)
21
- return fallback;
22
- return Math.min(Math.max(Math.trunc(limit), 1), 5_000);
23
- }
24
- /** Clamp a caller-supplied page offset to a non-negative integer. */
25
- export function clampOffset(offset) {
26
- if (!Number.isFinite(offset) || offset === undefined)
27
- return 0;
28
- return Math.max(Math.trunc(offset), 0);
29
- }
30
- const ROW_FILTER_OPERATORS = new Set([
31
- "eq",
32
- "neq",
33
- "contains",
34
- "startsWith",
35
- "endsWith",
36
- "gt",
37
- "gte",
38
- "lt",
39
- "lte",
40
- "isNull",
41
- "isNotNull",
42
- ]);
43
- /** Validate browser query controls against columns read from the live catalog. */
44
- export function normalizeRowBrowseQuery(columns, query) {
45
- const columnNames = new Set(columns.map((column) => column.name));
46
- const filters = query?.filters ?? [];
47
- if (filters.length > 8)
48
- throw new Error("A maximum of 8 row filters is supported.");
49
- const normalizedFilters = filters.map((filter) => {
50
- if (!columnNames.has(filter.column)) {
51
- throw new Error(`Unknown filter column: ${filter.column}`);
52
- }
53
- if (!ROW_FILTER_OPERATORS.has(filter.operator)) {
54
- throw new Error(`Unsupported row filter operator: ${filter.operator}`);
55
- }
56
- const unary = filter.operator === "isNull" || filter.operator === "isNotNull";
57
- const value = unary ? undefined : filter.value;
58
- if (!unary && value === undefined)
59
- throw new Error("This row filter requires a value.");
60
- if (value !== undefined && value.length > 2_000) {
61
- throw new Error("Row filter values must be 2,000 characters or fewer.");
62
- }
63
- return { column: filter.column, operator: filter.operator, value };
64
- });
65
- const sort = query?.sort;
66
- if (sort && !columnNames.has(sort.column)) {
67
- throw new Error(`Unknown sort column: ${sort.column}`);
68
- }
69
- if (sort && sort.direction !== "asc" && sort.direction !== "desc") {
70
- throw new Error("Sort direction must be asc or desc.");
71
- }
72
- return { filters: normalizedFilters, sort };
73
- }
74
- /** Build a parameterized WHERE/ORDER BY fragment shared by all Node drivers. */
75
- export function buildRowBrowseClauses(columns, query, quoteIdentifier, placeholder) {
76
- const normalized = normalizeRowBrowseQuery(columns, query);
77
- const values = [];
78
- const filters = (normalized.filters ?? []).map((filter) => {
79
- const column = quoteIdentifier(filter.column);
80
- if (filter.operator === "isNull")
81
- return `${column} IS NULL`;
82
- if (filter.operator === "isNotNull")
83
- return `${column} IS NOT NULL`;
84
- let value = filter.value ?? "";
85
- let operator = "=";
86
- if (filter.operator === "neq")
87
- operator = "<>";
88
- else if (filter.operator === "gt")
89
- operator = ">";
90
- else if (filter.operator === "gte")
91
- operator = ">=";
92
- else if (filter.operator === "lt")
93
- operator = "<";
94
- else if (filter.operator === "lte")
95
- operator = "<=";
96
- else if (["contains", "startsWith", "endsWith"].includes(filter.operator)) {
97
- value = value.replaceAll("!", "!!").replaceAll("%", "!%").replaceAll("_", "!_");
98
- if (filter.operator !== "startsWith")
99
- value = `%${value}`;
100
- if (filter.operator !== "endsWith")
101
- value = `${value}%`;
102
- operator = "LIKE";
103
- }
104
- values.push(value);
105
- const likeEscape = operator === "LIKE" ? " ESCAPE '!'" : "";
106
- return `${column} ${operator} ${placeholder(values.length)}${likeEscape}`;
107
- });
108
- const orderColumns = [];
109
- if (normalized.sort)
110
- orderColumns.push(normalized.sort);
111
- for (const column of columns.filter((candidate) => candidate.primaryKey)) {
112
- if (column.name !== normalized.sort?.column) {
113
- orderColumns.push({ column: column.name, direction: "asc" });
114
- }
115
- }
116
- return {
117
- whereSql: filters.length > 0 ? ` WHERE ${filters.join(" AND ")}` : "",
118
- orderBySql: orderColumns.length > 0
119
- ? ` ORDER BY ${orderColumns.map((sort) => `${quoteIdentifier(sort.column)} ${sort.direction.toUpperCase()}`).join(", ")}`
120
- : "",
121
- values,
122
- };
123
- }
124
- /**
125
- * Normalize user SQL before we wrap it in a row-capping subquery: trim and drop
126
- * a single trailing semicolon. Drivers run the result inside a read-only
127
- * transaction, so a write would be rejected server-side regardless.
128
- */
129
- export function prepareUserQuery(sql) {
130
- const trimmed = sql.trim().replace(/;\s*$/, "").trim();
131
- if (!trimmed)
132
- throw new Error("Query is empty.");
133
- return trimmed;
134
- }
135
- /** The leading keyword of a statement, lowercased (e.g. "select", "delete"). */
136
- export function leadingKeyword(sql) {
137
- return /^\s*([a-z]+)/i.exec(sql)?.[1]?.toLowerCase() ?? "";
138
- }
139
- /** Statements we treat as reads — routed through the read-only query path. */
140
- const READ_KEYWORDS = new Set([
141
- "select",
142
- "show",
143
- "explain",
144
- "pragma",
145
- "describe",
146
- "desc",
147
- ]);
148
- /** True for plain read statements; anything else is treated as a write. */
149
- export function isReadStatement(sql) {
150
- return READ_KEYWORDS.has(leadingKeyword(sql));
151
- }
152
- /** DDL implicitly commits on MySQL, so a rolled-back preview can't be trusted. */
153
- const DDL_KEYWORDS = new Set([
154
- "create",
155
- "alter",
156
- "drop",
157
- "truncate",
158
- "rename",
159
- "grant",
160
- "revoke",
161
- ]);
162
- /**
163
- * Whether a write can be safely previewed by running it in a transaction and
164
- * rolling back. True everywhere except MySQL DDL, which auto-commits — there a
165
- * "preview" would actually apply the change, so we refuse to dry-run it.
166
- */
167
- export function canPreviewWrite(engine, sql) {
168
- if (engine === "mysql" && DDL_KEYWORDS.has(leadingKeyword(sql)))
169
- return false;
170
- return true;
171
- }
172
- /**
173
- * Query results carry no catalog metadata, so synthesize ColumnInfo from the
174
- * result's field names — preserving order even when zero rows come back.
175
- */
176
- export function columnsFromNames(names) {
177
- return names.map((name) => ({
178
- name,
179
- dataType: "",
180
- nullable: true,
181
- primaryKey: false,
182
- }));
183
- }
184
- /**
185
- * Drivers select `*` and return whatever the row shapes are. JSON.stringify
186
- * can't serialize Buffers/BigInts/Dates cleanly, so normalize to display-safe
187
- * primitives before they leave the core layer.
188
- */
189
- export function normalizeCell(value) {
190
- if (value === null || value === undefined)
191
- return null;
192
- if (typeof value === "bigint")
193
- return value.toString();
194
- if (value instanceof Date)
195
- return value.toISOString();
196
- if (Buffer.isBuffer(value))
197
- return `\\x${value.toString("hex")}`;
198
- if (typeof value === "object")
199
- return value; // arrays / json columns
200
- return value;
201
- }
202
- export function normalizeRow(row) {
203
- const out = {};
204
- for (const [key, value] of Object.entries(row)) {
205
- out[key] = normalizeCell(value);
206
- }
207
- return out;
208
- }
209
- //# sourceMappingURL=driver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/core/db/driver.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import type { ColumnInfo } from "./driver.js";
2
- export type DatabaseExportFormat = "csv" | "json";
3
- export interface DatabaseExportWriter {
4
- write(chunk: string): Promise<void>;
5
- }
6
- export interface DatabaseExportProgress {
7
- rowsWritten: number;
8
- bytesWritten: number;
9
- }
10
- export interface DatabaseExportSummary extends DatabaseExportProgress {
11
- maskedColumns: string[];
12
- }
13
- export declare function writeDatabaseExport(writer: DatabaseExportWriter, format: DatabaseExportFormat, columns: ColumnInfo[], batches: AsyncIterable<Array<Record<string, unknown>>>, options?: {
14
- signal?: AbortSignal;
15
- onProgress?: (progress: DatabaseExportProgress) => void;
16
- }): Promise<DatabaseExportSummary>;
17
- export declare function csvCell(value: unknown): string;
@@ -1,67 +0,0 @@
1
- import { isSensitiveDatabaseColumn, maskDatabaseRow } from "./data-masking.js";
2
- export async function writeDatabaseExport(writer, format, columns, batches, options = {}) {
3
- const names = columns.map((column) => column.name);
4
- const maskedColumns = names.filter(isSensitiveDatabaseColumn);
5
- let rowsWritten = 0;
6
- let bytesWritten = 0;
7
- let firstJsonRow = true;
8
- async function write(chunk) {
9
- throwIfAborted(options.signal);
10
- await writer.write(chunk);
11
- bytesWritten += Buffer.byteLength(chunk);
12
- }
13
- if (format === "csv")
14
- await write(`${names.map(csvCell).join(",")}\r\n`);
15
- else
16
- await write("[");
17
- for await (const batch of batches) {
18
- for (const rawRow of batch) {
19
- throwIfAborted(options.signal);
20
- const row = maskDatabaseRow(rawRow);
21
- if (format === "csv") {
22
- await write(`${names.map((name) => csvCell(row[name])).join(",")}\r\n`);
23
- }
24
- else {
25
- const normalized = Object.fromEntries(names.map((name) => [name, stableValue(row[name] ?? null)]));
26
- await write(`${firstJsonRow ? "" : ","}${JSON.stringify(normalized)}`);
27
- firstJsonRow = false;
28
- }
29
- rowsWritten += 1;
30
- options.onProgress?.({ rowsWritten, bytesWritten });
31
- }
32
- }
33
- if (format === "json")
34
- await write("]\n");
35
- return { rowsWritten, bytesWritten, maskedColumns };
36
- }
37
- export function csvCell(value) {
38
- let text = exportScalar(value);
39
- if (typeof value === "string" && /^[\t\r]|^\s*[=+\-@]/.test(text))
40
- text = `'${text}`;
41
- return /[",\r\n]/.test(text) ? `"${text.replaceAll('"', '""')}"` : text;
42
- }
43
- function exportScalar(value) {
44
- if (value === null || value === undefined)
45
- return "";
46
- if (typeof value === "object")
47
- return stableStringify(value);
48
- return String(value);
49
- }
50
- function stableStringify(value) {
51
- return JSON.stringify(stableValue(value));
52
- }
53
- function stableValue(value) {
54
- if (Array.isArray(value))
55
- return value.map(stableValue);
56
- if (value && typeof value === "object") {
57
- return Object.fromEntries(Object.entries(value)
58
- .sort(([left], [right]) => left.localeCompare(right))
59
- .map(([key, entry]) => [key, stableValue(entry)]));
60
- }
61
- return value;
62
- }
63
- function throwIfAborted(signal) {
64
- if (signal?.aborted)
65
- throw new DOMException("Database export cancelled", "AbortError");
66
- }
67
- //# sourceMappingURL=export.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/core/db/export.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import type { DatabaseEngine } from "../types.js";
2
- import { type DatabaseCapabilities, type DatabaseObject, type DatabaseObjectDetails, type DatabaseObjectKind, type DatabaseSchema } from "./catalog.js";
3
- import { type ColumnInfo, type DeleteRowsOptions, type DbDriver, type DbWriteDriver, type QueryResult, type RowBrowseQuery, type RowSample, type StreamRowsOptions, type TableRef, type WriteResult } from "./driver.js";
4
- /**
5
- * MySQL / MariaDB driver. Read operations run in a `START TRANSACTION READ
6
- * ONLY` block, then roll back. A driver constructed with `{ writable: true }`
7
- * (only the DbWrite module does this) exposes the guarded `executeWrite` path.
8
- */
9
- export declare class MysqlDriver implements DbDriver, DbWriteDriver {
10
- private readonly url;
11
- readonly engine: DatabaseEngine;
12
- private poolPromise;
13
- private readonly writable;
14
- constructor(url: string, options?: {
15
- writable?: boolean;
16
- });
17
- private pool;
18
- private withReadOnly;
19
- testConnection(): Promise<void>;
20
- listTables(): Promise<TableRef[]>;
21
- capabilities(): DatabaseCapabilities;
22
- listSchemas(): Promise<DatabaseSchema[]>;
23
- listObjects(schema: string, kinds?: DatabaseObjectKind[]): Promise<DatabaseObject[]>;
24
- describeObject(object: DatabaseObject): Promise<DatabaseObjectDetails>;
25
- private createScriptFor;
26
- sampleRows(table: TableRef, limit: number, offset?: number, query?: RowBrowseQuery): Promise<RowSample>;
27
- streamRows(table: TableRef, columns: ColumnInfo[], options?: StreamRowsOptions): AsyncIterable<Array<Record<string, unknown>>>;
28
- runQuery(sql: string, maxRows: number): Promise<QueryResult>;
29
- executeWrite(sql: string, commit: boolean): Promise<WriteResult>;
30
- deleteRows(options: DeleteRowsOptions): Promise<WriteResult>;
31
- private columnsFor;
32
- close(): Promise<void>;
33
- }