patchwork-os 0.2.0-beta.1 → 0.2.0-beta.10.canary.100
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/README.bridge.md +14 -14
- package/README.md +201 -34
- package/deploy/README.md +1 -1
- package/deploy/bootstrap-vps.sh +14 -9
- package/deploy/deploy-dashboard.sh +25 -1
- package/deploy/macos/README.md +153 -0
- package/deploy/macos/com.patchwork.bridge.plist.template +54 -0
- package/deploy/macos/com.patchwork.tunnel.plist.template +76 -0
- package/deploy/macos/install-mac-bridge.sh +244 -0
- package/deploy/macos/uninstall-mac-bridge.sh +22 -0
- package/dist/activityLog.d.ts +6 -0
- package/dist/activityLog.js +63 -26
- package/dist/activityLog.js.map +1 -1
- package/dist/adapters/claude.js +22 -16
- package/dist/adapters/claude.js.map +1 -1
- package/dist/adapters/gemini.js +15 -11
- package/dist/adapters/gemini.js.map +1 -1
- package/dist/adapters/openai.js +9 -9
- package/dist/adapters/openai.js.map +1 -1
- package/dist/ajv2020.d.ts +25 -0
- package/dist/ajv2020.js +33 -0
- package/dist/ajv2020.js.map +1 -0
- package/dist/analyticsAggregator.js +1 -1
- package/dist/analyticsAggregator.js.map +1 -1
- package/dist/analyticsConfig.d.ts +29 -0
- package/dist/analyticsConfig.js +102 -0
- package/dist/analyticsConfig.js.map +1 -0
- package/dist/analyticsPrefs.d.ts +38 -2
- package/dist/analyticsPrefs.js +148 -23
- package/dist/analyticsPrefs.js.map +1 -1
- package/dist/analyticsSend.d.ts +17 -1
- package/dist/analyticsSend.js +67 -5
- package/dist/analyticsSend.js.map +1 -1
- package/dist/approvalHttp.d.ts +14 -0
- package/dist/approvalHttp.js +212 -9
- package/dist/approvalHttp.js.map +1 -1
- package/dist/approvalInsights.js +13 -5
- package/dist/approvalInsights.js.map +1 -1
- package/dist/approvalQueue.d.ts +97 -3
- package/dist/approvalQueue.js +193 -19
- package/dist/approvalQueue.js.map +1 -1
- package/dist/approvalSignals.js +19 -11
- package/dist/approvalSignals.js.map +1 -1
- package/dist/automation.d.ts +35 -10
- package/dist/automation.js +133 -37
- package/dist/automation.js.map +1 -1
- package/dist/automationSuggestions.js +10 -8
- package/dist/automationSuggestions.js.map +1 -1
- package/dist/bridge.d.ts +2 -0
- package/dist/bridge.js +219 -35
- package/dist/bridge.js.map +1 -1
- package/dist/bridgeLockDiscovery.d.ts +27 -1
- package/dist/bridgeLockDiscovery.js +38 -11
- package/dist/bridgeLockDiscovery.js.map +1 -1
- package/dist/bridgeToken.js +3 -2
- package/dist/bridgeToken.js.map +1 -1
- package/dist/claudeDriver.js +23 -8
- package/dist/claudeDriver.js.map +1 -1
- package/dist/claudeOrchestrator.d.ts +1 -1
- package/dist/claudeOrchestrator.js +87 -44
- package/dist/claudeOrchestrator.js.map +1 -1
- package/dist/commands/analytics.d.ts +8 -0
- package/dist/commands/analytics.js +134 -0
- package/dist/commands/analytics.js.map +1 -0
- package/dist/commands/auditEnv.d.ts +36 -0
- package/dist/commands/auditEnv.js +202 -0
- package/dist/commands/auditEnv.js.map +1 -0
- package/dist/commands/connect.d.ts +47 -0
- package/dist/commands/connect.js +419 -0
- package/dist/commands/connect.js.map +1 -0
- package/dist/commands/dashboard.js +8 -1
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/doctor.d.ts +35 -0
- package/dist/commands/doctor.js +51 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/install.js +3 -0
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/launchd.js +15 -16
- package/dist/commands/launchd.js.map +1 -1
- package/dist/commands/patchworkInit.d.ts +5 -0
- package/dist/commands/patchworkInit.js +89 -7
- package/dist/commands/patchworkInit.js.map +1 -1
- package/dist/commands/recipe.d.ts +151 -0
- package/dist/commands/recipe.js +649 -9
- package/dist/commands/recipe.js.map +1 -1
- package/dist/commands/recipeInstall.js +11 -4
- package/dist/commands/recipeInstall.js.map +1 -1
- package/dist/commands/shadowScan.d.ts +34 -0
- package/dist/commands/shadowScan.js +142 -0
- package/dist/commands/shadowScan.js.map +1 -0
- package/dist/commands/task.d.ts +25 -0
- package/dist/commands/task.js +62 -42
- package/dist/commands/task.js.map +1 -1
- package/dist/commands/tools.d.ts +20 -1
- package/dist/commands/tools.js +112 -3
- package/dist/commands/tools.js.map +1 -1
- package/dist/commands/tracesExport.d.ts +15 -1
- package/dist/commands/tracesExport.js +39 -5
- package/dist/commands/tracesExport.js.map +1 -1
- package/dist/commands/tracesImport.js +21 -4
- package/dist/commands/tracesImport.js.map +1 -1
- package/dist/commitIssueLinkLog.d.ts +16 -0
- package/dist/commitIssueLinkLog.js +110 -24
- package/dist/commitIssueLinkLog.js.map +1 -1
- package/dist/companions/registry.js +15 -7
- package/dist/companions/registry.js.map +1 -1
- package/dist/config.d.ts +47 -3
- package/dist/config.js +111 -21
- package/dist/config.js.map +1 -1
- package/dist/connectorRoutes.js +1422 -57
- package/dist/connectorRoutes.js.map +1 -1
- package/dist/connectors/airtable.d.ts +230 -0
- package/dist/connectors/airtable.js +700 -0
- package/dist/connectors/airtable.js.map +1 -0
- package/dist/connectors/asana.js +13 -9
- package/dist/connectors/asana.js.map +1 -1
- package/dist/connectors/baseConnector.js +25 -3
- package/dist/connectors/baseConnector.js.map +1 -1
- package/dist/connectors/caldiy.d.ts +137 -0
- package/dist/connectors/caldiy.js +424 -0
- package/dist/connectors/caldiy.js.map +1 -0
- package/dist/connectors/circleci.d.ts +162 -0
- package/dist/connectors/circleci.js +576 -0
- package/dist/connectors/circleci.js.map +1 -0
- package/dist/connectors/cloudflare.d.ts +132 -0
- package/dist/connectors/cloudflare.js +622 -0
- package/dist/connectors/cloudflare.js.map +1 -0
- package/dist/connectors/confluence.js +35 -0
- package/dist/connectors/confluence.js.map +1 -1
- package/dist/connectors/connectorRedirectUri.d.ts +30 -0
- package/dist/connectors/connectorRedirectUri.js +38 -0
- package/dist/connectors/connectorRedirectUri.js.map +1 -0
- package/dist/connectors/connectorRegistry.d.ts +60 -0
- package/dist/connectors/connectorRegistry.js +354 -0
- package/dist/connectors/connectorRegistry.js.map +1 -0
- package/dist/connectors/datadog.js +41 -5
- package/dist/connectors/datadog.js.map +1 -1
- package/dist/connectors/discord.js +14 -10
- package/dist/connectors/discord.js.map +1 -1
- package/dist/connectors/elasticsearch.d.ts +141 -0
- package/dist/connectors/elasticsearch.js +601 -0
- package/dist/connectors/elasticsearch.js.map +1 -0
- package/dist/connectors/figma.d.ts +130 -0
- package/dist/connectors/figma.js +387 -0
- package/dist/connectors/figma.js.map +1 -0
- package/dist/connectors/github.d.ts +17 -0
- package/dist/connectors/github.js +53 -2
- package/dist/connectors/github.js.map +1 -1
- package/dist/connectors/gitlab.js +12 -6
- package/dist/connectors/gitlab.js.map +1 -1
- package/dist/connectors/gmail.js +72 -21
- package/dist/connectors/gmail.js.map +1 -1
- package/dist/connectors/googleCalendar.js +8 -8
- package/dist/connectors/googleCalendar.js.map +1 -1
- package/dist/connectors/googleDocs.d.ts +103 -0
- package/dist/connectors/googleDocs.js +409 -0
- package/dist/connectors/googleDocs.js.map +1 -0
- package/dist/connectors/googleDrive.d.ts +12 -0
- package/dist/connectors/googleDrive.js +35 -8
- package/dist/connectors/googleDrive.js.map +1 -1
- package/dist/connectors/grafana.d.ts +133 -0
- package/dist/connectors/grafana.js +478 -0
- package/dist/connectors/grafana.js.map +1 -0
- package/dist/connectors/jira.d.ts +25 -0
- package/dist/connectors/jira.js +234 -3
- package/dist/connectors/jira.js.map +1 -1
- package/dist/connectors/linear.js +1 -1
- package/dist/connectors/linear.js.map +1 -1
- package/dist/connectors/mcpClient.js +37 -23
- package/dist/connectors/mcpClient.js.map +1 -1
- package/dist/connectors/mcpOAuth.js +78 -16
- package/dist/connectors/mcpOAuth.js.map +1 -1
- package/dist/connectors/monday.d.ts +217 -0
- package/dist/connectors/monday.js +655 -0
- package/dist/connectors/monday.js.map +1 -0
- package/dist/connectors/mongodb.d.ts +139 -0
- package/dist/connectors/mongodb.js +455 -0
- package/dist/connectors/mongodb.js.map +1 -0
- package/dist/connectors/notion.d.ts +1 -1
- package/dist/connectors/notion.js +13 -4
- package/dist/connectors/notion.js.map +1 -1
- package/dist/connectors/oauthStateStore.d.ts +20 -0
- package/dist/connectors/oauthStateStore.js +94 -4
- package/dist/connectors/oauthStateStore.js.map +1 -1
- package/dist/connectors/obsidian.d.ts +83 -0
- package/dist/connectors/obsidian.js +441 -0
- package/dist/connectors/obsidian.js.map +1 -0
- package/dist/connectors/paystack.d.ts +159 -0
- package/dist/connectors/paystack.js +607 -0
- package/dist/connectors/paystack.js.map +1 -0
- package/dist/connectors/pipedrive.d.ts +189 -0
- package/dist/connectors/pipedrive.js +559 -0
- package/dist/connectors/pipedrive.js.map +1 -0
- package/dist/connectors/postgres.d.ts +127 -0
- package/dist/connectors/postgres.js +512 -0
- package/dist/connectors/postgres.js.map +1 -0
- package/dist/connectors/posthog.d.ts +119 -0
- package/dist/connectors/posthog.js +479 -0
- package/dist/connectors/posthog.js.map +1 -0
- package/dist/connectors/redis.d.ts +140 -0
- package/dist/connectors/redis.js +579 -0
- package/dist/connectors/redis.js.map +1 -0
- package/dist/connectors/resend.d.ts +131 -0
- package/dist/connectors/resend.js +529 -0
- package/dist/connectors/resend.js.map +1 -0
- package/dist/connectors/salesforce.d.ts +136 -0
- package/dist/connectors/salesforce.js +603 -0
- package/dist/connectors/salesforce.js.map +1 -0
- package/dist/connectors/secrets.d.ts +51 -0
- package/dist/connectors/secrets.js +102 -0
- package/dist/connectors/secrets.js.map +1 -0
- package/dist/connectors/sendgrid.d.ts +102 -0
- package/dist/connectors/sendgrid.js +423 -0
- package/dist/connectors/sendgrid.js.map +1 -0
- package/dist/connectors/shopify.d.ts +145 -0
- package/dist/connectors/shopify.js +502 -0
- package/dist/connectors/shopify.js.map +1 -0
- package/dist/connectors/slack.d.ts +1 -1
- package/dist/connectors/slack.js +61 -9
- package/dist/connectors/slack.js.map +1 -1
- package/dist/connectors/snowflake.d.ts +119 -0
- package/dist/connectors/snowflake.js +633 -0
- package/dist/connectors/snowflake.js.map +1 -0
- package/dist/connectors/supabase.d.ts +92 -0
- package/dist/connectors/supabase.js +630 -0
- package/dist/connectors/supabase.js.map +1 -0
- package/dist/connectors/todoist.d.ts +117 -0
- package/dist/connectors/todoist.js +485 -0
- package/dist/connectors/todoist.js.map +1 -0
- package/dist/connectors/tokenStorage.js +56 -14
- package/dist/connectors/tokenStorage.js.map +1 -1
- package/dist/connectors/twilio.d.ts +118 -0
- package/dist/connectors/twilio.js +475 -0
- package/dist/connectors/twilio.js.map +1 -0
- package/dist/connectors/vercel.d.ts +110 -0
- package/dist/connectors/vercel.js +479 -0
- package/dist/connectors/vercel.js.map +1 -0
- package/dist/connectors/webflow.d.ts +118 -0
- package/dist/connectors/webflow.js +393 -0
- package/dist/connectors/webflow.js.map +1 -0
- package/dist/connectors/woocommerce.d.ts +220 -0
- package/dist/connectors/woocommerce.js +464 -0
- package/dist/connectors/woocommerce.js.map +1 -0
- package/dist/crypto.js +7 -2
- package/dist/crypto.js.map +1 -1
- package/dist/decisionReplay.d.ts +8 -6
- package/dist/decisionReplay.js +50 -17
- package/dist/decisionReplay.js.map +1 -1
- package/dist/decisionTraceLog.d.ts +28 -0
- package/dist/decisionTraceLog.js +156 -29
- package/dist/decisionTraceLog.js.map +1 -1
- package/dist/drivers/claude/api.js +33 -9
- package/dist/drivers/claude/api.js.map +1 -1
- package/dist/drivers/claude/envSanitizer.d.ts +0 -6
- package/dist/drivers/claude/envSanitizer.js +17 -2
- package/dist/drivers/claude/envSanitizer.js.map +1 -1
- package/dist/drivers/claude/streamParser.js +5 -4
- package/dist/drivers/claude/streamParser.js.map +1 -1
- package/dist/drivers/claude/subprocess.js +69 -16
- package/dist/drivers/claude/subprocess.js.map +1 -1
- package/dist/drivers/gemini/index.d.ts +22 -0
- package/dist/drivers/gemini/index.js +256 -129
- package/dist/drivers/gemini/index.js.map +1 -1
- package/dist/drivers/local/index.d.ts +2 -0
- package/dist/drivers/local/index.js +12 -0
- package/dist/drivers/local/index.js.map +1 -1
- package/dist/drivers/openai/index.js +30 -2
- package/dist/drivers/openai/index.js.map +1 -1
- package/dist/extensionClient.d.ts +37 -4
- package/dist/extensionClient.js +58 -16
- package/dist/extensionClient.js.map +1 -1
- package/dist/featureFlags.d.ts +91 -0
- package/dist/featureFlags.js +174 -3
- package/dist/featureFlags.js.map +1 -1
- package/dist/fileLock.js +21 -12
- package/dist/fileLock.js.map +1 -1
- package/dist/fileLockSync.d.ts +67 -0
- package/dist/fileLockSync.js +126 -0
- package/dist/fileLockSync.js.map +1 -0
- package/dist/fp/activityAnalytics.js +26 -12
- package/dist/fp/activityAnalytics.js.map +1 -1
- package/dist/fp/automationInterpreter.d.ts +15 -1
- package/dist/fp/automationInterpreter.js +267 -87
- package/dist/fp/automationInterpreter.js.map +1 -1
- package/dist/fp/automationProgram.d.ts +30 -0
- package/dist/fp/automationProgram.js.map +1 -1
- package/dist/fp/automationState.d.ts +24 -5
- package/dist/fp/automationState.js +56 -9
- package/dist/fp/automationState.js.map +1 -1
- package/dist/fp/automationUtils.js +1 -1
- package/dist/fp/automationUtils.js.map +1 -1
- package/dist/fp/commandDescription.js +7 -1
- package/dist/fp/commandDescription.js.map +1 -1
- package/dist/fp/extensionSnapshot.js +8 -2
- package/dist/fp/extensionSnapshot.js.map +1 -1
- package/dist/fp/interpreterContext.d.ts +66 -1
- package/dist/fp/interpreterContext.js +91 -1
- package/dist/fp/interpreterContext.js.map +1 -1
- package/dist/fp/policyParser.js +34 -2
- package/dist/fp/policyParser.js.map +1 -1
- package/dist/fsWatchWithFallback.d.ts +36 -0
- package/dist/fsWatchWithFallback.js +128 -0
- package/dist/fsWatchWithFallback.js.map +1 -0
- package/dist/haltPushDispatch.d.ts +33 -0
- package/dist/haltPushDispatch.js +103 -0
- package/dist/haltPushDispatch.js.map +1 -0
- package/dist/httpBodyValidation.d.ts +41 -0
- package/dist/httpBodyValidation.js +45 -0
- package/dist/httpBodyValidation.js.map +1 -0
- package/dist/inboxRoutes.d.ts +22 -0
- package/dist/inboxRoutes.js +61 -1
- package/dist/inboxRoutes.js.map +1 -1
- package/dist/index.js +1206 -158
- package/dist/index.js.map +1 -1
- package/dist/installGuard.js +6 -2
- package/dist/installGuard.js.map +1 -1
- package/dist/localEndpointGuard.d.ts +25 -0
- package/dist/localEndpointGuard.js +101 -0
- package/dist/localEndpointGuard.js.map +1 -0
- package/dist/lockfile.js +31 -4
- package/dist/lockfile.js.map +1 -1
- package/dist/oauth.d.ts +9 -0
- package/dist/oauth.js +33 -0
- package/dist/oauth.js.map +1 -1
- package/dist/oauthRoutes.d.ts +1 -1
- package/dist/oauthRoutes.js +5 -3
- package/dist/oauthRoutes.js.map +1 -1
- package/dist/orchestrator/childBridgeClient.d.ts +5 -0
- package/dist/orchestrator/childBridgeClient.js +28 -1
- package/dist/orchestrator/childBridgeClient.js.map +1 -1
- package/dist/orchestrator/childBridgeRegistry.js +29 -11
- package/dist/orchestrator/childBridgeRegistry.js.map +1 -1
- package/dist/orchestrator/orchestratorBridge.d.ts +33 -0
- package/dist/orchestrator/orchestratorBridge.js +70 -9
- package/dist/orchestrator/orchestratorBridge.js.map +1 -1
- package/dist/patchworkConfig.d.ts +44 -1
- package/dist/patchworkConfig.js +28 -3
- package/dist/patchworkConfig.js.map +1 -1
- package/dist/pluginLoader.js +10 -1
- package/dist/pluginLoader.js.map +1 -1
- package/dist/pluginWatcher.js +12 -14
- package/dist/pluginWatcher.js.map +1 -1
- package/dist/preToolUseHook.js +3 -2
- package/dist/preToolUseHook.js.map +1 -1
- package/dist/processTree.d.ts +34 -0
- package/dist/processTree.js +105 -0
- package/dist/processTree.js.map +1 -0
- package/dist/prompts.js +3 -3
- package/dist/prompts.js.map +1 -1
- package/dist/recipeOrchestration.d.ts +9 -0
- package/dist/recipeOrchestration.js +341 -24
- package/dist/recipeOrchestration.js.map +1 -1
- package/dist/recipeRoutes.d.ts +58 -2
- package/dist/recipeRoutes.js +744 -115
- package/dist/recipeRoutes.js.map +1 -1
- package/dist/recipes/RecipeOrchestrator.d.ts +2 -0
- package/dist/recipes/RecipeOrchestrator.js +6 -1
- package/dist/recipes/RecipeOrchestrator.js.map +1 -1
- package/dist/recipes/agentExecutor.d.ts +25 -5
- package/dist/recipes/agentExecutor.js.map +1 -1
- package/dist/recipes/chainedRunner.d.ts +2 -0
- package/dist/recipes/chainedRunner.js +156 -9
- package/dist/recipes/chainedRunner.js.map +1 -1
- package/dist/recipes/compiler.js +9 -5
- package/dist/recipes/compiler.js.map +1 -1
- package/dist/recipes/connectorPreflight.d.ts +66 -0
- package/dist/recipes/connectorPreflight.js +169 -0
- package/dist/recipes/connectorPreflight.js.map +1 -0
- package/dist/recipes/dependencyGraph.d.ts +9 -0
- package/dist/recipes/dependencyGraph.js +32 -7
- package/dist/recipes/dependencyGraph.js.map +1 -1
- package/dist/recipes/githubInstallSource.d.ts +135 -0
- package/dist/recipes/githubInstallSource.js +236 -0
- package/dist/recipes/githubInstallSource.js.map +1 -0
- package/dist/recipes/haltCategory.d.ts +119 -0
- package/dist/recipes/haltCategory.js +188 -0
- package/dist/recipes/haltCategory.js.map +1 -0
- package/dist/recipes/idempotencyKey.d.ts +154 -0
- package/dist/recipes/idempotencyKey.js +375 -0
- package/dist/recipes/idempotencyKey.js.map +1 -0
- package/dist/recipes/installer.js +58 -3
- package/dist/recipes/installer.js.map +1 -1
- package/dist/recipes/judgeSummary.d.ts +50 -0
- package/dist/recipes/judgeSummary.js +47 -0
- package/dist/recipes/judgeSummary.js.map +1 -0
- package/dist/recipes/judgeVerdict.d.ts +48 -0
- package/dist/recipes/judgeVerdict.js +174 -0
- package/dist/recipes/judgeVerdict.js.map +1 -0
- package/dist/recipes/migrations/index.d.ts +9 -0
- package/dist/recipes/migrations/index.js +133 -0
- package/dist/recipes/migrations/index.js.map +1 -1
- package/dist/recipes/names.d.ts +20 -0
- package/dist/recipes/names.js +25 -0
- package/dist/recipes/names.js.map +1 -1
- package/dist/recipes/parser.js +116 -6
- package/dist/recipes/parser.js.map +1 -1
- package/dist/recipes/replayRun.js +1 -1
- package/dist/recipes/replayRun.js.map +1 -1
- package/dist/recipes/runBudget.d.ts +70 -0
- package/dist/recipes/runBudget.js +109 -0
- package/dist/recipes/runBudget.js.map +1 -0
- package/dist/recipes/scheduler.d.ts +30 -0
- package/dist/recipes/scheduler.js +69 -19
- package/dist/recipes/scheduler.js.map +1 -1
- package/dist/recipes/schema.d.ts +65 -2
- package/dist/recipes/schemaGenerator.js +119 -7
- package/dist/recipes/schemaGenerator.js.map +1 -1
- package/dist/recipes/stepObservation.js +9 -0
- package/dist/recipes/stepObservation.js.map +1 -1
- package/dist/recipes/toolRegistry.js +33 -7
- package/dist/recipes/toolRegistry.js.map +1 -1
- package/dist/recipes/tools/airtable.d.ts +15 -0
- package/dist/recipes/tools/airtable.js +239 -0
- package/dist/recipes/tools/airtable.js.map +1 -0
- package/dist/recipes/tools/fanOut.d.ts +20 -0
- package/dist/recipes/tools/fanOut.js +199 -0
- package/dist/recipes/tools/fanOut.js.map +1 -0
- package/dist/recipes/tools/file.js +5 -2
- package/dist/recipes/tools/file.js.map +1 -1
- package/dist/recipes/tools/github.d.ts +1 -1
- package/dist/recipes/tools/github.js +75 -1
- package/dist/recipes/tools/github.js.map +1 -1
- package/dist/recipes/tools/gmail.js +27 -5
- package/dist/recipes/tools/gmail.js.map +1 -1
- package/dist/recipes/tools/googleDrive.js +64 -0
- package/dist/recipes/tools/googleDrive.js.map +1 -1
- package/dist/recipes/tools/http.d.ts +10 -0
- package/dist/recipes/tools/http.js +176 -0
- package/dist/recipes/tools/http.js.map +1 -0
- package/dist/recipes/tools/index.d.ts +7 -0
- package/dist/recipes/tools/index.js +7 -0
- package/dist/recipes/tools/index.js.map +1 -1
- package/dist/recipes/tools/resend.d.ts +8 -0
- package/dist/recipes/tools/resend.js +152 -0
- package/dist/recipes/tools/resend.js.map +1 -0
- package/dist/recipes/tools/sendgrid.d.ts +9 -0
- package/dist/recipes/tools/sendgrid.js +174 -0
- package/dist/recipes/tools/sendgrid.js.map +1 -0
- package/dist/recipes/tools/slack.js +1 -1
- package/dist/recipes/tools/twilio.d.ts +11 -0
- package/dist/recipes/tools/twilio.js +179 -0
- package/dist/recipes/tools/twilio.js.map +1 -0
- package/dist/recipes/tools/vercel.d.ts +9 -0
- package/dist/recipes/tools/vercel.js +145 -0
- package/dist/recipes/tools/vercel.js.map +1 -0
- package/dist/recipes/validation.d.ts +17 -0
- package/dist/recipes/validation.js +141 -11
- package/dist/recipes/validation.js.map +1 -1
- package/dist/recipes/workspaceRoot.d.ts +37 -0
- package/dist/recipes/workspaceRoot.js +73 -0
- package/dist/recipes/workspaceRoot.js.map +1 -0
- package/dist/recipes/yamlPositions.d.ts +56 -0
- package/dist/recipes/yamlPositions.js +183 -0
- package/dist/recipes/yamlPositions.js.map +1 -0
- package/dist/recipes/yamlRunner.d.ts +185 -8
- package/dist/recipes/yamlRunner.js +967 -224
- package/dist/recipes/yamlRunner.js.map +1 -1
- package/dist/recipesHttp.d.ts +19 -3
- package/dist/recipesHttp.js +67 -11
- package/dist/recipesHttp.js.map +1 -1
- package/dist/resources.js +21 -13
- package/dist/resources.js.map +1 -1
- package/dist/runLog.d.ts +58 -5
- package/dist/runLog.js +98 -21
- package/dist/runLog.js.map +1 -1
- package/dist/sanitizeParsedJson.d.ts +39 -0
- package/dist/sanitizeParsedJson.js +55 -0
- package/dist/sanitizeParsedJson.js.map +1 -0
- package/dist/schemas/recipe.v1.json +887 -198
- package/dist/server.d.ts +160 -3
- package/dist/server.js +1099 -122
- package/dist/server.js.map +1 -1
- package/dist/sessionCheckpoint.d.ts +8 -0
- package/dist/sessionCheckpoint.js +33 -3
- package/dist/sessionCheckpoint.js.map +1 -1
- package/dist/ssrfGuard.d.ts +16 -0
- package/dist/ssrfGuard.js +87 -4
- package/dist/ssrfGuard.js.map +1 -1
- package/dist/streamableHttp.d.ts +9 -4
- package/dist/streamableHttp.js +76 -20
- package/dist/streamableHttp.js.map +1 -1
- package/dist/telemetry.js +37 -19
- package/dist/telemetry.js.map +1 -1
- package/dist/testing/shadowRun.d.ts +52 -0
- package/dist/testing/shadowRun.js +71 -0
- package/dist/testing/shadowRun.js.map +1 -0
- package/dist/tools/batchLsp.d.ts +3 -0
- package/dist/tools/bridgeDoctor.d.ts +11 -0
- package/dist/tools/bridgeDoctor.js +48 -2
- package/dist/tools/bridgeDoctor.js.map +1 -1
- package/dist/tools/bridgeStatus.d.ts +0 -12
- package/dist/tools/bridgeStatus.js +2 -28
- package/dist/tools/bridgeStatus.js.map +1 -1
- package/dist/tools/cancelClaudeTask.d.ts +1 -0
- package/dist/tools/clipboard.d.ts +2 -0
- package/dist/tools/closeTabs.d.ts +1 -0
- package/dist/tools/codeLens.d.ts +1 -0
- package/dist/tools/createIssueFromAIComment.d.ts +1 -0
- package/dist/tools/ctxGetTaskContext.d.ts +9 -0
- package/dist/tools/ctxGetTaskContext.js +50 -2
- package/dist/tools/ctxGetTaskContext.js.map +1 -1
- package/dist/tools/ctxQueryTraces.js +32 -24
- package/dist/tools/ctxQueryTraces.js.map +1 -1
- package/dist/tools/ctxSaveTrace.d.ts +1 -0
- package/dist/tools/debug.d.ts +4 -0
- package/dist/tools/decorations.d.ts +2 -0
- package/dist/tools/detectUnusedCode.js +9 -7
- package/dist/tools/detectUnusedCode.js.map +1 -1
- package/dist/tools/documentLinks.d.ts +1 -0
- package/dist/tools/editText.d.ts +1 -0
- package/dist/tools/editText.js +2 -1
- package/dist/tools/editText.js.map +1 -1
- package/dist/tools/enrichCommit.d.ts +1 -0
- package/dist/tools/enrichStackTrace.js +11 -5
- package/dist/tools/enrichStackTrace.js.map +1 -1
- package/dist/tools/explainDiagnostic.d.ts +1 -0
- package/dist/tools/explainSymbol.d.ts +1 -0
- package/dist/tools/fileOperations.d.ts +3 -0
- package/dist/tools/fileOperations.js +2 -1
- package/dist/tools/fileOperations.js.map +1 -1
- package/dist/tools/fileWatcher.d.ts +2 -0
- package/dist/tools/fileWatcher.js +8 -2
- package/dist/tools/fileWatcher.js.map +1 -1
- package/dist/tools/findFiles.d.ts +1 -0
- package/dist/tools/fixAllLintErrors.d.ts +1 -0
- package/dist/tools/fixAllLintErrors.js +10 -5
- package/dist/tools/fixAllLintErrors.js.map +1 -1
- package/dist/tools/foldingRanges.d.ts +1 -0
- package/dist/tools/formatDocument.d.ts +1 -0
- package/dist/tools/formatDocument.js +10 -5
- package/dist/tools/formatDocument.js.map +1 -1
- package/dist/tools/generateTests.d.ts +1 -0
- package/dist/tools/getAIComments.d.ts +1 -0
- package/dist/tools/getAnalyticsReport.js +5 -1
- package/dist/tools/getAnalyticsReport.js.map +1 -1
- package/dist/tools/getBufferContent.d.ts +1 -0
- package/dist/tools/getChangeImpact.d.ts +1 -0
- package/dist/tools/getChangeImpact.js +23 -14
- package/dist/tools/getChangeImpact.js.map +1 -1
- package/dist/tools/getClaudeTaskStatus.d.ts +1 -0
- package/dist/tools/getCodeCoverage.d.ts +1 -0
- package/dist/tools/getCodeCoverage.js +32 -14
- package/dist/tools/getCodeCoverage.js.map +1 -1
- package/dist/tools/getCommitsForIssue.d.ts +1 -0
- package/dist/tools/getDebugState.d.ts +1 -0
- package/dist/tools/getDiagnostics.js +32 -29
- package/dist/tools/getDiagnostics.js.map +1 -1
- package/dist/tools/getDiffFromHandoff.js +8 -2
- package/dist/tools/getDiffFromHandoff.js.map +1 -1
- package/dist/tools/getDocumentSymbols.d.ts +1 -0
- package/dist/tools/getGitHotspots.d.ts +1 -0
- package/dist/tools/getGitStatus.js +6 -1
- package/dist/tools/getGitStatus.js.map +1 -1
- package/dist/tools/getImportedSignatures.d.ts +1 -0
- package/dist/tools/getImportedSignatures.js +18 -14
- package/dist/tools/getImportedSignatures.js.map +1 -1
- package/dist/tools/getPRTemplate.d.ts +1 -0
- package/dist/tools/getProjectContext.js +23 -10
- package/dist/tools/getProjectContext.js.map +1 -1
- package/dist/tools/getSymbolHistory.d.ts +1 -0
- package/dist/tools/getToolCapabilities.d.ts +10 -5
- package/dist/tools/getToolCapabilities.js +116 -204
- package/dist/tools/getToolCapabilities.js.map +1 -1
- package/dist/tools/getTypeSignature.d.ts +1 -0
- package/dist/tools/getWorkspaceSettings.d.ts +1 -0
- package/dist/tools/gitWrite.d.ts +11 -0
- package/dist/tools/github/actions.d.ts +2 -0
- package/dist/tools/github/composite.d.ts +4 -1
- package/dist/tools/github/composite.js +7 -7
- package/dist/tools/github/composite.js.map +1 -1
- package/dist/tools/github/issues.d.ts +4 -0
- package/dist/tools/github/pr.d.ts +13 -6
- package/dist/tools/github/pr.js +18 -11
- package/dist/tools/github/pr.js.map +1 -1
- package/dist/tools/handoffNote.d.ts +1 -0
- package/dist/tools/handoffNote.js +2 -1
- package/dist/tools/handoffNote.js.map +1 -1
- package/dist/tools/headless/lspClient.js +3 -0
- package/dist/tools/headless/lspClient.js.map +1 -1
- package/dist/tools/hoverAtCursor.d.ts +1 -0
- package/dist/tools/httpClient.d.ts +2 -0
- package/dist/tools/httpClient.js +38 -71
- package/dist/tools/httpClient.js.map +1 -1
- package/dist/tools/index.js +14 -10
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/inlayHints.d.ts +1 -0
- package/dist/tools/launchQuickTask.d.ts +1 -0
- package/dist/tools/listClaudeTasks.d.ts +1 -0
- package/dist/tools/listClaudeTasks.js +10 -8
- package/dist/tools/listClaudeTasks.js.map +1 -1
- package/dist/tools/listTerminals.d.ts +1 -0
- package/dist/tools/lsp.d.ts +15 -0
- package/dist/tools/lsp.js +17 -0
- package/dist/tools/lsp.js.map +1 -1
- package/dist/tools/navigateToSymbolByName.d.ts +1 -0
- package/dist/tools/openDiff.d.ts +1 -0
- package/dist/tools/openDiff.js +4 -1
- package/dist/tools/openDiff.js.map +1 -1
- package/dist/tools/openFile.d.ts +1 -0
- package/dist/tools/openFile.js +4 -1
- package/dist/tools/openFile.js.map +1 -1
- package/dist/tools/openInBrowser.js +6 -1
- package/dist/tools/openInBrowser.js.map +1 -1
- package/dist/tools/organizeImports.d.ts +1 -0
- package/dist/tools/organizeImports.js +5 -3
- package/dist/tools/organizeImports.js.map +1 -1
- package/dist/tools/performanceReport.js +5 -3
- package/dist/tools/performanceReport.js.map +1 -1
- package/dist/tools/planPersistence.d.ts +3 -0
- package/dist/tools/planPersistence.js +4 -1
- package/dist/tools/planPersistence.js.map +1 -1
- package/dist/tools/previewEdit.d.ts +1 -0
- package/dist/tools/previewEdit.js +31 -5
- package/dist/tools/previewEdit.js.map +1 -1
- package/dist/tools/recentTracesDigest.js +54 -11
- package/dist/tools/recentTracesDigest.js.map +1 -1
- package/dist/tools/refactorAnalyze.d.ts +1 -0
- package/dist/tools/refactorExtractFunction.js +4 -1
- package/dist/tools/refactorExtractFunction.js.map +1 -1
- package/dist/tools/refactorPreview.d.ts +1 -0
- package/dist/tools/refactorPreview.js +10 -2
- package/dist/tools/refactorPreview.js.map +1 -1
- package/dist/tools/replaceBlock.d.ts +1 -0
- package/dist/tools/replaceBlock.js +2 -1
- package/dist/tools/replaceBlock.js.map +1 -1
- package/dist/tools/resumeClaudeTask.d.ts +1 -0
- package/dist/tools/runClaudeTask.d.ts +1 -0
- package/dist/tools/runTests.js +15 -4
- package/dist/tools/runTests.js.map +1 -1
- package/dist/tools/screenshot.d.ts +1 -0
- package/dist/tools/screenshotAndAnnotate.js +6 -2
- package/dist/tools/screenshotAndAnnotate.js.map +1 -1
- package/dist/tools/searchAndReplace.d.ts +1 -0
- package/dist/tools/searchAndReplace.js +21 -12
- package/dist/tools/searchAndReplace.js.map +1 -1
- package/dist/tools/searchTools.d.ts +26 -0
- package/dist/tools/searchTools.js +62 -21
- package/dist/tools/searchTools.js.map +1 -1
- package/dist/tools/searchWorkspace.d.ts +1 -0
- package/dist/tools/selectionRanges.d.ts +1 -0
- package/dist/tools/semanticTokens.d.ts +1 -0
- package/dist/tools/signatureHelp.d.ts +1 -0
- package/dist/tools/spawnWorkspace.js +15 -7
- package/dist/tools/spawnWorkspace.js.map +1 -1
- package/dist/tools/terminal.d.ts +6 -0
- package/dist/tools/testRunners/pytest.js +6 -2
- package/dist/tools/testRunners/pytest.js.map +1 -1
- package/dist/tools/testRunners/vitestJest.js +3 -1
- package/dist/tools/testRunners/vitestJest.js.map +1 -1
- package/dist/tools/testTraceToSource.d.ts +1 -0
- package/dist/tools/transaction.d.ts +13 -1
- package/dist/tools/transaction.js +63 -5
- package/dist/tools/transaction.js.map +1 -1
- package/dist/tools/typeHierarchy.d.ts +1 -0
- package/dist/tools/utils.d.ts +33 -0
- package/dist/tools/utils.js +122 -18
- package/dist/tools/utils.js.map +1 -1
- package/dist/tools/vscodeCommands.d.ts +2 -0
- package/dist/tools/vscodeTasks.d.ts +2 -0
- package/dist/tools/workspaceSettings.d.ts +1 -0
- package/dist/transport.d.ts +3 -1
- package/dist/transport.js +126 -52
- package/dist/transport.js.map +1 -1
- package/dist/winShim.d.ts +34 -0
- package/dist/winShim.js +94 -0
- package/dist/winShim.js.map +1 -0
- package/dist/wireHaltPushDispatch.d.ts +38 -0
- package/dist/wireHaltPushDispatch.js +71 -0
- package/dist/wireHaltPushDispatch.js.map +1 -0
- package/dist/writeFileAtomic.d.ts +23 -0
- package/dist/writeFileAtomic.js +121 -0
- package/dist/writeFileAtomic.js.map +1 -0
- package/package.json +23 -7
- package/scripts/postinstall.mjs +42 -2
- package/scripts/smoke/run-all.mjs +213 -0
- package/scripts/start-all.mjs +572 -0
- package/scripts/start-all.ps1 +209 -0
- package/scripts/start-all.sh +73 -17
- package/scripts/start-orchestrator.ps1 +158 -0
- package/scripts/start-remote.mjs +122 -0
- package/templates/automation-policies/recipe-authoring.json +1 -1
- package/templates/automation-policies/security-first.json +1 -1
- package/templates/automation-policies/strict-lint.json +1 -1
- package/templates/automation-policies/test-driven.json +1 -1
- package/templates/automation-policy.example.json +1 -1
- package/templates/co.patchwork-os.bridge.plist +2 -2
- package/templates/recipes/approval-queue-ui-test.yaml +1 -1
- package/templates/recipes/ctx-loop-test.yaml +1 -1
- package/templates/recipes/fix-errors-on-save.yaml +71 -0
- package/templates/recipes/morning-brief.yaml +5 -2
- package/templates/recipes/project-health-check.yaml +4 -1
- package/templates/recipes/sentry-to-linear.yaml +72 -38
- package/templates/recipes/webhook/apple-watch-health-log.yaml +145 -0
- package/templates/recipes/webhook/customer-escalation.yaml +8 -9
- package/templates/recipes/webhook/meeting-prep.yaml +11 -5
- package/dist/commands/marketplace.d.ts +0 -16
- package/dist/commands/marketplace.js +0 -32
- package/dist/commands/marketplace.js.map +0 -1
- package/dist/recipes/legacyRecipeCompat.d.ts +0 -10
- package/dist/recipes/legacyRecipeCompat.js +0 -131
- package/dist/recipes/legacyRecipeCompat.js.map +0 -1
|
@@ -61,6 +61,14 @@ export declare class CommitIssueLinkLog {
|
|
|
61
61
|
private readonly file;
|
|
62
62
|
private readonly memoryCap;
|
|
63
63
|
private readonly now;
|
|
64
|
+
/**
|
|
65
|
+
* Highest file size seen so far. ADR-0007 tail-on-read: every
|
|
66
|
+
* `query()` re-stats the file; if it grew, we re-parse and merge
|
|
67
|
+
* any rows with `seq > this.seq` (so a sibling bridge's appends
|
|
68
|
+
* become visible without holding a separate offset cursor). Matches
|
|
69
|
+
* the pattern already in `src/runLog.ts:syncFromDisk`.
|
|
70
|
+
*/
|
|
71
|
+
private lastFileSize;
|
|
64
72
|
constructor(opts: LinkLogOptions);
|
|
65
73
|
/**
|
|
66
74
|
* Record one link. De-duplicates against the most recent existing row for
|
|
@@ -81,5 +89,13 @@ export declare class CommitIssueLinkLog {
|
|
|
81
89
|
* against the un-rotated file.
|
|
82
90
|
*/
|
|
83
91
|
private rotateDisk;
|
|
92
|
+
/**
|
|
93
|
+
* Incrementally read any new lines appended to the file since last
|
|
94
|
+
* load. Matches the runLog `syncFromDisk` pattern: re-read whole
|
|
95
|
+
* file, but use the `seq > this.seq` guard so existing rows aren't
|
|
96
|
+
* re-pushed. Tail-on-read (ADR-0007) — sibling-bridge appends are
|
|
97
|
+
* picked up at the next `query()`.
|
|
98
|
+
*/
|
|
99
|
+
private syncFromDisk;
|
|
84
100
|
private loadExisting;
|
|
85
101
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { appendFileSync, mkdirSync, readFileSync, statSync
|
|
1
|
+
import { appendFileSync, mkdirSync, readFileSync, statSync } from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { withFileLockSync } from "./fileLockSync.js";
|
|
4
|
+
import { writeFileAtomicSync } from "./writeFileAtomic.js";
|
|
3
5
|
const DEFAULT_MEMORY_CAP = 2_000;
|
|
4
6
|
/**
|
|
5
7
|
* Disk rotation thresholds. Mirrors RecipeRunLog: without rotation a busy
|
|
@@ -16,6 +18,14 @@ export class CommitIssueLinkLog {
|
|
|
16
18
|
file;
|
|
17
19
|
memoryCap;
|
|
18
20
|
now;
|
|
21
|
+
/**
|
|
22
|
+
* Highest file size seen so far. ADR-0007 tail-on-read: every
|
|
23
|
+
* `query()` re-stats the file; if it grew, we re-parse and merge
|
|
24
|
+
* any rows with `seq > this.seq` (so a sibling bridge's appends
|
|
25
|
+
* become visible without holding a separate offset cursor). Matches
|
|
26
|
+
* the pattern already in `src/runLog.ts:syncFromDisk`.
|
|
27
|
+
*/
|
|
28
|
+
lastFileSize = 0;
|
|
19
29
|
constructor(opts) {
|
|
20
30
|
this.opts = opts;
|
|
21
31
|
this.file = path.join(opts.dir, "commit_issue_links.jsonl");
|
|
@@ -66,26 +76,32 @@ export class CommitIssueLinkLog {
|
|
|
66
76
|
return link;
|
|
67
77
|
}
|
|
68
78
|
query(q = {}) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
79
|
+
// ADR-0007 tail-on-read: pick up any rows a sibling bridge appended
|
|
80
|
+
// since our last query / load. statSync-only when no growth.
|
|
81
|
+
this.syncFromDisk();
|
|
82
|
+
const sha = q.sha;
|
|
83
|
+
const ref = q.ref;
|
|
84
|
+
const workspace = q.workspace;
|
|
85
|
+
const linkType = q.linkType;
|
|
86
|
+
const resolved = q.resolved;
|
|
87
|
+
const after = q.after;
|
|
88
|
+
const out = [];
|
|
89
|
+
for (const l of this.links) {
|
|
90
|
+
if (sha && !(l.sha === sha || (sha.length >= 7 && l.sha.startsWith(sha))))
|
|
91
|
+
continue;
|
|
92
|
+
if (ref && l.ref !== ref)
|
|
93
|
+
continue;
|
|
94
|
+
if (workspace && l.workspace !== workspace)
|
|
95
|
+
continue;
|
|
96
|
+
if (linkType && l.linkType !== linkType)
|
|
97
|
+
continue;
|
|
98
|
+
if (resolved !== undefined && l.resolved !== resolved)
|
|
99
|
+
continue;
|
|
100
|
+
if (after !== undefined && l.seq <= after)
|
|
101
|
+
continue;
|
|
102
|
+
out.push(l);
|
|
103
|
+
}
|
|
104
|
+
out.sort((a, b) => b.seq - a.seq);
|
|
89
105
|
const limit = Math.min(Math.max(q.limit ?? 100, 1), 1_000);
|
|
90
106
|
return out.slice(0, limit);
|
|
91
107
|
}
|
|
@@ -115,7 +131,24 @@ export class CommitIssueLinkLog {
|
|
|
115
131
|
if (code !== "ENOENT")
|
|
116
132
|
throw err;
|
|
117
133
|
}
|
|
118
|
-
|
|
134
|
+
// Per-file lock — ADR-0007 multi-bridge concurrency. See the
|
|
135
|
+
// matching block in src/decisionTraceLog.ts for the full
|
|
136
|
+
// rationale; same pattern.
|
|
137
|
+
withFileLockSync(this.file, () => {
|
|
138
|
+
appendFileSync(this.file, `${JSON.stringify(link)}\n`, { mode: 0o600 });
|
|
139
|
+
// Advance the tail-on-read cursor past our own write so the next
|
|
140
|
+
// query() doesn't re-read the row from disk (we already pushed it
|
|
141
|
+
// to this.links in `record`). The seq-gt guard in syncFromDisk
|
|
142
|
+
// would also defend, but bumping the size cursor lets that path
|
|
143
|
+
// short-circuit on `size <= lastFileSize` and skip a readFileSync.
|
|
144
|
+
try {
|
|
145
|
+
this.lastFileSize = statSync(this.file).size;
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
/* ENOENT after a successful append is very unlikely; if it
|
|
149
|
+
happens the next syncFromDisk re-tries cleanly. */
|
|
150
|
+
}
|
|
151
|
+
});
|
|
119
152
|
}
|
|
120
153
|
catch (err) {
|
|
121
154
|
this.opts.logger?.warn?.(`[linklog] append failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -145,19 +178,71 @@ export class CommitIssueLinkLog {
|
|
|
145
178
|
lines = [];
|
|
146
179
|
joined = "";
|
|
147
180
|
}
|
|
148
|
-
|
|
181
|
+
writeFileAtomicSync(this.file, joined.length > 0 ? `${joined}\n` : "", {
|
|
149
182
|
mode: 0o600,
|
|
150
183
|
});
|
|
184
|
+
// Refresh the tail-on-read cursor to the post-rotation file size.
|
|
185
|
+
// Without this, the next syncFromDisk() would see `size <
|
|
186
|
+
// lastFileSize`, skip the read entirely, and miss every row a
|
|
187
|
+
// sibling bridge has appended since.
|
|
188
|
+
try {
|
|
189
|
+
this.lastFileSize = statSync(this.file).size;
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
this.lastFileSize = 0;
|
|
193
|
+
}
|
|
151
194
|
}
|
|
152
195
|
catch (err) {
|
|
153
196
|
this.opts.logger?.warn?.(`[linklog] rotate failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
154
197
|
}
|
|
155
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Incrementally read any new lines appended to the file since last
|
|
201
|
+
* load. Matches the runLog `syncFromDisk` pattern: re-read whole
|
|
202
|
+
* file, but use the `seq > this.seq` guard so existing rows aren't
|
|
203
|
+
* re-pushed. Tail-on-read (ADR-0007) — sibling-bridge appends are
|
|
204
|
+
* picked up at the next `query()`.
|
|
205
|
+
*/
|
|
206
|
+
syncFromDisk() {
|
|
207
|
+
try {
|
|
208
|
+
const size = statSync(this.file).size;
|
|
209
|
+
if (size <= this.lastFileSize)
|
|
210
|
+
return;
|
|
211
|
+
const raw = readFileSync(this.file, "utf-8");
|
|
212
|
+
for (const line of raw.split("\n")) {
|
|
213
|
+
if (!line)
|
|
214
|
+
continue;
|
|
215
|
+
try {
|
|
216
|
+
const parsed = JSON.parse(line);
|
|
217
|
+
if (typeof parsed.seq !== "number" ||
|
|
218
|
+
typeof parsed.sha !== "string" ||
|
|
219
|
+
typeof parsed.ref !== "string") {
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
if (parsed.seq > this.seq) {
|
|
223
|
+
this.seq = parsed.seq;
|
|
224
|
+
this.links.push(parsed);
|
|
225
|
+
if (this.links.length > this.memoryCap)
|
|
226
|
+
this.links.shift();
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
/* skip malformed */
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
this.lastFileSize = size;
|
|
234
|
+
}
|
|
235
|
+
catch {
|
|
236
|
+
/* file may not exist yet */
|
|
237
|
+
}
|
|
238
|
+
}
|
|
156
239
|
loadExisting() {
|
|
240
|
+
let size;
|
|
157
241
|
try {
|
|
158
|
-
statSync(this.file);
|
|
242
|
+
size = statSync(this.file).size;
|
|
159
243
|
}
|
|
160
244
|
catch {
|
|
245
|
+
this.lastFileSize = 0;
|
|
161
246
|
return;
|
|
162
247
|
}
|
|
163
248
|
let raw;
|
|
@@ -186,6 +271,7 @@ export class CommitIssueLinkLog {
|
|
|
186
271
|
// skip malformed line
|
|
187
272
|
}
|
|
188
273
|
}
|
|
274
|
+
this.lastFileSize = size;
|
|
189
275
|
if (this.links.length > this.memoryCap) {
|
|
190
276
|
this.links.splice(0, this.links.length - this.memoryCap);
|
|
191
277
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commitIssueLinkLog.js","sourceRoot":"","sources":["../src/commitIssueLinkLog.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"commitIssueLinkLog.js","sourceRoot":"","sources":["../src/commitIssueLinkLog.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,13 +12,15 @@ export const COMPANIONS = {
|
|
|
12
12
|
description: "Persistent memory across Claude sessions",
|
|
13
13
|
npmPackage: "@modelcontextprotocol/server-memory",
|
|
14
14
|
command: "npx",
|
|
15
|
-
|
|
15
|
+
// Pinned: npm view @modelcontextprotocol/server-memory version → 2026.1.26 (2026-05-23)
|
|
16
|
+
args: ["-y", "@modelcontextprotocol/server-memory@2026.1.26"],
|
|
16
17
|
},
|
|
17
18
|
superpowers: {
|
|
18
19
|
description: "Structured planning, task decomposition",
|
|
19
20
|
npmPackage: "superpowers-mcp",
|
|
20
21
|
command: "npx",
|
|
21
|
-
|
|
22
|
+
// Pinned: npm view superpowers-mcp version → 4.3.2 (2026-05-23)
|
|
23
|
+
args: ["-y", "superpowers-mcp@4.3.2"],
|
|
22
24
|
},
|
|
23
25
|
// To connect to an existing Chrome instead of auto-launching:
|
|
24
26
|
// add --browser-url http://127.0.0.1:9222 to args.
|
|
@@ -26,13 +28,15 @@ export const COMPANIONS = {
|
|
|
26
28
|
description: "Full Chrome browser control — automate, debug, inspect network/console/performance",
|
|
27
29
|
npmPackage: "chrome-devtools-mcp",
|
|
28
30
|
command: "npx",
|
|
29
|
-
|
|
31
|
+
// Pinned: npm view chrome-devtools-mcp version → 1.0.1 (2026-05-23)
|
|
32
|
+
args: ["-y", "chrome-devtools-mcp@1.0.1"],
|
|
30
33
|
},
|
|
31
34
|
database: {
|
|
32
35
|
description: "Multi-database query tools (Postgres, MySQL, SQLite, SQL Server, MariaDB)",
|
|
33
36
|
npmPackage: "@bytebase/dbhub",
|
|
34
37
|
command: "npx",
|
|
35
|
-
|
|
38
|
+
// Pinned: npm view @bytebase/dbhub version → 0.21.2 (2026-05-23)
|
|
39
|
+
args: ["-y", "@bytebase/dbhub@0.21.2", "--transport", "stdio"],
|
|
36
40
|
requiredEnv: { DSN: "<postgresql://user:pass@localhost/mydb>" },
|
|
37
41
|
postInstallMessage: "Replace the DSN placeholder in claude_desktop_config.json with your real connection string,\n" +
|
|
38
42
|
"or use: claude-ide-bridge install database --env DSN=postgresql://user:pass@localhost/mydb\n" +
|
|
@@ -42,7 +46,8 @@ export const COMPANIONS = {
|
|
|
42
46
|
description: "Post Slack messages from automation hooks (onPullRequest, onGitPush, etc.)",
|
|
43
47
|
npmPackage: "slack-mcp-server",
|
|
44
48
|
command: "npx",
|
|
45
|
-
|
|
49
|
+
// Pinned: npm view slack-mcp-server version → 1.3.0 (2026-05-23)
|
|
50
|
+
args: ["-y", "slack-mcp-server@1.3.0"],
|
|
46
51
|
requiredEnv: {
|
|
47
52
|
SLACK_BOT_TOKEN: "<xoxb-your-token>",
|
|
48
53
|
SLACK_TEAM_ID: "<T00000000>",
|
|
@@ -54,7 +59,8 @@ export const COMPANIONS = {
|
|
|
54
59
|
description: "AI-driven browser automation — navigate, click, fill forms, screenshot (e2e testing)",
|
|
55
60
|
npmPackage: "@playwright/mcp",
|
|
56
61
|
command: "npx",
|
|
57
|
-
|
|
62
|
+
// Pinned: npm view @playwright/mcp version → 0.0.75 (2026-05-23)
|
|
63
|
+
args: ["-y", "@playwright/mcp@0.0.75"],
|
|
58
64
|
postInstallMessage: "Browsers must be installed separately:\n npx playwright install chromium",
|
|
59
65
|
},
|
|
60
66
|
"codebase-memory": {
|
|
@@ -63,7 +69,9 @@ export const COMPANIONS = {
|
|
|
63
69
|
command: "codebase-memory-mcp",
|
|
64
70
|
args: [],
|
|
65
71
|
skipNpmInstall: true,
|
|
66
|
-
postInstallMessage:
|
|
72
|
+
postInstallMessage:
|
|
73
|
+
// WARNING: curl|bash install has no integrity check — replace with versioned npm package when available on npm
|
|
74
|
+
"Install the binary first (not on npm):\n" +
|
|
67
75
|
" curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash\n" +
|
|
68
76
|
"Then restart Claude Desktop.",
|
|
69
77
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/companions/registry.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sDAAsD;AACtD,wCAAwC;AACxC,oBAAoB;AACpB,wBAAwB;AACxB,oBAAoB;AACpB,qBAAqB;AACrB,oBAAoB;AACpB,uEAAuE;AAcvE,MAAM,CAAC,MAAM,UAAU,GAAmC;IACxD,MAAM,EAAE;QACN,WAAW,EAAE,0CAA0C;QACvD,UAAU,EAAE,qCAAqC;QACjD,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/companions/registry.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sDAAsD;AACtD,wCAAwC;AACxC,oBAAoB;AACpB,wBAAwB;AACxB,oBAAoB;AACpB,qBAAqB;AACrB,oBAAoB;AACpB,uEAAuE;AAcvE,MAAM,CAAC,MAAM,UAAU,GAAmC;IACxD,MAAM,EAAE;QACN,WAAW,EAAE,0CAA0C;QACvD,UAAU,EAAE,qCAAqC;QACjD,OAAO,EAAE,KAAK;QACd,wFAAwF;QACxF,IAAI,EAAE,CAAC,IAAI,EAAE,+CAA+C,CAAC;KAC9D;IACD,WAAW,EAAE;QACX,WAAW,EAAE,yCAAyC;QACtD,UAAU,EAAE,iBAAiB;QAC7B,OAAO,EAAE,KAAK;QACd,gEAAgE;QAChE,IAAI,EAAE,CAAC,IAAI,EAAE,uBAAuB,CAAC;KACtC;IACD,8DAA8D;IAC9D,mDAAmD;IACnD,QAAQ,EAAE;QACR,WAAW,EACT,oFAAoF;QACtF,UAAU,EAAE,qBAAqB;QACjC,OAAO,EAAE,KAAK;QACd,oEAAoE;QACpE,IAAI,EAAE,CAAC,IAAI,EAAE,2BAA2B,CAAC;KAC1C;IACD,QAAQ,EAAE;QACR,WAAW,EACT,2EAA2E;QAC7E,UAAU,EAAE,iBAAiB;QAC7B,OAAO,EAAE,KAAK;QACd,iEAAiE;QACjE,IAAI,EAAE,CAAC,IAAI,EAAE,wBAAwB,EAAE,aAAa,EAAE,OAAO,CAAC;QAC9D,WAAW,EAAE,EAAE,GAAG,EAAE,yCAAyC,EAAE;QAC/D,kBAAkB,EAChB,+FAA+F;YAC/F,8FAA8F;YAC9F,gFAAgF;KACnF;IACD,KAAK,EAAE;QACL,WAAW,EACT,4EAA4E;QAC9E,UAAU,EAAE,kBAAkB;QAC9B,OAAO,EAAE,KAAK;QACd,iEAAiE;QACjE,IAAI,EAAE,CAAC,IAAI,EAAE,wBAAwB,CAAC;QACtC,WAAW,EAAE;YACX,eAAe,EAAE,mBAAmB;YACpC,aAAa,EAAE,aAAa;SAC7B;QACD,kBAAkB,EAChB,4EAA4E;YAC5E,iGAAiG;KACpG;IACD,UAAU,EAAE;QACV,WAAW,EACT,sFAAsF;QACxF,UAAU,EAAE,iBAAiB;QAC7B,OAAO,EAAE,KAAK;QACd,iEAAiE;QACjE,IAAI,EAAE,CAAC,IAAI,EAAE,wBAAwB,CAAC;QACtC,kBAAkB,EAChB,2EAA2E;KAC9E;IACD,iBAAiB,EAAE;QACjB,WAAW,EACT,qGAAqG;QACvG,UAAU,EAAE,qBAAqB;QACjC,OAAO,EAAE,qBAAqB;QAC9B,IAAI,EAAE,EAAE;QACR,cAAc,EAAE,IAAI;QACpB,kBAAkB;QAChB,+GAA+G;QAC/G,0CAA0C;YAC1C,sGAAsG;YACtG,8BAA8B;KACjC;CACF,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -21,6 +21,13 @@ export interface Config {
|
|
|
21
21
|
antBinary: string;
|
|
22
22
|
automationEnabled: boolean;
|
|
23
23
|
automationPolicyPath: string | null;
|
|
24
|
+
/**
|
|
25
|
+
* When true, webhook hooks may target private / non-loopback addresses
|
|
26
|
+
* (RFC1918, link-local, etc.). Default false — loopback + public hosts
|
|
27
|
+
* only. Same shape the SSRF guard in `VsCodeBackend.postWebhook` checks.
|
|
28
|
+
* Set with `--automation-allow-private-webhooks`.
|
|
29
|
+
*/
|
|
30
|
+
automationAllowPrivateWebhooks: boolean;
|
|
24
31
|
toolRateLimit: number;
|
|
25
32
|
/** Patchwork: gate tool dispatch on human approval via dashboard. "high" = only high-risk tools (default-safe); "all" = every tool; "off" = disabled. */
|
|
26
33
|
approvalGate: "off" | "high" | "all";
|
|
@@ -36,6 +43,16 @@ export interface Config {
|
|
|
36
43
|
managedSettingsPath: string | null;
|
|
37
44
|
/** Patchwork: outbound webhook URL for approval queue notifications (from dashboard.webhookUrl in patchwork config). */
|
|
38
45
|
approvalWebhookUrl: string | null;
|
|
46
|
+
/**
|
|
47
|
+
* Patchwork mobile-oversight push relay (FCM/APNS gateway). Seeded from
|
|
48
|
+
* `~/.patchwork/config.json`; previously only set by POST /settings, so
|
|
49
|
+
* push config was lost on every restart.
|
|
50
|
+
*/
|
|
51
|
+
pushServiceUrl: string | null;
|
|
52
|
+
pushServiceToken: string | null;
|
|
53
|
+
pushServiceBaseUrl: string | null;
|
|
54
|
+
ntfyTopic: string | null;
|
|
55
|
+
ntfyServer: string | null;
|
|
39
56
|
watch: boolean;
|
|
40
57
|
plugins: string[];
|
|
41
58
|
pluginWatch: boolean;
|
|
@@ -43,10 +60,25 @@ export interface Config {
|
|
|
43
60
|
db: boolean;
|
|
44
61
|
allowPrivateHttp: boolean;
|
|
45
62
|
fixedToken: string | null;
|
|
63
|
+
/**
|
|
64
|
+
* Shared secret for HMAC-SHA256 verification of GitHub-style webhooks
|
|
65
|
+
* at POST /hooks/*. When set, requests presenting a valid
|
|
66
|
+
* `X-Hub-Signature-256: sha256=<hex>` header are authenticated via HMAC
|
|
67
|
+
* instead of Bearer token. Bearer-token access to /hooks/* still works
|
|
68
|
+
* (additive, backwards-compatible). null when feature disabled.
|
|
69
|
+
*/
|
|
70
|
+
webhookSecret: string | null;
|
|
46
71
|
issuerUrl: string | null;
|
|
47
72
|
/** Access token TTL in milliseconds (derived from oauthTokenTtlDays config; default 24h). */
|
|
48
73
|
oauthTokenTtlMs: number;
|
|
49
74
|
corsOrigins: string[];
|
|
75
|
+
/**
|
|
76
|
+
* IPs of trusted reverse proxies. When the immediate socket peer is one
|
|
77
|
+
* of these, the bridge honors the X-Forwarded-For header for per-IP
|
|
78
|
+
* rate-limit bucketing on the phone-path approval bypass. Empty by
|
|
79
|
+
* default; X-Forwarded-For from an untrusted peer is ignored.
|
|
80
|
+
*/
|
|
81
|
+
trustedProxies: string[];
|
|
50
82
|
auditLogPath: string | null;
|
|
51
83
|
fullMode: boolean;
|
|
52
84
|
maxSessions: number;
|
|
@@ -76,8 +108,19 @@ export declare const VPS_ALLOWLIST_EXTRAS: string[];
|
|
|
76
108
|
*/
|
|
77
109
|
export declare const DB_ALLOWLIST_EXTRAS: string[];
|
|
78
110
|
/** Commands that can execute arbitrary code via flags like -e, -c, --eval.
|
|
79
|
-
* These are blocked from the default allowlist
|
|
111
|
+
* These are blocked from the default allowlist and from --allow-command /
|
|
112
|
+
* commandAllowlist additions. Entries are bare names; Windows extensions
|
|
113
|
+
* (`.exe` / `.cmd` / `.bat` / `.com` / `.ps1`) are stripped before lookup
|
|
114
|
+
* by `isInterpreterCommand()`. */
|
|
80
115
|
export declare const INTERPRETER_COMMANDS: Set<string>;
|
|
116
|
+
/**
|
|
117
|
+
* Case-insensitive interpreter check that also strips Windows executable
|
|
118
|
+
* extensions and any leading path. Defends against bypass attempts like:
|
|
119
|
+
* --allow-command node.exe
|
|
120
|
+
* --allow-command C:\\Windows\\System32\\cmd.exe
|
|
121
|
+
* --allow-command Powershell.EXE
|
|
122
|
+
*/
|
|
123
|
+
export declare function isInterpreterCommand(cmd: string): boolean;
|
|
81
124
|
export declare function findEditor(): string | null;
|
|
82
125
|
/** Exported for testing. Maps an editor CLI command to its human-readable IDE name. */
|
|
83
126
|
export declare function ideNameFromEditor(editorCommand: string): string;
|
|
@@ -97,18 +140,19 @@ interface ConfigFile {
|
|
|
97
140
|
ideName?: string;
|
|
98
141
|
autoTmux?: boolean;
|
|
99
142
|
driver?: "subprocess" | "api" | "openai" | "grok" | "gemini" | "gemini-api" | "local" | "none";
|
|
100
|
-
/** @deprecated Use driver instead. */
|
|
101
|
-
claudeDriver?: "subprocess" | "api" | "openai" | "grok" | "gemini" | "gemini-api" | "local" | "none";
|
|
102
143
|
claudeBinary?: string;
|
|
103
144
|
antBinary?: string;
|
|
104
145
|
automationEnabled?: boolean;
|
|
105
146
|
automationPolicyPath?: string;
|
|
147
|
+
automationAllowPrivateWebhooks?: boolean;
|
|
106
148
|
plugins?: string[];
|
|
107
149
|
pluginWatch?: boolean;
|
|
108
150
|
fixedToken?: string;
|
|
151
|
+
webhookSecret?: string;
|
|
109
152
|
issuerUrl?: string;
|
|
110
153
|
oauthTokenTtlDays?: number;
|
|
111
154
|
corsOrigins?: string[];
|
|
155
|
+
trustedProxies?: string[];
|
|
112
156
|
fullMode?: boolean;
|
|
113
157
|
maxSessions?: number;
|
|
114
158
|
githubDefaultRepo?: string;
|