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,327 +0,0 @@
1
- /**
2
- * The contract a deploy platform implements — Vercel today, Cloudflare and
3
- * Netlify next.
4
- *
5
- * Every method here already existed on `VercelManager` with the same arguments;
6
- * this is a rename plus four deliberate neutralizations, each of which is a
7
- * place the abstraction would otherwise leak on provider #2:
8
- *
9
- * 1. **Build settings are a list, not fields.** `VercelProject` hard-codes
10
- * seven; Cloudflare's set differs and an IaaS provider has none.
11
- * 2. **Deployment state carries `rawState`.** The vendor's own word survives
12
- * normalization, so the first provider whose states don't map cleanly does
13
- * not force a contract change.
14
- * 3. **Build and runtime log lines are one type.** They answer different
15
- * questions but have the same shape, and a provider may serve only one.
16
- * 4. **Writes are a named action list, not fixed methods.** See
17
- * {@link DeployProviderActions}.
18
- *
19
- * The read-safe / write-capable split from `git-manager`/`git-actions` and
20
- * `db-peek`/`db-write` is preserved exactly: {@link DeployProvider} contains
21
- * nothing that changes what is deployed, and {@link DeployProviderActions} is a
22
- * separate object resolved separately and never exposed as an MCP tool.
23
- */
24
- import type { ProviderApiSpec } from "./egress.js";
25
- import type { ProviderStrings } from "./strings.js";
26
- /** Signed-in account. ← `VercelViewer` */
27
- export interface ProviderAccount {
28
- id: string;
29
- username: string;
30
- name?: string | null;
31
- email?: string | null;
32
- avatar?: string | null;
33
- }
34
- /** A team / org / account within the provider. ← `VercelTeam` */
35
- export interface ProviderScope {
36
- id: string;
37
- slug: string;
38
- name: string | null;
39
- }
40
- /** A project's Git connection, when it was imported from a repository. */
41
- export interface ProviderProjectLink {
42
- type: string;
43
- org?: string;
44
- repo?: string;
45
- productionBranch?: string;
46
- }
47
- /**
48
- * One build setting.
49
- *
50
- * `value: null` means "not overridden" — the provider is using the framework's
51
- * own default — which is a meaningful state and distinct from the setting being
52
- * *absent from the array*, which means "not read". Vercel's list endpoint omits
53
- * settings that its single-project endpoint fills in, and the settings panel
54
- * relies on telling those two apart.
55
- */
56
- export interface ProviderSetting {
57
- key: string;
58
- label: string;
59
- value: string | null;
60
- }
61
- /** ← `VercelProject` */
62
- export interface ProviderProject {
63
- id: string;
64
- name: string;
65
- framework?: string | null;
66
- updatedAt?: number;
67
- link?: ProviderProjectLink;
68
- settings: ProviderSetting[];
69
- }
70
- /**
71
- * Normalized deployment state, chosen to be the intersection that drives an
72
- * icon and a filter. Anything finer belongs in `rawState`.
73
- */
74
- export type ProviderDeploymentState = "queued" | "building" | "ready" | "error" | "canceled" | "blocked" | "deleted";
75
- /** ← `VercelDeployment` */
76
- export interface ProviderDeployment {
77
- id: string;
78
- name: string;
79
- /**
80
- * The deployment's hostname, **without a scheme** — consumers prefix
81
- * `https://`. Vercel returns it this way; Cloudflare returns a full URL and
82
- * its adapter strips the scheme.
83
- */
84
- url: string | null;
85
- /** Drives the icon and the filter. */
86
- state: ProviderDeploymentState;
87
- /** The vendor's own word for the state, shown in the UI detail. */
88
- rawState: string;
89
- /** `production` / `staging`; null is a preview deployment. */
90
- target: string | null;
91
- createdAt: number;
92
- readyAt?: number;
93
- /** True while this deployment serves the project's production alias. */
94
- isCurrentProduction?: boolean;
95
- creator?: {
96
- username?: string;
97
- email?: string;
98
- };
99
- meta: {
100
- branch?: string;
101
- sha?: string;
102
- commitMessage?: string;
103
- commitAuthor?: string;
104
- };
105
- inspectorUrl?: string;
106
- }
107
- export interface ProviderDeploymentDetail extends ProviderDeployment {
108
- aliases: string[];
109
- buildingAt?: number;
110
- errorMessage?: string;
111
- }
112
- /**
113
- * A line of build or runtime output. ← `VercelBuildLogLine` + `VercelRuntimeLogLine`
114
- *
115
- * Merged because the two differ only in what `level` holds and whether a
116
- * request is attached, and a provider may serve one without the other.
117
- */
118
- export interface ProviderLogLine {
119
- id: string;
120
- createdAt: number;
121
- kind: "build" | "runtime";
122
- /** `stdout` / `stderr` / `command` for build lines; `error` / `warning` / `info` for runtime. */
123
- level: string;
124
- text: string;
125
- source?: string;
126
- /** Runtime lines only — which request produced this line. */
127
- request?: {
128
- method?: string;
129
- path?: string;
130
- statusCode?: number;
131
- };
132
- }
133
- /**
134
- * A project environment variable, with its value deliberately absent.
135
- *
136
- * Listing answers "is this key set, and where" — the question a failed deploy
137
- * actually raises. The value is a separate, explicitly-requested read (see
138
- * {@link DeployProvider.getEnvValue}), so merely opening the tab never puts a
139
- * secret on the wire. ← `VercelEnvVar`
140
- */
141
- export interface ProviderEnvVar {
142
- id: string;
143
- key: string;
144
- /** `production` / `preview` / `development`. ← Vercel's `target` */
145
- environments: string[];
146
- /** `encrypted` / `plain` / `system` / `secret`. */
147
- type: string;
148
- /** Set when the variable is scoped to one preview branch. */
149
- gitBranch?: string | null;
150
- comment?: string | null;
151
- createdAt?: number;
152
- updatedAt?: number;
153
- }
154
- export interface ProviderDomainVerification {
155
- type: string;
156
- domain: string;
157
- value: string;
158
- reason?: string;
159
- }
160
- /** ← `VercelDomain` */
161
- export interface ProviderDomain {
162
- name: string;
163
- apexName?: string;
164
- verified: boolean;
165
- /** Set when the domain is a redirect rather than a served alias. */
166
- redirect?: string | null;
167
- gitBranch?: string | null;
168
- createdAt?: number;
169
- updatedAt?: number;
170
- /** Outstanding DNS records the user must add, when unverified. */
171
- verification: ProviderDomainVerification[];
172
- }
173
- /**
174
- * Optional reads. Declared in the manifest's `capabilities` so the generic view
175
- * can hide a tab rather than render one that errors.
176
- */
177
- export type DeployCapability = "projects" | "deployments" | "buildLogs" | "runtimeLogs" | "env" | "domains";
178
- /** The read-safe half. Nothing here changes what is deployed. */
179
- export interface DeployProvider {
180
- account(): Promise<ProviderAccount>;
181
- listScopes(): Promise<ProviderScope[]>;
182
- listProjects(opts?: {
183
- search?: string;
184
- repoUrl?: string;
185
- limit?: number;
186
- }): Promise<ProviderProject[]>;
187
- getProject(id: string): Promise<ProviderProject>;
188
- listDeployments(opts: {
189
- projectId: string;
190
- target?: "production" | "preview";
191
- limit?: number;
192
- }): Promise<ProviderDeployment[]>;
193
- getDeployment(id: string): Promise<ProviderDeploymentDetail>;
194
- buildLogs(id: string, limit?: number): Promise<ProviderLogLine[]>;
195
- /** Returns [] when the account's plan lacks them, rather than throwing. */
196
- runtimeLogs?(id: string, limit?: number): Promise<ProviderLogLine[]>;
197
- /** Values deliberately absent — see {@link ProviderEnvVar}. */
198
- listEnv?(projectId: string): Promise<ProviderEnvVar[]>;
199
- /** The one door for reading a secret. */
200
- getEnvValue?(projectId: string, envId: string): Promise<string>;
201
- listDomains?(projectId: string): Promise<ProviderDomain[]>;
202
- }
203
- export interface DeployActionInput {
204
- deploymentId: string;
205
- /** Required by actions that address the project rather than the deployment. */
206
- projectId?: string;
207
- /**
208
- * The deployment's own name and environment, read before the call and passed
209
- * through by actions that recreate it. Vercel's redeploy needs both, or a
210
- * production retry silently comes back as a preview.
211
- */
212
- name?: string;
213
- target?: string | null;
214
- /** Recorded by providers that accept a reason (Vercel's rollback). */
215
- description?: string;
216
- }
217
- export interface DeployActionResult {
218
- /** Set when the action created a new deployment, as `redeploy` does. */
219
- deployment?: {
220
- id: string;
221
- url: string | null;
222
- };
223
- }
224
- /**
225
- * The write-capable half — dashboard-only, never an MCP tool.
226
- *
227
- * **Why `run(action, …)` rather than `redeploy()`/`cancel()`/`promote()`/
228
- * `rollback()`:** promote-vs-rollback is Vercel-specific vocabulary (Vercel
229
- * records a rollback, with its reason, on a different endpoint from a forward
230
- * promotion). Cloudflare has "retry" and "rollback" but no "promote"; Netlify
231
- * has "publish". Fixing four method names into the contract would bake in one
232
- * vendor's words. The names a provider actually offers, and which of them
233
- * change what production serves, are declared in its manifest instead.
234
- */
235
- export interface DeployProviderActions {
236
- run(action: string, input: DeployActionInput): Promise<DeployActionResult>;
237
- createEnv?(projectId: string, input: {
238
- key: string;
239
- value: string;
240
- environments: string[];
241
- type?: "encrypted" | "plain";
242
- }): Promise<ProviderEnvVar>;
243
- updateEnv?(projectId: string, envId: string, input: {
244
- value?: string;
245
- environments?: string[];
246
- }): Promise<ProviderEnvVar>;
247
- deleteEnv?(projectId: string, envId: string): Promise<void>;
248
- }
249
- /**
250
- * The vendor-specific inputs to project resolution — the only two things in
251
- * that three-tier ladder that are not generic.
252
- */
253
- export interface DeployProviderHooks {
254
- /** Normalizes a git remote into the URL the vendor keys projects by. */
255
- repoUrl(remoteUrl: string): string | null;
256
- /**
257
- * The file the vendor's CLI writes on `link`. Vercel:
258
- * `{ path: ".vercel/project.json", field: "projectId" }`. Providers without
259
- * one simply skip that tier.
260
- */
261
- linkFile?: {
262
- path: string;
263
- field: string;
264
- };
265
- }
266
- /**
267
- * The declarative half of a provider — everything a generic view needs in
268
- * order to render it without knowing which provider it is.
269
- *
270
- * Plain data because this is what a provider manifest carries. `strings` and
271
- * `auth` join it when the registry lands; today it holds what already exists.
272
- */
273
- export interface DeployProviderManifest {
274
- id: string;
275
- name: string;
276
- kind: "deploy";
277
- /**
278
- * This provider's own words, per locale — its action labels, their toasts and
279
- * confirmations, and what it calls a scope (`scope.label`: "Team" for Vercel,
280
- * "Account" for Cloudflare).
281
- *
282
- * Here rather than in the host's `i18n/en.ts` because the provider, not the
283
- * host, determines which keys exist: `actions` is a free list of vendor
284
- * vocabulary, so the host cannot hold a catalogue entry for a word it has
285
- * never seen. See `providers/strings.ts`.
286
- */
287
- strings: ProviderStrings;
288
- /**
289
- * How this provider can be connected.
290
- *
291
- * The generic setup screen cannot otherwise know whether to offer "sign in
292
- * with browser": Vercel has all three sources, while Cloudflare has no
293
- * registration endpoint for `providers/oauth.ts` to mint a client against, so
294
- * offering it there is a button that can only fail. This is a fact about each
295
- * provider's *current* wiring rather than a permanent one — see
296
- * `cloudflare-auth.ts` — which is exactly why it is declared per provider
297
- * instead of inferred. Kept in step with the `ProviderAuthSpec` by
298
- * `test/provider-routes.test.ts`.
299
- */
300
- authSources: ("cli" | "stored" | "oauth")[];
301
- capabilities: DeployCapability[];
302
- /**
303
- * Whether a scope must be chosen before anything can be read at all.
304
- *
305
- * Cloudflare addresses every Pages URL as `/accounts/<id>/…`, so without an
306
- * account id there is no request to make; Vercel's personal scope is a real
307
- * resting state, so "no scope" is normal there. The switcher needs the
308
- * difference because a scope list can come back empty for a perfectly good
309
- * token — enumerating Cloudflare accounts needs `Account Settings: Read`,
310
- * which a Pages token has no reason to carry — and the two providers want
311
- * opposite things in that case: Vercel, nothing; Cloudflare, a way to enter
312
- * the id by hand rather than a dead end.
313
- */
314
- requiresScope?: boolean;
315
- /** Action names accepted by {@link DeployProviderActions.run}. */
316
- actions: string[];
317
- /** The subset of `actions` that changes what production serves; the UI confirms these first. */
318
- productionAffecting: string[];
319
- /**
320
- * The egress allowlist — every host this provider may reach.
321
- *
322
- * Enforced, not documented: the provider's registry entry mints its client
323
- * with `createProviderFetch(manifest)`, and a request to any other host throws
324
- * before it is sent. See `providers/egress.ts`.
325
- */
326
- api: ProviderApiSpec;
327
- }
@@ -1,25 +0,0 @@
1
- /**
2
- * The contract a deploy platform implements — Vercel today, Cloudflare and
3
- * Netlify next.
4
- *
5
- * Every method here already existed on `VercelManager` with the same arguments;
6
- * this is a rename plus four deliberate neutralizations, each of which is a
7
- * place the abstraction would otherwise leak on provider #2:
8
- *
9
- * 1. **Build settings are a list, not fields.** `VercelProject` hard-codes
10
- * seven; Cloudflare's set differs and an IaaS provider has none.
11
- * 2. **Deployment state carries `rawState`.** The vendor's own word survives
12
- * normalization, so the first provider whose states don't map cleanly does
13
- * not force a contract change.
14
- * 3. **Build and runtime log lines are one type.** They answer different
15
- * questions but have the same shape, and a provider may serve only one.
16
- * 4. **Writes are a named action list, not fixed methods.** See
17
- * {@link DeployProviderActions}.
18
- *
19
- * The read-safe / write-capable split from `git-manager`/`git-actions` and
20
- * `db-peek`/`db-write` is preserved exactly: {@link DeployProvider} contains
21
- * nothing that changes what is deployed, and {@link DeployProviderActions} is a
22
- * separate object resolved separately and never exposed as an MCP tool.
23
- */
24
- export {};
25
- //# sourceMappingURL=deploy-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy-provider.js","sourceRoot":"","sources":["../../../src/core/providers/deploy-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG"}
@@ -1,58 +0,0 @@
1
- /**
2
- * The provider egress boundary — a `fetch` scoped to a provider's declared
3
- * `api.hosts`.
4
- *
5
- * §6 of `docs/plans/2026-08-13-provider-registry-design.md` calls `api.hosts`
6
- * "the security boundary", and §11 records that the boundary existed only in
7
- * prose: all three managers called global `fetch` directly. This is the module
8
- * that makes it real, and it is gate item 3 of the freeze decision.
9
- *
10
- * **Why it matters even while every provider is in-tree.** A provider
11
- * necessarily receives credentials and runs inside the daemon — the same
12
- * process holding GitHub tokens, `db-write.ts` access and process-spawn
13
- * ability. In-tree the code is reviewed and the egress auditable, so this buys
14
- * documentation rather than protection. The moment a provider is *downloaded*,
15
- * it is the entire barrier. Landing it now means the three in-tree providers
16
- * prove the shape before anything third-party depends on it.
17
- *
18
- * **The hole it closes today.** All three `xRequest` helpers accept an absolute
19
- * URL (`path.startsWith("http")`) and skip the base URL entirely. That escape
20
- * exists for pagination cursors, and it is exactly what provider code would use
21
- * to send an `Authorization`-bearing request anywhere it liked. The allowlist is
22
- * checked against the *final* URL, so the escape no longer escapes.
23
- */
24
- /**
25
- * The egress allowlist a provider manifest declares.
26
- *
27
- * Hosts are matched **exactly** — no wildcards, deliberately. Every vendor here
28
- * has a customer-controlled subdomain space (`*.vercel.app`, `*.pages.dev`), so
29
- * a pattern like `*.vercel.com` reads as a convenience while quietly admitting
30
- * hosts the vendor does not control. A provider that genuinely needs a second
31
- * host lists the second host.
32
- */
33
- export interface ProviderApiSpec {
34
- /** Bare hostnames, no scheme and no path: `["api.vercel.com"]`. */
35
- hosts: string[];
36
- }
37
- /** A `fetch` that can only reach one provider's declared hosts. */
38
- export type ProviderFetch = (url: string | URL, init?: RequestInit) => Promise<Response>;
39
- /**
40
- * A refused request. Distinct from every `*ApiError` because nothing was sent —
41
- * there is no status and no vendor to blame, only a provider asking for
42
- * something its manifest does not declare.
43
- */
44
- export declare class ProviderEgressError extends Error {
45
- readonly providerId: string;
46
- readonly url: string;
47
- constructor(message: string, providerId: string, url: string);
48
- }
49
- /**
50
- * A `fetch` for one provider, refusing anything its manifest does not declare.
51
- *
52
- * Takes the manifest rather than a bare host list so the id in an error message
53
- * and the allowlist it was checked against cannot drift apart.
54
- */
55
- export declare function createProviderFetch(manifest: {
56
- id: string;
57
- api: ProviderApiSpec;
58
- }, base?: ProviderFetch): ProviderFetch;
@@ -1,124 +0,0 @@
1
- /**
2
- * The provider egress boundary — a `fetch` scoped to a provider's declared
3
- * `api.hosts`.
4
- *
5
- * §6 of `docs/plans/2026-08-13-provider-registry-design.md` calls `api.hosts`
6
- * "the security boundary", and §11 records that the boundary existed only in
7
- * prose: all three managers called global `fetch` directly. This is the module
8
- * that makes it real, and it is gate item 3 of the freeze decision.
9
- *
10
- * **Why it matters even while every provider is in-tree.** A provider
11
- * necessarily receives credentials and runs inside the daemon — the same
12
- * process holding GitHub tokens, `db-write.ts` access and process-spawn
13
- * ability. In-tree the code is reviewed and the egress auditable, so this buys
14
- * documentation rather than protection. The moment a provider is *downloaded*,
15
- * it is the entire barrier. Landing it now means the three in-tree providers
16
- * prove the shape before anything third-party depends on it.
17
- *
18
- * **The hole it closes today.** All three `xRequest` helpers accept an absolute
19
- * URL (`path.startsWith("http")`) and skip the base URL entirely. That escape
20
- * exists for pagination cursors, and it is exactly what provider code would use
21
- * to send an `Authorization`-bearing request anywhere it liked. The allowlist is
22
- * checked against the *final* URL, so the escape no longer escapes.
23
- */
24
- /**
25
- * A refused request. Distinct from every `*ApiError` because nothing was sent —
26
- * there is no status and no vendor to blame, only a provider asking for
27
- * something its manifest does not declare.
28
- */
29
- export class ProviderEgressError extends Error {
30
- providerId;
31
- url;
32
- constructor(message, providerId, url) {
33
- super(message);
34
- this.providerId = providerId;
35
- this.url = url;
36
- this.name = "ProviderEgressError";
37
- }
38
- }
39
- /**
40
- * A redirect chain is followed by hand so that every hop is checked.
41
- *
42
- * The default `redirect: "follow"` would let an allowlisted host bounce a
43
- * credential-bearing request to an unlisted one, and open redirects on vendor
44
- * APIs are common enough that this is not a theoretical concern. Each hop goes
45
- * back through the allowlist; the cap stops a redirect loop from hanging a
46
- * dashboard request.
47
- */
48
- const MAX_REDIRECTS = 5;
49
- /** Read at call time, not at module load, so a test's `vi.stubGlobal` still wins. */
50
- const globalFetch = (url, init) => fetch(url, init);
51
- /**
52
- * A `fetch` for one provider, refusing anything its manifest does not declare.
53
- *
54
- * Takes the manifest rather than a bare host list so the id in an error message
55
- * and the allowlist it was checked against cannot drift apart.
56
- */
57
- export function createProviderFetch(manifest, base = globalFetch) {
58
- const { id } = manifest;
59
- const allowed = new Set(manifest.api.hosts.map((host) => host.trim().toLowerCase()));
60
- const send = async (input, init, hop) => {
61
- const url = assertAllowed(id, allowed, input);
62
- // `manual` so a 3xx comes back as a response to inspect rather than being
63
- // followed past the allowlist.
64
- const response = await base(url, { ...init, redirect: "manual" });
65
- const location = redirectTarget(response);
66
- if (!location)
67
- return response;
68
- if (hop >= MAX_REDIRECTS) {
69
- throw new ProviderEgressError(`Provider "${id}" was redirected more than ${MAX_REDIRECTS} times from ${url.href}.`, id, url.href);
70
- }
71
- return send(new URL(location, url), afterRedirect(init, response.status), hop + 1);
72
- };
73
- return (input, init) => send(input, init, 0);
74
- }
75
- /** The URL a response redirects to, or null when it is not a redirect. */
76
- function redirectTarget(response) {
77
- if (response.status < 300 || response.status > 399)
78
- return null;
79
- return response.headers.get("location");
80
- }
81
- /**
82
- * How a request changes across a redirect, per the Fetch standard: 303 always
83
- * becomes a GET, 301/302 turn a POST into one, and 307/308 preserve both method
84
- * and body.
85
- */
86
- function afterRedirect(init, status) {
87
- const method = (init?.method ?? "GET").toUpperCase();
88
- const downgrades = status === 303 || ((status === 301 || status === 302) && method === "POST");
89
- if (!downgrades)
90
- return init;
91
- const { body: _body, ...rest } = init ?? {};
92
- return { ...rest, method: "GET" };
93
- }
94
- /** Hosts that cannot leave the machine, and so need no transport encryption. */
95
- function isLoopback(hostname) {
96
- return hostname === "127.0.0.1" || hostname === "localhost" || hostname === "[::1]" || hostname === "::1";
97
- }
98
- /** The check itself. Throws before anything is sent, so a refused call leaks nothing. */
99
- function assertAllowed(providerId, allowed, input) {
100
- let url;
101
- try {
102
- url = input instanceof URL ? input : new URL(String(input));
103
- }
104
- catch {
105
- throw new ProviderEgressError(`Provider "${providerId}" asked for a URL that is not absolute: ${String(input)}`, providerId, String(input));
106
- }
107
- // Every provider API is HTTPS, and the schemes this rules out are the
108
- // interesting ones: `file:` reads the disk, `data:` smuggles a payload past a
109
- // host check, and `http:` puts a token on the wire in clear text.
110
- //
111
- // The one exception is a loopback host, which is only ever reachable because
112
- // `providerApiBase()` accepted an override naming one — and a request that
113
- // never leaves the loopback interface is not on a wire to be read. Narrowing
114
- // it to loopback is what keeps this from becoming a general `http:` opening.
115
- if (url.protocol !== "https:" && !(url.protocol === "http:" && isLoopback(url.hostname))) {
116
- throw new ProviderEgressError(`Provider "${providerId}" may only use https, not ${url.protocol.replace(":", "")}: ${url.href}`, providerId, url.href);
117
- }
118
- if (!allowed.has(url.hostname.toLowerCase())) {
119
- throw new ProviderEgressError(`Provider "${providerId}" is not allowed to reach ${url.hostname}. ` +
120
- `Its manifest declares: ${[...allowed].join(", ") || "no hosts"}.`, providerId, url.href);
121
- }
122
- return url;
123
- }
124
- //# sourceMappingURL=egress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"egress.js","sourceRoot":"","sources":["../../../src/core/providers/egress.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import type { ConfigStore } from "../config-store.js";
2
- import type { HostSshTarget } from "./host-provider.js";
3
- /**
4
- * Every connected host provider's instances, as SSH targets.
5
- *
6
- * This is the bridge §7 of the design plan was written for: the servers list
7
- * the user already has gains a row per provider instance, and everything
8
- * downstream — `probeSshServer`, `readRemoteHostMetrics`, the terminal route,
9
- * the remote service runner — keeps working against a plain
10
- * `SshServerDefinition` without knowing a provider exists.
11
- *
12
- * **Never throws.** A provider that is not connected, whose token has expired,
13
- * or whose API is down contributes nothing; the user's hand-registered and
14
- * `~/.ssh/config` hosts must still list. A provider outage is not a reason for
15
- * the servers page to go blank, and there is nowhere in that page's shape to
16
- * report one.
17
- */
18
- export declare function hostProviderSshTargets(configStore: ConfigStore): Promise<HostSshTarget[]>;
19
- /** Drops the cache so the next read reflects a change we just made. */
20
- export declare function invalidateHostSshTargets(): void;
@@ -1,57 +0,0 @@
1
- import { hostProviders } from "./registry.js";
2
- /**
3
- * Every connected host provider's instances, as SSH targets.
4
- *
5
- * This is the bridge §7 of the design plan was written for: the servers list
6
- * the user already has gains a row per provider instance, and everything
7
- * downstream — `probeSshServer`, `readRemoteHostMetrics`, the terminal route,
8
- * the remote service runner — keeps working against a plain
9
- * `SshServerDefinition` without knowing a provider exists.
10
- *
11
- * **Never throws.** A provider that is not connected, whose token has expired,
12
- * or whose API is down contributes nothing; the user's hand-registered and
13
- * `~/.ssh/config` hosts must still list. A provider outage is not a reason for
14
- * the servers page to go blank, and there is nowhere in that page's shape to
15
- * report one.
16
- */
17
- export async function hostProviderSshTargets(configStore) {
18
- const cached = readCache();
19
- if (cached)
20
- return cached;
21
- const perProvider = await Promise.all(hostProviders.map(async (provider) => {
22
- try {
23
- const { provider: client } = await provider.context(configStore);
24
- const instances = await client.listInstances();
25
- return instances
26
- .map((instance) => client.toSshTarget(instance))
27
- .filter((target) => target !== null);
28
- }
29
- catch {
30
- return [];
31
- }
32
- }));
33
- const targets = perProvider.flat();
34
- cache = { at: Date.now(), targets };
35
- return targets;
36
- }
37
- /**
38
- * How long a provider's instance list is reused.
39
- *
40
- * The servers view reloads on an interval *and* on every window focus, and each
41
- * reload would otherwise be one API call per connected provider. Instances do
42
- * not change on a human timescale, so a short window trades staleness nobody
43
- * notices for not being rate-limited by the vendor. Power actions clear it
44
- * explicitly, which is the one case where the delay would be visible.
45
- */
46
- const CACHE_TTL_MS = 30_000;
47
- let cache = null;
48
- function readCache() {
49
- if (!cache || Date.now() - cache.at >= CACHE_TTL_MS)
50
- return null;
51
- return cache.targets;
52
- }
53
- /** Drops the cache so the next read reflects a change we just made. */
54
- export function invalidateHostSshTargets() {
55
- cache = null;
56
- }
57
- //# sourceMappingURL=host-bridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-bridge.js","sourceRoot":"","sources":["../../../src/core/providers/host-bridge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAwB;IAExB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACjE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;YAC/C,OAAO,SAAS;iBACb,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;iBAC/C,MAAM,CAAC,CAAC,MAAM,EAA2B,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACnC,KAAK,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC;IACpC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,YAAY,GAAG,MAAM,CAAC;AAE5B,IAAI,KAAK,GAAoD,IAAI,CAAC;AAElE,SAAS,SAAS;IAChB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,YAAY;QAAE,OAAO,IAAI,CAAC;IACjE,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,wBAAwB;IACtC,KAAK,GAAG,IAAI,CAAC;AACf,CAAC"}