@synergenius/flow-weaver-pack-weaver 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +204 -0
- package/README.md +167 -0
- package/dist/bot/agent-provider.d.ts +34 -0
- package/dist/bot/agent-provider.d.ts.map +1 -0
- package/dist/bot/agent-provider.js +218 -0
- package/dist/bot/agent-provider.js.map +1 -0
- package/dist/bot/ai-client.d.ts +15 -0
- package/dist/bot/ai-client.d.ts.map +1 -0
- package/dist/bot/ai-client.js +128 -0
- package/dist/bot/ai-client.js.map +1 -0
- package/dist/bot/approvals.d.ts +22 -0
- package/dist/bot/approvals.d.ts.map +1 -0
- package/dist/bot/approvals.js +187 -0
- package/dist/bot/approvals.js.map +1 -0
- package/dist/bot/audit-logger.d.ts +5 -0
- package/dist/bot/audit-logger.d.ts.map +1 -0
- package/dist/bot/audit-logger.js +42 -0
- package/dist/bot/audit-logger.js.map +1 -0
- package/dist/bot/audit-store.d.ts +13 -0
- package/dist/bot/audit-store.d.ts.map +1 -0
- package/dist/bot/audit-store.js +59 -0
- package/dist/bot/audit-store.js.map +1 -0
- package/dist/bot/bot-agent-channel.d.ts +46 -0
- package/dist/bot/bot-agent-channel.d.ts.map +1 -0
- package/dist/bot/bot-agent-channel.js +58 -0
- package/dist/bot/bot-agent-channel.js.map +1 -0
- package/dist/bot/cli-provider.d.ts +29 -0
- package/dist/bot/cli-provider.d.ts.map +1 -0
- package/dist/bot/cli-provider.js +132 -0
- package/dist/bot/cli-provider.js.map +1 -0
- package/dist/bot/cli-stream-parser.d.ts +11 -0
- package/dist/bot/cli-stream-parser.d.ts.map +1 -0
- package/dist/bot/cli-stream-parser.js +53 -0
- package/dist/bot/cli-stream-parser.js.map +1 -0
- package/dist/bot/cost-store.d.ts +18 -0
- package/dist/bot/cost-store.d.ts.map +1 -0
- package/dist/bot/cost-store.js +81 -0
- package/dist/bot/cost-store.js.map +1 -0
- package/dist/bot/cost-tracker.d.ts +18 -0
- package/dist/bot/cost-tracker.d.ts.map +1 -0
- package/dist/bot/cost-tracker.js +60 -0
- package/dist/bot/cost-tracker.js.map +1 -0
- package/dist/bot/cron-parser.d.ts +5 -0
- package/dist/bot/cron-parser.d.ts.map +1 -0
- package/dist/bot/cron-parser.js +141 -0
- package/dist/bot/cron-parser.js.map +1 -0
- package/dist/bot/cron-scheduler.d.ts +12 -0
- package/dist/bot/cron-scheduler.d.ts.map +1 -0
- package/dist/bot/cron-scheduler.js +43 -0
- package/dist/bot/cron-scheduler.js.map +1 -0
- package/dist/bot/dashboard.d.ts +34 -0
- package/dist/bot/dashboard.d.ts.map +1 -0
- package/dist/bot/dashboard.js +602 -0
- package/dist/bot/dashboard.js.map +1 -0
- package/dist/bot/design-checker.d.ts +24 -0
- package/dist/bot/design-checker.d.ts.map +1 -0
- package/dist/bot/design-checker.js +269 -0
- package/dist/bot/design-checker.js.map +1 -0
- package/dist/bot/file-lock.d.ts +7 -0
- package/dist/bot/file-lock.d.ts.map +1 -0
- package/dist/bot/file-lock.js +64 -0
- package/dist/bot/file-lock.js.map +1 -0
- package/dist/bot/file-validator.d.ts +10 -0
- package/dist/bot/file-validator.d.ts.map +1 -0
- package/dist/bot/file-validator.js +27 -0
- package/dist/bot/file-validator.js.map +1 -0
- package/dist/bot/file-watcher.d.ts +24 -0
- package/dist/bot/file-watcher.d.ts.map +1 -0
- package/dist/bot/file-watcher.js +98 -0
- package/dist/bot/file-watcher.js.map +1 -0
- package/dist/bot/fw-api.d.ts +8 -0
- package/dist/bot/fw-api.d.ts.map +1 -0
- package/dist/bot/fw-api.js +12 -0
- package/dist/bot/fw-api.js.map +1 -0
- package/dist/bot/genesis-prompt-context.d.ts +31 -0
- package/dist/bot/genesis-prompt-context.d.ts.map +1 -0
- package/dist/bot/genesis-prompt-context.js +121 -0
- package/dist/bot/genesis-prompt-context.js.map +1 -0
- package/dist/bot/genesis-store.d.ts +28 -0
- package/dist/bot/genesis-store.d.ts.map +1 -0
- package/dist/bot/genesis-store.js +154 -0
- package/dist/bot/genesis-store.js.map +1 -0
- package/dist/bot/index.d.ts +38 -0
- package/dist/bot/index.d.ts.map +1 -0
- package/dist/bot/index.js +37 -0
- package/dist/bot/index.js.map +1 -0
- package/dist/bot/notifications.d.ts +20 -0
- package/dist/bot/notifications.d.ts.map +1 -0
- package/dist/bot/notifications.js +215 -0
- package/dist/bot/notifications.js.map +1 -0
- package/dist/bot/pipeline-runner.d.ts +22 -0
- package/dist/bot/pipeline-runner.d.ts.map +1 -0
- package/dist/bot/pipeline-runner.js +263 -0
- package/dist/bot/pipeline-runner.js.map +1 -0
- package/dist/bot/provider-registry.d.ts +26 -0
- package/dist/bot/provider-registry.d.ts.map +1 -0
- package/dist/bot/provider-registry.js +175 -0
- package/dist/bot/provider-registry.js.map +1 -0
- package/dist/bot/run-store.d.ts +25 -0
- package/dist/bot/run-store.d.ts.map +1 -0
- package/dist/bot/run-store.js +156 -0
- package/dist/bot/run-store.js.map +1 -0
- package/dist/bot/runner.d.ts +13 -0
- package/dist/bot/runner.d.ts.map +1 -0
- package/dist/bot/runner.js +244 -0
- package/dist/bot/runner.js.map +1 -0
- package/dist/bot/session-state.d.ts +19 -0
- package/dist/bot/session-state.d.ts.map +1 -0
- package/dist/bot/session-state.js +65 -0
- package/dist/bot/session-state.js.map +1 -0
- package/dist/bot/steering.d.ts +13 -0
- package/dist/bot/steering.d.ts.map +1 -0
- package/dist/bot/steering.js +40 -0
- package/dist/bot/steering.js.map +1 -0
- package/dist/bot/step-executor.d.ts +10 -0
- package/dist/bot/step-executor.d.ts.map +1 -0
- package/dist/bot/step-executor.js +30 -0
- package/dist/bot/step-executor.js.map +1 -0
- package/dist/bot/system-prompt.d.ts +19 -0
- package/dist/bot/system-prompt.d.ts.map +1 -0
- package/dist/bot/system-prompt.js +222 -0
- package/dist/bot/system-prompt.js.map +1 -0
- package/dist/bot/task-queue.d.ts +26 -0
- package/dist/bot/task-queue.d.ts.map +1 -0
- package/dist/bot/task-queue.js +98 -0
- package/dist/bot/task-queue.js.map +1 -0
- package/dist/bot/types.d.ts +478 -0
- package/dist/bot/types.d.ts.map +1 -0
- package/dist/bot/types.js +2 -0
- package/dist/bot/types.js.map +1 -0
- package/dist/bot/utils.d.ts +2 -0
- package/dist/bot/utils.d.ts.map +1 -0
- package/dist/bot/utils.js +20 -0
- package/dist/bot/utils.js.map +1 -0
- package/dist/bot/watch-daemon.d.ts +19 -0
- package/dist/bot/watch-daemon.d.ts.map +1 -0
- package/dist/bot/watch-daemon.js +178 -0
- package/dist/bot/watch-daemon.js.map +1 -0
- package/dist/bot/web-approval.d.ts +19 -0
- package/dist/bot/web-approval.d.ts.map +1 -0
- package/dist/bot/web-approval.js +207 -0
- package/dist/bot/web-approval.js.map +1 -0
- package/dist/cli-bridge.d.ts +2 -0
- package/dist/cli-bridge.d.ts.map +1 -0
- package/dist/cli-bridge.js +30 -0
- package/dist/cli-bridge.js.map +1 -0
- package/dist/cli-handlers.d.ts +79 -0
- package/dist/cli-handlers.d.ts.map +1 -0
- package/dist/cli-handlers.js +1335 -0
- package/dist/cli-handlers.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +749 -0
- package/dist/cli.js.map +1 -0
- package/dist/docs/docs/weaver-config.md +135 -0
- package/dist/docs/weaver-config.md +141 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-tools.d.ts +13 -0
- package/dist/mcp-tools.d.ts.map +1 -0
- package/dist/mcp-tools.js +197 -0
- package/dist/mcp-tools.js.map +1 -0
- package/dist/node-types/abort-task.d.ts +15 -0
- package/dist/node-types/abort-task.d.ts.map +1 -0
- package/dist/node-types/abort-task.js +28 -0
- package/dist/node-types/abort-task.js.map +1 -0
- package/dist/node-types/approval-gate.d.ts +18 -0
- package/dist/node-types/approval-gate.d.ts.map +1 -0
- package/dist/node-types/approval-gate.js +80 -0
- package/dist/node-types/approval-gate.js.map +1 -0
- package/dist/node-types/bot-report.d.ts +20 -0
- package/dist/node-types/bot-report.d.ts.map +1 -0
- package/dist/node-types/bot-report.js +67 -0
- package/dist/node-types/bot-report.js.map +1 -0
- package/dist/node-types/build-context.d.ts +16 -0
- package/dist/node-types/build-context.d.ts.map +1 -0
- package/dist/node-types/build-context.js +64 -0
- package/dist/node-types/build-context.js.map +1 -0
- package/dist/node-types/detect-provider.d.ts +17 -0
- package/dist/node-types/detect-provider.d.ts.map +1 -0
- package/dist/node-types/detect-provider.js +71 -0
- package/dist/node-types/detect-provider.js.map +1 -0
- package/dist/node-types/exec-validate-retry.d.ts +17 -0
- package/dist/node-types/exec-validate-retry.d.ts.map +1 -0
- package/dist/node-types/exec-validate-retry.js +147 -0
- package/dist/node-types/exec-validate-retry.js.map +1 -0
- package/dist/node-types/execute-plan.d.ts +26 -0
- package/dist/node-types/execute-plan.d.ts.map +1 -0
- package/dist/node-types/execute-plan.js +120 -0
- package/dist/node-types/execute-plan.js.map +1 -0
- package/dist/node-types/execute-target.d.ts +16 -0
- package/dist/node-types/execute-target.d.ts.map +1 -0
- package/dist/node-types/execute-target.js +238 -0
- package/dist/node-types/execute-target.js.map +1 -0
- package/dist/node-types/fix-errors.d.ts +24 -0
- package/dist/node-types/fix-errors.d.ts.map +1 -0
- package/dist/node-types/fix-errors.js +49 -0
- package/dist/node-types/fix-errors.js.map +1 -0
- package/dist/node-types/genesis-apply-retry.d.ts +27 -0
- package/dist/node-types/genesis-apply-retry.d.ts.map +1 -0
- package/dist/node-types/genesis-apply-retry.js +97 -0
- package/dist/node-types/genesis-apply-retry.js.map +1 -0
- package/dist/node-types/genesis-apply.d.ts +29 -0
- package/dist/node-types/genesis-apply.d.ts.map +1 -0
- package/dist/node-types/genesis-apply.js +76 -0
- package/dist/node-types/genesis-apply.js.map +1 -0
- package/dist/node-types/genesis-approve.d.ts +19 -0
- package/dist/node-types/genesis-approve.d.ts.map +1 -0
- package/dist/node-types/genesis-approve.js +59 -0
- package/dist/node-types/genesis-approve.js.map +1 -0
- package/dist/node-types/genesis-check-stabilize.d.ts +16 -0
- package/dist/node-types/genesis-check-stabilize.d.ts.map +1 -0
- package/dist/node-types/genesis-check-stabilize.js +32 -0
- package/dist/node-types/genesis-check-stabilize.js.map +1 -0
- package/dist/node-types/genesis-check-threshold.d.ts +15 -0
- package/dist/node-types/genesis-check-threshold.d.ts.map +1 -0
- package/dist/node-types/genesis-check-threshold.js +29 -0
- package/dist/node-types/genesis-check-threshold.js.map +1 -0
- package/dist/node-types/genesis-commit.d.ts +17 -0
- package/dist/node-types/genesis-commit.d.ts.map +1 -0
- package/dist/node-types/genesis-commit.js +59 -0
- package/dist/node-types/genesis-commit.js.map +1 -0
- package/dist/node-types/genesis-compile-validate.d.ts +26 -0
- package/dist/node-types/genesis-compile-validate.d.ts.map +1 -0
- package/dist/node-types/genesis-compile-validate.js +60 -0
- package/dist/node-types/genesis-compile-validate.js.map +1 -0
- package/dist/node-types/genesis-diff-fingerprint.d.ts +15 -0
- package/dist/node-types/genesis-diff-fingerprint.d.ts.map +1 -0
- package/dist/node-types/genesis-diff-fingerprint.js +59 -0
- package/dist/node-types/genesis-diff-fingerprint.js.map +1 -0
- package/dist/node-types/genesis-diff-workflow.d.ts +15 -0
- package/dist/node-types/genesis-diff-workflow.d.ts.map +1 -0
- package/dist/node-types/genesis-diff-workflow.js +67 -0
- package/dist/node-types/genesis-diff-workflow.js.map +1 -0
- package/dist/node-types/genesis-escrow-grace.d.ts +15 -0
- package/dist/node-types/genesis-escrow-grace.d.ts.map +1 -0
- package/dist/node-types/genesis-escrow-grace.js +52 -0
- package/dist/node-types/genesis-escrow-grace.js.map +1 -0
- package/dist/node-types/genesis-escrow-migrate.d.ts +21 -0
- package/dist/node-types/genesis-escrow-migrate.d.ts.map +1 -0
- package/dist/node-types/genesis-escrow-migrate.js +116 -0
- package/dist/node-types/genesis-escrow-migrate.js.map +1 -0
- package/dist/node-types/genesis-escrow-recover.d.ts +15 -0
- package/dist/node-types/genesis-escrow-recover.d.ts.map +1 -0
- package/dist/node-types/genesis-escrow-recover.js +90 -0
- package/dist/node-types/genesis-escrow-recover.js.map +1 -0
- package/dist/node-types/genesis-escrow-stage.d.ts +17 -0
- package/dist/node-types/genesis-escrow-stage.d.ts.map +1 -0
- package/dist/node-types/genesis-escrow-stage.js +86 -0
- package/dist/node-types/genesis-escrow-stage.js.map +1 -0
- package/dist/node-types/genesis-escrow-validate.d.ts +17 -0
- package/dist/node-types/genesis-escrow-validate.d.ts.map +1 -0
- package/dist/node-types/genesis-escrow-validate.js +110 -0
- package/dist/node-types/genesis-escrow-validate.js.map +1 -0
- package/dist/node-types/genesis-load-config.d.ts +17 -0
- package/dist/node-types/genesis-load-config.d.ts.map +1 -0
- package/dist/node-types/genesis-load-config.js +36 -0
- package/dist/node-types/genesis-load-config.js.map +1 -0
- package/dist/node-types/genesis-observe.d.ts +18 -0
- package/dist/node-types/genesis-observe.d.ts.map +1 -0
- package/dist/node-types/genesis-observe.js +103 -0
- package/dist/node-types/genesis-observe.js.map +1 -0
- package/dist/node-types/genesis-propose.d.ts +17 -0
- package/dist/node-types/genesis-propose.d.ts.map +1 -0
- package/dist/node-types/genesis-propose.js +69 -0
- package/dist/node-types/genesis-propose.js.map +1 -0
- package/dist/node-types/genesis-report.d.ts +20 -0
- package/dist/node-types/genesis-report.d.ts.map +1 -0
- package/dist/node-types/genesis-report.js +87 -0
- package/dist/node-types/genesis-report.js.map +1 -0
- package/dist/node-types/genesis-snapshot.d.ts +15 -0
- package/dist/node-types/genesis-snapshot.d.ts.map +1 -0
- package/dist/node-types/genesis-snapshot.js +26 -0
- package/dist/node-types/genesis-snapshot.js.map +1 -0
- package/dist/node-types/genesis-try-apply.d.ts +18 -0
- package/dist/node-types/genesis-try-apply.d.ts.map +1 -0
- package/dist/node-types/genesis-try-apply.js +142 -0
- package/dist/node-types/genesis-try-apply.js.map +1 -0
- package/dist/node-types/genesis-update-history.d.ts +15 -0
- package/dist/node-types/genesis-update-history.d.ts.map +1 -0
- package/dist/node-types/genesis-update-history.js +70 -0
- package/dist/node-types/genesis-update-history.js.map +1 -0
- package/dist/node-types/genesis-validate-proposal.d.ts +16 -0
- package/dist/node-types/genesis-validate-proposal.d.ts.map +1 -0
- package/dist/node-types/genesis-validate-proposal.js +109 -0
- package/dist/node-types/genesis-validate-proposal.js.map +1 -0
- package/dist/node-types/git-ops.d.ts +15 -0
- package/dist/node-types/git-ops.d.ts.map +1 -0
- package/dist/node-types/git-ops.js +69 -0
- package/dist/node-types/git-ops.js.map +1 -0
- package/dist/node-types/index.d.ts +37 -0
- package/dist/node-types/index.d.ts.map +1 -0
- package/dist/node-types/index.js +37 -0
- package/dist/node-types/index.js.map +1 -0
- package/dist/node-types/load-config.d.ts +17 -0
- package/dist/node-types/load-config.d.ts.map +1 -0
- package/dist/node-types/load-config.js +27 -0
- package/dist/node-types/load-config.js.map +1 -0
- package/dist/node-types/plan-task.d.ts +17 -0
- package/dist/node-types/plan-task.d.ts.map +1 -0
- package/dist/node-types/plan-task.js +55 -0
- package/dist/node-types/plan-task.js.map +1 -0
- package/dist/node-types/read-workflow.d.ts +15 -0
- package/dist/node-types/read-workflow.d.ts.map +1 -0
- package/dist/node-types/read-workflow.js +60 -0
- package/dist/node-types/read-workflow.js.map +1 -0
- package/dist/node-types/receive-task.d.ts +20 -0
- package/dist/node-types/receive-task.d.ts.map +1 -0
- package/dist/node-types/receive-task.js +69 -0
- package/dist/node-types/receive-task.js.map +1 -0
- package/dist/node-types/report.d.ts +14 -0
- package/dist/node-types/report.d.ts.map +1 -0
- package/dist/node-types/report.js +25 -0
- package/dist/node-types/report.js.map +1 -0
- package/dist/node-types/resolve-target.d.ts +16 -0
- package/dist/node-types/resolve-target.d.ts.map +1 -0
- package/dist/node-types/resolve-target.js +67 -0
- package/dist/node-types/resolve-target.js.map +1 -0
- package/dist/node-types/route-task.d.ts +14 -0
- package/dist/node-types/route-task.d.ts.map +1 -0
- package/dist/node-types/route-task.js +22 -0
- package/dist/node-types/route-task.js.map +1 -0
- package/dist/node-types/send-notify.d.ts +14 -0
- package/dist/node-types/send-notify.d.ts.map +1 -0
- package/dist/node-types/send-notify.js +71 -0
- package/dist/node-types/send-notify.js.map +1 -0
- package/dist/node-types/validate-result.d.ts +24 -0
- package/dist/node-types/validate-result.d.ts.map +1 -0
- package/dist/node-types/validate-result.js +38 -0
- package/dist/node-types/validate-result.js.map +1 -0
- package/dist/templates/index.d.ts +5 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +4 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/weaver-bot-template.d.ts +11 -0
- package/dist/templates/weaver-bot-template.d.ts.map +1 -0
- package/dist/templates/weaver-bot-template.js +99 -0
- package/dist/templates/weaver-bot-template.js.map +1 -0
- package/dist/templates/weaver-template.d.ts +11 -0
- package/dist/templates/weaver-template.d.ts.map +1 -0
- package/dist/templates/weaver-template.js +53 -0
- package/dist/templates/weaver-template.js.map +1 -0
- package/dist/workflows/genesis-task.d.ts +62 -0
- package/dist/workflows/genesis-task.d.ts.map +1 -0
- package/dist/workflows/genesis-task.js +64 -0
- package/dist/workflows/genesis-task.js.map +1 -0
- package/dist/workflows/index.d.ts +4 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +4 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/weaver-bot-batch.d.ts +49 -0
- package/dist/workflows/weaver-bot-batch.d.ts.map +1 -0
- package/dist/workflows/weaver-bot-batch.js +49 -0
- package/dist/workflows/weaver-bot-batch.js.map +1 -0
- package/dist/workflows/weaver-bot-session.d.ts +65 -0
- package/dist/workflows/weaver-bot-session.d.ts.map +1 -0
- package/dist/workflows/weaver-bot-session.js +68 -0
- package/dist/workflows/weaver-bot-session.js.map +1 -0
- package/dist/workflows/weaver-bot.d.ts +61 -0
- package/dist/workflows/weaver-bot.d.ts.map +1 -0
- package/dist/workflows/weaver-bot.js +61 -0
- package/dist/workflows/weaver-bot.js.map +1 -0
- package/dist/workflows/weaver.d.ts +24 -0
- package/dist/workflows/weaver.d.ts.map +1 -0
- package/dist/workflows/weaver.js +28 -0
- package/dist/workflows/weaver.js.map +1 -0
- package/flowweaver.manifest.json +1001 -0
- package/package.json +78 -0
- package/src/bot/agent-provider.ts +273 -0
- package/src/bot/ai-client.ts +153 -0
- package/src/bot/approvals.ts +273 -0
- package/src/bot/audit-logger.ts +45 -0
- package/src/bot/audit-store.ts +69 -0
- package/src/bot/bot-agent-channel.ts +99 -0
- package/src/bot/cli-provider.ts +169 -0
- package/src/bot/cli-stream-parser.ts +59 -0
- package/src/bot/cost-store.ts +92 -0
- package/src/bot/cost-tracker.ts +72 -0
- package/src/bot/cron-parser.ts +153 -0
- package/src/bot/cron-scheduler.ts +48 -0
- package/src/bot/dashboard.ts +658 -0
- package/src/bot/design-checker.ts +327 -0
- package/src/bot/file-lock.ts +73 -0
- package/src/bot/file-validator.ts +41 -0
- package/src/bot/file-watcher.ts +103 -0
- package/src/bot/fw-api.ts +18 -0
- package/src/bot/genesis-prompt-context.ts +135 -0
- package/src/bot/genesis-store.ts +180 -0
- package/src/bot/index.ts +127 -0
- package/src/bot/notifications.ts +263 -0
- package/src/bot/pipeline-runner.ts +324 -0
- package/src/bot/provider-registry.ts +236 -0
- package/src/bot/run-store.ts +169 -0
- package/src/bot/runner.ts +311 -0
- package/src/bot/session-state.ts +73 -0
- package/src/bot/steering.ts +44 -0
- package/src/bot/step-executor.ts +34 -0
- package/src/bot/system-prompt.ts +280 -0
- package/src/bot/task-queue.ts +111 -0
- package/src/bot/types.ts +571 -0
- package/src/bot/utils.ts +17 -0
- package/src/bot/watch-daemon.ts +203 -0
- package/src/bot/web-approval.ts +240 -0
- package/src/cli-bridge.ts +41 -0
- package/src/cli-handlers.ts +1445 -0
- package/src/docs/weaver-config.md +135 -0
- package/src/index.ts +177 -0
- package/src/mcp-tools.ts +274 -0
- package/src/node-types/abort-task.ts +31 -0
- package/src/node-types/approval-gate.ts +95 -0
- package/src/node-types/bot-report.ts +82 -0
- package/src/node-types/build-context.ts +65 -0
- package/src/node-types/detect-provider.ts +77 -0
- package/src/node-types/exec-validate-retry.ts +170 -0
- package/src/node-types/execute-plan.ts +130 -0
- package/src/node-types/execute-target.ts +256 -0
- package/src/node-types/fix-errors.ts +63 -0
- package/src/node-types/genesis-apply-retry.ts +133 -0
- package/src/node-types/genesis-apply.ts +96 -0
- package/src/node-types/genesis-approve.ts +73 -0
- package/src/node-types/genesis-check-stabilize.ts +37 -0
- package/src/node-types/genesis-check-threshold.ts +34 -0
- package/src/node-types/genesis-commit.ts +71 -0
- package/src/node-types/genesis-compile-validate.ts +77 -0
- package/src/node-types/genesis-diff-fingerprint.ts +67 -0
- package/src/node-types/genesis-diff-workflow.ts +71 -0
- package/src/node-types/genesis-escrow-grace.ts +62 -0
- package/src/node-types/genesis-escrow-migrate.ts +138 -0
- package/src/node-types/genesis-escrow-recover.ts +99 -0
- package/src/node-types/genesis-escrow-stage.ts +104 -0
- package/src/node-types/genesis-escrow-validate.ts +120 -0
- package/src/node-types/genesis-load-config.ts +44 -0
- package/src/node-types/genesis-observe.ts +119 -0
- package/src/node-types/genesis-propose.ts +86 -0
- package/src/node-types/genesis-report.ts +95 -0
- package/src/node-types/genesis-snapshot.ts +30 -0
- package/src/node-types/genesis-try-apply.ts +165 -0
- package/src/node-types/genesis-update-history.ts +72 -0
- package/src/node-types/genesis-validate-proposal.ts +124 -0
- package/src/node-types/git-ops.ts +72 -0
- package/src/node-types/index.ts +36 -0
- package/src/node-types/load-config.ts +27 -0
- package/src/node-types/plan-task.ts +66 -0
- package/src/node-types/read-workflow.ts +68 -0
- package/src/node-types/receive-task.ts +92 -0
- package/src/node-types/report.ts +25 -0
- package/src/node-types/resolve-target.ts +64 -0
- package/src/node-types/route-task.ts +25 -0
- package/src/node-types/send-notify.ts +75 -0
- package/src/node-types/validate-result.ts +49 -0
- package/src/templates/index.ts +5 -0
- package/src/templates/weaver-bot-template.ts +106 -0
- package/src/workflows/genesis-task.ts +91 -0
- package/src/workflows/index.ts +3 -0
- package/src/workflows/weaver-bot-batch.ts +65 -0
- package/src/workflows/weaver-bot.ts +79 -0
- package/templates.js +1 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { callAI, parseJsonResponse } from '../bot/ai-client.js';
|
|
2
|
+
/**
|
|
3
|
+
* When validation fails, sends errors + context to the AI and
|
|
4
|
+
* asks it to produce a repair plan.
|
|
5
|
+
*
|
|
6
|
+
* @flowWeaver nodeType
|
|
7
|
+
* @label Fix Errors
|
|
8
|
+
* @input env [order:0] - Weaver environment bundle
|
|
9
|
+
* @input validationResultJson [order:1] - Validation results (JSON)
|
|
10
|
+
* @input taskJson [order:2] - Task (JSON, pass-through)
|
|
11
|
+
* @output env [order:0] - Weaver environment bundle (pass-through)
|
|
12
|
+
* @output fixPlanJson [order:1] - Fix plan (JSON, same schema as planJson)
|
|
13
|
+
* @output taskJson [order:2] - Task (pass-through)
|
|
14
|
+
* @output onSuccess [order:-2] - On Success
|
|
15
|
+
* @output onFailure [order:-1] - On Failure
|
|
16
|
+
*/
|
|
17
|
+
export async function weaverFixErrors(execute, env, validationResultJson, taskJson) {
|
|
18
|
+
if (!execute) {
|
|
19
|
+
return { onSuccess: true, onFailure: false, env, taskJson, fixPlanJson: '{"steps":[],"summary":"dry run"}' };
|
|
20
|
+
}
|
|
21
|
+
const { providerInfo: pInfo } = env;
|
|
22
|
+
const validation = JSON.parse(validationResultJson);
|
|
23
|
+
const errors = validation.filter(v => !v.valid);
|
|
24
|
+
if (errors.length === 0) {
|
|
25
|
+
return { onSuccess: true, onFailure: false, env, taskJson, fixPlanJson: '{"steps":[],"summary":"no errors to fix"}' };
|
|
26
|
+
}
|
|
27
|
+
let systemPrompt;
|
|
28
|
+
try {
|
|
29
|
+
const mod = await import('../bot/system-prompt.js');
|
|
30
|
+
systemPrompt = await mod.buildSystemPrompt();
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
systemPrompt = 'You are Weaver. Return ONLY valid JSON.';
|
|
34
|
+
}
|
|
35
|
+
const errorSummary = errors.map(e => `${e.file}: ${e.errors.join(', ')}`).join('\n');
|
|
36
|
+
const userPrompt = `The following validation errors occurred:\n${errorSummary}\n\nProvide a fix plan as JSON with "steps" and "summary". Each step needs "id", "operation", "description", and "args".`;
|
|
37
|
+
try {
|
|
38
|
+
const text = await callAI(pInfo, systemPrompt, userPrompt, 8192);
|
|
39
|
+
const plan = parseJsonResponse(text);
|
|
40
|
+
console.log(`\x1b[36m→ Fix plan: ${plan.summary ?? 'generated'}\x1b[0m`);
|
|
41
|
+
return { onSuccess: true, onFailure: false, env, taskJson, fixPlanJson: JSON.stringify(plan) };
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
45
|
+
console.error(`\x1b[31m→ Fix planning failed: ${msg}\x1b[0m`);
|
|
46
|
+
return { onSuccess: false, onFailure: true, env, taskJson, fixPlanJson: JSON.stringify({ steps: [], summary: `Fix failed: ${msg}` }) };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=fix-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-errors.js","sourceRoot":"","sources":["../../src/node-types/fix-errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAgB,EAChB,GAAc,EACd,oBAA4B,EAC5B,QAAgB;IAMhB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;IAC/G,CAAC;IAED,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAA8D,CAAC;IACjH,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAEhD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;IACxH,CAAC;IAED,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACpD,YAAY,GAAG,MAAM,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,YAAY,GAAG,yCAAyC,CAAC;IAC3D,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrF,MAAM,UAAU,GAAG,8CAA8C,YAAY,0HAA0H,CAAC;IAExM,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAEjE,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,uBAAwB,IAA6B,CAAC,OAAO,IAAI,WAAW,SAAS,CAAC,CAAC;QACnG,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IACjG,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,SAAS,CAAC,CAAC;QAC9D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;IACzI,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scoped retry loop for apply + compile. Delegates the actual work to
|
|
3
|
+
* a child node via the attempt callback, and between failures restores
|
|
4
|
+
* the snapshot and asks the AI to revise the proposal.
|
|
5
|
+
*
|
|
6
|
+
* @flowWeaver nodeType
|
|
7
|
+
* @label Genesis Apply Retry
|
|
8
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
9
|
+
* @output start scope:attempt [order:10] [hidden] - Trigger scope execution (boolean)
|
|
10
|
+
* @output attemptCtx scope:attempt [order:11] - Context for child (JSON)
|
|
11
|
+
* @input success scope:attempt [order:12] [hidden] - Success signal from child (boolean)
|
|
12
|
+
* @input failure scope:attempt [order:13] [hidden] - Failure signal from child (boolean)
|
|
13
|
+
* @input attemptCtx scope:attempt [order:14] - Result context from child (JSON)
|
|
14
|
+
* @output ctx [order:0] - Genesis context with applyResultJson (JSON)
|
|
15
|
+
* @output onSuccess [order:-2] - On Success
|
|
16
|
+
* @output onFailure [order:-1] - On Failure
|
|
17
|
+
*/
|
|
18
|
+
export declare function genesisApplyRetry(execute: boolean, ctx: string, attempt: (start: boolean, attemptCtx: string) => Promise<{
|
|
19
|
+
success: boolean;
|
|
20
|
+
failure: boolean;
|
|
21
|
+
attemptCtx: string;
|
|
22
|
+
}>): Promise<{
|
|
23
|
+
onSuccess: boolean;
|
|
24
|
+
onFailure: boolean;
|
|
25
|
+
ctx: string;
|
|
26
|
+
}>;
|
|
27
|
+
//# sourceMappingURL=genesis-apply-retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-apply-retry.d.ts","sourceRoot":"","sources":["../../src/node-types/genesis-apply-retry.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CACP,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,GACvE,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CA8DD"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import { callAI, parseJsonResponse } from '../bot/ai-client.js';
|
|
4
|
+
import { GenesisStore } from '../bot/genesis-store.js';
|
|
5
|
+
import { getGenesisSystemPrompt, getOperationExamples } from '../bot/genesis-prompt-context.js';
|
|
6
|
+
/**
|
|
7
|
+
* Scoped retry loop for apply + compile. Delegates the actual work to
|
|
8
|
+
* a child node via the attempt callback, and between failures restores
|
|
9
|
+
* the snapshot and asks the AI to revise the proposal.
|
|
10
|
+
*
|
|
11
|
+
* @flowWeaver nodeType
|
|
12
|
+
* @label Genesis Apply Retry
|
|
13
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
14
|
+
* @output start scope:attempt [order:10] [hidden] - Trigger scope execution (boolean)
|
|
15
|
+
* @output attemptCtx scope:attempt [order:11] - Context for child (JSON)
|
|
16
|
+
* @input success scope:attempt [order:12] [hidden] - Success signal from child (boolean)
|
|
17
|
+
* @input failure scope:attempt [order:13] [hidden] - Failure signal from child (boolean)
|
|
18
|
+
* @input attemptCtx scope:attempt [order:14] - Result context from child (JSON)
|
|
19
|
+
* @output ctx [order:0] - Genesis context with applyResultJson (JSON)
|
|
20
|
+
* @output onSuccess [order:-2] - On Success
|
|
21
|
+
* @output onFailure [order:-1] - On Failure
|
|
22
|
+
*/
|
|
23
|
+
export async function genesisApplyRetry(execute, ctx, attempt) {
|
|
24
|
+
const context = JSON.parse(ctx);
|
|
25
|
+
if (!execute) {
|
|
26
|
+
const result = { applied: 0, failed: 0, errors: [] };
|
|
27
|
+
context.applyResultJson = JSON.stringify(result);
|
|
28
|
+
context.error = '';
|
|
29
|
+
return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
|
|
30
|
+
}
|
|
31
|
+
const { env } = context;
|
|
32
|
+
const maxAttempts = 3;
|
|
33
|
+
let lastResult = '';
|
|
34
|
+
let lastErrors = '';
|
|
35
|
+
for (let i = 1; i <= maxAttempts; i++) {
|
|
36
|
+
console.log(`\x1b[36m→ Apply attempt ${i}/${maxAttempts}\x1b[0m`);
|
|
37
|
+
const outcome = await attempt(true, JSON.stringify(context));
|
|
38
|
+
const childCtx = JSON.parse(outcome.attemptCtx);
|
|
39
|
+
lastResult = childCtx.applyResultJson ?? '';
|
|
40
|
+
lastErrors = childCtx.error ?? '';
|
|
41
|
+
if (outcome.success) {
|
|
42
|
+
context.applyResultJson = childCtx.applyResultJson;
|
|
43
|
+
context.error = '';
|
|
44
|
+
return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
|
|
45
|
+
}
|
|
46
|
+
if (i < maxAttempts) {
|
|
47
|
+
console.log('\x1b[33m→ Requesting revised proposal from AI...\x1b[0m');
|
|
48
|
+
const config = JSON.parse(context.genesisConfigJson);
|
|
49
|
+
const targetPath = path.resolve(env.projectDir, config.targetWorkflow);
|
|
50
|
+
const store = new GenesisStore(env.projectDir);
|
|
51
|
+
const snapshot = store.loadSnapshot(context.snapshotPath);
|
|
52
|
+
if (snapshot) {
|
|
53
|
+
fs.writeFileSync(targetPath, snapshot, 'utf-8');
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
const revisedProposal = await reviseProposal(env, config, context.proposalJson, lastErrors, targetPath, context.workflowDescription, !!context.stabilized);
|
|
57
|
+
context.proposalJson = revisedProposal;
|
|
58
|
+
console.log('\x1b[36m→ Revised proposal received\x1b[0m');
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
62
|
+
console.error(`\x1b[31m→ AI revision failed: ${msg}\x1b[0m`);
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const errorDesc = lastErrors
|
|
68
|
+
? `Apply/compile failed after ${maxAttempts} attempts. Last errors: ${lastErrors}`
|
|
69
|
+
: `Apply failed after ${maxAttempts} attempts (all operations failed)`;
|
|
70
|
+
context.applyResultJson = lastResult;
|
|
71
|
+
context.error = errorDesc;
|
|
72
|
+
return { onSuccess: false, onFailure: true, ctx: JSON.stringify(context) };
|
|
73
|
+
}
|
|
74
|
+
async function reviseProposal(env, config, currentProposal, compileErrors, targetPath, workflowDescription, stabilized) {
|
|
75
|
+
const { providerInfo: pInfo } = env;
|
|
76
|
+
const systemPrompt = await getGenesisSystemPrompt(config, !!stabilized);
|
|
77
|
+
const userPrompt = [
|
|
78
|
+
'The following proposal caused errors when applied. Revise it to fix these errors.',
|
|
79
|
+
'',
|
|
80
|
+
'## Current Workflow Structure',
|
|
81
|
+
workflowDescription || '(no description available)',
|
|
82
|
+
'',
|
|
83
|
+
'## Failed Proposal',
|
|
84
|
+
currentProposal,
|
|
85
|
+
'',
|
|
86
|
+
'## Errors',
|
|
87
|
+
compileErrors,
|
|
88
|
+
'',
|
|
89
|
+
getOperationExamples(targetPath),
|
|
90
|
+
'',
|
|
91
|
+
'Return the full revised proposal as JSON. Use node IDs and port names that exist in the workflow structure above.',
|
|
92
|
+
].join('\n');
|
|
93
|
+
const text = await callAI(pInfo, systemPrompt, userPrompt, 8192);
|
|
94
|
+
const parsed = parseJsonResponse(text);
|
|
95
|
+
return JSON.stringify(parsed);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=genesis-apply-retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-apply-retry.js","sourceRoot":"","sources":["../../src/node-types/genesis-apply-retry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { WeaverEnv } from '../bot/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Applies proposal operations to the target workflow by invoking the
|
|
4
|
+
* flow-weaver CLI modify command for each operation.
|
|
5
|
+
*
|
|
6
|
+
* @flowWeaver nodeType
|
|
7
|
+
* @label Genesis Apply
|
|
8
|
+
* @input env [order:0] - Weaver environment bundle
|
|
9
|
+
* @input genesisConfigJson [order:1] - Genesis configuration (JSON)
|
|
10
|
+
* @input proposalJson [order:2] - Genesis proposal (JSON)
|
|
11
|
+
* @input snapshotPath [order:3] - Path to the pre-apply snapshot
|
|
12
|
+
* @output env [order:0] - Weaver environment bundle (pass-through)
|
|
13
|
+
* @output genesisConfigJson [order:1] - Genesis configuration (pass-through)
|
|
14
|
+
* @output proposalJson [order:2] - Genesis proposal (pass-through)
|
|
15
|
+
* @output snapshotPath [order:3] - Path to the pre-apply snapshot (pass-through)
|
|
16
|
+
* @output applyResultJson [order:4] - Apply result (JSON)
|
|
17
|
+
* @output onSuccess [order:-2] - On Success
|
|
18
|
+
* @output onFailure [order:-1] - On Failure
|
|
19
|
+
*/
|
|
20
|
+
export declare function genesisApply(execute: boolean, env: WeaverEnv, genesisConfigJson: string, proposalJson: string, snapshotPath: string): Promise<{
|
|
21
|
+
onSuccess: boolean;
|
|
22
|
+
onFailure: boolean;
|
|
23
|
+
env: WeaverEnv;
|
|
24
|
+
genesisConfigJson: string;
|
|
25
|
+
proposalJson: string;
|
|
26
|
+
snapshotPath: string;
|
|
27
|
+
applyResultJson: string;
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=genesis-apply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-apply.d.ts","sourceRoot":"","sources":["../../src/node-types/genesis-apply.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAoD,MAAM,iBAAiB,CAAC;AAEnG;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,SAAS,EACd,iBAAiB,EAAE,MAAM,EACzB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,SAAS,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC,CA2CD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import * as path from 'node:path';
|
|
2
|
+
import { execFileSync } from 'node:child_process';
|
|
3
|
+
/**
|
|
4
|
+
* Applies proposal operations to the target workflow by invoking the
|
|
5
|
+
* flow-weaver CLI modify command for each operation.
|
|
6
|
+
*
|
|
7
|
+
* @flowWeaver nodeType
|
|
8
|
+
* @label Genesis Apply
|
|
9
|
+
* @input env [order:0] - Weaver environment bundle
|
|
10
|
+
* @input genesisConfigJson [order:1] - Genesis configuration (JSON)
|
|
11
|
+
* @input proposalJson [order:2] - Genesis proposal (JSON)
|
|
12
|
+
* @input snapshotPath [order:3] - Path to the pre-apply snapshot
|
|
13
|
+
* @output env [order:0] - Weaver environment bundle (pass-through)
|
|
14
|
+
* @output genesisConfigJson [order:1] - Genesis configuration (pass-through)
|
|
15
|
+
* @output proposalJson [order:2] - Genesis proposal (pass-through)
|
|
16
|
+
* @output snapshotPath [order:3] - Path to the pre-apply snapshot (pass-through)
|
|
17
|
+
* @output applyResultJson [order:4] - Apply result (JSON)
|
|
18
|
+
* @output onSuccess [order:-2] - On Success
|
|
19
|
+
* @output onFailure [order:-1] - On Failure
|
|
20
|
+
*/
|
|
21
|
+
export async function genesisApply(execute, env, genesisConfigJson, proposalJson, snapshotPath) {
|
|
22
|
+
if (!execute) {
|
|
23
|
+
const result = { applied: 0, failed: 0, errors: [] };
|
|
24
|
+
return { onSuccess: true, onFailure: false, env, genesisConfigJson, proposalJson, snapshotPath, applyResultJson: JSON.stringify(result) };
|
|
25
|
+
}
|
|
26
|
+
const config = JSON.parse(genesisConfigJson);
|
|
27
|
+
const proposal = JSON.parse(proposalJson);
|
|
28
|
+
const targetPath = path.resolve(env.projectDir, config.targetWorkflow);
|
|
29
|
+
let applied = 0;
|
|
30
|
+
let failed = 0;
|
|
31
|
+
const errors = [];
|
|
32
|
+
for (const op of proposal.operations) {
|
|
33
|
+
try {
|
|
34
|
+
const cliArgs = buildModifyArgs(op, targetPath);
|
|
35
|
+
execFileSync('flow-weaver', cliArgs, {
|
|
36
|
+
cwd: env.projectDir,
|
|
37
|
+
encoding: 'utf-8',
|
|
38
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
39
|
+
timeout: 30_000,
|
|
40
|
+
});
|
|
41
|
+
applied++;
|
|
42
|
+
console.log(`\x1b[32m + ${op.type}: ${op.rationale}\x1b[0m`);
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
failed++;
|
|
46
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
47
|
+
errors.push(`${op.type}: ${msg}`);
|
|
48
|
+
console.error(`\x1b[31m x ${op.type}: ${msg}\x1b[0m`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const result = { applied, failed, errors };
|
|
52
|
+
const success = failed === 0 && applied > 0;
|
|
53
|
+
console.log(`\x1b[36m→ Apply: ${applied} succeeded, ${failed} failed\x1b[0m`);
|
|
54
|
+
return {
|
|
55
|
+
onSuccess: success, onFailure: !success,
|
|
56
|
+
env, genesisConfigJson, proposalJson, snapshotPath,
|
|
57
|
+
applyResultJson: JSON.stringify(result),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function buildModifyArgs(op, targetPath) {
|
|
61
|
+
switch (op.type) {
|
|
62
|
+
case 'addNode':
|
|
63
|
+
return ['modify', 'addNode', '--file', targetPath, '--nodeId', String(op.args.nodeId), '--nodeType', String(op.args.nodeType)];
|
|
64
|
+
case 'removeNode':
|
|
65
|
+
return ['modify', 'removeNode', '--file', targetPath, '--nodeId', String(op.args.nodeId)];
|
|
66
|
+
case 'addConnection':
|
|
67
|
+
return ['modify', 'addConnection', '--file', targetPath, '--from', String(op.args.from), '--to', String(op.args.to)];
|
|
68
|
+
case 'removeConnection':
|
|
69
|
+
return ['modify', 'removeConnection', '--file', targetPath, '--from', String(op.args.from), '--to', String(op.args.to)];
|
|
70
|
+
case 'implementNode':
|
|
71
|
+
return ['implement', targetPath, '--nodeId', String(op.args.nodeId)];
|
|
72
|
+
default:
|
|
73
|
+
throw new Error(`Unknown genesis operation type: ${op.type}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=genesis-apply.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-apply.js","sourceRoot":"","sources":["../../src/node-types/genesis-apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handles approval for genesis proposals. Auto-approves when approval
|
|
3
|
+
* is not required or when config approval mode is 'auto'. Otherwise
|
|
4
|
+
* displays the proposal summary and diff, then rejects (non-interactive
|
|
5
|
+
* environments cannot prompt).
|
|
6
|
+
*
|
|
7
|
+
* @flowWeaver nodeType
|
|
8
|
+
* @label Genesis Approve
|
|
9
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
10
|
+
* @output ctx [order:0] - Genesis context with approved (JSON)
|
|
11
|
+
* @output onSuccess [order:-2] - On Success
|
|
12
|
+
* @output onFailure [order:-1] [hidden] - On Failure
|
|
13
|
+
*/
|
|
14
|
+
export declare function genesisApprove(execute: boolean, ctx: string): Promise<{
|
|
15
|
+
onSuccess: boolean;
|
|
16
|
+
onFailure: boolean;
|
|
17
|
+
ctx: string;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=genesis-approve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-approve.d.ts","sourceRoot":"","sources":["../../src/node-types/genesis-approve.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CAmDD"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handles approval for genesis proposals. Auto-approves when approval
|
|
3
|
+
* is not required or when config approval mode is 'auto'. Otherwise
|
|
4
|
+
* displays the proposal summary and diff, then rejects (non-interactive
|
|
5
|
+
* environments cannot prompt).
|
|
6
|
+
*
|
|
7
|
+
* @flowWeaver nodeType
|
|
8
|
+
* @label Genesis Approve
|
|
9
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
10
|
+
* @output ctx [order:0] - Genesis context with approved (JSON)
|
|
11
|
+
* @output onSuccess [order:-2] - On Success
|
|
12
|
+
* @output onFailure [order:-1] [hidden] - On Failure
|
|
13
|
+
*/
|
|
14
|
+
export async function genesisApprove(execute, ctx) {
|
|
15
|
+
const context = JSON.parse(ctx);
|
|
16
|
+
if (!execute) {
|
|
17
|
+
context.approved = true;
|
|
18
|
+
return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
|
|
19
|
+
}
|
|
20
|
+
// Auto-approve when approval is not required
|
|
21
|
+
if (!context.approvalRequired) {
|
|
22
|
+
console.log('\x1b[32m→ Auto-approved (below threshold)\x1b[0m');
|
|
23
|
+
context.approved = true;
|
|
24
|
+
return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
|
|
25
|
+
}
|
|
26
|
+
const { config } = context.env;
|
|
27
|
+
// Match the same default as runner.ts resolveApproval: no approval field = 'auto'
|
|
28
|
+
const approvalMode = !config.approval || config.approval === 'auto'
|
|
29
|
+
? 'auto'
|
|
30
|
+
: typeof config.approval === 'string'
|
|
31
|
+
? config.approval
|
|
32
|
+
: config.approval.mode;
|
|
33
|
+
// Display proposal summary
|
|
34
|
+
const proposal = JSON.parse(context.proposalJson);
|
|
35
|
+
const diffData = JSON.parse(context.workflowDiffJson);
|
|
36
|
+
console.log('\n\x1b[1m┌─ Genesis Proposal ─────────────────────┐\x1b[0m');
|
|
37
|
+
console.log(`\x1b[1m│\x1b[0m Impact: ${proposal.impactLevel}`);
|
|
38
|
+
console.log(`\x1b[1m│\x1b[0m Summary: ${proposal.summary}`);
|
|
39
|
+
console.log(`\x1b[1m│\x1b[0m Operations: ${proposal.operations.length} (cost: ${proposal.totalCost})`);
|
|
40
|
+
for (const op of proposal.operations) {
|
|
41
|
+
console.log(`\x1b[1m│\x1b[0m ${op.type}: ${op.rationale}`);
|
|
42
|
+
}
|
|
43
|
+
console.log('\x1b[1m├─ Diff ─────────────────────────────────┤\x1b[0m');
|
|
44
|
+
for (const line of diffData.diff.split('\n').slice(0, 20)) {
|
|
45
|
+
console.log(`\x1b[1m│\x1b[0m ${line}`);
|
|
46
|
+
}
|
|
47
|
+
console.log('\x1b[1m└────────────────────────────────────────┘\x1b[0m\n');
|
|
48
|
+
// Auto mode approves automatically
|
|
49
|
+
if (approvalMode === 'auto') {
|
|
50
|
+
console.log('\x1b[32m→ Auto-approved (approval mode: auto)\x1b[0m');
|
|
51
|
+
context.approved = true;
|
|
52
|
+
return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
|
|
53
|
+
}
|
|
54
|
+
// Non-auto modes reject in non-interactive context
|
|
55
|
+
console.log('\x1b[33m→ Rejected (approval required, non-auto mode)\x1b[0m');
|
|
56
|
+
context.approved = false;
|
|
57
|
+
return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=genesis-approve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-approve.js","sourceRoot":"","sources":["../../src/node-types/genesis-approve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Determines whether genesis should enter stabilize mode. This happens
|
|
3
|
+
* when the config flag is set or when the last 3 cycles were all
|
|
4
|
+
* rollbacks or rejections.
|
|
5
|
+
*
|
|
6
|
+
* @flowWeaver nodeType
|
|
7
|
+
* @expression
|
|
8
|
+
* @label Genesis Check Stabilize
|
|
9
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
10
|
+
* @output ctx [order:0] - Genesis context with stabilized (JSON)
|
|
11
|
+
* @output onFailure [hidden]
|
|
12
|
+
*/
|
|
13
|
+
export declare function genesisCheckStabilize(ctx: string): {
|
|
14
|
+
ctx: string;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=genesis-check-stabilize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-check-stabilize.d.ts","sourceRoot":"","sources":["../../src/node-types/genesis-check-stabilize.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAqBlE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { GenesisStore } from '../bot/genesis-store.js';
|
|
2
|
+
/**
|
|
3
|
+
* Determines whether genesis should enter stabilize mode. This happens
|
|
4
|
+
* when the config flag is set or when the last 3 cycles were all
|
|
5
|
+
* rollbacks or rejections.
|
|
6
|
+
*
|
|
7
|
+
* @flowWeaver nodeType
|
|
8
|
+
* @expression
|
|
9
|
+
* @label Genesis Check Stabilize
|
|
10
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
11
|
+
* @output ctx [order:0] - Genesis context with stabilized (JSON)
|
|
12
|
+
* @output onFailure [hidden]
|
|
13
|
+
*/
|
|
14
|
+
export function genesisCheckStabilize(ctx) {
|
|
15
|
+
const context = JSON.parse(ctx);
|
|
16
|
+
const config = JSON.parse(context.genesisConfigJson);
|
|
17
|
+
if (config.stabilize) {
|
|
18
|
+
console.log('\x1b[33m→ Stabilize mode: enabled by config\x1b[0m');
|
|
19
|
+
context.stabilized = true;
|
|
20
|
+
return { ctx: JSON.stringify(context) };
|
|
21
|
+
}
|
|
22
|
+
const store = new GenesisStore(context.env.projectDir);
|
|
23
|
+
const recent = store.getRecentOutcomes(3);
|
|
24
|
+
if (recent.length >= 3 && recent.every(o => o === 'rolled-back' || o === 'rejected')) {
|
|
25
|
+
console.log('\x1b[33m→ Stabilize mode: 3+ consecutive rollbacks/rejections\x1b[0m');
|
|
26
|
+
context.stabilized = true;
|
|
27
|
+
return { ctx: JSON.stringify(context) };
|
|
28
|
+
}
|
|
29
|
+
context.stabilized = false;
|
|
30
|
+
return { ctx: JSON.stringify(context) };
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=genesis-check-stabilize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-check-stabilize.js","sourceRoot":"","sources":["../../src/node-types/genesis-check-stabilize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAkB,CAAC;IAEtE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAE1C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,aAAa,IAAI,CAAC,KAAK,UAAU,CAAC,EAAE,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;QACpF,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;IAC3B,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compares the proposal's impact level against the configured approval
|
|
3
|
+
* threshold to decide if human approval is required.
|
|
4
|
+
*
|
|
5
|
+
* @flowWeaver nodeType
|
|
6
|
+
* @expression
|
|
7
|
+
* @label Genesis Check Threshold
|
|
8
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
9
|
+
* @output ctx [order:0] - Genesis context with approvalRequired (JSON)
|
|
10
|
+
* @output onFailure [hidden]
|
|
11
|
+
*/
|
|
12
|
+
export declare function genesisCheckThreshold(ctx: string): {
|
|
13
|
+
ctx: string;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=genesis-check-threshold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-check-threshold.d.ts","sourceRoot":"","sources":["../../src/node-types/genesis-check-threshold.ts"],"names":[],"mappings":"AASA;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAalE"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const IMPACT_ORDER = {
|
|
2
|
+
COSMETIC: 0,
|
|
3
|
+
MINOR: 1,
|
|
4
|
+
BREAKING: 2,
|
|
5
|
+
CRITICAL: 3,
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Compares the proposal's impact level against the configured approval
|
|
9
|
+
* threshold to decide if human approval is required.
|
|
10
|
+
*
|
|
11
|
+
* @flowWeaver nodeType
|
|
12
|
+
* @expression
|
|
13
|
+
* @label Genesis Check Threshold
|
|
14
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
15
|
+
* @output ctx [order:0] - Genesis context with approvalRequired (JSON)
|
|
16
|
+
* @output onFailure [hidden]
|
|
17
|
+
*/
|
|
18
|
+
export function genesisCheckThreshold(ctx) {
|
|
19
|
+
const context = JSON.parse(ctx);
|
|
20
|
+
const config = JSON.parse(context.genesisConfigJson);
|
|
21
|
+
const proposal = JSON.parse(context.proposalJson);
|
|
22
|
+
const proposalLevel = IMPACT_ORDER[proposal.impactLevel] ?? 0;
|
|
23
|
+
const thresholdLevel = IMPACT_ORDER[config.approvalThreshold] ?? 0;
|
|
24
|
+
const approvalRequired = proposalLevel >= thresholdLevel;
|
|
25
|
+
console.log(`\x1b[36m→ Impact ${proposal.impactLevel} vs threshold ${config.approvalThreshold}: approval ${approvalRequired ? 'required' : 'not required'}\x1b[0m`);
|
|
26
|
+
context.approvalRequired = approvalRequired;
|
|
27
|
+
return { ctx: JSON.stringify(context) };
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=genesis-check-threshold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-check-threshold.js","sourceRoot":"","sources":["../../src/node-types/genesis-check-threshold.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAuC;IACvD,QAAQ,EAAE,CAAC;IACX,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;CACZ,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAkB,CAAC;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAa,CAAoB,CAAC;IAEtE,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAG,aAAa,IAAI,cAAc,CAAC;IAEzD,OAAO,CAAC,GAAG,CAAC,oBAAoB,QAAQ,CAAC,WAAW,iBAAiB,MAAM,CAAC,iBAAiB,cAAc,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC;IAEpK,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC5C,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Commits the modified workflow to git if approved, or restores from
|
|
3
|
+
* the snapshot if rejected. Commit messages are prefixed with "genesis:".
|
|
4
|
+
*
|
|
5
|
+
* @flowWeaver nodeType
|
|
6
|
+
* @label Genesis Commit
|
|
7
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
8
|
+
* @output ctx [order:0] - Genesis context with commitResultJson (JSON)
|
|
9
|
+
* @output onSuccess [order:-2] - On Success
|
|
10
|
+
* @output onFailure [order:-1] [hidden] - On Failure
|
|
11
|
+
*/
|
|
12
|
+
export declare function genesisCommit(execute: boolean, ctx: string): Promise<{
|
|
13
|
+
onSuccess: boolean;
|
|
14
|
+
onFailure: boolean;
|
|
15
|
+
ctx: string;
|
|
16
|
+
}>;
|
|
17
|
+
//# sourceMappingURL=genesis-commit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-commit.d.ts","sourceRoot":"","sources":["../../src/node-types/genesis-commit.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CA+CD"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import { execFileSync } from 'node:child_process';
|
|
4
|
+
import { GenesisStore } from '../bot/genesis-store.js';
|
|
5
|
+
/**
|
|
6
|
+
* Commits the modified workflow to git if approved, or restores from
|
|
7
|
+
* the snapshot if rejected. Commit messages are prefixed with "genesis:".
|
|
8
|
+
*
|
|
9
|
+
* @flowWeaver nodeType
|
|
10
|
+
* @label Genesis Commit
|
|
11
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
12
|
+
* @output ctx [order:0] - Genesis context with commitResultJson (JSON)
|
|
13
|
+
* @output onSuccess [order:-2] - On Success
|
|
14
|
+
* @output onFailure [order:-1] [hidden] - On Failure
|
|
15
|
+
*/
|
|
16
|
+
export async function genesisCommit(execute, ctx) {
|
|
17
|
+
const context = JSON.parse(ctx);
|
|
18
|
+
if (!execute) {
|
|
19
|
+
context.commitResultJson = JSON.stringify({ committed: false, reason: 'dry run' });
|
|
20
|
+
return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
|
|
21
|
+
}
|
|
22
|
+
const { env } = context;
|
|
23
|
+
const config = JSON.parse(context.genesisConfigJson);
|
|
24
|
+
const targetPath = path.resolve(env.projectDir, config.targetWorkflow);
|
|
25
|
+
if (!context.approved) {
|
|
26
|
+
// Restore from snapshot
|
|
27
|
+
const store = new GenesisStore(env.projectDir);
|
|
28
|
+
const snapshot = store.loadSnapshot(context.snapshotPath);
|
|
29
|
+
if (snapshot) {
|
|
30
|
+
fs.writeFileSync(targetPath, snapshot, 'utf-8');
|
|
31
|
+
console.log('\x1b[33m→ Restored from snapshot (not approved)\x1b[0m');
|
|
32
|
+
}
|
|
33
|
+
context.commitResultJson = JSON.stringify({ committed: false, reason: 'not approved' });
|
|
34
|
+
return { onSuccess: false, onFailure: true, ctx: JSON.stringify(context) };
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
execFileSync('git', ['add', targetPath], {
|
|
38
|
+
cwd: env.projectDir,
|
|
39
|
+
encoding: 'utf-8',
|
|
40
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
41
|
+
});
|
|
42
|
+
const message = `genesis: evolve ${path.basename(config.targetWorkflow)}`;
|
|
43
|
+
execFileSync('git', ['commit', '-m', message], {
|
|
44
|
+
cwd: env.projectDir,
|
|
45
|
+
encoding: 'utf-8',
|
|
46
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
47
|
+
});
|
|
48
|
+
console.log(`\x1b[32m→ Committed: ${message}\x1b[0m`);
|
|
49
|
+
context.commitResultJson = JSON.stringify({ committed: true, message });
|
|
50
|
+
return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
54
|
+
console.error(`\x1b[31m→ Commit failed: ${msg}\x1b[0m`);
|
|
55
|
+
context.commitResultJson = JSON.stringify({ committed: false, reason: msg });
|
|
56
|
+
return { onSuccess: false, onFailure: true, ctx: JSON.stringify(context) };
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=genesis-commit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-commit.js","sourceRoot":"","sources":["../../src/node-types/genesis-commit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { WeaverEnv } from '../bot/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Runs flow-weaver validate and compile on the target workflow after
|
|
4
|
+
* operations have been applied. On failure, restores from the snapshot
|
|
5
|
+
* and fires the failure path.
|
|
6
|
+
*
|
|
7
|
+
* @flowWeaver nodeType
|
|
8
|
+
* @label Genesis Compile & Validate
|
|
9
|
+
* @input env [order:0] - Weaver environment bundle
|
|
10
|
+
* @input genesisConfigJson [order:1] - Genesis configuration (JSON)
|
|
11
|
+
* @input snapshotPath [order:2] - Path to the pre-apply snapshot
|
|
12
|
+
* @input applyResultJson [order:3] - Apply result (JSON)
|
|
13
|
+
* @output env [order:0] - Weaver environment bundle (pass-through)
|
|
14
|
+
* @output genesisConfigJson [order:1] - Genesis configuration (pass-through)
|
|
15
|
+
* @output snapshotPath [order:2] - Path to the snapshot (pass-through)
|
|
16
|
+
* @output onSuccess [order:-2] - On Success
|
|
17
|
+
* @output onFailure [order:-1] - On Failure
|
|
18
|
+
*/
|
|
19
|
+
export declare function genesisCompileValidate(execute: boolean, env: WeaverEnv, genesisConfigJson: string, snapshotPath: string, applyResultJson: string): Promise<{
|
|
20
|
+
onSuccess: boolean;
|
|
21
|
+
onFailure: boolean;
|
|
22
|
+
env: WeaverEnv;
|
|
23
|
+
genesisConfigJson: string;
|
|
24
|
+
snapshotPath: string;
|
|
25
|
+
}>;
|
|
26
|
+
//# sourceMappingURL=genesis-compile-validate.d.ts.map
|