patchwork-os 0.2.0-beta.9.canary.92 → 1.1.0-beta.1
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 +15 -16
- package/README.md +46 -458
- package/dist/activationMetrics.js +2 -3
- package/dist/activationMetrics.js.map +1 -1
- package/dist/activityLog.d.ts +1 -0
- package/dist/activityLog.js +8 -3
- package/dist/activityLog.js.map +1 -1
- package/dist/adapters/gemini.js +2 -2
- package/dist/adapters/gemini.js.map +1 -1
- package/dist/adapters/grok.js +6 -1
- package/dist/adapters/grok.js.map +1 -1
- package/dist/adapters/openai.js +4 -0
- package/dist/adapters/openai.js.map +1 -1
- package/dist/approvalHttp.d.ts +9 -0
- package/dist/approvalHttp.js +210 -171
- package/dist/approvalHttp.js.map +1 -1
- package/dist/approvalKpi.d.ts +102 -0
- package/dist/approvalKpi.js +282 -0
- package/dist/approvalKpi.js.map +1 -0
- package/dist/approvalQueue.d.ts +1 -1
- package/dist/approvalQueue.js.map +1 -1
- package/dist/automation.d.ts +45 -4
- package/dist/automation.js +123 -15
- package/dist/automation.js.map +1 -1
- package/dist/bridge.d.ts +10 -0
- package/dist/bridge.js +225 -46
- package/dist/bridge.js.map +1 -1
- package/dist/bridgeLockDiscovery.d.ts +16 -1
- package/dist/bridgeLockDiscovery.js +38 -4
- package/dist/bridgeLockDiscovery.js.map +1 -1
- package/dist/bridgeToolsRules.js +3 -18
- package/dist/bridgeToolsRules.js.map +1 -1
- package/dist/claudeAuthHttp.d.ts +25 -0
- package/dist/claudeAuthHttp.js +219 -0
- package/dist/claudeAuthHttp.js.map +1 -0
- package/dist/claudeDriver.js +4 -1
- package/dist/claudeDriver.js.map +1 -1
- package/dist/claudeOrchestrator.d.ts +15 -0
- package/dist/claudeOrchestrator.js +44 -0
- package/dist/claudeOrchestrator.js.map +1 -1
- 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/install.js +3 -10
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/launchd.d.ts +7 -0
- package/dist/commands/launchd.js +20 -2
- package/dist/commands/launchd.js.map +1 -1
- package/dist/commands/patchworkInit.d.ts +7 -0
- package/dist/commands/patchworkInit.js +26 -0
- package/dist/commands/patchworkInit.js.map +1 -1
- package/dist/commands/recipe.d.ts +59 -4
- package/dist/commands/recipe.js +206 -5
- package/dist/commands/recipe.js.map +1 -1
- package/dist/commands/recipeInstall.d.ts +9 -0
- package/dist/commands/recipeInstall.js +56 -3
- package/dist/commands/recipeInstall.js.map +1 -1
- package/dist/commands/task.d.ts +25 -0
- package/dist/commands/task.js +61 -41
- package/dist/commands/task.js.map +1 -1
- package/dist/commands/tokenEfficiency.d.ts +4 -0
- package/dist/commands/tokenEfficiency.js +23 -26
- package/dist/commands/tokenEfficiency.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/config.js +16 -0
- package/dist/config.js.map +1 -1
- package/dist/connectorRoutes.js +613 -62
- package/dist/connectorRoutes.js.map +1 -1
- package/dist/connectors/asana.js +9 -3
- package/dist/connectors/asana.js.map +1 -1
- package/dist/connectors/baseConnector.d.ts +16 -0
- package/dist/connectors/baseConnector.js +2 -0
- package/dist/connectors/baseConnector.js.map +1 -1
- package/dist/connectors/caldiy.js +34 -0
- package/dist/connectors/caldiy.js.map +1 -1
- package/dist/connectors/confluence.js +9 -2
- package/dist/connectors/confluence.js.map +1 -1
- package/dist/connectors/connectorActivity.d.ts +24 -0
- package/dist/connectors/connectorActivity.js +32 -0
- package/dist/connectors/connectorActivity.js.map +1 -0
- package/dist/connectors/connectorRedirectUri.js +22 -2
- package/dist/connectors/connectorRedirectUri.js.map +1 -1
- package/dist/connectors/connectorRegistry.d.ts +0 -3
- package/dist/connectors/connectorRegistry.js +8 -8
- package/dist/connectors/connectorRegistry.js.map +1 -1
- package/dist/connectors/datadog.js +8 -1
- package/dist/connectors/datadog.js.map +1 -1
- package/dist/connectors/discord.js +4 -3
- package/dist/connectors/discord.js.map +1 -1
- package/dist/connectors/elasticsearch.js +22 -0
- package/dist/connectors/elasticsearch.js.map +1 -1
- package/dist/connectors/github.d.ts +38 -0
- package/dist/connectors/github.js +91 -5
- package/dist/connectors/github.js.map +1 -1
- package/dist/connectors/gitlab.js +19 -16
- package/dist/connectors/gitlab.js.map +1 -1
- package/dist/connectors/gmail.d.ts +5 -0
- package/dist/connectors/gmail.js +53 -11
- package/dist/connectors/gmail.js.map +1 -1
- package/dist/connectors/googleCalendar.js +5 -4
- package/dist/connectors/googleCalendar.js.map +1 -1
- package/dist/connectors/googleDocs.js +7 -6
- package/dist/connectors/googleDocs.js.map +1 -1
- package/dist/connectors/googleDrive.js +15 -8
- package/dist/connectors/googleDrive.js.map +1 -1
- package/dist/connectors/grafana.js +39 -3
- package/dist/connectors/grafana.js.map +1 -1
- package/dist/connectors/jira.d.ts +1 -1
- package/dist/connectors/jira.js +19 -4
- package/dist/connectors/jira.js.map +1 -1
- package/dist/connectors/linear.js +2 -2
- package/dist/connectors/linear.js.map +1 -1
- package/dist/connectors/mcpClient.d.ts +29 -1
- package/dist/connectors/mcpClient.js +114 -44
- package/dist/connectors/mcpClient.js.map +1 -1
- package/dist/connectors/mcpOAuth.d.ts +1 -0
- package/dist/connectors/mcpOAuth.js +49 -4
- package/dist/connectors/mcpOAuth.js.map +1 -1
- package/dist/connectors/monday.js +5 -4
- package/dist/connectors/monday.js.map +1 -1
- package/dist/connectors/mongodb.js +32 -5
- package/dist/connectors/mongodb.js.map +1 -1
- package/dist/connectors/notion.d.ts +1 -1
- package/dist/connectors/notion.js +22 -6
- package/dist/connectors/notion.js.map +1 -1
- package/dist/connectors/oauthError.d.ts +17 -0
- package/dist/connectors/oauthError.js +50 -0
- package/dist/connectors/oauthError.js.map +1 -0
- package/dist/connectors/postgres.d.ts +7 -0
- package/dist/connectors/postgres.js +32 -2
- package/dist/connectors/postgres.js.map +1 -1
- package/dist/connectors/posthog.js +26 -0
- package/dist/connectors/posthog.js.map +1 -1
- package/dist/connectors/redis.d.ts +1 -0
- package/dist/connectors/redis.js +47 -20
- package/dist/connectors/redis.js.map +1 -1
- package/dist/connectors/salesforce.js +66 -5
- package/dist/connectors/salesforce.js.map +1 -1
- package/dist/connectors/sentry.js +2 -2
- package/dist/connectors/sentry.js.map +1 -1
- package/dist/connectors/slack.js +37 -14
- package/dist/connectors/slack.js.map +1 -1
- package/dist/connectors/snowflake.js +24 -0
- package/dist/connectors/snowflake.js.map +1 -1
- package/dist/connectors/stripe.js +9 -2
- package/dist/connectors/stripe.js.map +1 -1
- package/dist/connectors/supabase.js +34 -0
- package/dist/connectors/supabase.js.map +1 -1
- package/dist/connectors/tokenStorage.d.ts +20 -0
- package/dist/connectors/tokenStorage.js +196 -64
- package/dist/connectors/tokenStorage.js.map +1 -1
- package/dist/connectors/woocommerce.js +34 -0
- package/dist/connectors/woocommerce.js.map +1 -1
- package/dist/copilot/parseIntent.d.ts +58 -0
- package/dist/copilot/parseIntent.js +149 -0
- package/dist/copilot/parseIntent.js.map +1 -0
- package/dist/decisionReplay.d.ts +8 -6
- package/dist/decisionReplay.js +35 -11
- package/dist/decisionReplay.js.map +1 -1
- package/dist/decisionTraceLog.d.ts +9 -0
- package/dist/decisionTraceLog.js +6 -0
- package/dist/decisionTraceLog.js.map +1 -1
- package/dist/drivers/claude/api.js +49 -7
- package/dist/drivers/claude/api.js.map +1 -1
- package/dist/drivers/claude/envSanitizer.d.ts +9 -1
- package/dist/drivers/claude/envSanitizer.js +41 -3
- package/dist/drivers/claude/envSanitizer.js.map +1 -1
- package/dist/drivers/claude/streamParser.d.ts +13 -0
- package/dist/drivers/claude/streamParser.js.map +1 -1
- package/dist/drivers/claude/subprocess.js +131 -16
- package/dist/drivers/claude/subprocess.js.map +1 -1
- package/dist/drivers/claude/subprocessSettings.d.ts +1 -1
- package/dist/drivers/claude/subprocessSettings.js +18 -4
- package/dist/drivers/claude/subprocessSettings.js.map +1 -1
- package/dist/drivers/gemini/index.d.ts +13 -0
- package/dist/drivers/gemini/index.js +211 -67
- package/dist/drivers/gemini/index.js.map +1 -1
- package/dist/drivers/local/index.d.ts +2 -17
- package/dist/drivers/local/index.js +5 -92
- package/dist/drivers/local/index.js.map +1 -1
- package/dist/drivers/openai/index.js +69 -9
- package/dist/drivers/openai/index.js.map +1 -1
- package/dist/drivers/outputCap.d.ts +27 -0
- package/dist/drivers/outputCap.js +50 -0
- package/dist/drivers/outputCap.js.map +1 -0
- package/dist/embeddings/cosine.d.ts +23 -0
- package/dist/embeddings/cosine.js +59 -0
- package/dist/embeddings/cosine.js.map +1 -0
- package/dist/embeddings/index.d.ts +19 -0
- package/dist/embeddings/index.js +35 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/embeddings/localEmbeddings.d.ts +29 -0
- package/dist/embeddings/localEmbeddings.js +103 -0
- package/dist/embeddings/localEmbeddings.js.map +1 -0
- package/dist/embeddings/localEndpoints.d.ts +24 -0
- package/dist/embeddings/localEndpoints.js +37 -0
- package/dist/embeddings/localEndpoints.js.map +1 -0
- package/dist/embeddings/types.d.ts +32 -0
- package/dist/embeddings/types.js +12 -0
- package/dist/embeddings/types.js.map +1 -0
- package/dist/featureFlags.d.ts +18 -0
- package/dist/featureFlags.js +32 -0
- package/dist/featureFlags.js.map +1 -1
- package/dist/fp/automationInterpreter.js +118 -39
- package/dist/fp/automationInterpreter.js.map +1 -1
- package/dist/fp/automationProgram.d.ts +10 -0
- package/dist/fp/automationProgram.js.map +1 -1
- package/dist/fp/automationState.d.ts +6 -0
- package/dist/fp/automationState.js +38 -0
- package/dist/fp/automationState.js.map +1 -1
- package/dist/fp/commandDescription.d.ts +6 -0
- package/dist/fp/commandDescription.js +18 -5
- package/dist/fp/commandDescription.js.map +1 -1
- package/dist/fp/interpreterContext.d.ts +16 -5
- package/dist/fp/interpreterContext.js +59 -3
- package/dist/fp/interpreterContext.js.map +1 -1
- package/dist/fp/policyParser.js +18 -8
- package/dist/fp/policyParser.js.map +1 -1
- package/dist/haltPushDispatch.d.ts +4 -0
- package/dist/haltPushDispatch.js +7 -22
- package/dist/haltPushDispatch.js.map +1 -1
- package/dist/inboxRoutes.js +2 -2
- package/dist/inboxRoutes.js.map +1 -1
- package/dist/index.js +672 -135
- package/dist/index.js.map +1 -1
- package/dist/installGuard.js +6 -0
- 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/mcpRoutes.js +1 -1
- package/dist/mcpRoutes.js.map +1 -1
- package/dist/oauth.d.ts +13 -0
- package/dist/oauth.js +53 -9
- package/dist/oauth.js.map +1 -1
- package/dist/orchestrator/childBridgeClient.d.ts +7 -0
- package/dist/orchestrator/childBridgeClient.js +42 -1
- package/dist/orchestrator/childBridgeClient.js.map +1 -1
- package/dist/orchestrator/orchestratorBridge.d.ts +33 -0
- package/dist/orchestrator/orchestratorBridge.js +75 -9
- package/dist/orchestrator/orchestratorBridge.js.map +1 -1
- package/dist/patchworkConfig.d.ts +4 -0
- package/dist/patchworkConfig.js +33 -4
- package/dist/patchworkConfig.js.map +1 -1
- package/dist/probe.js +39 -5
- package/dist/probe.js.map +1 -1
- package/dist/recipeOrchestration.d.ts +59 -0
- package/dist/recipeOrchestration.js +314 -60
- package/dist/recipeOrchestration.js.map +1 -1
- package/dist/recipeRoutes.d.ts +93 -0
- package/dist/recipeRoutes.js +664 -27
- package/dist/recipeRoutes.js.map +1 -1
- package/dist/recipes/RecipeOrchestrator.d.ts +14 -0
- package/dist/recipes/RecipeOrchestrator.js +42 -2
- package/dist/recipes/RecipeOrchestrator.js.map +1 -1
- package/dist/recipes/agentExecutor.d.ts +51 -2
- package/dist/recipes/agentExecutor.js +86 -13
- package/dist/recipes/agentExecutor.js.map +1 -1
- package/dist/recipes/chainedRunner.d.ts +111 -3
- package/dist/recipes/chainedRunner.js +440 -45
- package/dist/recipes/chainedRunner.js.map +1 -1
- package/dist/recipes/compiler.js +42 -29
- package/dist/recipes/compiler.js.map +1 -1
- package/dist/recipes/connectorPreflight.js +31 -0
- package/dist/recipes/connectorPreflight.js.map +1 -1
- package/dist/recipes/dependencyGraph.d.ts +16 -0
- package/dist/recipes/dependencyGraph.js +37 -2
- package/dist/recipes/dependencyGraph.js.map +1 -1
- package/dist/recipes/eventTriggerPrograms.d.ts +36 -0
- package/dist/recipes/eventTriggerPrograms.js +158 -0
- package/dist/recipes/eventTriggerPrograms.js.map +1 -0
- package/dist/recipes/githubInstallSource.d.ts +9 -2
- package/dist/recipes/githubInstallSource.js +36 -6
- package/dist/recipes/githubInstallSource.js.map +1 -1
- package/dist/recipes/haltCategory.d.ts +10 -0
- package/dist/recipes/haltCategory.js +11 -1
- package/dist/recipes/haltCategory.js.map +1 -1
- package/dist/recipes/idempotencyKey.d.ts +30 -3
- package/dist/recipes/idempotencyKey.js +89 -5
- package/dist/recipes/idempotencyKey.js.map +1 -1
- package/dist/recipes/installer.js +12 -35
- package/dist/recipes/installer.js.map +1 -1
- package/dist/recipes/judgeVerdict.d.ts +11 -1
- package/dist/recipes/judgeVerdict.js +47 -7
- package/dist/recipes/judgeVerdict.js.map +1 -1
- package/dist/recipes/names.d.ts +5 -0
- package/dist/recipes/names.js +10 -5
- package/dist/recipes/names.js.map +1 -1
- package/dist/recipes/parser.js +74 -10
- package/dist/recipes/parser.js.map +1 -1
- package/dist/recipes/pricing/costRouter.d.ts +43 -0
- package/dist/recipes/pricing/costRouter.js +44 -0
- package/dist/recipes/pricing/costRouter.js.map +1 -0
- package/dist/recipes/pricing/priceTable.d.ts +76 -0
- package/dist/recipes/pricing/priceTable.js +144 -0
- package/dist/recipes/pricing/priceTable.js.map +1 -0
- package/dist/recipes/replayRun.js +5 -2
- package/dist/recipes/replayRun.js.map +1 -1
- package/dist/recipes/resolveRecipePath.js +15 -1
- package/dist/recipes/resolveRecipePath.js.map +1 -1
- package/dist/recipes/runBudget.d.ts +93 -32
- package/dist/recipes/runBudget.js +213 -49
- package/dist/recipes/runBudget.js.map +1 -1
- package/dist/recipes/runRegistry.d.ts +32 -0
- package/dist/recipes/runRegistry.js +54 -0
- package/dist/recipes/runRegistry.js.map +1 -0
- package/dist/recipes/scheduler.js +6 -2
- package/dist/recipes/scheduler.js.map +1 -1
- package/dist/recipes/schema.d.ts +59 -6
- package/dist/recipes/schemaGenerator.d.ts +9 -0
- package/dist/recipes/schemaGenerator.js +446 -77
- package/dist/recipes/schemaGenerator.js.map +1 -1
- package/dist/recipes/simulation/aggregateRunRisk.d.ts +46 -0
- package/dist/recipes/simulation/aggregateRunRisk.js +120 -0
- package/dist/recipes/simulation/aggregateRunRisk.js.map +1 -0
- package/dist/recipes/simulation/costProjector.d.ts +32 -0
- package/dist/recipes/simulation/costProjector.js +194 -0
- package/dist/recipes/simulation/costProjector.js.map +1 -0
- package/dist/recipes/simulation/sideEffects.d.ts +32 -0
- package/dist/recipes/simulation/sideEffects.js +62 -0
- package/dist/recipes/simulation/sideEffects.js.map +1 -0
- package/dist/recipes/simulation/simulate.d.ts +36 -0
- package/dist/recipes/simulation/simulate.js +264 -0
- package/dist/recipes/simulation/simulate.js.map +1 -0
- package/dist/recipes/simulation/simulateMockedRun.d.ts +52 -0
- package/dist/recipes/simulation/simulateMockedRun.js +84 -0
- package/dist/recipes/simulation/simulateMockedRun.js.map +1 -0
- package/dist/recipes/simulation/synthesizeMockedOutputs.d.ts +31 -0
- package/dist/recipes/simulation/synthesizeMockedOutputs.js +50 -0
- package/dist/recipes/simulation/synthesizeMockedOutputs.js.map +1 -0
- package/dist/recipes/simulation/types.d.ts +198 -0
- package/dist/recipes/simulation/types.js +30 -0
- package/dist/recipes/simulation/types.js.map +1 -0
- package/dist/recipes/stepObservation.d.ts +12 -0
- package/dist/recipes/stepObservation.js +21 -1
- package/dist/recipes/stepObservation.js.map +1 -1
- package/dist/recipes/toolRegistry.js +61 -24
- package/dist/recipes/toolRegistry.js.map +1 -1
- package/dist/recipes/tools/airtable.d.ts +15 -0
- package/dist/recipes/tools/airtable.js +240 -0
- package/dist/recipes/tools/airtable.js.map +1 -0
- package/dist/recipes/tools/caldiy.d.ts +13 -0
- package/dist/recipes/tools/caldiy.js +215 -0
- package/dist/recipes/tools/caldiy.js.map +1 -0
- package/dist/recipes/tools/circleci.d.ts +10 -0
- package/dist/recipes/tools/circleci.js +204 -0
- package/dist/recipes/tools/circleci.js.map +1 -0
- package/dist/recipes/tools/cloudflare.d.ts +13 -0
- package/dist/recipes/tools/cloudflare.js +211 -0
- package/dist/recipes/tools/cloudflare.js.map +1 -0
- package/dist/recipes/tools/confluence.js +11 -10
- package/dist/recipes/tools/confluence.js.map +1 -1
- package/dist/recipes/tools/datadog.js +13 -12
- package/dist/recipes/tools/datadog.js.map +1 -1
- package/dist/recipes/tools/docs.d.ts +18 -0
- package/dist/recipes/tools/docs.js +95 -0
- package/dist/recipes/tools/docs.js.map +1 -0
- package/dist/recipes/tools/elasticsearch.d.ts +11 -0
- package/dist/recipes/tools/elasticsearch.js +157 -0
- package/dist/recipes/tools/elasticsearch.js.map +1 -0
- package/dist/recipes/tools/fanOut.js +4 -4
- package/dist/recipes/tools/fanOut.js.map +1 -1
- package/dist/recipes/tools/figma.d.ts +12 -0
- package/dist/recipes/tools/figma.js +195 -0
- package/dist/recipes/tools/figma.js.map +1 -0
- package/dist/recipes/tools/file.js +43 -22
- package/dist/recipes/tools/file.js.map +1 -1
- package/dist/recipes/tools/github.js +162 -5
- package/dist/recipes/tools/github.js.map +1 -1
- package/dist/recipes/tools/gmail.js +45 -33
- package/dist/recipes/tools/gmail.js.map +1 -1
- package/dist/recipes/tools/grafana.d.ts +11 -0
- package/dist/recipes/tools/grafana.js +216 -0
- package/dist/recipes/tools/grafana.js.map +1 -0
- package/dist/recipes/tools/http.d.ts +1 -1
- package/dist/recipes/tools/http.js +10 -28
- package/dist/recipes/tools/http.js.map +1 -1
- package/dist/recipes/tools/hubspot.js +13 -12
- package/dist/recipes/tools/hubspot.js.map +1 -1
- package/dist/recipes/tools/index.d.ts +28 -0
- package/dist/recipes/tools/index.js +28 -0
- package/dist/recipes/tools/index.js.map +1 -1
- package/dist/recipes/tools/intercom.js +11 -10
- package/dist/recipes/tools/intercom.js.map +1 -1
- package/dist/recipes/tools/jira.js +13 -0
- package/dist/recipes/tools/jira.js.map +1 -1
- package/dist/recipes/tools/meetingNotes.js +2 -2
- package/dist/recipes/tools/monday.d.ts +22 -0
- package/dist/recipes/tools/monday.js +242 -0
- package/dist/recipes/tools/monday.js.map +1 -0
- package/dist/recipes/tools/mongodb.d.ts +19 -0
- package/dist/recipes/tools/mongodb.js +194 -0
- package/dist/recipes/tools/mongodb.js.map +1 -0
- package/dist/recipes/tools/notion.js +11 -10
- package/dist/recipes/tools/notion.js.map +1 -1
- package/dist/recipes/tools/obsidian.d.ts +15 -0
- package/dist/recipes/tools/obsidian.js +173 -0
- package/dist/recipes/tools/obsidian.js.map +1 -0
- package/dist/recipes/tools/outcomes.d.ts +15 -0
- package/dist/recipes/tools/outcomes.js +111 -0
- package/dist/recipes/tools/outcomes.js.map +1 -0
- package/dist/recipes/tools/paystack.d.ts +11 -0
- package/dist/recipes/tools/paystack.js +212 -0
- package/dist/recipes/tools/paystack.js.map +1 -0
- package/dist/recipes/tools/pipedrive.d.ts +16 -0
- package/dist/recipes/tools/pipedrive.js +234 -0
- package/dist/recipes/tools/pipedrive.js.map +1 -0
- package/dist/recipes/tools/postgres.d.ts +15 -0
- package/dist/recipes/tools/postgres.js +186 -0
- package/dist/recipes/tools/postgres.js.map +1 -0
- package/dist/recipes/tools/posthog.d.ts +16 -0
- package/dist/recipes/tools/posthog.js +219 -0
- package/dist/recipes/tools/posthog.js.map +1 -0
- package/dist/recipes/tools/redis.d.ts +9 -0
- package/dist/recipes/tools/redis.js +141 -0
- package/dist/recipes/tools/redis.js.map +1 -0
- package/dist/recipes/tools/resend.d.ts +8 -0
- package/dist/recipes/tools/resend.js +153 -0
- package/dist/recipes/tools/resend.js.map +1 -0
- package/dist/recipes/tools/salesforce.d.ts +16 -0
- package/dist/recipes/tools/salesforce.js +184 -0
- package/dist/recipes/tools/salesforce.js.map +1 -0
- package/dist/recipes/tools/sendgrid.d.ts +9 -0
- package/dist/recipes/tools/sendgrid.js +175 -0
- package/dist/recipes/tools/sendgrid.js.map +1 -0
- package/dist/recipes/tools/shopify.d.ts +16 -0
- package/dist/recipes/tools/shopify.js +266 -0
- package/dist/recipes/tools/shopify.js.map +1 -0
- package/dist/recipes/tools/snowflake.d.ts +16 -0
- package/dist/recipes/tools/snowflake.js +173 -0
- package/dist/recipes/tools/snowflake.js.map +1 -0
- package/dist/recipes/tools/stripe.js +13 -12
- package/dist/recipes/tools/stripe.js.map +1 -1
- package/dist/recipes/tools/supabase.d.ts +9 -0
- package/dist/recipes/tools/supabase.js +133 -0
- package/dist/recipes/tools/supabase.js.map +1 -0
- package/dist/recipes/tools/todoist.d.ts +15 -0
- package/dist/recipes/tools/todoist.js +228 -0
- package/dist/recipes/tools/todoist.js.map +1 -0
- package/dist/recipes/tools/twilio.d.ts +11 -0
- package/dist/recipes/tools/twilio.js +180 -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 +146 -0
- package/dist/recipes/tools/vercel.js.map +1 -0
- package/dist/recipes/tools/webflow.d.ts +11 -0
- package/dist/recipes/tools/webflow.js +244 -0
- package/dist/recipes/tools/webflow.js.map +1 -0
- package/dist/recipes/tools/woocommerce.d.ts +18 -0
- package/dist/recipes/tools/woocommerce.js +260 -0
- package/dist/recipes/tools/woocommerce.js.map +1 -0
- package/dist/recipes/tools/wrapConnectorExecute.d.ts +25 -0
- package/dist/recipes/tools/wrapConnectorExecute.js +37 -0
- package/dist/recipes/tools/wrapConnectorExecute.js.map +1 -0
- package/dist/recipes/tools/zendesk.js +11 -10
- package/dist/recipes/tools/zendesk.js.map +1 -1
- package/dist/recipes/triggerVars.d.ts +15 -0
- package/dist/recipes/triggerVars.js +57 -0
- package/dist/recipes/triggerVars.js.map +1 -0
- package/dist/recipes/validation.d.ts +1 -1
- package/dist/recipes/validation.js +536 -12
- package/dist/recipes/validation.js.map +1 -1
- package/dist/recipes/yamlPositions.d.ts +1 -1
- package/dist/recipes/yamlPositions.js +7 -2
- package/dist/recipes/yamlPositions.js.map +1 -1
- package/dist/recipes/yamlRunner.d.ts +216 -4
- package/dist/recipes/yamlRunner.js +1030 -96
- package/dist/recipes/yamlRunner.js.map +1 -1
- package/dist/recipesHttp.d.ts +5 -0
- package/dist/recipesHttp.js +68 -6
- package/dist/recipesHttp.js.map +1 -1
- package/dist/resources.js +14 -1
- package/dist/resources.js.map +1 -1
- package/dist/riskSignals.d.ts +42 -0
- package/dist/riskSignals.js +197 -0
- package/dist/riskSignals.js.map +1 -0
- package/dist/riskTier.d.ts +9 -0
- package/dist/riskTier.js +48 -0
- package/dist/riskTier.js.map +1 -1
- package/dist/runLog.d.ts +53 -0
- package/dist/runLog.js +75 -16
- package/dist/runLog.js.map +1 -1
- package/dist/schemas/recipe.v1.json +360 -16
- package/dist/server.d.ts +60 -0
- package/dist/server.js +192 -31
- package/dist/server.js.map +1 -1
- package/dist/sessionCheckpoint.js +4 -1
- package/dist/sessionCheckpoint.js.map +1 -1
- package/dist/sessionDetail.d.ts +43 -0
- package/dist/sessionDetail.js +59 -0
- package/dist/sessionDetail.js.map +1 -0
- package/dist/settingsEnv.d.ts +47 -0
- package/dist/settingsEnv.js +88 -0
- package/dist/settingsEnv.js.map +1 -0
- package/dist/streamableHttp.js +44 -10
- package/dist/streamableHttp.js.map +1 -1
- package/dist/ta/backtest/abnday.d.ts +53 -0
- package/dist/ta/backtest/abnday.js +123 -0
- package/dist/ta/backtest/abnday.js.map +1 -0
- package/dist/ta/backtest/directional.d.ts +48 -0
- package/dist/ta/backtest/directional.js +103 -0
- package/dist/ta/backtest/directional.js.map +1 -0
- package/dist/ta/backtest/fundx.d.ts +67 -0
- package/dist/ta/backtest/fundx.js +264 -0
- package/dist/ta/backtest/fundx.js.map +1 -0
- package/dist/ta/backtest/fvg.d.ts +62 -0
- package/dist/ta/backtest/fvg.js +236 -0
- package/dist/ta/backtest/fvg.js.map +1 -0
- package/dist/ta/backtest/ichimoku.d.ts +41 -0
- package/dist/ta/backtest/ichimoku.js +146 -0
- package/dist/ta/backtest/ichimoku.js.map +1 -0
- package/dist/ta/backtest/ingest.d.ts +20 -0
- package/dist/ta/backtest/ingest.js +104 -0
- package/dist/ta/backtest/ingest.js.map +1 -0
- package/dist/ta/backtest/msb.d.ts +49 -0
- package/dist/ta/backtest/msb.js +162 -0
- package/dist/ta/backtest/msb.js.map +1 -0
- package/dist/ta/backtest/scoring.d.ts +33 -0
- package/dist/ta/backtest/scoring.js +82 -0
- package/dist/ta/backtest/scoring.js.map +1 -0
- package/dist/ta/backtest/summary.d.ts +20 -0
- package/dist/ta/backtest/summary.js +42 -0
- package/dist/ta/backtest/summary.js.map +1 -0
- package/dist/ta/backtest/tsmom.d.ts +72 -0
- package/dist/ta/backtest/tsmom.js +202 -0
- package/dist/ta/backtest/tsmom.js.map +1 -0
- package/dist/ta/backtest/volsq.d.ts +34 -0
- package/dist/ta/backtest/volsq.js +154 -0
- package/dist/ta/backtest/volsq.js.map +1 -0
- package/dist/ta/backtest/walkForward.d.ts +45 -0
- package/dist/ta/backtest/walkForward.js +136 -0
- package/dist/ta/backtest/walkForward.js.map +1 -0
- package/dist/ta/cycles.d.ts +15 -0
- package/dist/ta/cycles.js +31 -0
- package/dist/ta/cycles.js.map +1 -0
- package/dist/ta/desk/accrualEmitter.d.ts +59 -0
- package/dist/ta/desk/accrualEmitter.js +136 -0
- package/dist/ta/desk/accrualEmitter.js.map +1 -0
- package/dist/ta/desk/cellBacktest.d.ts +179 -0
- package/dist/ta/desk/cellBacktest.js +514 -0
- package/dist/ta/desk/cellBacktest.js.map +1 -0
- package/dist/ta/desk/cells/wpMaRejection.d.ts +49 -0
- package/dist/ta/desk/cells/wpMaRejection.js +141 -0
- package/dist/ta/desk/cells/wpMaRejection.js.map +1 -0
- package/dist/ta/desk/cells/wpVolumeClimax.d.ts +57 -0
- package/dist/ta/desk/cells/wpVolumeClimax.js +193 -0
- package/dist/ta/desk/cells/wpVolumeClimax.js.map +1 -0
- package/dist/ta/desk/collectors.d.ts +18 -0
- package/dist/ta/desk/collectors.js +450 -0
- package/dist/ta/desk/collectors.js.map +1 -0
- package/dist/ta/desk/contract.d.ts +51 -0
- package/dist/ta/desk/contract.js +261 -0
- package/dist/ta/desk/contract.js.map +1 -0
- package/dist/ta/desk/deskLedger.d.ts +36 -0
- package/dist/ta/desk/deskLedger.js +239 -0
- package/dist/ta/desk/deskLedger.js.map +1 -0
- package/dist/ta/desk/liqTape.d.ts +37 -0
- package/dist/ta/desk/liqTape.js +99 -0
- package/dist/ta/desk/liqTape.js.map +1 -0
- package/dist/ta/desk/post.d.ts +20 -0
- package/dist/ta/desk/post.js +65 -0
- package/dist/ta/desk/post.js.map +1 -0
- package/dist/ta/desk/render.d.ts +25 -0
- package/dist/ta/desk/render.js +398 -0
- package/dist/ta/desk/render.js.map +1 -0
- package/dist/ta/desk/surfaces.d.ts +216 -0
- package/dist/ta/desk/surfaces.js +472 -0
- package/dist/ta/desk/surfaces.js.map +1 -0
- package/dist/ta/desk/types.d.ts +174 -0
- package/dist/ta/desk/types.js +104 -0
- package/dist/ta/desk/types.js.map +1 -0
- package/dist/ta/index.d.ts +23 -0
- package/dist/ta/index.js +54 -0
- package/dist/ta/index.js.map +1 -0
- package/dist/ta/ledger.d.ts +44 -0
- package/dist/ta/ledger.js +95 -0
- package/dist/ta/ledger.js.map +1 -0
- package/dist/ta/levels.d.ts +21 -0
- package/dist/ta/levels.js +41 -0
- package/dist/ta/levels.js.map +1 -0
- package/dist/ta/swings.d.ts +30 -0
- package/dist/ta/swings.js +83 -0
- package/dist/ta/swings.js.map +1 -0
- package/dist/ta/types.d.ts +81 -0
- package/dist/ta/types.js +20 -0
- package/dist/ta/types.js.map +1 -0
- package/dist/telemetry.js +20 -9
- package/dist/telemetry.js.map +1 -1
- package/dist/tokenUsageTracker.d.ts +2 -1
- package/dist/tokenUsageTracker.js +38 -20
- package/dist/tokenUsageTracker.js.map +1 -1
- package/dist/tools/contextBundle.js +13 -9
- package/dist/tools/contextBundle.js.map +1 -1
- package/dist/tools/ctxGetTaskContext.js +8 -3
- package/dist/tools/ctxGetTaskContext.js.map +1 -1
- package/dist/tools/ctxQueryTraces.d.ts +18 -1
- package/dist/tools/ctxQueryTraces.js +176 -27
- package/dist/tools/ctxQueryTraces.js.map +1 -1
- package/dist/tools/enrichCommit.js +5 -2
- package/dist/tools/enrichCommit.js.map +1 -1
- package/dist/tools/getDependencyTree.js +2 -2
- package/dist/tools/getDependencyTree.js.map +1 -1
- package/dist/tools/getDiagnostics.js +3 -0
- package/dist/tools/getDiagnostics.js.map +1 -1
- package/dist/tools/getDocumentSymbols.js +5 -1
- package/dist/tools/getDocumentSymbols.js.map +1 -1
- package/dist/tools/getGitHotspots.js +12 -1
- package/dist/tools/getGitHotspots.js.map +1 -1
- package/dist/tools/getGitLog.js +5 -2
- package/dist/tools/getGitLog.js.map +1 -1
- package/dist/tools/getGitStatus.js +6 -1
- package/dist/tools/getGitStatus.js.map +1 -1
- package/dist/tools/getProjectContext.js +3 -1
- package/dist/tools/getProjectContext.js.map +1 -1
- package/dist/tools/getToolCapabilities.js +39 -4
- package/dist/tools/getToolCapabilities.js.map +1 -1
- package/dist/tools/gitWrite.js +12 -3
- package/dist/tools/gitWrite.js.map +1 -1
- package/dist/tools/github/composite.d.ts +1 -1
- package/dist/tools/github/composite.js +7 -7
- package/dist/tools/github/composite.js.map +1 -1
- package/dist/tools/github/pr.d.ts +6 -6
- package/dist/tools/github/pr.js +18 -11
- package/dist/tools/github/pr.js.map +1 -1
- package/dist/tools/httpClient.js +55 -3
- package/dist/tools/httpClient.js.map +1 -1
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.js +19 -12
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/lsp.d.ts +6 -0
- package/dist/tools/lsp.js +81 -12
- package/dist/tools/lsp.js.map +1 -1
- package/dist/tools/previewEdit.js +16 -1
- package/dist/tools/previewEdit.js.map +1 -1
- package/dist/tools/resumeClaudeTask.js +17 -0
- package/dist/tools/resumeClaudeTask.js.map +1 -1
- package/dist/tools/searchAndReplace.js +9 -5
- package/dist/tools/searchAndReplace.js.map +1 -1
- package/dist/tools/searchTools.d.ts +26 -0
- package/dist/tools/searchTools.js +42 -2
- package/dist/tools/searchTools.js.map +1 -1
- package/dist/tools/terminal.js +23 -51
- package/dist/tools/terminal.js.map +1 -1
- package/dist/tools/transaction.d.ts +9 -1
- package/dist/tools/transaction.js +59 -4
- package/dist/tools/transaction.js.map +1 -1
- package/dist/tools/utils.d.ts +16 -0
- package/dist/tools/utils.js +77 -7
- package/dist/tools/utils.js.map +1 -1
- package/dist/transport.d.ts +31 -0
- package/dist/transport.js +117 -14
- package/dist/transport.js.map +1 -1
- package/dist/wireHaltPushDispatch.js +12 -0
- package/dist/wireHaltPushDispatch.js.map +1 -1
- package/dist/workerGateDecisionLog.d.ts +141 -0
- package/dist/workerGateDecisionLog.js +361 -0
- package/dist/workerGateDecisionLog.js.map +1 -0
- package/dist/workers/actionClass.d.ts +38 -0
- package/dist/workers/actionClass.js +155 -0
- package/dist/workers/actionClass.js.map +1 -0
- package/dist/workers/backtest.d.ts +68 -0
- package/dist/workers/backtest.js +113 -0
- package/dist/workers/backtest.js.map +1 -0
- package/dist/workers/contextRisk.d.ts +35 -0
- package/dist/workers/contextRisk.js +20 -0
- package/dist/workers/contextRisk.js.map +1 -0
- package/dist/workers/contextRiskScorer.d.ts +48 -0
- package/dist/workers/contextRiskScorer.js +94 -0
- package/dist/workers/contextRiskScorer.js.map +1 -0
- package/dist/workers/graduation.d.ts +61 -0
- package/dist/workers/graduation.js +112 -0
- package/dist/workers/graduation.js.map +1 -0
- package/dist/workers/outcomeStore.d.ts +98 -0
- package/dist/workers/outcomeStore.js +146 -0
- package/dist/workers/outcomeStore.js.map +1 -0
- package/dist/workers/outcomesCli.d.ts +34 -0
- package/dist/workers/outcomesCli.js +91 -0
- package/dist/workers/outcomesCli.js.map +1 -0
- package/dist/workers/runWorkerShadow.d.ts +90 -0
- package/dist/workers/runWorkerShadow.js +323 -0
- package/dist/workers/runWorkerShadow.js.map +1 -0
- package/dist/workers/shadowGate.d.ts +30 -0
- package/dist/workers/shadowGate.js +58 -0
- package/dist/workers/shadowGate.js.map +1 -0
- package/dist/workers/shadowObserver.d.ts +165 -0
- package/dist/workers/shadowObserver.js +203 -0
- package/dist/workers/shadowObserver.js.map +1 -0
- package/dist/workers/shadowReport.d.ts +16 -0
- package/dist/workers/shadowReport.js +61 -0
- package/dist/workers/shadowReport.js.map +1 -0
- package/dist/workers/shadowRun.d.ts +38 -0
- package/dist/workers/shadowRun.js +44 -0
- package/dist/workers/shadowRun.js.map +1 -0
- package/dist/workers/trustLevel.d.ts +82 -0
- package/dist/workers/trustLevel.js +100 -0
- package/dist/workers/trustLevel.js.map +1 -0
- package/dist/workers/worker.d.ts +49 -0
- package/dist/workers/worker.js +88 -0
- package/dist/workers/worker.js.map +1 -0
- package/dist/workers/workerGate.d.ts +101 -0
- package/dist/workers/workerGate.js +210 -0
- package/dist/workers/workerGate.js.map +1 -0
- package/dist/workers/workerLevelStore.d.ts +33 -0
- package/dist/workers/workerLevelStore.js +87 -0
- package/dist/workers/workerLevelStore.js.map +1 -0
- package/dist/workers/workerLoader.d.ts +7 -0
- package/dist/workers/workerLoader.js +31 -0
- package/dist/workers/workerLoader.js.map +1 -0
- package/dist/writeFileAtomic.js +40 -13
- package/dist/writeFileAtomic.js.map +1 -1
- package/package.json +14 -6
- package/scripts/mcp-stdio-shim.cjs +247 -87
- package/templates/CLAUDE.bridge.md +1 -1
- package/templates/recipes/dependency-bump.yaml +33 -0
- package/templates/recipes/incident-to-pr.yaml +187 -0
- package/templates/recipes/outcome-ingester.yaml +53 -0
- package/templates/recipes/release-notes.yaml +30 -0
- package/templates/recipes/triage-failing-tests-autofile.yaml +152 -0
- package/templates/recipes/triage-failing-tests.yaml +38 -0
- package/templates/workers/dependency-upkeep.worker.yaml +26 -0
- package/templates/workers/release-notes.worker.yaml +17 -0
- package/templates/workers/test-guardian.worker.yaml +24 -0
- package/deploy/README.md +0 -172
- package/deploy/bootstrap-new-vps.sh +0 -364
- package/deploy/bootstrap-vps.sh +0 -192
- package/deploy/claude-ide-bridge.service.template +0 -67
- package/deploy/claude-ide-bridge@.service +0 -31
- package/deploy/deploy-dashboard.sh +0 -198
- package/deploy/deploy-landing.sh +0 -136
- package/deploy/ecosystem.config.js.example +0 -36
- package/deploy/install-vps-service.sh +0 -240
- package/deploy/macos/README.md +0 -153
- package/deploy/macos/com.patchwork.bridge.plist.template +0 -54
- package/deploy/macos/com.patchwork.tunnel.plist.template +0 -76
- package/deploy/macos/install-mac-bridge.sh +0 -244
- package/deploy/macos/uninstall-mac-bridge.sh +0 -22
- package/deploy/nginx-claude-bridge.conf.template +0 -129
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ChildBridgeClient } from "./childBridgeClient.js";
|
|
1
2
|
import type { OrchestratorConfig } from "./orchestratorConfig.js";
|
|
2
3
|
export declare class OrchestratorBridge {
|
|
3
4
|
private config;
|
|
@@ -10,8 +11,40 @@ export declare class OrchestratorBridge {
|
|
|
10
11
|
private authToken;
|
|
11
12
|
private startedAt;
|
|
12
13
|
private healthTimer;
|
|
14
|
+
/** Re-entrancy guard for the health-probe loop. A single probe (ping +
|
|
15
|
+
* listTools across every child) can outlast healthIntervalMs; without this
|
|
16
|
+
* guard a fresh interval tick would start a second probe that races on the
|
|
17
|
+
* shared registry/clients state. Overlapping ticks are skipped. */
|
|
18
|
+
private probing;
|
|
13
19
|
constructor(config: OrchestratorConfig);
|
|
14
20
|
start(): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Reconcile a client map against the current registry bridges.
|
|
23
|
+
*
|
|
24
|
+
* Two leaks/correctness hazards are closed here:
|
|
25
|
+
* 1. Leaked clients — when a child's lock disappears, the registry drops it
|
|
26
|
+
* but its ChildBridgeClient (with live keepAlive http.Agent sockets)
|
|
27
|
+
* would otherwise linger in `clients` forever. Destroy + remove it.
|
|
28
|
+
* 2. Stale-token reuse — on PID/port reuse a child re-appears on the same
|
|
29
|
+
* port with a NEW authToken. The cached client still holds the old token
|
|
30
|
+
* and would authenticate wrong → the bridge is marked unhealthy forever.
|
|
31
|
+
* Destroy + recreate the client with the fresh token.
|
|
32
|
+
*
|
|
33
|
+
* Static + dependency-injected (createClient factory) so it can be unit
|
|
34
|
+
* tested without standing up an OrchestratorBridge.
|
|
35
|
+
*/
|
|
36
|
+
static reconcileClients(clients: Map<number, ChildBridgeClient>, bridges: Array<{
|
|
37
|
+
port: number;
|
|
38
|
+
authToken: string;
|
|
39
|
+
}>, createClient: (port: number, authToken: string) => ChildBridgeClient): void;
|
|
40
|
+
/**
|
|
41
|
+
* One health-probe tick: refresh the lock-file registry, then probe every
|
|
42
|
+
* child bridge. Guarded against re-entrancy — if the previous tick's
|
|
43
|
+
* probeAll() is still in flight (a slow ping + listTools across many bridges
|
|
44
|
+
* can outlast healthIntervalMs), this tick is skipped rather than racing on
|
|
45
|
+
* the shared registry/clients state.
|
|
46
|
+
*/
|
|
47
|
+
private runHealthTick;
|
|
15
48
|
private probeAll;
|
|
16
49
|
private handleConnection;
|
|
17
50
|
/**
|
|
@@ -43,6 +43,11 @@ export class OrchestratorBridge {
|
|
|
43
43
|
authToken;
|
|
44
44
|
startedAt = Date.now();
|
|
45
45
|
healthTimer = null;
|
|
46
|
+
/** Re-entrancy guard for the health-probe loop. A single probe (ping +
|
|
47
|
+
* listTools across every child) can outlast healthIntervalMs; without this
|
|
48
|
+
* guard a fresh interval tick would start a second probe that races on the
|
|
49
|
+
* shared registry/clients state. Overlapping ticks are skipped. */
|
|
50
|
+
probing = false;
|
|
46
51
|
constructor(config) {
|
|
47
52
|
this.config = config;
|
|
48
53
|
this.logger = new Logger(config.verbose, config.jsonl);
|
|
@@ -58,10 +63,7 @@ export class OrchestratorBridge {
|
|
|
58
63
|
// Initial health probe
|
|
59
64
|
await this.probeAll();
|
|
60
65
|
// Start health probe loop
|
|
61
|
-
this.healthTimer = setInterval(() =>
|
|
62
|
-
this.registry.refresh();
|
|
63
|
-
this.probeAll().catch((err) => this.logger.error("orchestrator health probe failed", { err }));
|
|
64
|
-
}, this.config.healthIntervalMs);
|
|
66
|
+
this.healthTimer = setInterval(() => this.runHealthTick(), this.config.healthIntervalMs);
|
|
65
67
|
this.healthTimer.unref();
|
|
66
68
|
// Start HTTP/WS server
|
|
67
69
|
this.server.on("connection", (ws) => this.handleConnection(ws));
|
|
@@ -74,8 +76,62 @@ export class OrchestratorBridge {
|
|
|
74
76
|
this.logger.info(`Orchestrator bridge ready on port ${this.config.port} (token: ${this.authToken.slice(0, 8)}...)`);
|
|
75
77
|
this.logger.info(`Monitoring ${this.registry.getAll().length} child bridge(s)`);
|
|
76
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Reconcile a client map against the current registry bridges.
|
|
81
|
+
*
|
|
82
|
+
* Two leaks/correctness hazards are closed here:
|
|
83
|
+
* 1. Leaked clients — when a child's lock disappears, the registry drops it
|
|
84
|
+
* but its ChildBridgeClient (with live keepAlive http.Agent sockets)
|
|
85
|
+
* would otherwise linger in `clients` forever. Destroy + remove it.
|
|
86
|
+
* 2. Stale-token reuse — on PID/port reuse a child re-appears on the same
|
|
87
|
+
* port with a NEW authToken. The cached client still holds the old token
|
|
88
|
+
* and would authenticate wrong → the bridge is marked unhealthy forever.
|
|
89
|
+
* Destroy + recreate the client with the fresh token.
|
|
90
|
+
*
|
|
91
|
+
* Static + dependency-injected (createClient factory) so it can be unit
|
|
92
|
+
* tested without standing up an OrchestratorBridge.
|
|
93
|
+
*/
|
|
94
|
+
static reconcileClients(clients, bridges, createClient) {
|
|
95
|
+
const livePorts = new Set(bridges.map((b) => b.port));
|
|
96
|
+
// (1) Drop clients whose port left the registry.
|
|
97
|
+
for (const [port, client] of clients) {
|
|
98
|
+
if (!livePorts.has(port)) {
|
|
99
|
+
client.destroy();
|
|
100
|
+
clients.delete(port);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// (2) Recreate clients whose authToken changed (PID/port reuse).
|
|
104
|
+
for (const b of bridges) {
|
|
105
|
+
const existing = clients.get(b.port);
|
|
106
|
+
if (existing && existing.token !== b.authToken) {
|
|
107
|
+
existing.destroy();
|
|
108
|
+
clients.set(b.port, createClient(b.port, b.authToken));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* One health-probe tick: refresh the lock-file registry, then probe every
|
|
114
|
+
* child bridge. Guarded against re-entrancy — if the previous tick's
|
|
115
|
+
* probeAll() is still in flight (a slow ping + listTools across many bridges
|
|
116
|
+
* can outlast healthIntervalMs), this tick is skipped rather than racing on
|
|
117
|
+
* the shared registry/clients state.
|
|
118
|
+
*/
|
|
119
|
+
runHealthTick() {
|
|
120
|
+
if (this.probing)
|
|
121
|
+
return;
|
|
122
|
+
this.probing = true;
|
|
123
|
+
this.registry.refresh();
|
|
124
|
+
this.probeAll()
|
|
125
|
+
.catch((err) => this.logger.error("orchestrator health probe failed", { err }))
|
|
126
|
+
.finally(() => {
|
|
127
|
+
this.probing = false;
|
|
128
|
+
});
|
|
129
|
+
}
|
|
77
130
|
async probeAll() {
|
|
78
131
|
const bridges = this.registry.getAll();
|
|
132
|
+
// Reconcile clients before probing: drop leaked clients for vanished
|
|
133
|
+
// bridges and recreate any whose authToken changed under PID/port reuse.
|
|
134
|
+
OrchestratorBridge.reconcileClients(this.clients, bridges, (port, authToken) => new ChildBridgeClient(port, authToken));
|
|
79
135
|
await Promise.all(bridges.map(async (b) => {
|
|
80
136
|
let client = this.clients.get(b.port);
|
|
81
137
|
if (!client) {
|
|
@@ -95,11 +151,16 @@ export class OrchestratorBridge {
|
|
|
95
151
|
// tool list changed (e.g., after a plugin reload in the child bridge).
|
|
96
152
|
const prevToolNames = b.tools.map((t) => t.name).join(",");
|
|
97
153
|
const tools = await client.listTools();
|
|
98
|
-
// If listTools() returned empty, the HTTP session init likely failed
|
|
99
|
-
//
|
|
100
|
-
// A real bridge always has at least
|
|
101
|
-
|
|
102
|
-
|
|
154
|
+
// If listTools() returned empty, the HTTP session init likely failed
|
|
155
|
+
// silently (e.g. the child's HTTP session expired and listTools
|
|
156
|
+
// swallowed the error returning []). A real bridge always has at least
|
|
157
|
+
// one tool registered, so treat ANY empty result as a probe miss —
|
|
158
|
+
// regardless of current health. Crucially we must NOT fall through to
|
|
159
|
+
// markHealthy(port, []) for an already-healthy bridge: that would wipe
|
|
160
|
+
// b.tools and deregister every proxied tool. Return early and let the
|
|
161
|
+
// next probe retry; the existing tool list is preserved.
|
|
162
|
+
if (tools.length === 0) {
|
|
163
|
+
this.logger.debug(`Bridge port ${b.port} (${b.ideName}) pinged alive but returned 0 tools — keeping previous tools, retrying next cycle`);
|
|
103
164
|
this.registry.keepWarm(b.port);
|
|
104
165
|
return;
|
|
105
166
|
}
|
|
@@ -303,6 +364,9 @@ export class OrchestratorBridge {
|
|
|
303
364
|
text: `[ORCHESTRATOR ERROR] No healthy bridge available to handle tool "${toolName}".\n${detail}`,
|
|
304
365
|
},
|
|
305
366
|
],
|
|
367
|
+
// Audit 2026-06-08 HIGH (orchestrator-1): tool-level failure must set
|
|
368
|
+
// isError (ADR-0004) or the MCP client treats it as a success.
|
|
369
|
+
isError: true,
|
|
306
370
|
};
|
|
307
371
|
}
|
|
308
372
|
const client = this.clients.get(targetPort);
|
|
@@ -314,6 +378,7 @@ export class OrchestratorBridge {
|
|
|
314
378
|
text: `[ORCHESTRATOR ERROR] Internal error: no client for bridge port ${targetPort}`,
|
|
315
379
|
},
|
|
316
380
|
],
|
|
381
|
+
isError: true,
|
|
317
382
|
};
|
|
318
383
|
}
|
|
319
384
|
try {
|
|
@@ -343,6 +408,7 @@ export class OrchestratorBridge {
|
|
|
343
408
|
].join("\n"),
|
|
344
409
|
},
|
|
345
410
|
],
|
|
411
|
+
isError: true,
|
|
346
412
|
};
|
|
347
413
|
}
|
|
348
414
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestratorBridge.js","sourceRoot":"","sources":["../../src/orchestrator/orchestratorBridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestratorBridge.js","sourceRoot":"","sources":["../../src/orchestrator/orchestratorBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ export interface PatchworkConfig {
|
|
|
17
17
|
};
|
|
18
18
|
localEndpoint?: string;
|
|
19
19
|
localModel?: string;
|
|
20
|
+
localEmbeddingsEndpoint?: string;
|
|
21
|
+
localEmbeddingsModel?: string;
|
|
20
22
|
dashboard?: {
|
|
21
23
|
port: number;
|
|
22
24
|
requireApproval: Array<"low" | "medium" | "high">;
|
|
@@ -94,6 +96,8 @@ export declare function saveApiKeyToSecureStore(provider: ApiKeyProvider, key: s
|
|
|
94
96
|
* render "key set" badges and gate the picker without ever seeing a raw key.
|
|
95
97
|
*/
|
|
96
98
|
export declare function getApiKeysPresent(): Record<ApiKeyProvider, boolean>;
|
|
99
|
+
/** Clear the loadConfig cache. Exposed for tests and after saveConfig. */
|
|
100
|
+
export declare function clearConfigCache(): void;
|
|
97
101
|
export declare function loadConfig(path?: string): PatchworkConfig;
|
|
98
102
|
export declare function saveConfig(config: PatchworkConfig, path?: string): void;
|
|
99
103
|
export declare function validateModelChoice(value: string): value is ModelChoice;
|
package/dist/patchworkConfig.js
CHANGED
|
@@ -51,9 +51,13 @@ function secretKeyFor(provider) {
|
|
|
51
51
|
export function saveApiKeyToSecureStore(provider, key) {
|
|
52
52
|
if (!key) {
|
|
53
53
|
deleteSecretJsonSync(secretKeyFor(provider));
|
|
54
|
-
return;
|
|
55
54
|
}
|
|
56
|
-
|
|
55
|
+
else {
|
|
56
|
+
storeSecretJsonSync(secretKeyFor(provider), { key });
|
|
57
|
+
}
|
|
58
|
+
// Secure-store change invalidates any cached loadConfig result that merged
|
|
59
|
+
// the old key values.
|
|
60
|
+
clearConfigCache();
|
|
57
61
|
}
|
|
58
62
|
function loadApiKeysFromSecureStore() {
|
|
59
63
|
const out = {};
|
|
@@ -82,12 +86,27 @@ export function getApiKeysPresent() {
|
|
|
82
86
|
}
|
|
83
87
|
return out;
|
|
84
88
|
}
|
|
89
|
+
// TTL-based cache for loadConfig results. loadConfig reads config.json + up to
|
|
90
|
+
// 4 provider .enc files (DPAPI spawn on Windows = 500–1500 ms each). A 30 s TTL
|
|
91
|
+
// cuts the per-webhook 9+ kernel-call burst to ~1 per 30 s at steady state.
|
|
92
|
+
const _configCache = new Map();
|
|
93
|
+
const _CONFIG_TTL_MS = 30_000;
|
|
94
|
+
/** Clear the loadConfig cache. Exposed for tests and after saveConfig. */
|
|
95
|
+
export function clearConfigCache() {
|
|
96
|
+
_configCache.clear();
|
|
97
|
+
}
|
|
85
98
|
export function loadConfig(path = defaultConfigPath()) {
|
|
99
|
+
const now = Date.now();
|
|
100
|
+
const cached = _configCache.get(path);
|
|
101
|
+
if (cached && now < cached.expires)
|
|
102
|
+
return cached.result;
|
|
86
103
|
if (!existsSync(path)) {
|
|
87
104
|
const fromStore = loadApiKeysFromSecureStore();
|
|
88
|
-
|
|
105
|
+
const result = Object.keys(fromStore).length > 0
|
|
89
106
|
? { ...DEFAULTS, apiKeys: fromStore }
|
|
90
107
|
: { ...DEFAULTS };
|
|
108
|
+
_configCache.set(path, { result, expires: now + _CONFIG_TTL_MS });
|
|
109
|
+
return result;
|
|
91
110
|
}
|
|
92
111
|
const raw = readFileSync(path, "utf8");
|
|
93
112
|
const parsed = JSON.parse(raw);
|
|
@@ -131,9 +150,19 @@ export function loadConfig(path = defaultConfigPath()) {
|
|
|
131
150
|
const apiKeys = Object.keys(fromStore).length > 0 || parsed.apiKeys
|
|
132
151
|
? { ...parsed.apiKeys, ...fromStore }
|
|
133
152
|
: undefined;
|
|
134
|
-
|
|
153
|
+
const result = {
|
|
154
|
+
...DEFAULTS,
|
|
155
|
+
...parsed,
|
|
156
|
+
...(apiKeys ? { apiKeys } : {}),
|
|
157
|
+
};
|
|
158
|
+
// Don't cache migrated configs — the file has just been rewritten; next load
|
|
159
|
+
// should see the stripped version. This path is once-per-key, not hot.
|
|
160
|
+
if (!migrated)
|
|
161
|
+
_configCache.set(path, { result, expires: now + _CONFIG_TTL_MS });
|
|
162
|
+
return result;
|
|
135
163
|
}
|
|
136
164
|
export function saveConfig(config, path = defaultConfigPath()) {
|
|
165
|
+
_configCache.delete(path); // invalidate before write so next load sees new content
|
|
137
166
|
mkdirSync(dirname(path), { recursive: true });
|
|
138
167
|
// Strip apiKeys before persisting — they belong in the secure store, never
|
|
139
168
|
// on disk. Defense in depth: even if a caller mutates cfg.apiKeys directly,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patchworkConfig.js","sourceRoot":"","sources":["../src/patchworkConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,YAAY;IACZ,KAAK;IACL,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,OAAO;IACP,MAAM;CACE,CAAC;
|
|
1
|
+
{"version":3,"file":"patchworkConfig.js","sourceRoot":"","sources":["../src/patchworkConfig.ts"],"names":[],"mappings":"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"}
|
package/dist/probe.js
CHANGED
|
@@ -3,6 +3,40 @@ import fs from "node:fs";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { promisify } from "node:util";
|
|
5
5
|
const execFileAsync = promisify(execFile);
|
|
6
|
+
// On Windows, each probe spawns where.exe + Defender scans the exe. Capping
|
|
7
|
+
// concurrent probes at 6 limits the fan-out from ~22 simultaneous processes to
|
|
8
|
+
// 4 waves of 6, cutting peak Defender pressure without slowing cold-start.
|
|
9
|
+
function makeSemaphore(limit) {
|
|
10
|
+
let active = 0;
|
|
11
|
+
const queue = [];
|
|
12
|
+
return async function acquire(fn) {
|
|
13
|
+
if (active < limit) {
|
|
14
|
+
active++;
|
|
15
|
+
try {
|
|
16
|
+
return await fn();
|
|
17
|
+
}
|
|
18
|
+
finally {
|
|
19
|
+
active--;
|
|
20
|
+
queue.shift()?.();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return new Promise((resolve, reject) => {
|
|
24
|
+
queue.push(() => {
|
|
25
|
+
active++;
|
|
26
|
+
fn().then((v) => {
|
|
27
|
+
active--;
|
|
28
|
+
queue.shift()?.();
|
|
29
|
+
resolve(v);
|
|
30
|
+
}, (e) => {
|
|
31
|
+
active--;
|
|
32
|
+
queue.shift()?.();
|
|
33
|
+
reject(e);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
const _probeSem = makeSemaphore(6);
|
|
6
40
|
const PROBE_TIMEOUT = 3000;
|
|
7
41
|
async function probeCommand(cmd) {
|
|
8
42
|
const whichCmd = process.platform === "win32" ? "where" : "which";
|
|
@@ -100,16 +134,16 @@ async function probeTypescriptLanguageServer() {
|
|
|
100
134
|
return probeCommand("typescript-language-server");
|
|
101
135
|
}
|
|
102
136
|
export async function probeAll(workspace = "") {
|
|
103
|
-
const entries = await Promise.all(COMMANDS.map(
|
|
137
|
+
const entries = await Promise.all(COMMANDS.map(([key, cmd]) => _probeSem(async () => {
|
|
104
138
|
const available = workspace && JS_LOCAL_TOOLS.has(cmd)
|
|
105
139
|
? await probeCommandWithLocalFallback(cmd, workspace)
|
|
106
140
|
: await probeCommand(cmd);
|
|
107
141
|
return [key, available];
|
|
108
|
-
}));
|
|
142
|
+
})));
|
|
109
143
|
const [universalCtags, typescriptLanguageServer, ant] = await Promise.all([
|
|
110
|
-
probeUniversalCtags(),
|
|
111
|
-
probeTypescriptLanguageServer(),
|
|
112
|
-
probeCommand("ant"),
|
|
144
|
+
_probeSem(() => probeUniversalCtags()),
|
|
145
|
+
_probeSem(() => probeTypescriptLanguageServer()),
|
|
146
|
+
_probeSem(() => probeCommand("ant")),
|
|
113
147
|
]);
|
|
114
148
|
const base = Object.fromEntries(entries);
|
|
115
149
|
base.universalCtags = universalCtags;
|
package/dist/probe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,62 @@ import type { ClaudeOrchestrator } from "./claudeOrchestrator.js";
|
|
|
6
6
|
import type { RecipeOrchestrator } from "./recipes/RecipeOrchestrator.js";
|
|
7
7
|
import type { SchedulerEnqueue } from "./recipes/scheduler.js";
|
|
8
8
|
import { RecipeScheduler } from "./recipes/scheduler.js";
|
|
9
|
+
import { applyTriggerInputDefaults } from "./recipes/triggerVars.js";
|
|
9
10
|
import type { RecipeRunLog } from "./runLog.js";
|
|
10
11
|
import type { Server } from "./server.js";
|
|
12
|
+
export declare const RECIPE_TASK_TIMEOUT_MS = 1800000;
|
|
13
|
+
type ApprovalFn = (input: {
|
|
14
|
+
toolId: string;
|
|
15
|
+
tier: import("./riskTier.js").RiskTier;
|
|
16
|
+
summary?: string;
|
|
17
|
+
params?: Record<string, unknown>;
|
|
18
|
+
/** The run's AbortSignal — when it fires, the pending approval resolves
|
|
19
|
+
* "cancelled" so a cancelled run halts promptly instead of waiting the full
|
|
20
|
+
* approval TTL (L1). */
|
|
21
|
+
signal?: AbortSignal;
|
|
22
|
+
}) => Promise<boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* Worker-autonomy gate (worker-ramp-v0 phase 2, `worker.autonomy` flag, default
|
|
25
|
+
* off). When the flag is on AND a worker owns `recipeName` (recipe === body),
|
|
26
|
+
* returns a per-step approval fn that lets the worker's REVERSIBLE actions flow
|
|
27
|
+
* but QUEUES its risky (compensable/irreversible) actions for human approval
|
|
28
|
+
* until it has EARNED L4 trust on that action-class (fail-closed on reject /
|
|
29
|
+
* expire). Returns null when the flag is off or no worker owns the recipe — the
|
|
30
|
+
* caller falls back to the tier-based fn, so non-worker recipes are byte-
|
|
31
|
+
* identical. Unlike the tier gate this engages on AUTOMATED runs too (workers
|
|
32
|
+
* run automatically); the caller sets `gateAutomatedRuns` whenever this is set.
|
|
33
|
+
*
|
|
34
|
+
* NEVER-WIDEN (review #1027 M1): the worker fn is composed as a FLOOR over the
|
|
35
|
+
* tier fn, never a replacement. A worker `gate` decision queues; a worker
|
|
36
|
+
* `allow` decision DEFERS to `tierApprovalFn` (when present) so a step the tier
|
|
37
|
+
* policy would have queued is still queued. The worker gate can therefore only
|
|
38
|
+
* ADD gating, never remove gating the operator's `approvalGate` required — even
|
|
39
|
+
* on manual runs of a worker-owned recipe. Exported for orchestration tests.
|
|
40
|
+
*/
|
|
41
|
+
export declare function buildWorkerAutonomyGate(recipeName: string, tierApprovalFn?: ApprovalFn, trustOpts?: import("./workers/runWorkerShadow.js").RunWorkerShadowOpts, ctxOpts?: {
|
|
42
|
+
/** Workspace root — git context-risk signals are gathered from here. */
|
|
43
|
+
workdir?: string;
|
|
44
|
+
/** Test injection: bypass the git collector with a fixed risk. */
|
|
45
|
+
contextRiskProvider?: () => Promise<import("./workers/contextRisk.js").ContextRisk | undefined>;
|
|
46
|
+
/** Persist each gate decision + its inputs (the Decision Record). Called on
|
|
47
|
+
* BOTH allow and gate paths. Wired to WorkerGateDecisionLog.record by the
|
|
48
|
+
* caller (fail-soft there); a throwing impl never blocks the gate. */
|
|
49
|
+
recordGateDecision?: (input: import("./workerGateDecisionLog.js").RecordGateDecisionInput) => void;
|
|
50
|
+
}): Promise<ApprovalFn | null>;
|
|
51
|
+
/**
|
|
52
|
+
* The `--disallowed-tools` an `agent` step must inherit when a worker owns this
|
|
53
|
+
* recipe (worker.autonomy flag on). An agent step spawns a Claude subprocess
|
|
54
|
+
* whose internal tool calls bypass the per-step worker gate — so without this a
|
|
55
|
+
* worker could perform via its agent exactly the risky action the gate would
|
|
56
|
+
* have queued. We re-apply the worker's autonomy boundary as a subprocess
|
|
57
|
+
* sandbox: every tool the worker can't currently run autonomously is denied.
|
|
58
|
+
*
|
|
59
|
+
* Returns null when the flag is off, no worker owns the recipe, or the worker
|
|
60
|
+
* is fully trusted on everything (nothing to block) — callers then leave agent
|
|
61
|
+
* steps byte-identical. Fail-soft: any resolution error → null (never crash a
|
|
62
|
+
* run, never widen access).
|
|
63
|
+
*/
|
|
64
|
+
export declare function buildWorkerAgentDisallowedTools(recipeName: string, trustOpts?: import("./workers/runWorkerShadow.js").RunWorkerShadowOpts): Promise<string[] | null>;
|
|
11
65
|
export interface RecipeOrchestrationDeps {
|
|
12
66
|
server: Server;
|
|
13
67
|
/** Getter — avoids stale reference after orchestrator is replaced. */
|
|
@@ -21,6 +75,10 @@ export interface RecipeOrchestrationDeps {
|
|
|
21
75
|
* without live-tail.
|
|
22
76
|
*/
|
|
23
77
|
activityLog?: import("./activityLog.js").ActivityLog;
|
|
78
|
+
/** The Decision Record store — every worker-gate decision + its inputs is
|
|
79
|
+
* appended here (the replayable/explainable audit artifact). Optional: when
|
|
80
|
+
* absent, gating still works, just without the persisted decision trail. */
|
|
81
|
+
workerGateDecisionLog?: import("./workerGateDecisionLog.js").WorkerGateDecisionLog | null;
|
|
24
82
|
workdir: string;
|
|
25
83
|
logger: {
|
|
26
84
|
info?: (s: string) => void;
|
|
@@ -128,3 +186,4 @@ export declare function detectRefusalInYamlBody(yamlBody: string): {
|
|
|
128
186
|
* tool inside a parallel block isn't missed.
|
|
129
187
|
*/
|
|
130
188
|
export declare function collectUnknownToolIds(yaml: string): string[];
|
|
189
|
+
export { applyTriggerInputDefaults };
|