patchwork-os 0.2.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (721) hide show
  1. package/LICENSE +21 -0
  2. package/README.bridge.md +352 -0
  3. package/README.md +72 -0
  4. package/deploy/README.md +172 -0
  5. package/deploy/bootstrap-new-vps.sh +364 -0
  6. package/deploy/claude-ide-bridge.service.template +67 -0
  7. package/deploy/claude-ide-bridge@.service +31 -0
  8. package/deploy/ecosystem.config.js.example +36 -0
  9. package/deploy/install-vps-service.sh +240 -0
  10. package/deploy/nginx-claude-bridge.conf.template +129 -0
  11. package/dist/activityLog.d.ts +112 -0
  12. package/dist/activityLog.js +399 -0
  13. package/dist/activityLog.js.map +1 -0
  14. package/dist/activityTypes.d.ts +28 -0
  15. package/dist/activityTypes.js +9 -0
  16. package/dist/activityTypes.js.map +1 -0
  17. package/dist/adapters/base.d.ts +78 -0
  18. package/dist/adapters/base.js +14 -0
  19. package/dist/adapters/base.js.map +1 -0
  20. package/dist/adapters/claude.d.ts +18 -0
  21. package/dist/adapters/claude.js +276 -0
  22. package/dist/adapters/claude.js.map +1 -0
  23. package/dist/adapters/gemini.d.ts +17 -0
  24. package/dist/adapters/gemini.js +218 -0
  25. package/dist/adapters/gemini.js.map +1 -0
  26. package/dist/adapters/grok.d.ts +7 -0
  27. package/dist/adapters/grok.js +21 -0
  28. package/dist/adapters/grok.js.map +1 -0
  29. package/dist/adapters/index.d.ts +5 -0
  30. package/dist/adapters/index.js +37 -0
  31. package/dist/adapters/index.js.map +1 -0
  32. package/dist/adapters/local.d.ts +7 -0
  33. package/dist/adapters/local.js +22 -0
  34. package/dist/adapters/local.js.map +1 -0
  35. package/dist/adapters/openai.d.ts +22 -0
  36. package/dist/adapters/openai.js +284 -0
  37. package/dist/adapters/openai.js.map +1 -0
  38. package/dist/adapters/sse.d.ts +13 -0
  39. package/dist/adapters/sse.js +58 -0
  40. package/dist/adapters/sse.js.map +1 -0
  41. package/dist/analyticsAggregator.d.ts +28 -0
  42. package/dist/analyticsAggregator.js +133 -0
  43. package/dist/analyticsAggregator.js.map +1 -0
  44. package/dist/analyticsPrefs.d.ts +9 -0
  45. package/dist/analyticsPrefs.js +50 -0
  46. package/dist/analyticsPrefs.js.map +1 -0
  47. package/dist/analyticsSend.d.ts +12 -0
  48. package/dist/analyticsSend.js +34 -0
  49. package/dist/analyticsSend.js.map +1 -0
  50. package/dist/approvalHttp.d.ts +46 -0
  51. package/dist/approvalHttp.js +370 -0
  52. package/dist/approvalHttp.js.map +1 -0
  53. package/dist/approvalQueue.d.ts +49 -0
  54. package/dist/approvalQueue.js +84 -0
  55. package/dist/approvalQueue.js.map +1 -0
  56. package/dist/automation.d.ts +675 -0
  57. package/dist/automation.js +1038 -0
  58. package/dist/automation.js.map +1 -0
  59. package/dist/bridge.d.ts +85 -0
  60. package/dist/bridge.js +1535 -0
  61. package/dist/bridge.js.map +1 -0
  62. package/dist/bridgeLockDiscovery.d.ts +11 -0
  63. package/dist/bridgeLockDiscovery.js +49 -0
  64. package/dist/bridgeLockDiscovery.js.map +1 -0
  65. package/dist/bridgeToken.d.ts +22 -0
  66. package/dist/bridgeToken.js +114 -0
  67. package/dist/bridgeToken.js.map +1 -0
  68. package/dist/bridgeToolsRules.d.ts +20 -0
  69. package/dist/bridgeToolsRules.js +79 -0
  70. package/dist/bridgeToolsRules.js.map +1 -0
  71. package/dist/ccPermissions.d.ts +59 -0
  72. package/dist/ccPermissions.js +163 -0
  73. package/dist/ccPermissions.js.map +1 -0
  74. package/dist/claudeDriver.d.ts +129 -0
  75. package/dist/claudeDriver.js +459 -0
  76. package/dist/claudeDriver.js.map +1 -0
  77. package/dist/claudeMdPatch.d.ts +29 -0
  78. package/dist/claudeMdPatch.js +164 -0
  79. package/dist/claudeMdPatch.js.map +1 -0
  80. package/dist/claudeOrchestrator.d.ts +171 -0
  81. package/dist/claudeOrchestrator.js +591 -0
  82. package/dist/claudeOrchestrator.js.map +1 -0
  83. package/dist/commands/install.d.ts +1 -0
  84. package/dist/commands/install.js +158 -0
  85. package/dist/commands/install.js.map +1 -0
  86. package/dist/commands/marketplace.d.ts +11 -0
  87. package/dist/commands/marketplace.js +120 -0
  88. package/dist/commands/marketplace.js.map +1 -0
  89. package/dist/commands/patchworkInit.d.ts +14 -0
  90. package/dist/commands/patchworkInit.js +155 -0
  91. package/dist/commands/patchworkInit.js.map +1 -0
  92. package/dist/commands/task.d.ts +14 -0
  93. package/dist/commands/task.js +289 -0
  94. package/dist/commands/task.js.map +1 -0
  95. package/dist/commands/tokenEfficiency.d.ts +9 -0
  96. package/dist/commands/tokenEfficiency.js +211 -0
  97. package/dist/commands/tokenEfficiency.js.map +1 -0
  98. package/dist/commands/tools.d.ts +28 -0
  99. package/dist/commands/tools.js +326 -0
  100. package/dist/commands/tools.js.map +1 -0
  101. package/dist/commitIssueLinkLog.d.ts +77 -0
  102. package/dist/commitIssueLinkLog.js +142 -0
  103. package/dist/commitIssueLinkLog.js.map +1 -0
  104. package/dist/companions/registry.d.ts +12 -0
  105. package/dist/companions/registry.js +71 -0
  106. package/dist/companions/registry.js.map +1 -0
  107. package/dist/config.d.ts +105 -0
  108. package/dist/config.js +720 -0
  109. package/dist/config.js.map +1 -0
  110. package/dist/crypto.d.ts +16 -0
  111. package/dist/crypto.js +34 -0
  112. package/dist/crypto.js.map +1 -0
  113. package/dist/dashboard.d.ts +12 -0
  114. package/dist/dashboard.js +149 -0
  115. package/dist/dashboard.js.map +1 -0
  116. package/dist/decisionTraceLog.d.ts +77 -0
  117. package/dist/decisionTraceLog.js +147 -0
  118. package/dist/decisionTraceLog.js.map +1 -0
  119. package/dist/errors.d.ts +32 -0
  120. package/dist/errors.js +34 -0
  121. package/dist/errors.js.map +1 -0
  122. package/dist/extensionClient.d.ts +279 -0
  123. package/dist/extensionClient.js +1253 -0
  124. package/dist/extensionClient.js.map +1 -0
  125. package/dist/fileLock.d.ts +36 -0
  126. package/dist/fileLock.js +121 -0
  127. package/dist/fileLock.js.map +1 -0
  128. package/dist/fp/activityAnalytics.d.ts +39 -0
  129. package/dist/fp/activityAnalytics.js +111 -0
  130. package/dist/fp/activityAnalytics.js.map +1 -0
  131. package/dist/fp/async.d.ts +48 -0
  132. package/dist/fp/async.js +60 -0
  133. package/dist/fp/async.js.map +1 -0
  134. package/dist/fp/automationInterpreter.d.ts +37 -0
  135. package/dist/fp/automationInterpreter.js +523 -0
  136. package/dist/fp/automationInterpreter.js.map +1 -0
  137. package/dist/fp/automationProgram.d.ts +89 -0
  138. package/dist/fp/automationProgram.js +29 -0
  139. package/dist/fp/automationProgram.js.map +1 -0
  140. package/dist/fp/automationState.d.ts +135 -0
  141. package/dist/fp/automationState.js +206 -0
  142. package/dist/fp/automationState.js.map +1 -0
  143. package/dist/fp/automationUtils.d.ts +31 -0
  144. package/dist/fp/automationUtils.js +61 -0
  145. package/dist/fp/automationUtils.js.map +1 -0
  146. package/dist/fp/brandedTypes.d.ts +32 -0
  147. package/dist/fp/brandedTypes.js +41 -0
  148. package/dist/fp/brandedTypes.js.map +1 -0
  149. package/dist/fp/commandDescription.d.ts +18 -0
  150. package/dist/fp/commandDescription.js +125 -0
  151. package/dist/fp/commandDescription.js.map +1 -0
  152. package/dist/fp/extensionSnapshot.d.ts +10 -0
  153. package/dist/fp/extensionSnapshot.js +14 -0
  154. package/dist/fp/extensionSnapshot.js.map +1 -0
  155. package/dist/fp/index.d.ts +8 -0
  156. package/dist/fp/index.js +9 -0
  157. package/dist/fp/index.js.map +1 -0
  158. package/dist/fp/interpreterContext.d.ts +69 -0
  159. package/dist/fp/interpreterContext.js +56 -0
  160. package/dist/fp/interpreterContext.js.map +1 -0
  161. package/dist/fp/policyParser.d.ts +16 -0
  162. package/dist/fp/policyParser.js +334 -0
  163. package/dist/fp/policyParser.js.map +1 -0
  164. package/dist/fp/result.d.ts +38 -0
  165. package/dist/fp/result.js +57 -0
  166. package/dist/fp/result.js.map +1 -0
  167. package/dist/fp/tokenBucket.d.ts +27 -0
  168. package/dist/fp/tokenBucket.js +36 -0
  169. package/dist/fp/tokenBucket.js.map +1 -0
  170. package/dist/index.d.ts +2 -0
  171. package/dist/index.js +1465 -0
  172. package/dist/index.js.map +1 -0
  173. package/dist/instructionsUtils.d.ts +17 -0
  174. package/dist/instructionsUtils.js +38 -0
  175. package/dist/instructionsUtils.js.map +1 -0
  176. package/dist/lockfile.d.ts +16 -0
  177. package/dist/lockfile.js +172 -0
  178. package/dist/lockfile.js.map +1 -0
  179. package/dist/logger.d.ts +16 -0
  180. package/dist/logger.js +68 -0
  181. package/dist/logger.js.map +1 -0
  182. package/dist/oauth.d.ts +105 -0
  183. package/dist/oauth.js +880 -0
  184. package/dist/oauth.js.map +1 -0
  185. package/dist/orchestrator/childBridgeClient.d.ts +33 -0
  186. package/dist/orchestrator/childBridgeClient.js +321 -0
  187. package/dist/orchestrator/childBridgeClient.js.map +1 -0
  188. package/dist/orchestrator/childBridgeRegistry.d.ts +67 -0
  189. package/dist/orchestrator/childBridgeRegistry.js +297 -0
  190. package/dist/orchestrator/childBridgeRegistry.js.map +1 -0
  191. package/dist/orchestrator/index.d.ts +3 -0
  192. package/dist/orchestrator/index.js +3 -0
  193. package/dist/orchestrator/index.js.map +1 -0
  194. package/dist/orchestrator/orchestratorBridge.d.ts +32 -0
  195. package/dist/orchestrator/orchestratorBridge.js +412 -0
  196. package/dist/orchestrator/orchestratorBridge.js.map +1 -0
  197. package/dist/orchestrator/orchestratorConfig.d.ts +11 -0
  198. package/dist/orchestrator/orchestratorConfig.js +85 -0
  199. package/dist/orchestrator/orchestratorConfig.js.map +1 -0
  200. package/dist/orchestrator/orchestratorTools.d.ts +16 -0
  201. package/dist/orchestrator/orchestratorTools.js +272 -0
  202. package/dist/orchestrator/orchestratorTools.js.map +1 -0
  203. package/dist/patchworkCli.d.ts +15 -0
  204. package/dist/patchworkCli.js +41 -0
  205. package/dist/patchworkCli.js.map +1 -0
  206. package/dist/patchworkConfig.d.ts +28 -0
  207. package/dist/patchworkConfig.js +30 -0
  208. package/dist/patchworkConfig.js.map +1 -0
  209. package/dist/plugin.d.ts +106 -0
  210. package/dist/plugin.js +31 -0
  211. package/dist/plugin.js.map +1 -0
  212. package/dist/pluginLoader.d.ts +44 -0
  213. package/dist/pluginLoader.js +357 -0
  214. package/dist/pluginLoader.js.map +1 -0
  215. package/dist/pluginWatcher.d.ts +24 -0
  216. package/dist/pluginWatcher.js +139 -0
  217. package/dist/pluginWatcher.js.map +1 -0
  218. package/dist/preToolUseHook.d.ts +10 -0
  219. package/dist/preToolUseHook.js +57 -0
  220. package/dist/preToolUseHook.js.map +1 -0
  221. package/dist/probe.d.ts +35 -0
  222. package/dist/probe.js +143 -0
  223. package/dist/probe.js.map +1 -0
  224. package/dist/prompts.d.ts +27 -0
  225. package/dist/prompts.js +1680 -0
  226. package/dist/prompts.js.map +1 -0
  227. package/dist/quickTaskPresets.d.ts +64 -0
  228. package/dist/quickTaskPresets.js +156 -0
  229. package/dist/quickTaskPresets.js.map +1 -0
  230. package/dist/recipes/compiler.d.ts +44 -0
  231. package/dist/recipes/compiler.js +140 -0
  232. package/dist/recipes/compiler.js.map +1 -0
  233. package/dist/recipes/installer.d.ts +25 -0
  234. package/dist/recipes/installer.js +62 -0
  235. package/dist/recipes/installer.js.map +1 -0
  236. package/dist/recipes/parser.d.ts +18 -0
  237. package/dist/recipes/parser.js +160 -0
  238. package/dist/recipes/parser.js.map +1 -0
  239. package/dist/recipes/scheduler.d.ts +45 -0
  240. package/dist/recipes/scheduler.js +110 -0
  241. package/dist/recipes/scheduler.js.map +1 -0
  242. package/dist/recipes/schema.d.ts +71 -0
  243. package/dist/recipes/schema.js +11 -0
  244. package/dist/recipes/schema.js.map +1 -0
  245. package/dist/recipesHttp.d.ts +63 -0
  246. package/dist/recipesHttp.js +183 -0
  247. package/dist/recipesHttp.js.map +1 -0
  248. package/dist/resources.d.ts +33 -0
  249. package/dist/resources.js +266 -0
  250. package/dist/resources.js.map +1 -0
  251. package/dist/riskTier.d.ts +40 -0
  252. package/dist/riskTier.js +142 -0
  253. package/dist/riskTier.js.map +1 -0
  254. package/dist/runLog.d.ts +90 -0
  255. package/dist/runLog.js +143 -0
  256. package/dist/runLog.js.map +1 -0
  257. package/dist/server.d.ts +160 -0
  258. package/dist/server.js +1244 -0
  259. package/dist/server.js.map +1 -0
  260. package/dist/sessionCheckpoint.d.ts +37 -0
  261. package/dist/sessionCheckpoint.js +123 -0
  262. package/dist/sessionCheckpoint.js.map +1 -0
  263. package/dist/streamableHttp.d.ts +86 -0
  264. package/dist/streamableHttp.js +702 -0
  265. package/dist/streamableHttp.js.map +1 -0
  266. package/dist/telemetry.d.ts +18 -0
  267. package/dist/telemetry.js +95 -0
  268. package/dist/telemetry.js.map +1 -0
  269. package/dist/tools/activityLog.d.ts +140 -0
  270. package/dist/tools/activityLog.js +204 -0
  271. package/dist/tools/activityLog.js.map +1 -0
  272. package/dist/tools/auditDependencies.d.ts +67 -0
  273. package/dist/tools/auditDependencies.js +298 -0
  274. package/dist/tools/auditDependencies.js.map +1 -0
  275. package/dist/tools/batchLsp.d.ts +262 -0
  276. package/dist/tools/batchLsp.js +328 -0
  277. package/dist/tools/batchLsp.js.map +1 -0
  278. package/dist/tools/blame-utils.d.ts +30 -0
  279. package/dist/tools/blame-utils.js +60 -0
  280. package/dist/tools/blame-utils.js.map +1 -0
  281. package/dist/tools/bridgeDoctor.d.ts +78 -0
  282. package/dist/tools/bridgeDoctor.js +542 -0
  283. package/dist/tools/bridgeDoctor.js.map +1 -0
  284. package/dist/tools/bridgeStatus.d.ts +122 -0
  285. package/dist/tools/bridgeStatus.js +250 -0
  286. package/dist/tools/bridgeStatus.js.map +1 -0
  287. package/dist/tools/cancelClaudeTask.d.ts +48 -0
  288. package/dist/tools/cancelClaudeTask.js +56 -0
  289. package/dist/tools/cancelClaudeTask.js.map +1 -0
  290. package/dist/tools/checkDocumentDirty.d.ts +56 -0
  291. package/dist/tools/checkDocumentDirty.js +74 -0
  292. package/dist/tools/checkDocumentDirty.js.map +1 -0
  293. package/dist/tools/clipboard.d.ts +80 -0
  294. package/dist/tools/clipboard.js +211 -0
  295. package/dist/tools/clipboard.js.map +1 -0
  296. package/dist/tools/closeTabs.d.ts +84 -0
  297. package/dist/tools/closeTabs.js +97 -0
  298. package/dist/tools/closeTabs.js.map +1 -0
  299. package/dist/tools/codeLens.d.ts +50 -0
  300. package/dist/tools/codeLens.js +47 -0
  301. package/dist/tools/codeLens.js.map +1 -0
  302. package/dist/tools/contextBundle.d.ts +75 -0
  303. package/dist/tools/contextBundle.js +218 -0
  304. package/dist/tools/contextBundle.js.map +1 -0
  305. package/dist/tools/createIssueFromAIComment.d.ts +75 -0
  306. package/dist/tools/createIssueFromAIComment.js +119 -0
  307. package/dist/tools/createIssueFromAIComment.js.map +1 -0
  308. package/dist/tools/ctxGetTaskContext.d.ts +103 -0
  309. package/dist/tools/ctxGetTaskContext.js +274 -0
  310. package/dist/tools/ctxGetTaskContext.js.map +1 -0
  311. package/dist/tools/ctxQueryTraces.d.ts +142 -0
  312. package/dist/tools/ctxQueryTraces.js +194 -0
  313. package/dist/tools/ctxQueryTraces.js.map +1 -0
  314. package/dist/tools/ctxSaveTrace.d.ts +87 -0
  315. package/dist/tools/ctxSaveTrace.js +94 -0
  316. package/dist/tools/ctxSaveTrace.js.map +1 -0
  317. package/dist/tools/debug.d.ts +206 -0
  318. package/dist/tools/debug.js +234 -0
  319. package/dist/tools/debug.js.map +1 -0
  320. package/dist/tools/decorations.d.ts +130 -0
  321. package/dist/tools/decorations.js +160 -0
  322. package/dist/tools/decorations.js.map +1 -0
  323. package/dist/tools/detectUnusedCode.d.ts +78 -0
  324. package/dist/tools/detectUnusedCode.js +173 -0
  325. package/dist/tools/detectUnusedCode.js.map +1 -0
  326. package/dist/tools/documentLinks.d.ts +62 -0
  327. package/dist/tools/documentLinks.js +55 -0
  328. package/dist/tools/documentLinks.js.map +1 -0
  329. package/dist/tools/editText.d.ts +108 -0
  330. package/dist/tools/editText.js +318 -0
  331. package/dist/tools/editText.js.map +1 -0
  332. package/dist/tools/enrichCommit.d.ts +89 -0
  333. package/dist/tools/enrichCommit.js +201 -0
  334. package/dist/tools/enrichCommit.js.map +1 -0
  335. package/dist/tools/enrichStackTrace.d.ts +121 -0
  336. package/dist/tools/enrichStackTrace.js +194 -0
  337. package/dist/tools/enrichStackTrace.js.map +1 -0
  338. package/dist/tools/explainDiagnostic.d.ts +137 -0
  339. package/dist/tools/explainDiagnostic.js +230 -0
  340. package/dist/tools/explainDiagnostic.js.map +1 -0
  341. package/dist/tools/explainSymbol.d.ts +119 -0
  342. package/dist/tools/explainSymbol.js +177 -0
  343. package/dist/tools/explainSymbol.js.map +1 -0
  344. package/dist/tools/fileOperations.d.ts +186 -0
  345. package/dist/tools/fileOperations.js +330 -0
  346. package/dist/tools/fileOperations.js.map +1 -0
  347. package/dist/tools/fileWatcher.d.ts +107 -0
  348. package/dist/tools/fileWatcher.js +121 -0
  349. package/dist/tools/fileWatcher.js.map +1 -0
  350. package/dist/tools/findFiles.d.ts +65 -0
  351. package/dist/tools/findFiles.js +142 -0
  352. package/dist/tools/findFiles.js.map +1 -0
  353. package/dist/tools/findRelatedTests.d.ts +83 -0
  354. package/dist/tools/findRelatedTests.js +196 -0
  355. package/dist/tools/findRelatedTests.js.map +1 -0
  356. package/dist/tools/fixAllLintErrors.d.ts +66 -0
  357. package/dist/tools/fixAllLintErrors.js +128 -0
  358. package/dist/tools/fixAllLintErrors.js.map +1 -0
  359. package/dist/tools/foldingRanges.d.ts +50 -0
  360. package/dist/tools/foldingRanges.js +51 -0
  361. package/dist/tools/foldingRanges.js.map +1 -0
  362. package/dist/tools/formatAndSave.d.ts +57 -0
  363. package/dist/tools/formatAndSave.js +87 -0
  364. package/dist/tools/formatAndSave.js.map +1 -0
  365. package/dist/tools/formatDocument.d.ts +61 -0
  366. package/dist/tools/formatDocument.js +144 -0
  367. package/dist/tools/formatDocument.js.map +1 -0
  368. package/dist/tools/generateAPIDocumentation.d.ts +62 -0
  369. package/dist/tools/generateAPIDocumentation.js +249 -0
  370. package/dist/tools/generateAPIDocumentation.js.map +1 -0
  371. package/dist/tools/generateTests.d.ts +75 -0
  372. package/dist/tools/generateTests.js +226 -0
  373. package/dist/tools/generateTests.js.map +1 -0
  374. package/dist/tools/getAIComments.d.ts +79 -0
  375. package/dist/tools/getAIComments.js +93 -0
  376. package/dist/tools/getAIComments.js.map +1 -0
  377. package/dist/tools/getAnalyticsReport.d.ts +102 -0
  378. package/dist/tools/getAnalyticsReport.js +137 -0
  379. package/dist/tools/getAnalyticsReport.js.map +1 -0
  380. package/dist/tools/getArchitectureContext.d.ts +85 -0
  381. package/dist/tools/getArchitectureContext.js +135 -0
  382. package/dist/tools/getArchitectureContext.js.map +1 -0
  383. package/dist/tools/getBufferContent.d.ts +80 -0
  384. package/dist/tools/getBufferContent.js +207 -0
  385. package/dist/tools/getBufferContent.js.map +1 -0
  386. package/dist/tools/getChangeImpact.d.ts +76 -0
  387. package/dist/tools/getChangeImpact.js +184 -0
  388. package/dist/tools/getChangeImpact.js.map +1 -0
  389. package/dist/tools/getClaudeTaskStatus.d.ts +87 -0
  390. package/dist/tools/getClaudeTaskStatus.js +89 -0
  391. package/dist/tools/getClaudeTaskStatus.js.map +1 -0
  392. package/dist/tools/getCodeCoverage.d.ts +86 -0
  393. package/dist/tools/getCodeCoverage.js +237 -0
  394. package/dist/tools/getCodeCoverage.js.map +1 -0
  395. package/dist/tools/getCommitsForIssue.d.ts +98 -0
  396. package/dist/tools/getCommitsForIssue.js +106 -0
  397. package/dist/tools/getCommitsForIssue.js.map +1 -0
  398. package/dist/tools/getCurrentSelection.d.ts +123 -0
  399. package/dist/tools/getCurrentSelection.js +113 -0
  400. package/dist/tools/getCurrentSelection.js.map +1 -0
  401. package/dist/tools/getDebugState.d.ts +140 -0
  402. package/dist/tools/getDebugState.js +109 -0
  403. package/dist/tools/getDebugState.js.map +1 -0
  404. package/dist/tools/getDependencyTree.d.ts +59 -0
  405. package/dist/tools/getDependencyTree.js +207 -0
  406. package/dist/tools/getDependencyTree.js.map +1 -0
  407. package/dist/tools/getDiagnostics.d.ts +108 -0
  408. package/dist/tools/getDiagnostics.js +371 -0
  409. package/dist/tools/getDiagnostics.js.map +1 -0
  410. package/dist/tools/getDiffFromHandoff.d.ts +89 -0
  411. package/dist/tools/getDiffFromHandoff.js +163 -0
  412. package/dist/tools/getDiffFromHandoff.js.map +1 -0
  413. package/dist/tools/getDocumentSymbols.d.ts +74 -0
  414. package/dist/tools/getDocumentSymbols.js +177 -0
  415. package/dist/tools/getDocumentSymbols.js.map +1 -0
  416. package/dist/tools/getFileTree.d.ts +66 -0
  417. package/dist/tools/getFileTree.js +131 -0
  418. package/dist/tools/getFileTree.js.map +1 -0
  419. package/dist/tools/getGitDiff.d.ts +50 -0
  420. package/dist/tools/getGitDiff.js +73 -0
  421. package/dist/tools/getGitDiff.js.map +1 -0
  422. package/dist/tools/getGitHotspots.d.ts +88 -0
  423. package/dist/tools/getGitHotspots.js +145 -0
  424. package/dist/tools/getGitHotspots.js.map +1 -0
  425. package/dist/tools/getGitLog.d.ts +62 -0
  426. package/dist/tools/getGitLog.js +87 -0
  427. package/dist/tools/getGitLog.js.map +1 -0
  428. package/dist/tools/getGitStatus.d.ts +72 -0
  429. package/dist/tools/getGitStatus.js +126 -0
  430. package/dist/tools/getGitStatus.js.map +1 -0
  431. package/dist/tools/getImportTree.d.ts +73 -0
  432. package/dist/tools/getImportTree.js +223 -0
  433. package/dist/tools/getImportTree.js.map +1 -0
  434. package/dist/tools/getImportedSignatures.d.ts +62 -0
  435. package/dist/tools/getImportedSignatures.js +255 -0
  436. package/dist/tools/getImportedSignatures.js.map +1 -0
  437. package/dist/tools/getOpenEditors.d.ts +62 -0
  438. package/dist/tools/getOpenEditors.js +126 -0
  439. package/dist/tools/getOpenEditors.js.map +1 -0
  440. package/dist/tools/getPRTemplate.d.ts +68 -0
  441. package/dist/tools/getPRTemplate.js +187 -0
  442. package/dist/tools/getPRTemplate.js.map +1 -0
  443. package/dist/tools/getProjectContext.d.ts +114 -0
  444. package/dist/tools/getProjectContext.js +344 -0
  445. package/dist/tools/getProjectContext.js.map +1 -0
  446. package/dist/tools/getProjectInfo.d.ts +51 -0
  447. package/dist/tools/getProjectInfo.js +325 -0
  448. package/dist/tools/getProjectInfo.js.map +1 -0
  449. package/dist/tools/getSecurityAdvisories.d.ts +105 -0
  450. package/dist/tools/getSecurityAdvisories.js +472 -0
  451. package/dist/tools/getSecurityAdvisories.js.map +1 -0
  452. package/dist/tools/getSessionUsage.d.ts +58 -0
  453. package/dist/tools/getSessionUsage.js +57 -0
  454. package/dist/tools/getSessionUsage.js.map +1 -0
  455. package/dist/tools/getSymbolHistory.d.ts +157 -0
  456. package/dist/tools/getSymbolHistory.js +256 -0
  457. package/dist/tools/getSymbolHistory.js.map +1 -0
  458. package/dist/tools/getToolCapabilities.d.ts +69 -0
  459. package/dist/tools/getToolCapabilities.js +298 -0
  460. package/dist/tools/getToolCapabilities.js.map +1 -0
  461. package/dist/tools/getTypeSignature.d.ts +70 -0
  462. package/dist/tools/getTypeSignature.js +132 -0
  463. package/dist/tools/getTypeSignature.js.map +1 -0
  464. package/dist/tools/getWorkspaceFolders.d.ts +58 -0
  465. package/dist/tools/getWorkspaceFolders.js +69 -0
  466. package/dist/tools/getWorkspaceFolders.js.map +1 -0
  467. package/dist/tools/getWorkspaceSettings.d.ts +44 -0
  468. package/dist/tools/getWorkspaceSettings.js +70 -0
  469. package/dist/tools/getWorkspaceSettings.js.map +1 -0
  470. package/dist/tools/git-utils.d.ts +16 -0
  471. package/dist/tools/git-utils.js +46 -0
  472. package/dist/tools/git-utils.js.map +1 -0
  473. package/dist/tools/gitHistory.d.ts +110 -0
  474. package/dist/tools/gitHistory.js +167 -0
  475. package/dist/tools/gitHistory.js.map +1 -0
  476. package/dist/tools/gitWrite.d.ts +612 -0
  477. package/dist/tools/gitWrite.js +983 -0
  478. package/dist/tools/gitWrite.js.map +1 -0
  479. package/dist/tools/github/actions.d.ts +152 -0
  480. package/dist/tools/github/actions.js +195 -0
  481. package/dist/tools/github/actions.js.map +1 -0
  482. package/dist/tools/github/index.d.ts +3 -0
  483. package/dist/tools/github/index.js +4 -0
  484. package/dist/tools/github/index.js.map +1 -0
  485. package/dist/tools/github/issues.d.ts +281 -0
  486. package/dist/tools/github/issues.js +340 -0
  487. package/dist/tools/github/issues.js.map +1 -0
  488. package/dist/tools/github/pr.d.ts +433 -0
  489. package/dist/tools/github/pr.js +588 -0
  490. package/dist/tools/github/pr.js.map +1 -0
  491. package/dist/tools/github/shared.d.ts +4 -0
  492. package/dist/tools/github/shared.js +12 -0
  493. package/dist/tools/github/shared.js.map +1 -0
  494. package/dist/tools/handoffNote.d.ts +106 -0
  495. package/dist/tools/handoffNote.js +232 -0
  496. package/dist/tools/handoffNote.js.map +1 -0
  497. package/dist/tools/headless/lspClient.d.ts +26 -0
  498. package/dist/tools/headless/lspClient.js +221 -0
  499. package/dist/tools/headless/lspClient.js.map +1 -0
  500. package/dist/tools/headless/lspFallback.d.ts +28 -0
  501. package/dist/tools/headless/lspFallback.js +122 -0
  502. package/dist/tools/headless/lspFallback.js.map +1 -0
  503. package/dist/tools/hoverAtCursor.d.ts +54 -0
  504. package/dist/tools/hoverAtCursor.js +68 -0
  505. package/dist/tools/hoverAtCursor.js.map +1 -0
  506. package/dist/tools/httpClient.d.ts +141 -0
  507. package/dist/tools/httpClient.js +486 -0
  508. package/dist/tools/httpClient.js.map +1 -0
  509. package/dist/tools/index.d.ts +49 -0
  510. package/dist/tools/index.js +672 -0
  511. package/dist/tools/index.js.map +1 -0
  512. package/dist/tools/inlayHints.d.ts +81 -0
  513. package/dist/tools/inlayHints.js +76 -0
  514. package/dist/tools/inlayHints.js.map +1 -0
  515. package/dist/tools/issueRefs.d.ts +14 -0
  516. package/dist/tools/issueRefs.js +27 -0
  517. package/dist/tools/issueRefs.js.map +1 -0
  518. package/dist/tools/jumpToFirstError.d.ts +63 -0
  519. package/dist/tools/jumpToFirstError.js +124 -0
  520. package/dist/tools/jumpToFirstError.js.map +1 -0
  521. package/dist/tools/launchQuickTask.d.ts +76 -0
  522. package/dist/tools/launchQuickTask.js +170 -0
  523. package/dist/tools/launchQuickTask.js.map +1 -0
  524. package/dist/tools/linters/biome.d.ts +2 -0
  525. package/dist/tools/linters/biome.js +44 -0
  526. package/dist/tools/linters/biome.js.map +1 -0
  527. package/dist/tools/linters/cargo.d.ts +2 -0
  528. package/dist/tools/linters/cargo.js +45 -0
  529. package/dist/tools/linters/cargo.js.map +1 -0
  530. package/dist/tools/linters/eslint.d.ts +2 -0
  531. package/dist/tools/linters/eslint.js +59 -0
  532. package/dist/tools/linters/eslint.js.map +1 -0
  533. package/dist/tools/linters/govet.d.ts +2 -0
  534. package/dist/tools/linters/govet.js +37 -0
  535. package/dist/tools/linters/govet.js.map +1 -0
  536. package/dist/tools/linters/pyright.d.ts +2 -0
  537. package/dist/tools/linters/pyright.js +34 -0
  538. package/dist/tools/linters/pyright.js.map +1 -0
  539. package/dist/tools/linters/ruff.d.ts +2 -0
  540. package/dist/tools/linters/ruff.js +30 -0
  541. package/dist/tools/linters/ruff.js.map +1 -0
  542. package/dist/tools/linters/types.d.ts +16 -0
  543. package/dist/tools/linters/types.js +2 -0
  544. package/dist/tools/linters/types.js.map +1 -0
  545. package/dist/tools/linters/typescript.d.ts +2 -0
  546. package/dist/tools/linters/typescript.js +38 -0
  547. package/dist/tools/linters/typescript.js.map +1 -0
  548. package/dist/tools/listClaudeTasks.d.ts +84 -0
  549. package/dist/tools/listClaudeTasks.js +88 -0
  550. package/dist/tools/listClaudeTasks.js.map +1 -0
  551. package/dist/tools/listTerminals.d.ts +55 -0
  552. package/dist/tools/listTerminals.js +78 -0
  553. package/dist/tools/listTerminals.js.map +1 -0
  554. package/dist/tools/lsp.d.ts +1086 -0
  555. package/dist/tools/lsp.js +1339 -0
  556. package/dist/tools/lsp.js.map +1 -0
  557. package/dist/tools/navigateToSymbolByName.d.ts +56 -0
  558. package/dist/tools/navigateToSymbolByName.js +170 -0
  559. package/dist/tools/navigateToSymbolByName.js.map +1 -0
  560. package/dist/tools/openDiff.d.ts +66 -0
  561. package/dist/tools/openDiff.js +126 -0
  562. package/dist/tools/openDiff.js.map +1 -0
  563. package/dist/tools/openFile.d.ts +69 -0
  564. package/dist/tools/openFile.js +129 -0
  565. package/dist/tools/openFile.js.map +1 -0
  566. package/dist/tools/openInBrowser.d.ts +55 -0
  567. package/dist/tools/openInBrowser.js +129 -0
  568. package/dist/tools/openInBrowser.js.map +1 -0
  569. package/dist/tools/organizeImports.d.ts +56 -0
  570. package/dist/tools/organizeImports.js +115 -0
  571. package/dist/tools/organizeImports.js.map +1 -0
  572. package/dist/tools/performanceReport.d.ts +133 -0
  573. package/dist/tools/performanceReport.js +218 -0
  574. package/dist/tools/performanceReport.js.map +1 -0
  575. package/dist/tools/planPersistence.d.ts +306 -0
  576. package/dist/tools/planPersistence.js +485 -0
  577. package/dist/tools/planPersistence.js.map +1 -0
  578. package/dist/tools/previewEdit.d.ts +107 -0
  579. package/dist/tools/previewEdit.js +270 -0
  580. package/dist/tools/previewEdit.js.map +1 -0
  581. package/dist/tools/recentTracesDigest.d.ts +35 -0
  582. package/dist/tools/recentTracesDigest.js +98 -0
  583. package/dist/tools/recentTracesDigest.js.map +1 -0
  584. package/dist/tools/refactorAnalyze.d.ts +78 -0
  585. package/dist/tools/refactorAnalyze.js +141 -0
  586. package/dist/tools/refactorAnalyze.js.map +1 -0
  587. package/dist/tools/refactorExtractFunction.d.ts +52 -0
  588. package/dist/tools/refactorExtractFunction.js +121 -0
  589. package/dist/tools/refactorExtractFunction.js.map +1 -0
  590. package/dist/tools/refactorPreview.d.ts +75 -0
  591. package/dist/tools/refactorPreview.js +93 -0
  592. package/dist/tools/refactorPreview.js.map +1 -0
  593. package/dist/tools/replaceBlock.d.ts +62 -0
  594. package/dist/tools/replaceBlock.js +125 -0
  595. package/dist/tools/replaceBlock.js.map +1 -0
  596. package/dist/tools/resumeClaudeTask.d.ts +75 -0
  597. package/dist/tools/resumeClaudeTask.js +149 -0
  598. package/dist/tools/resumeClaudeTask.js.map +1 -0
  599. package/dist/tools/runClaudeTask.d.ts +97 -0
  600. package/dist/tools/runClaudeTask.js +224 -0
  601. package/dist/tools/runClaudeTask.js.map +1 -0
  602. package/dist/tools/runCommand.d.ts +82 -0
  603. package/dist/tools/runCommand.js +101 -0
  604. package/dist/tools/runCommand.js.map +1 -0
  605. package/dist/tools/runTests.d.ts +146 -0
  606. package/dist/tools/runTests.js +315 -0
  607. package/dist/tools/runTests.js.map +1 -0
  608. package/dist/tools/saveDocument.d.ts +50 -0
  609. package/dist/tools/saveDocument.js +73 -0
  610. package/dist/tools/saveDocument.js.map +1 -0
  611. package/dist/tools/screenshot.d.ts +23 -0
  612. package/dist/tools/screenshot.js +43 -0
  613. package/dist/tools/screenshot.js.map +1 -0
  614. package/dist/tools/screenshotAndAnnotate.d.ts +103 -0
  615. package/dist/tools/screenshotAndAnnotate.js +192 -0
  616. package/dist/tools/screenshotAndAnnotate.js.map +1 -0
  617. package/dist/tools/searchAndReplace.d.ts +108 -0
  618. package/dist/tools/searchAndReplace.js +281 -0
  619. package/dist/tools/searchAndReplace.js.map +1 -0
  620. package/dist/tools/searchTools.d.ts +61 -0
  621. package/dist/tools/searchTools.js +85 -0
  622. package/dist/tools/searchTools.js.map +1 -0
  623. package/dist/tools/searchWorkspace.d.ts +99 -0
  624. package/dist/tools/searchWorkspace.js +189 -0
  625. package/dist/tools/searchWorkspace.js.map +1 -0
  626. package/dist/tools/selectionRanges.d.ts +58 -0
  627. package/dist/tools/selectionRanges.js +61 -0
  628. package/dist/tools/selectionRanges.js.map +1 -0
  629. package/dist/tools/semanticTokens.d.ts +87 -0
  630. package/dist/tools/semanticTokens.js +86 -0
  631. package/dist/tools/semanticTokens.js.map +1 -0
  632. package/dist/tools/setActiveWorkspaceFolder.d.ts +41 -0
  633. package/dist/tools/setActiveWorkspaceFolder.js +38 -0
  634. package/dist/tools/setActiveWorkspaceFolder.js.map +1 -0
  635. package/dist/tools/signatureHelp.d.ts +86 -0
  636. package/dist/tools/signatureHelp.js +79 -0
  637. package/dist/tools/signatureHelp.js.map +1 -0
  638. package/dist/tools/spawnWorkspace.d.ts +103 -0
  639. package/dist/tools/spawnWorkspace.js +268 -0
  640. package/dist/tools/spawnWorkspace.js.map +1 -0
  641. package/dist/tools/stackTraceParser.d.ts +43 -0
  642. package/dist/tools/stackTraceParser.js +139 -0
  643. package/dist/tools/stackTraceParser.js.map +1 -0
  644. package/dist/tools/terminal.d.ts +352 -0
  645. package/dist/tools/terminal.js +670 -0
  646. package/dist/tools/terminal.js.map +1 -0
  647. package/dist/tools/testRunners/cargoTest.d.ts +2 -0
  648. package/dist/tools/testRunners/cargoTest.js +129 -0
  649. package/dist/tools/testRunners/cargoTest.js.map +1 -0
  650. package/dist/tools/testRunners/goTest.d.ts +2 -0
  651. package/dist/tools/testRunners/goTest.js +108 -0
  652. package/dist/tools/testRunners/goTest.js.map +1 -0
  653. package/dist/tools/testRunners/pytest.d.ts +2 -0
  654. package/dist/tools/testRunners/pytest.js +135 -0
  655. package/dist/tools/testRunners/pytest.js.map +1 -0
  656. package/dist/tools/testRunners/types.d.ts +18 -0
  657. package/dist/tools/testRunners/types.js +2 -0
  658. package/dist/tools/testRunners/types.js.map +1 -0
  659. package/dist/tools/testRunners/vitestJest.d.ts +3 -0
  660. package/dist/tools/testRunners/vitestJest.js +215 -0
  661. package/dist/tools/testRunners/vitestJest.js.map +1 -0
  662. package/dist/tools/testTraceToSource.d.ts +80 -0
  663. package/dist/tools/testTraceToSource.js +206 -0
  664. package/dist/tools/testTraceToSource.js.map +1 -0
  665. package/dist/tools/transaction.d.ts +243 -0
  666. package/dist/tools/transaction.js +309 -0
  667. package/dist/tools/transaction.js.map +1 -0
  668. package/dist/tools/typeHierarchy.d.ts +77 -0
  669. package/dist/tools/typeHierarchy.js +86 -0
  670. package/dist/tools/typeHierarchy.js.map +1 -0
  671. package/dist/tools/utils.d.ts +124 -0
  672. package/dist/tools/utils.js +566 -0
  673. package/dist/tools/utils.js.map +1 -0
  674. package/dist/tools/vscodeCommands.d.ts +90 -0
  675. package/dist/tools/vscodeCommands.js +112 -0
  676. package/dist/tools/vscodeCommands.js.map +1 -0
  677. package/dist/tools/vscodeTasks.d.ts +102 -0
  678. package/dist/tools/vscodeTasks.js +110 -0
  679. package/dist/tools/vscodeTasks.js.map +1 -0
  680. package/dist/tools/watchDiagnostics.d.ts +64 -0
  681. package/dist/tools/watchDiagnostics.js +270 -0
  682. package/dist/tools/watchDiagnostics.js.map +1 -0
  683. package/dist/tools/workspaceSettings.d.ts +57 -0
  684. package/dist/tools/workspaceSettings.js +80 -0
  685. package/dist/tools/workspaceSettings.js.map +1 -0
  686. package/dist/transport.d.ts +207 -0
  687. package/dist/transport.js +1272 -0
  688. package/dist/transport.js.map +1 -0
  689. package/dist/version.d.ts +13 -0
  690. package/dist/version.js +31 -0
  691. package/dist/version.js.map +1 -0
  692. package/dist/wsUtils.d.ts +8 -0
  693. package/dist/wsUtils.js +54 -0
  694. package/dist/wsUtils.js.map +1 -0
  695. package/package.json +118 -0
  696. package/scripts/gen-claude-desktop-config.sh +124 -0
  697. package/scripts/gen-mcp-config.sh +390 -0
  698. package/scripts/install-extension.sh +106 -0
  699. package/scripts/mcp-stdio-shim.cjs +482 -0
  700. package/scripts/postinstall.mjs +68 -0
  701. package/scripts/start-all.sh +502 -0
  702. package/scripts/start-orchestrator.sh +186 -0
  703. package/scripts/start-remote.sh +126 -0
  704. package/scripts/start-vps.sh +116 -0
  705. package/templates/CLAUDE.bridge.md +125 -0
  706. package/templates/automation-policies/security-first.json +46 -0
  707. package/templates/automation-policies/strict-lint.json +41 -0
  708. package/templates/automation-policies/test-driven.json +54 -0
  709. package/templates/automation-policy.example.json +105 -0
  710. package/templates/bridge-tools.md +111 -0
  711. package/templates/dispatch-context.md +33 -0
  712. package/templates/managed-agent/code-review-agent.md +50 -0
  713. package/templates/managed-agent/managed-agent-mcp.json +102 -0
  714. package/templates/recipes/ambient-journal.yaml +11 -0
  715. package/templates/recipes/daily-status.yaml +21 -0
  716. package/templates/recipes/lint-on-save.yaml +13 -0
  717. package/templates/recipes/stale-branches.yaml +18 -0
  718. package/templates/recipes/watch-failing-tests.yaml +15 -0
  719. package/templates/scheduled-tasks/dependency-audit/SKILL.md +77 -0
  720. package/templates/scheduled-tasks/health-check/SKILL.md +73 -0
  721. package/templates/scheduled-tasks/nightly-review/SKILL.md +69 -0
@@ -0,0 +1,390 @@
1
+ #!/usr/bin/env bash
2
+ # Generate MCP configuration for connecting an IDE or agent to the claude-ide-bridge.
3
+ #
4
+ # Usage:
5
+ # bash scripts/gen-mcp-config.sh <target> [--write]
6
+ #
7
+ # Targets:
8
+ # cursor Outputs .cursor/mcp.json content
9
+ # antigravity Outputs mcp_config.json content for Google Antigravity
10
+ # codex Outputs ~/.codex/config.toml section for OpenAI Codex CLI
11
+ # claude-desktop Outputs claude_desktop_config.json entry for Claude Desktop app
12
+ #
13
+ # Flags:
14
+ # --write Write the config to the correct location (asks confirmation)
15
+ #
16
+ # Example:
17
+ # bash scripts/gen-mcp-config.sh cursor
18
+ # bash scripts/gen-mcp-config.sh codex --write
19
+ # bash scripts/gen-mcp-config.sh claude-web --host mybridge.example.com --token <tok>
20
+
21
+ set -euo pipefail
22
+
23
+ CLAUDE_DIR="${CLAUDE_CONFIG_DIR:-$HOME/.claude}"
24
+ LOCK_DIR="$CLAUDE_DIR/ide"
25
+
26
+ TARGET="${1:-}"
27
+ WRITE=false
28
+ REMOTE_HOST=""
29
+ REMOTE_TOKEN=""
30
+
31
+ # Parse flags (handle --host <val> and --token <val> for the remote target)
32
+ _argv=("$@")
33
+ for (( _i=1; _i<${#_argv[@]}; _i++ )); do
34
+ case "${_argv[$_i]}" in
35
+ --write) WRITE=true ;;
36
+ --host) REMOTE_HOST="${_argv[$((_i+1))]:-}"; ((_i++)) ;;
37
+ --token) REMOTE_TOKEN="${_argv[$((_i+1))]:-}"; ((_i++)) ;;
38
+ esac
39
+ done
40
+
41
+ # --- Usage ---
42
+ if [[ -z "$TARGET" || "$TARGET" == "--help" || "$TARGET" == "-h" ]]; then
43
+ echo "Usage: $0 <target> [--write]"
44
+ echo ""
45
+ echo "Targets: cursor | antigravity | codex | claude-desktop | remote | claude-web"
46
+ echo " cursor .cursor/mcp.json"
47
+ echo " antigravity mcp_config.json for Google Antigravity"
48
+ echo " codex ~/.codex/config.toml section for OpenAI Codex CLI"
49
+ echo " claude-desktop claude_desktop_config.json for Claude Desktop app"
50
+ echo " remote Merges a remote bridge entry into the nearest .mcp.json (or ~/.claude/mcp.json)"
51
+ echo " Requires: --host <host:port> --token <token>"
52
+ echo " claude-web Custom Connector snippet for claude.ai web"
53
+ echo " Requires: --host <host:port> --token <token>"
54
+ echo ""
55
+ echo "Flags:"
56
+ echo " --write Write config to the correct location (not applicable for claude-web)"
57
+ echo " --host <h:port> Remote host and port (remote / claude-web targets)"
58
+ echo " --token <tok> Auth token (remote / claude-web targets; get via: claude-ide-bridge print-token)"
59
+ exit 0
60
+ fi
61
+
62
+ # --- Find the most recent valid lock file ---
63
+ find_lock() {
64
+ local best_lock=""
65
+ local best_mtime=0
66
+ local locks
67
+ locks=$(find "$LOCK_DIR" -maxdepth 1 -name "*.lock" 2>/dev/null) || true
68
+ for lock in $locks; do
69
+ [[ -f "$lock" ]] || continue
70
+ mtime=$(stat -f "%m" "$lock" 2>/dev/null || stat -c "%Y" "$lock" 2>/dev/null || echo 0)
71
+ if (( mtime > best_mtime )); then
72
+ best_mtime=$mtime
73
+ best_lock=$lock
74
+ fi
75
+ done
76
+ echo "$best_lock"
77
+ }
78
+
79
+ # claude-desktop target does not need a running bridge -- delegate to the dedicated script
80
+ if [[ "$TARGET" == "claude-desktop" ]]; then
81
+ DEDICATED="${BASH_SOURCE[0]%/*}/gen-claude-desktop-config.sh"
82
+ if [[ -f "$DEDICATED" ]]; then
83
+ exec bash "$DEDICATED" ${WRITE:+--write}
84
+ fi
85
+ # Fallback inline if dedicated script is missing
86
+ SHIM_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/mcp-stdio-shim.cjs"
87
+ if [[ "$(uname)" == "Darwin" ]]; then
88
+ OUTPUT_PATH="${HOME}/Library/Application Support/Claude/claude_desktop_config.json"
89
+ else
90
+ OUTPUT_PATH="${APPDATA:-${HOME}/.config}/Claude/claude_desktop_config.json"
91
+ fi
92
+ CONFIG=$(SHIM_PATH="$SHIM_PATH" python3 - <<'PYEOF'
93
+ import json, os
94
+ shim = os.environ["SHIM_PATH"]
95
+ print(json.dumps({"mcpServers": {"claude-ide-bridge": {"command": "node", "args": [shim]}}}, indent=2))
96
+ PYEOF
97
+ )
98
+ echo "=== Claude Desktop MCP config ==="
99
+ echo "Path: $OUTPUT_PATH"
100
+ echo ""
101
+ echo "$CONFIG"
102
+ echo ""
103
+ echo "The shim auto-discovers the running bridge via lock files."
104
+ echo "Restart Claude Desktop after writing the config."
105
+ if $WRITE; then
106
+ TMP_PATH="${OUTPUT_PATH}.tmp"
107
+ mkdir -p "$(dirname "$OUTPUT_PATH")"
108
+ if [[ -f "$OUTPUT_PATH" ]]; then
109
+ cp "$OUTPUT_PATH" "${OUTPUT_PATH}.$(date +%Y%m%d%H%M%S).bak"
110
+ fi
111
+ printf '%s\n' "$CONFIG" > "$TMP_PATH"
112
+ mv "$TMP_PATH" "$OUTPUT_PATH"
113
+ echo "Written: $OUTPUT_PATH"
114
+ fi
115
+ exit 0
116
+ fi
117
+
118
+ # --- Remote target: no lock file needed — caller supplies host and token ---
119
+ if [[ "$TARGET" == "remote" ]]; then
120
+ if [[ -z "$REMOTE_HOST" || -z "$REMOTE_TOKEN" ]]; then
121
+ echo "Error: 'remote' target requires --host <host:port> and --token <token>" >&2
122
+ echo " Example: bash gen-mcp-config.sh remote --host mybridge.example.com:8080 --token abc123 --write" >&2
123
+ exit 1
124
+ fi
125
+ OUTPUT_PATH="${HOME}/.claude/mcp.json"
126
+ CONFIG=$(cat <<EOF
127
+ {
128
+ "mcpServers": {
129
+ "claude-ide-bridge-remote": {
130
+ "type": "http",
131
+ "url": "http://${REMOTE_HOST}/mcp",
132
+ "headers": {
133
+ "Authorization": "Bearer ${REMOTE_TOKEN}"
134
+ }
135
+ }
136
+ }
137
+ }
138
+ EOF
139
+ )
140
+ # WARNING: Ephemeral tunnels (trycloudflare.com) generate a new URL on every restart.
141
+ # Any MCP config using this URL will break when the tunnel restarts.
142
+ # For stable remote access, use a fixed domain with --fixed-token.
143
+ if [[ "$REMOTE_HOST" == *".trycloudflare.com"* ]]; then
144
+ echo "⚠️ WARNING: trycloudflare.com tunnels are ephemeral — the URL changes every time" >&2
145
+ echo " cloudflared restarts. Your MCP config will break on the next restart." >&2
146
+ echo " For a permanent URL, use a named tunnel:" >&2
147
+ echo " cloudflared tunnel login" >&2
148
+ echo " cloudflared tunnel create my-bridge" >&2
149
+ echo " cloudflared tunnel route dns my-bridge bridge.yourdomain.com" >&2
150
+ echo " See the README (Cloudflare section) for the full setup guide." >&2
151
+ echo "" >&2
152
+ fi
153
+
154
+ echo "=== Remote bridge MCP config ==="
155
+ echo "Bridge: http://${REMOTE_HOST}/mcp"
156
+ echo ""
157
+ echo "$CONFIG"
158
+ echo ""
159
+ echo "Note: Use HTTPS in production — put nginx or Caddy in front with TLS."
160
+ echo "Tip: Claude Code supports \${VAR:-default} in .mcp.json. Replace the token value"
161
+ echo " with \${BRIDGE_TOKEN} and set BRIDGE_TOKEN in your shell profile to avoid"
162
+ echo " storing the token in the config file. See docs/remote-access.md for details."
163
+ echo ""
164
+ echo "⚠️ IMPORTANT: Start your bridge with --fixed-token <uuid> (or CLAUDE_IDE_BRIDGE_TOKEN=<uuid>)"
165
+ echo " to keep this token stable across restarts. Without it, the bridge generates a new"
166
+ echo " token on every restart and this MCP config will stop working immediately."
167
+ echo " Example: claude-ide-bridge --bind 0.0.0.0 --fixed-token \$BRIDGE_TOKEN --workspace /path/to/project"
168
+ if $WRITE; then
169
+ # Find the nearest .mcp.json (walk up from cwd, fallback to ~/.claude/mcp.json)
170
+ _find_mcp_json() {
171
+ local dir="$PWD"
172
+ while [[ "$dir" != "/" ]]; do
173
+ [[ -f "$dir/.mcp.json" ]] && echo "$dir/.mcp.json" && return
174
+ dir="$(dirname "$dir")"
175
+ done
176
+ echo "${HOME}/.claude/mcp.json"
177
+ }
178
+ OUTPUT_PATH="$(_find_mcp_json)"
179
+
180
+ # Merge the new server entry into the existing file (python3 required)
181
+ if command -v python3 >/dev/null 2>&1; then
182
+ MERGE_HOST="$REMOTE_HOST" MERGE_TOKEN="$REMOTE_TOKEN" OUTPUT_PATH="$OUTPUT_PATH" python3 - <<'PYEOF'
183
+ import json, os, sys
184
+ path = os.environ["OUTPUT_PATH"]
185
+ host = os.environ["MERGE_HOST"]
186
+ token = os.environ["MERGE_TOKEN"]
187
+ try:
188
+ with open(path) as f:
189
+ existing = json.load(f)
190
+ except (FileNotFoundError, json.JSONDecodeError):
191
+ existing = {}
192
+ existing.setdefault("mcpServers", {})["claude-ide-bridge-remote"] = {
193
+ "type": "http",
194
+ "url": f"http://{host}/mcp",
195
+ "headers": {"Authorization": f"Bearer {token}"}
196
+ }
197
+ tmp = path + ".tmp"
198
+ with open(tmp, "w") as f:
199
+ json.dump(existing, f, indent=2)
200
+ f.write("\n")
201
+ os.replace(tmp, path)
202
+ print(f"Written: {path}")
203
+ PYEOF
204
+ else
205
+ # Fallback: write standalone file
206
+ TMP_PATH="${OUTPUT_PATH}.tmp"
207
+ mkdir -p "$(dirname "$OUTPUT_PATH")"
208
+ printf '%s\n' "$CONFIG" > "$TMP_PATH"
209
+ mv "$TMP_PATH" "$OUTPUT_PATH"
210
+ echo "Written: $OUTPUT_PATH"
211
+ fi
212
+ fi
213
+ exit 0
214
+ fi
215
+
216
+ # --- Claude.ai Web Custom Connector target ---
217
+ if [[ "$TARGET" == "claude-web" ]]; then
218
+ if [[ -z "$REMOTE_HOST" || -z "$REMOTE_TOKEN" ]]; then
219
+ echo "Error: claude-web target requires --host <host:port> and --token <token>" >&2
220
+ echo " The bridge must be behind a reverse proxy with TLS for claude.ai to reach it." >&2
221
+ echo " Get the token with: claude-ide-bridge print-token" >&2
222
+ exit 1
223
+ fi
224
+ # Warn when using an ephemeral trycloudflare.com tunnel
225
+ if [[ "$REMOTE_HOST" == *".trycloudflare.com"* ]]; then
226
+ echo "⚠️ WARNING: trycloudflare.com tunnels are ephemeral — the URL changes every time" >&2
227
+ echo " cloudflared restarts. Your connector URL will break on the next restart." >&2
228
+ echo " For a permanent URL, use a named tunnel:" >&2
229
+ echo " cloudflared tunnel login" >&2
230
+ echo " cloudflared tunnel create my-bridge" >&2
231
+ echo " cloudflared tunnel route dns my-bridge bridge.yourdomain.com" >&2
232
+ echo " See the README (Cloudflare section) for the full setup guide." >&2
233
+ echo "" >&2
234
+ fi
235
+
236
+ # claude.ai Custom Connectors use HTTPS — warn if http:// is implied (no scheme in host)
237
+ if [[ "$REMOTE_HOST" != https://* && "$REMOTE_HOST" != http://* ]]; then
238
+ CONNECTOR_URL="https://${REMOTE_HOST}/mcp"
239
+ else
240
+ CONNECTOR_URL="${REMOTE_HOST}/mcp"
241
+ fi
242
+ echo "=== claude.ai Web — Custom Connector settings ==="
243
+ echo ""
244
+ echo "1. Go to claude.ai → Settings → Custom Connectors → Add connector"
245
+ echo "2. Enter the following:"
246
+ echo ""
247
+ echo " Name: Claude IDE Bridge"
248
+ echo " URL: ${CONNECTOR_URL}"
249
+ echo " Auth: Bearer token"
250
+ echo " Token: ${REMOTE_TOKEN}"
251
+ echo ""
252
+ echo "Note: The bridge must be reachable over HTTPS from the public internet."
253
+ echo " See docs/remote-access.md for a production-ready Caddy/nginx TLS setup."
254
+ echo "Tip: Rotate the token with: claude-ide-bridge rotate-token"
255
+ echo " Then update the connector's token in claude.ai settings."
256
+ exit 0
257
+ fi
258
+
259
+ LOCK_FILE=$(find_lock)
260
+
261
+ if [[ -z "$LOCK_FILE" ]]; then
262
+ echo "Error: No bridge lock file found in $LOCK_DIR" >&2
263
+ echo "Make sure the bridge is running first: npm run start-all" >&2
264
+ exit 1
265
+ fi
266
+
267
+ # Parse lock file (requires python3 or jq)
268
+ # Passes $LOCK_FILE and $field via env vars to avoid shell injection in -c string
269
+ parse_lock() {
270
+ local field="$1"
271
+ if command -v python3 >/dev/null 2>&1; then
272
+ LOCK_FILE="$LOCK_FILE" LOCK_FIELD="$field" python3 - <<'PYEOF'
273
+ import json, os
274
+ with open(os.environ["LOCK_FILE"]) as f:
275
+ d = json.load(f)
276
+ print(d[os.environ["LOCK_FIELD"]])
277
+ PYEOF
278
+ elif command -v jq >/dev/null 2>&1; then
279
+ jq -r --arg f "$field" '.[$f]' "$LOCK_FILE"
280
+ else
281
+ echo "Error: python3 or jq is required to parse the bridge lock file." >&2
282
+ echo " Install python3: brew install python3 (macOS) or apt install python3 (Linux)" >&2
283
+ echo " Install jq: brew install jq (macOS) or apt install jq (Linux)" >&2
284
+ exit 1
285
+ fi
286
+ }
287
+
288
+ PORT=$(basename "$LOCK_FILE" .lock)
289
+ AUTH_TOKEN=$(parse_lock "authToken")
290
+
291
+ WS_URL="ws://127.0.0.1:${PORT}"
292
+ HTTP_URL="http://127.0.0.1:${PORT}"
293
+
294
+ echo "Found bridge: port=${PORT} lock=$(basename "$LOCK_FILE")"
295
+ echo ""
296
+
297
+ # --- Generate config per target ---
298
+ case "$TARGET" in
299
+ cursor)
300
+ OUTPUT_PATH="${HOME}/.cursor/mcp.json"
301
+ CONFIG=$(cat <<EOF
302
+ {
303
+ "mcpServers": {
304
+ "claude-ide-bridge": {
305
+ "url": "${WS_URL}",
306
+ "headers": {
307
+ "x-claude-ide-extension": "${AUTH_TOKEN}"
308
+ }
309
+ }
310
+ }
311
+ }
312
+ EOF
313
+ )
314
+ echo "=== Cursor MCP config (.cursor/mcp.json or project/.cursor/mcp.json) ==="
315
+ echo "$CONFIG"
316
+ ;;
317
+
318
+ antigravity)
319
+ OUTPUT_PATH="${HOME}/.antigravity/mcp_config.json"
320
+ CONFIG=$(cat <<EOF
321
+ {
322
+ "mcpServers": {
323
+ "claude-ide-bridge": {
324
+ "transport": "websocket",
325
+ "url": "${WS_URL}",
326
+ "headers": {
327
+ "x-claude-ide-extension": "${AUTH_TOKEN}"
328
+ }
329
+ }
330
+ }
331
+ }
332
+ EOF
333
+ )
334
+ echo "=== Google Antigravity MCP config ==="
335
+ echo "(In Antigravity: Agent session → dropdown → Manage MCP Servers → edit mcp_config.json)"
336
+ echo ""
337
+ echo "$CONFIG"
338
+ ;;
339
+
340
+ codex)
341
+ OUTPUT_PATH="${HOME}/.codex/config.toml"
342
+ # Codex CLI supports stdio and streamable HTTP — use the bridge's HTTP endpoint
343
+ # Auth uses Authorization: Bearer (not x-claude-ide-extension, which is for WS extension sessions)
344
+ CONFIG=$(cat <<EOF
345
+ # Add this to ~/.codex/config.toml to connect to claude-ide-bridge
346
+ # The bridge must be running before starting codex.
347
+
348
+ [mcp_servers.claude-ide-bridge]
349
+ # Streamable HTTP transport (bridge HTTP server)
350
+ url = "${HTTP_URL}/mcp"
351
+ http_headers = { "Authorization" = "Bearer ${AUTH_TOKEN}" }
352
+ enabled = true
353
+ EOF
354
+ )
355
+ echo "=== OpenAI Codex CLI MCP config (~/.codex/config.toml) ==="
356
+ echo "$CONFIG"
357
+ echo ""
358
+ echo "Note: Retrieve the auth token from the lock file at: $LOCK_FILE"
359
+ ;;
360
+
361
+ *)
362
+ echo "Error: Unknown target '$TARGET'. Use: cursor | antigravity | codex | claude-desktop | remote | claude-web" >&2
363
+ exit 1
364
+ ;;
365
+ esac
366
+
367
+ # --- Write mode ---
368
+ if $WRITE; then
369
+ echo ""
370
+ echo "Write to: $OUTPUT_PATH"
371
+ read -r -p "Confirm? [y/N] " confirm
372
+ if [[ "$confirm" =~ ^[Yy]$ ]]; then
373
+ mkdir -p "$(dirname "$OUTPUT_PATH")"
374
+ # Timestamped backup so repeated --write calls don't clobber each other
375
+ if [[ -f "$OUTPUT_PATH" ]]; then
376
+ BACKUP="${OUTPUT_PATH}.$(date +%Y%m%d%H%M%S).bak"
377
+ cp "$OUTPUT_PATH" "$BACKUP"
378
+ echo "Backed up existing config to $(basename "$BACKUP")"
379
+ fi
380
+ # Atomic write via tmp file to prevent partial writes on interrupt
381
+ TMP_FILE="$(mktemp)"
382
+ trap 'rm -f "$TMP_FILE"' EXIT
383
+ TMP_PATH="${OUTPUT_PATH}.tmp"
384
+ printf '%s\n' "$CONFIG" > "$TMP_PATH"
385
+ mv "$TMP_PATH" "$OUTPUT_PATH"
386
+ echo "Written: $OUTPUT_PATH"
387
+ else
388
+ echo "Aborted."
389
+ fi
390
+ fi
@@ -0,0 +1,106 @@
1
+ #!/usr/bin/env bash
2
+ # Install the claude-ide-bridge VS Code extension into a supported IDE.
3
+ #
4
+ # Usage:
5
+ # bash scripts/install-extension.sh [--ide <ide>] [--build]
6
+ #
7
+ # Supported IDEs:
8
+ # windsurf Windsurf (default if detected)
9
+ # cursor Cursor
10
+ # antigravity Google Antigravity
11
+ # code VS Code
12
+ #
13
+ # Flags:
14
+ # --ide <name> Specify target IDE (auto-detects if omitted)
15
+ # --build Rebuild extension + VSIX before installing
16
+ #
17
+ # Example:
18
+ # bash scripts/install-extension.sh --ide cursor
19
+ # bash scripts/install-extension.sh --ide antigravity --build
20
+
21
+ set -euo pipefail
22
+
23
+ BRIDGE_DIR="$(cd "$(dirname "$0")/.." && pwd)"
24
+ VSIX_DIR="$BRIDGE_DIR/vscode-extension"
25
+ IDE=""
26
+ DO_BUILD=false
27
+
28
+ # --- Parse args ---
29
+ while [[ $# -gt 0 ]]; do
30
+ case "$1" in
31
+ --ide) IDE="$2"; shift 2 ;;
32
+ --build) DO_BUILD=true; shift ;;
33
+ --help|-h)
34
+ echo "Usage: $0 [--ide <windsurf|cursor|antigravity|code>] [--build]"
35
+ exit 0
36
+ ;;
37
+ *) echo "Unknown option: $1" >&2; exit 1 ;;
38
+ esac
39
+ done
40
+
41
+ # --- Auto-detect IDE if not specified ---
42
+ detect_ide() {
43
+ for cmd in windsurf cursor antigravity ag code; do
44
+ command -v "$cmd" >/dev/null 2>&1 && echo "$cmd" && return
45
+ done
46
+ echo ""
47
+ }
48
+
49
+ if [[ -z "$IDE" ]]; then
50
+ IDE=$(detect_ide)
51
+ if [[ -z "$IDE" ]]; then
52
+ echo "Error: Could not auto-detect a supported IDE on PATH." >&2
53
+ echo "Specify one with --ide <windsurf|cursor|antigravity|code>" >&2
54
+ exit 1
55
+ fi
56
+ echo "Auto-detected IDE: $IDE"
57
+ fi
58
+
59
+ # Normalise alias
60
+ [[ "$IDE" == "ag" ]] && IDE="antigravity"
61
+
62
+ # --- Map IDE to its install CLI command ---
63
+ case "$IDE" in
64
+ windsurf) INSTALL_CMD="windsurf" ;;
65
+ cursor) INSTALL_CMD="cursor" ;;
66
+ antigravity) INSTALL_CMD="antigravity" ;;
67
+ code) INSTALL_CMD="code" ;;
68
+ *)
69
+ echo "Error: Unsupported IDE '$IDE'. Use: windsurf | cursor | antigravity | code" >&2
70
+ exit 1
71
+ ;;
72
+ esac
73
+
74
+ # Verify the CLI is available
75
+ command -v "$INSTALL_CMD" >/dev/null 2>&1 || {
76
+ echo "Error: '$INSTALL_CMD' not found on PATH." >&2
77
+ echo "Make sure $IDE is installed and its CLI is on your PATH." >&2
78
+ exit 1
79
+ }
80
+
81
+ # --- Build if requested ---
82
+ if $DO_BUILD; then
83
+ echo "Building extension..."
84
+ (cd "$VSIX_DIR" && npm run build && npm run package)
85
+ echo ""
86
+ fi
87
+
88
+ # --- Find the VSIX ---
89
+ VSIX_COUNT=$(ls "$VSIX_DIR"/*.vsix 2>/dev/null | wc -l | tr -d ' ')
90
+ if [ "$VSIX_COUNT" -gt 1 ]; then
91
+ echo "Warning: Found $VSIX_COUNT .vsix files — using newest. Run with --build to rebuild." >&2
92
+ fi
93
+ VSIX=$(ls -t "$VSIX_DIR"/*.vsix 2>/dev/null | head -1)
94
+ if [[ -z "$VSIX" ]]; then
95
+ echo "Error: No .vsix file found in $VSIX_DIR" >&2
96
+ echo "Run with --build to build it first, or: cd vscode-extension && npm run package" >&2
97
+ exit 1
98
+ fi
99
+
100
+ echo "Installing $(basename "$VSIX") into $IDE..."
101
+ # --force reinstalls even if already installed (needed for upgrades)
102
+ "$INSTALL_CMD" --install-extension "$VSIX" --force
103
+
104
+ echo ""
105
+ echo "Done. To activate: restart your IDE, or open the Command Palette (Cmd+Shift+P on Mac / Ctrl+Shift+P on Windows/Linux) and run 'Developer: Reload Window'."
106
+ echo "The extension will auto-connect to any running bridge."