nomoreide 0.2.0 → 0.3.2

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 (624) hide show
  1. package/README.md +12 -9
  2. package/bin/nomoreide.js +82 -0
  3. package/package.json +24 -132
  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 -359
  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 -258
  149. package/dist/core/cloudflare-manager.js +0 -414
  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 -348
  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 -84
  167. package/dist/core/daemon-client.js +0 -156
  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 -230
  254. package/dist/core/github-manager.js +0 -324
  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/api-base.d.ts +0 -24
  296. package/dist/core/providers/api-base.js +0 -44
  297. package/dist/core/providers/api-base.js.map +0 -1
  298. package/dist/core/providers/credentials.d.ts +0 -93
  299. package/dist/core/providers/credentials.js +0 -88
  300. package/dist/core/providers/credentials.js.map +0 -1
  301. package/dist/core/providers/deploy-provider.d.ts +0 -327
  302. package/dist/core/providers/deploy-provider.js +0 -25
  303. package/dist/core/providers/deploy-provider.js.map +0 -1
  304. package/dist/core/providers/egress.d.ts +0 -58
  305. package/dist/core/providers/egress.js +0 -124
  306. package/dist/core/providers/egress.js.map +0 -1
  307. package/dist/core/providers/host-bridge.d.ts +0 -20
  308. package/dist/core/providers/host-bridge.js +0 -57
  309. package/dist/core/providers/host-bridge.js.map +0 -1
  310. package/dist/core/providers/host-provider.d.ts +0 -160
  311. package/dist/core/providers/host-provider.js +0 -2
  312. package/dist/core/providers/host-provider.js.map +0 -1
  313. package/dist/core/providers/oauth.d.ts +0 -97
  314. package/dist/core/providers/oauth.js +0 -238
  315. package/dist/core/providers/oauth.js.map +0 -1
  316. package/dist/core/providers/project-resolution.d.ts +0 -81
  317. package/dist/core/providers/project-resolution.js +0 -101
  318. package/dist/core/providers/project-resolution.js.map +0 -1
  319. package/dist/core/providers/registry.d.ts +0 -73
  320. package/dist/core/providers/registry.js +0 -53
  321. package/dist/core/providers/registry.js.map +0 -1
  322. package/dist/core/providers/strings.d.ts +0 -95
  323. package/dist/core/providers/strings.js +0 -59
  324. package/dist/core/providers/strings.js.map +0 -1
  325. package/dist/core/public-config.d.ts +0 -18
  326. package/dist/core/public-config.js +0 -76
  327. package/dist/core/public-config.js.map +0 -1
  328. package/dist/core/read-only-files.d.ts +0 -28
  329. package/dist/core/read-only-files.js +0 -93
  330. package/dist/core/read-only-files.js.map +0 -1
  331. package/dist/core/repo-create.d.ts +0 -11
  332. package/dist/core/repo-create.js +0 -54
  333. package/dist/core/repo-create.js.map +0 -1
  334. package/dist/core/repo-match.d.ts +0 -12
  335. package/dist/core/repo-match.js +0 -40
  336. package/dist/core/repo-match.js.map +0 -1
  337. package/dist/core/repo-onboard.d.ts +0 -297
  338. package/dist/core/repo-onboard.js +0 -667
  339. package/dist/core/repo-onboard.js.map +0 -1
  340. package/dist/core/repro-bundle.d.ts +0 -30
  341. package/dist/core/repro-bundle.js +0 -116
  342. package/dist/core/repro-bundle.js.map +0 -1
  343. package/dist/core/service-graph.d.ts +0 -50
  344. package/dist/core/service-graph.js +0 -143
  345. package/dist/core/service-graph.js.map +0 -1
  346. package/dist/core/service-health.d.ts +0 -10
  347. package/dist/core/service-health.js +0 -46
  348. package/dist/core/service-health.js.map +0 -1
  349. package/dist/core/service-log-source.d.ts +0 -9
  350. package/dist/core/service-log-source.js +0 -49
  351. package/dist/core/service-log-source.js.map +0 -1
  352. package/dist/core/service-registry.d.ts +0 -52
  353. package/dist/core/service-registry.js +0 -101
  354. package/dist/core/service-registry.js.map +0 -1
  355. package/dist/core/snapshot-manager.d.ts +0 -62
  356. package/dist/core/snapshot-manager.js +0 -219
  357. package/dist/core/snapshot-manager.js.map +0 -1
  358. package/dist/core/ssh-servers.d.ts +0 -89
  359. package/dist/core/ssh-servers.js +0 -251
  360. package/dist/core/ssh-servers.js.map +0 -1
  361. package/dist/core/ssh-service-runner.d.ts +0 -7
  362. package/dist/core/ssh-service-runner.js +0 -36
  363. package/dist/core/ssh-service-runner.js.map +0 -1
  364. package/dist/core/ssh-setup.d.ts +0 -11
  365. package/dist/core/ssh-setup.js +0 -49
  366. package/dist/core/ssh-setup.js.map +0 -1
  367. package/dist/core/system-processes.d.ts +0 -29
  368. package/dist/core/system-processes.js +0 -119
  369. package/dist/core/system-processes.js.map +0 -1
  370. package/dist/core/terminal-manager.d.ts +0 -123
  371. package/dist/core/terminal-manager.js +0 -470
  372. package/dist/core/terminal-manager.js.map +0 -1
  373. package/dist/core/terminal-session.d.ts +0 -122
  374. package/dist/core/terminal-session.js +0 -242
  375. package/dist/core/terminal-session.js.map +0 -1
  376. package/dist/core/terminal-spawn.d.ts +0 -26
  377. package/dist/core/terminal-spawn.js +0 -63
  378. package/dist/core/terminal-spawn.js.map +0 -1
  379. package/dist/core/test-runner.d.ts +0 -69
  380. package/dist/core/test-runner.js +0 -199
  381. package/dist/core/test-runner.js.map +0 -1
  382. package/dist/core/timeline-store.d.ts +0 -20
  383. package/dist/core/timeline-store.js +0 -36
  384. package/dist/core/timeline-store.js.map +0 -1
  385. package/dist/core/tool-call-store.d.ts +0 -25
  386. package/dist/core/tool-call-store.js +0 -62
  387. package/dist/core/tool-call-store.js.map +0 -1
  388. package/dist/core/types.d.ts +0 -312
  389. package/dist/core/types.js +0 -2
  390. package/dist/core/types.js.map +0 -1
  391. package/dist/core/usage-history.d.ts +0 -81
  392. package/dist/core/usage-history.js +0 -149
  393. package/dist/core/usage-history.js.map +0 -1
  394. package/dist/core/vercel-actions.d.ts +0 -71
  395. package/dist/core/vercel-actions.js +0 -109
  396. package/dist/core/vercel-actions.js.map +0 -1
  397. package/dist/core/vercel-auth.d.ts +0 -40
  398. package/dist/core/vercel-auth.js +0 -88
  399. package/dist/core/vercel-auth.js.map +0 -1
  400. package/dist/core/vercel-context.d.ts +0 -2
  401. package/dist/core/vercel-context.js +0 -97
  402. package/dist/core/vercel-context.js.map +0 -1
  403. package/dist/core/vercel-manager.d.ts +0 -268
  404. package/dist/core/vercel-manager.js +0 -401
  405. package/dist/core/vercel-manager.js.map +0 -1
  406. package/dist/core/vercel-oauth.d.ts +0 -37
  407. package/dist/core/vercel-oauth.js +0 -57
  408. package/dist/core/vercel-oauth.js.map +0 -1
  409. package/dist/core/vercel-provider.d.ts +0 -23
  410. package/dist/core/vercel-provider.js +0 -276
  411. package/dist/core/vercel-provider.js.map +0 -1
  412. package/dist/core/vultr-actions.d.ts +0 -52
  413. package/dist/core/vultr-actions.js +0 -62
  414. package/dist/core/vultr-actions.js.map +0 -1
  415. package/dist/core/vultr-auth.d.ts +0 -32
  416. package/dist/core/vultr-auth.js +0 -54
  417. package/dist/core/vultr-auth.js.map +0 -1
  418. package/dist/core/vultr-context.d.ts +0 -2
  419. package/dist/core/vultr-context.js +0 -55
  420. package/dist/core/vultr-context.js.map +0 -1
  421. package/dist/core/vultr-manager.d.ts +0 -113
  422. package/dist/core/vultr-manager.js +0 -170
  423. package/dist/core/vultr-manager.js.map +0 -1
  424. package/dist/core/vultr-provider.d.ts +0 -69
  425. package/dist/core/vultr-provider.js +0 -226
  426. package/dist/core/vultr-provider.js.map +0 -1
  427. package/dist/core/workflow-triggers.d.ts +0 -139
  428. package/dist/core/workflow-triggers.js +0 -208
  429. package/dist/core/workflow-triggers.js.map +0 -1
  430. package/dist/core/workflows.d.ts +0 -290
  431. package/dist/core/workflows.js +0 -190
  432. package/dist/core/workflows.js.map +0 -1
  433. package/dist/index.d.ts +0 -2
  434. package/dist/index.js +0 -66
  435. package/dist/index.js.map +0 -1
  436. package/dist/mcp/server.d.ts +0 -37
  437. package/dist/mcp/server.js +0 -84
  438. package/dist/mcp/server.js.map +0 -1
  439. package/dist/mcp/tools/agent-env.d.ts +0 -9
  440. package/dist/mcp/tools/agent-env.js +0 -160
  441. package/dist/mcp/tools/agent-env.js.map +0 -1
  442. package/dist/mcp/tools/agent-profiles.d.ts +0 -9
  443. package/dist/mcp/tools/agent-profiles.js +0 -197
  444. package/dist/mcp/tools/agent-profiles.js.map +0 -1
  445. package/dist/mcp/tools/agent-registry.d.ts +0 -9
  446. package/dist/mcp/tools/agent-registry.js +0 -81
  447. package/dist/mcp/tools/agent-registry.js.map +0 -1
  448. package/dist/mcp/tools/agent.d.ts +0 -4
  449. package/dist/mcp/tools/agent.js +0 -29
  450. package/dist/mcp/tools/agent.js.map +0 -1
  451. package/dist/mcp/tools/context.d.ts +0 -36
  452. package/dist/mcp/tools/context.js +0 -69
  453. package/dist/mcp/tools/context.js.map +0 -1
  454. package/dist/mcp/tools/database.d.ts +0 -9
  455. package/dist/mcp/tools/database.js +0 -166
  456. package/dist/mcp/tools/database.js.map +0 -1
  457. package/dist/mcp/tools/docs.d.ts +0 -29
  458. package/dist/mcp/tools/docs.js +0 -134
  459. package/dist/mcp/tools/docs.js.map +0 -1
  460. package/dist/mcp/tools/errors.d.ts +0 -12
  461. package/dist/mcp/tools/errors.js +0 -47
  462. package/dist/mcp/tools/errors.js.map +0 -1
  463. package/dist/mcp/tools/git.d.ts +0 -4
  464. package/dist/mcp/tools/git.js +0 -209
  465. package/dist/mcp/tools/git.js.map +0 -1
  466. package/dist/mcp/tools/github.d.ts +0 -4
  467. package/dist/mcp/tools/github.js +0 -196
  468. package/dist/mcp/tools/github.js.map +0 -1
  469. package/dist/mcp/tools/index.d.ts +0 -36
  470. package/dist/mcp/tools/index.js +0 -61
  471. package/dist/mcp/tools/index.js.map +0 -1
  472. package/dist/mcp/tools/onboard.d.ts +0 -10
  473. package/dist/mcp/tools/onboard.js +0 -30
  474. package/dist/mcp/tools/onboard.js.map +0 -1
  475. package/dist/mcp/tools/provider.d.ts +0 -16
  476. package/dist/mcp/tools/provider.js +0 -110
  477. package/dist/mcp/tools/provider.js.map +0 -1
  478. package/dist/mcp/tools/services.d.ts +0 -13
  479. package/dist/mcp/tools/services.js +0 -204
  480. package/dist/mcp/tools/services.js.map +0 -1
  481. package/dist/mcp/tools/snapshots.d.ts +0 -8
  482. package/dist/mcp/tools/snapshots.js +0 -37
  483. package/dist/mcp/tools/snapshots.js.map +0 -1
  484. package/dist/mcp/tools/terminal.d.ts +0 -4
  485. package/dist/mcp/tools/terminal.js +0 -38
  486. package/dist/mcp/tools/terminal.js.map +0 -1
  487. package/dist/tui/app.d.ts +0 -22
  488. package/dist/tui/app.js +0 -138
  489. package/dist/tui/app.js.map +0 -1
  490. package/dist/web/agent-info.d.ts +0 -82
  491. package/dist/web/agent-info.js +0 -775
  492. package/dist/web/agent-info.js.map +0 -1
  493. package/dist/web/client/assets/SymbolsNerdFontMono-Regular-DDncdh2F.ttf +0 -0
  494. package/dist/web/client/assets/code-editor-TE0sjFGO.js +0 -30
  495. package/dist/web/client/assets/context-graph-B9MnBpp6.js +0 -7
  496. package/dist/web/client/assets/core-DhEqZVGG.js +0 -1
  497. package/dist/web/client/assets/event-BK_86lmQ.js +0 -1
  498. package/dist/web/client/assets/index-BhDAhmA1.js +0 -1
  499. package/dist/web/client/assets/index-CSo__8A6.css +0 -1
  500. package/dist/web/client/assets/index-DAJvBqn9.js +0 -352
  501. package/dist/web/client/assets/nomoreide-favicon-Ds7Tgj9p.svg +0 -24
  502. package/dist/web/client/assets/system-process-table-DetWu0Gj.js +0 -1
  503. package/dist/web/client/assets/window-DlR023_X.js +0 -1
  504. package/dist/web/client/index.html +0 -44
  505. package/dist/web/dashboard.d.ts +0 -61
  506. package/dist/web/dashboard.js +0 -221
  507. package/dist/web/dashboard.js.map +0 -1
  508. package/dist/web/directories.d.ts +0 -27
  509. package/dist/web/directories.js +0 -81
  510. package/dist/web/directories.js.map +0 -1
  511. package/dist/web/http-utils.d.ts +0 -13
  512. package/dist/web/http-utils.js +0 -72
  513. package/dist/web/http-utils.js.map +0 -1
  514. package/dist/web/routes/agent-chat-routes.d.ts +0 -3
  515. package/dist/web/routes/agent-chat-routes.js +0 -186
  516. package/dist/web/routes/agent-chat-routes.js.map +0 -1
  517. package/dist/web/routes/agent-env-routes.d.ts +0 -9
  518. package/dist/web/routes/agent-env-routes.js +0 -86
  519. package/dist/web/routes/agent-env-routes.js.map +0 -1
  520. package/dist/web/routes/agent-profile-routes.d.ts +0 -8
  521. package/dist/web/routes/agent-profile-routes.js +0 -211
  522. package/dist/web/routes/agent-profile-routes.js.map +0 -1
  523. package/dist/web/routes/agent-registry-routes.d.ts +0 -2
  524. package/dist/web/routes/agent-registry-routes.js +0 -375
  525. package/dist/web/routes/agent-registry-routes.js.map +0 -1
  526. package/dist/web/routes/agent-routes.d.ts +0 -3
  527. package/dist/web/routes/agent-routes.js +0 -73
  528. package/dist/web/routes/agent-routes.js.map +0 -1
  529. package/dist/web/routes/agent-settings-routes.d.ts +0 -8
  530. package/dist/web/routes/agent-settings-routes.js +0 -67
  531. package/dist/web/routes/agent-settings-routes.js.map +0 -1
  532. package/dist/web/routes/context-library-routes.d.ts +0 -2
  533. package/dist/web/routes/context-library-routes.js +0 -139
  534. package/dist/web/routes/context-library-routes.js.map +0 -1
  535. package/dist/web/routes/context.d.ts +0 -73
  536. package/dist/web/routes/context.js +0 -48
  537. package/dist/web/routes/context.js.map +0 -1
  538. package/dist/web/routes/dashboard-routes.d.ts +0 -3
  539. package/dist/web/routes/dashboard-routes.js +0 -47
  540. package/dist/web/routes/dashboard-routes.js.map +0 -1
  541. package/dist/web/routes/database-routes.d.ts +0 -3
  542. package/dist/web/routes/database-routes.js +0 -341
  543. package/dist/web/routes/database-routes.js.map +0 -1
  544. package/dist/web/routes/docker-routes.d.ts +0 -7
  545. package/dist/web/routes/docker-routes.js +0 -122
  546. package/dist/web/routes/docker-routes.js.map +0 -1
  547. package/dist/web/routes/errors-routes.d.ts +0 -3
  548. package/dist/web/routes/errors-routes.js +0 -77
  549. package/dist/web/routes/errors-routes.js.map +0 -1
  550. package/dist/web/routes/extensions-routes.d.ts +0 -14
  551. package/dist/web/routes/extensions-routes.js +0 -21
  552. package/dist/web/routes/extensions-routes.js.map +0 -1
  553. package/dist/web/routes/git-routes.d.ts +0 -3
  554. package/dist/web/routes/git-routes.js +0 -598
  555. package/dist/web/routes/git-routes.js.map +0 -1
  556. package/dist/web/routes/github-context.d.ts +0 -11
  557. package/dist/web/routes/github-context.js +0 -34
  558. package/dist/web/routes/github-context.js.map +0 -1
  559. package/dist/web/routes/github-routes.d.ts +0 -2
  560. package/dist/web/routes/github-routes.js +0 -699
  561. package/dist/web/routes/github-routes.js.map +0 -1
  562. package/dist/web/routes/host-routes.d.ts +0 -2
  563. package/dist/web/routes/host-routes.js +0 -188
  564. package/dist/web/routes/host-routes.js.map +0 -1
  565. package/dist/web/routes/index.d.ts +0 -10
  566. package/dist/web/routes/index.js +0 -72
  567. package/dist/web/routes/index.js.map +0 -1
  568. package/dist/web/routes/jetbrains-import-routes.d.ts +0 -2
  569. package/dist/web/routes/jetbrains-import-routes.js +0 -121
  570. package/dist/web/routes/jetbrains-import-routes.js.map +0 -1
  571. package/dist/web/routes/log-sources-routes.d.ts +0 -6
  572. package/dist/web/routes/log-sources-routes.js +0 -102
  573. package/dist/web/routes/log-sources-routes.js.map +0 -1
  574. package/dist/web/routes/metrics-routes.d.ts +0 -3
  575. package/dist/web/routes/metrics-routes.js +0 -60
  576. package/dist/web/routes/metrics-routes.js.map +0 -1
  577. package/dist/web/routes/onboard-routes.d.ts +0 -9
  578. package/dist/web/routes/onboard-routes.js +0 -146
  579. package/dist/web/routes/onboard-routes.js.map +0 -1
  580. package/dist/web/routes/overview-routes.d.ts +0 -2
  581. package/dist/web/routes/overview-routes.js +0 -36
  582. package/dist/web/routes/overview-routes.js.map +0 -1
  583. package/dist/web/routes/provider-routes.d.ts +0 -2
  584. package/dist/web/routes/provider-routes.js +0 -558
  585. package/dist/web/routes/provider-routes.js.map +0 -1
  586. package/dist/web/routes/service-routes.d.ts +0 -3
  587. package/dist/web/routes/service-routes.js +0 -511
  588. package/dist/web/routes/service-routes.js.map +0 -1
  589. package/dist/web/routes/settings-routes.d.ts +0 -2
  590. package/dist/web/routes/settings-routes.js +0 -151
  591. package/dist/web/routes/settings-routes.js.map +0 -1
  592. package/dist/web/routes/shell-routes.d.ts +0 -22
  593. package/dist/web/routes/shell-routes.js +0 -75
  594. package/dist/web/routes/shell-routes.js.map +0 -1
  595. package/dist/web/routes/skills-routes.d.ts +0 -2
  596. package/dist/web/routes/skills-routes.js +0 -49
  597. package/dist/web/routes/skills-routes.js.map +0 -1
  598. package/dist/web/routes/snapshot-routes.d.ts +0 -8
  599. package/dist/web/routes/snapshot-routes.js +0 -194
  600. package/dist/web/routes/snapshot-routes.js.map +0 -1
  601. package/dist/web/routes/ssh-server-routes.d.ts +0 -10
  602. package/dist/web/routes/ssh-server-routes.js +0 -163
  603. package/dist/web/routes/ssh-server-routes.js.map +0 -1
  604. package/dist/web/routes/terminal-routes.d.ts +0 -7
  605. package/dist/web/routes/terminal-routes.js +0 -313
  606. package/dist/web/routes/terminal-routes.js.map +0 -1
  607. package/dist/web/routes/workflow-routes.d.ts +0 -8
  608. package/dist/web/routes/workflow-routes.js +0 -45
  609. package/dist/web/routes/workflow-routes.js.map +0 -1
  610. package/dist/web/routes/workflow-trigger-routes.d.ts +0 -9
  611. package/dist/web/routes/workflow-trigger-routes.js +0 -78
  612. package/dist/web/routes/workflow-trigger-routes.js.map +0 -1
  613. package/dist/web/server.d.ts +0 -31
  614. package/dist/web/server.js +0 -325
  615. package/dist/web/server.js.map +0 -1
  616. package/dist/web/service-tester.d.ts +0 -16
  617. package/dist/web/service-tester.js +0 -107
  618. package/dist/web/service-tester.js.map +0 -1
  619. package/dist/web/static-assets.d.ts +0 -9
  620. package/dist/web/static-assets.js +0 -77
  621. package/dist/web/static-assets.js.map +0 -1
  622. package/dist/web/usage-info.d.ts +0 -56
  623. package/dist/web/usage-info.js +0 -265
  624. package/dist/web/usage-info.js.map +0 -1
@@ -1,3 +0,0 @@
1
- export declare function isSensitiveDatabaseColumn(name: string): boolean;
2
- export declare function maskDatabaseRow(row: Record<string, unknown>): Record<string, unknown>;
3
- export declare function maskDatabaseRows(rows: Array<Record<string, unknown>>): Array<Record<string, unknown>>;
@@ -1,14 +0,0 @@
1
- const SENSITIVE_COLUMN = /(^|_)(password|passwd|pwd|secret|token|api_?key|access_?key|private_?key|credential|authorization|cookie)(_|$)/i;
2
- export function isSensitiveDatabaseColumn(name) {
3
- return SENSITIVE_COLUMN.test(name);
4
- }
5
- export function maskDatabaseRow(row) {
6
- return Object.fromEntries(Object.entries(row).map(([column, value]) => [
7
- column,
8
- isSensitiveDatabaseColumn(column) && value !== null ? "••••" : value,
9
- ]));
10
- }
11
- export function maskDatabaseRows(rows) {
12
- return rows.map(maskDatabaseRow);
13
- }
14
- //# sourceMappingURL=data-masking.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-masking.js","sourceRoot":"","sources":["../../../src/core/db/data-masking.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GACpB,iHAAiH,CAAC;AAEpH,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAA4B;IAC1D,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM;QACN,yBAAyB,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;KACrE,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAoC;IAEpC,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACnC,CAAC"}
@@ -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
- }