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,58 @@
|
|
|
1
|
+
id: default-model-hierarchy
|
|
2
|
+
goal: >
|
|
3
|
+
Implement default model resolution across Stageflow YAML layers so a
|
|
4
|
+
model can be set once on stageflow.yaml or a pipeline and inherited by
|
|
5
|
+
stages that omit model. Resolution priority must be stage first, then
|
|
6
|
+
pipeline, then the global stageflow.yaml default. Split the work into
|
|
7
|
+
stories, plan each story, align the plans, implement them in the agreed
|
|
8
|
+
order, verify coverage, review the whole diff, address review feedback,
|
|
9
|
+
and open an operator-approved pull request.
|
|
10
|
+
context: |
|
|
11
|
+
This repository is Stageflow itself (tejasghutukade/stageflow). The
|
|
12
|
+
checkout for this run is a dedicated git worktree already on branch
|
|
13
|
+
scratch/extra-workspace, tracking origin/main.
|
|
14
|
+
|
|
15
|
+
Epic (pasted — treat this block as the requirements document):
|
|
16
|
+
|
|
17
|
+
Today every stage must declare model (string). Omitting it fails load.
|
|
18
|
+
There is no pipeline-level or stageflow.yaml default for model. The
|
|
19
|
+
agent backend already resolves as stage > pipeline > global > "pi";
|
|
20
|
+
model needs the same shape of hierarchy, without reusing the agent key.
|
|
21
|
+
|
|
22
|
+
Required behavior:
|
|
23
|
+
1. Optional top-level model on stageflow.yaml (global default).
|
|
24
|
+
2. Optional top-level model on *.pipeline.yaml (pipeline default for
|
|
25
|
+
all stages in that pipeline).
|
|
26
|
+
3. Stage model remains allowed on inline stage bodies and external
|
|
27
|
+
stage YAML, but becomes optional when a higher default can fill it.
|
|
28
|
+
4. Effective resolution for each stage at load or run time:
|
|
29
|
+
stage.model ?? pipeline.model ?? stageflow.yaml model.
|
|
30
|
+
If still unset after that chain, load/run must fail with a clear
|
|
31
|
+
error — never invent a silent hardcoded model string.
|
|
32
|
+
5. Priority is always stage override, then pipeline, then global.
|
|
33
|
+
|
|
34
|
+
Likely touch points (verify against the tree; do not assume line
|
|
35
|
+
numbers): src/types/stageflowManifest.ts, src/types/pipeline.ts,
|
|
36
|
+
src/types for StageConfig, src/config/loadStageflowManifest.ts,
|
|
37
|
+
src/config load/merge pipeline helpers, src/config/loadStage.ts,
|
|
38
|
+
resolveAgentPort.ts (pattern to mirror for model, not to conflate),
|
|
39
|
+
stage worker / adapters that read stage.model, docs/yaml-catalog.md,
|
|
40
|
+
fixtures under tests/fixtures/, and any create/init surfaces that
|
|
41
|
+
currently require stage model.
|
|
42
|
+
|
|
43
|
+
Keep model (LLM id string) distinct from agent (pi | claude backend).
|
|
44
|
+
|
|
45
|
+
- Publish target: tejasghutukade/stageflow
|
|
46
|
+
- Base branch: main
|
|
47
|
+
- Head branch: the checkout's current branch (do not create or switch)
|
|
48
|
+
constraints: |
|
|
49
|
+
Do not create, rename, or switch branches — the checkout is already
|
|
50
|
+
on the correct feature branch (scratch/extra-workspace).
|
|
51
|
+
Do not commit, push, or open a pull request except in publish, and
|
|
52
|
+
only after the operator accepts ship-package.md.
|
|
53
|
+
Do not expand scope past the epic. Story plans and sequential
|
|
54
|
+
implement clones must stay inside their assigned slices.
|
|
55
|
+
Do not change agent-backend resolution semantics except where
|
|
56
|
+
documentation must clarify that model and agent are separate.
|
|
57
|
+
publish_repo and base_branch must be the values named here, never guessed.
|
|
58
|
+
checkout: /Users/tejasghutukade/Projects/software-factory/.worktrees/scratch/extra-workspace
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
id: feature-loop
|
|
2
|
+
schemas:
|
|
3
|
+
story-assignment:
|
|
4
|
+
type: object
|
|
5
|
+
required:
|
|
6
|
+
- story_id
|
|
7
|
+
- title
|
|
8
|
+
- epic_slice
|
|
9
|
+
- acceptance
|
|
10
|
+
- neighboring_story_ids
|
|
11
|
+
- constraints
|
|
12
|
+
properties:
|
|
13
|
+
story_id:
|
|
14
|
+
type: string
|
|
15
|
+
title:
|
|
16
|
+
type: string
|
|
17
|
+
epic_slice:
|
|
18
|
+
type: string
|
|
19
|
+
acceptance:
|
|
20
|
+
type: string
|
|
21
|
+
neighboring_story_ids:
|
|
22
|
+
type: array
|
|
23
|
+
items:
|
|
24
|
+
type: string
|
|
25
|
+
constraints:
|
|
26
|
+
type: array
|
|
27
|
+
items:
|
|
28
|
+
type: string
|
|
29
|
+
story-work:
|
|
30
|
+
type: object
|
|
31
|
+
required:
|
|
32
|
+
- story_id
|
|
33
|
+
- title
|
|
34
|
+
- plan_artifact
|
|
35
|
+
- order
|
|
36
|
+
- depends_on
|
|
37
|
+
- planned_files
|
|
38
|
+
- validation_commands
|
|
39
|
+
properties:
|
|
40
|
+
story_id:
|
|
41
|
+
type: string
|
|
42
|
+
title:
|
|
43
|
+
type: string
|
|
44
|
+
plan_artifact:
|
|
45
|
+
type: string
|
|
46
|
+
order:
|
|
47
|
+
type: integer
|
|
48
|
+
minimum: 1
|
|
49
|
+
depends_on:
|
|
50
|
+
type: array
|
|
51
|
+
items:
|
|
52
|
+
type: string
|
|
53
|
+
planned_files:
|
|
54
|
+
type: array
|
|
55
|
+
items:
|
|
56
|
+
type: string
|
|
57
|
+
validation_commands:
|
|
58
|
+
type: array
|
|
59
|
+
items:
|
|
60
|
+
type: string
|
|
61
|
+
stages:
|
|
62
|
+
- id: decompose
|
|
63
|
+
uses: ./decompose.yaml
|
|
64
|
+
entry: true
|
|
65
|
+
clone_cap: 8
|
|
66
|
+
clone_mode: parallel
|
|
67
|
+
route:
|
|
68
|
+
- to: plan
|
|
69
|
+
on_verify_fail:
|
|
70
|
+
mode: repair
|
|
71
|
+
max_attempts: 3
|
|
72
|
+
retry_safety: idempotent
|
|
73
|
+
include_failed_checks: true
|
|
74
|
+
- id: plan
|
|
75
|
+
uses: ./plan.yaml
|
|
76
|
+
route:
|
|
77
|
+
- to: align
|
|
78
|
+
on_verify_fail:
|
|
79
|
+
mode: repair
|
|
80
|
+
max_attempts: 3
|
|
81
|
+
retry_safety: idempotent
|
|
82
|
+
include_failed_checks: true
|
|
83
|
+
- id: align
|
|
84
|
+
uses: ./align.yaml
|
|
85
|
+
clone_cap: 8
|
|
86
|
+
clone_mode: sequential
|
|
87
|
+
route:
|
|
88
|
+
- to: implement
|
|
89
|
+
on_verify_fail:
|
|
90
|
+
mode: repair
|
|
91
|
+
max_attempts: 3
|
|
92
|
+
retry_safety: idempotent
|
|
93
|
+
include_failed_checks: true
|
|
94
|
+
- id: implement
|
|
95
|
+
uses: ./implement.yaml
|
|
96
|
+
route:
|
|
97
|
+
- to: verify
|
|
98
|
+
on_verify_fail:
|
|
99
|
+
mode: repair
|
|
100
|
+
max_attempts: 3
|
|
101
|
+
retry_safety: idempotent
|
|
102
|
+
include_failed_checks: true
|
|
103
|
+
- id: verify
|
|
104
|
+
uses: ./verify.yaml
|
|
105
|
+
route:
|
|
106
|
+
- to: review
|
|
107
|
+
on_verify_fail:
|
|
108
|
+
mode: repair
|
|
109
|
+
max_attempts: 3
|
|
110
|
+
retry_safety: idempotent
|
|
111
|
+
include_failed_checks: true
|
|
112
|
+
- id: review
|
|
113
|
+
uses: ./review.yaml
|
|
114
|
+
route:
|
|
115
|
+
- to: address-feedback
|
|
116
|
+
on_verify_fail:
|
|
117
|
+
mode: repair
|
|
118
|
+
max_attempts: 3
|
|
119
|
+
retry_safety: idempotent
|
|
120
|
+
include_failed_checks: true
|
|
121
|
+
- id: address-feedback
|
|
122
|
+
uses: ./address-feedback.yaml
|
|
123
|
+
route:
|
|
124
|
+
- to: publish
|
|
125
|
+
- type: loop
|
|
126
|
+
to: review
|
|
127
|
+
max_replays: 2
|
|
128
|
+
on_max_replays: wait_for_human
|
|
129
|
+
replay_session: new_session
|
|
130
|
+
on_verify_fail:
|
|
131
|
+
mode: repair
|
|
132
|
+
max_attempts: 3
|
|
133
|
+
retry_safety: idempotent
|
|
134
|
+
include_failed_checks: true
|
|
135
|
+
- id: publish
|
|
136
|
+
uses: ./publish.yaml
|
|
137
|
+
on_verify_fail:
|
|
138
|
+
mode: manual
|
|
139
|
+
retry_safety: side_effecting
|
|
140
|
+
replay_safe: false
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
id: feature-loop
|
|
2
|
+
goal: >
|
|
3
|
+
Implement the epic in the requirements document named in context:
|
|
4
|
+
split it into stories, plan each story, align the plans, implement
|
|
5
|
+
them in the agreed order, verify coverage, review the whole diff,
|
|
6
|
+
address review feedback, and open an operator-approved pull request.
|
|
7
|
+
context: |
|
|
8
|
+
Point this task at a real checkout already on the feature branch.
|
|
9
|
+
Name the requirements/epic path (checkout-relative), the publish
|
|
10
|
+
repository (owner/name), and the base branch.
|
|
11
|
+
|
|
12
|
+
Replace the placeholders below before running:
|
|
13
|
+
|
|
14
|
+
- Requirements/epic: <path-to-requirements.md>
|
|
15
|
+
- Publish target: <owner/repo>
|
|
16
|
+
- Base branch: main
|
|
17
|
+
- Head branch: the checkout's current branch (do not create or switch)
|
|
18
|
+
constraints: |
|
|
19
|
+
Do not create, rename, or switch branches — the checkout is already
|
|
20
|
+
on the correct feature branch.
|
|
21
|
+
Do not commit, push, or open a pull request except in publish, and
|
|
22
|
+
only after the operator accepts ship-package.md.
|
|
23
|
+
Do not expand scope past the epic. Story plans and sequential
|
|
24
|
+
implement clones must stay inside their assigned slices.
|
|
25
|
+
publish_repo and base_branch must be the values named here, never guessed.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
id: implement
|
|
2
|
+
system_prompt: |
|
|
3
|
+
You are one sequential implementation clone among others. Work the way
|
|
4
|
+
a compound-engineering ce-work run would: execute only your assigned
|
|
5
|
+
plan, verify it locally, do not renegotiate scope. Do not commit,
|
|
6
|
+
|
|
7
|
+
Your assignment is the clone prior envelope payload: story_id, title,
|
|
8
|
+
plan_artifact, order, depends_on, planned_files, validation_commands.
|
|
9
|
+
Clones run in sequential mode. Instance implement~1 starts first;
|
|
10
|
+
implement~N starts only after ~N-1 succeeded. Earlier clones' checkout
|
|
11
|
+
edits are already in the working tree. Do not revert, reformat, or
|
|
12
|
+
rewrite them. Do not implement neighboring stories.
|
|
13
|
+
|
|
14
|
+
Reading upstream work: the user prompt contains "Factory run
|
|
15
|
+
workspace: <absolute path>". Read plan_artifact and aligned-plans.md
|
|
16
|
+
at <Factory run workspace>/<path>. The assigned story plan outranks
|
|
17
|
+
any prose summary. That summary describes the previous stage.
|
|
18
|
+
|
|
19
|
+
Success requires real checkout edits. Put checkout-relative paths in
|
|
20
|
+
payload.changed_files. Do not put stages/.../artifacts paths there. A
|
|
21
|
+
report or map alone is a failure emit, not success.
|
|
22
|
+
|
|
23
|
+
Definition of done — every line must hold before you emit success:
|
|
24
|
+
- git diff in the checkout is non-empty relative to the tree you
|
|
25
|
+
inherited at the start of this clone (your edits on top of earlier
|
|
26
|
+
clones). The emit is rejected while you added nothing.
|
|
27
|
+
- Every changed_files entry is a repo-relative checkout path that
|
|
28
|
+
appears in git diff --name-only and is in scope of your plan.
|
|
29
|
+
- Every assigned validation_commands entry was run here, in order,
|
|
30
|
+
with its exit code recorded, and every one exited zero. all_passed
|
|
31
|
+
is true only when that is the case.
|
|
32
|
+
- implementation-report.md was written through write_stage_artifact
|
|
33
|
+
and appears in the emitted artifacts list.
|
|
34
|
+
- You did not take files owned by stories later in
|
|
35
|
+
implementation_order except unavoidable shared seams named in
|
|
36
|
+
aligned-plans.md.
|
|
37
|
+
|
|
38
|
+
1. Run git status --porcelain and git diff --stat. Treat that as the
|
|
39
|
+
inherited baseline from earlier clones.
|
|
40
|
+
2. Resolve plan_artifact against the Factory run workspace and read
|
|
41
|
+
it. If it cannot be read, emit failure — do not re-derive a plan.
|
|
42
|
+
3. If depends_on names stories whose files are missing from the
|
|
43
|
+
inherited tree, emit failure naming what is absent.
|
|
44
|
+
4. Edit only what this story's plan requires, including tests the
|
|
45
|
+
plan calls for. Match existing style. No drive-by refactors.
|
|
46
|
+
5. Run every assigned validation_commands entry in order. On failure,
|
|
47
|
+
diagnose, fix, and re-run until green or emit failure with
|
|
48
|
+
evidence.
|
|
49
|
+
6. Call write_stage_artifact with path implementation-report.md
|
|
50
|
+
containing git diff --stat against the inherited baseline, files
|
|
51
|
+
you changed, validation results, deviations from the plan, and
|
|
52
|
+
what later clones should not touch.
|
|
53
|
+
7. Emit exactly once, including implementation-report.md and
|
|
54
|
+
inherited evidence, with a payload matching the schema.
|
|
55
|
+
|
|
56
|
+
Contract violations — emit failure rather than presenting these as
|
|
57
|
+
success:
|
|
58
|
+
- Emitting success while this clone added no checkout diff.
|
|
59
|
+
- Implementing a later or neighboring story "while you are here".
|
|
60
|
+
- Reverting an earlier clone's edits.
|
|
61
|
+
- all_passed: true while any validation_commands entry was skipped
|
|
62
|
+
or non-zero.
|
|
63
|
+
- A changed_files entry under stages/.../artifacts/.
|
|
64
|
+
|
|
65
|
+
summary and payload are handed to the next stage verbatim. State
|
|
66
|
+
which story_id landed, which files changed, and that validation
|
|
67
|
+
passed. Do not repeat this stage's prohibitions in summary.
|
|
68
|
+
|
|
69
|
+
When finished, call emit_stage_envelope exactly once with status,
|
|
70
|
+
summary, artifacts, and a payload matching the schema. Your last
|
|
71
|
+
tool call in this attempt must be emit_stage_envelope. An empty
|
|
72
|
+
final message is a stage failure.
|
|
73
|
+
model: cursor/auto
|
|
74
|
+
timeout_ms: 3600000
|
|
75
|
+
io:
|
|
76
|
+
input:
|
|
77
|
+
schema:
|
|
78
|
+
$ref: "#/schemas/story-work"
|
|
79
|
+
output:
|
|
80
|
+
schema:
|
|
81
|
+
type: object
|
|
82
|
+
required:
|
|
83
|
+
- story_id
|
|
84
|
+
- changed_files
|
|
85
|
+
- implementation_summary
|
|
86
|
+
- tests_added
|
|
87
|
+
- commands_run
|
|
88
|
+
- all_passed
|
|
89
|
+
properties:
|
|
90
|
+
story_id:
|
|
91
|
+
type: string
|
|
92
|
+
changed_files:
|
|
93
|
+
type: array
|
|
94
|
+
minItems: 1
|
|
95
|
+
items:
|
|
96
|
+
type: string
|
|
97
|
+
implementation_summary:
|
|
98
|
+
type: string
|
|
99
|
+
tests_added:
|
|
100
|
+
type: array
|
|
101
|
+
items:
|
|
102
|
+
type: string
|
|
103
|
+
commands_run:
|
|
104
|
+
type: array
|
|
105
|
+
minItems: 1
|
|
106
|
+
items:
|
|
107
|
+
type: string
|
|
108
|
+
all_passed:
|
|
109
|
+
type: boolean
|
|
110
|
+
verify:
|
|
111
|
+
- id: implementation-report-declared
|
|
112
|
+
type: artifact
|
|
113
|
+
basename: implementation-report.md
|
|
114
|
+
when:
|
|
115
|
+
- emit
|
|
116
|
+
- id: implementation-report
|
|
117
|
+
type: artifact
|
|
118
|
+
path: implementation-report.md
|
|
119
|
+
nonempty: true
|
|
120
|
+
when:
|
|
121
|
+
- after
|
|
122
|
+
- id: checkout-changed
|
|
123
|
+
type: checkout_changes
|
|
124
|
+
path_fields:
|
|
125
|
+
- changed_files
|
|
126
|
+
when:
|
|
127
|
+
- after
|
|
128
|
+
gate_kinds: []
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
id: plan
|
|
2
|
+
system_prompt: |
|
|
3
|
+
You are one planning clone among others. Write an implementation-ready
|
|
4
|
+
plan for only the story in your assignment envelope. Work the way a
|
|
5
|
+
compound-engineering ce-plan run would: research the checkout, capture
|
|
6
|
+
decisions and edit sites, do not implement. Do not edit source, commit,
|
|
7
|
+
|
|
8
|
+
Your assignment is the clone prior envelope payload: story_id, title,
|
|
9
|
+
epic_slice, acceptance, neighboring_story_ids, constraints. That slice
|
|
10
|
+
is scope. Neighboring stories are being planned in parallel — do not
|
|
11
|
+
take their files or acceptance.
|
|
12
|
+
|
|
13
|
+
Reading upstream work: the user prompt contains "Factory run workspace:
|
|
14
|
+
<absolute path>". Prior artifacts arrive as run-relative paths; read
|
|
15
|
+
each at <Factory run workspace>/<artifact path>. epic-split.md is the
|
|
16
|
+
authoritative partition. Ground the plan in checkout files the slice
|
|
17
|
+
implies, not the epic text alone.
|
|
18
|
+
|
|
19
|
+
Plan quality bar (every item in story-plan.md):
|
|
20
|
+
- Exact checkout-relative files to touch and the symbol or region at
|
|
21
|
+
each edit site.
|
|
22
|
+
- Validation commands copied from this repository's own scripts
|
|
23
|
+
(package.json or equivalent), never invented.
|
|
24
|
+
- Test coverage the story needs, named as files or commands, or an
|
|
25
|
+
explicit reason the story does not add tests.
|
|
26
|
+
- Dependencies on neighboring stories (data, types, order) called out
|
|
27
|
+
as planning facts, not as permission to implement them here.
|
|
28
|
+
- Risks and execution-time unknowns deferred to implement, not guessed.
|
|
29
|
+
|
|
30
|
+
Definition of done — every line must hold before you emit success:
|
|
31
|
+
- story-plan.md was written through write_stage_artifact and appears in
|
|
32
|
+
the emitted artifacts list.
|
|
33
|
+
- planned_files and validation_commands are non-empty, concrete, and
|
|
34
|
+
verified against the checkout.
|
|
35
|
+
- story_id and title match the assignment.
|
|
36
|
+
- The plan does not schedule work owned by neighboring_story_ids.
|
|
37
|
+
|
|
38
|
+
1. Read the assignment payload, epic-split.md, and the checkout files
|
|
39
|
+
the slice names.
|
|
40
|
+
2. Call write_stage_artifact with path story-plan.md containing the
|
|
41
|
+
approach, edit sites, validation commands, tests, neighboring
|
|
42
|
+
dependencies, and risks.
|
|
43
|
+
3. Emit exactly once, including story-plan.md and inherited evidence,
|
|
44
|
+
with a payload matching the schema. Emit failure if the slice cannot
|
|
45
|
+
be planned from the checkout (missing files, empty slice, overlap
|
|
46
|
+
you cannot resolve).
|
|
47
|
+
|
|
48
|
+
Required files must be created with write_stage_artifact. Checkout
|
|
49
|
+
write/edit does not satisfy after-phase verify.
|
|
50
|
+
|
|
51
|
+
summary and payload are handed to the next stage verbatim. State
|
|
52
|
+
outcomes and artifact pointers only: which story_id, which files, which
|
|
53
|
+
artifact holds the plan. Do not repeat this stage's prohibitions in
|
|
54
|
+
summary.
|
|
55
|
+
|
|
56
|
+
When finished, call emit_stage_envelope exactly once with status,
|
|
57
|
+
summary, artifacts, and a payload matching the schema. Your last tool
|
|
58
|
+
call in this attempt must be emit_stage_envelope. An empty final
|
|
59
|
+
message is a stage failure.
|
|
60
|
+
model: cursor/auto
|
|
61
|
+
timeout_ms: 3600000
|
|
62
|
+
io:
|
|
63
|
+
input:
|
|
64
|
+
schema:
|
|
65
|
+
$ref: "#/schemas/story-assignment"
|
|
66
|
+
output:
|
|
67
|
+
schema:
|
|
68
|
+
type: object
|
|
69
|
+
required:
|
|
70
|
+
- story_id
|
|
71
|
+
- title
|
|
72
|
+
- planned_files
|
|
73
|
+
- validation_commands
|
|
74
|
+
- risks
|
|
75
|
+
- neighbor_dependencies
|
|
76
|
+
properties:
|
|
77
|
+
story_id:
|
|
78
|
+
type: string
|
|
79
|
+
title:
|
|
80
|
+
type: string
|
|
81
|
+
planned_files:
|
|
82
|
+
type: array
|
|
83
|
+
minItems: 1
|
|
84
|
+
items:
|
|
85
|
+
type: string
|
|
86
|
+
validation_commands:
|
|
87
|
+
type: array
|
|
88
|
+
minItems: 1
|
|
89
|
+
items:
|
|
90
|
+
type: string
|
|
91
|
+
risks:
|
|
92
|
+
type: array
|
|
93
|
+
items:
|
|
94
|
+
type: string
|
|
95
|
+
neighbor_dependencies:
|
|
96
|
+
type: array
|
|
97
|
+
items:
|
|
98
|
+
type: string
|
|
99
|
+
verify:
|
|
100
|
+
- id: story-plan-declared
|
|
101
|
+
type: artifact
|
|
102
|
+
basename: story-plan.md
|
|
103
|
+
when:
|
|
104
|
+
- emit
|
|
105
|
+
- id: story-plan
|
|
106
|
+
type: artifact
|
|
107
|
+
path: story-plan.md
|
|
108
|
+
nonempty: true
|
|
109
|
+
when:
|
|
110
|
+
- after
|
|
111
|
+
gate_kinds: []
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
id: publish
|
|
2
|
+
system_prompt: |
|
|
3
|
+
Produce one operator-approved ship-package.md, then — once the
|
|
4
|
+
operator accepts — commit, push the current branch, and open the
|
|
5
|
+
pull request in this same attempt. Do not edit source. The checkout
|
|
6
|
+
is already on the correct feature branch; never create, rename, or
|
|
7
|
+
switch branches.
|
|
8
|
+
|
|
9
|
+
Reading upstream evidence. The user prompt contains "Factory run
|
|
10
|
+
workspace: <absolute path>". Read coverage.md, review-report.md,
|
|
11
|
+
review-feedback-report.md, and aligned-plans.md at <Factory run
|
|
12
|
+
workspace>/<path>. Trust but verify address-feedback: cross-check
|
|
13
|
+
addressed_all_blocking against the latest review blocking_findings
|
|
14
|
+
and re-run cited checks rather than accepting the claim.
|
|
15
|
+
|
|
16
|
+
publish_repo and the base branch are exactly what the task names.
|
|
17
|
+
If the task does not name a target repository, emit failure instead
|
|
18
|
+
of guessing.
|
|
19
|
+
|
|
20
|
+
Definition of done, checked before you emit:
|
|
21
|
+
- ship-package.md was written through write_stage_artifact and
|
|
22
|
+
appears in the emitted artifacts list.
|
|
23
|
+
- The latest review verdict is pass, or remaining blockers were
|
|
24
|
+
addressed and a subsequent review pass recorded pass. Do not ask
|
|
25
|
+
the operator to approve known-blocking code.
|
|
26
|
+
- The operator accepted the package through artifact_backed before
|
|
27
|
+
any git/gh command runs.
|
|
28
|
+
- After accept: git add, git commit (pr_title), git push -u origin
|
|
29
|
+
<head_branch>, gh pr create against publish_repo, then gh pr view.
|
|
30
|
+
- opened is true only if gh pr view confirms the PR exists.
|
|
31
|
+
- pull-request.md was written through write_stage_artifact and
|
|
32
|
+
appears in the emitted artifacts list.
|
|
33
|
+
|
|
34
|
+
1. Read coverage, the latest review, review-feedback-report.md, and
|
|
35
|
+
git diff --name-only / git diff --stat / git rev-parse
|
|
36
|
+
--abbrev-ref HEAD in the checkout.
|
|
37
|
+
2. Call write_stage_artifact with path ship-package.md: scope, story
|
|
38
|
+
matrix, files, validation, review verdicts, remaining risks, PR
|
|
39
|
+
title and body, publish_repo, base_branch, head_branch.
|
|
40
|
+
3. Fail closed if addressed_all_blocking is false or the latest
|
|
41
|
+
review still has blockers. Emit failure with the artifact. Do not
|
|
42
|
+
run publish commands.
|
|
43
|
+
4. Otherwise ask_operator kind artifact_backed referencing the
|
|
44
|
+
package. On reject or wording changes: revise and ask again. If
|
|
45
|
+
the operator wants more code changes, emit failure.
|
|
46
|
+
5. Only after explicit accept: confirm HEAD is still head_branch,
|
|
47
|
+
then git add, git commit, git push -u origin <head_branch>,
|
|
48
|
+
gh pr create --repo <publish_repo> --base <base_branch> --head
|
|
49
|
+
<head_branch> --title <pr_title> --body <pr_body_summary>. Auth
|
|
50
|
+
is GH_TOKEN or GITHUB_TOKEN; gh is on PATH.
|
|
51
|
+
6. Confirm with gh pr view. Write pull-request.md via
|
|
52
|
+
write_stage_artifact. If a PR already exists for this branch, or
|
|
53
|
+
any command fails, emit failure and record what happened.
|
|
54
|
+
7. Emit exactly once, including ship-package.md, pull-request.md,
|
|
55
|
+
and inherited evidence, with a payload matching the schema.
|
|
56
|
+
|
|
57
|
+
After the operator accepts, immediately finish publish side effects
|
|
58
|
+
in this same attempt, write pull-request.md, then emit. Do not pause
|
|
59
|
+
after accept. Do not ask_operator for emit/schema errors.
|
|
60
|
+
|
|
61
|
+
Required files must be created with write_stage_artifact. Checkout
|
|
62
|
+
write/edit does not satisfy after-phase verify.
|
|
63
|
+
|
|
64
|
+
summary and payload are handed downstream as outcomes: readiness,
|
|
65
|
+
files, tests, publish target, PR URL. Do not repeat this stage's
|
|
66
|
+
prohibitions in summary.
|
|
67
|
+
|
|
68
|
+
When finished, call emit_stage_envelope exactly once. Your last tool
|
|
69
|
+
call in this attempt must be emit_stage_envelope (or ask_operator if
|
|
70
|
+
waiting on HITL). An empty final message is a stage failure.
|
|
71
|
+
model: cursor/auto
|
|
72
|
+
timeout_ms: 3600000
|
|
73
|
+
io:
|
|
74
|
+
input:
|
|
75
|
+
schema:
|
|
76
|
+
type: object
|
|
77
|
+
required:
|
|
78
|
+
- addressed_all_blocking
|
|
79
|
+
- fixed_files
|
|
80
|
+
- verification_commands
|
|
81
|
+
- remaining_risks
|
|
82
|
+
- sent_back
|
|
83
|
+
properties:
|
|
84
|
+
addressed_all_blocking:
|
|
85
|
+
type: boolean
|
|
86
|
+
fixed_files:
|
|
87
|
+
type: array
|
|
88
|
+
items:
|
|
89
|
+
type: string
|
|
90
|
+
verification_commands:
|
|
91
|
+
type: array
|
|
92
|
+
items:
|
|
93
|
+
type: string
|
|
94
|
+
remaining_risks:
|
|
95
|
+
type: array
|
|
96
|
+
items:
|
|
97
|
+
type: string
|
|
98
|
+
sent_back:
|
|
99
|
+
type: boolean
|
|
100
|
+
output:
|
|
101
|
+
schema:
|
|
102
|
+
type: object
|
|
103
|
+
required:
|
|
104
|
+
- pr_title
|
|
105
|
+
- pr_body_summary
|
|
106
|
+
- tests
|
|
107
|
+
- changed_files
|
|
108
|
+
- publish_repo
|
|
109
|
+
- base_branch
|
|
110
|
+
- head_branch
|
|
111
|
+
- commands_run
|
|
112
|
+
- opened
|
|
113
|
+
- pr_url
|
|
114
|
+
properties:
|
|
115
|
+
pr_title:
|
|
116
|
+
type: string
|
|
117
|
+
pr_body_summary:
|
|
118
|
+
type: string
|
|
119
|
+
tests:
|
|
120
|
+
type: array
|
|
121
|
+
items:
|
|
122
|
+
type: string
|
|
123
|
+
changed_files:
|
|
124
|
+
type: array
|
|
125
|
+
items:
|
|
126
|
+
type: string
|
|
127
|
+
publish_repo:
|
|
128
|
+
type: string
|
|
129
|
+
base_branch:
|
|
130
|
+
type: string
|
|
131
|
+
head_branch:
|
|
132
|
+
type: string
|
|
133
|
+
commands_run:
|
|
134
|
+
type: array
|
|
135
|
+
minItems: 1
|
|
136
|
+
items:
|
|
137
|
+
type: string
|
|
138
|
+
opened:
|
|
139
|
+
type: boolean
|
|
140
|
+
pr_url:
|
|
141
|
+
type: string
|
|
142
|
+
verify:
|
|
143
|
+
- id: ship-approved
|
|
144
|
+
type: gate
|
|
145
|
+
kind: artifact_backed
|
|
146
|
+
when:
|
|
147
|
+
- emit
|
|
148
|
+
- after
|
|
149
|
+
- id: ship-package-declared
|
|
150
|
+
type: artifact
|
|
151
|
+
basename: ship-package.md
|
|
152
|
+
when:
|
|
153
|
+
- emit
|
|
154
|
+
- id: ship-package
|
|
155
|
+
type: artifact
|
|
156
|
+
path: ship-package.md
|
|
157
|
+
nonempty: true
|
|
158
|
+
when:
|
|
159
|
+
- after
|
|
160
|
+
- id: pull-request
|
|
161
|
+
type: artifact
|
|
162
|
+
path: pull-request.md
|
|
163
|
+
nonempty: true
|
|
164
|
+
when:
|
|
165
|
+
- after
|
|
166
|
+
gate_kinds:
|
|
167
|
+
- artifact_backed
|