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 +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