stageflow 0.25.0 → 0.30.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.md +14 -3
- package/builtin-skills/browser/SKILL.md +42 -0
- package/dist/a2a/contracts.d.ts +1 -0
- package/dist/a2a/contracts.js +1 -0
- package/dist/a2a/registry.d.ts +2 -0
- package/dist/a2a/registry.js +20 -1
- package/dist/a2a/server.d.ts +7 -0
- package/dist/a2a/server.js +5 -2
- package/dist/a2a/service.d.ts +1 -1
- package/dist/a2a/service.js +57 -8
- package/dist/a2a/store.d.ts +8 -5
- package/dist/a2a/store.js +24 -67
- package/dist/agent/activity.d.ts +3 -0
- package/dist/agent/bootProviderConfig.d.ts +21 -0
- package/dist/agent/bootProviderConfig.js +74 -0
- package/dist/agent/claudeAdapter.js +2 -2
- package/dist/agent/cursorProvider.d.ts +2 -0
- package/dist/agent/cursorProvider.js +30 -5
- package/dist/agent/fakeAgent.d.ts +1 -0
- package/dist/agent/fakeAgent.js +13 -0
- package/dist/agent/piAdapter.d.ts +11 -24
- package/dist/agent/piAdapter.js +107 -50
- package/dist/agent/piIsolatedMcp.d.ts +2 -0
- package/dist/agent/piIsolatedMcp.js +10 -2
- package/dist/agent/piSessionFactory.d.ts +38 -0
- package/dist/agent/piSessionFactory.js +60 -0
- package/dist/agent/port.d.ts +8 -0
- package/dist/agent/streamLogRedact.d.ts +7 -1
- package/dist/agent/streamLogRedact.js +26 -11
- package/dist/browser/anchor.d.ts +27 -0
- package/dist/browser/anchor.js +127 -0
- package/dist/browser/auditSink.d.ts +38 -0
- package/dist/browser/auditSink.js +34 -0
- package/dist/browser/browserHost.d.ts +86 -0
- package/dist/browser/browserHost.js +7 -0
- package/dist/browser/browserSweep.d.ts +14 -0
- package/dist/browser/browserSweep.js +54 -0
- package/dist/browser/browserTeardown.d.ts +56 -0
- package/dist/browser/browserTeardown.js +235 -0
- package/dist/browser/fakeRemoteBrowserHost.d.ts +2 -0
- package/dist/browser/fakeRemoteBrowserHost.js +34 -0
- package/dist/browser/gateHandoff.d.ts +25 -0
- package/dist/browser/gateHandoff.js +83 -0
- package/dist/browser/humanLogin.d.ts +18 -0
- package/dist/browser/humanLogin.js +34 -0
- package/dist/browser/keyProvider.d.ts +10 -0
- package/dist/browser/keyProvider.js +39 -0
- package/dist/browser/localBrowserHost.d.ts +10 -0
- package/dist/browser/localBrowserHost.js +152 -0
- package/dist/browser/localProfileLock.d.ts +2 -0
- package/dist/browser/localProfileLock.js +218 -0
- package/dist/browser/localProfileStore.d.ts +5 -0
- package/dist/browser/localProfileStore.js +91 -0
- package/dist/browser/loginCheck.d.ts +53 -0
- package/dist/browser/loginCheck.js +147 -0
- package/dist/browser/memoryProfileLock.d.ts +2 -0
- package/dist/browser/memoryProfileLock.js +53 -0
- package/dist/browser/memoryProfileStore.d.ts +2 -0
- package/dist/browser/memoryProfileStore.js +31 -0
- package/dist/browser/navigationAudit.d.ts +16 -0
- package/dist/browser/navigationAudit.js +53 -0
- package/dist/browser/persistedEnv.d.ts +3 -0
- package/dist/browser/persistedEnv.js +15 -0
- package/dist/browser/profileLock.d.ts +40 -0
- package/dist/browser/profileLock.js +10 -0
- package/dist/browser/profileStore.d.ts +23 -0
- package/dist/browser/profileStore.js +39 -0
- package/dist/browser/runLiveness.d.ts +13 -0
- package/dist/browser/runLiveness.js +39 -0
- package/dist/browser/sitePolicy.d.ts +10 -0
- package/dist/browser/sitePolicy.js +61 -0
- package/dist/browser/stageBrowserEnv.d.ts +22 -0
- package/dist/browser/stageBrowserEnv.js +147 -0
- package/dist/browser/stageProfileLock.d.ts +17 -0
- package/dist/browser/stageProfileLock.js +39 -0
- package/dist/cli/artifactCommand.js +9 -16
- package/dist/cli/backupCommand.d.ts +9 -0
- package/dist/cli/backupCommand.js +111 -0
- package/dist/cli/browserCommand.d.ts +44 -0
- package/dist/cli/browserCommand.js +472 -0
- package/dist/cli/debugRunCommand.d.ts +10 -0
- package/dist/cli/debugRunCommand.js +109 -0
- package/dist/cli/doctorCommand.d.ts +32 -0
- package/dist/cli/doctorCommand.js +453 -0
- package/dist/cli/envelopeCommand.js +9 -2
- package/dist/cli/exportAllCommand.d.ts +55 -0
- package/dist/cli/exportAllCommand.js +218 -0
- package/dist/cli/exportRunCommand.js +23 -21
- package/dist/cli/hostClient.d.ts +41 -3
- package/dist/cli/hostClient.js +129 -14
- package/dist/cli/initCommand.d.ts +1 -0
- package/dist/cli/initCommand.js +23 -7
- package/dist/cli/initTemplates.d.ts +5 -2
- package/dist/cli/initTemplates.js +32 -2
- package/dist/cli/resolveSafeOutPath.d.ts +2 -0
- package/dist/cli/resolveSafeOutPath.js +40 -0
- package/dist/cli/restoreCommand.d.ts +10 -0
- package/dist/cli/restoreCommand.js +90 -0
- package/dist/cli/runCommand.d.ts +3 -2
- package/dist/cli/runCommand.js +93 -11
- package/dist/cli/runOutput.d.ts +4 -0
- package/dist/cli/runOutput.js +33 -7
- package/dist/cli/runStageCommand.d.ts +1 -0
- package/dist/cli/runStageCommand.js +44 -25
- package/dist/cli/runsCommand.d.ts +1 -1
- package/dist/cli/runsCommand.js +168 -10
- package/dist/cli/triggerCommand.d.ts +12 -0
- package/dist/cli/triggerCommand.js +183 -0
- package/dist/cli/validateCommand.d.ts +1 -1
- package/dist/cli/validateCommand.js +23 -6
- package/dist/cli.js +202 -32
- package/dist/config/browseCatalog.d.ts +1 -0
- package/dist/config/browseCatalog.js +5 -4
- package/dist/config/builtinSkills.d.ts +4 -0
- package/dist/config/builtinSkills.js +23 -0
- package/dist/config/catalogRelativePath.d.ts +63 -0
- package/dist/config/catalogRelativePath.js +126 -0
- package/dist/config/configOrigin.d.ts +27 -0
- package/dist/config/configOrigin.js +59 -0
- package/dist/config/createTrigger.d.ts +27 -0
- package/dist/config/createTrigger.js +232 -0
- package/dist/config/draftPackage.d.ts +117 -0
- package/dist/config/draftPackage.js +550 -0
- package/dist/config/ensureCatalogScanRoot.d.ts +16 -0
- package/dist/config/ensureCatalogScanRoot.js +73 -0
- package/dist/config/hostConfig.d.ts +57 -0
- package/dist/config/hostConfig.js +360 -0
- package/dist/config/listSkills.d.ts +26 -0
- package/dist/config/listSkills.js +206 -5
- package/dist/config/loadOutcome.d.ts +7 -1
- package/dist/config/loadPipeline.js +39 -2
- package/dist/config/loadStage.js +25 -0
- package/dist/config/loadStageflowManifest.js +25 -0
- package/dist/config/loadTask.d.ts +2 -0
- package/dist/config/loadTask.js +57 -18
- package/dist/config/loadTrigger.d.ts +9 -0
- package/dist/config/loadTrigger.js +120 -0
- package/dist/config/materializeStageModels.js +5 -1
- package/dist/config/mergePipelineIncludes.d.ts +3 -0
- package/dist/config/mergePipelineIncludes.js +19 -0
- package/dist/config/migrateYaml.js +6 -11
- package/dist/config/multiProjectCatalog.d.ts +32 -0
- package/dist/config/multiProjectCatalog.js +150 -0
- package/dist/config/normalizePipelineStageEntry.js +27 -1
- package/dist/config/parseCompletionContract.js +6 -0
- package/dist/config/pipelineStageKeys.js +3 -0
- package/dist/config/publishDraftPackage.d.ts +7 -0
- package/dist/config/publishDraftPackage.js +25 -0
- package/dist/config/resolveCatalogContext.js +1 -1
- package/dist/config/resolveCatalogRoots.d.ts +27 -0
- package/dist/config/resolveCatalogRoots.js +76 -0
- package/dist/config/resolveModel.d.ts +7 -1
- package/dist/config/resolveModel.js +11 -1
- package/dist/config/resolvePipelineDag.js +1 -1
- package/dist/config/resolveStageMcpServers.d.ts +9 -1
- package/dist/config/resolveStageMcpServers.js +36 -9
- package/dist/config/scanCatalogPaths.d.ts +1 -1
- package/dist/config/scanCatalogPaths.js +6 -2
- package/dist/config/secretFromEnvOrFile.d.ts +9 -0
- package/dist/config/secretFromEnvOrFile.js +34 -0
- package/dist/config/seededCatalog.d.ts +11 -0
- package/dist/config/seededCatalog.js +29 -0
- package/dist/config/stageBrowser.d.ts +12 -0
- package/dist/config/stageBrowser.js +118 -0
- package/dist/config/toolRequires.d.ts +24 -0
- package/dist/config/toolRequires.js +115 -0
- package/dist/config/triggerCatalog.d.ts +10 -0
- package/dist/config/triggerCatalog.js +37 -0
- package/dist/config/validateCatalog.d.ts +17 -3
- package/dist/config/validateCatalog.js +223 -3
- package/dist/config/validateCompletionContract.js +8 -0
- package/dist/diagnostics/checks.d.ts +39 -0
- package/dist/diagnostics/checks.js +135 -0
- package/dist/envelope/preEmitChecks.d.ts +1 -1
- package/dist/envelope/preEmitChecks.js +8 -0
- package/dist/errors/codes.d.ts +14 -0
- package/dist/errors/codes.js +59 -0
- package/dist/git/cache.d.ts +14 -0
- package/dist/git/cache.js +150 -0
- package/dist/git/credentials.d.ts +9 -0
- package/dist/git/credentials.js +88 -0
- package/dist/git/errors.d.ts +20 -0
- package/dist/git/errors.js +94 -0
- package/dist/git/exec.d.ts +16 -0
- package/dist/git/exec.js +135 -0
- package/dist/git/operations.d.ts +29 -0
- package/dist/git/operations.js +153 -0
- package/dist/git/version.d.ts +1 -0
- package/dist/git/version.js +10 -0
- package/dist/logging/audit.d.ts +16 -0
- package/dist/logging/audit.js +19 -0
- package/dist/logging/commonWords.d.ts +2 -0
- package/dist/logging/commonWords.js +13 -0
- package/dist/logging/logger.d.ts +49 -0
- package/dist/logging/logger.js +193 -0
- package/dist/logging/namedSecrets.d.ts +6 -0
- package/dist/logging/namedSecrets.js +58 -0
- package/dist/logging/redact.d.ts +17 -0
- package/dist/logging/redact.js +105 -0
- package/dist/mcp/catalogTools.js +492 -81
- package/dist/mcp/checkoutTools.d.ts +52 -0
- package/dist/mcp/checkoutTools.js +332 -0
- package/dist/mcp/controlTools.js +182 -6
- package/dist/mcp/deps.d.ts +3 -0
- package/dist/mcp/getStartedTool.d.ts +3 -0
- package/dist/mcp/getStartedTool.js +62 -0
- package/dist/mcp/readArtifact.d.ts +11 -0
- package/dist/mcp/readArtifact.js +46 -30
- package/dist/mcp/server.js +2 -0
- package/dist/mcp/tools.js +6 -0
- package/dist/mcp/triggerTools.d.ts +3 -0
- package/dist/mcp/triggerTools.js +176 -0
- package/dist/net/proxy.d.ts +14 -0
- package/dist/net/proxy.js +78 -0
- package/dist/operatorAgent/docsRetrieval.d.ts +40 -0
- package/dist/operatorAgent/docsRetrieval.js +269 -0
- package/dist/operatorAgent/draftContext.d.ts +16 -0
- package/dist/operatorAgent/draftContext.js +68 -0
- package/dist/operatorAgent/fakeHost.d.ts +39 -0
- package/dist/operatorAgent/fakeHost.js +92 -0
- package/dist/operatorAgent/host.d.ts +40 -0
- package/dist/operatorAgent/host.js +179 -0
- package/dist/operatorAgent/index.d.ts +9 -0
- package/dist/operatorAgent/index.js +8 -0
- package/dist/operatorAgent/piModel.d.ts +80 -0
- package/dist/operatorAgent/piModel.js +528 -0
- package/dist/operatorAgent/profiles/workshopAuthor.d.ts +23 -0
- package/dist/operatorAgent/profiles/workshopAuthor.js +338 -0
- package/dist/operatorAgent/profiles/workshopAuthorPlaybook.d.ts +6 -0
- package/dist/operatorAgent/profiles/workshopAuthorPlaybook.js +103 -0
- package/dist/operatorAgent/profiles/workshopAuthorTools.d.ts +57 -0
- package/dist/operatorAgent/profiles/workshopAuthorTools.js +623 -0
- package/dist/operatorAgent/proposals.d.ts +32 -0
- package/dist/operatorAgent/proposals.js +144 -0
- package/dist/operatorAgent/types.d.ts +128 -0
- package/dist/operatorAgent/types.js +1 -0
- package/dist/package-meta.d.ts +2 -1
- package/dist/package-meta.js +2 -1
- package/dist/preflight/bash.d.ts +8 -0
- package/dist/preflight/bash.js +34 -0
- package/dist/preflight/claudeRoot.d.ts +11 -0
- package/dist/preflight/claudeRoot.js +23 -0
- package/dist/preflight/mcpCommands.d.ts +8 -0
- package/dist/preflight/mcpCommands.js +36 -0
- package/dist/preflight/pipelinePreflight.d.ts +40 -0
- package/dist/preflight/pipelinePreflight.js +192 -0
- package/dist/preflight/tls.d.ts +6 -0
- package/dist/preflight/tls.js +18 -0
- package/dist/preflight/toolchain.d.ts +45 -0
- package/dist/preflight/toolchain.js +219 -0
- package/dist/project/findManifestRoot.d.ts +3 -0
- package/dist/project/findManifestRoot.js +35 -0
- package/dist/project/findProjectRoot.js +3 -4
- package/dist/project/globalHome.d.ts +7 -0
- package/dist/project/globalHome.js +63 -2
- package/dist/project/resolveProjectContext.js +2 -2
- package/dist/project/resolveStageflowContext.d.ts +7 -0
- package/dist/project/resolveStageflowContext.js +46 -30
- package/dist/projection/projectRun.d.ts +2 -1
- package/dist/projection/projectRun.js +1 -0
- package/dist/runstore/assertTmpdir.d.ts +1 -0
- package/dist/runstore/assertTmpdir.js +25 -0
- package/dist/runstore/backup.d.ts +52 -0
- package/dist/runstore/backup.js +292 -0
- package/dist/runstore/createStore.d.ts +18 -1
- package/dist/runstore/createStore.js +64 -5
- package/dist/runstore/debugBundle.d.ts +60 -0
- package/dist/runstore/debugBundle.js +143 -0
- package/dist/runstore/diskUsage.d.ts +50 -0
- package/dist/runstore/diskUsage.js +214 -0
- package/dist/runstore/exportRunPayload.d.ts +8 -0
- package/dist/runstore/exportRunPayload.js +23 -0
- package/dist/runstore/normalizeCatalogPath.d.ts +1 -0
- package/dist/runstore/normalizeCatalogPath.js +10 -0
- package/dist/runstore/paths.d.ts +5 -0
- package/dist/runstore/paths.js +145 -1
- package/dist/runstore/port.d.ts +139 -13
- package/dist/runstore/port.js +8 -1
- package/dist/runstore/restore.d.ts +81 -0
- package/dist/runstore/restore.js +355 -0
- package/dist/runstore/retention.d.ts +27 -0
- package/dist/runstore/retention.js +74 -0
- package/dist/runstore/runManifest.d.ts +146 -0
- package/dist/runstore/runManifest.js +288 -0
- package/dist/runstore/runProjection.d.ts +3 -1
- package/dist/runstore/runProjection.js +63 -1
- package/dist/runstore/sqlite/SqliteRunStore.d.ts +35 -3
- package/dist/runstore/sqlite/SqliteRunStore.js +442 -219
- package/dist/runstore/sqlite/applyStorePragmas.d.ts +39 -0
- package/dist/runstore/sqlite/applyStorePragmas.js +145 -0
- package/dist/runstore/sqlite/migrations/001-baseline.d.ts +7 -0
- package/dist/runstore/sqlite/migrations/001-baseline.js +10 -0
- package/dist/runstore/sqlite/migrations/002-repository-binding.d.ts +7 -0
- package/dist/runstore/sqlite/migrations/002-repository-binding.js +29 -0
- package/dist/runstore/sqlite/migrations/003-run-lifecycle.d.ts +7 -0
- package/dist/runstore/sqlite/migrations/003-run-lifecycle.js +28 -0
- package/dist/runstore/sqlite/migrations/004-auto-resume-count.d.ts +7 -0
- package/dist/runstore/sqlite/migrations/004-auto-resume-count.js +19 -0
- package/dist/runstore/sqlite/migrations/005-config-origins.d.ts +7 -0
- package/dist/runstore/sqlite/migrations/005-config-origins.js +19 -0
- package/dist/runstore/sqlite/migrations/006-pipeline-body-and-caller.d.ts +7 -0
- package/dist/runstore/sqlite/migrations/006-pipeline-body-and-caller.js +28 -0
- package/dist/runstore/sqlite/migrations/007-projects-registry.d.ts +7 -0
- package/dist/runstore/sqlite/migrations/007-projects-registry.js +31 -0
- package/dist/runstore/sqlite/migrations/008-triggers-table.d.ts +7 -0
- package/dist/runstore/sqlite/migrations/008-triggers-table.js +19 -0
- package/dist/runstore/sqlite/migrations/009-trigger-next-run.d.ts +7 -0
- package/dist/runstore/sqlite/migrations/009-trigger-next-run.js +19 -0
- package/dist/runstore/sqlite/migrations/010-trigger-adapter-state.d.ts +7 -0
- package/dist/runstore/sqlite/migrations/010-trigger-adapter-state.js +17 -0
- package/dist/runstore/sqlite/migrations/index.d.ts +21 -0
- package/dist/runstore/sqlite/migrations/index.js +78 -0
- package/dist/runstore/sqlite/schema.d.ts +20 -1
- package/dist/runstore/sqlite/schema.js +277 -1
- package/dist/runstore/sqlite/storeOpenError.d.ts +6 -0
- package/dist/runstore/sqlite/storeOpenError.js +11 -0
- package/dist/runstore/sqlite/storeSchemaError.d.ts +5 -0
- package/dist/runstore/sqlite/storeSchemaError.js +8 -0
- package/dist/runstore/stageExecution.js +3 -0
- package/dist/runstore/storeFilesystem.d.ts +32 -0
- package/dist/runstore/storeFilesystem.js +148 -0
- package/dist/runstore/trackProjection.js +2 -0
- package/dist/runstore/workspaceLayout.d.ts +13 -0
- package/dist/runstore/workspaceLayout.js +76 -0
- package/dist/runtime/answerResume.d.ts +1 -0
- package/dist/runtime/answerResume.js +3 -1
- package/dist/runtime/completionCheckRunner.d.ts +15 -1
- package/dist/runtime/completionCheckRunner.js +67 -7
- package/dist/runtime/containerLimits.d.ts +16 -0
- package/dist/runtime/containerLimits.js +84 -0
- package/dist/runtime/credentialBinding.d.ts +2 -0
- package/dist/runtime/credentialBinding.js +3 -0
- package/dist/runtime/credentialMaterialisation.d.ts +28 -0
- package/dist/runtime/credentialMaterialisation.js +128 -0
- package/dist/runtime/emailSource.d.ts +72 -0
- package/dist/runtime/emailSource.js +304 -0
- package/dist/runtime/gitCheckoutCapability.js +7 -13
- package/dist/runtime/githubPollSource.d.ts +86 -0
- package/dist/runtime/githubPollSource.js +284 -0
- package/dist/runtime/pipelineRunner.d.ts +40 -1
- package/dist/runtime/pipelineRunner.js +181 -17
- package/dist/runtime/pipelineScheduler.d.ts +17 -0
- package/dist/runtime/pipelineScheduler.js +220 -28
- package/dist/runtime/reloadRunCatalog.js +6 -1
- package/dist/runtime/repositoryMaterialize.d.ts +47 -0
- package/dist/runtime/repositoryMaterialize.js +235 -0
- package/dist/runtime/resumeTimedOut.d.ts +1 -1
- package/dist/runtime/resumeTimedOut.js +5 -2
- package/dist/runtime/runChangeBus.js +9 -0
- package/dist/runtime/runDeletion.d.ts +7 -0
- package/dist/runtime/runDeletion.js +37 -0
- package/dist/runtime/runManager.d.ts +169 -4
- package/dist/runtime/runManager.js +1748 -83
- package/dist/runtime/runRetentionSweep.d.ts +31 -0
- package/dist/runtime/runRetentionSweep.js +328 -0
- package/dist/runtime/runRetryCoordinator.d.ts +4 -0
- package/dist/runtime/runRetryCoordinator.js +20 -2
- package/dist/runtime/runSkills.d.ts +40 -0
- package/dist/runtime/runSkills.js +173 -0
- package/dist/runtime/scheduleSource.d.ts +38 -0
- package/dist/runtime/scheduleSource.js +119 -0
- package/dist/runtime/settingsFile.d.ts +5 -0
- package/dist/runtime/settingsFile.js +61 -54
- package/dist/runtime/stageAttemptBootstrap.d.ts +5 -1
- package/dist/runtime/stageAttemptBootstrap.js +250 -27
- package/dist/runtime/stageCacheEnv.d.ts +6 -0
- package/dist/runtime/stageCacheEnv.js +34 -0
- package/dist/runtime/stageConcurrency.d.ts +2 -1
- package/dist/runtime/stageConcurrency.js +4 -2
- package/dist/runtime/stageEnvironment.d.ts +38 -0
- package/dist/runtime/stageEnvironment.js +194 -0
- package/dist/runtime/stageHitl.d.ts +1 -0
- package/dist/runtime/stageHitl.js +5 -1
- package/dist/runtime/stageProcessLauncher.d.ts +20 -0
- package/dist/runtime/stageProcessLauncher.js +236 -41
- package/dist/runtime/stageRecovery.d.ts +3 -1
- package/dist/runtime/stageRecovery.js +19 -4
- package/dist/runtime/stageRoots.d.ts +38 -1
- package/dist/runtime/stageRoots.js +118 -0
- package/dist/runtime/stageRunner.d.ts +6 -0
- package/dist/runtime/stageRunner.js +32 -6
- package/dist/runtime/stageSecretDecl.d.ts +9 -0
- package/dist/runtime/stageSecretDecl.js +102 -0
- package/dist/runtime/stageSecrets.d.ts +40 -0
- package/dist/runtime/stageSecrets.js +181 -0
- package/dist/runtime/stageStreamLog.d.ts +1 -0
- package/dist/runtime/stageStreamLog.js +2 -1
- package/dist/runtime/stageWorker.d.ts +3 -2
- package/dist/runtime/stageWorker.js +58 -10
- package/dist/runtime/stageWorkerProtocol.d.ts +5 -0
- package/dist/runtime/stageWorkerProtocol.js +8 -0
- package/dist/runtime/startPayload.d.ts +32 -0
- package/dist/runtime/startPayload.js +59 -0
- package/dist/runtime/taskInput.js +14 -5
- package/dist/runtime/triggerCatalog.d.ts +6 -0
- package/dist/runtime/triggerCatalog.js +24 -0
- package/dist/runtime/triggerEventMatch.d.ts +2 -0
- package/dist/runtime/triggerEventMatch.js +6 -0
- package/dist/runtime/triggerPort.d.ts +14 -0
- package/dist/runtime/triggerPort.js +1 -0
- package/dist/runtime/triggerRunner.d.ts +17 -0
- package/dist/runtime/triggerRunner.js +89 -0
- package/dist/runtime/verifiedStageExecution.d.ts +8 -0
- package/dist/runtime/verifiedStageExecution.js +16 -1
- package/dist/runtime/webhookSignature.d.ts +1 -0
- package/dist/runtime/webhookSignature.js +12 -0
- package/dist/runtime/workspaceBinding.d.ts +20 -0
- package/dist/runtime/workspaceBinding.js +60 -0
- package/dist/server/allowedHosts.d.ts +19 -0
- package/dist/server/allowedHosts.js +179 -0
- package/dist/server/bootstrap.d.ts +42 -2
- package/dist/server/bootstrap.js +273 -5
- package/dist/server/controlToken.d.ts +47 -0
- package/dist/server/controlToken.js +254 -0
- package/dist/server/createHttpHost.d.ts +11 -2
- package/dist/server/createHttpHost.js +106 -10
- package/dist/server/ensureGlobalService.d.ts +5 -1
- package/dist/server/ensureGlobalService.js +35 -1
- package/dist/server/healthSurfaces.d.ts +6 -0
- package/dist/server/healthSurfaces.js +123 -0
- package/dist/server/http.d.ts +27 -1
- package/dist/server/http.js +2254 -477
- package/dist/server/listenHost.d.ts +5 -0
- package/dist/server/listenHost.js +56 -0
- package/dist/server/mcpHost.d.ts +10 -1
- package/dist/server/mcpHost.js +36 -6
- package/dist/server/operatorResults.d.ts +2 -2
- package/dist/server/operatorResults.js +40 -29
- package/dist/server/requestAuthContext.d.ts +12 -0
- package/dist/server/requestAuthContext.js +21 -0
- package/dist/server/shutdown.d.ts +69 -0
- package/dist/server/shutdown.js +219 -0
- package/dist/server/triggerRoutes.d.ts +15 -0
- package/dist/server/triggerRoutes.js +268 -0
- package/dist/tools/askOperator.d.ts +3 -2
- package/dist/types/completion.d.ts +3 -0
- package/dist/types/pipeline.d.ts +10 -1
- package/dist/types/preEmitCheck.d.ts +7 -0
- package/dist/types/stage.d.ts +22 -0
- package/dist/types/stageflowManifest.d.ts +3 -0
- package/dist/types/task.d.ts +8 -0
- package/dist/types/trigger.d.ts +18 -0
- package/dist/types/trigger.js +1 -0
- package/dist/ui/assets/{index-CSsDued1.css → index-Bv4p1aPK.css} +1 -1
- package/dist/ui/assets/index-CntB4bZR.js +133 -0
- package/dist/ui/index.html +2 -2
- package/dist/workshop/autosave.d.ts +58 -0
- package/dist/workshop/autosave.js +222 -0
- package/dist/workshop/buildStore.d.ts +79 -0
- package/dist/workshop/buildStore.js +326 -0
- package/dist/workshop/chatTurn.d.ts +232 -0
- package/dist/workshop/chatTurn.js +475 -0
- package/dist/workshop/modelSettings.d.ts +18 -0
- package/dist/workshop/modelSettings.js +44 -0
- package/dist/workshop/sessionStore.d.ts +61 -0
- package/dist/workshop/sessionStore.js +254 -0
- package/dist/workshop/workshopPin.d.ts +72 -0
- package/dist/workshop/workshopPin.js +193 -0
- package/examples/README.md +99 -0
- package/examples/archify-on-pr/README.md +213 -0
- package/examples/archify-on-pr/archify-on-pr.pipeline.yaml +19 -0
- package/examples/archify-on-pr/archify-on-pr.task.yaml +19 -0
- package/examples/archify-on-pr/author-diagrams.yaml +106 -0
- package/examples/archify-on-pr/detect-changes.yaml +89 -0
- package/examples/browser-session/README.md +77 -0
- package/examples/browser-session/browser-session.pipeline.yaml +50 -0
- package/examples/browser-session/browser-session.task.yaml +6 -0
- package/examples/browser-session/check-login.yaml +22 -0
- package/examples/browser-session/fixture-server.mjs +64 -0
- package/examples/browser-session/human-login.yaml +31 -0
- package/examples/browser-session/merge.yaml +36 -0
- package/examples/browser-session/work-a.yaml +41 -0
- package/examples/browser-session/work-b.yaml +41 -0
- package/examples/ci-validate/README.md +35 -0
- package/examples/ci-validate/check.yaml +13 -0
- package/examples/ci-validate/ci-demo.pipeline.yaml +4 -0
- package/examples/ci-validate/validate.sh +5 -0
- package/examples/compliance-review-demo/README.md +125 -0
- package/examples/compliance-review-demo/compliance-review-demo.pipeline.yaml +29 -0
- package/examples/compliance-review-demo/connect-account.yaml +47 -0
- package/examples/compliance-review-demo/map-to-control.yaml +123 -0
- package/examples/compliance-review-demo/poll-bucket-config.yaml +103 -0
- package/examples/compliance-review-demo/publish-report.yaml +79 -0
- package/examples/compliance-review-demo/review-verdict.yaml +122 -0
- package/examples/compliance-review-demo/run-compliance-check.yaml +96 -0
- package/examples/compliance-review-demo/store-evidence.yaml +143 -0
- package/examples/conditional-fork/README.md +89 -0
- package/examples/conditional-fork/branch-a.yaml +13 -0
- package/examples/conditional-fork/branch-b.yaml +13 -0
- package/examples/conditional-fork/decide.yaml +35 -0
- package/examples/conditional-fork/fork-demo.pipeline.yaml +20 -0
- package/examples/conditional-fork/fork-demo.task.yaml +8 -0
- package/examples/context7-mcp/README.md +42 -0
- package/examples/context7-mcp/context7-mcp.pipeline.yaml +15 -0
- package/examples/context7-mcp/context7-mcp.task.yaml +4 -0
- package/examples/context7-mcp/fetch-docs.yaml +52 -0
- package/examples/context7-mcp/resolve-library.yaml +31 -0
- package/examples/context7-mcp/write-brief.yaml +52 -0
- package/examples/feature-loop/README.md +104 -0
- package/examples/feature-loop/address-feedback.yaml +148 -0
- package/examples/feature-loop/align.yaml +116 -0
- package/examples/feature-loop/decompose.yaml +86 -0
- package/examples/feature-loop/default-model-hierarchy.task.yaml +58 -0
- package/examples/feature-loop/feature-loop.pipeline.yaml +140 -0
- package/examples/feature-loop/feature-loop.task.yaml +25 -0
- package/examples/feature-loop/implement.yaml +128 -0
- package/examples/feature-loop/plan.yaml +111 -0
- package/examples/feature-loop/publish.yaml +167 -0
- package/examples/feature-loop/review.yaml +146 -0
- package/examples/feature-loop/verify.yaml +106 -0
- package/examples/feedback-loop/README.md +72 -0
- package/examples/feedback-loop/VERIFY.md +208 -0
- package/examples/feedback-loop/continue-only.task.yaml +4 -0
- package/examples/feedback-loop/exhaust-require-continue.task.yaml +6 -0
- package/examples/feedback-loop/exhaust-wait-human.task.yaml +11 -0
- package/examples/feedback-loop/feedback-loop-wait-human.pipeline.yaml +23 -0
- package/examples/feedback-loop/feedback-loop.pipeline.yaml +23 -0
- package/examples/feedback-loop/feedback-loop.task.yaml +4 -0
- package/examples/feedback-loop/implement.yaml +14 -0
- package/examples/feedback-loop/plan.yaml +14 -0
- package/examples/feedback-loop/review.yaml +15 -0
- package/examples/feedback-loop/send-back-once.task.yaml +6 -0
- package/examples/feedback-loop/submit.yaml +12 -0
- package/examples/generic-fan-in/README.md +151 -0
- package/examples/generic-fan-in/clarify.yaml +18 -0
- package/examples/generic-fan-in/generic-fan-in-accepted.pipeline.yaml +19 -0
- package/examples/generic-fan-in/generic-fan-in-accepted.task.yaml +8 -0
- package/examples/generic-fan-in/generic-fan-in.pipeline.yaml +18 -0
- package/examples/generic-fan-in/generic-fan-in.task.yaml +9 -0
- package/examples/generic-fan-in/research.yaml +45 -0
- package/examples/generic-fan-in/synthesize.yaml +66 -0
- package/examples/generic-fan-in/validation.yaml +45 -0
- package/examples/github-release/README.md +78 -0
- package/examples/github-release/draft-release-notes.yaml +64 -0
- package/examples/github-release/github-release.pipeline.yaml +11 -0
- package/examples/github-release/github-release.task.yaml +13 -0
- package/examples/github-release/publish-github-release.yaml +64 -0
- package/examples/hello-world/README.md +28 -0
- package/examples/hello-world/hello.pipeline.yaml +4 -0
- package/examples/hello-world/my-task.task.yaml +6 -0
- package/examples/hello-world/research.yaml +18 -0
- package/examples/mcp-hitl-tour/README.md +113 -0
- package/examples/mcp-hitl-tour/draft-angle.yaml +33 -0
- package/examples/mcp-hitl-tour/draft-short.yaml +32 -0
- package/examples/mcp-hitl-tour/emit-angles.yaml +45 -0
- package/examples/mcp-hitl-tour/gather.yaml +31 -0
- package/examples/mcp-hitl-tour/intake.yaml +62 -0
- package/examples/mcp-hitl-tour/mcp-hitl-tour-exhaust.task.yaml +13 -0
- package/examples/mcp-hitl-tour/mcp-hitl-tour.pipeline.yaml +54 -0
- package/examples/mcp-hitl-tour/mcp-hitl-tour.task.yaml +16 -0
- package/examples/mcp-hitl-tour/polish.yaml +33 -0
- package/examples/mcp-hitl-tour/review.yaml +17 -0
- package/examples/mcp-hitl-tour/ship.yaml +25 -0
- package/examples/oss-issue-contribution/README.md +218 -0
- package/examples/oss-issue-contribution/oss-address-review-feedback.yaml +117 -0
- package/examples/oss-issue-contribution/oss-approve-contribution.yaml +181 -0
- package/examples/oss-issue-contribution/oss-approve-plan.yaml +111 -0
- package/examples/oss-issue-contribution/oss-explain-fix.yaml +108 -0
- package/examples/oss-issue-contribution/oss-explain-issue.yaml +114 -0
- package/examples/oss-issue-contribution/oss-implement-source-fix.yaml +171 -0
- package/examples/oss-issue-contribution/oss-investigate-area.yaml +116 -0
- package/examples/oss-issue-contribution/oss-issue-contribution.pipeline.yaml +125 -0
- package/examples/oss-issue-contribution/oss-issue-intake.yaml +106 -0
- package/examples/oss-issue-contribution/oss-plan-investigation.yaml +112 -0
- package/examples/oss-issue-contribution/oss-plan-review.yaml +109 -0
- package/examples/oss-issue-contribution/oss-reproduce-issue.yaml +140 -0
- package/examples/oss-issue-contribution/oss-review-change.yaml +107 -0
- package/examples/oss-issue-contribution/oss-verify-fix.yaml +130 -0
- package/examples/oss-issue-contribution/oss-write-regression-test.yaml +135 -0
- package/examples/oss-issue-contribution/pi-7629.task.yaml +79 -0
- package/examples/oss-issue-contribution/pi-8919.task.yaml +75 -0
- package/examples/oss-issue-contribution/pydantic-ai-7971.task.yaml +53 -0
- package/examples/oss-quick-fix/README.md +65 -0
- package/examples/oss-quick-fix/implement-fix.yaml +84 -0
- package/examples/oss-quick-fix/oss-quick-fix.pipeline.yaml +35 -0
- package/examples/oss-quick-fix/oss-quick-fix.task.yaml +19 -0
- package/examples/oss-quick-fix/ship-fix.yaml +81 -0
- package/examples/oss-quick-fix/understand-issue.yaml +67 -0
- package/examples/oss-quick-fix/verify-fix.yaml +73 -0
- package/examples/plan-review/README.md +37 -0
- package/examples/plan-review/plan-review-followup.yaml +13 -0
- package/examples/plan-review/plan-review.pipeline.yaml +9 -0
- package/examples/plan-review/plan-review.task.yaml +9 -0
- package/examples/plan-review/plan-review.yaml +25 -0
- package/examples/playwright-mcp/README.md +39 -0
- package/examples/playwright-mcp/playwright-mcp.pipeline.yaml +5 -0
- package/examples/playwright-mcp/playwright-mcp.task.yaml +4 -0
- package/examples/playwright-mcp/screenshot.yaml +40 -0
- package/examples/retry-tour/README.md +75 -0
- package/examples/retry-tour/retry-tour.pipeline.yaml +122 -0
- package/examples/retry-tour/retry-tour.task.yaml +9 -0
- package/examples/route-if-tour/README.md +202 -0
- package/examples/route-if-tour/route-if-tour.pipeline.yaml +950 -0
- package/examples/route-if-tour/route-if-tour.task.yaml +4 -0
- package/examples/route-wiring-smoke-test/01-core-routing.pipeline.yaml +168 -0
- package/examples/route-wiring-smoke-test/02-on-gating.pipeline.yaml +44 -0
- package/examples/route-wiring-smoke-test/03-two-entry-points.pipeline.yaml +28 -0
- package/examples/route-wiring-smoke-test/04-entry-false-equivalent-to-omitted.pipeline.yaml +27 -0
- package/examples/route-wiring-smoke-test/05-fork-choice.pipeline.yaml +110 -0
- package/examples/route-wiring-smoke-test/06-fan-out-fan-in.pipeline.yaml +82 -0
- package/examples/route-wiring-smoke-test/07-loop-human-decision.pipeline.yaml +82 -0
- package/examples/route-wiring-smoke-test/08-skip-fallback-and-multi-on-gate.pipeline.yaml +77 -0
- package/examples/route-wiring-smoke-test/09-multi-loop-targets.pipeline.yaml +102 -0
- package/examples/route-wiring-smoke-test/10-uses-dialect-fork.pipeline.yaml +23 -0
- package/examples/route-wiring-smoke-test/11-sequential-io-handoff.pipeline.yaml +37 -0
- package/examples/route-wiring-smoke-test/12-complex-io-schemas.pipeline.yaml +138 -0
- package/examples/route-wiring-smoke-test/13-ref-io-handoff.pipeline.yaml +84 -0
- package/examples/route-wiring-smoke-test/14-if-eq-gating.pipeline.yaml +50 -0
- package/examples/route-wiring-smoke-test/15-if-all-gated.pipeline.yaml +37 -0
- package/examples/route-wiring-smoke-test/16-if-composition.pipeline.yaml +65 -0
- package/examples/route-wiring-smoke-test/17-if-join.pipeline.yaml +80 -0
- package/examples/route-wiring-smoke-test/README.md +377 -0
- package/examples/route-wiring-smoke-test/rejected/01-reject-legacy-needs.pipeline.yaml +26 -0
- package/examples/route-wiring-smoke-test/rejected/02-reject-legacy-fork.pipeline.yaml +25 -0
- package/examples/route-wiring-smoke-test/rejected/03-reject-legacy-feedback-loop.pipeline.yaml +30 -0
- package/examples/route-wiring-smoke-test/rejected/04-reject-missing-entry.pipeline.yaml +24 -0
- package/examples/route-wiring-smoke-test/rejected/05-reject-unreachable.pipeline.yaml +35 -0
- package/examples/route-wiring-smoke-test/rejected/06-reject-allow-none-without-route-select.pipeline.yaml +37 -0
- package/examples/route-wiring-smoke-test/rejected/07-reject-cycle.pipeline.yaml +27 -0
- package/examples/route-wiring-smoke-test/rejected/08-reject-loop-non-ancestor.pipeline.yaml +42 -0
- package/examples/route-wiring-smoke-test/rejected/09-reject-route-select-leaf.pipeline.yaml +26 -0
- package/examples/route-wiring-smoke-test/rejected/12-reject-loop-replay-unsafe.pipeline.yaml +55 -0
- package/examples/route-wiring-smoke-test/rejected/13-reject-multiple-loop-entries.pipeline.yaml +51 -0
- package/examples/route-wiring-smoke-test/rejected/14-reject-duplicate-stage-id.pipeline.yaml +35 -0
- package/examples/route-wiring-smoke-test/rejected/15-reject-unknown-route-target.pipeline.yaml +15 -0
- package/examples/route-wiring-smoke-test/rejected/16-reject-malformed-route-item.pipeline.yaml +15 -0
- package/examples/route-wiring-smoke-test/rejected/17-reject-io-incompatible.pipeline.yaml +33 -0
- package/examples/route-wiring-smoke-test/rejected/18-reject-nested-io.pipeline.yaml +51 -0
- package/examples/route-wiring-smoke-test/rejected/19-reject-array-item-io.pipeline.yaml +55 -0
- package/examples/route-wiring-smoke-test/rejected/20-reject-closed-io.pipeline.yaml +36 -0
- package/examples/route-wiring-smoke-test/rejected/21-reject-ref-io.pipeline.yaml +42 -0
- package/examples/route-wiring-smoke-test/rejected/22-reject-if-unknown-field.pipeline.yaml +33 -0
- package/examples/route-wiring-smoke-test/rejected/23-reject-if-optional-field.pipeline.yaml +32 -0
- package/examples/route-wiring-smoke-test/rejected/24-reject-if-empty-all.pipeline.yaml +31 -0
- package/examples/route-wiring-smoke-test/rejected/25-reject-if-gt-on-string.pipeline.yaml +33 -0
- package/examples/route-wiring-smoke-test/rejected/26-reject-if-optional-nested.pipeline.yaml +36 -0
- package/examples/route-wiring-smoke-test/rejected/27-reject-if-on-loop.pipeline.yaml +63 -0
- package/examples/route-wiring-smoke-test/rejected/29-reject-if-on-failed.pipeline.yaml +46 -0
- package/examples/route-wiring-smoke-test/smoke-test.task.yaml +4 -0
- package/examples/route-wiring-smoke-test/stages/branch-a.yaml +12 -0
- package/examples/route-wiring-smoke-test/stages/branch-b.yaml +12 -0
- package/examples/route-wiring-smoke-test/stages/decide.yaml +12 -0
- package/examples/route-wiring-smoke-test/stages/finish.yaml +12 -0
- package/examples/ship-feature/README.md +190 -0
- package/examples/ship-feature/feat-address-feedback.yaml +119 -0
- package/examples/ship-feature/feat-implement.yaml +180 -0
- package/examples/ship-feature/feat-plan.yaml +120 -0
- package/examples/ship-feature/feat-review.yaml +109 -0
- package/examples/ship-feature/feat-ship.yaml +203 -0
- package/examples/ship-feature/ship-feature.pipeline.yaml +44 -0
- package/examples/ship-feature/ship-feature.task.yaml +78 -0
- package/examples/stage-mcp/README.md +145 -0
- package/examples/stage-mcp/echo-mcp.mjs +20 -0
- package/examples/stage-mcp/stage-mcp-dead.pipeline.yaml +5 -0
- package/examples/stage-mcp/stage-mcp-dead.task.yaml +3 -0
- package/examples/stage-mcp/stage-mcp-missing-var.pipeline.yaml +5 -0
- package/examples/stage-mcp/stage-mcp-missing-var.task.yaml +3 -0
- package/examples/stage-mcp/stage-mcp.pipeline.yaml +5 -0
- package/examples/stage-mcp/stage-mcp.task.yaml +4 -0
- package/examples/stage-mcp/use-echo.yaml +20 -0
- package/examples/stageflow.yaml +51 -0
- package/examples/verify-tour/README.md +80 -0
- package/examples/verify-tour/verify-tour.pipeline.yaml +162 -0
- package/examples/verify-tour/verify-tour.task.yaml +11 -0
- package/package.json +9 -1
- package/skills/stageflow/SKILL.md +6 -6
- package/skills/stageflow/references/control-surface.md +13 -5
- package/skills/stageflow/scripts/detect-host.mjs +14 -1
- package/skills/stageflow/scripts/detect-host.test.mjs +29 -1
- package/skills/stageflow-author/SKILL.md +4 -3
- package/skills/stageflow-author/references/catalog-mapping.md +16 -0
- package/skills/stageflow-author/references/catalog-write-conventions.md +1 -1
- package/skills/stageflow-author/references/stage-prompt-template.md +4 -4
- package/skills/stageflow-run/SKILL.md +22 -12
- package/skills/stageflow-run/references/mcp-call.md +9 -1
- package/skills/stageflow-run/references/task-and-pipeline-selection.md +19 -6
- package/skills/stageflow-run/scripts/mcp-call.mjs +46 -6
- package/skills/stageflow-run/scripts/mcp-call.test.mjs +64 -0
- package/skills/stageflow-session-capture/references/catalog-authoring.md +2 -0
- package/skills/stageflow-setup/SKILL.md +51 -8
- package/dist/ui/assets/index-Da5EHU6M.js +0 -119
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
id: route-if-tour
|
|
2
|
+
goal: Follow each stage prompt and emit the exact JSON payload it names.
|
|
3
|
+
context: Route-if tour — routing is decided by those payloads, not by picking a next stage.
|
|
4
|
+
constraints: Docs only; no implementation code. One-sentence summaries. Use the prompt's payload verbatim. Never emit fork_choice.
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
id: route-demo-core
|
|
2
|
+
stages:
|
|
3
|
+
- id: plan
|
|
4
|
+
entry: true
|
|
5
|
+
route:
|
|
6
|
+
- to: implement
|
|
7
|
+
system_prompt: |
|
|
8
|
+
Draft a one-sentence plan.
|
|
9
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
10
|
+
model: cursor/auto
|
|
11
|
+
io:
|
|
12
|
+
input:
|
|
13
|
+
schema:
|
|
14
|
+
type: object
|
|
15
|
+
output:
|
|
16
|
+
schema:
|
|
17
|
+
type: object
|
|
18
|
+
|
|
19
|
+
- id: implement
|
|
20
|
+
route:
|
|
21
|
+
- to: review
|
|
22
|
+
system_prompt: |
|
|
23
|
+
Implement the plan in one or two sentences.
|
|
24
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
25
|
+
model: cursor/auto
|
|
26
|
+
io:
|
|
27
|
+
input:
|
|
28
|
+
schema:
|
|
29
|
+
type: object
|
|
30
|
+
output:
|
|
31
|
+
schema:
|
|
32
|
+
type: object
|
|
33
|
+
|
|
34
|
+
# Loop: continue forward to qa, or send back to implement (driven by
|
|
35
|
+
# the feedback_loop envelope action, independent of listed route targets).
|
|
36
|
+
- id: review
|
|
37
|
+
route:
|
|
38
|
+
- to: qa
|
|
39
|
+
- type: loop
|
|
40
|
+
to: implement
|
|
41
|
+
max_replays: 2
|
|
42
|
+
on_max_replays: require_continue
|
|
43
|
+
replay_session: resume
|
|
44
|
+
system_prompt: |
|
|
45
|
+
Review the change in one or two sentences. Prefer continue so the rest of the pipeline runs.
|
|
46
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], payload: {}, and feedback_loop: {"action":"continue"}.
|
|
47
|
+
To send work back instead, use feedback_loop: {"action":"send_back","target":"implement"}.
|
|
48
|
+
model: cursor/auto
|
|
49
|
+
io:
|
|
50
|
+
input:
|
|
51
|
+
schema:
|
|
52
|
+
type: object
|
|
53
|
+
output:
|
|
54
|
+
schema:
|
|
55
|
+
type: object
|
|
56
|
+
|
|
57
|
+
# Listed route targets always run after qa succeeds.
|
|
58
|
+
- id: qa
|
|
59
|
+
route:
|
|
60
|
+
- to: ship
|
|
61
|
+
- to: request-changes
|
|
62
|
+
system_prompt: |
|
|
63
|
+
Record the QA outcome in one sentence. Ship and request-changes both run next.
|
|
64
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
65
|
+
model: cursor/auto
|
|
66
|
+
io:
|
|
67
|
+
input:
|
|
68
|
+
schema:
|
|
69
|
+
type: object
|
|
70
|
+
output:
|
|
71
|
+
schema:
|
|
72
|
+
type: object
|
|
73
|
+
|
|
74
|
+
# Listed route targets always run after ship succeeds.
|
|
75
|
+
- id: ship
|
|
76
|
+
route:
|
|
77
|
+
- to: notify-slack
|
|
78
|
+
- to: notify-email
|
|
79
|
+
- to: update-changelog
|
|
80
|
+
system_prompt: |
|
|
81
|
+
Ship the change in one sentence. Slack, email, and changelog notifications all run next.
|
|
82
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
83
|
+
model: cursor/auto
|
|
84
|
+
io:
|
|
85
|
+
input:
|
|
86
|
+
schema:
|
|
87
|
+
type: object
|
|
88
|
+
output:
|
|
89
|
+
schema:
|
|
90
|
+
type: object
|
|
91
|
+
|
|
92
|
+
- id: request-changes
|
|
93
|
+
route:
|
|
94
|
+
- to: close
|
|
95
|
+
system_prompt: |
|
|
96
|
+
Note the requested changes in one sentence.
|
|
97
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
98
|
+
model: cursor/auto
|
|
99
|
+
io:
|
|
100
|
+
input:
|
|
101
|
+
schema:
|
|
102
|
+
type: object
|
|
103
|
+
output:
|
|
104
|
+
schema:
|
|
105
|
+
type: object
|
|
106
|
+
|
|
107
|
+
- id: notify-slack
|
|
108
|
+
route:
|
|
109
|
+
- to: close
|
|
110
|
+
system_prompt: |
|
|
111
|
+
Pretend to notify Slack in one sentence.
|
|
112
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
113
|
+
model: cursor/auto
|
|
114
|
+
io:
|
|
115
|
+
input:
|
|
116
|
+
schema:
|
|
117
|
+
type: object
|
|
118
|
+
output:
|
|
119
|
+
schema:
|
|
120
|
+
type: object
|
|
121
|
+
|
|
122
|
+
- id: notify-email
|
|
123
|
+
route:
|
|
124
|
+
- to: close
|
|
125
|
+
system_prompt: |
|
|
126
|
+
Pretend to notify email in one sentence.
|
|
127
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
128
|
+
model: cursor/auto
|
|
129
|
+
io:
|
|
130
|
+
input:
|
|
131
|
+
schema:
|
|
132
|
+
type: object
|
|
133
|
+
output:
|
|
134
|
+
schema:
|
|
135
|
+
type: object
|
|
136
|
+
|
|
137
|
+
- id: update-changelog
|
|
138
|
+
route:
|
|
139
|
+
- to: close
|
|
140
|
+
system_prompt: |
|
|
141
|
+
Pretend to update the changelog in one sentence.
|
|
142
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
143
|
+
model: cursor/auto
|
|
144
|
+
io:
|
|
145
|
+
input:
|
|
146
|
+
schema:
|
|
147
|
+
type: object
|
|
148
|
+
output:
|
|
149
|
+
schema:
|
|
150
|
+
type: object
|
|
151
|
+
|
|
152
|
+
# Fan-in of request-changes plus the three notify stages. On the happy
|
|
153
|
+
# path all four parents run. The join waits until every parent is
|
|
154
|
+
# terminal, then runs if at least one succeeded (skipped arms do not
|
|
155
|
+
# block; their envelopes are omitted). Stays pending if a parent failed.
|
|
156
|
+
# Does not run if every parent skipped.
|
|
157
|
+
- id: close
|
|
158
|
+
system_prompt: |
|
|
159
|
+
Close out the run in one sentence.
|
|
160
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
161
|
+
model: cursor/auto
|
|
162
|
+
io:
|
|
163
|
+
input:
|
|
164
|
+
schema:
|
|
165
|
+
type: object
|
|
166
|
+
output:
|
|
167
|
+
schema:
|
|
168
|
+
type: object
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
id: route-demo-on-gate
|
|
2
|
+
stages:
|
|
3
|
+
- id: run-tests
|
|
4
|
+
entry: true
|
|
5
|
+
route:
|
|
6
|
+
- to: ship
|
|
7
|
+
on: [succeeded]
|
|
8
|
+
- to: hotfix
|
|
9
|
+
on: [failed]
|
|
10
|
+
system_prompt: |
|
|
11
|
+
Run a tiny smoke-test check and succeed so ship runs next. (A failure envelope would route to hotfix instead.)
|
|
12
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
13
|
+
model: cursor/auto
|
|
14
|
+
io:
|
|
15
|
+
input:
|
|
16
|
+
schema:
|
|
17
|
+
type: object
|
|
18
|
+
output:
|
|
19
|
+
schema:
|
|
20
|
+
type: object
|
|
21
|
+
- id: ship
|
|
22
|
+
system_prompt: |
|
|
23
|
+
Ship the release in one sentence.
|
|
24
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
25
|
+
model: cursor/auto
|
|
26
|
+
io:
|
|
27
|
+
input:
|
|
28
|
+
schema:
|
|
29
|
+
type: object
|
|
30
|
+
output:
|
|
31
|
+
schema:
|
|
32
|
+
type: object
|
|
33
|
+
- id: hotfix
|
|
34
|
+
system_prompt: |
|
|
35
|
+
Apply a hotfix in one sentence.
|
|
36
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
37
|
+
model: cursor/auto
|
|
38
|
+
io:
|
|
39
|
+
input:
|
|
40
|
+
schema:
|
|
41
|
+
type: object
|
|
42
|
+
output:
|
|
43
|
+
schema:
|
|
44
|
+
type: object
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
id: route-demo-two-entries
|
|
2
|
+
stages:
|
|
3
|
+
- id: news-digest
|
|
4
|
+
entry: true
|
|
5
|
+
system_prompt: |
|
|
6
|
+
Gather a one-sentence news digest.
|
|
7
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
8
|
+
model: cursor/auto
|
|
9
|
+
io:
|
|
10
|
+
input:
|
|
11
|
+
schema:
|
|
12
|
+
type: object
|
|
13
|
+
output:
|
|
14
|
+
schema:
|
|
15
|
+
type: object
|
|
16
|
+
- id: weather-report
|
|
17
|
+
entry: true
|
|
18
|
+
system_prompt: |
|
|
19
|
+
Gather a one-sentence weather report.
|
|
20
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
21
|
+
model: cursor/auto
|
|
22
|
+
io:
|
|
23
|
+
input:
|
|
24
|
+
schema:
|
|
25
|
+
type: object
|
|
26
|
+
output:
|
|
27
|
+
schema:
|
|
28
|
+
type: object
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
id: route-demo-entry-false
|
|
2
|
+
stages:
|
|
3
|
+
- id: draft
|
|
4
|
+
entry: false
|
|
5
|
+
system_prompt: |
|
|
6
|
+
Write one sentence as a standalone stage explicitly marked entry false.
|
|
7
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
8
|
+
model: cursor/auto
|
|
9
|
+
io:
|
|
10
|
+
input:
|
|
11
|
+
schema:
|
|
12
|
+
type: object
|
|
13
|
+
output:
|
|
14
|
+
schema:
|
|
15
|
+
type: object
|
|
16
|
+
- id: review
|
|
17
|
+
system_prompt: |
|
|
18
|
+
Write one sentence as another independent stage.
|
|
19
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
20
|
+
model: cursor/auto
|
|
21
|
+
io:
|
|
22
|
+
input:
|
|
23
|
+
schema:
|
|
24
|
+
type: object
|
|
25
|
+
output:
|
|
26
|
+
schema:
|
|
27
|
+
type: object
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
id: route-demo-fork-choice
|
|
2
|
+
stages:
|
|
3
|
+
# Listed route targets always run after triage succeeds.
|
|
4
|
+
- id: triage
|
|
5
|
+
entry: true
|
|
6
|
+
route:
|
|
7
|
+
- to: quick-fix
|
|
8
|
+
- to: big-project
|
|
9
|
+
system_prompt: |
|
|
10
|
+
Categorize this work in one sentence. Both the quick-fix and big-project follow-ups run next.
|
|
11
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
12
|
+
model: cursor/auto
|
|
13
|
+
io:
|
|
14
|
+
input:
|
|
15
|
+
schema:
|
|
16
|
+
type: object
|
|
17
|
+
output:
|
|
18
|
+
schema:
|
|
19
|
+
type: object
|
|
20
|
+
|
|
21
|
+
- id: big-project
|
|
22
|
+
system_prompt: |
|
|
23
|
+
Kick off planning for the big project in one sentence.
|
|
24
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
25
|
+
model: cursor/auto
|
|
26
|
+
io:
|
|
27
|
+
input:
|
|
28
|
+
schema:
|
|
29
|
+
type: object
|
|
30
|
+
output:
|
|
31
|
+
schema:
|
|
32
|
+
type: object
|
|
33
|
+
|
|
34
|
+
# Listed route targets always run after quick-fix succeeds.
|
|
35
|
+
- id: quick-fix
|
|
36
|
+
route:
|
|
37
|
+
- to: notify-team
|
|
38
|
+
- to: update-docs
|
|
39
|
+
- to: schedule-followup
|
|
40
|
+
system_prompt: |
|
|
41
|
+
Apply the quick fix in one sentence. Notify-team, update-docs, and schedule-followup all run next.
|
|
42
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
43
|
+
model: cursor/auto
|
|
44
|
+
io:
|
|
45
|
+
input:
|
|
46
|
+
schema:
|
|
47
|
+
type: object
|
|
48
|
+
output:
|
|
49
|
+
schema:
|
|
50
|
+
type: object
|
|
51
|
+
|
|
52
|
+
- id: notify-team
|
|
53
|
+
route:
|
|
54
|
+
- to: close
|
|
55
|
+
system_prompt: |
|
|
56
|
+
Notify the team the quick fix shipped, in one sentence.
|
|
57
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
58
|
+
model: cursor/auto
|
|
59
|
+
io:
|
|
60
|
+
input:
|
|
61
|
+
schema:
|
|
62
|
+
type: object
|
|
63
|
+
output:
|
|
64
|
+
schema:
|
|
65
|
+
type: object
|
|
66
|
+
|
|
67
|
+
- id: update-docs
|
|
68
|
+
route:
|
|
69
|
+
- to: close
|
|
70
|
+
system_prompt: |
|
|
71
|
+
Update the docs for the quick fix in one sentence.
|
|
72
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
73
|
+
model: cursor/auto
|
|
74
|
+
io:
|
|
75
|
+
input:
|
|
76
|
+
schema:
|
|
77
|
+
type: object
|
|
78
|
+
output:
|
|
79
|
+
schema:
|
|
80
|
+
type: object
|
|
81
|
+
|
|
82
|
+
- id: schedule-followup
|
|
83
|
+
route:
|
|
84
|
+
- to: close
|
|
85
|
+
system_prompt: |
|
|
86
|
+
Schedule a follow-up review in one sentence.
|
|
87
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
88
|
+
model: cursor/auto
|
|
89
|
+
io:
|
|
90
|
+
input:
|
|
91
|
+
schema:
|
|
92
|
+
type: object
|
|
93
|
+
output:
|
|
94
|
+
schema:
|
|
95
|
+
type: object
|
|
96
|
+
|
|
97
|
+
# Fan-in of notify-team, update-docs, and schedule-followup — all three
|
|
98
|
+
# run on the happy path.
|
|
99
|
+
- id: close
|
|
100
|
+
system_prompt: |
|
|
101
|
+
Close out the run in one sentence.
|
|
102
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
103
|
+
model: cursor/auto
|
|
104
|
+
io:
|
|
105
|
+
input:
|
|
106
|
+
schema:
|
|
107
|
+
type: object
|
|
108
|
+
output:
|
|
109
|
+
schema:
|
|
110
|
+
type: object
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
id: route-demo-fan-out-fan-in
|
|
2
|
+
# Unconditional parallel fan-out: kickoff's route lists three targets, so
|
|
3
|
+
# all three always run, feeding one join that waits for all of them.
|
|
4
|
+
# Multiple forward `to:` entries always fan out this way.
|
|
5
|
+
stages:
|
|
6
|
+
- id: kickoff
|
|
7
|
+
entry: true
|
|
8
|
+
route:
|
|
9
|
+
- to: research
|
|
10
|
+
- to: analysis
|
|
11
|
+
- to: review-notes
|
|
12
|
+
system_prompt: |
|
|
13
|
+
Kick off three independent workstreams in one sentence.
|
|
14
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
15
|
+
model: cursor/auto
|
|
16
|
+
io:
|
|
17
|
+
input:
|
|
18
|
+
schema:
|
|
19
|
+
type: object
|
|
20
|
+
output:
|
|
21
|
+
schema:
|
|
22
|
+
type: object
|
|
23
|
+
|
|
24
|
+
- id: research
|
|
25
|
+
route:
|
|
26
|
+
- to: synthesize
|
|
27
|
+
system_prompt: |
|
|
28
|
+
Workstream 1 (research). Produce one short finding.
|
|
29
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
30
|
+
model: cursor/auto
|
|
31
|
+
io:
|
|
32
|
+
input:
|
|
33
|
+
schema:
|
|
34
|
+
type: object
|
|
35
|
+
output:
|
|
36
|
+
schema:
|
|
37
|
+
type: object
|
|
38
|
+
|
|
39
|
+
- id: analysis
|
|
40
|
+
route:
|
|
41
|
+
- to: synthesize
|
|
42
|
+
system_prompt: |
|
|
43
|
+
Workstream 2 (analysis). Produce one short finding.
|
|
44
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
45
|
+
model: cursor/auto
|
|
46
|
+
io:
|
|
47
|
+
input:
|
|
48
|
+
schema:
|
|
49
|
+
type: object
|
|
50
|
+
output:
|
|
51
|
+
schema:
|
|
52
|
+
type: object
|
|
53
|
+
|
|
54
|
+
- id: review-notes
|
|
55
|
+
route:
|
|
56
|
+
- to: synthesize
|
|
57
|
+
system_prompt: |
|
|
58
|
+
Workstream 3 (review notes). Produce one short finding.
|
|
59
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
60
|
+
model: cursor/auto
|
|
61
|
+
io:
|
|
62
|
+
input:
|
|
63
|
+
schema:
|
|
64
|
+
type: object
|
|
65
|
+
output:
|
|
66
|
+
schema:
|
|
67
|
+
type: object
|
|
68
|
+
|
|
69
|
+
# Fan-in: waits for research, analysis, and review-notes — all three,
|
|
70
|
+
# every time, since none of them are skipped.
|
|
71
|
+
- id: synthesize
|
|
72
|
+
system_prompt: |
|
|
73
|
+
Combine all three workstreams' findings into one summary sentence.
|
|
74
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
75
|
+
model: cursor/auto
|
|
76
|
+
io:
|
|
77
|
+
input:
|
|
78
|
+
schema:
|
|
79
|
+
type: object
|
|
80
|
+
output:
|
|
81
|
+
schema:
|
|
82
|
+
type: object
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
id: route-demo-loop-human-decision
|
|
2
|
+
# Covers the loop config variants 01-core-routing doesn't: on_max_replays:
|
|
3
|
+
# wait_for_human (vs. require_continue) and replay_session: new_session (vs.
|
|
4
|
+
# resume). max_replays: 1 plus review's prompt (always send_back) makes this
|
|
5
|
+
# reliably exhaust its replay budget and PARK the run waiting for a human
|
|
6
|
+
# decision -- a genuine "waiting for input" state, not a bug. Use
|
|
7
|
+
# `npx tsx src/cli.ts runs waiting` / `npx tsx src/cli.ts runs answer` (or the
|
|
8
|
+
# UI's own decide flow) to unstick it:
|
|
9
|
+
# `npx tsx src/cli.ts runs answer --run <runId> --stage review`.
|
|
10
|
+
stages:
|
|
11
|
+
- id: plan
|
|
12
|
+
entry: true
|
|
13
|
+
route:
|
|
14
|
+
- to: implement
|
|
15
|
+
system_prompt: |
|
|
16
|
+
Draft a one-sentence plan.
|
|
17
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
18
|
+
model: cursor/auto
|
|
19
|
+
io:
|
|
20
|
+
input:
|
|
21
|
+
schema:
|
|
22
|
+
type: object
|
|
23
|
+
output:
|
|
24
|
+
schema:
|
|
25
|
+
type: object
|
|
26
|
+
|
|
27
|
+
- id: implement
|
|
28
|
+
route:
|
|
29
|
+
- to: review
|
|
30
|
+
system_prompt: |
|
|
31
|
+
Implement the plan in one sentence.
|
|
32
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
33
|
+
model: cursor/auto
|
|
34
|
+
io:
|
|
35
|
+
input:
|
|
36
|
+
schema:
|
|
37
|
+
type: object
|
|
38
|
+
output:
|
|
39
|
+
schema:
|
|
40
|
+
type: object
|
|
41
|
+
|
|
42
|
+
- id: review
|
|
43
|
+
route:
|
|
44
|
+
- to: submit
|
|
45
|
+
- type: loop
|
|
46
|
+
to: implement
|
|
47
|
+
max_replays: 1
|
|
48
|
+
on_max_replays: wait_for_human
|
|
49
|
+
replay_session: new_session
|
|
50
|
+
system_prompt: |
|
|
51
|
+
Review the upstream work against the task goal in one or two sentences.
|
|
52
|
+
On success you MUST include feedback_loop in your envelope:
|
|
53
|
+
- {"action":"continue"} when the work is good enough to submit
|
|
54
|
+
- {"action":"send_back","target":"implement"} when another pass is needed
|
|
55
|
+
For this smoke test: ALWAYS send_back to implement, never continue.
|
|
56
|
+
This is deliberate -- with max_replays: 1, your second send_back will
|
|
57
|
+
exhaust the replay budget and park the run waiting for a human
|
|
58
|
+
decision (on_max_replays: wait_for_human), which is exactly what this
|
|
59
|
+
pipeline exists to demonstrate.
|
|
60
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], payload: {}, and feedback_loop: {"action":"send_back","target":"implement"}.
|
|
61
|
+
model: cursor/auto
|
|
62
|
+
io:
|
|
63
|
+
input:
|
|
64
|
+
schema:
|
|
65
|
+
type: object
|
|
66
|
+
output:
|
|
67
|
+
schema:
|
|
68
|
+
type: object
|
|
69
|
+
|
|
70
|
+
- id: submit
|
|
71
|
+
replay_safe: false
|
|
72
|
+
system_prompt: |
|
|
73
|
+
Submit the approved change in one sentence.
|
|
74
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
75
|
+
model: cursor/auto
|
|
76
|
+
io:
|
|
77
|
+
input:
|
|
78
|
+
schema:
|
|
79
|
+
type: object
|
|
80
|
+
output:
|
|
81
|
+
schema:
|
|
82
|
+
type: object
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
id: route-demo-skip-and-multi-on
|
|
2
|
+
stages:
|
|
3
|
+
# Listed route targets always run after decide succeeds — both arms.
|
|
4
|
+
- id: decide
|
|
5
|
+
entry: true
|
|
6
|
+
route:
|
|
7
|
+
- to: risky-step
|
|
8
|
+
- to: safe-step
|
|
9
|
+
system_prompt: |
|
|
10
|
+
Run both the risky-step and safe-step follow-ups. One sentence is enough.
|
|
11
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
12
|
+
model: cursor/auto
|
|
13
|
+
io:
|
|
14
|
+
input:
|
|
15
|
+
schema:
|
|
16
|
+
type: object
|
|
17
|
+
output:
|
|
18
|
+
schema:
|
|
19
|
+
type: object
|
|
20
|
+
|
|
21
|
+
# Leaf: does not route onward. done is only on the safe-step arm, so
|
|
22
|
+
# it does not wait on this sibling.
|
|
23
|
+
- id: risky-step
|
|
24
|
+
system_prompt: |
|
|
25
|
+
The risky path. A leaf — no child runs from here. One sentence is enough.
|
|
26
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
27
|
+
model: cursor/auto
|
|
28
|
+
io:
|
|
29
|
+
input:
|
|
30
|
+
schema:
|
|
31
|
+
type: object
|
|
32
|
+
output:
|
|
33
|
+
schema:
|
|
34
|
+
type: object
|
|
35
|
+
|
|
36
|
+
- id: safe-step
|
|
37
|
+
route:
|
|
38
|
+
- to: notify-either-way
|
|
39
|
+
system_prompt: |
|
|
40
|
+
The safe path. Routes onward to notify-either-way, then done. One sentence is enough.
|
|
41
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
42
|
+
model: cursor/auto
|
|
43
|
+
io:
|
|
44
|
+
input:
|
|
45
|
+
schema:
|
|
46
|
+
type: object
|
|
47
|
+
output:
|
|
48
|
+
schema:
|
|
49
|
+
type: object
|
|
50
|
+
|
|
51
|
+
- id: notify-either-way
|
|
52
|
+
route:
|
|
53
|
+
- to: done
|
|
54
|
+
system_prompt: |
|
|
55
|
+
Runs after safe-step succeeds. One sentence is enough.
|
|
56
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
57
|
+
model: cursor/auto
|
|
58
|
+
io:
|
|
59
|
+
input:
|
|
60
|
+
schema:
|
|
61
|
+
type: object
|
|
62
|
+
output:
|
|
63
|
+
schema:
|
|
64
|
+
type: object
|
|
65
|
+
|
|
66
|
+
- id: done
|
|
67
|
+
system_prompt: |
|
|
68
|
+
Close out the run in one sentence.
|
|
69
|
+
Then emit a success envelope via emit_stage_envelope with status: success, a short summary, artifacts: [], and payload: {}.
|
|
70
|
+
model: cursor/auto
|
|
71
|
+
io:
|
|
72
|
+
input:
|
|
73
|
+
schema:
|
|
74
|
+
type: object
|
|
75
|
+
output:
|
|
76
|
+
schema:
|
|
77
|
+
type: object
|