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
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"properties": {
|
|
19
19
|
"name": {
|
|
20
20
|
"type": "string",
|
|
21
|
-
"description": "Recipe name (kebab-case
|
|
22
|
-
"pattern": "^[a-z0-9-]
|
|
21
|
+
"description": "Recipe name (kebab-case, 1-64 chars). Scoped names like @scope/name are accepted for registry recipes.",
|
|
22
|
+
"pattern": "^(@[a-z0-9-]+/)?[a-z0-9][a-z0-9-]{0,63}$"
|
|
23
23
|
},
|
|
24
24
|
"description": {
|
|
25
25
|
"type": "string",
|
|
@@ -87,7 +87,63 @@
|
|
|
87
87
|
},
|
|
88
88
|
"filter": {
|
|
89
89
|
"type": "string",
|
|
90
|
-
"description": "File filter pattern (for file_watch trigger)"
|
|
90
|
+
"description": "File filter pattern (for file_watch trigger). For on_test_run triggers, one of: any | failure | pass-after-fail."
|
|
91
|
+
},
|
|
92
|
+
"vars": {
|
|
93
|
+
"type": "array",
|
|
94
|
+
"description": "Declared input variables resolvable as {{name}} in steps. Place declared variables here (NOT at recipe root — top-level vars are ignored at runtime).",
|
|
95
|
+
"items": {
|
|
96
|
+
"type": "object",
|
|
97
|
+
"required": [
|
|
98
|
+
"name"
|
|
99
|
+
],
|
|
100
|
+
"properties": {
|
|
101
|
+
"name": {
|
|
102
|
+
"type": "string",
|
|
103
|
+
"pattern": "^[A-Za-z_][A-Za-z0-9_]{0,63}$",
|
|
104
|
+
"description": "Variable name (letter/underscore start; letters, digits, underscores; max 64 chars)."
|
|
105
|
+
},
|
|
106
|
+
"required": {
|
|
107
|
+
"type": "boolean",
|
|
108
|
+
"description": "Whether the variable must be supplied."
|
|
109
|
+
},
|
|
110
|
+
"default": {
|
|
111
|
+
"description": "Default value when not supplied."
|
|
112
|
+
},
|
|
113
|
+
"description": {
|
|
114
|
+
"type": "string",
|
|
115
|
+
"description": "Human-readable description of the variable."
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"inputs": {
|
|
121
|
+
"type": "array",
|
|
122
|
+
"description": "Alias for trigger.vars — declared input variables resolvable as {{name}} in steps.",
|
|
123
|
+
"items": {
|
|
124
|
+
"type": "object",
|
|
125
|
+
"required": [
|
|
126
|
+
"name"
|
|
127
|
+
],
|
|
128
|
+
"properties": {
|
|
129
|
+
"name": {
|
|
130
|
+
"type": "string",
|
|
131
|
+
"pattern": "^[A-Za-z_][A-Za-z0-9_]{0,63}$",
|
|
132
|
+
"description": "Variable name (letter/underscore start; letters, digits, underscores; max 64 chars)."
|
|
133
|
+
},
|
|
134
|
+
"required": {
|
|
135
|
+
"type": "boolean",
|
|
136
|
+
"description": "Whether the variable must be supplied."
|
|
137
|
+
},
|
|
138
|
+
"default": {
|
|
139
|
+
"description": "Default value when not supplied."
|
|
140
|
+
},
|
|
141
|
+
"description": {
|
|
142
|
+
"type": "string",
|
|
143
|
+
"description": "Human-readable description of the variable."
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
91
147
|
},
|
|
92
148
|
"eventSource": {
|
|
93
149
|
"type": "string",
|
|
@@ -267,7 +323,8 @@
|
|
|
267
323
|
"openai",
|
|
268
324
|
"grok",
|
|
269
325
|
"gemini",
|
|
270
|
-
"anthropic"
|
|
326
|
+
"anthropic",
|
|
327
|
+
"local"
|
|
271
328
|
],
|
|
272
329
|
"description": "Driver for agent execution"
|
|
273
330
|
},
|
|
@@ -279,12 +336,101 @@
|
|
|
279
336
|
"type": "boolean",
|
|
280
337
|
"description": "When true, grants the agent step access to MCP tools registered on the bridge. Defaults to false for subprocess driver steps."
|
|
281
338
|
},
|
|
339
|
+
"tools": {
|
|
340
|
+
"type": "array",
|
|
341
|
+
"items": {
|
|
342
|
+
"type": "string"
|
|
343
|
+
},
|
|
344
|
+
"description": "Tool allowlist. When `sandbox` is true, enforced via --allowed-tools on the spawned claude -p."
|
|
345
|
+
},
|
|
346
|
+
"sandbox": {
|
|
347
|
+
"type": "boolean",
|
|
348
|
+
"description": "Opt-in tool sandbox: enforce the `tools` allowlist by running claude -p with --permission-mode dontAsk + --allowed-tools (drops --dangerously-skip-permissions). Default off. Pure pass-through with mcpAccess: when both are set, MCP tool names must be listed in `tools` or they will be blocked (no auto-injection)."
|
|
349
|
+
},
|
|
350
|
+
"disallowedTools": {
|
|
351
|
+
"type": "array",
|
|
352
|
+
"items": {
|
|
353
|
+
"type": "string"
|
|
354
|
+
},
|
|
355
|
+
"description": "Deny rules applied via --disallowed-tools regardless of sandbox mode."
|
|
356
|
+
},
|
|
282
357
|
"kind": {
|
|
283
358
|
"type": "string",
|
|
284
359
|
"enum": [
|
|
285
360
|
"judge"
|
|
286
361
|
],
|
|
287
362
|
"description": "When set to 'judge', the agent step emits a structured verdictReason and stores the verdict in the run log."
|
|
363
|
+
},
|
|
364
|
+
"reviews": {
|
|
365
|
+
"type": "string",
|
|
366
|
+
"description": "Step output key the judge reviews (its `into`, default 'agent_output'). Required for the judge→refine loop."
|
|
367
|
+
},
|
|
368
|
+
"max_revisions": {
|
|
369
|
+
"type": "integer",
|
|
370
|
+
"minimum": 0,
|
|
371
|
+
"description": "OPT-IN judge→refine loop. Max revise→re-judge cycles when the verdict is 'request_changes' (0/absent = augment-only, no loop). Requires kind:judge + reviews."
|
|
372
|
+
},
|
|
373
|
+
"on_exhausted": {
|
|
374
|
+
"type": "string",
|
|
375
|
+
"enum": [
|
|
376
|
+
"halt",
|
|
377
|
+
"proceed"
|
|
378
|
+
],
|
|
379
|
+
"description": "When the revision budget is exhausted and the judge still requests changes: 'halt' (default) fails the run; 'proceed' continues with the last draft."
|
|
380
|
+
},
|
|
381
|
+
"downshift": {
|
|
382
|
+
"type": "array",
|
|
383
|
+
"description": "OPT-IN cost-aware routing (Phase 4). Ordered cheaper fallbacks tried when budget.usdMax is set and the remaining budget is too tight for the preferred driver/model. Each entry overrides driver and/or model. Absent → preferred model always used.",
|
|
384
|
+
"items": {
|
|
385
|
+
"type": "object",
|
|
386
|
+
"additionalProperties": false,
|
|
387
|
+
"minProperties": 1,
|
|
388
|
+
"properties": {
|
|
389
|
+
"driver": {
|
|
390
|
+
"type": "string",
|
|
391
|
+
"enum": [
|
|
392
|
+
"claude",
|
|
393
|
+
"claude-code",
|
|
394
|
+
"api",
|
|
395
|
+
"openai",
|
|
396
|
+
"grok",
|
|
397
|
+
"gemini",
|
|
398
|
+
"anthropic",
|
|
399
|
+
"local"
|
|
400
|
+
]
|
|
401
|
+
},
|
|
402
|
+
"model": {
|
|
403
|
+
"type": "string"
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
},
|
|
408
|
+
"escalate": {
|
|
409
|
+
"type": "array",
|
|
410
|
+
"description": "OPT-IN quality-aware escalation (dual of downshift). Ordered MORE-capable fallbacks. In a judge→refine loop (reviews + max_revisions>0), the Nth request_changes revision re-runs the reviewed step with escalate[N-1] instead of the base model — start local/cheap, escalate to a stronger model only when output fails judgment. Each entry overrides driver and/or model.",
|
|
411
|
+
"items": {
|
|
412
|
+
"type": "object",
|
|
413
|
+
"additionalProperties": false,
|
|
414
|
+
"minProperties": 1,
|
|
415
|
+
"properties": {
|
|
416
|
+
"driver": {
|
|
417
|
+
"type": "string",
|
|
418
|
+
"enum": [
|
|
419
|
+
"claude",
|
|
420
|
+
"claude-code",
|
|
421
|
+
"api",
|
|
422
|
+
"openai",
|
|
423
|
+
"grok",
|
|
424
|
+
"gemini",
|
|
425
|
+
"anthropic",
|
|
426
|
+
"local"
|
|
427
|
+
]
|
|
428
|
+
},
|
|
429
|
+
"model": {
|
|
430
|
+
"type": "string"
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
}
|
|
288
434
|
}
|
|
289
435
|
}
|
|
290
436
|
}
|
|
@@ -631,10 +777,12 @@
|
|
|
631
777
|
"description": "Agent step configuration",
|
|
632
778
|
"properties": {
|
|
633
779
|
"prompt": {
|
|
634
|
-
"type": "string"
|
|
780
|
+
"type": "string",
|
|
781
|
+
"description": "Prompt to send to the AI (supports {{templates}})"
|
|
635
782
|
},
|
|
636
783
|
"model": {
|
|
637
|
-
"type": "string"
|
|
784
|
+
"type": "string",
|
|
785
|
+
"description": "Model to use for the agent step"
|
|
638
786
|
},
|
|
639
787
|
"driver": {
|
|
640
788
|
"type": "string",
|
|
@@ -645,22 +793,114 @@
|
|
|
645
793
|
"openai",
|
|
646
794
|
"grok",
|
|
647
795
|
"gemini",
|
|
648
|
-
"anthropic"
|
|
649
|
-
|
|
796
|
+
"anthropic",
|
|
797
|
+
"local"
|
|
798
|
+
],
|
|
799
|
+
"description": "Driver for agent execution"
|
|
650
800
|
},
|
|
651
801
|
"into": {
|
|
652
|
-
"type": "string"
|
|
802
|
+
"type": "string",
|
|
803
|
+
"description": "Variable name to store output in context"
|
|
653
804
|
},
|
|
654
805
|
"mcpAccess": {
|
|
655
806
|
"type": "boolean",
|
|
656
807
|
"description": "When true, grants the agent step access to MCP tools registered on the bridge. Defaults to false for subprocess driver steps."
|
|
657
808
|
},
|
|
809
|
+
"tools": {
|
|
810
|
+
"type": "array",
|
|
811
|
+
"items": {
|
|
812
|
+
"type": "string"
|
|
813
|
+
},
|
|
814
|
+
"description": "Tool allowlist. When `sandbox` is true, enforced via --allowed-tools on the spawned claude -p."
|
|
815
|
+
},
|
|
816
|
+
"sandbox": {
|
|
817
|
+
"type": "boolean",
|
|
818
|
+
"description": "Opt-in tool sandbox: enforce the `tools` allowlist by running claude -p with --permission-mode dontAsk + --allowed-tools (drops --dangerously-skip-permissions). Default off. Pure pass-through with mcpAccess: when both are set, MCP tool names must be listed in `tools` or they will be blocked (no auto-injection)."
|
|
819
|
+
},
|
|
820
|
+
"disallowedTools": {
|
|
821
|
+
"type": "array",
|
|
822
|
+
"items": {
|
|
823
|
+
"type": "string"
|
|
824
|
+
},
|
|
825
|
+
"description": "Deny rules applied via --disallowed-tools regardless of sandbox mode."
|
|
826
|
+
},
|
|
658
827
|
"kind": {
|
|
659
828
|
"type": "string",
|
|
660
829
|
"enum": [
|
|
661
830
|
"judge"
|
|
662
831
|
],
|
|
663
832
|
"description": "When set to 'judge', the agent step emits a structured verdictReason and stores the verdict in the run log."
|
|
833
|
+
},
|
|
834
|
+
"reviews": {
|
|
835
|
+
"type": "string",
|
|
836
|
+
"description": "Step output key the judge reviews (its `into`, default 'agent_output'). Required for the judge→refine loop."
|
|
837
|
+
},
|
|
838
|
+
"max_revisions": {
|
|
839
|
+
"type": "integer",
|
|
840
|
+
"minimum": 0,
|
|
841
|
+
"description": "OPT-IN judge→refine loop. Max revise→re-judge cycles when the verdict is 'request_changes' (0/absent = augment-only, no loop). Requires kind:judge + reviews."
|
|
842
|
+
},
|
|
843
|
+
"on_exhausted": {
|
|
844
|
+
"type": "string",
|
|
845
|
+
"enum": [
|
|
846
|
+
"halt",
|
|
847
|
+
"proceed"
|
|
848
|
+
],
|
|
849
|
+
"description": "When the revision budget is exhausted and the judge still requests changes: 'halt' (default) fails the run; 'proceed' continues with the last draft."
|
|
850
|
+
},
|
|
851
|
+
"downshift": {
|
|
852
|
+
"type": "array",
|
|
853
|
+
"description": "OPT-IN cost-aware routing (Phase 4). Ordered cheaper fallbacks tried when budget.usdMax is set and the remaining budget is too tight for the preferred driver/model. Each entry overrides driver and/or model. Absent → preferred model always used.",
|
|
854
|
+
"items": {
|
|
855
|
+
"type": "object",
|
|
856
|
+
"additionalProperties": false,
|
|
857
|
+
"minProperties": 1,
|
|
858
|
+
"properties": {
|
|
859
|
+
"driver": {
|
|
860
|
+
"type": "string",
|
|
861
|
+
"enum": [
|
|
862
|
+
"claude",
|
|
863
|
+
"claude-code",
|
|
864
|
+
"api",
|
|
865
|
+
"openai",
|
|
866
|
+
"grok",
|
|
867
|
+
"gemini",
|
|
868
|
+
"anthropic",
|
|
869
|
+
"local"
|
|
870
|
+
]
|
|
871
|
+
},
|
|
872
|
+
"model": {
|
|
873
|
+
"type": "string"
|
|
874
|
+
}
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
},
|
|
878
|
+
"escalate": {
|
|
879
|
+
"type": "array",
|
|
880
|
+
"description": "OPT-IN quality-aware escalation (dual of downshift). Ordered MORE-capable fallbacks. In a judge→refine loop (reviews + max_revisions>0), the Nth request_changes revision re-runs the reviewed step with escalate[N-1] instead of the base model — start local/cheap, escalate to a stronger model only when output fails judgment. Each entry overrides driver and/or model.",
|
|
881
|
+
"items": {
|
|
882
|
+
"type": "object",
|
|
883
|
+
"additionalProperties": false,
|
|
884
|
+
"minProperties": 1,
|
|
885
|
+
"properties": {
|
|
886
|
+
"driver": {
|
|
887
|
+
"type": "string",
|
|
888
|
+
"enum": [
|
|
889
|
+
"claude",
|
|
890
|
+
"claude-code",
|
|
891
|
+
"api",
|
|
892
|
+
"openai",
|
|
893
|
+
"grok",
|
|
894
|
+
"gemini",
|
|
895
|
+
"anthropic",
|
|
896
|
+
"local"
|
|
897
|
+
]
|
|
898
|
+
},
|
|
899
|
+
"model": {
|
|
900
|
+
"type": "string"
|
|
901
|
+
}
|
|
902
|
+
}
|
|
903
|
+
}
|
|
664
904
|
}
|
|
665
905
|
}
|
|
666
906
|
}
|
|
@@ -1006,10 +1246,12 @@
|
|
|
1006
1246
|
"description": "Agent step configuration",
|
|
1007
1247
|
"properties": {
|
|
1008
1248
|
"prompt": {
|
|
1009
|
-
"type": "string"
|
|
1249
|
+
"type": "string",
|
|
1250
|
+
"description": "Prompt to send to the AI (supports {{templates}})"
|
|
1010
1251
|
},
|
|
1011
1252
|
"model": {
|
|
1012
|
-
"type": "string"
|
|
1253
|
+
"type": "string",
|
|
1254
|
+
"description": "Model to use for the agent step"
|
|
1013
1255
|
},
|
|
1014
1256
|
"driver": {
|
|
1015
1257
|
"type": "string",
|
|
@@ -1020,22 +1262,114 @@
|
|
|
1020
1262
|
"openai",
|
|
1021
1263
|
"grok",
|
|
1022
1264
|
"gemini",
|
|
1023
|
-
"anthropic"
|
|
1024
|
-
|
|
1265
|
+
"anthropic",
|
|
1266
|
+
"local"
|
|
1267
|
+
],
|
|
1268
|
+
"description": "Driver for agent execution"
|
|
1025
1269
|
},
|
|
1026
1270
|
"into": {
|
|
1027
|
-
"type": "string"
|
|
1271
|
+
"type": "string",
|
|
1272
|
+
"description": "Variable name to store output in context"
|
|
1028
1273
|
},
|
|
1029
1274
|
"mcpAccess": {
|
|
1030
1275
|
"type": "boolean",
|
|
1031
1276
|
"description": "When true, grants the agent step access to MCP tools registered on the bridge. Defaults to false for subprocess driver steps."
|
|
1032
1277
|
},
|
|
1278
|
+
"tools": {
|
|
1279
|
+
"type": "array",
|
|
1280
|
+
"items": {
|
|
1281
|
+
"type": "string"
|
|
1282
|
+
},
|
|
1283
|
+
"description": "Tool allowlist. When `sandbox` is true, enforced via --allowed-tools on the spawned claude -p."
|
|
1284
|
+
},
|
|
1285
|
+
"sandbox": {
|
|
1286
|
+
"type": "boolean",
|
|
1287
|
+
"description": "Opt-in tool sandbox: enforce the `tools` allowlist by running claude -p with --permission-mode dontAsk + --allowed-tools (drops --dangerously-skip-permissions). Default off. Pure pass-through with mcpAccess: when both are set, MCP tool names must be listed in `tools` or they will be blocked (no auto-injection)."
|
|
1288
|
+
},
|
|
1289
|
+
"disallowedTools": {
|
|
1290
|
+
"type": "array",
|
|
1291
|
+
"items": {
|
|
1292
|
+
"type": "string"
|
|
1293
|
+
},
|
|
1294
|
+
"description": "Deny rules applied via --disallowed-tools regardless of sandbox mode."
|
|
1295
|
+
},
|
|
1033
1296
|
"kind": {
|
|
1034
1297
|
"type": "string",
|
|
1035
1298
|
"enum": [
|
|
1036
1299
|
"judge"
|
|
1037
1300
|
],
|
|
1038
1301
|
"description": "When set to 'judge', the agent step emits a structured verdictReason and stores the verdict in the run log."
|
|
1302
|
+
},
|
|
1303
|
+
"reviews": {
|
|
1304
|
+
"type": "string",
|
|
1305
|
+
"description": "Step output key the judge reviews (its `into`, default 'agent_output'). Required for the judge→refine loop."
|
|
1306
|
+
},
|
|
1307
|
+
"max_revisions": {
|
|
1308
|
+
"type": "integer",
|
|
1309
|
+
"minimum": 0,
|
|
1310
|
+
"description": "OPT-IN judge→refine loop. Max revise→re-judge cycles when the verdict is 'request_changes' (0/absent = augment-only, no loop). Requires kind:judge + reviews."
|
|
1311
|
+
},
|
|
1312
|
+
"on_exhausted": {
|
|
1313
|
+
"type": "string",
|
|
1314
|
+
"enum": [
|
|
1315
|
+
"halt",
|
|
1316
|
+
"proceed"
|
|
1317
|
+
],
|
|
1318
|
+
"description": "When the revision budget is exhausted and the judge still requests changes: 'halt' (default) fails the run; 'proceed' continues with the last draft."
|
|
1319
|
+
},
|
|
1320
|
+
"downshift": {
|
|
1321
|
+
"type": "array",
|
|
1322
|
+
"description": "OPT-IN cost-aware routing (Phase 4). Ordered cheaper fallbacks tried when budget.usdMax is set and the remaining budget is too tight for the preferred driver/model. Each entry overrides driver and/or model. Absent → preferred model always used.",
|
|
1323
|
+
"items": {
|
|
1324
|
+
"type": "object",
|
|
1325
|
+
"additionalProperties": false,
|
|
1326
|
+
"minProperties": 1,
|
|
1327
|
+
"properties": {
|
|
1328
|
+
"driver": {
|
|
1329
|
+
"type": "string",
|
|
1330
|
+
"enum": [
|
|
1331
|
+
"claude",
|
|
1332
|
+
"claude-code",
|
|
1333
|
+
"api",
|
|
1334
|
+
"openai",
|
|
1335
|
+
"grok",
|
|
1336
|
+
"gemini",
|
|
1337
|
+
"anthropic",
|
|
1338
|
+
"local"
|
|
1339
|
+
]
|
|
1340
|
+
},
|
|
1341
|
+
"model": {
|
|
1342
|
+
"type": "string"
|
|
1343
|
+
}
|
|
1344
|
+
}
|
|
1345
|
+
}
|
|
1346
|
+
},
|
|
1347
|
+
"escalate": {
|
|
1348
|
+
"type": "array",
|
|
1349
|
+
"description": "OPT-IN quality-aware escalation (dual of downshift). Ordered MORE-capable fallbacks. In a judge→refine loop (reviews + max_revisions>0), the Nth request_changes revision re-runs the reviewed step with escalate[N-1] instead of the base model — start local/cheap, escalate to a stronger model only when output fails judgment. Each entry overrides driver and/or model.",
|
|
1350
|
+
"items": {
|
|
1351
|
+
"type": "object",
|
|
1352
|
+
"additionalProperties": false,
|
|
1353
|
+
"minProperties": 1,
|
|
1354
|
+
"properties": {
|
|
1355
|
+
"driver": {
|
|
1356
|
+
"type": "string",
|
|
1357
|
+
"enum": [
|
|
1358
|
+
"claude",
|
|
1359
|
+
"claude-code",
|
|
1360
|
+
"api",
|
|
1361
|
+
"openai",
|
|
1362
|
+
"grok",
|
|
1363
|
+
"gemini",
|
|
1364
|
+
"anthropic",
|
|
1365
|
+
"local"
|
|
1366
|
+
]
|
|
1367
|
+
},
|
|
1368
|
+
"model": {
|
|
1369
|
+
"type": "string"
|
|
1370
|
+
}
|
|
1371
|
+
}
|
|
1372
|
+
}
|
|
1039
1373
|
}
|
|
1040
1374
|
}
|
|
1041
1375
|
}
|
|
@@ -1345,19 +1679,29 @@
|
|
|
1345
1679
|
},
|
|
1346
1680
|
"budget": {
|
|
1347
1681
|
"type": "object",
|
|
1348
|
-
"description": "Per-recipe
|
|
1682
|
+
"description": "Per-recipe budget. Set tokensMax and/or usdMax; on breach the run halts with budget_exceeded (or warns). Enforced for API drivers that report token usage and (for usdMax) have a price-table entry; subscription drivers (Claude CLI) report no tokens and are skipped (fail-open with a one-time warning).",
|
|
1349
1683
|
"properties": {
|
|
1350
1684
|
"tokensMax": {
|
|
1351
1685
|
"type": "number",
|
|
1686
|
+
"exclusiveMinimum": 0,
|
|
1352
1687
|
"description": "Cumulative input + output tokens allowed across the whole run"
|
|
1353
1688
|
},
|
|
1689
|
+
"usdMax": {
|
|
1690
|
+
"type": "number",
|
|
1691
|
+
"exclusiveMinimum": 0,
|
|
1692
|
+
"description": "Cumulative USD allowed across the whole run, priced from token usage via the model price table. Unpriced models / subscription drivers fail open (never halt on them)."
|
|
1693
|
+
},
|
|
1694
|
+
"estimateUnmeasured": {
|
|
1695
|
+
"type": "boolean",
|
|
1696
|
+
"description": "OPT-IN (default false). Estimate the notional list-price USD an unmeasured/subscription call would have cost and surface a ≈$ figure. Label only — never counted toward usdMax, never halts. Requires usdMax."
|
|
1697
|
+
},
|
|
1354
1698
|
"onBreach": {
|
|
1355
1699
|
"type": "string",
|
|
1356
1700
|
"enum": [
|
|
1357
1701
|
"halt",
|
|
1358
1702
|
"warn"
|
|
1359
1703
|
],
|
|
1360
|
-
"description": "halt (default): stop run on next admission check. warn: continue but record the breach in the run log.",
|
|
1704
|
+
"description": "halt (default): stop run on next admission check. warn: continue but record the breach in the run log. Applies to both tokensMax and usdMax.",
|
|
1361
1705
|
"default": "halt"
|
|
1362
1706
|
}
|
|
1363
1707
|
}
|
package/dist/server.d.ts
CHANGED
|
@@ -12,6 +12,21 @@ interface ServerEvents {
|
|
|
12
12
|
}
|
|
13
13
|
import { corsOrigin } from "./cors.js";
|
|
14
14
|
export { corsOrigin };
|
|
15
|
+
/**
|
|
16
|
+
* H6 (audit 2026-06-19): the webhook auth gate must treat the
|
|
17
|
+
* `X-Hub-Signature-256` header identically at the bearer-bypass decision
|
|
18
|
+
* and at the HMAC verification step. A multi-valued header (duplicate
|
|
19
|
+
* lines collapsed to a `string[]` by an upstream proxy / HTTP-2 layer, or
|
|
20
|
+
* Node's comma-join) is NOT a usable single signature and must be rejected,
|
|
21
|
+
* never silently skipped. This returns the lone string only when exactly
|
|
22
|
+
* one usable value is present; otherwise `null`.
|
|
23
|
+
*
|
|
24
|
+
* - `undefined` → null (absent)
|
|
25
|
+
* - single string → that string
|
|
26
|
+
* - comma-joined string (Node merge of duplicates) → null (multi-valued)
|
|
27
|
+
* - `string[]` → null (multi-valued)
|
|
28
|
+
*/
|
|
29
|
+
export declare function readSingleSignatureHeader(value: string | string[] | undefined): string | null;
|
|
15
30
|
export interface SessionSummary {
|
|
16
31
|
id: string;
|
|
17
32
|
connectedAt: string;
|
|
@@ -183,6 +198,42 @@ export declare class Server extends EventEmitter<ServerEvents> {
|
|
|
183
198
|
}) => import("./recipes/judgeSummary.js").JudgeSummary) | null;
|
|
184
199
|
/** Patchwork: set by bridge to generate a dry-run plan for a recipe by name. */
|
|
185
200
|
runPlanFn: ((recipeName: string) => Promise<Record<string, unknown>>) | null;
|
|
201
|
+
/** Patchwork: set by bridge to generate a What-If Preview simulation for a
|
|
202
|
+
* recipe by name (static counterfactual; superset of the dry-run plan). */
|
|
203
|
+
simulateFn: ((recipeName: string) => Promise<Record<string, unknown>>) | null;
|
|
204
|
+
/** Patchwork: read-only worker trust dial (shadow) — replays run + decision
|
|
205
|
+
* logs through the (worker × action-class) ramp. Backs GET /workers/shadow. */
|
|
206
|
+
workerShadowFn: (() => Promise<Record<string, unknown>>) | null;
|
|
207
|
+
/** Patchwork: read-only query over the persisted Decision Record
|
|
208
|
+
* (worker_gate_decisions.jsonl). Backs GET /gate/decisions and the
|
|
209
|
+
* `patchwork gate explain` CLI command — "why did the worker
|
|
210
|
+
* allow/gate THIS action" without grepping the JSONL by hand. */
|
|
211
|
+
gateDecisionsFn: ((opts?: {
|
|
212
|
+
workerId?: string;
|
|
213
|
+
classKey?: string;
|
|
214
|
+
limit?: number;
|
|
215
|
+
}) => import("./workerGateDecisionLog.js").GateDecisionRecord[]) | null;
|
|
216
|
+
/** Patchwork: record a Decision Record trace over HTTP. Backs
|
|
217
|
+
* POST /traces/decision — the HTTP twin of the `ctxSaveTrace` MCP tool,
|
|
218
|
+
* wired directly to `DecisionTraceLog.record()` so both paths persist
|
|
219
|
+
* through the same JSONL writer. Throws on invalid input (caller maps
|
|
220
|
+
* to 400); null when no bridge-side DecisionTraceLog is configured. */
|
|
221
|
+
saveDecisionTraceFn: ((input: {
|
|
222
|
+
ref: string;
|
|
223
|
+
problem: string;
|
|
224
|
+
solution: string;
|
|
225
|
+
workspace?: string;
|
|
226
|
+
tags?: string[];
|
|
227
|
+
sessionId?: string;
|
|
228
|
+
source?: string;
|
|
229
|
+
}) => import("./decisionTraceLog.js").DecisionTrace) | null;
|
|
230
|
+
/** Patchwork: operator outcome dispositions (~/.patchwork/outcome-log.jsonl).
|
|
231
|
+
* Backs GET/POST /outcomes and the dashboard confirm/reject panel; mirrors
|
|
232
|
+
* the `patchwork outcomes` CLI. Never exposed as a recipe step / MCP tool. */
|
|
233
|
+
outcomeStoreFn: (() => import("./workers/outcomeStore.js").OutcomeStore) | null;
|
|
234
|
+
/** Patchwork: the confirm queue — worker filings awaiting an operator
|
|
235
|
+
* disposition. Backs GET /outcomes/pending + `patchwork outcomes pending`. */
|
|
236
|
+
pendingConfirmationsFn: (() => import("./workers/runWorkerShadow.js").PendingConfirmation[]) | null;
|
|
186
237
|
/** Patchwork (VD-4): mocked replay of an existing run. Returns the new
|
|
187
238
|
* run's seq plus any unmocked steps the caller may want to surface. */
|
|
188
239
|
runReplayFn: ((seq: number) => Promise<{
|
|
@@ -361,12 +412,21 @@ export declare class Server extends EventEmitter<ServerEvents> {
|
|
|
361
412
|
tag?: string;
|
|
362
413
|
since?: number;
|
|
363
414
|
limit?: number;
|
|
415
|
+
semantic?: boolean;
|
|
364
416
|
}) => Promise<Record<string, unknown>>) | null;
|
|
365
417
|
/** Set by bridge to handle CC hook notify events via POST /notify */
|
|
366
418
|
notifyFn: ((event: string, args: Record<string, string>) => {
|
|
367
419
|
ok: boolean;
|
|
368
420
|
error?: string;
|
|
369
421
|
}) | null;
|
|
422
|
+
/**
|
|
423
|
+
* Patchwork: the configured workspace root (set by bridge from --workspace).
|
|
424
|
+
* Routes that resolve workspace-relative state — decision-replay and CC
|
|
425
|
+
* permission attribution, approval routing — must use this, NOT process.cwd():
|
|
426
|
+
* the bridge can be started with --workspace pointing elsewhere, and a
|
|
427
|
+
* launchd/systemd cwd is unrelated to the workspace (audit 2026-06-08 server-3).
|
|
428
|
+
*/
|
|
429
|
+
workspace: string;
|
|
370
430
|
/** Patchwork: set by bridge to list active agent sessions for the dashboard. */
|
|
371
431
|
sessionsFn: (() => SessionSummary[]) | null;
|
|
372
432
|
/** Patchwork: set by bridge to answer GET /sessions/:id with per-session event stream + approvals. */
|