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,429 +0,0 @@
1
- import { randomBytes, timingSafeEqual } from "node:crypto";
2
- import { chmod, mkdtemp, rm, stat } from "node:fs/promises";
3
- import net from "node:net";
4
- import { homedir, tmpdir } from "node:os";
5
- import { join } from "node:path";
6
- import { spawn } from "node:child_process";
7
- export const TERMINAL_FRAME = {
8
- auth: 1,
9
- input: 2,
10
- resize: 3,
11
- detach: 4,
12
- output: 101,
13
- attached: 102,
14
- revoked: 103,
15
- error: 104,
16
- };
17
- export const MAX_TERMINAL_FRAME_BYTES = 1024 * 1024;
18
- const MAX_OUTPUT_QUEUE_BYTES = 1024 * 1024;
19
- const AUTH_DEADLINE_MS = 30_000;
20
- const AUTH_READ_TIMEOUT_MS = 500;
21
- const GHOSTTY_APP_PATH = "/Applications/Ghostty.app";
22
- const ITERM2_APP_PATHS = iTerm2ApplicationPaths();
23
- export const EXTERNAL_TERMINAL_RESET = Buffer.from("\u001b[0m\u001b[?25h\u001b[2J\u001b[H");
24
- export const ITERM2_LAUNCH_SCRIPT = [
25
- "on run argv",
26
- ' tell application "iTerm2"',
27
- " set newWindow to (create window with default profile)",
28
- // Wait for the login shell to accept input before writing the attach command.
29
- " delay 1",
30
- " tell current session of newWindow",
31
- " set name to (item 2 of argv)",
32
- " write text (item 1 of argv)",
33
- " end tell",
34
- " activate",
35
- " end tell",
36
- "end run",
37
- ].join("\n");
38
- export const TERMINAL_LAUNCH_SCRIPT = [
39
- "on run argv",
40
- ' tell application "Terminal"',
41
- " set newTab to do script (item 1 of argv)",
42
- " set custom title of newTab to (item 2 of argv)",
43
- " activate",
44
- " end tell",
45
- "end run",
46
- ].join("\n");
47
- export const GHOSTTY_LAUNCH_SCRIPT = [
48
- "on run argv",
49
- ' tell application "Ghostty"',
50
- " set configuration to new surface configuration from {command:(item 1 of argv), wait after command:false}",
51
- " set newWindow to new window with configuration configuration",
52
- " activate",
53
- " end tell",
54
- "end run",
55
- ].join("\n");
56
- /**
57
- * Creates a private, one-use Unix-socket relay and opens the selected terminal
58
- * with the exact Node executable and installed package entry used by the daemon.
59
- */
60
- export class ExternalTerminalLauncher {
61
- entryPath;
62
- preference;
63
- launch;
64
- constructor(options) {
65
- this.entryPath = options.entryPath;
66
- this.preference = options.preference ?? (() => "automatic");
67
- this.launch = options.launch ?? launchTerminalApp;
68
- }
69
- async open(callbacks, options = {}) {
70
- if (process.platform !== "darwin") {
71
- throw new Error("External Terminal is currently available on macOS only.");
72
- }
73
- const entry = await stat(this.entryPath).catch(() => null);
74
- if (!entry?.isFile()) {
75
- throw new Error(`Cannot find the NoMoreIDE entry point at ${this.entryPath}. Build the package first.`);
76
- }
77
- const directory = await mkdtemp(join(tmpdir(), "nomoreide-terminal-"));
78
- await chmod(directory, 0o700);
79
- const socketPath = join(directory, "attach.sock");
80
- const token = randomBytes(32).toString("hex");
81
- const lease = options.lease ?? randomBytes(16).toString("hex");
82
- const title = sanitizeTerminalTitle(options.title);
83
- let server;
84
- let authenticated;
85
- let finished = false;
86
- const candidates = new Set();
87
- const cleanup = () => {
88
- if (finished)
89
- return;
90
- finished = true;
91
- for (const socket of candidates)
92
- socket.destroy();
93
- candidates.clear();
94
- server?.close();
95
- void rm(directory, { force: true, recursive: true });
96
- };
97
- const detach = () => {
98
- cleanup();
99
- callbacks.detached();
100
- };
101
- try {
102
- server = net.createServer((socket) => {
103
- if (authenticated || finished) {
104
- socket.destroy();
105
- return;
106
- }
107
- candidates.add(socket);
108
- socket.setTimeout(AUTH_READ_TIMEOUT_MS);
109
- const parser = new FrameParser();
110
- let authorized = false;
111
- socket.on("data", (chunk) => {
112
- try {
113
- for (const frame of parser.push(chunk)) {
114
- if (!authorized) {
115
- if (frame.kind !== TERMINAL_FRAME.auth || !timingSafeToken(frame.data, token)) {
116
- writeFrame(socket, TERMINAL_FRAME.error, Buffer.from("Terminal attachment authentication failed"));
117
- socket.end();
118
- return;
119
- }
120
- authorized = true;
121
- authenticated = socket;
122
- candidates.delete(socket);
123
- socket.setTimeout(0);
124
- server?.close();
125
- for (const candidate of candidates)
126
- candidate.destroy();
127
- candidates.clear();
128
- const replay = callbacks.attached();
129
- if (replay === null) {
130
- writeFrame(socket, TERMINAL_FRAME.revoked);
131
- socket.end();
132
- return;
133
- }
134
- writeFrame(socket, TERMINAL_FRAME.attached);
135
- writeFrame(socket, TERMINAL_FRAME.output, EXTERNAL_TERMINAL_RESET);
136
- if (replay.length > 0)
137
- writeFrame(socket, TERMINAL_FRAME.output, replay);
138
- if (title) {
139
- writeFrame(socket, TERMINAL_FRAME.output, terminalTitleSequence(title));
140
- }
141
- continue;
142
- }
143
- if (frame.kind === TERMINAL_FRAME.input)
144
- callbacks.input(frame.data);
145
- else if (frame.kind === TERMINAL_FRAME.resize && frame.data.length === 4) {
146
- const cols = frame.data.readUInt16BE(0);
147
- const rows = frame.data.readUInt16BE(2);
148
- if (cols > 0 && rows > 0)
149
- callbacks.resize(cols, rows);
150
- }
151
- else if (frame.kind === TERMINAL_FRAME.detach) {
152
- socket.end();
153
- }
154
- }
155
- }
156
- catch {
157
- socket.destroy();
158
- }
159
- });
160
- socket.on("timeout", () => socket.destroy());
161
- socket.on("close", () => {
162
- candidates.delete(socket);
163
- if (authorized && !finished)
164
- detach();
165
- });
166
- socket.on("error", () => { });
167
- });
168
- await new Promise((resolve, reject) => {
169
- server?.once("error", reject);
170
- server?.listen(socketPath, resolve);
171
- });
172
- await chmod(socketPath, 0o600);
173
- const deadline = setTimeout(() => {
174
- if (!authenticated && !finished)
175
- detach();
176
- }, AUTH_DEADLINE_MS);
177
- deadline.unref?.();
178
- server.once("close", () => clearTimeout(deadline));
179
- await this.launch(socketPath, token, this.entryPath, await this.preference(), title);
180
- }
181
- catch (error) {
182
- cleanup();
183
- throw error;
184
- }
185
- return {
186
- lease,
187
- sendOutput(data) {
188
- const socket = authenticated;
189
- if (!socket || finished || socket.destroyed)
190
- return true;
191
- const frameBytes = data.length + 5;
192
- if (data.length > MAX_TERMINAL_FRAME_BYTES || socket.writableLength + frameBytes > MAX_OUTPUT_QUEUE_BYTES) {
193
- detach();
194
- return false;
195
- }
196
- try {
197
- writeFrame(socket, TERMINAL_FRAME.output, data);
198
- return true;
199
- }
200
- catch {
201
- detach();
202
- return false;
203
- }
204
- },
205
- revoke() {
206
- const socket = authenticated;
207
- if (socket && !socket.destroyed) {
208
- try {
209
- writeFrame(socket, TERMINAL_FRAME.revoked);
210
- }
211
- catch { }
212
- socket.end();
213
- }
214
- cleanup();
215
- },
216
- };
217
- }
218
- }
219
- export function encodeFrame(kind, data = Buffer.alloc(0)) {
220
- if (data.length > MAX_TERMINAL_FRAME_BYTES)
221
- throw new Error("Terminal frame is too large.");
222
- const frame = Buffer.allocUnsafe(5 + data.length);
223
- frame[0] = kind;
224
- frame.writeUInt32BE(data.length, 1);
225
- data.copy(frame, 5);
226
- return frame;
227
- }
228
- function writeFrame(socket, kind, data = Buffer.alloc(0)) {
229
- socket.write(encodeFrame(kind, data));
230
- }
231
- class FrameParser {
232
- pending = Buffer.alloc(0);
233
- push(chunk) {
234
- this.pending = this.pending.length === 0 ? chunk : Buffer.concat([this.pending, chunk]);
235
- const frames = [];
236
- while (this.pending.length >= 5) {
237
- const length = this.pending.readUInt32BE(1);
238
- if (length > MAX_TERMINAL_FRAME_BYTES)
239
- throw new Error("Terminal frame is too large.");
240
- if (this.pending.length < 5 + length)
241
- break;
242
- frames.push({ kind: this.pending[0] ?? 0, data: this.pending.subarray(5, 5 + length) });
243
- this.pending = this.pending.subarray(5 + length);
244
- }
245
- return frames;
246
- }
247
- }
248
- function timingSafeToken(data, token) {
249
- const expected = Buffer.from(token);
250
- if (data.length !== expected.length)
251
- return false;
252
- return timingSafeEqual(data, expected);
253
- }
254
- function posixQuote(value) {
255
- return `'${value.replaceAll("'", `'\\''`)}'`;
256
- }
257
- function sanitizeTerminalTitle(value) {
258
- if (!value)
259
- return "";
260
- return [...value]
261
- .map((character) => {
262
- const code = character.codePointAt(0) ?? 0;
263
- return code < 0x20 || code === 0x7f || (code >= 0x80 && code <= 0x9f)
264
- ? " "
265
- : character;
266
- })
267
- .join("")
268
- .trim()
269
- .split(/\s+/)
270
- .join(" ");
271
- }
272
- export function externalTerminalTitle(provider, label) {
273
- const identity = provider === "codex"
274
- ? { fallback: "Codex task", marker: "🟢", provider: "CODEX" }
275
- : provider === "claude"
276
- ? { fallback: "Claude task", marker: "🟠", provider: "CLAUDE" }
277
- : { fallback: "Agent task", marker: "🔵", provider: "AGENT" };
278
- const taskLabel = sanitizeTerminalTitle(label) || identity.fallback;
279
- return `${identity.marker} ${identity.provider} · ${taskLabel} · NoMoreIDE`;
280
- }
281
- export function terminalTitleSequence(title) {
282
- return Buffer.from(`\u001b]2;${sanitizeTerminalTitle(title)}\u001b\\`);
283
- }
284
- export function iTerm2ApplicationPaths(homeDirectory = homedir()) {
285
- return [
286
- "/Applications/iTerm.app",
287
- join(homeDirectory, "Applications", "iTerm.app"),
288
- ];
289
- }
290
- export function selectExternalTerminal(preference, installed) {
291
- if (preference === "ghostty" && !installed.ghostty) {
292
- throw new Error("Ghostty is not installed in /Applications.");
293
- }
294
- if (preference === "iterm2" && !installed.iterm2) {
295
- throw new Error("iTerm2 is not installed in a system or user Applications folder.");
296
- }
297
- if (preference !== "automatic")
298
- return preference;
299
- if (installed.ghostty)
300
- return "ghostty";
301
- if (installed.iterm2)
302
- return "iterm2";
303
- return "terminal";
304
- }
305
- async function launchTerminalApp(socketPath, token, entryPath, preference, title) {
306
- const [ghostty, iterm2] = await Promise.all([
307
- stat(GHOSTTY_APP_PATH).then((entry) => entry.isDirectory()).catch(() => false),
308
- applicationInstalled(ITERM2_APP_PATHS),
309
- ]);
310
- const terminal = selectExternalTerminal(preference, { ghostty, iterm2 });
311
- if (terminal === "ghostty")
312
- return launchGhostty(socketPath, token, entryPath, title);
313
- if (terminal === "iterm2")
314
- return launchITerm2(socketPath, token, entryPath, title);
315
- const command = `exec ${posixQuote(process.execPath)} ${posixQuote(entryPath)} __terminal-attach ${posixQuote(socketPath)} ${posixQuote(token)}`;
316
- await launchWithAppleScript(TERMINAL_LAUNCH_SCRIPT, command, title, "Terminal");
317
- }
318
- async function applicationInstalled(paths) {
319
- const matches = await Promise.all(paths.map((path) => stat(path).then((entry) => entry.isDirectory()).catch(() => false)));
320
- return matches.some(Boolean);
321
- }
322
- async function launchITerm2(socketPath, token, entryPath, title) {
323
- const command = `exec ${posixQuote(process.execPath)} ${posixQuote(entryPath)} __terminal-attach ${posixQuote(socketPath)} ${posixQuote(token)}`;
324
- await launchWithAppleScript(ITERM2_LAUNCH_SCRIPT, command, title, "iTerm2");
325
- }
326
- async function launchWithAppleScript(script, command, title, application) {
327
- await new Promise((resolve, reject) => {
328
- const child = spawn("/usr/bin/osascript", ["-e", script, "--", command, title], {
329
- stdio: "ignore",
330
- });
331
- child.once("error", () => reject(new Error(`Could not open ${application}.`)));
332
- child.once("exit", (code) => {
333
- if (code === 0)
334
- resolve();
335
- else
336
- reject(new Error(`Could not open ${application} (osascript exited with ${code ?? "unknown"}).`));
337
- });
338
- });
339
- }
340
- export function ghosttyLaunchCommand(socketPath, token, entryPath) {
341
- return `${posixQuote(process.execPath)} ${posixQuote(entryPath)} __terminal-attach ${posixQuote(socketPath)} ${posixQuote(token)}`;
342
- }
343
- async function launchGhostty(socketPath, token, entryPath, title) {
344
- await launchWithAppleScript(GHOSTTY_LAUNCH_SCRIPT, ghosttyLaunchCommand(socketPath, token, entryPath), title, "Ghostty");
345
- }
346
- /** Hidden attach client used by supported terminal apps through the installed entry. */
347
- export async function runExternalTerminalAttach(socketPath, token) {
348
- if (process.platform !== "darwin")
349
- throw new Error("External Terminal is currently available on macOS only.");
350
- if (!socketPath || !token)
351
- throw new Error("Invalid Terminal attachment request.");
352
- const socket = net.createConnection(socketPath);
353
- await new Promise((resolve, reject) => {
354
- socket.once("connect", resolve);
355
- socket.once("error", reject);
356
- });
357
- writeFrame(socket, TERMINAL_FRAME.auth, Buffer.from(token));
358
- const input = process.stdin;
359
- const output = process.stdout;
360
- const parser = new FrameParser();
361
- let attached = false;
362
- let settled = false;
363
- const rawBefore = input.isRaw;
364
- const sendResize = () => {
365
- if (!attached || !output.columns || !output.rows)
366
- return;
367
- const size = Buffer.allocUnsafe(4);
368
- size.writeUInt16BE(Math.min(output.columns, 65_535), 0);
369
- size.writeUInt16BE(Math.min(output.rows, 65_535), 2);
370
- writeFrame(socket, TERMINAL_FRAME.resize, size);
371
- };
372
- const onInput = (data) => writeFrame(socket, TERMINAL_FRAME.input, data);
373
- const restore = () => {
374
- input.off("data", onInput);
375
- process.off("SIGWINCH", sendResize);
376
- output.off("drain", resumeSocket);
377
- if (input.isTTY)
378
- input.setRawMode(Boolean(rawBefore));
379
- input.pause();
380
- };
381
- const resumeSocket = () => {
382
- if (!settled)
383
- socket.resume();
384
- };
385
- await new Promise((resolve, reject) => {
386
- const finish = (error) => {
387
- if (settled)
388
- return;
389
- settled = true;
390
- restore();
391
- socket.destroy();
392
- error ? reject(error) : resolve();
393
- };
394
- socket.on("data", (chunk) => {
395
- try {
396
- for (const frame of parser.push(chunk)) {
397
- if (frame.kind === TERMINAL_FRAME.attached && !attached) {
398
- attached = true;
399
- if (input.isTTY)
400
- input.setRawMode(true);
401
- input.resume();
402
- input.on("data", onInput);
403
- process.on("SIGWINCH", sendResize);
404
- sendResize();
405
- }
406
- else if (frame.kind === TERMINAL_FRAME.output) {
407
- if (!output.write(frame.data)) {
408
- socket.pause();
409
- output.once("drain", resumeSocket);
410
- }
411
- }
412
- else if (frame.kind === TERMINAL_FRAME.revoked) {
413
- finish();
414
- }
415
- else if (frame.kind === TERMINAL_FRAME.error) {
416
- finish(new Error(frame.data.toString("utf8")));
417
- }
418
- }
419
- }
420
- catch (error) {
421
- finish(error instanceof Error ? error : new Error(String(error)));
422
- }
423
- });
424
- socket.once("end", () => finish());
425
- socket.once("close", () => finish());
426
- socket.once("error", (error) => finish(error));
427
- });
428
- }
429
- //# sourceMappingURL=external-terminal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"external-terminal.js","sourceRoot":"","sources":["../../src/core/external-terminal.ts"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- import type { AgentSessionStore } from "./agent-sessions.js";
2
- import type { ReproBundleBuilder } from "./repro-bundle.js";
3
- import { SnapshotManager } from "./snapshot-manager.js";
4
- /**
5
- * The Error → Fix loop. Closes the AI-native circle: turn an Error Inbox
6
- * incident into one agent task whose result is a reviewable, one-click-revertable
7
- * change-set.
8
- *
9
- * Today the separate features (Error Inbox, repro bundle, snapshot/restore,
10
- * change-set review) are chained by hand. {@link FixLoop.prepare} stitches them:
11
- * it builds the repro bundle, snapshots the working tree, and records an agent
12
- * session pinned to that snapshot — so whatever the in-dock agent then edits
13
- * surfaces in Agent → Changes with a "restore to before this session" button.
14
- *
15
- * Why the snapshot is taken here rather than auto-firing: the in-dock agent
16
- * runs the Claude/Codex CLI directly (it does not go through NoMoreIDE's MCP),
17
- * so the MCP recording wrapper's auto-snapshot never triggers for a dock run.
18
- * The fix endpoint must capture the pre-fix state itself.
19
- */
20
- export interface FixPreparation {
21
- /** Recorded agent session id; the change-set/restore endpoints key off this. */
22
- sessionId: string;
23
- /** The fix prompt (repro bundle wrapped in a fix instruction) for the dock. */
24
- prompt: string;
25
- /** Repository the snapshot was taken in (where the agent will edit). */
26
- repoPath: string;
27
- /** Snapshot sha, or undefined when the repo isn't a git working tree. */
28
- snapshotSha?: string;
29
- }
30
- export interface FixLoopOptions {
31
- reproBundle: ReproBundleBuilder;
32
- agentSessions: AgentSessionStore;
33
- /** Resolve the repo the agent will edit (the selected git repository). */
34
- resolveRepoPath: () => Promise<string>;
35
- /** Injectable for tests. */
36
- snapshotManagerFor?: (repoPath: string) => Pick<SnapshotManager, "snapshot" | "prune">;
37
- now?: () => number;
38
- }
39
- export declare class FixLoop {
40
- private readonly reproBundle;
41
- private readonly agentSessions;
42
- private readonly resolveRepoPath;
43
- private readonly snapshotManagerFor;
44
- private readonly now;
45
- constructor(options: FixLoopOptions);
46
- /**
47
- * Prepare a fix for an incident: build the repro bundle, snapshot the working
48
- * tree, and record the session. Returns null when the incident is unknown.
49
- * Never throws on a missing/non-git repo — the session is recorded without a
50
- * snapshot so the run still proceeds (just no reviewable change-set).
51
- */
52
- prepare(incidentId: number): Promise<FixPreparation | null>;
53
- }
54
- /** Wrap the repro-bundle markdown in a concise fix instruction for the agent. */
55
- export declare function buildFixPrompt(markdown: string): string;
@@ -1,73 +0,0 @@
1
- import { SnapshotManager } from "./snapshot-manager.js";
2
- const SNAPSHOT_KEEP = 50;
3
- export class FixLoop {
4
- reproBundle;
5
- agentSessions;
6
- resolveRepoPath;
7
- snapshotManagerFor;
8
- now;
9
- constructor(options) {
10
- this.reproBundle = options.reproBundle;
11
- this.agentSessions = options.agentSessions;
12
- this.resolveRepoPath = options.resolveRepoPath;
13
- this.snapshotManagerFor =
14
- options.snapshotManagerFor ?? ((repoPath) => new SnapshotManager(repoPath));
15
- this.now = options.now ?? Date.now;
16
- }
17
- /**
18
- * Prepare a fix for an incident: build the repro bundle, snapshot the working
19
- * tree, and record the session. Returns null when the incident is unknown.
20
- * Never throws on a missing/non-git repo — the session is recorded without a
21
- * snapshot so the run still proceeds (just no reviewable change-set).
22
- */
23
- async prepare(incidentId) {
24
- const bundle = await this.reproBundle.build(incidentId);
25
- if (!bundle)
26
- return null;
27
- const repoPath = await this.resolveRepoPath();
28
- const startedAt = new Date(this.now()).toISOString();
29
- const session = {
30
- id: `s-${this.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`,
31
- repoPath,
32
- startedAt,
33
- lastToolAt: startedAt,
34
- toolCount: 0,
35
- };
36
- try {
37
- const manager = this.snapshotManagerFor(repoPath);
38
- const snapshot = await manager.snapshot(`fix incident ${incidentId}`);
39
- session.snapshotSha = snapshot.sha;
40
- session.snapshotRef = snapshot.ref;
41
- await manager.prune(SNAPSHOT_KEEP);
42
- }
43
- catch {
44
- // Not a git repo (or git unavailable) — record the session without a
45
- // snapshot. The fix still runs; there just isn't a change-set to review.
46
- }
47
- try {
48
- await this.agentSessions.save(session);
49
- }
50
- catch {
51
- // Persistence is best-effort; never block the fix on it.
52
- }
53
- return {
54
- sessionId: session.id,
55
- prompt: buildFixPrompt(bundle.markdown),
56
- repoPath,
57
- snapshotSha: session.snapshotSha,
58
- };
59
- }
60
- }
61
- /** Wrap the repro-bundle markdown in a concise fix instruction for the agent. */
62
- export function buildFixPrompt(markdown) {
63
- return [
64
- "A bug was detected in this workspace. Below is an automatically assembled repro bundle: the error, the affected file's diff, recent logs, the service's runtime state, and its environment with secrets masked.",
65
- "",
66
- "Investigate the root cause and apply the smallest change that resolves it. When you are done, briefly summarize what you changed and why. Your edits are snapshotted, so they can be reviewed and reverted as a single change-set.",
67
- "",
68
- "---",
69
- "",
70
- markdown,
71
- ].join("\n");
72
- }
73
- //# sourceMappingURL=fix-loop.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fix-loop.js","sourceRoot":"","sources":["../../src/core/fix-loop.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAiB,MAAM,uBAAuB,CAAC;AAwCvE,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,MAAM,OAAO,OAAO;IACD,WAAW,CAAqB;IAChC,aAAa,CAAoB;IACjC,eAAe,CAAwB;IACvC,kBAAkB,CAEc;IAChC,GAAG,CAAe;IAEnC,YAAY,OAAuB;QACjC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,kBAAkB;YACrB,OAAO,CAAC,kBAAkB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,UAAkB;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,OAAO,GAAiB;YAC5B,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YAC5E,QAAQ;YACR,SAAS;YACT,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,CAAC;SACb,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAa,MAAM,OAAO,CAAC,QAAQ,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;YAChF,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC;YACnC,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC;YACnC,MAAM,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,yEAAyE;QAC3E,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;QAED,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;YACvC,QAAQ;YACR,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC;IACJ,CAAC;CACF;AAED,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO;QACL,iNAAiN;QACjN,EAAE;QACF,oOAAoO;QACpO,EAAE;QACF,KAAK;QACL,EAAE;QACF,QAAQ;KACT,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -1,69 +0,0 @@
1
- export interface PushResult {
2
- /** Combined stdout/stderr from `git push` — what the user would see in a terminal. */
3
- output: string;
4
- /** The branch that was pushed. */
5
- branch: string;
6
- /** True when an upstream had to be set (first push of a new branch). */
7
- setUpstream: boolean;
8
- }
9
- export interface CheckoutDefaultAndPullResult {
10
- output: string;
11
- branch: string;
12
- }
13
- /**
14
- * Credential for a single push. The token travels through the environment into
15
- * a throwaway credential helper, so it never appears in `argv` (visible to any
16
- * process listing) and never gets written to the repository's config.
17
- */
18
- export interface PushCredential {
19
- token: string;
20
- /** GitHub ignores the username for token auth; the conventional value is used. */
21
- username?: string;
22
- }
23
- /**
24
- * Write-capable Git operations, kept deliberately separate from the read-safe
25
- * {@link GitManager}. These reach outward (push) or move refs, so they live in
26
- * their own module and callers are expected to confirm before invoking them.
27
- *
28
- * Still intentionally excludes the irreversible footguns (`reset --hard`,
29
- * `clean -f`, `push --force`, `branch -D`) — those would need their own
30
- * explicit, separately-guarded surface.
31
- */
32
- export declare class GitActions {
33
- private readonly cwd;
34
- constructor(cwd?: string);
35
- /**
36
- * Push the current branch to its remote. When the branch has no upstream yet
37
- * (a freshly created local branch), this sets one with `-u origin <branch>`
38
- * so subsequent pushes and ahead/behind tracking work.
39
- */
40
- push(options?: {
41
- remote?: string;
42
- credential?: PushCredential;
43
- }): Promise<PushResult>;
44
- /** Fast-forward the current branch from its configured upstream. */
45
- pull(): Promise<string>;
46
- /**
47
- * Merge a branch into the current branch without opening an editor. The
48
- * header command surface must not leave a repository half-merged, so a
49
- * conflict is automatically aborted and returned as an error.
50
- */
51
- merge(branch: string): Promise<string>;
52
- /** Rebase the current branch onto another branch, aborting on conflicts. */
53
- rebase(branch: string): Promise<string>;
54
- checkoutDefaultAndPull(options?: {
55
- remote?: string;
56
- }): Promise<CheckoutDefaultAndPullResult>;
57
- private defaultBranch;
58
- private validBranchRef;
59
- private assertCleanWorkingTree;
60
- private git;
61
- }
62
- /** Exported so tests can drive `git credential fill` through the real helper. */
63
- export declare function credentialConfigArgs(): string[];
64
- /**
65
- * Push output and git's error text are surfaced verbatim in the UI and written
66
- * to the timeline, so scrub the token on the way out even though the helper
67
- * keeps it off the command line.
68
- */
69
- export declare function redact(text: string, secret: string | undefined): string;