patchwork-os 0.2.0-alpha.9 → 0.2.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.bridge.md +6 -0
- package/README.md +315 -35
- package/deploy/bootstrap-new-vps.sh +12 -12
- package/deploy/bootstrap-vps.sh +187 -0
- package/deploy/deploy-dashboard.sh +174 -0
- package/deploy/deploy-landing.sh +136 -0
- package/dist/activationMetrics.d.ts +67 -0
- package/dist/activationMetrics.js +255 -0
- package/dist/activationMetrics.js.map +1 -0
- package/dist/activityLog.d.ts +49 -0
- package/dist/activityLog.js +78 -0
- package/dist/activityLog.js.map +1 -1
- package/dist/approvalHttp.d.ts +49 -2
- package/dist/approvalHttp.js +217 -21
- package/dist/approvalHttp.js.map +1 -1
- package/dist/approvalInsights.d.ts +49 -0
- package/dist/approvalInsights.js +97 -0
- package/dist/approvalInsights.js.map +1 -0
- package/dist/approvalQueue.d.ts +27 -1
- package/dist/approvalQueue.js +123 -3
- package/dist/approvalQueue.js.map +1 -1
- package/dist/approvalSignals.d.ts +124 -0
- package/dist/approvalSignals.js +512 -0
- package/dist/approvalSignals.js.map +1 -0
- package/dist/automation.d.ts +57 -0
- package/dist/automation.js +156 -59
- package/dist/automation.js.map +1 -1
- package/dist/automationSuggestions.d.ts +79 -0
- package/dist/automationSuggestions.js +150 -0
- package/dist/automationSuggestions.js.map +1 -0
- package/dist/bridge.d.ts +3 -0
- package/dist/bridge.js +174 -143
- package/dist/bridge.js.map +1 -1
- package/dist/bridgeToken.js +57 -19
- package/dist/bridgeToken.js.map +1 -1
- package/dist/ccPermissions.d.ts +15 -0
- package/dist/ccPermissions.js +21 -4
- package/dist/ccPermissions.js.map +1 -1
- package/dist/claudeDriver.js +74 -16
- package/dist/claudeDriver.js.map +1 -1
- package/dist/claudeOrchestrator.d.ts +1 -1
- package/dist/claudeOrchestrator.js +14 -8
- package/dist/claudeOrchestrator.js.map +1 -1
- package/dist/commands/dashboard.js +1 -1
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/launchd.d.ts +2 -0
- package/dist/commands/launchd.js +94 -0
- package/dist/commands/launchd.js.map +1 -0
- package/dist/commands/patchworkInit.d.ts +8 -0
- package/dist/commands/patchworkInit.js +77 -11
- package/dist/commands/patchworkInit.js.map +1 -1
- package/dist/commands/recipe.d.ts +289 -0
- package/dist/commands/recipe.js +1359 -0
- package/dist/commands/recipe.js.map +1 -0
- package/dist/commands/recipeInstall.d.ts +150 -0
- package/dist/commands/recipeInstall.js +647 -0
- package/dist/commands/recipeInstall.js.map +1 -0
- package/dist/commands/tracesExport.d.ts +83 -0
- package/dist/commands/tracesExport.js +269 -0
- package/dist/commands/tracesExport.js.map +1 -0
- package/dist/commands/tracesImport.d.ts +56 -0
- package/dist/commands/tracesImport.js +161 -0
- package/dist/commands/tracesImport.js.map +1 -0
- package/dist/config.d.ts +22 -1
- package/dist/config.js +108 -9
- package/dist/config.js.map +1 -1
- package/dist/connectorRoutes.d.ts +43 -0
- package/dist/connectorRoutes.js +1609 -0
- package/dist/connectorRoutes.js.map +1 -0
- package/dist/connectors/asana.d.ts +198 -0
- package/dist/connectors/asana.js +679 -0
- package/dist/connectors/asana.js.map +1 -0
- package/dist/connectors/baseConnector.d.ts +153 -0
- package/dist/connectors/baseConnector.js +336 -0
- package/dist/connectors/baseConnector.js.map +1 -0
- package/dist/connectors/confluence.d.ts +111 -0
- package/dist/connectors/confluence.js +406 -0
- package/dist/connectors/confluence.js.map +1 -0
- package/dist/connectors/datadog.d.ts +116 -0
- package/dist/connectors/datadog.js +385 -0
- package/dist/connectors/datadog.js.map +1 -0
- package/dist/connectors/discord.d.ts +150 -0
- package/dist/connectors/discord.js +543 -0
- package/dist/connectors/discord.js.map +1 -0
- package/dist/connectors/fixtureLibrary.d.ts +21 -0
- package/dist/connectors/fixtureLibrary.js +70 -0
- package/dist/connectors/fixtureLibrary.js.map +1 -0
- package/dist/connectors/fixtureRecorder.d.ts +1 -0
- package/dist/connectors/fixtureRecorder.js +35 -0
- package/dist/connectors/fixtureRecorder.js.map +1 -0
- package/dist/connectors/github.js +17 -18
- package/dist/connectors/github.js.map +1 -1
- package/dist/connectors/gitlab.d.ts +180 -0
- package/dist/connectors/gitlab.js +582 -0
- package/dist/connectors/gitlab.js.map +1 -0
- package/dist/connectors/gmail.d.ts +4 -1
- package/dist/connectors/gmail.js +149 -27
- package/dist/connectors/gmail.js.map +1 -1
- package/dist/connectors/googleCalendar.d.ts +4 -1
- package/dist/connectors/googleCalendar.js +88 -25
- package/dist/connectors/googleCalendar.js.map +1 -1
- package/dist/connectors/googleDrive.d.ts +34 -0
- package/dist/connectors/googleDrive.js +321 -0
- package/dist/connectors/googleDrive.js.map +1 -0
- package/dist/connectors/htmlEscape.d.ts +5 -0
- package/dist/connectors/htmlEscape.js +13 -0
- package/dist/connectors/htmlEscape.js.map +1 -0
- package/dist/connectors/hubspot.d.ts +112 -0
- package/dist/connectors/hubspot.js +408 -0
- package/dist/connectors/hubspot.js.map +1 -0
- package/dist/connectors/intercom.d.ts +102 -0
- package/dist/connectors/intercom.js +402 -0
- package/dist/connectors/intercom.js.map +1 -0
- package/dist/connectors/jira.d.ts +98 -0
- package/dist/connectors/jira.js +379 -0
- package/dist/connectors/jira.js.map +1 -0
- package/dist/connectors/linear.js +30 -19
- package/dist/connectors/linear.js.map +1 -1
- package/dist/connectors/mcpOAuth.d.ts +3 -0
- package/dist/connectors/mcpOAuth.js +64 -10
- package/dist/connectors/mcpOAuth.js.map +1 -1
- package/dist/connectors/mockConnector.d.ts +28 -0
- package/dist/connectors/mockConnector.js +81 -0
- package/dist/connectors/mockConnector.js.map +1 -0
- package/dist/connectors/notion.d.ts +143 -0
- package/dist/connectors/notion.js +424 -0
- package/dist/connectors/notion.js.map +1 -0
- package/dist/connectors/oauthStateStore.d.ts +31 -0
- package/dist/connectors/oauthStateStore.js +52 -0
- package/dist/connectors/oauthStateStore.js.map +1 -0
- package/dist/connectors/pagerduty.d.ts +160 -0
- package/dist/connectors/pagerduty.js +464 -0
- package/dist/connectors/pagerduty.js.map +1 -0
- package/dist/connectors/sentry.js +5 -13
- package/dist/connectors/sentry.js.map +1 -1
- package/dist/connectors/slack.d.ts +16 -1
- package/dist/connectors/slack.js +155 -32
- package/dist/connectors/slack.js.map +1 -1
- package/dist/connectors/stripe.d.ts +116 -0
- package/dist/connectors/stripe.js +379 -0
- package/dist/connectors/stripe.js.map +1 -0
- package/dist/connectors/tokenStorage.d.ts +35 -0
- package/dist/connectors/tokenStorage.js +484 -0
- package/dist/connectors/tokenStorage.js.map +1 -0
- package/dist/connectors/zendesk.d.ts +104 -0
- package/dist/connectors/zendesk.js +442 -0
- package/dist/connectors/zendesk.js.map +1 -0
- package/dist/cors.d.ts +10 -0
- package/dist/cors.js +29 -0
- package/dist/cors.js.map +1 -0
- package/dist/decisionReplay.d.ts +72 -0
- package/dist/decisionReplay.js +92 -0
- package/dist/decisionReplay.js.map +1 -0
- package/dist/decisionTraceLog.d.ts +6 -0
- package/dist/decisionTraceLog.js +54 -2
- package/dist/decisionTraceLog.js.map +1 -1
- package/dist/drivers/gemini/index.d.ts +5 -1
- package/dist/drivers/gemini/index.js +39 -5
- package/dist/drivers/gemini/index.js.map +1 -1
- package/dist/drivers/index.d.ts +5 -0
- package/dist/drivers/index.js +1 -1
- package/dist/drivers/index.js.map +1 -1
- package/dist/featureFlags.d.ts +79 -0
- package/dist/featureFlags.js +208 -0
- package/dist/featureFlags.js.map +1 -0
- package/dist/fp/automationInterpreter.js +26 -21
- package/dist/fp/automationInterpreter.js.map +1 -1
- package/dist/fp/automationProgram.d.ts +1 -1
- package/dist/fp/automationProgram.js.map +1 -1
- package/dist/fp/automationState.js +4 -1
- package/dist/fp/automationState.js.map +1 -1
- package/dist/fp/policyParser.js +21 -1
- package/dist/fp/policyParser.js.map +1 -1
- package/dist/inboxRoutes.d.ts +22 -0
- package/dist/inboxRoutes.js +114 -0
- package/dist/inboxRoutes.js.map +1 -0
- package/dist/index.js +1400 -201
- package/dist/index.js.map +1 -1
- package/dist/installGuard.d.ts +25 -0
- package/dist/installGuard.js +48 -0
- package/dist/installGuard.js.map +1 -0
- package/dist/mcpRoutes.d.ts +37 -0
- package/dist/mcpRoutes.js +76 -0
- package/dist/mcpRoutes.js.map +1 -0
- package/dist/oauth.d.ts +7 -1
- package/dist/oauth.js +201 -39
- package/dist/oauth.js.map +1 -1
- package/dist/oauthRoutes.d.ts +32 -0
- package/dist/oauthRoutes.js +124 -0
- package/dist/oauthRoutes.js.map +1 -0
- package/dist/orchestrator/orchestratorBridge.js +2 -2
- package/dist/orchestrator/orchestratorBridge.js.map +1 -1
- package/dist/patchworkConfig.d.ts +16 -0
- package/dist/patchworkConfig.js +1 -1
- package/dist/patchworkConfig.js.map +1 -1
- package/dist/pluginLoader.d.ts +28 -0
- package/dist/pluginLoader.js +77 -11
- package/dist/pluginLoader.js.map +1 -1
- package/dist/pluginWatcher.js +8 -3
- package/dist/pluginWatcher.js.map +1 -1
- package/dist/preToolUseHook.d.ts +12 -0
- package/dist/preToolUseHook.js +23 -0
- package/dist/preToolUseHook.js.map +1 -1
- package/dist/recipeOrchestration.d.ts +121 -0
- package/dist/recipeOrchestration.js +955 -0
- package/dist/recipeOrchestration.js.map +1 -0
- package/dist/recipeRoutes.d.ts +180 -0
- package/dist/recipeRoutes.js +1345 -0
- package/dist/recipeRoutes.js.map +1 -0
- package/dist/recipes/RecipeOrchestrator.d.ts +40 -0
- package/dist/recipes/RecipeOrchestrator.js +51 -0
- package/dist/recipes/RecipeOrchestrator.js.map +1 -0
- package/dist/recipes/agentExecutor.d.ts +29 -0
- package/dist/recipes/agentExecutor.js +49 -0
- package/dist/recipes/agentExecutor.js.map +1 -0
- package/dist/recipes/chainedRunner.d.ts +191 -0
- package/dist/recipes/chainedRunner.js +759 -0
- package/dist/recipes/chainedRunner.js.map +1 -0
- package/dist/recipes/compiler.js +3 -3
- package/dist/recipes/compiler.js.map +1 -1
- package/dist/recipes/dependencyGraph.d.ts +39 -0
- package/dist/recipes/dependencyGraph.js +199 -0
- package/dist/recipes/dependencyGraph.js.map +1 -0
- package/dist/recipes/disabledMarkers.d.ts +48 -0
- package/dist/recipes/disabledMarkers.js +52 -0
- package/dist/recipes/disabledMarkers.js.map +1 -0
- package/dist/recipes/installer.js +3 -3
- package/dist/recipes/installer.js.map +1 -1
- package/dist/recipes/legacyRecipeCompat.d.ts +10 -0
- package/dist/recipes/legacyRecipeCompat.js +131 -0
- package/dist/recipes/legacyRecipeCompat.js.map +1 -0
- package/dist/recipes/manifest.d.ts +47 -0
- package/dist/recipes/manifest.js +156 -0
- package/dist/recipes/manifest.js.map +1 -0
- package/dist/recipes/migrationWarnings.d.ts +12 -0
- package/dist/recipes/migrationWarnings.js +44 -0
- package/dist/recipes/migrationWarnings.js.map +1 -0
- package/dist/recipes/migrations/index.d.ts +24 -0
- package/dist/recipes/migrations/index.js +55 -0
- package/dist/recipes/migrations/index.js.map +1 -0
- package/dist/recipes/migrations/types.d.ts +28 -0
- package/dist/recipes/migrations/types.js +2 -0
- package/dist/recipes/migrations/types.js.map +1 -0
- package/dist/recipes/migrations/v1.d.ts +11 -0
- package/dist/recipes/migrations/v1.js +18 -0
- package/dist/recipes/migrations/v1.js.map +1 -0
- package/dist/recipes/names.d.ts +40 -0
- package/dist/recipes/names.js +66 -0
- package/dist/recipes/names.js.map +1 -0
- package/dist/recipes/nestedRecipeStep.d.ts +58 -0
- package/dist/recipes/nestedRecipeStep.js +95 -0
- package/dist/recipes/nestedRecipeStep.js.map +1 -0
- package/dist/recipes/outputRegistry.d.ts +28 -0
- package/dist/recipes/outputRegistry.js +52 -0
- package/dist/recipes/outputRegistry.js.map +1 -0
- package/dist/recipes/parser.js +4 -1
- package/dist/recipes/parser.js.map +1 -1
- package/dist/recipes/replayRun.d.ts +62 -0
- package/dist/recipes/replayRun.js +97 -0
- package/dist/recipes/replayRun.js.map +1 -0
- package/dist/recipes/resolveRecipePath.d.ts +69 -0
- package/dist/recipes/resolveRecipePath.js +202 -0
- package/dist/recipes/resolveRecipePath.js.map +1 -0
- package/dist/recipes/scheduler.d.ts +23 -7
- package/dist/recipes/scheduler.js +225 -45
- package/dist/recipes/scheduler.js.map +1 -1
- package/dist/recipes/schema.d.ts +17 -2
- package/dist/recipes/schemaGenerator.d.ts +28 -0
- package/dist/recipes/schemaGenerator.js +565 -0
- package/dist/recipes/schemaGenerator.js.map +1 -0
- package/dist/recipes/stepObservation.d.ts +44 -0
- package/dist/recipes/stepObservation.js +232 -0
- package/dist/recipes/stepObservation.js.map +1 -0
- package/dist/recipes/templateEngine.d.ts +62 -0
- package/dist/recipes/templateEngine.js +201 -0
- package/dist/recipes/templateEngine.js.map +1 -0
- package/dist/recipes/toolRegistry.d.ts +186 -0
- package/dist/recipes/toolRegistry.js +309 -0
- package/dist/recipes/toolRegistry.js.map +1 -0
- package/dist/recipes/tools/asana.d.ts +16 -0
- package/dist/recipes/tools/asana.js +524 -0
- package/dist/recipes/tools/asana.js.map +1 -0
- package/dist/recipes/tools/calendar.d.ts +6 -0
- package/dist/recipes/tools/calendar.js +61 -0
- package/dist/recipes/tools/calendar.js.map +1 -0
- package/dist/recipes/tools/confluence.d.ts +6 -0
- package/dist/recipes/tools/confluence.js +254 -0
- package/dist/recipes/tools/confluence.js.map +1 -0
- package/dist/recipes/tools/datadog.d.ts +6 -0
- package/dist/recipes/tools/datadog.js +239 -0
- package/dist/recipes/tools/datadog.js.map +1 -0
- package/dist/recipes/tools/diagnostics.d.ts +6 -0
- package/dist/recipes/tools/diagnostics.js +36 -0
- package/dist/recipes/tools/diagnostics.js.map +1 -0
- package/dist/recipes/tools/discord.d.ts +18 -0
- package/dist/recipes/tools/discord.js +254 -0
- package/dist/recipes/tools/discord.js.map +1 -0
- package/dist/recipes/tools/file.d.ts +12 -0
- package/dist/recipes/tools/file.js +174 -0
- package/dist/recipes/tools/file.js.map +1 -0
- package/dist/recipes/tools/git.d.ts +6 -0
- package/dist/recipes/tools/git.js +63 -0
- package/dist/recipes/tools/git.js.map +1 -0
- package/dist/recipes/tools/github.d.ts +6 -0
- package/dist/recipes/tools/github.js +116 -0
- package/dist/recipes/tools/github.js.map +1 -0
- package/dist/recipes/tools/gitlab.d.ts +11 -0
- package/dist/recipes/tools/gitlab.js +285 -0
- package/dist/recipes/tools/gitlab.js.map +1 -0
- package/dist/recipes/tools/gmail.d.ts +6 -0
- package/dist/recipes/tools/gmail.js +434 -0
- package/dist/recipes/tools/gmail.js.map +1 -0
- package/dist/recipes/tools/googleDrive.d.ts +1 -0
- package/dist/recipes/tools/googleDrive.js +55 -0
- package/dist/recipes/tools/googleDrive.js.map +1 -0
- package/dist/recipes/tools/hubspot.d.ts +6 -0
- package/dist/recipes/tools/hubspot.js +232 -0
- package/dist/recipes/tools/hubspot.js.map +1 -0
- package/dist/recipes/tools/index.d.ts +30 -0
- package/dist/recipes/tools/index.js +33 -0
- package/dist/recipes/tools/index.js.map +1 -0
- package/dist/recipes/tools/intercom.d.ts +6 -0
- package/dist/recipes/tools/intercom.js +226 -0
- package/dist/recipes/tools/intercom.js.map +1 -0
- package/dist/recipes/tools/jira.d.ts +14 -0
- package/dist/recipes/tools/jira.js +369 -0
- package/dist/recipes/tools/jira.js.map +1 -0
- package/dist/recipes/tools/linear.d.ts +7 -0
- package/dist/recipes/tools/linear.js +307 -0
- package/dist/recipes/tools/linear.js.map +1 -0
- package/dist/recipes/tools/meetingNotes.d.ts +21 -0
- package/dist/recipes/tools/meetingNotes.js +701 -0
- package/dist/recipes/tools/meetingNotes.js.map +1 -0
- package/dist/recipes/tools/notion.d.ts +6 -0
- package/dist/recipes/tools/notion.js +278 -0
- package/dist/recipes/tools/notion.js.map +1 -0
- package/dist/recipes/tools/pagerduty.d.ts +15 -0
- package/dist/recipes/tools/pagerduty.js +451 -0
- package/dist/recipes/tools/pagerduty.js.map +1 -0
- package/dist/recipes/tools/sentry.d.ts +12 -0
- package/dist/recipes/tools/sentry.js +73 -0
- package/dist/recipes/tools/sentry.js.map +1 -0
- package/dist/recipes/tools/slack.d.ts +6 -0
- package/dist/recipes/tools/slack.js +82 -0
- package/dist/recipes/tools/slack.js.map +1 -0
- package/dist/recipes/tools/stripe.d.ts +6 -0
- package/dist/recipes/tools/stripe.js +265 -0
- package/dist/recipes/tools/stripe.js.map +1 -0
- package/dist/recipes/tools/zendesk.d.ts +6 -0
- package/dist/recipes/tools/zendesk.js +245 -0
- package/dist/recipes/tools/zendesk.js.map +1 -0
- package/dist/recipes/validation.d.ts +13 -0
- package/dist/recipes/validation.js +617 -0
- package/dist/recipes/validation.js.map +1 -0
- package/dist/recipes/yamlRunner.d.ts +116 -1
- package/dist/recipes/yamlRunner.js +1000 -401
- package/dist/recipes/yamlRunner.js.map +1 -1
- package/dist/recipesHttp.d.ts +137 -6
- package/dist/recipesHttp.js +941 -29
- package/dist/recipesHttp.js.map +1 -1
- package/dist/riskTier.js +7 -1
- package/dist/riskTier.js.map +1 -1
- package/dist/runLog.d.ts +100 -1
- package/dist/runLog.js +258 -5
- package/dist/runLog.js.map +1 -1
- package/dist/schemas/dry-run-plan.v1.json +139 -0
- package/dist/schemas/recipe.v1.json +684 -0
- package/dist/server.d.ts +121 -8
- package/dist/server.js +538 -735
- package/dist/server.js.map +1 -1
- package/dist/ssrfGuard.d.ts +54 -0
- package/dist/ssrfGuard.js +122 -0
- package/dist/ssrfGuard.js.map +1 -0
- package/dist/streamableHttp.d.ts +39 -1
- package/dist/streamableHttp.js +128 -17
- package/dist/streamableHttp.js.map +1 -1
- package/dist/tokenUsageTracker.d.ts +33 -0
- package/dist/tokenUsageTracker.js +146 -0
- package/dist/tokenUsageTracker.js.map +1 -0
- package/dist/tools/activityLog.d.ts +2 -0
- package/dist/tools/addLinearComment.d.ts +1 -0
- package/dist/tools/addLinearComment.js +4 -2
- package/dist/tools/addLinearComment.js.map +1 -1
- package/dist/tools/batchLsp.d.ts +3 -0
- package/dist/tools/bridgeDoctor.d.ts +1 -0
- package/dist/tools/bridgeDoctor.js +2 -2
- package/dist/tools/bridgeDoctor.js.map +1 -1
- package/dist/tools/bridgeStatus.d.ts +1 -0
- package/dist/tools/cancelClaudeTask.d.ts +2 -0
- package/dist/tools/cancelClaudeTask.js +1 -0
- package/dist/tools/cancelClaudeTask.js.map +1 -1
- package/dist/tools/checkDocumentDirty.d.ts +1 -0
- package/dist/tools/clipboard.d.ts +2 -0
- package/dist/tools/closeTabs.d.ts +2 -0
- package/dist/tools/codeLens.d.ts +1 -0
- package/dist/tools/contextBundle.d.ts +1 -0
- package/dist/tools/createIssueFromAIComment.d.ts +1 -0
- package/dist/tools/createLinearIssue.d.ts +1 -0
- package/dist/tools/ctxGetTaskContext.d.ts +1 -0
- package/dist/tools/ctxQueryTraces.d.ts +1 -0
- package/dist/tools/ctxSaveTrace.d.ts +1 -0
- package/dist/tools/debug.d.ts +4 -0
- package/dist/tools/decorations.d.ts +2 -0
- package/dist/tools/documentLinks.d.ts +1 -0
- package/dist/tools/editText.d.ts +1 -0
- package/dist/tools/enrichCommit.d.ts +1 -0
- package/dist/tools/enrichStackTrace.d.ts +1 -0
- package/dist/tools/explainDiagnostic.d.ts +1 -0
- package/dist/tools/explainSymbol.d.ts +1 -0
- package/dist/tools/fetchCalendarEvents.d.ts +1 -0
- package/dist/tools/fetchGithubIssue.d.ts +1 -0
- package/dist/tools/fetchGithubPR.d.ts +1 -0
- package/dist/tools/fetchLinearIssue.d.ts +1 -0
- package/dist/tools/fetchSentryIssue.d.ts +1 -0
- package/dist/tools/fetchSlackProfile.d.ts +1 -0
- package/dist/tools/fetchSlackProfile.js +4 -1
- package/dist/tools/fetchSlackProfile.js.map +1 -1
- package/dist/tools/fileOperations.d.ts +3 -0
- package/dist/tools/fileWatcher.d.ts +2 -0
- package/dist/tools/findFiles.d.ts +1 -0
- package/dist/tools/findRelatedTests.d.ts +1 -0
- package/dist/tools/fixAllLintErrors.d.ts +1 -0
- package/dist/tools/foldingRanges.d.ts +1 -0
- package/dist/tools/formatDocument.d.ts +1 -0
- package/dist/tools/generateTests.d.ts +1 -0
- package/dist/tools/getAIComments.d.ts +1 -0
- package/dist/tools/getAnalyticsReport.d.ts +1 -0
- package/dist/tools/getArchitectureContext.d.ts +1 -0
- package/dist/tools/getBufferContent.d.ts +1 -0
- package/dist/tools/getChangeImpact.d.ts +1 -0
- package/dist/tools/getClaudeTaskStatus.d.ts +2 -0
- package/dist/tools/getClaudeTaskStatus.js +1 -0
- package/dist/tools/getClaudeTaskStatus.js.map +1 -1
- package/dist/tools/getCodeCoverage.d.ts +1 -0
- package/dist/tools/getCommitsForIssue.d.ts +1 -0
- package/dist/tools/getConnectorStatus.d.ts +1 -0
- package/dist/tools/getCurrentSelection.d.ts +2 -0
- package/dist/tools/getDebugState.d.ts +1 -0
- package/dist/tools/getDependencyTree.d.ts +1 -0
- package/dist/tools/getDiagnostics.d.ts +1 -0
- package/dist/tools/getDiffFromHandoff.d.ts +1 -0
- package/dist/tools/getDocumentSymbols.d.ts +25 -0
- package/dist/tools/getDocumentSymbols.js +74 -8
- package/dist/tools/getDocumentSymbols.js.map +1 -1
- package/dist/tools/getFileTree.d.ts +1 -0
- package/dist/tools/getGitDiff.d.ts +1 -0
- package/dist/tools/getGitHotspots.d.ts +1 -0
- package/dist/tools/getGitLog.d.ts +1 -0
- package/dist/tools/getGitStatus.d.ts +1 -0
- package/dist/tools/getImportTree.d.ts +1 -0
- package/dist/tools/getImportedSignatures.d.ts +1 -0
- package/dist/tools/getOpenEditors.d.ts +1 -0
- package/dist/tools/getPRTemplate.d.ts +1 -0
- package/dist/tools/getProjectContext.d.ts +1 -0
- package/dist/tools/getProjectInfo.d.ts +1 -0
- package/dist/tools/getSecurityAdvisories.d.ts +1 -0
- package/dist/tools/getSecurityAdvisories.js +10 -1
- package/dist/tools/getSecurityAdvisories.js.map +1 -1
- package/dist/tools/getSessionUsage.d.ts +4 -0
- package/dist/tools/getSessionUsage.js +3 -0
- package/dist/tools/getSessionUsage.js.map +1 -1
- package/dist/tools/getSymbolHistory.d.ts +1 -0
- package/dist/tools/getToolCapabilities.d.ts +1 -0
- package/dist/tools/getTypeSignature.d.ts +1 -0
- package/dist/tools/getWorkspaceFolders.d.ts +1 -0
- package/dist/tools/getWorkspaceSettings.d.ts +1 -0
- package/dist/tools/gitHistory.d.ts +2 -0
- package/dist/tools/gitWrite.d.ts +11 -0
- package/dist/tools/github/actions.d.ts +2 -0
- package/dist/tools/github/actions.js +4 -2
- package/dist/tools/github/actions.js.map +1 -1
- package/dist/tools/github/composite.d.ts +342 -0
- package/dist/tools/github/composite.js +343 -0
- package/dist/tools/github/composite.js.map +1 -0
- package/dist/tools/github/index.d.ts +1 -0
- package/dist/tools/github/index.js +1 -0
- package/dist/tools/github/index.js.map +1 -1
- package/dist/tools/github/issues.d.ts +4 -0
- package/dist/tools/github/issues.js +8 -4
- package/dist/tools/github/issues.js.map +1 -1
- package/dist/tools/github/pr.d.ts +7 -0
- package/dist/tools/github/pr.js +50 -12
- package/dist/tools/github/pr.js.map +1 -1
- package/dist/tools/handoffNote.d.ts +4 -0
- package/dist/tools/handoffNote.js +2 -0
- package/dist/tools/handoffNote.js.map +1 -1
- package/dist/tools/hoverAtCursor.d.ts +1 -0
- package/dist/tools/httpClient.d.ts +2 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.js +47 -8
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/inlayHints.d.ts +1 -0
- package/dist/tools/launchQuickTask.d.ts +2 -0
- package/dist/tools/launchQuickTask.js +1 -0
- package/dist/tools/launchQuickTask.js.map +1 -1
- package/dist/tools/listClaudeTasks.d.ts +2 -0
- package/dist/tools/listClaudeTasks.js +1 -0
- package/dist/tools/listClaudeTasks.js.map +1 -1
- package/dist/tools/listTerminals.d.ts +1 -0
- package/dist/tools/lsp.d.ts +14 -0
- package/dist/tools/navigateToSymbolByName.d.ts +1 -0
- package/dist/tools/openDiff.d.ts +1 -0
- package/dist/tools/openFile.d.ts +1 -0
- package/dist/tools/openInBrowser.d.ts +1 -0
- package/dist/tools/organizeImports.d.ts +1 -0
- package/dist/tools/performanceReport.d.ts +1 -0
- package/dist/tools/planPersistence.d.ts +5 -0
- package/dist/tools/previewEdit.d.ts +1 -0
- package/dist/tools/refactorAnalyze.d.ts +1 -0
- package/dist/tools/refactorPreview.d.ts +2 -0
- package/dist/tools/refactorPreview.js +1 -0
- package/dist/tools/refactorPreview.js.map +1 -1
- package/dist/tools/replaceBlock.d.ts +1 -0
- package/dist/tools/resumeClaudeTask.d.ts +2 -0
- package/dist/tools/resumeClaudeTask.js +1 -0
- package/dist/tools/resumeClaudeTask.js.map +1 -1
- package/dist/tools/runClaudeTask.d.ts +2 -0
- package/dist/tools/runClaudeTask.js +1 -0
- package/dist/tools/runClaudeTask.js.map +1 -1
- package/dist/tools/runCommand.d.ts +1 -0
- package/dist/tools/runTests.d.ts +1 -0
- package/dist/tools/saveDocument.d.ts +1 -0
- package/dist/tools/screenshotAndAnnotate.d.ts +1 -0
- package/dist/tools/searchAndReplace.d.ts +1 -0
- package/dist/tools/searchTools.d.ts +1 -0
- package/dist/tools/searchTools.js +1 -1
- package/dist/tools/searchTools.js.map +1 -1
- package/dist/tools/searchWorkspace.d.ts +1 -0
- package/dist/tools/selectionRanges.d.ts +1 -0
- package/dist/tools/semanticTokens.d.ts +1 -0
- package/dist/tools/setActiveWorkspaceFolder.d.ts +1 -0
- package/dist/tools/signatureHelp.d.ts +1 -0
- package/dist/tools/slackListChannels.d.ts +1 -0
- package/dist/tools/slackListChannels.js.map +1 -1
- package/dist/tools/slackPostMessage.d.ts +1 -0
- package/dist/tools/slackPostMessage.js +11 -6
- package/dist/tools/slackPostMessage.js.map +1 -1
- package/dist/tools/terminal.d.ts +6 -0
- package/dist/tools/testTraceToSource.d.ts +1 -0
- package/dist/tools/testTraceToSource.js +2 -2
- package/dist/tools/testTraceToSource.js.map +1 -1
- package/dist/tools/transaction.d.ts +23 -0
- package/dist/tools/transaction.js +29 -0
- package/dist/tools/transaction.js.map +1 -1
- package/dist/tools/typeHierarchy.d.ts +1 -0
- package/dist/tools/updateLinearIssue.d.ts +1 -0
- package/dist/tools/updateLinearIssue.js +20 -6
- package/dist/tools/updateLinearIssue.js.map +1 -1
- package/dist/tools/utils.d.ts +2 -0
- package/dist/tools/utils.js.map +1 -1
- package/dist/tools/vscodeCommands.d.ts +2 -0
- package/dist/tools/vscodeTasks.d.ts +2 -0
- package/dist/tools/workspaceSettings.d.ts +1 -0
- package/dist/traceEncryption.d.ts +46 -0
- package/dist/traceEncryption.js +124 -0
- package/dist/traceEncryption.js.map +1 -0
- package/dist/transport.d.ts +46 -1
- package/dist/transport.js +173 -19
- package/dist/transport.js.map +1 -1
- package/package.json +30 -8
- package/scripts/mcp-stdio-shim.cjs +19 -3
- package/scripts/start-all.sh +30 -1
- package/templates/automation-policies/recipe-authoring.json +25 -0
- package/templates/automation-policy.example.json +6 -0
- package/templates/co.patchwork-os.bridge.plist +34 -0
- package/templates/policies/README.md +72 -0
- package/templates/policies/conservative.json +14 -0
- package/templates/policies/developer.json +14 -0
- package/templates/policies/headless-ci.json +24 -0
- package/templates/policies/personal-assistant.json +15 -0
- package/templates/policies/regulated-industry.json +18 -0
- package/templates/recipes/lint-on-save.yaml +1 -2
- package/templates/recipes/morning-brief-slack.yaml +57 -0
- package/templates/recipes/morning-brief.yaml +2 -2
- package/templates/recipes/project-health-check.yaml +50 -0
- package/templates/recipes/webhook/README.md +70 -0
- package/templates/recipes/webhook/capture-thought.yaml +26 -0
- package/templates/recipes/webhook/customer-escalation.yaml +49 -0
- package/templates/recipes/webhook/incident-intake.yaml +46 -0
- package/templates/recipes/webhook/meeting-prep.yaml +48 -0
- package/templates/recipes/webhook/morning-brief.yaml +57 -0
|
@@ -0,0 +1,684 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/patchworkos/recipes/main/schema/recipe.v1.json",
|
|
4
|
+
"title": "Patchwork Recipe",
|
|
5
|
+
"description": "YAML recipe schema for Patchwork automation",
|
|
6
|
+
"x-taplo": {
|
|
7
|
+
"file-patterns": [
|
|
8
|
+
"*.patchwork.yaml",
|
|
9
|
+
"*.patchwork.yml"
|
|
10
|
+
]
|
|
11
|
+
},
|
|
12
|
+
"type": "object",
|
|
13
|
+
"required": [
|
|
14
|
+
"name",
|
|
15
|
+
"trigger",
|
|
16
|
+
"steps"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"name": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "Recipe name (kebab-case recommended)",
|
|
22
|
+
"pattern": "^[a-z0-9-]+$"
|
|
23
|
+
},
|
|
24
|
+
"description": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "Human-readable description of what this recipe does"
|
|
27
|
+
},
|
|
28
|
+
"maxConcurrency": {
|
|
29
|
+
"type": "number",
|
|
30
|
+
"description": "Maximum number of chained steps that may execute in parallel"
|
|
31
|
+
},
|
|
32
|
+
"maxDepth": {
|
|
33
|
+
"type": "number",
|
|
34
|
+
"description": "Maximum nested recipe depth for chained recipes"
|
|
35
|
+
},
|
|
36
|
+
"version": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"description": "Semantic version",
|
|
39
|
+
"default": "1.0.0"
|
|
40
|
+
},
|
|
41
|
+
"apiVersion": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"description": "Patchwork API version",
|
|
44
|
+
"enum": [
|
|
45
|
+
"patchwork.sh/v1"
|
|
46
|
+
],
|
|
47
|
+
"default": "patchwork.sh/v1"
|
|
48
|
+
},
|
|
49
|
+
"trigger": {
|
|
50
|
+
"type": "object",
|
|
51
|
+
"description": "When to run this recipe",
|
|
52
|
+
"required": [
|
|
53
|
+
"type"
|
|
54
|
+
],
|
|
55
|
+
"properties": {
|
|
56
|
+
"type": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"enum": [
|
|
59
|
+
"manual",
|
|
60
|
+
"cron",
|
|
61
|
+
"webhook",
|
|
62
|
+
"file_watch",
|
|
63
|
+
"git_hook",
|
|
64
|
+
"on_file_save",
|
|
65
|
+
"on_test_run",
|
|
66
|
+
"chained"
|
|
67
|
+
],
|
|
68
|
+
"description": "Trigger type"
|
|
69
|
+
},
|
|
70
|
+
"at": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"description": "Cron expression (for cron trigger)"
|
|
73
|
+
},
|
|
74
|
+
"glob": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"description": "File glob pattern (for file_watch trigger)"
|
|
77
|
+
},
|
|
78
|
+
"on": {
|
|
79
|
+
"type": "string",
|
|
80
|
+
"enum": [
|
|
81
|
+
"post-commit",
|
|
82
|
+
"pre-push",
|
|
83
|
+
"post-merge"
|
|
84
|
+
],
|
|
85
|
+
"description": "Git hook event (for git_hook trigger)"
|
|
86
|
+
},
|
|
87
|
+
"filter": {
|
|
88
|
+
"type": "string",
|
|
89
|
+
"description": "File filter pattern (for file_watch trigger)"
|
|
90
|
+
},
|
|
91
|
+
"eventSource": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"description": "Webhook/event source name after legacy trigger normalization"
|
|
94
|
+
},
|
|
95
|
+
"eventFilter": {
|
|
96
|
+
"oneOf": [
|
|
97
|
+
{
|
|
98
|
+
"type": "string"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"type": "object"
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
"description": "Webhook/event filter after legacy trigger normalization"
|
|
105
|
+
},
|
|
106
|
+
"eventLeadTimeHours": {
|
|
107
|
+
"type": "number",
|
|
108
|
+
"description": "Lead time in hours after legacy trigger normalization"
|
|
109
|
+
},
|
|
110
|
+
"eventLeadTimeMinutes": {
|
|
111
|
+
"type": "number",
|
|
112
|
+
"description": "Lead time in minutes after legacy trigger normalization"
|
|
113
|
+
},
|
|
114
|
+
"legacyType": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"enum": [
|
|
117
|
+
"event"
|
|
118
|
+
],
|
|
119
|
+
"description": "Original trigger type preserved during legacy normalization"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"context": {
|
|
124
|
+
"type": "array",
|
|
125
|
+
"description": "Context blocks to load before running steps",
|
|
126
|
+
"items": {
|
|
127
|
+
"type": "object",
|
|
128
|
+
"required": [
|
|
129
|
+
"type"
|
|
130
|
+
],
|
|
131
|
+
"properties": {
|
|
132
|
+
"type": {
|
|
133
|
+
"type": "string",
|
|
134
|
+
"enum": [
|
|
135
|
+
"file",
|
|
136
|
+
"env"
|
|
137
|
+
]
|
|
138
|
+
},
|
|
139
|
+
"path": {
|
|
140
|
+
"type": "string"
|
|
141
|
+
},
|
|
142
|
+
"keys": {
|
|
143
|
+
"type": "array",
|
|
144
|
+
"items": {
|
|
145
|
+
"type": "string"
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"steps": {
|
|
152
|
+
"type": "array",
|
|
153
|
+
"description": "Sequence of steps to execute",
|
|
154
|
+
"items": {
|
|
155
|
+
"oneOf": [
|
|
156
|
+
{
|
|
157
|
+
"type": "object",
|
|
158
|
+
"required": [
|
|
159
|
+
"agent"
|
|
160
|
+
],
|
|
161
|
+
"properties": {
|
|
162
|
+
"id": {
|
|
163
|
+
"type": "string",
|
|
164
|
+
"description": "Unique chained step identifier used for outputs and dependencies"
|
|
165
|
+
},
|
|
166
|
+
"awaits": {
|
|
167
|
+
"type": "array",
|
|
168
|
+
"description": "Step IDs that must complete before this step runs",
|
|
169
|
+
"items": {
|
|
170
|
+
"type": "string"
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"when": {
|
|
174
|
+
"type": "string",
|
|
175
|
+
"description": "Template condition that controls whether this step runs"
|
|
176
|
+
},
|
|
177
|
+
"optional": {
|
|
178
|
+
"type": "boolean",
|
|
179
|
+
"description": "Whether step failure should be tolerated"
|
|
180
|
+
},
|
|
181
|
+
"risk": {
|
|
182
|
+
"type": "string",
|
|
183
|
+
"enum": [
|
|
184
|
+
"low",
|
|
185
|
+
"medium",
|
|
186
|
+
"high"
|
|
187
|
+
],
|
|
188
|
+
"description": "Risk level for this step"
|
|
189
|
+
},
|
|
190
|
+
"transform": {
|
|
191
|
+
"type": "string",
|
|
192
|
+
"description": "Template rendered after tool execution. Use $result to reference the tool output. Supports all template expressions."
|
|
193
|
+
},
|
|
194
|
+
"retry": {
|
|
195
|
+
"type": "number",
|
|
196
|
+
"description": "Number of times to retry this step on failure (overrides recipe-level on_error.retry)"
|
|
197
|
+
},
|
|
198
|
+
"retryDelay": {
|
|
199
|
+
"type": "number",
|
|
200
|
+
"description": "Milliseconds to wait between retries (default 1000)"
|
|
201
|
+
},
|
|
202
|
+
"agent": {
|
|
203
|
+
"type": "object",
|
|
204
|
+
"required": [
|
|
205
|
+
"prompt"
|
|
206
|
+
],
|
|
207
|
+
"description": "Agent step configuration",
|
|
208
|
+
"properties": {
|
|
209
|
+
"prompt": {
|
|
210
|
+
"type": "string",
|
|
211
|
+
"description": "Prompt to send to the AI (supports {{templates}})"
|
|
212
|
+
},
|
|
213
|
+
"model": {
|
|
214
|
+
"type": "string",
|
|
215
|
+
"description": "Model to use for the agent step"
|
|
216
|
+
},
|
|
217
|
+
"driver": {
|
|
218
|
+
"type": "string",
|
|
219
|
+
"enum": [
|
|
220
|
+
"claude",
|
|
221
|
+
"claude-code",
|
|
222
|
+
"api",
|
|
223
|
+
"openai",
|
|
224
|
+
"grok",
|
|
225
|
+
"gemini",
|
|
226
|
+
"anthropic"
|
|
227
|
+
],
|
|
228
|
+
"description": "Driver for agent execution"
|
|
229
|
+
},
|
|
230
|
+
"into": {
|
|
231
|
+
"type": "string",
|
|
232
|
+
"description": "Variable name to store output in context"
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"type": "object",
|
|
240
|
+
"required": [
|
|
241
|
+
"tool"
|
|
242
|
+
],
|
|
243
|
+
"properties": {
|
|
244
|
+
"id": {
|
|
245
|
+
"type": "string",
|
|
246
|
+
"description": "Unique chained step identifier used for outputs and dependencies"
|
|
247
|
+
},
|
|
248
|
+
"awaits": {
|
|
249
|
+
"type": "array",
|
|
250
|
+
"description": "Step IDs that must complete before this step runs",
|
|
251
|
+
"items": {
|
|
252
|
+
"type": "string"
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
"when": {
|
|
256
|
+
"type": "string",
|
|
257
|
+
"description": "Template condition that controls whether this step runs"
|
|
258
|
+
},
|
|
259
|
+
"optional": {
|
|
260
|
+
"type": "boolean",
|
|
261
|
+
"description": "Whether step failure should be tolerated"
|
|
262
|
+
},
|
|
263
|
+
"risk": {
|
|
264
|
+
"type": "string",
|
|
265
|
+
"enum": [
|
|
266
|
+
"low",
|
|
267
|
+
"medium",
|
|
268
|
+
"high"
|
|
269
|
+
],
|
|
270
|
+
"description": "Risk level for this step"
|
|
271
|
+
},
|
|
272
|
+
"transform": {
|
|
273
|
+
"type": "string",
|
|
274
|
+
"description": "Template rendered after tool execution. Use $result to reference the tool output. Supports all template expressions."
|
|
275
|
+
},
|
|
276
|
+
"retry": {
|
|
277
|
+
"type": "number",
|
|
278
|
+
"description": "Number of times to retry this step on failure (overrides recipe-level on_error.retry)"
|
|
279
|
+
},
|
|
280
|
+
"retryDelay": {
|
|
281
|
+
"type": "number",
|
|
282
|
+
"description": "Milliseconds to wait between retries (default 1000)"
|
|
283
|
+
},
|
|
284
|
+
"tool": {
|
|
285
|
+
"type": "string",
|
|
286
|
+
"not": {
|
|
287
|
+
"enum": []
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
"into": {
|
|
291
|
+
"type": "string"
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"type": "object",
|
|
297
|
+
"anyOf": [
|
|
298
|
+
{
|
|
299
|
+
"required": [
|
|
300
|
+
"recipe"
|
|
301
|
+
]
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"required": [
|
|
305
|
+
"chain"
|
|
306
|
+
]
|
|
307
|
+
}
|
|
308
|
+
],
|
|
309
|
+
"properties": {
|
|
310
|
+
"id": {
|
|
311
|
+
"type": "string",
|
|
312
|
+
"description": "Unique chained step identifier used for outputs and dependencies"
|
|
313
|
+
},
|
|
314
|
+
"awaits": {
|
|
315
|
+
"type": "array",
|
|
316
|
+
"description": "Step IDs that must complete before this step runs",
|
|
317
|
+
"items": {
|
|
318
|
+
"type": "string"
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
"when": {
|
|
322
|
+
"type": "string",
|
|
323
|
+
"description": "Template condition that controls whether this step runs"
|
|
324
|
+
},
|
|
325
|
+
"optional": {
|
|
326
|
+
"type": "boolean",
|
|
327
|
+
"description": "Whether step failure should be tolerated"
|
|
328
|
+
},
|
|
329
|
+
"risk": {
|
|
330
|
+
"type": "string",
|
|
331
|
+
"enum": [
|
|
332
|
+
"low",
|
|
333
|
+
"medium",
|
|
334
|
+
"high"
|
|
335
|
+
],
|
|
336
|
+
"description": "Risk level for this step"
|
|
337
|
+
},
|
|
338
|
+
"transform": {
|
|
339
|
+
"type": "string",
|
|
340
|
+
"description": "Template rendered after tool execution. Use $result to reference the tool output. Supports all template expressions."
|
|
341
|
+
},
|
|
342
|
+
"retry": {
|
|
343
|
+
"type": "number",
|
|
344
|
+
"description": "Number of times to retry this step on failure (overrides recipe-level on_error.retry)"
|
|
345
|
+
},
|
|
346
|
+
"retryDelay": {
|
|
347
|
+
"type": "number",
|
|
348
|
+
"description": "Milliseconds to wait between retries (default 1000)"
|
|
349
|
+
},
|
|
350
|
+
"recipe": {
|
|
351
|
+
"type": "string",
|
|
352
|
+
"description": "Nested recipe name or path"
|
|
353
|
+
},
|
|
354
|
+
"chain": {
|
|
355
|
+
"type": "string",
|
|
356
|
+
"description": "Alias for nested recipe name or path"
|
|
357
|
+
},
|
|
358
|
+
"vars": {
|
|
359
|
+
"type": "object",
|
|
360
|
+
"description": "Template variables passed into a nested recipe step",
|
|
361
|
+
"additionalProperties": {
|
|
362
|
+
"type": "string"
|
|
363
|
+
}
|
|
364
|
+
},
|
|
365
|
+
"output": {
|
|
366
|
+
"type": "string",
|
|
367
|
+
"description": "Output key for the nested recipe result"
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"type": "object",
|
|
373
|
+
"required": [
|
|
374
|
+
"parallel"
|
|
375
|
+
],
|
|
376
|
+
"properties": {
|
|
377
|
+
"id": {
|
|
378
|
+
"type": "string",
|
|
379
|
+
"description": "Optional group id — used as awaits target by later steps"
|
|
380
|
+
},
|
|
381
|
+
"awaits": {
|
|
382
|
+
"type": "array",
|
|
383
|
+
"description": "Step IDs that must complete before this group starts",
|
|
384
|
+
"items": {
|
|
385
|
+
"type": "string"
|
|
386
|
+
}
|
|
387
|
+
},
|
|
388
|
+
"parallel": {
|
|
389
|
+
"type": "array",
|
|
390
|
+
"description": "Run these steps concurrently. All must finish before later steps that await this group.",
|
|
391
|
+
"items": {
|
|
392
|
+
"oneOf": [
|
|
393
|
+
{
|
|
394
|
+
"type": "object",
|
|
395
|
+
"required": [
|
|
396
|
+
"agent"
|
|
397
|
+
],
|
|
398
|
+
"properties": {
|
|
399
|
+
"id": {
|
|
400
|
+
"type": "string",
|
|
401
|
+
"description": "Unique chained step identifier used for outputs and dependencies"
|
|
402
|
+
},
|
|
403
|
+
"awaits": {
|
|
404
|
+
"type": "array",
|
|
405
|
+
"description": "Step IDs that must complete before this step runs",
|
|
406
|
+
"items": {
|
|
407
|
+
"type": "string"
|
|
408
|
+
}
|
|
409
|
+
},
|
|
410
|
+
"when": {
|
|
411
|
+
"type": "string",
|
|
412
|
+
"description": "Template condition that controls whether this step runs"
|
|
413
|
+
},
|
|
414
|
+
"optional": {
|
|
415
|
+
"type": "boolean",
|
|
416
|
+
"description": "Whether step failure should be tolerated"
|
|
417
|
+
},
|
|
418
|
+
"risk": {
|
|
419
|
+
"type": "string",
|
|
420
|
+
"enum": [
|
|
421
|
+
"low",
|
|
422
|
+
"medium",
|
|
423
|
+
"high"
|
|
424
|
+
],
|
|
425
|
+
"description": "Risk level for this step"
|
|
426
|
+
},
|
|
427
|
+
"transform": {
|
|
428
|
+
"type": "string",
|
|
429
|
+
"description": "Template rendered after tool execution. Use $result to reference the tool output. Supports all template expressions."
|
|
430
|
+
},
|
|
431
|
+
"retry": {
|
|
432
|
+
"type": "number",
|
|
433
|
+
"description": "Number of times to retry this step on failure (overrides recipe-level on_error.retry)"
|
|
434
|
+
},
|
|
435
|
+
"retryDelay": {
|
|
436
|
+
"type": "number",
|
|
437
|
+
"description": "Milliseconds to wait between retries (default 1000)"
|
|
438
|
+
},
|
|
439
|
+
"agent": {
|
|
440
|
+
"type": "object",
|
|
441
|
+
"required": [
|
|
442
|
+
"prompt"
|
|
443
|
+
],
|
|
444
|
+
"description": "Agent step configuration",
|
|
445
|
+
"properties": {
|
|
446
|
+
"prompt": {
|
|
447
|
+
"type": "string"
|
|
448
|
+
},
|
|
449
|
+
"model": {
|
|
450
|
+
"type": "string"
|
|
451
|
+
},
|
|
452
|
+
"driver": {
|
|
453
|
+
"type": "string",
|
|
454
|
+
"enum": [
|
|
455
|
+
"claude",
|
|
456
|
+
"claude-code",
|
|
457
|
+
"api",
|
|
458
|
+
"openai",
|
|
459
|
+
"grok",
|
|
460
|
+
"gemini",
|
|
461
|
+
"anthropic"
|
|
462
|
+
]
|
|
463
|
+
},
|
|
464
|
+
"into": {
|
|
465
|
+
"type": "string"
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
"type": "object",
|
|
473
|
+
"required": [
|
|
474
|
+
"tool"
|
|
475
|
+
],
|
|
476
|
+
"properties": {
|
|
477
|
+
"id": {
|
|
478
|
+
"type": "string",
|
|
479
|
+
"description": "Unique chained step identifier used for outputs and dependencies"
|
|
480
|
+
},
|
|
481
|
+
"awaits": {
|
|
482
|
+
"type": "array",
|
|
483
|
+
"description": "Step IDs that must complete before this step runs",
|
|
484
|
+
"items": {
|
|
485
|
+
"type": "string"
|
|
486
|
+
}
|
|
487
|
+
},
|
|
488
|
+
"when": {
|
|
489
|
+
"type": "string",
|
|
490
|
+
"description": "Template condition that controls whether this step runs"
|
|
491
|
+
},
|
|
492
|
+
"optional": {
|
|
493
|
+
"type": "boolean",
|
|
494
|
+
"description": "Whether step failure should be tolerated"
|
|
495
|
+
},
|
|
496
|
+
"risk": {
|
|
497
|
+
"type": "string",
|
|
498
|
+
"enum": [
|
|
499
|
+
"low",
|
|
500
|
+
"medium",
|
|
501
|
+
"high"
|
|
502
|
+
],
|
|
503
|
+
"description": "Risk level for this step"
|
|
504
|
+
},
|
|
505
|
+
"transform": {
|
|
506
|
+
"type": "string",
|
|
507
|
+
"description": "Template rendered after tool execution. Use $result to reference the tool output. Supports all template expressions."
|
|
508
|
+
},
|
|
509
|
+
"retry": {
|
|
510
|
+
"type": "number",
|
|
511
|
+
"description": "Number of times to retry this step on failure (overrides recipe-level on_error.retry)"
|
|
512
|
+
},
|
|
513
|
+
"retryDelay": {
|
|
514
|
+
"type": "number",
|
|
515
|
+
"description": "Milliseconds to wait between retries (default 1000)"
|
|
516
|
+
},
|
|
517
|
+
"tool": {
|
|
518
|
+
"type": "string",
|
|
519
|
+
"not": {
|
|
520
|
+
"enum": []
|
|
521
|
+
}
|
|
522
|
+
},
|
|
523
|
+
"into": {
|
|
524
|
+
"type": "string"
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
},
|
|
528
|
+
{
|
|
529
|
+
"type": "object",
|
|
530
|
+
"anyOf": [
|
|
531
|
+
{
|
|
532
|
+
"required": [
|
|
533
|
+
"recipe"
|
|
534
|
+
]
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
"required": [
|
|
538
|
+
"chain"
|
|
539
|
+
]
|
|
540
|
+
}
|
|
541
|
+
],
|
|
542
|
+
"properties": {
|
|
543
|
+
"id": {
|
|
544
|
+
"type": "string",
|
|
545
|
+
"description": "Unique chained step identifier used for outputs and dependencies"
|
|
546
|
+
},
|
|
547
|
+
"awaits": {
|
|
548
|
+
"type": "array",
|
|
549
|
+
"description": "Step IDs that must complete before this step runs",
|
|
550
|
+
"items": {
|
|
551
|
+
"type": "string"
|
|
552
|
+
}
|
|
553
|
+
},
|
|
554
|
+
"when": {
|
|
555
|
+
"type": "string",
|
|
556
|
+
"description": "Template condition that controls whether this step runs"
|
|
557
|
+
},
|
|
558
|
+
"optional": {
|
|
559
|
+
"type": "boolean",
|
|
560
|
+
"description": "Whether step failure should be tolerated"
|
|
561
|
+
},
|
|
562
|
+
"risk": {
|
|
563
|
+
"type": "string",
|
|
564
|
+
"enum": [
|
|
565
|
+
"low",
|
|
566
|
+
"medium",
|
|
567
|
+
"high"
|
|
568
|
+
],
|
|
569
|
+
"description": "Risk level for this step"
|
|
570
|
+
},
|
|
571
|
+
"transform": {
|
|
572
|
+
"type": "string",
|
|
573
|
+
"description": "Template rendered after tool execution. Use $result to reference the tool output. Supports all template expressions."
|
|
574
|
+
},
|
|
575
|
+
"retry": {
|
|
576
|
+
"type": "number",
|
|
577
|
+
"description": "Number of times to retry this step on failure (overrides recipe-level on_error.retry)"
|
|
578
|
+
},
|
|
579
|
+
"retryDelay": {
|
|
580
|
+
"type": "number",
|
|
581
|
+
"description": "Milliseconds to wait between retries (default 1000)"
|
|
582
|
+
},
|
|
583
|
+
"recipe": {
|
|
584
|
+
"type": "string",
|
|
585
|
+
"description": "Nested recipe name or path"
|
|
586
|
+
},
|
|
587
|
+
"chain": {
|
|
588
|
+
"type": "string",
|
|
589
|
+
"description": "Alias for nested recipe name or path"
|
|
590
|
+
},
|
|
591
|
+
"vars": {
|
|
592
|
+
"type": "object",
|
|
593
|
+
"description": "Template variables passed into a nested recipe step",
|
|
594
|
+
"additionalProperties": {
|
|
595
|
+
"type": "string"
|
|
596
|
+
}
|
|
597
|
+
},
|
|
598
|
+
"output": {
|
|
599
|
+
"type": "string",
|
|
600
|
+
"description": "Output key for the nested recipe result"
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
]
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
]
|
|
610
|
+
}
|
|
611
|
+
},
|
|
612
|
+
"expect": {
|
|
613
|
+
"type": "object",
|
|
614
|
+
"description": "Optional assertions for mocked recipe tests",
|
|
615
|
+
"properties": {
|
|
616
|
+
"stepsRun": {
|
|
617
|
+
"type": "number",
|
|
618
|
+
"description": "Expected number of executed steps"
|
|
619
|
+
},
|
|
620
|
+
"outputs": {
|
|
621
|
+
"type": "array",
|
|
622
|
+
"description": "Expected output paths or keys recorded by the run",
|
|
623
|
+
"items": {
|
|
624
|
+
"type": "string"
|
|
625
|
+
}
|
|
626
|
+
},
|
|
627
|
+
"errorMessage": {
|
|
628
|
+
"type": [
|
|
629
|
+
"string",
|
|
630
|
+
"null"
|
|
631
|
+
],
|
|
632
|
+
"description": "Expected final error message, or null for a clean run"
|
|
633
|
+
},
|
|
634
|
+
"context": {
|
|
635
|
+
"type": "object",
|
|
636
|
+
"description": "Expected context key/value pairs after the run",
|
|
637
|
+
"additionalProperties": {
|
|
638
|
+
"type": "string"
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
},
|
|
643
|
+
"output": {
|
|
644
|
+
"type": "object",
|
|
645
|
+
"description": "Output file configuration",
|
|
646
|
+
"properties": {
|
|
647
|
+
"path": {
|
|
648
|
+
"type": "string",
|
|
649
|
+
"description": "Path to write final output"
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
},
|
|
653
|
+
"on_error": {
|
|
654
|
+
"type": "object",
|
|
655
|
+
"description": "Error handling policy",
|
|
656
|
+
"properties": {
|
|
657
|
+
"retry": {
|
|
658
|
+
"type": "number",
|
|
659
|
+
"description": "Number of retries per failing step (overridden by step.retry)",
|
|
660
|
+
"default": 0
|
|
661
|
+
},
|
|
662
|
+
"retryDelay": {
|
|
663
|
+
"type": "number",
|
|
664
|
+
"description": "Milliseconds between retries (overridden by step.retryDelay)",
|
|
665
|
+
"default": 1000
|
|
666
|
+
},
|
|
667
|
+
"fallback": {
|
|
668
|
+
"type": "string",
|
|
669
|
+
"enum": [
|
|
670
|
+
"log_only",
|
|
671
|
+
"abort",
|
|
672
|
+
"deliver_original"
|
|
673
|
+
],
|
|
674
|
+
"description": "log_only / deliver_original: treat step failure as non-fatal (like optional); fail-open. abort (default): propagate failure."
|
|
675
|
+
},
|
|
676
|
+
"notify": {
|
|
677
|
+
"type": "boolean",
|
|
678
|
+
"description": "Reserved. yamlRunner currently posts Slack notifications on any step failure when slack is connected; gating on this flag is not yet wired.",
|
|
679
|
+
"default": true
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
}
|