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.
- package/LICENSE +21 -0
- package/README.bridge.md +352 -0
- package/README.md +72 -0
- package/deploy/README.md +172 -0
- package/deploy/bootstrap-new-vps.sh +364 -0
- package/deploy/claude-ide-bridge.service.template +67 -0
- package/deploy/claude-ide-bridge@.service +31 -0
- package/deploy/ecosystem.config.js.example +36 -0
- package/deploy/install-vps-service.sh +240 -0
- package/deploy/nginx-claude-bridge.conf.template +129 -0
- package/dist/activityLog.d.ts +112 -0
- package/dist/activityLog.js +399 -0
- package/dist/activityLog.js.map +1 -0
- package/dist/activityTypes.d.ts +28 -0
- package/dist/activityTypes.js +9 -0
- package/dist/activityTypes.js.map +1 -0
- package/dist/adapters/base.d.ts +78 -0
- package/dist/adapters/base.js +14 -0
- package/dist/adapters/base.js.map +1 -0
- package/dist/adapters/claude.d.ts +18 -0
- package/dist/adapters/claude.js +276 -0
- package/dist/adapters/claude.js.map +1 -0
- package/dist/adapters/gemini.d.ts +17 -0
- package/dist/adapters/gemini.js +218 -0
- package/dist/adapters/gemini.js.map +1 -0
- package/dist/adapters/grok.d.ts +7 -0
- package/dist/adapters/grok.js +21 -0
- package/dist/adapters/grok.js.map +1 -0
- package/dist/adapters/index.d.ts +5 -0
- package/dist/adapters/index.js +37 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/local.d.ts +7 -0
- package/dist/adapters/local.js +22 -0
- package/dist/adapters/local.js.map +1 -0
- package/dist/adapters/openai.d.ts +22 -0
- package/dist/adapters/openai.js +284 -0
- package/dist/adapters/openai.js.map +1 -0
- package/dist/adapters/sse.d.ts +13 -0
- package/dist/adapters/sse.js +58 -0
- package/dist/adapters/sse.js.map +1 -0
- package/dist/analyticsAggregator.d.ts +28 -0
- package/dist/analyticsAggregator.js +133 -0
- package/dist/analyticsAggregator.js.map +1 -0
- package/dist/analyticsPrefs.d.ts +9 -0
- package/dist/analyticsPrefs.js +50 -0
- package/dist/analyticsPrefs.js.map +1 -0
- package/dist/analyticsSend.d.ts +12 -0
- package/dist/analyticsSend.js +34 -0
- package/dist/analyticsSend.js.map +1 -0
- package/dist/approvalHttp.d.ts +46 -0
- package/dist/approvalHttp.js +370 -0
- package/dist/approvalHttp.js.map +1 -0
- package/dist/approvalQueue.d.ts +49 -0
- package/dist/approvalQueue.js +84 -0
- package/dist/approvalQueue.js.map +1 -0
- package/dist/automation.d.ts +675 -0
- package/dist/automation.js +1038 -0
- package/dist/automation.js.map +1 -0
- package/dist/bridge.d.ts +85 -0
- package/dist/bridge.js +1535 -0
- package/dist/bridge.js.map +1 -0
- package/dist/bridgeLockDiscovery.d.ts +11 -0
- package/dist/bridgeLockDiscovery.js +49 -0
- package/dist/bridgeLockDiscovery.js.map +1 -0
- package/dist/bridgeToken.d.ts +22 -0
- package/dist/bridgeToken.js +114 -0
- package/dist/bridgeToken.js.map +1 -0
- package/dist/bridgeToolsRules.d.ts +20 -0
- package/dist/bridgeToolsRules.js +79 -0
- package/dist/bridgeToolsRules.js.map +1 -0
- package/dist/ccPermissions.d.ts +59 -0
- package/dist/ccPermissions.js +163 -0
- package/dist/ccPermissions.js.map +1 -0
- package/dist/claudeDriver.d.ts +129 -0
- package/dist/claudeDriver.js +459 -0
- package/dist/claudeDriver.js.map +1 -0
- package/dist/claudeMdPatch.d.ts +29 -0
- package/dist/claudeMdPatch.js +164 -0
- package/dist/claudeMdPatch.js.map +1 -0
- package/dist/claudeOrchestrator.d.ts +171 -0
- package/dist/claudeOrchestrator.js +591 -0
- package/dist/claudeOrchestrator.js.map +1 -0
- package/dist/commands/install.d.ts +1 -0
- package/dist/commands/install.js +158 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/marketplace.d.ts +11 -0
- package/dist/commands/marketplace.js +120 -0
- package/dist/commands/marketplace.js.map +1 -0
- package/dist/commands/patchworkInit.d.ts +14 -0
- package/dist/commands/patchworkInit.js +155 -0
- package/dist/commands/patchworkInit.js.map +1 -0
- package/dist/commands/task.d.ts +14 -0
- package/dist/commands/task.js +289 -0
- package/dist/commands/task.js.map +1 -0
- package/dist/commands/tokenEfficiency.d.ts +9 -0
- package/dist/commands/tokenEfficiency.js +211 -0
- package/dist/commands/tokenEfficiency.js.map +1 -0
- package/dist/commands/tools.d.ts +28 -0
- package/dist/commands/tools.js +326 -0
- package/dist/commands/tools.js.map +1 -0
- package/dist/commitIssueLinkLog.d.ts +77 -0
- package/dist/commitIssueLinkLog.js +142 -0
- package/dist/commitIssueLinkLog.js.map +1 -0
- package/dist/companions/registry.d.ts +12 -0
- package/dist/companions/registry.js +71 -0
- package/dist/companions/registry.js.map +1 -0
- package/dist/config.d.ts +105 -0
- package/dist/config.js +720 -0
- package/dist/config.js.map +1 -0
- package/dist/crypto.d.ts +16 -0
- package/dist/crypto.js +34 -0
- package/dist/crypto.js.map +1 -0
- package/dist/dashboard.d.ts +12 -0
- package/dist/dashboard.js +149 -0
- package/dist/dashboard.js.map +1 -0
- package/dist/decisionTraceLog.d.ts +77 -0
- package/dist/decisionTraceLog.js +147 -0
- package/dist/decisionTraceLog.js.map +1 -0
- package/dist/errors.d.ts +32 -0
- package/dist/errors.js +34 -0
- package/dist/errors.js.map +1 -0
- package/dist/extensionClient.d.ts +279 -0
- package/dist/extensionClient.js +1253 -0
- package/dist/extensionClient.js.map +1 -0
- package/dist/fileLock.d.ts +36 -0
- package/dist/fileLock.js +121 -0
- package/dist/fileLock.js.map +1 -0
- package/dist/fp/activityAnalytics.d.ts +39 -0
- package/dist/fp/activityAnalytics.js +111 -0
- package/dist/fp/activityAnalytics.js.map +1 -0
- package/dist/fp/async.d.ts +48 -0
- package/dist/fp/async.js +60 -0
- package/dist/fp/async.js.map +1 -0
- package/dist/fp/automationInterpreter.d.ts +37 -0
- package/dist/fp/automationInterpreter.js +523 -0
- package/dist/fp/automationInterpreter.js.map +1 -0
- package/dist/fp/automationProgram.d.ts +89 -0
- package/dist/fp/automationProgram.js +29 -0
- package/dist/fp/automationProgram.js.map +1 -0
- package/dist/fp/automationState.d.ts +135 -0
- package/dist/fp/automationState.js +206 -0
- package/dist/fp/automationState.js.map +1 -0
- package/dist/fp/automationUtils.d.ts +31 -0
- package/dist/fp/automationUtils.js +61 -0
- package/dist/fp/automationUtils.js.map +1 -0
- package/dist/fp/brandedTypes.d.ts +32 -0
- package/dist/fp/brandedTypes.js +41 -0
- package/dist/fp/brandedTypes.js.map +1 -0
- package/dist/fp/commandDescription.d.ts +18 -0
- package/dist/fp/commandDescription.js +125 -0
- package/dist/fp/commandDescription.js.map +1 -0
- package/dist/fp/extensionSnapshot.d.ts +10 -0
- package/dist/fp/extensionSnapshot.js +14 -0
- package/dist/fp/extensionSnapshot.js.map +1 -0
- package/dist/fp/index.d.ts +8 -0
- package/dist/fp/index.js +9 -0
- package/dist/fp/index.js.map +1 -0
- package/dist/fp/interpreterContext.d.ts +69 -0
- package/dist/fp/interpreterContext.js +56 -0
- package/dist/fp/interpreterContext.js.map +1 -0
- package/dist/fp/policyParser.d.ts +16 -0
- package/dist/fp/policyParser.js +334 -0
- package/dist/fp/policyParser.js.map +1 -0
- package/dist/fp/result.d.ts +38 -0
- package/dist/fp/result.js +57 -0
- package/dist/fp/result.js.map +1 -0
- package/dist/fp/tokenBucket.d.ts +27 -0
- package/dist/fp/tokenBucket.js +36 -0
- package/dist/fp/tokenBucket.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1465 -0
- package/dist/index.js.map +1 -0
- package/dist/instructionsUtils.d.ts +17 -0
- package/dist/instructionsUtils.js +38 -0
- package/dist/instructionsUtils.js.map +1 -0
- package/dist/lockfile.d.ts +16 -0
- package/dist/lockfile.js +172 -0
- package/dist/lockfile.js.map +1 -0
- package/dist/logger.d.ts +16 -0
- package/dist/logger.js +68 -0
- package/dist/logger.js.map +1 -0
- package/dist/oauth.d.ts +105 -0
- package/dist/oauth.js +880 -0
- package/dist/oauth.js.map +1 -0
- package/dist/orchestrator/childBridgeClient.d.ts +33 -0
- package/dist/orchestrator/childBridgeClient.js +321 -0
- package/dist/orchestrator/childBridgeClient.js.map +1 -0
- package/dist/orchestrator/childBridgeRegistry.d.ts +67 -0
- package/dist/orchestrator/childBridgeRegistry.js +297 -0
- package/dist/orchestrator/childBridgeRegistry.js.map +1 -0
- package/dist/orchestrator/index.d.ts +3 -0
- package/dist/orchestrator/index.js +3 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/orchestratorBridge.d.ts +32 -0
- package/dist/orchestrator/orchestratorBridge.js +412 -0
- package/dist/orchestrator/orchestratorBridge.js.map +1 -0
- package/dist/orchestrator/orchestratorConfig.d.ts +11 -0
- package/dist/orchestrator/orchestratorConfig.js +85 -0
- package/dist/orchestrator/orchestratorConfig.js.map +1 -0
- package/dist/orchestrator/orchestratorTools.d.ts +16 -0
- package/dist/orchestrator/orchestratorTools.js +272 -0
- package/dist/orchestrator/orchestratorTools.js.map +1 -0
- package/dist/patchworkCli.d.ts +15 -0
- package/dist/patchworkCli.js +41 -0
- package/dist/patchworkCli.js.map +1 -0
- package/dist/patchworkConfig.d.ts +28 -0
- package/dist/patchworkConfig.js +30 -0
- package/dist/patchworkConfig.js.map +1 -0
- package/dist/plugin.d.ts +106 -0
- package/dist/plugin.js +31 -0
- package/dist/plugin.js.map +1 -0
- package/dist/pluginLoader.d.ts +44 -0
- package/dist/pluginLoader.js +357 -0
- package/dist/pluginLoader.js.map +1 -0
- package/dist/pluginWatcher.d.ts +24 -0
- package/dist/pluginWatcher.js +139 -0
- package/dist/pluginWatcher.js.map +1 -0
- package/dist/preToolUseHook.d.ts +10 -0
- package/dist/preToolUseHook.js +57 -0
- package/dist/preToolUseHook.js.map +1 -0
- package/dist/probe.d.ts +35 -0
- package/dist/probe.js +143 -0
- package/dist/probe.js.map +1 -0
- package/dist/prompts.d.ts +27 -0
- package/dist/prompts.js +1680 -0
- package/dist/prompts.js.map +1 -0
- package/dist/quickTaskPresets.d.ts +64 -0
- package/dist/quickTaskPresets.js +156 -0
- package/dist/quickTaskPresets.js.map +1 -0
- package/dist/recipes/compiler.d.ts +44 -0
- package/dist/recipes/compiler.js +140 -0
- package/dist/recipes/compiler.js.map +1 -0
- package/dist/recipes/installer.d.ts +25 -0
- package/dist/recipes/installer.js +62 -0
- package/dist/recipes/installer.js.map +1 -0
- package/dist/recipes/parser.d.ts +18 -0
- package/dist/recipes/parser.js +160 -0
- package/dist/recipes/parser.js.map +1 -0
- package/dist/recipes/scheduler.d.ts +45 -0
- package/dist/recipes/scheduler.js +110 -0
- package/dist/recipes/scheduler.js.map +1 -0
- package/dist/recipes/schema.d.ts +71 -0
- package/dist/recipes/schema.js +11 -0
- package/dist/recipes/schema.js.map +1 -0
- package/dist/recipesHttp.d.ts +63 -0
- package/dist/recipesHttp.js +183 -0
- package/dist/recipesHttp.js.map +1 -0
- package/dist/resources.d.ts +33 -0
- package/dist/resources.js +266 -0
- package/dist/resources.js.map +1 -0
- package/dist/riskTier.d.ts +40 -0
- package/dist/riskTier.js +142 -0
- package/dist/riskTier.js.map +1 -0
- package/dist/runLog.d.ts +90 -0
- package/dist/runLog.js +143 -0
- package/dist/runLog.js.map +1 -0
- package/dist/server.d.ts +160 -0
- package/dist/server.js +1244 -0
- package/dist/server.js.map +1 -0
- package/dist/sessionCheckpoint.d.ts +37 -0
- package/dist/sessionCheckpoint.js +123 -0
- package/dist/sessionCheckpoint.js.map +1 -0
- package/dist/streamableHttp.d.ts +86 -0
- package/dist/streamableHttp.js +702 -0
- package/dist/streamableHttp.js.map +1 -0
- package/dist/telemetry.d.ts +18 -0
- package/dist/telemetry.js +95 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tools/activityLog.d.ts +140 -0
- package/dist/tools/activityLog.js +204 -0
- package/dist/tools/activityLog.js.map +1 -0
- package/dist/tools/auditDependencies.d.ts +67 -0
- package/dist/tools/auditDependencies.js +298 -0
- package/dist/tools/auditDependencies.js.map +1 -0
- package/dist/tools/batchLsp.d.ts +262 -0
- package/dist/tools/batchLsp.js +328 -0
- package/dist/tools/batchLsp.js.map +1 -0
- package/dist/tools/blame-utils.d.ts +30 -0
- package/dist/tools/blame-utils.js +60 -0
- package/dist/tools/blame-utils.js.map +1 -0
- package/dist/tools/bridgeDoctor.d.ts +78 -0
- package/dist/tools/bridgeDoctor.js +542 -0
- package/dist/tools/bridgeDoctor.js.map +1 -0
- package/dist/tools/bridgeStatus.d.ts +122 -0
- package/dist/tools/bridgeStatus.js +250 -0
- package/dist/tools/bridgeStatus.js.map +1 -0
- package/dist/tools/cancelClaudeTask.d.ts +48 -0
- package/dist/tools/cancelClaudeTask.js +56 -0
- package/dist/tools/cancelClaudeTask.js.map +1 -0
- package/dist/tools/checkDocumentDirty.d.ts +56 -0
- package/dist/tools/checkDocumentDirty.js +74 -0
- package/dist/tools/checkDocumentDirty.js.map +1 -0
- package/dist/tools/clipboard.d.ts +80 -0
- package/dist/tools/clipboard.js +211 -0
- package/dist/tools/clipboard.js.map +1 -0
- package/dist/tools/closeTabs.d.ts +84 -0
- package/dist/tools/closeTabs.js +97 -0
- package/dist/tools/closeTabs.js.map +1 -0
- package/dist/tools/codeLens.d.ts +50 -0
- package/dist/tools/codeLens.js +47 -0
- package/dist/tools/codeLens.js.map +1 -0
- package/dist/tools/contextBundle.d.ts +75 -0
- package/dist/tools/contextBundle.js +218 -0
- package/dist/tools/contextBundle.js.map +1 -0
- package/dist/tools/createIssueFromAIComment.d.ts +75 -0
- package/dist/tools/createIssueFromAIComment.js +119 -0
- package/dist/tools/createIssueFromAIComment.js.map +1 -0
- package/dist/tools/ctxGetTaskContext.d.ts +103 -0
- package/dist/tools/ctxGetTaskContext.js +274 -0
- package/dist/tools/ctxGetTaskContext.js.map +1 -0
- package/dist/tools/ctxQueryTraces.d.ts +142 -0
- package/dist/tools/ctxQueryTraces.js +194 -0
- package/dist/tools/ctxQueryTraces.js.map +1 -0
- package/dist/tools/ctxSaveTrace.d.ts +87 -0
- package/dist/tools/ctxSaveTrace.js +94 -0
- package/dist/tools/ctxSaveTrace.js.map +1 -0
- package/dist/tools/debug.d.ts +206 -0
- package/dist/tools/debug.js +234 -0
- package/dist/tools/debug.js.map +1 -0
- package/dist/tools/decorations.d.ts +130 -0
- package/dist/tools/decorations.js +160 -0
- package/dist/tools/decorations.js.map +1 -0
- package/dist/tools/detectUnusedCode.d.ts +78 -0
- package/dist/tools/detectUnusedCode.js +173 -0
- package/dist/tools/detectUnusedCode.js.map +1 -0
- package/dist/tools/documentLinks.d.ts +62 -0
- package/dist/tools/documentLinks.js +55 -0
- package/dist/tools/documentLinks.js.map +1 -0
- package/dist/tools/editText.d.ts +108 -0
- package/dist/tools/editText.js +318 -0
- package/dist/tools/editText.js.map +1 -0
- package/dist/tools/enrichCommit.d.ts +89 -0
- package/dist/tools/enrichCommit.js +201 -0
- package/dist/tools/enrichCommit.js.map +1 -0
- package/dist/tools/enrichStackTrace.d.ts +121 -0
- package/dist/tools/enrichStackTrace.js +194 -0
- package/dist/tools/enrichStackTrace.js.map +1 -0
- package/dist/tools/explainDiagnostic.d.ts +137 -0
- package/dist/tools/explainDiagnostic.js +230 -0
- package/dist/tools/explainDiagnostic.js.map +1 -0
- package/dist/tools/explainSymbol.d.ts +119 -0
- package/dist/tools/explainSymbol.js +177 -0
- package/dist/tools/explainSymbol.js.map +1 -0
- package/dist/tools/fileOperations.d.ts +186 -0
- package/dist/tools/fileOperations.js +330 -0
- package/dist/tools/fileOperations.js.map +1 -0
- package/dist/tools/fileWatcher.d.ts +107 -0
- package/dist/tools/fileWatcher.js +121 -0
- package/dist/tools/fileWatcher.js.map +1 -0
- package/dist/tools/findFiles.d.ts +65 -0
- package/dist/tools/findFiles.js +142 -0
- package/dist/tools/findFiles.js.map +1 -0
- package/dist/tools/findRelatedTests.d.ts +83 -0
- package/dist/tools/findRelatedTests.js +196 -0
- package/dist/tools/findRelatedTests.js.map +1 -0
- package/dist/tools/fixAllLintErrors.d.ts +66 -0
- package/dist/tools/fixAllLintErrors.js +128 -0
- package/dist/tools/fixAllLintErrors.js.map +1 -0
- package/dist/tools/foldingRanges.d.ts +50 -0
- package/dist/tools/foldingRanges.js +51 -0
- package/dist/tools/foldingRanges.js.map +1 -0
- package/dist/tools/formatAndSave.d.ts +57 -0
- package/dist/tools/formatAndSave.js +87 -0
- package/dist/tools/formatAndSave.js.map +1 -0
- package/dist/tools/formatDocument.d.ts +61 -0
- package/dist/tools/formatDocument.js +144 -0
- package/dist/tools/formatDocument.js.map +1 -0
- package/dist/tools/generateAPIDocumentation.d.ts +62 -0
- package/dist/tools/generateAPIDocumentation.js +249 -0
- package/dist/tools/generateAPIDocumentation.js.map +1 -0
- package/dist/tools/generateTests.d.ts +75 -0
- package/dist/tools/generateTests.js +226 -0
- package/dist/tools/generateTests.js.map +1 -0
- package/dist/tools/getAIComments.d.ts +79 -0
- package/dist/tools/getAIComments.js +93 -0
- package/dist/tools/getAIComments.js.map +1 -0
- package/dist/tools/getAnalyticsReport.d.ts +102 -0
- package/dist/tools/getAnalyticsReport.js +137 -0
- package/dist/tools/getAnalyticsReport.js.map +1 -0
- package/dist/tools/getArchitectureContext.d.ts +85 -0
- package/dist/tools/getArchitectureContext.js +135 -0
- package/dist/tools/getArchitectureContext.js.map +1 -0
- package/dist/tools/getBufferContent.d.ts +80 -0
- package/dist/tools/getBufferContent.js +207 -0
- package/dist/tools/getBufferContent.js.map +1 -0
- package/dist/tools/getChangeImpact.d.ts +76 -0
- package/dist/tools/getChangeImpact.js +184 -0
- package/dist/tools/getChangeImpact.js.map +1 -0
- package/dist/tools/getClaudeTaskStatus.d.ts +87 -0
- package/dist/tools/getClaudeTaskStatus.js +89 -0
- package/dist/tools/getClaudeTaskStatus.js.map +1 -0
- package/dist/tools/getCodeCoverage.d.ts +86 -0
- package/dist/tools/getCodeCoverage.js +237 -0
- package/dist/tools/getCodeCoverage.js.map +1 -0
- package/dist/tools/getCommitsForIssue.d.ts +98 -0
- package/dist/tools/getCommitsForIssue.js +106 -0
- package/dist/tools/getCommitsForIssue.js.map +1 -0
- package/dist/tools/getCurrentSelection.d.ts +123 -0
- package/dist/tools/getCurrentSelection.js +113 -0
- package/dist/tools/getCurrentSelection.js.map +1 -0
- package/dist/tools/getDebugState.d.ts +140 -0
- package/dist/tools/getDebugState.js +109 -0
- package/dist/tools/getDebugState.js.map +1 -0
- package/dist/tools/getDependencyTree.d.ts +59 -0
- package/dist/tools/getDependencyTree.js +207 -0
- package/dist/tools/getDependencyTree.js.map +1 -0
- package/dist/tools/getDiagnostics.d.ts +108 -0
- package/dist/tools/getDiagnostics.js +371 -0
- package/dist/tools/getDiagnostics.js.map +1 -0
- package/dist/tools/getDiffFromHandoff.d.ts +89 -0
- package/dist/tools/getDiffFromHandoff.js +163 -0
- package/dist/tools/getDiffFromHandoff.js.map +1 -0
- package/dist/tools/getDocumentSymbols.d.ts +74 -0
- package/dist/tools/getDocumentSymbols.js +177 -0
- package/dist/tools/getDocumentSymbols.js.map +1 -0
- package/dist/tools/getFileTree.d.ts +66 -0
- package/dist/tools/getFileTree.js +131 -0
- package/dist/tools/getFileTree.js.map +1 -0
- package/dist/tools/getGitDiff.d.ts +50 -0
- package/dist/tools/getGitDiff.js +73 -0
- package/dist/tools/getGitDiff.js.map +1 -0
- package/dist/tools/getGitHotspots.d.ts +88 -0
- package/dist/tools/getGitHotspots.js +145 -0
- package/dist/tools/getGitHotspots.js.map +1 -0
- package/dist/tools/getGitLog.d.ts +62 -0
- package/dist/tools/getGitLog.js +87 -0
- package/dist/tools/getGitLog.js.map +1 -0
- package/dist/tools/getGitStatus.d.ts +72 -0
- package/dist/tools/getGitStatus.js +126 -0
- package/dist/tools/getGitStatus.js.map +1 -0
- package/dist/tools/getImportTree.d.ts +73 -0
- package/dist/tools/getImportTree.js +223 -0
- package/dist/tools/getImportTree.js.map +1 -0
- package/dist/tools/getImportedSignatures.d.ts +62 -0
- package/dist/tools/getImportedSignatures.js +255 -0
- package/dist/tools/getImportedSignatures.js.map +1 -0
- package/dist/tools/getOpenEditors.d.ts +62 -0
- package/dist/tools/getOpenEditors.js +126 -0
- package/dist/tools/getOpenEditors.js.map +1 -0
- package/dist/tools/getPRTemplate.d.ts +68 -0
- package/dist/tools/getPRTemplate.js +187 -0
- package/dist/tools/getPRTemplate.js.map +1 -0
- package/dist/tools/getProjectContext.d.ts +114 -0
- package/dist/tools/getProjectContext.js +344 -0
- package/dist/tools/getProjectContext.js.map +1 -0
- package/dist/tools/getProjectInfo.d.ts +51 -0
- package/dist/tools/getProjectInfo.js +325 -0
- package/dist/tools/getProjectInfo.js.map +1 -0
- package/dist/tools/getSecurityAdvisories.d.ts +105 -0
- package/dist/tools/getSecurityAdvisories.js +472 -0
- package/dist/tools/getSecurityAdvisories.js.map +1 -0
- package/dist/tools/getSessionUsage.d.ts +58 -0
- package/dist/tools/getSessionUsage.js +57 -0
- package/dist/tools/getSessionUsage.js.map +1 -0
- package/dist/tools/getSymbolHistory.d.ts +157 -0
- package/dist/tools/getSymbolHistory.js +256 -0
- package/dist/tools/getSymbolHistory.js.map +1 -0
- package/dist/tools/getToolCapabilities.d.ts +69 -0
- package/dist/tools/getToolCapabilities.js +298 -0
- package/dist/tools/getToolCapabilities.js.map +1 -0
- package/dist/tools/getTypeSignature.d.ts +70 -0
- package/dist/tools/getTypeSignature.js +132 -0
- package/dist/tools/getTypeSignature.js.map +1 -0
- package/dist/tools/getWorkspaceFolders.d.ts +58 -0
- package/dist/tools/getWorkspaceFolders.js +69 -0
- package/dist/tools/getWorkspaceFolders.js.map +1 -0
- package/dist/tools/getWorkspaceSettings.d.ts +44 -0
- package/dist/tools/getWorkspaceSettings.js +70 -0
- package/dist/tools/getWorkspaceSettings.js.map +1 -0
- package/dist/tools/git-utils.d.ts +16 -0
- package/dist/tools/git-utils.js +46 -0
- package/dist/tools/git-utils.js.map +1 -0
- package/dist/tools/gitHistory.d.ts +110 -0
- package/dist/tools/gitHistory.js +167 -0
- package/dist/tools/gitHistory.js.map +1 -0
- package/dist/tools/gitWrite.d.ts +612 -0
- package/dist/tools/gitWrite.js +983 -0
- package/dist/tools/gitWrite.js.map +1 -0
- package/dist/tools/github/actions.d.ts +152 -0
- package/dist/tools/github/actions.js +195 -0
- package/dist/tools/github/actions.js.map +1 -0
- package/dist/tools/github/index.d.ts +3 -0
- package/dist/tools/github/index.js +4 -0
- package/dist/tools/github/index.js.map +1 -0
- package/dist/tools/github/issues.d.ts +281 -0
- package/dist/tools/github/issues.js +340 -0
- package/dist/tools/github/issues.js.map +1 -0
- package/dist/tools/github/pr.d.ts +433 -0
- package/dist/tools/github/pr.js +588 -0
- package/dist/tools/github/pr.js.map +1 -0
- package/dist/tools/github/shared.d.ts +4 -0
- package/dist/tools/github/shared.js +12 -0
- package/dist/tools/github/shared.js.map +1 -0
- package/dist/tools/handoffNote.d.ts +106 -0
- package/dist/tools/handoffNote.js +232 -0
- package/dist/tools/handoffNote.js.map +1 -0
- package/dist/tools/headless/lspClient.d.ts +26 -0
- package/dist/tools/headless/lspClient.js +221 -0
- package/dist/tools/headless/lspClient.js.map +1 -0
- package/dist/tools/headless/lspFallback.d.ts +28 -0
- package/dist/tools/headless/lspFallback.js +122 -0
- package/dist/tools/headless/lspFallback.js.map +1 -0
- package/dist/tools/hoverAtCursor.d.ts +54 -0
- package/dist/tools/hoverAtCursor.js +68 -0
- package/dist/tools/hoverAtCursor.js.map +1 -0
- package/dist/tools/httpClient.d.ts +141 -0
- package/dist/tools/httpClient.js +486 -0
- package/dist/tools/httpClient.js.map +1 -0
- package/dist/tools/index.d.ts +49 -0
- package/dist/tools/index.js +672 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/inlayHints.d.ts +81 -0
- package/dist/tools/inlayHints.js +76 -0
- package/dist/tools/inlayHints.js.map +1 -0
- package/dist/tools/issueRefs.d.ts +14 -0
- package/dist/tools/issueRefs.js +27 -0
- package/dist/tools/issueRefs.js.map +1 -0
- package/dist/tools/jumpToFirstError.d.ts +63 -0
- package/dist/tools/jumpToFirstError.js +124 -0
- package/dist/tools/jumpToFirstError.js.map +1 -0
- package/dist/tools/launchQuickTask.d.ts +76 -0
- package/dist/tools/launchQuickTask.js +170 -0
- package/dist/tools/launchQuickTask.js.map +1 -0
- package/dist/tools/linters/biome.d.ts +2 -0
- package/dist/tools/linters/biome.js +44 -0
- package/dist/tools/linters/biome.js.map +1 -0
- package/dist/tools/linters/cargo.d.ts +2 -0
- package/dist/tools/linters/cargo.js +45 -0
- package/dist/tools/linters/cargo.js.map +1 -0
- package/dist/tools/linters/eslint.d.ts +2 -0
- package/dist/tools/linters/eslint.js +59 -0
- package/dist/tools/linters/eslint.js.map +1 -0
- package/dist/tools/linters/govet.d.ts +2 -0
- package/dist/tools/linters/govet.js +37 -0
- package/dist/tools/linters/govet.js.map +1 -0
- package/dist/tools/linters/pyright.d.ts +2 -0
- package/dist/tools/linters/pyright.js +34 -0
- package/dist/tools/linters/pyright.js.map +1 -0
- package/dist/tools/linters/ruff.d.ts +2 -0
- package/dist/tools/linters/ruff.js +30 -0
- package/dist/tools/linters/ruff.js.map +1 -0
- package/dist/tools/linters/types.d.ts +16 -0
- package/dist/tools/linters/types.js +2 -0
- package/dist/tools/linters/types.js.map +1 -0
- package/dist/tools/linters/typescript.d.ts +2 -0
- package/dist/tools/linters/typescript.js +38 -0
- package/dist/tools/linters/typescript.js.map +1 -0
- package/dist/tools/listClaudeTasks.d.ts +84 -0
- package/dist/tools/listClaudeTasks.js +88 -0
- package/dist/tools/listClaudeTasks.js.map +1 -0
- package/dist/tools/listTerminals.d.ts +55 -0
- package/dist/tools/listTerminals.js +78 -0
- package/dist/tools/listTerminals.js.map +1 -0
- package/dist/tools/lsp.d.ts +1086 -0
- package/dist/tools/lsp.js +1339 -0
- package/dist/tools/lsp.js.map +1 -0
- package/dist/tools/navigateToSymbolByName.d.ts +56 -0
- package/dist/tools/navigateToSymbolByName.js +170 -0
- package/dist/tools/navigateToSymbolByName.js.map +1 -0
- package/dist/tools/openDiff.d.ts +66 -0
- package/dist/tools/openDiff.js +126 -0
- package/dist/tools/openDiff.js.map +1 -0
- package/dist/tools/openFile.d.ts +69 -0
- package/dist/tools/openFile.js +129 -0
- package/dist/tools/openFile.js.map +1 -0
- package/dist/tools/openInBrowser.d.ts +55 -0
- package/dist/tools/openInBrowser.js +129 -0
- package/dist/tools/openInBrowser.js.map +1 -0
- package/dist/tools/organizeImports.d.ts +56 -0
- package/dist/tools/organizeImports.js +115 -0
- package/dist/tools/organizeImports.js.map +1 -0
- package/dist/tools/performanceReport.d.ts +133 -0
- package/dist/tools/performanceReport.js +218 -0
- package/dist/tools/performanceReport.js.map +1 -0
- package/dist/tools/planPersistence.d.ts +306 -0
- package/dist/tools/planPersistence.js +485 -0
- package/dist/tools/planPersistence.js.map +1 -0
- package/dist/tools/previewEdit.d.ts +107 -0
- package/dist/tools/previewEdit.js +270 -0
- package/dist/tools/previewEdit.js.map +1 -0
- package/dist/tools/recentTracesDigest.d.ts +35 -0
- package/dist/tools/recentTracesDigest.js +98 -0
- package/dist/tools/recentTracesDigest.js.map +1 -0
- package/dist/tools/refactorAnalyze.d.ts +78 -0
- package/dist/tools/refactorAnalyze.js +141 -0
- package/dist/tools/refactorAnalyze.js.map +1 -0
- package/dist/tools/refactorExtractFunction.d.ts +52 -0
- package/dist/tools/refactorExtractFunction.js +121 -0
- package/dist/tools/refactorExtractFunction.js.map +1 -0
- package/dist/tools/refactorPreview.d.ts +75 -0
- package/dist/tools/refactorPreview.js +93 -0
- package/dist/tools/refactorPreview.js.map +1 -0
- package/dist/tools/replaceBlock.d.ts +62 -0
- package/dist/tools/replaceBlock.js +125 -0
- package/dist/tools/replaceBlock.js.map +1 -0
- package/dist/tools/resumeClaudeTask.d.ts +75 -0
- package/dist/tools/resumeClaudeTask.js +149 -0
- package/dist/tools/resumeClaudeTask.js.map +1 -0
- package/dist/tools/runClaudeTask.d.ts +97 -0
- package/dist/tools/runClaudeTask.js +224 -0
- package/dist/tools/runClaudeTask.js.map +1 -0
- package/dist/tools/runCommand.d.ts +82 -0
- package/dist/tools/runCommand.js +101 -0
- package/dist/tools/runCommand.js.map +1 -0
- package/dist/tools/runTests.d.ts +146 -0
- package/dist/tools/runTests.js +315 -0
- package/dist/tools/runTests.js.map +1 -0
- package/dist/tools/saveDocument.d.ts +50 -0
- package/dist/tools/saveDocument.js +73 -0
- package/dist/tools/saveDocument.js.map +1 -0
- package/dist/tools/screenshot.d.ts +23 -0
- package/dist/tools/screenshot.js +43 -0
- package/dist/tools/screenshot.js.map +1 -0
- package/dist/tools/screenshotAndAnnotate.d.ts +103 -0
- package/dist/tools/screenshotAndAnnotate.js +192 -0
- package/dist/tools/screenshotAndAnnotate.js.map +1 -0
- package/dist/tools/searchAndReplace.d.ts +108 -0
- package/dist/tools/searchAndReplace.js +281 -0
- package/dist/tools/searchAndReplace.js.map +1 -0
- package/dist/tools/searchTools.d.ts +61 -0
- package/dist/tools/searchTools.js +85 -0
- package/dist/tools/searchTools.js.map +1 -0
- package/dist/tools/searchWorkspace.d.ts +99 -0
- package/dist/tools/searchWorkspace.js +189 -0
- package/dist/tools/searchWorkspace.js.map +1 -0
- package/dist/tools/selectionRanges.d.ts +58 -0
- package/dist/tools/selectionRanges.js +61 -0
- package/dist/tools/selectionRanges.js.map +1 -0
- package/dist/tools/semanticTokens.d.ts +87 -0
- package/dist/tools/semanticTokens.js +86 -0
- package/dist/tools/semanticTokens.js.map +1 -0
- package/dist/tools/setActiveWorkspaceFolder.d.ts +41 -0
- package/dist/tools/setActiveWorkspaceFolder.js +38 -0
- package/dist/tools/setActiveWorkspaceFolder.js.map +1 -0
- package/dist/tools/signatureHelp.d.ts +86 -0
- package/dist/tools/signatureHelp.js +79 -0
- package/dist/tools/signatureHelp.js.map +1 -0
- package/dist/tools/spawnWorkspace.d.ts +103 -0
- package/dist/tools/spawnWorkspace.js +268 -0
- package/dist/tools/spawnWorkspace.js.map +1 -0
- package/dist/tools/stackTraceParser.d.ts +43 -0
- package/dist/tools/stackTraceParser.js +139 -0
- package/dist/tools/stackTraceParser.js.map +1 -0
- package/dist/tools/terminal.d.ts +352 -0
- package/dist/tools/terminal.js +670 -0
- package/dist/tools/terminal.js.map +1 -0
- package/dist/tools/testRunners/cargoTest.d.ts +2 -0
- package/dist/tools/testRunners/cargoTest.js +129 -0
- package/dist/tools/testRunners/cargoTest.js.map +1 -0
- package/dist/tools/testRunners/goTest.d.ts +2 -0
- package/dist/tools/testRunners/goTest.js +108 -0
- package/dist/tools/testRunners/goTest.js.map +1 -0
- package/dist/tools/testRunners/pytest.d.ts +2 -0
- package/dist/tools/testRunners/pytest.js +135 -0
- package/dist/tools/testRunners/pytest.js.map +1 -0
- package/dist/tools/testRunners/types.d.ts +18 -0
- package/dist/tools/testRunners/types.js +2 -0
- package/dist/tools/testRunners/types.js.map +1 -0
- package/dist/tools/testRunners/vitestJest.d.ts +3 -0
- package/dist/tools/testRunners/vitestJest.js +215 -0
- package/dist/tools/testRunners/vitestJest.js.map +1 -0
- package/dist/tools/testTraceToSource.d.ts +80 -0
- package/dist/tools/testTraceToSource.js +206 -0
- package/dist/tools/testTraceToSource.js.map +1 -0
- package/dist/tools/transaction.d.ts +243 -0
- package/dist/tools/transaction.js +309 -0
- package/dist/tools/transaction.js.map +1 -0
- package/dist/tools/typeHierarchy.d.ts +77 -0
- package/dist/tools/typeHierarchy.js +86 -0
- package/dist/tools/typeHierarchy.js.map +1 -0
- package/dist/tools/utils.d.ts +124 -0
- package/dist/tools/utils.js +566 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/tools/vscodeCommands.d.ts +90 -0
- package/dist/tools/vscodeCommands.js +112 -0
- package/dist/tools/vscodeCommands.js.map +1 -0
- package/dist/tools/vscodeTasks.d.ts +102 -0
- package/dist/tools/vscodeTasks.js +110 -0
- package/dist/tools/vscodeTasks.js.map +1 -0
- package/dist/tools/watchDiagnostics.d.ts +64 -0
- package/dist/tools/watchDiagnostics.js +270 -0
- package/dist/tools/watchDiagnostics.js.map +1 -0
- package/dist/tools/workspaceSettings.d.ts +57 -0
- package/dist/tools/workspaceSettings.js +80 -0
- package/dist/tools/workspaceSettings.js.map +1 -0
- package/dist/transport.d.ts +207 -0
- package/dist/transport.js +1272 -0
- package/dist/transport.js.map +1 -0
- package/dist/version.d.ts +13 -0
- package/dist/version.js +31 -0
- package/dist/version.js.map +1 -0
- package/dist/wsUtils.d.ts +8 -0
- package/dist/wsUtils.js +54 -0
- package/dist/wsUtils.js.map +1 -0
- package/package.json +118 -0
- package/scripts/gen-claude-desktop-config.sh +124 -0
- package/scripts/gen-mcp-config.sh +390 -0
- package/scripts/install-extension.sh +106 -0
- package/scripts/mcp-stdio-shim.cjs +482 -0
- package/scripts/postinstall.mjs +68 -0
- package/scripts/start-all.sh +502 -0
- package/scripts/start-orchestrator.sh +186 -0
- package/scripts/start-remote.sh +126 -0
- package/scripts/start-vps.sh +116 -0
- package/templates/CLAUDE.bridge.md +125 -0
- package/templates/automation-policies/security-first.json +46 -0
- package/templates/automation-policies/strict-lint.json +41 -0
- package/templates/automation-policies/test-driven.json +54 -0
- package/templates/automation-policy.example.json +105 -0
- package/templates/bridge-tools.md +111 -0
- package/templates/dispatch-context.md +33 -0
- package/templates/managed-agent/code-review-agent.md +50 -0
- package/templates/managed-agent/managed-agent-mcp.json +102 -0
- package/templates/recipes/ambient-journal.yaml +11 -0
- package/templates/recipes/daily-status.yaml +21 -0
- package/templates/recipes/lint-on-save.yaml +13 -0
- package/templates/recipes/stale-branches.yaml +18 -0
- package/templates/recipes/watch-failing-tests.yaml +15 -0
- package/templates/scheduled-tasks/dependency-audit/SKILL.md +77 -0
- package/templates/scheduled-tasks/health-check/SKILL.md +73 -0
- 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."
|