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,326 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `claude-ide-bridge tools` CLI subcommand.
|
|
3
|
+
*
|
|
4
|
+
* Subcommands:
|
|
5
|
+
* search <query> — case-insensitive substring match on name, description, category
|
|
6
|
+
* list — all tools grouped by category
|
|
7
|
+
*
|
|
8
|
+
* No bridge connection required — reads static registry at import time.
|
|
9
|
+
*/
|
|
10
|
+
import { TOOL_CATEGORIES } from "../tools/index.js";
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Static description map for the most important tools.
|
|
13
|
+
// Categories come from TOOL_CATEGORIES; descriptions here are first-sentence
|
|
14
|
+
// summaries used by the CLI only (does not affect the MCP searchTools tool).
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
export const TOOL_DESCRIPTIONS = {
|
|
17
|
+
// git
|
|
18
|
+
getGitStatus: "Show working tree status including staged and unstaged changes.",
|
|
19
|
+
getGitDiff: "Show diff for staged, unstaged, or between refs.",
|
|
20
|
+
getGitLog: "Retrieve recent commit history with author and message.",
|
|
21
|
+
gitAdd: "Stage files for the next commit.",
|
|
22
|
+
gitCommit: "Create a git commit with a message.",
|
|
23
|
+
gitPush: "Push the current branch to the remote.",
|
|
24
|
+
gitCheckout: "Checkout an existing branch or create a new one.",
|
|
25
|
+
gitPull: "Pull latest commits from the remote.",
|
|
26
|
+
gitListBranches: "List local and remote branches.",
|
|
27
|
+
gitBlame: "Show per-line authorship for a file.",
|
|
28
|
+
getGitHotspots: "Find change-heavy files using git log history.",
|
|
29
|
+
getSymbolHistory: "Show git blame + log history for a specific symbol.",
|
|
30
|
+
getCommitDetails: "Show full details for a single commit hash.",
|
|
31
|
+
getDiffBetweenRefs: "Diff between two git refs (branches, tags, commits).",
|
|
32
|
+
githubCreatePR: "Open a pull request on GitHub.",
|
|
33
|
+
githubListPRs: "List open pull requests for the repository.",
|
|
34
|
+
githubViewPR: "View details and diff for a pull request.",
|
|
35
|
+
githubListIssues: "List GitHub issues for the repository.",
|
|
36
|
+
githubGetIssue: "Get details for a specific GitHub issue.",
|
|
37
|
+
githubCreateIssue: "Create a new GitHub issue.",
|
|
38
|
+
githubCommentIssue: "Post a comment on a GitHub issue.",
|
|
39
|
+
githubListRuns: "List recent GitHub Actions workflow runs.",
|
|
40
|
+
githubGetRunLogs: "Fetch logs from a GitHub Actions run.",
|
|
41
|
+
githubGetPRDiff: "Get the diff for a pull request.",
|
|
42
|
+
githubPostPRReview: "Post a review comment on a pull request.",
|
|
43
|
+
getPRTemplate: "Generate a pull request description from staged changes.",
|
|
44
|
+
// lsp
|
|
45
|
+
getDiagnostics: "Return TypeScript/ESLint/Biome errors and warnings for a file or workspace.",
|
|
46
|
+
watchDiagnostics: "Long-poll for diagnostic changes (errors/warnings) in real time.",
|
|
47
|
+
getDocumentSymbols: "List all symbols (functions, classes, variables) in a file.",
|
|
48
|
+
goToDefinition: "Navigate to the definition of a symbol.",
|
|
49
|
+
findReferences: "Find all references to a symbol across the workspace.",
|
|
50
|
+
findImplementations: "Find all implementations of an interface or abstract method.",
|
|
51
|
+
goToTypeDefinition: "Navigate to the type definition of a symbol.",
|
|
52
|
+
goToDeclaration: "Navigate to the declaration of a symbol.",
|
|
53
|
+
getHover: "Get hover information (type, docs) for a symbol at a position.",
|
|
54
|
+
getCodeActions: "List available code actions (quick fixes) at a position.",
|
|
55
|
+
applyCodeAction: "Apply a code action returned by getCodeActions.",
|
|
56
|
+
previewCodeAction: "Preview the edits a code action would make.",
|
|
57
|
+
refactorPreview: "Preview exact edits a rename or refactor would produce.",
|
|
58
|
+
renameSymbol: "Safely rename a symbol across the workspace.",
|
|
59
|
+
searchWorkspaceSymbols: "Find classes, functions, and variables by name pattern.",
|
|
60
|
+
getCallHierarchy: "Show incoming or outgoing call hierarchy for a function.",
|
|
61
|
+
explainSymbol: "Composite: hover + definition + refs + type hierarchy in one call.",
|
|
62
|
+
prepareRename: "Check whether a symbol at a position can be renamed.",
|
|
63
|
+
signatureHelp: "Show function signature and parameter info at a call site.",
|
|
64
|
+
refactorAnalyze: "Analyze rename/refactor risk (ref count, caller count, risk level).",
|
|
65
|
+
selectionRanges: "Get smart selection expansion ranges for a position.",
|
|
66
|
+
foldingRanges: "Get fold ranges (functions, blocks) for a file.",
|
|
67
|
+
refactorExtractFunction: "Extract a selection into a new named function.",
|
|
68
|
+
getImportTree: "Show the full downstream import dependency chain for a file.",
|
|
69
|
+
getImportedSignatures: "Show signatures of all symbols imported into a file.",
|
|
70
|
+
getDocumentLinks: "Find all file references and links embedded in a document.",
|
|
71
|
+
batchGetHover: "Get hover info for up to 10 symbols in a single call.",
|
|
72
|
+
batchGoToDefinition: "Go to definition for up to 10 symbols in a single call.",
|
|
73
|
+
batchFindImplementations: "Find implementations for up to 10 symbols in a single call.",
|
|
74
|
+
getSemanticTokens: "Get semantic token types and modifiers for a file.",
|
|
75
|
+
getCodeLens: "Get code lens annotations (test run counts, reference counts).",
|
|
76
|
+
getChangeImpact: "Blast-radius analysis: diagnostics + reference counts for changed symbols.",
|
|
77
|
+
getTypeHierarchy: "Show supertypes and subtypes for a class or interface.",
|
|
78
|
+
getInlayHints: "Get inline type annotations and parameter names.",
|
|
79
|
+
getHoverAtCursor: "Get hover info at the current cursor position in the active editor.",
|
|
80
|
+
getTypeSignature: "Get the type signature for a symbol.",
|
|
81
|
+
jumpToFirstError: "Navigate the editor to the first error in the workspace.",
|
|
82
|
+
navigateToSymbolByName: "Jump to a symbol by name using LSP or ctags fallback.",
|
|
83
|
+
// editor
|
|
84
|
+
getOpenEditors: "List all files currently open in the editor.",
|
|
85
|
+
getCurrentSelection: "Get the current text selection in the active editor.",
|
|
86
|
+
getLatestSelection: "Get the most recent selection (persists after focus loss).",
|
|
87
|
+
checkDocumentDirty: "Check whether a file has unsaved changes.",
|
|
88
|
+
saveDocument: "Save a file (or all files) in the editor.",
|
|
89
|
+
openFile: "Open a file in the editor at an optional line and column.",
|
|
90
|
+
closeTab: "Close an editor tab by file path.",
|
|
91
|
+
captureScreenshot: "Take a screenshot of the VS Code window.",
|
|
92
|
+
setEditorDecorations: "Annotate code with inline warning/error decorations.",
|
|
93
|
+
clearEditorDecorations: "Remove decorations previously set by setEditorDecorations.",
|
|
94
|
+
openDiff: "Open a side-by-side diff view between two files or content.",
|
|
95
|
+
openInBrowser: "Open a URL or file in the system browser.",
|
|
96
|
+
executeVSCodeCommand: "Run any VS Code command by its command ID.",
|
|
97
|
+
listVSCodeCommands: "List all available VS Code command IDs.",
|
|
98
|
+
listVSCodeTasks: "List configured VS Code tasks from tasks.json.",
|
|
99
|
+
runVSCodeTask: "Run a VS Code task by name.",
|
|
100
|
+
getWorkspaceFolders: "List all workspace folders open in VS Code.",
|
|
101
|
+
setActiveWorkspaceFolder: "Switch the active workspace folder.",
|
|
102
|
+
getWorkspaceSettings: "Read VS Code workspace settings.",
|
|
103
|
+
setWorkspaceSetting: "Write a VS Code workspace setting.",
|
|
104
|
+
formatDocument: "Format a file using the language server formatter.",
|
|
105
|
+
formatRange: "Format a selected range within a file.",
|
|
106
|
+
formatAndSave: "Format then save a file in one step.",
|
|
107
|
+
fixAllLintErrors: "Apply all auto-fixable lint errors in a file.",
|
|
108
|
+
organizeImports: "Sort and remove unused imports in a file.",
|
|
109
|
+
getBufferContent: "Read the current content of a file from the VS Code buffer.",
|
|
110
|
+
editText: "Edit a file by replacing a line range.",
|
|
111
|
+
createFile: "Create a new file with optional initial content.",
|
|
112
|
+
deleteFile: "Delete a file from the workspace.",
|
|
113
|
+
renameFile: "Rename or move a file.",
|
|
114
|
+
replaceBlock: "Replace a block of text matching a pattern in a file.",
|
|
115
|
+
searchAndReplace: "Find and replace text across multiple workspace files.",
|
|
116
|
+
findFiles: "Find files matching a glob pattern in the workspace.",
|
|
117
|
+
getFileTree: "List files and directories in the workspace as a tree.",
|
|
118
|
+
readClipboard: "Read the current clipboard content.",
|
|
119
|
+
writeClipboard: "Write text to the clipboard.",
|
|
120
|
+
watchFiles: "Watch a set of files for changes.",
|
|
121
|
+
unwatchFiles: "Stop watching previously watched files.",
|
|
122
|
+
// debug
|
|
123
|
+
getDebugState: "Get the current VS Code debug session state.",
|
|
124
|
+
evaluateInDebugger: "Evaluate an expression inside the active debug session.",
|
|
125
|
+
setDebugBreakpoints: "Set or clear breakpoints in a file.",
|
|
126
|
+
startDebugging: "Start a VS Code debug session.",
|
|
127
|
+
stopDebugging: "Stop the active debug session.",
|
|
128
|
+
// diagnostics / analysis
|
|
129
|
+
runTests: "Run tests using vitest, jest, pytest, cargo test, or go test.",
|
|
130
|
+
getCodeCoverage: "Parse lcov/clover coverage and return per-file percentages.",
|
|
131
|
+
detectUnusedCode: "Find unused variables, exports, and dead code.",
|
|
132
|
+
auditDependencies: "Check for outdated npm/cargo/pip packages.",
|
|
133
|
+
getSecurityAdvisories: "Fetch CVE advisories for installed dependencies.",
|
|
134
|
+
generateTests: "Scaffold unit tests for a file or symbol.",
|
|
135
|
+
generateAPIDocumentation: "Generate API documentation for a module.",
|
|
136
|
+
findRelatedTests: "Find test files related to a source file.",
|
|
137
|
+
getDependencyTree: "Show the full npm/cargo dependency tree.",
|
|
138
|
+
screenshotAndAnnotate: "Take a screenshot and generate Playwright action steps.",
|
|
139
|
+
searchWorkspace: "Full-text search across workspace files (ripgrep or VS Code search).",
|
|
140
|
+
// bridge / orchestration
|
|
141
|
+
getBridgeStatus: "Show bridge and extension connection health.",
|
|
142
|
+
getToolCapabilities: "List available tools and whether extension is connected.",
|
|
143
|
+
bridgeDoctor: "Run diagnostics to identify common bridge configuration issues.",
|
|
144
|
+
getSessionUsage: "Show tool call counts and error rates for this session.",
|
|
145
|
+
searchTools: "Find MCP tools by keyword or category (no bridge connection needed).",
|
|
146
|
+
getProjectInfo: "Get project name, version, and dependency summary.",
|
|
147
|
+
getProjectContext: "Get rich project context: git, diagnostics, recent activity.",
|
|
148
|
+
getArchitectureContext: "Query codebase memory graph for architectural context.",
|
|
149
|
+
contextBundle: "Bundle editor context: open files, selection, git status, diagnostics.",
|
|
150
|
+
watchActivityLog: "Long-poll the activity log for new tool call events.",
|
|
151
|
+
getActivityLog: "Retrieve recent tool call activity with optional percentile stats.",
|
|
152
|
+
getAnalyticsReport: "Get performance analytics: p50/p95/p99 latency, health score.",
|
|
153
|
+
getHandoffNote: "Read the cross-session handoff note for the current workspace.",
|
|
154
|
+
setHandoffNote: "Write a cross-session handoff note for the current workspace.",
|
|
155
|
+
getPerformanceReport: "Health score 0-100, p50/p95/p99 latency, windowed throughput.",
|
|
156
|
+
// automation / orchestration
|
|
157
|
+
runClaudeTask: "Enqueue a Claude Code subprocess task with a prompt.",
|
|
158
|
+
getClaudeTaskStatus: "Get the status and output of a Claude subprocess task.",
|
|
159
|
+
cancelClaudeTask: "Cancel a running Claude subprocess task.",
|
|
160
|
+
listClaudeTasks: "List all Claude subprocess tasks and their statuses.",
|
|
161
|
+
resumeClaudeTask: "Resume an interrupted Claude subprocess task.",
|
|
162
|
+
// http
|
|
163
|
+
sendHttpRequest: "Send an HTTP request (GET/POST/etc) to an external URL.",
|
|
164
|
+
parseHttpFile: "Parse a .http file and send its requests.",
|
|
165
|
+
// plans
|
|
166
|
+
createPlan: "Create a structured multi-step plan for a task.",
|
|
167
|
+
updatePlan: "Update a step or status in an existing plan.",
|
|
168
|
+
deletePlan: "Delete a plan.",
|
|
169
|
+
getPlan: "Get the details of a plan.",
|
|
170
|
+
listPlans: "List all active plans in the workspace.",
|
|
171
|
+
};
|
|
172
|
+
/** Build the full tool catalog from TOOL_CATEGORIES + TOOL_DESCRIPTIONS. */
|
|
173
|
+
export function buildToolCatalog() {
|
|
174
|
+
const seen = new Set();
|
|
175
|
+
const entries = [];
|
|
176
|
+
for (const [name, cats] of Object.entries(TOOL_CATEGORIES)) {
|
|
177
|
+
seen.add(name);
|
|
178
|
+
entries.push({
|
|
179
|
+
name,
|
|
180
|
+
description: TOOL_DESCRIPTIONS[name] ?? "",
|
|
181
|
+
categories: cats,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
// Also include tools in the description map that have no category entry.
|
|
185
|
+
for (const [name, desc] of Object.entries(TOOL_DESCRIPTIONS)) {
|
|
186
|
+
if (!seen.has(name)) {
|
|
187
|
+
entries.push({ name, description: desc, categories: [] });
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return entries.sort((a, b) => a.name.localeCompare(b.name));
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Search the tool catalog.
|
|
194
|
+
* @param catalog Full catalog from buildToolCatalog().
|
|
195
|
+
* @param query Substring to match against name, description, or categories.
|
|
196
|
+
*/
|
|
197
|
+
export function searchCatalog(catalog, query) {
|
|
198
|
+
const q = query.toLowerCase().trim();
|
|
199
|
+
if (!q)
|
|
200
|
+
return catalog;
|
|
201
|
+
return catalog.filter((t) => {
|
|
202
|
+
const haystack = [t.name, t.description, ...t.categories]
|
|
203
|
+
.join(" ")
|
|
204
|
+
.toLowerCase();
|
|
205
|
+
return haystack.includes(q);
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
/** Group catalog entries by their first category (or "other"). */
|
|
209
|
+
export function groupByCategory(catalog) {
|
|
210
|
+
const map = new Map();
|
|
211
|
+
for (const entry of catalog) {
|
|
212
|
+
const cat = entry.categories[0] ?? "other";
|
|
213
|
+
const bucket = map.get(cat);
|
|
214
|
+
if (bucket) {
|
|
215
|
+
bucket.push(entry);
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
map.set(cat, [entry]);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
// Sort keys
|
|
222
|
+
return new Map([...map.entries()].sort((a, b) => a[0].localeCompare(b[0])));
|
|
223
|
+
}
|
|
224
|
+
/** Return the first sentence of a description (up to first "."). */
|
|
225
|
+
export function firstSentence(desc) {
|
|
226
|
+
const dot = desc.indexOf(".");
|
|
227
|
+
return dot !== -1 ? desc.slice(0, dot + 1) : desc;
|
|
228
|
+
}
|
|
229
|
+
// ---------------------------------------------------------------------------
|
|
230
|
+
// CLI output helpers
|
|
231
|
+
// ---------------------------------------------------------------------------
|
|
232
|
+
function printTool(t, showCategory = true) {
|
|
233
|
+
const cat = showCategory && t.categories.length > 0 ? ` [${t.categories[0]}]` : "";
|
|
234
|
+
const desc = firstSentence(t.description);
|
|
235
|
+
process.stdout.write(` ${t.name}${cat}\n`);
|
|
236
|
+
if (desc) {
|
|
237
|
+
process.stdout.write(` ${desc}\n`);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
function printSearchResults(results, query) {
|
|
241
|
+
if (results.length === 0) {
|
|
242
|
+
process.stdout.write(`No tools matched "${query}".\n`);
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
process.stdout.write(`${results.length} tool${results.length === 1 ? "" : "s"} matching "${query}":\n\n`);
|
|
246
|
+
for (const t of results) {
|
|
247
|
+
printTool(t);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
function printGroupedList(grouped) {
|
|
251
|
+
for (const [cat, entries] of grouped) {
|
|
252
|
+
process.stdout.write(`\n${cat.toUpperCase()} (${entries.length})\n`);
|
|
253
|
+
process.stdout.write(`${"─".repeat(40)}\n`);
|
|
254
|
+
for (const t of entries) {
|
|
255
|
+
printTool(t, false);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
function printJson(data) {
|
|
260
|
+
process.stdout.write(`${JSON.stringify(data, null, 2)}\n`);
|
|
261
|
+
}
|
|
262
|
+
// ---------------------------------------------------------------------------
|
|
263
|
+
// Subcommand entrypoint
|
|
264
|
+
// ---------------------------------------------------------------------------
|
|
265
|
+
export async function runToolsCommand(argv) {
|
|
266
|
+
// Strip flag arguments before extracting the subcommand so that
|
|
267
|
+
// `tools --json list` works identically to `tools list --json`.
|
|
268
|
+
const sub = argv.find((a) => !a.startsWith("--"));
|
|
269
|
+
const jsonFlag = argv.includes("--json");
|
|
270
|
+
if (!sub || sub === "--help" || sub === "help") {
|
|
271
|
+
process.stdout.write(`claude-ide-bridge tools — Browse and search tools (no bridge required)
|
|
272
|
+
|
|
273
|
+
Usage:
|
|
274
|
+
claude-ide-bridge tools search <query> [--json]
|
|
275
|
+
claude-ide-bridge tools list [--json]
|
|
276
|
+
|
|
277
|
+
Subcommands:
|
|
278
|
+
search <query> Case-insensitive search on name, description, and category
|
|
279
|
+
list All tools grouped by category
|
|
280
|
+
|
|
281
|
+
Options:
|
|
282
|
+
--json Machine-readable JSON output
|
|
283
|
+
`);
|
|
284
|
+
process.exit(!sub ? 1 : 0);
|
|
285
|
+
}
|
|
286
|
+
const catalog = buildToolCatalog();
|
|
287
|
+
if (sub === "search") {
|
|
288
|
+
const query = argv
|
|
289
|
+
.filter((a) => !a.startsWith("--") && a !== "search")
|
|
290
|
+
.join(" ")
|
|
291
|
+
.trim();
|
|
292
|
+
if (!query) {
|
|
293
|
+
process.stderr.write("Usage: claude-ide-bridge tools search <query>\n");
|
|
294
|
+
process.exit(1);
|
|
295
|
+
}
|
|
296
|
+
const results = searchCatalog(catalog, query);
|
|
297
|
+
if (jsonFlag) {
|
|
298
|
+
printJson(results);
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
printSearchResults(results, query);
|
|
302
|
+
}
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
if (sub === "list") {
|
|
306
|
+
const grouped = groupByCategory(catalog);
|
|
307
|
+
if (jsonFlag) {
|
|
308
|
+
const obj = {};
|
|
309
|
+
for (const [cat, entries] of grouped) {
|
|
310
|
+
obj[cat] = entries;
|
|
311
|
+
}
|
|
312
|
+
printJson(obj);
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
const total = catalog.length;
|
|
316
|
+
process.stdout.write(`claude-ide-bridge — ${total} tools\n`);
|
|
317
|
+
printGroupedList(grouped);
|
|
318
|
+
process.stdout.write("\n");
|
|
319
|
+
}
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
process.stderr.write(`Unknown subcommand: ${sub}\n`);
|
|
323
|
+
process.stderr.write("Usage: claude-ide-bridge tools <search <query> | list>\n");
|
|
324
|
+
process.exit(1);
|
|
325
|
+
}
|
|
326
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { Logger } from "./logger.js";
|
|
2
|
+
/**
|
|
3
|
+
* CommitIssueLinkLog — persistent audit trail of every commit→issue link
|
|
4
|
+
* extracted by the `enrichCommit` tool.
|
|
5
|
+
*
|
|
6
|
+
* Mirrors RecipeRunLog: JSONL append-only file + bounded in-memory ring.
|
|
7
|
+
* Schema is additive; consumers must tolerate unknown keys. Enables reverse
|
|
8
|
+
* queries ("which commits touch issue #42?") without re-running enrichment.
|
|
9
|
+
*/
|
|
10
|
+
export type LinkType = "closes" | "references";
|
|
11
|
+
export interface CommitIssueLink {
|
|
12
|
+
/** Monotonic sequence id within the process — stable for pagination. */
|
|
13
|
+
seq: number;
|
|
14
|
+
/** Commit SHA (full). */
|
|
15
|
+
sha: string;
|
|
16
|
+
/** Normalized issue ref, e.g. `#42`. */
|
|
17
|
+
ref: string;
|
|
18
|
+
/** Classification from commit-message verb proximity. */
|
|
19
|
+
linkType: LinkType;
|
|
20
|
+
/** Whether the issue was successfully fetched from the issue tracker. */
|
|
21
|
+
resolved: boolean;
|
|
22
|
+
/** Workspace that produced the link — lets one log span many repos. */
|
|
23
|
+
workspace: string;
|
|
24
|
+
/** Commit subject (first line of message), for display. */
|
|
25
|
+
subject?: string;
|
|
26
|
+
/** Issue state at the time the link was recorded (`OPEN`/`CLOSED`/…). */
|
|
27
|
+
issueState?: string;
|
|
28
|
+
/** Issue title at the time the link was recorded. */
|
|
29
|
+
issueTitle?: string;
|
|
30
|
+
/** Reason the link is unresolved (not_found / gh_unavailable / error / auth). */
|
|
31
|
+
reason?: string;
|
|
32
|
+
/** ms epoch when the link was recorded. */
|
|
33
|
+
createdAt: number;
|
|
34
|
+
}
|
|
35
|
+
export interface LinkLogOptions {
|
|
36
|
+
/** Directory holding commit_issue_links.jsonl. Created if missing. */
|
|
37
|
+
dir: string;
|
|
38
|
+
logger?: Logger;
|
|
39
|
+
/** Cap on in-memory ring. File is not truncated. */
|
|
40
|
+
memoryCap?: number;
|
|
41
|
+
/** Test hook — default Date.now. */
|
|
42
|
+
now?: () => number;
|
|
43
|
+
}
|
|
44
|
+
export interface LinkQuery {
|
|
45
|
+
/** Filter by commit SHA (exact or prefix ≥7 chars). */
|
|
46
|
+
sha?: string;
|
|
47
|
+
/** Filter by issue ref (`#42`). */
|
|
48
|
+
ref?: string;
|
|
49
|
+
/** Filter by workspace path. */
|
|
50
|
+
workspace?: string;
|
|
51
|
+
linkType?: LinkType;
|
|
52
|
+
resolved?: boolean;
|
|
53
|
+
/** Links with seq > after. */
|
|
54
|
+
after?: number;
|
|
55
|
+
limit?: number;
|
|
56
|
+
}
|
|
57
|
+
export declare class CommitIssueLinkLog {
|
|
58
|
+
private readonly opts;
|
|
59
|
+
private links;
|
|
60
|
+
private seq;
|
|
61
|
+
private readonly file;
|
|
62
|
+
private readonly memoryCap;
|
|
63
|
+
private readonly now;
|
|
64
|
+
constructor(opts: LinkLogOptions);
|
|
65
|
+
/**
|
|
66
|
+
* Record one link. De-duplicates against the most recent existing row for
|
|
67
|
+
* the same (workspace, sha, ref) — identical repeat calls don't grow the
|
|
68
|
+
* log. A row whose `resolved` flag or `issueState` changes IS appended, so
|
|
69
|
+
* the history of an issue's state across commits stays visible.
|
|
70
|
+
*/
|
|
71
|
+
record(input: Omit<CommitIssueLink, "seq" | "createdAt">): CommitIssueLink | null;
|
|
72
|
+
query(q?: LinkQuery): CommitIssueLink[];
|
|
73
|
+
size(): number;
|
|
74
|
+
private findMostRecent;
|
|
75
|
+
private append;
|
|
76
|
+
private loadExisting;
|
|
77
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { appendFileSync, mkdirSync, readFileSync, statSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
const DEFAULT_MEMORY_CAP = 2_000;
|
|
4
|
+
export class CommitIssueLinkLog {
|
|
5
|
+
opts;
|
|
6
|
+
links = [];
|
|
7
|
+
seq = 0;
|
|
8
|
+
file;
|
|
9
|
+
memoryCap;
|
|
10
|
+
now;
|
|
11
|
+
constructor(opts) {
|
|
12
|
+
this.opts = opts;
|
|
13
|
+
this.file = path.join(opts.dir, "commit_issue_links.jsonl");
|
|
14
|
+
this.memoryCap = opts.memoryCap ?? DEFAULT_MEMORY_CAP;
|
|
15
|
+
this.now = opts.now ?? Date.now;
|
|
16
|
+
try {
|
|
17
|
+
mkdirSync(opts.dir, { recursive: true });
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
opts.logger?.warn?.(`[linklog] could not create ${opts.dir}: ${err instanceof Error ? err.message : String(err)}`);
|
|
21
|
+
}
|
|
22
|
+
this.loadExisting();
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Record one link. De-duplicates against the most recent existing row for
|
|
26
|
+
* the same (workspace, sha, ref) — identical repeat calls don't grow the
|
|
27
|
+
* log. A row whose `resolved` flag or `issueState` changes IS appended, so
|
|
28
|
+
* the history of an issue's state across commits stays visible.
|
|
29
|
+
*/
|
|
30
|
+
record(input) {
|
|
31
|
+
const prev = this.findMostRecent(input.workspace, input.sha, input.ref);
|
|
32
|
+
if (prev &&
|
|
33
|
+
prev.linkType === input.linkType &&
|
|
34
|
+
prev.resolved === input.resolved &&
|
|
35
|
+
prev.issueState === input.issueState &&
|
|
36
|
+
prev.reason === input.reason) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
this.seq += 1;
|
|
40
|
+
const link = {
|
|
41
|
+
seq: this.seq,
|
|
42
|
+
sha: input.sha,
|
|
43
|
+
ref: input.ref,
|
|
44
|
+
linkType: input.linkType,
|
|
45
|
+
resolved: input.resolved,
|
|
46
|
+
workspace: input.workspace,
|
|
47
|
+
...(input.subject !== undefined && { subject: input.subject }),
|
|
48
|
+
...(input.issueState !== undefined && { issueState: input.issueState }),
|
|
49
|
+
...(input.issueTitle !== undefined && { issueTitle: input.issueTitle }),
|
|
50
|
+
...(input.reason !== undefined && { reason: input.reason }),
|
|
51
|
+
createdAt: this.now(),
|
|
52
|
+
};
|
|
53
|
+
this.links.push(link);
|
|
54
|
+
if (this.links.length > this.memoryCap) {
|
|
55
|
+
this.links.splice(0, this.links.length - this.memoryCap);
|
|
56
|
+
}
|
|
57
|
+
this.append(link);
|
|
58
|
+
return link;
|
|
59
|
+
}
|
|
60
|
+
query(q = {}) {
|
|
61
|
+
let out = this.links;
|
|
62
|
+
if (q.sha) {
|
|
63
|
+
const needle = q.sha;
|
|
64
|
+
out = out.filter((l) => l.sha === needle || (needle.length >= 7 && l.sha.startsWith(needle)));
|
|
65
|
+
}
|
|
66
|
+
if (q.ref)
|
|
67
|
+
out = out.filter((l) => l.ref === q.ref);
|
|
68
|
+
if (q.workspace)
|
|
69
|
+
out = out.filter((l) => l.workspace === q.workspace);
|
|
70
|
+
if (q.linkType)
|
|
71
|
+
out = out.filter((l) => l.linkType === q.linkType);
|
|
72
|
+
if (q.resolved !== undefined) {
|
|
73
|
+
const wanted = q.resolved;
|
|
74
|
+
out = out.filter((l) => l.resolved === wanted);
|
|
75
|
+
}
|
|
76
|
+
if (q.after !== undefined) {
|
|
77
|
+
const after = q.after;
|
|
78
|
+
out = out.filter((l) => l.seq > after);
|
|
79
|
+
}
|
|
80
|
+
out = [...out].sort((a, b) => b.seq - a.seq);
|
|
81
|
+
const limit = Math.min(Math.max(q.limit ?? 100, 1), 1_000);
|
|
82
|
+
return out.slice(0, limit);
|
|
83
|
+
}
|
|
84
|
+
size() {
|
|
85
|
+
return this.links.length;
|
|
86
|
+
}
|
|
87
|
+
findMostRecent(workspace, sha, ref) {
|
|
88
|
+
for (let i = this.links.length - 1; i >= 0; i -= 1) {
|
|
89
|
+
const l = this.links[i];
|
|
90
|
+
if (l && l.workspace === workspace && l.sha === sha && l.ref === ref) {
|
|
91
|
+
return l;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
append(link) {
|
|
97
|
+
try {
|
|
98
|
+
appendFileSync(this.file, `${JSON.stringify(link)}\n`, { mode: 0o600 });
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
this.opts.logger?.warn?.(`[linklog] append failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
loadExisting() {
|
|
105
|
+
try {
|
|
106
|
+
statSync(this.file);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
let raw;
|
|
112
|
+
try {
|
|
113
|
+
raw = readFileSync(this.file, "utf-8");
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
this.opts.logger?.warn?.(`[linklog] read failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
for (const line of raw.split("\n")) {
|
|
120
|
+
if (!line)
|
|
121
|
+
continue;
|
|
122
|
+
try {
|
|
123
|
+
const parsed = JSON.parse(line);
|
|
124
|
+
if (typeof parsed.seq !== "number" ||
|
|
125
|
+
typeof parsed.sha !== "string" ||
|
|
126
|
+
typeof parsed.ref !== "string") {
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
this.links.push(parsed);
|
|
130
|
+
if (parsed.seq > this.seq)
|
|
131
|
+
this.seq = parsed.seq;
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// skip malformed line
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (this.links.length > this.memoryCap) {
|
|
138
|
+
this.links.splice(0, this.links.length - this.memoryCap);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=commitIssueLinkLog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commitIssueLinkLog.js","sourceRoot":"","sources":["../src/commitIssueLinkLog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface CompanionEntry {
|
|
2
|
+
description: string;
|
|
3
|
+
npmPackage: string;
|
|
4
|
+
command: string;
|
|
5
|
+
args: string[];
|
|
6
|
+
requiredEnv?: Record<string, string>;
|
|
7
|
+
/** Printed after install completes — use for post-install manual steps. */
|
|
8
|
+
postInstallMessage?: string;
|
|
9
|
+
/** Skip `npm install -g` step — for binary-only companions installed via other means. */
|
|
10
|
+
skipNpmInstall?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const COMPANIONS: Record<string, CompanionEntry>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// Companion MCP server registry.
|
|
2
|
+
// npm package names verified via: npm view <pkg> name
|
|
3
|
+
// @modelcontextprotocol/server-memory ✓
|
|
4
|
+
// superpowers-mcp ✓
|
|
5
|
+
// chrome-devtools-mcp ✓
|
|
6
|
+
// @bytebase/dbhub ✓
|
|
7
|
+
// slack-mcp-server ✓
|
|
8
|
+
// @playwright/mcp ✓
|
|
9
|
+
// codebase-memory-mcp — binary only, not on npm (skipNpmInstall: true)
|
|
10
|
+
export const COMPANIONS = {
|
|
11
|
+
memory: {
|
|
12
|
+
description: "Persistent memory across Claude sessions",
|
|
13
|
+
npmPackage: "@modelcontextprotocol/server-memory",
|
|
14
|
+
command: "npx",
|
|
15
|
+
args: ["-y", "@modelcontextprotocol/server-memory"],
|
|
16
|
+
},
|
|
17
|
+
superpowers: {
|
|
18
|
+
description: "Structured planning, task decomposition",
|
|
19
|
+
npmPackage: "superpowers-mcp",
|
|
20
|
+
command: "npx",
|
|
21
|
+
args: ["-y", "superpowers-mcp"],
|
|
22
|
+
},
|
|
23
|
+
// To connect to an existing Chrome instead of auto-launching:
|
|
24
|
+
// add --browser-url http://127.0.0.1:9222 to args.
|
|
25
|
+
devtools: {
|
|
26
|
+
description: "Full Chrome browser control — automate, debug, inspect network/console/performance",
|
|
27
|
+
npmPackage: "chrome-devtools-mcp",
|
|
28
|
+
command: "npx",
|
|
29
|
+
args: ["-y", "chrome-devtools-mcp"],
|
|
30
|
+
},
|
|
31
|
+
database: {
|
|
32
|
+
description: "Multi-database query tools (Postgres, MySQL, SQLite, SQL Server, MariaDB)",
|
|
33
|
+
npmPackage: "@bytebase/dbhub",
|
|
34
|
+
command: "npx",
|
|
35
|
+
args: ["-y", "@bytebase/dbhub", "--transport", "stdio"],
|
|
36
|
+
requiredEnv: { DSN: "<postgresql://user:pass@localhost/mydb>" },
|
|
37
|
+
postInstallMessage: "Replace the DSN placeholder in claude_desktop_config.json with your real connection string,\n" +
|
|
38
|
+
"or use: claude-ide-bridge install database --env DSN=postgresql://user:pass@localhost/mydb\n" +
|
|
39
|
+
"Multiple databases: add a second entry manually with key 'database-mysql' etc.",
|
|
40
|
+
},
|
|
41
|
+
slack: {
|
|
42
|
+
description: "Post Slack messages from automation hooks (onPullRequest, onGitPush, etc.)",
|
|
43
|
+
npmPackage: "slack-mcp-server",
|
|
44
|
+
command: "npx",
|
|
45
|
+
args: ["-y", "slack-mcp-server"],
|
|
46
|
+
requiredEnv: {
|
|
47
|
+
SLACK_BOT_TOKEN: "<xoxb-your-token>",
|
|
48
|
+
SLACK_TEAM_ID: "<T00000000>",
|
|
49
|
+
},
|
|
50
|
+
postInstallMessage: "Replace SLACK_BOT_TOKEN and SLACK_TEAM_ID in claude_desktop_config.json,\n" +
|
|
51
|
+
"or use: claude-ide-bridge install slack --env SLACK_BOT_TOKEN=xoxb-... --env SLACK_TEAM_ID=T...",
|
|
52
|
+
},
|
|
53
|
+
playwright: {
|
|
54
|
+
description: "AI-driven browser automation — navigate, click, fill forms, screenshot (e2e testing)",
|
|
55
|
+
npmPackage: "@playwright/mcp",
|
|
56
|
+
command: "npx",
|
|
57
|
+
args: ["-y", "@playwright/mcp"],
|
|
58
|
+
postInstallMessage: "Browsers must be installed separately:\n npx playwright install chromium",
|
|
59
|
+
},
|
|
60
|
+
"codebase-memory": {
|
|
61
|
+
description: "Codebase knowledge graph — call chains, architecture overview, blast-radius analysis (66 languages)",
|
|
62
|
+
npmPackage: "codebase-memory-mcp",
|
|
63
|
+
command: "codebase-memory-mcp",
|
|
64
|
+
args: [],
|
|
65
|
+
skipNpmInstall: true,
|
|
66
|
+
postInstallMessage: "Install the binary first (not on npm):\n" +
|
|
67
|
+
" curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash\n" +
|
|
68
|
+
"Then restart Claude Desktop.",
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=registry.js.map
|