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 +0,0 @@
1
- {"version":3,"file":"extensions-routes.js","sourceRoot":"","sources":["../../../src/web/routes/extensions-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAc,MAAM,cAAc,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAY;IACvC,KAAK,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrD,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC;CACH,CAAC"}
@@ -1,3 +0,0 @@
1
- import { type Route } from "./context.js";
2
- /** Read-safe Git operations plus repository registration/selection. */
3
- export declare const gitRoutes: Route[];
@@ -1,598 +0,0 @@
1
- import { resolve, sep } from "node:path";
2
- import { gitToplevel } from "../../core/config-store.js";
3
- import { GitActions } from "../../core/git-actions.js";
4
- import { resolveGitIdentityState, resolvePushCredential } from "../../core/git-identity.js";
5
- import { GitManager } from "../../core/git-manager.js";
6
- import { GitWorktreeManager } from "../../core/git-worktrees.js";
7
- import { createRepository } from "../../core/repo-create.js";
8
- import { cloneRepository } from "../../core/repo-onboard.js";
9
- import { publicConfig } from "../../core/public-config.js";
10
- import { getSelectedGitRepository, readGitDiff, selectedGitCwd } from "../dashboard.js";
11
- import { readForm, readJson, requiredFormValue, sendJson, sendText } from "../http-utils.js";
12
- import { errorMessage, patternRoute, route } from "./context.js";
13
- /**
14
- * How many repos the board shows before the user has curated it. Kept below the
15
- * UI's 5-column cap so the "Add" tile stays visible and nothing is stranded.
16
- */
17
- const DEFAULT_BOARD_COLUMNS = 4;
18
- /**
19
- * Resolve the working directory for a write op. When `repoName` is given — the
20
- * multi-repo board scopes stage/unstage/commit/push to a named column — look it
21
- * up by name; otherwise fall back to the currently selected repository. Returns
22
- * an `error` string when a named repo can't be found so callers can 404.
23
- */
24
- async function resolveRepoCwd(configStore, repoName, fallbackCwd) {
25
- const config = await configStore.load();
26
- if (!repoName) {
27
- return {
28
- cwd: await selectedGitCwd(configStore, fallbackCwd),
29
- repository: getSelectedGitRepository(config),
30
- };
31
- }
32
- const target = config.gitRepositories.find((repository) => repository.name === repoName);
33
- if (!target)
34
- return { error: `Unknown repository: ${repoName}` };
35
- return { cwd: target.activeWorktreePath ?? target.path, repository: target };
36
- }
37
- /** Read-safe Git operations plus repository registration/selection. */
38
- export const gitRoutes = [
39
- route("GET", "/api/git/diff", async ({ response, url, configStore, cwd }) => {
40
- const config = await configStore.load();
41
- // `repo` scopes the diff to a named repository (used by the multi-repo
42
- // board); without it we fall back to the currently selected repository.
43
- const repoName = url.searchParams.get("repo")?.trim();
44
- const targetRepository = repoName
45
- ? config.gitRepositories.find((repository) => repository.name === repoName)
46
- : getSelectedGitRepository(config);
47
- if (repoName && !targetRepository) {
48
- sendJson(response, { ok: false, error: `Unknown repository: ${repoName}` }, 404);
49
- return;
50
- }
51
- const gitCwd = targetRepository?.activeWorktreePath ??
52
- targetRepository?.path ??
53
- cwd;
54
- const selectedFile = url.searchParams.get("file")?.trim();
55
- if (!selectedFile) {
56
- sendJson(response, { ok: false, error: "file is required" }, 400);
57
- return;
58
- }
59
- const git = new GitManager(gitCwd);
60
- const status = await git.status();
61
- const selectedStatus = status.files.find((file) => file.path === selectedFile);
62
- const diff = selectedStatus
63
- ? await git.fileDiff(selectedStatus)
64
- : await readGitDiff(gitCwd, selectedFile);
65
- if (diff === undefined) {
66
- sendJson(response, { ok: false, error: "No changes or file not found." }, 404);
67
- return;
68
- }
69
- sendText(response, diff);
70
- }),
71
- route("GET", "/api/git/status", async ({ response, configStore, cwd }) => {
72
- const gitCwd = await selectedGitCwd(configStore, cwd);
73
- try {
74
- const status = await new GitManager(gitCwd).status();
75
- sendJson(response, { ok: true, status });
76
- }
77
- catch (error) {
78
- sendJson(response, { ok: false, error: errorMessage(error) }, 400);
79
- }
80
- }),
81
- route("GET", "/api/git/overview", async ({ response, configStore }) => {
82
- // Fan out `git status` across every registered repository so the board can
83
- // show changed files per repo side by side. One broken repo surfaces as a
84
- // per-column error instead of failing the whole response.
85
- const config = await configStore.load();
86
- const repos = await Promise.all(config.gitRepositories.map(async (repository) => {
87
- try {
88
- const worktreePath = repository.activeWorktreePath ?? repository.path;
89
- const status = await new GitManager(worktreePath).status();
90
- return {
91
- name: repository.name,
92
- path: worktreePath,
93
- branch: status.branch,
94
- ahead: status.ahead,
95
- behind: status.behind,
96
- files: status.files,
97
- };
98
- }
99
- catch (error) {
100
- return {
101
- name: repository.name,
102
- path: repository.path,
103
- branch: "",
104
- ahead: 0,
105
- behind: 0,
106
- files: [],
107
- error: errorMessage(error),
108
- };
109
- }
110
- }));
111
- // Effective board: the user's pinned order, or every repo when never
112
- // curated. Stale names (repo since removed) are dropped.
113
- const registered = new Set(config.gitRepositories.map((repo) => repo.name));
114
- const board = (config.gitBoardRepositories ??
115
- config.gitRepositories.map((repo) => repo.name).slice(0, DEFAULT_BOARD_COLUMNS)).filter((name) => registered.has(name));
116
- sendJson(response, { ok: true, repos, board });
117
- }),
118
- route("PUT", "/api/git/board", async ({ request, response, configStore }) => {
119
- const body = await readJson(request);
120
- const names = Array.isArray(body.names)
121
- ? body.names.filter((name) => typeof name === "string")
122
- : null;
123
- if (!names) {
124
- sendJson(response, { ok: false, error: "names array is required" }, 400);
125
- return;
126
- }
127
- const config = await configStore.setGitBoardRepositories(names);
128
- sendJson(response, { ok: true, board: config.gitBoardRepositories ?? [] });
129
- }),
130
- route("GET", "/api/git/files", async ({ response, configStore, cwd }) => {
131
- const gitCwd = await selectedGitCwd(configStore, cwd);
132
- try {
133
- const files = await new GitManager(gitCwd).listTrackedFiles();
134
- sendJson(response, { ok: true, files });
135
- }
136
- catch (error) {
137
- sendJson(response, { ok: false, error: errorMessage(error) }, 400);
138
- }
139
- }),
140
- route("GET", "/api/git/file-sizes", async ({ response, configStore, cwd }) => {
141
- const gitCwd = await selectedGitCwd(configStore, cwd);
142
- try {
143
- const files = await new GitManager(gitCwd).rankFilesBySize();
144
- sendJson(response, { ok: true, files });
145
- }
146
- catch (error) {
147
- sendJson(response, { ok: false, error: errorMessage(error) }, 400);
148
- }
149
- }),
150
- route("GET", "/api/git/file", async ({ response, url, configStore, cwd }) => {
151
- const gitCwd = await selectedGitCwd(configStore, cwd);
152
- const path = url.searchParams.get("path")?.trim();
153
- if (!path) {
154
- sendJson(response, { ok: false, error: "path is required" }, 400);
155
- return;
156
- }
157
- try {
158
- const file = await new GitManager(gitCwd).readTrackedFile(path);
159
- sendJson(response, { ok: true, ...file });
160
- }
161
- catch (error) {
162
- sendJson(response, { ok: false, error: errorMessage(error) }, 404);
163
- }
164
- }),
165
- route("PUT", "/api/git/file", async ({ request, response, configStore, cwd }) => {
166
- const gitCwd = await selectedGitCwd(configStore, cwd);
167
- const body = await readJson(request);
168
- const path = typeof body.path === "string" ? body.path.trim() : "";
169
- const content = typeof body.content === "string" ? body.content : null;
170
- if (!path) {
171
- sendJson(response, { ok: false, error: "path is required" }, 400);
172
- return;
173
- }
174
- if (content === null) {
175
- sendJson(response, { ok: false, error: "content is required" }, 400);
176
- return;
177
- }
178
- try {
179
- await new GitManager(gitCwd).writeTrackedFile(path, content);
180
- sendJson(response, { ok: true });
181
- }
182
- catch (error) {
183
- sendJson(response, { ok: false, error: errorMessage(error) }, 400);
184
- }
185
- }),
186
- route("GET", "/api/git/commit", async ({ response, url, configStore, cwd }) => {
187
- const gitCwd = await selectedGitCwd(configStore, cwd);
188
- const hash = url.searchParams.get("hash")?.trim();
189
- const file = url.searchParams.get("file")?.trim() || undefined;
190
- if (!hash) {
191
- sendJson(response, { ok: false, error: "hash is required" }, 400);
192
- return;
193
- }
194
- try {
195
- const diff = await new GitManager(gitCwd).commitDiff(hash, file);
196
- sendText(response, diff);
197
- }
198
- catch (error) {
199
- sendJson(response, { ok: false, error: errorMessage(error) }, 400);
200
- }
201
- }),
202
- route("GET", "/api/git/commit/files", async ({ response, url, configStore, cwd }) => {
203
- const gitCwd = await selectedGitCwd(configStore, cwd);
204
- const hash = url.searchParams.get("hash")?.trim();
205
- if (!hash) {
206
- sendJson(response, { ok: false, error: "hash is required" }, 400);
207
- return;
208
- }
209
- try {
210
- const files = await new GitManager(gitCwd).commitFiles(hash);
211
- sendJson(response, { ok: true, files });
212
- }
213
- catch (error) {
214
- sendJson(response, { ok: false, error: errorMessage(error) }, 400);
215
- }
216
- }),
217
- route("GET", "/api/git/graph", async ({ response, url, configStore, cwd }) => {
218
- const gitCwd = await selectedGitCwd(configStore, cwd);
219
- const limitParam = url.searchParams.get("limit")?.trim();
220
- const parsedLimit = limitParam ? Number(limitParam) : 200;
221
- const limit = Number.isFinite(parsedLimit) && parsedLimit > 0
222
- ? Math.min(Math.floor(parsedLimit), 2000)
223
- : 200;
224
- const commits = await new GitManager(gitCwd).graph(limit);
225
- sendJson(response, { ok: true, commits });
226
- }),
227
- route("POST", "/api/git/fetch", async ({ response, configStore, cwd }) => {
228
- const gitCwd = await selectedGitCwd(configStore, cwd);
229
- const output = await new GitManager(gitCwd).fetch();
230
- sendJson(response, { ok: true, output });
231
- }),
232
- /**
233
- * Who a commit made here would be authored by, and whether that differs from
234
- * the machine's configured git identity. The account switcher governs the
235
- * GitHub API surface too, so a mismatch here is what the UI warns about.
236
- */
237
- route("GET", "/api/git/identity", async ({ response, url, configStore, cwd }) => {
238
- const resolved = await resolveRepoCwd(configStore, url.searchParams.get("repo")?.trim(), cwd);
239
- if ("error" in resolved) {
240
- sendJson(response, { ok: false, error: resolved.error }, 404);
241
- return;
242
- }
243
- const identity = await resolveGitIdentityState(configStore, resolved.repository, resolved.cwd);
244
- sendJson(response, { ok: true, ...identity });
245
- }),
246
- route("POST", "/api/git/commit", async ({ request, response, configStore, cwd }) => {
247
- try {
248
- const form = await readForm(request);
249
- const resolved = await resolveRepoCwd(configStore, form.get("repo")?.trim(), cwd);
250
- if ("error" in resolved) {
251
- sendJson(response, { ok: false, error: resolved.error }, 404);
252
- return;
253
- }
254
- // Honour the GitHub account selected for this repository, so the commit's
255
- // author matches the account that will open the pull request. Falls back
256
- // to the machine's git identity when no account is selected.
257
- const identity = await resolveGitIdentityState(configStore, resolved.repository, resolved.cwd);
258
- const output = await new GitManager(resolved.cwd).commit(requiredFormValue(form, "message"), { identity: identity.selected ?? undefined });
259
- sendJson(response, { ok: true, output, author: identity.selected });
260
- }
261
- catch (error) {
262
- sendJson(response, { ok: false, error: errorMessage(error) }, 400);
263
- }
264
- }),
265
- route("POST", "/api/git/stage", async ({ request, response, configStore, cwd }) => {
266
- try {
267
- const body = await readJson(request);
268
- const repo = typeof body.repo === "string" ? body.repo.trim() : undefined;
269
- const resolved = await resolveRepoCwd(configStore, repo, cwd);
270
- if ("error" in resolved) {
271
- sendJson(response, { ok: false, error: resolved.error }, 404);
272
- return;
273
- }
274
- const paths = Array.isArray(body.paths) ? body.paths.filter((p) => typeof p === "string") : [];
275
- const output = await new GitManager(resolved.cwd).stage(paths);
276
- sendJson(response, { ok: true, output });
277
- }
278
- catch (error) {
279
- sendJson(response, { ok: false, error: errorMessage(error) }, 400);
280
- }
281
- }),
282
- route("POST", "/api/git/unstage", async ({ request, response, configStore, cwd }) => {
283
- try {
284
- const body = await readJson(request);
285
- const repo = typeof body.repo === "string" ? body.repo.trim() : undefined;
286
- const resolved = await resolveRepoCwd(configStore, repo, cwd);
287
- if ("error" in resolved) {
288
- sendJson(response, { ok: false, error: resolved.error }, 404);
289
- return;
290
- }
291
- const paths = Array.isArray(body.paths) ? body.paths.filter((p) => typeof p === "string") : [];
292
- const output = await new GitManager(resolved.cwd).unstage(paths);
293
- sendJson(response, { ok: true, output });
294
- }
295
- catch (error) {
296
- sendJson(response, { ok: false, error: errorMessage(error) }, 400);
297
- }
298
- }),
299
- // Write op (reaches the remote) — lives in the guarded GitActions module, not
300
- // the read-safe GitManager. The UI confirms before calling this.
301
- route("POST", "/api/git/push", async ({ request, response, configStore, cwd }) => {
302
- try {
303
- const form = await readForm(request);
304
- const resolved = await resolveRepoCwd(configStore, form.get("repo")?.trim(), cwd);
305
- if ("error" in resolved) {
306
- sendJson(response, { ok: false, error: resolved.error }, 404);
307
- return;
308
- }
309
- const remote = form.get("remote")?.trim() || undefined;
310
- // Push as the account selected for this repository rather than whichever
311
- // one the machine's credential helper happens to answer with. Null for
312
- // SSH remotes and unselected repos — those keep the existing behaviour.
313
- const remoteUrl = await new GitManager(resolved.cwd).remoteUrl(remote ?? "origin");
314
- const credential = await resolvePushCredential(configStore, resolved.repository, remoteUrl);
315
- const result = await new GitActions(resolved.cwd).push({
316
- remote,
317
- credential: credential ? { token: credential.token, username: credential.login } : undefined,
318
- });
319
- sendJson(response, { ok: true, ...result, pushedAs: credential?.login });
320
- }
321
- catch (error) {
322
- sendJson(response, { ok: false, error: errorMessage(error) }, 400);
323
- }
324
- }),
325
- route("POST", "/api/git/pull", async ({ request, response, configStore, cwd }) => {
326
- try {
327
- const form = await readForm(request);
328
- const resolved = await resolveRepoCwd(configStore, form.get("repo")?.trim(), cwd);
329
- if ("error" in resolved) {
330
- sendJson(response, { ok: false, error: resolved.error }, 404);
331
- return;
332
- }
333
- const output = await new GitActions(resolved.cwd).pull();
334
- sendJson(response, { ok: true, output });
335
- }
336
- catch (error) {
337
- sendJson(response, { ok: false, error: errorMessage(error) }, 400);
338
- }
339
- }),
340
- route("POST", "/api/git/merge", async ({ request, response, configStore, cwd }) => {
341
- try {
342
- const form = await readForm(request);
343
- const resolved = await resolveRepoCwd(configStore, form.get("repo")?.trim(), cwd);
344
- if ("error" in resolved) {
345
- sendJson(response, { ok: false, error: resolved.error }, 404);
346
- return;
347
- }
348
- const output = await new GitActions(resolved.cwd).merge(requiredFormValue(form, "branch"));
349
- sendJson(response, { ok: true, output });
350
- }
351
- catch (error) {
352
- sendJson(response, { ok: false, error: errorMessage(error) }, 400);
353
- }
354
- }),
355
- route("POST", "/api/git/rebase", async ({ request, response, configStore, cwd }) => {
356
- try {
357
- const form = await readForm(request);
358
- const resolved = await resolveRepoCwd(configStore, form.get("repo")?.trim(), cwd);
359
- if ("error" in resolved) {
360
- sendJson(response, { ok: false, error: resolved.error }, 404);
361
- return;
362
- }
363
- const output = await new GitActions(resolved.cwd).rebase(requiredFormValue(form, "branch"));
364
- sendJson(response, { ok: true, output });
365
- }
366
- catch (error) {
367
- sendJson(response, { ok: false, error: errorMessage(error) }, 400);
368
- }
369
- }),
370
- route("POST", "/api/git/default-branch/pull", async ({ response, configStore, cwd }) => {
371
- const gitCwd = await selectedGitCwd(configStore, cwd);
372
- try {
373
- const result = await new GitActions(gitCwd).checkoutDefaultAndPull();
374
- sendJson(response, { ok: true, ...result });
375
- }
376
- catch (error) {
377
- sendJson(response, { ok: false, error: errorMessage(error) }, 400);
378
- }
379
- }),
380
- route("GET", "/api/git/worktrees", async ({ response, configStore }) => {
381
- const config = await configStore.load();
382
- const repository = getSelectedGitRepository(config);
383
- if (!repository) {
384
- sendJson(response, { ok: false, error: "No Git project is selected." }, 404);
385
- return;
386
- }
387
- const worktrees = await new GitWorktreeManager(repository.path).list();
388
- const configuredActive = repository.activeWorktreePath ?? repository.path;
389
- const activePath = worktrees.some((worktree) => resolve(worktree.path) === resolve(configuredActive))
390
- ? configuredActive
391
- : repository.path;
392
- sendJson(response, {
393
- ok: true,
394
- activePath,
395
- worktrees,
396
- });
397
- }),
398
- route("POST", "/api/git/worktrees", async ({ request, response, configStore }) => {
399
- const body = await readJson(request);
400
- const config = await configStore.load();
401
- const repository = getSelectedGitRepository(config);
402
- if (!repository) {
403
- sendJson(response, { ok: false, error: "No Git project is selected." }, 404);
404
- return;
405
- }
406
- try {
407
- const worktree = await new GitWorktreeManager(repository.path).create({
408
- branch: typeof body.branch === "string" ? body.branch : "",
409
- createBranch: body.createBranch === true,
410
- baseRef: typeof body.baseRef === "string" ? body.baseRef : undefined,
411
- projectName: repository.name,
412
- });
413
- await configStore.selectGitWorktree(repository.name, worktree.path);
414
- sendJson(response, { ok: true, worktree }, 201);
415
- }
416
- catch (error) {
417
- sendJson(response, { ok: false, error: errorMessage(error) }, 422);
418
- }
419
- }),
420
- route("PUT", "/api/git/worktrees/active", async ({ request, response, configStore }) => {
421
- const body = await readJson(request);
422
- const path = typeof body.path === "string" ? body.path : "";
423
- const config = await configStore.load();
424
- const repository = getSelectedGitRepository(config);
425
- if (!repository) {
426
- sendJson(response, { ok: false, error: "No Git project is selected." }, 404);
427
- return;
428
- }
429
- try {
430
- await configStore.selectGitWorktree(repository.name, path);
431
- sendJson(response, { ok: true, activePath: path });
432
- }
433
- catch (error) {
434
- sendJson(response, { ok: false, error: errorMessage(error) }, 422);
435
- }
436
- }),
437
- route("DELETE", "/api/git/worktrees", async ({ request, response, configStore, manager, terminalManager }) => {
438
- const body = await readJson(request);
439
- const path = typeof body.path === "string" ? body.path : "";
440
- const config = await configStore.load();
441
- const repository = getSelectedGitRepository(config);
442
- if (!repository) {
443
- sendJson(response, { ok: false, error: "No Git project is selected." }, 404);
444
- return;
445
- }
446
- const activePath = repository.activeWorktreePath ?? repository.path;
447
- if (resolve(activePath) === resolve(path)) {
448
- sendJson(response, { ok: false, error: "Switch to another worktree before removing this one." }, 409);
449
- return;
450
- }
451
- const activeTerminal = terminalManager
452
- .list()
453
- .find((session) => pathContains(path, session.cwd));
454
- if (activeTerminal) {
455
- sendJson(response, { ok: false, error: "Close terminals using this worktree before removing it." }, 409);
456
- return;
457
- }
458
- const runtime = manager.status().services;
459
- const activeService = config.services.find((service) => service.cwd &&
460
- pathContains(path, service.cwd) &&
461
- runtime[service.name]?.state === "running");
462
- if (activeService) {
463
- sendJson(response, {
464
- ok: false,
465
- error: `Stop service "${activeService.name}" before removing this worktree.`,
466
- }, 409);
467
- return;
468
- }
469
- try {
470
- await new GitWorktreeManager(repository.path).remove(path);
471
- sendJson(response, { ok: true });
472
- }
473
- catch (error) {
474
- sendJson(response, { ok: false, error: errorMessage(error) }, 422);
475
- }
476
- }),
477
- route("POST", "/api/git/worktrees/prune", async ({ response, configStore }) => {
478
- const config = await configStore.load();
479
- const repository = getSelectedGitRepository(config);
480
- if (!repository) {
481
- sendJson(response, { ok: false, error: "No Git project is selected." }, 404);
482
- return;
483
- }
484
- await new GitWorktreeManager(repository.path).prune();
485
- sendJson(response, { ok: true });
486
- }),
487
- route("GET", "/api/git/branches", async ({ response, configStore, cwd }) => {
488
- const gitCwd = await selectedGitCwd(configStore, cwd);
489
- const branches = await new GitManager(gitCwd).branches();
490
- sendJson(response, { ok: true, branches });
491
- }),
492
- route("POST", "/api/git/branches", async ({ request, response, configStore, cwd }) => {
493
- const form = await readForm(request);
494
- const gitCwd = await selectedGitCwd(configStore, cwd);
495
- const output = await new GitManager(gitCwd).createBranch(requiredFormValue(form, "name"), form.get("startPoint")?.trim() || undefined);
496
- sendJson(response, { ok: true, output });
497
- }),
498
- route("POST", "/api/git/branches/delete", async ({ request, response, configStore, cwd }) => {
499
- try {
500
- const form = await readForm(request);
501
- const resolved = await resolveRepoCwd(configStore, form.get("repo")?.trim(), cwd);
502
- if ("error" in resolved) {
503
- sendJson(response, { ok: false, error: resolved.error }, 404);
504
- return;
505
- }
506
- const output = await new GitManager(resolved.cwd).deleteBranch(requiredFormValue(form, "name"));
507
- sendJson(response, { ok: true, output });
508
- }
509
- catch (error) {
510
- sendJson(response, { ok: false, error: errorMessage(error) }, 400);
511
- }
512
- }),
513
- route("POST", "/api/git/branches/switch", async ({ request, response, configStore, cwd }) => {
514
- const form = await readForm(request);
515
- const gitCwd = await selectedGitCwd(configStore, cwd);
516
- const output = await new GitManager(gitCwd).switchBranch(requiredFormValue(form, "name"));
517
- sendJson(response, { ok: true, output });
518
- }),
519
- route("POST", "/api/git/repositories", async ({ request, response, configStore }) => {
520
- const form = await readForm(request);
521
- const config = await configStore.registerGitRepository({
522
- name: requiredFormValue(form, "name"),
523
- path: requiredFormValue(form, "path"),
524
- });
525
- sendJson(response, { ok: true, config: publicConfig(config) });
526
- }),
527
- // Clone a remote repo (HTTPS or SSH) into the managed repos dir, then register
528
- // it as a Git project. Cloning lives in the guarded `repo-onboard` core module
529
- // so GitManager stays read-safe; SSH uses the host's ssh-agent/keys/config.
530
- route("POST", "/api/git/clone", async ({ request, response, configStore }) => {
531
- const form = await readForm(request);
532
- const url = requiredFormValue(form, "url");
533
- try {
534
- const config = await configStore.load();
535
- const githubToken = configStore.getGithubToken(config);
536
- const { name, clonePath } = await cloneRepository(url, undefined, githubToken);
537
- await configStore.registerGitRepository({ name, path: clonePath });
538
- sendJson(response, { ok: true, name, path: clonePath });
539
- }
540
- catch (error) {
541
- sendJson(response, { ok: false, error: errorMessage(error) }, 422);
542
- }
543
- }),
544
- // Adopt the repo a path already sits in — used by the "this service has no
545
- // project" affordance. Resolves to the worktree root first so a service that
546
- // runs from `repo/frontend` registers `repo`, not the subdirectory.
547
- route("POST", "/api/git/adopt", async ({ request, response, configStore }) => {
548
- const form = await readForm(request);
549
- const from = requiredFormValue(form, "path");
550
- const root = await gitToplevel(from);
551
- if (!root) {
552
- sendJson(response, { ok: false, error: `Not inside a Git repository: ${from}` }, 422);
553
- return;
554
- }
555
- try {
556
- const name = root.split("/").filter(Boolean).pop() ?? root;
557
- await configStore.registerGitRepository({ name, path: root });
558
- sendJson(response, { ok: true, name, path: root });
559
- }
560
- catch (error) {
561
- sendJson(response, { ok: false, error: errorMessage(error) }, 422);
562
- }
563
- }),
564
- // Create a brand-new project: mkdir + `git init` + register. Lives in the
565
- // guarded `repo-create` core module for the same reason cloning does.
566
- route("POST", "/api/git/create", async ({ request, response, configStore }) => {
567
- const form = await readForm(request);
568
- try {
569
- const parent = form.get("parentPath")?.trim();
570
- const { name, path } = await createRepository(requiredFormValue(form, "name"), parent || undefined);
571
- await configStore.registerGitRepository({ name, path });
572
- sendJson(response, { ok: true, name, path });
573
- }
574
- catch (error) {
575
- sendJson(response, { ok: false, error: errorMessage(error) }, 422);
576
- }
577
- }),
578
- patternRoute(/^\/api\/git\/repositories\/([^/]+)$/, ["name"], async ({ request, response, configStore, params }) => {
579
- if (request.method !== "DELETE") {
580
- sendJson(response, { ok: false, error: "Method not allowed" }, 405);
581
- return;
582
- }
583
- const config = await configStore.removeGitRepository(decodeURIComponent(params.name));
584
- sendJson(response, { ok: true, config: publicConfig(config) });
585
- }),
586
- route("POST", "/api/git/select", async ({ request, response, configStore }) => {
587
- const form = await readForm(request);
588
- const config = await configStore.selectGitRepository(requiredFormValue(form, "name"));
589
- sendJson(response, { ok: true, config: publicConfig(config) });
590
- }),
591
- ];
592
- function pathContains(root, candidate) {
593
- const normalizedRoot = resolve(root);
594
- const normalizedCandidate = resolve(candidate);
595
- return (normalizedCandidate === normalizedRoot ||
596
- normalizedCandidate.startsWith(`${normalizedRoot}${sep}`));
597
- }
598
- //# sourceMappingURL=git-routes.js.map