p-dev-harness 0.3.1 → 0.4.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 +12 -4
- package/dist/agents/cursor-provider.d.ts.map +1 -1
- package/dist/agents/cursor-provider.js +9 -8
- package/dist/agents/cursor-provider.js.map +1 -1
- package/dist/agents/index.d.ts +3 -4
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +2 -5
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/types.d.ts +36 -2
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/artifacts/redact.d.ts +2 -0
- package/dist/artifacts/redact.d.ts.map +1 -1
- package/dist/artifacts/redact.js +15 -1
- package/dist/artifacts/redact.js.map +1 -1
- package/dist/artifacts/write-json-out-manifest.d.ts +17 -0
- package/dist/artifacts/write-json-out-manifest.d.ts.map +1 -0
- package/dist/artifacts/write-json-out-manifest.js +68 -0
- package/dist/artifacts/write-json-out-manifest.js.map +1 -0
- package/dist/cli/commands/canary-runner-config.d.ts +2 -0
- package/dist/cli/commands/canary-runner-config.d.ts.map +1 -0
- package/dist/cli/commands/canary-runner-config.js +6 -0
- package/dist/cli/commands/canary-runner-config.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +129 -0
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/resolve-route.d.ts.map +1 -1
- package/dist/cli/commands/resolve-route.js +5 -0
- package/dist/cli/commands/resolve-route.js.map +1 -1
- package/dist/cli/commands/run.d.ts +1 -0
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +54 -12
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/sync-managed-runner.d.ts +7 -0
- package/dist/cli/commands/sync-managed-runner.d.ts.map +1 -0
- package/dist/cli/commands/sync-managed-runner.js +89 -0
- package/dist/cli/commands/sync-managed-runner.js.map +1 -0
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +27 -0
- package/dist/cli/program.js.map +1 -1
- package/dist/config/assert-cloud-config-fingerprint.d.ts +10 -0
- package/dist/config/assert-cloud-config-fingerprint.d.ts.map +1 -0
- package/dist/config/assert-cloud-config-fingerprint.js +26 -0
- package/dist/config/assert-cloud-config-fingerprint.js.map +1 -0
- package/dist/config/cloud-config-fingerprint.d.ts +26 -0
- package/dist/config/cloud-config-fingerprint.d.ts.map +1 -0
- package/dist/config/cloud-config-fingerprint.js +64 -0
- package/dist/config/cloud-config-fingerprint.js.map +1 -0
- package/dist/config/legacy-linear-top-level.d.ts +16 -0
- package/dist/config/legacy-linear-top-level.d.ts.map +1 -0
- package/dist/config/legacy-linear-top-level.js +42 -0
- package/dist/config/legacy-linear-top-level.js.map +1 -0
- package/dist/config/linear-association-gate.d.ts +26 -0
- package/dist/config/linear-association-gate.d.ts.map +1 -0
- package/dist/config/linear-association-gate.js +46 -0
- package/dist/config/linear-association-gate.js.map +1 -0
- package/dist/config/resolve-linear-team.d.ts +10 -0
- package/dist/config/resolve-linear-team.d.ts.map +1 -0
- package/dist/config/resolve-linear-team.js +24 -0
- package/dist/config/resolve-linear-team.js.map +1 -0
- package/dist/config/resolve-linear-workspace.d.ts +83 -0
- package/dist/config/resolve-linear-workspace.d.ts.map +1 -0
- package/dist/config/resolve-linear-workspace.js +244 -0
- package/dist/config/resolve-linear-workspace.js.map +1 -0
- package/dist/config/role-models.d.ts +160 -0
- package/dist/config/role-models.d.ts.map +1 -0
- package/dist/config/role-models.js +31 -0
- package/dist/config/role-models.js.map +1 -0
- package/dist/config/runner-upgrade-sync-gate.d.ts +10 -0
- package/dist/config/runner-upgrade-sync-gate.d.ts.map +1 -0
- package/dist/config/runner-upgrade-sync-gate.js +24 -0
- package/dist/config/runner-upgrade-sync-gate.js.map +1 -0
- package/dist/config/schema.d.ts +266 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +14 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/config/types.d.ts +1 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/workspace-root.d.ts +7 -0
- package/dist/config/workspace-root.d.ts.map +1 -0
- package/dist/config/workspace-root.js +21 -0
- package/dist/config/workspace-root.js.map +1 -0
- package/dist/cursor/agent-factory.d.ts +8 -0
- package/dist/cursor/agent-factory.d.ts.map +1 -1
- package/dist/cursor/agent-factory.js +34 -5
- package/dist/cursor/agent-factory.js.map +1 -1
- package/dist/cursor/builder-resume-errors.d.ts +3 -0
- package/dist/cursor/builder-resume-errors.d.ts.map +1 -0
- package/dist/cursor/builder-resume-errors.js +32 -0
- package/dist/cursor/builder-resume-errors.js.map +1 -0
- package/dist/cursor/model.d.ts +18 -22
- package/dist/cursor/model.d.ts.map +1 -1
- package/dist/cursor/model.js +73 -25
- package/dist/cursor/model.js.map +1 -1
- package/dist/cursor/run-observer.d.ts +8 -1
- package/dist/cursor/run-observer.d.ts.map +1 -1
- package/dist/cursor/run-observer.js +9 -1
- package/dist/cursor/run-observer.js.map +1 -1
- package/dist/github/auth-verification-retry.d.ts +12 -0
- package/dist/github/auth-verification-retry.d.ts.map +1 -0
- package/dist/github/auth-verification-retry.js +47 -0
- package/dist/github/auth-verification-retry.js.map +1 -0
- package/dist/github/client.d.ts +53 -4
- package/dist/github/client.d.ts.map +1 -1
- package/dist/github/client.js +108 -7
- package/dist/github/client.js.map +1 -1
- package/dist/gui/configure-health.js +2 -2
- package/dist/gui/configure-health.js.map +1 -1
- package/dist/gui/repo-root.d.ts +3 -0
- package/dist/gui/repo-root.d.ts.map +1 -1
- package/dist/gui/repo-root.js +16 -1
- package/dist/gui/repo-root.js.map +1 -1
- package/dist/gui/start-configure-stable.js +6 -2
- package/dist/gui/start-configure-stable.js.map +1 -1
- package/dist/gui/start-gui.js +7 -3
- package/dist/gui/start-gui.js.map +1 -1
- package/dist/linear/client.d.ts +4 -0
- package/dist/linear/client.d.ts.map +1 -1
- package/dist/linear/client.js +7 -0
- package/dist/linear/client.js.map +1 -1
- package/dist/linear/comments.d.ts +9 -0
- package/dist/linear/comments.d.ts.map +1 -1
- package/dist/linear/comments.js +34 -0
- package/dist/linear/comments.js.map +1 -1
- package/dist/linear/issue-query.d.ts +1 -0
- package/dist/linear/issue-query.d.ts.map +1 -1
- package/dist/linear/issue-query.js +3 -0
- package/dist/linear/issue-query.js.map +1 -1
- package/dist/linear/markers.d.ts +7 -0
- package/dist/linear/markers.d.ts.map +1 -1
- package/dist/linear/markers.js +21 -0
- package/dist/linear/markers.js.map +1 -1
- package/dist/linear/parser.d.ts +2 -1
- package/dist/linear/parser.d.ts.map +1 -1
- package/dist/linear/parser.js +46 -0
- package/dist/linear/parser.js.map +1 -1
- package/dist/linear/project-harness-metadata.d.ts +10 -0
- package/dist/linear/project-harness-metadata.d.ts.map +1 -0
- package/dist/linear/project-harness-metadata.js +109 -0
- package/dist/linear/project-harness-metadata.js.map +1 -0
- package/dist/linear/project-metadata-sync.d.ts +29 -0
- package/dist/linear/project-metadata-sync.d.ts.map +1 -0
- package/dist/linear/project-metadata-sync.js +64 -0
- package/dist/linear/project-metadata-sync.js.map +1 -0
- package/dist/linear/run-status-comment.d.ts +49 -0
- package/dist/linear/run-status-comment.d.ts.map +1 -0
- package/dist/linear/run-status-comment.js +118 -0
- package/dist/linear/run-status-comment.js.map +1 -0
- package/dist/linear/writer.d.ts +8 -0
- package/dist/linear/writer.d.ts.map +1 -1
- package/dist/linear/writer.js +13 -0
- package/dist/linear/writer.js.map +1 -1
- package/dist/observability/adapters/fake.d.ts +17 -0
- package/dist/observability/adapters/fake.d.ts.map +1 -0
- package/dist/observability/adapters/fake.js +205 -0
- package/dist/observability/adapters/fake.js.map +1 -0
- package/dist/observability/adapters/noop.d.ts +5 -0
- package/dist/observability/adapters/noop.d.ts.map +1 -0
- package/dist/observability/adapters/noop.js +51 -0
- package/dist/observability/adapters/noop.js.map +1 -0
- package/dist/observability/adapters/posthog.d.ts +12 -0
- package/dist/observability/adapters/posthog.d.ts.map +1 -0
- package/dist/observability/adapters/posthog.js +142 -0
- package/dist/observability/adapters/posthog.js.map +1 -0
- package/dist/observability/adapters/sentry.d.ts +12 -0
- package/dist/observability/adapters/sentry.d.ts.map +1 -0
- package/dist/observability/adapters/sentry.js +217 -0
- package/dist/observability/adapters/sentry.js.map +1 -0
- package/dist/observability/analytics-schemas.d.ts +59 -0
- package/dist/observability/analytics-schemas.d.ts.map +1 -0
- package/dist/observability/analytics-schemas.js +119 -0
- package/dist/observability/analytics-schemas.js.map +1 -0
- package/dist/observability/consent.d.ts +14 -0
- package/dist/observability/consent.d.ts.map +1 -0
- package/dist/observability/consent.js +35 -0
- package/dist/observability/consent.js.map +1 -0
- package/dist/observability/constants.d.ts +18 -0
- package/dist/observability/constants.d.ts.map +1 -0
- package/dist/observability/constants.js +18 -0
- package/dist/observability/constants.js.map +1 -0
- package/dist/observability/context.d.ts +21 -0
- package/dist/observability/context.d.ts.map +1 -0
- package/dist/observability/context.js +105 -0
- package/dist/observability/context.js.map +1 -0
- package/dist/observability/facade-runtime-state.d.ts +17 -0
- package/dist/observability/facade-runtime-state.d.ts.map +1 -0
- package/dist/observability/facade-runtime-state.js +23 -0
- package/dist/observability/facade-runtime-state.js.map +1 -0
- package/dist/observability/facade.d.ts +44 -0
- package/dist/observability/facade.d.ts.map +1 -0
- package/dist/observability/facade.js +432 -0
- package/dist/observability/facade.js.map +1 -0
- package/dist/observability/fatal-handlers.d.ts +4 -0
- package/dist/observability/fatal-handlers.d.ts.map +1 -0
- package/dist/observability/fatal-handlers.js +54 -0
- package/dist/observability/fatal-handlers.js.map +1 -0
- package/dist/observability/identity.d.ts +4 -0
- package/dist/observability/identity.d.ts.map +1 -0
- package/dist/observability/identity.js +11 -0
- package/dist/observability/identity.js.map +1 -0
- package/dist/observability/index.d.ts +9 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +6 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/local-state.d.ts +14 -0
- package/dist/observability/local-state.d.ts.map +1 -0
- package/dist/observability/local-state.js +107 -0
- package/dist/observability/local-state.js.map +1 -0
- package/dist/observability/package-config.d.ts +11 -0
- package/dist/observability/package-config.d.ts.map +1 -0
- package/dist/observability/package-config.js +117 -0
- package/dist/observability/package-config.js.map +1 -0
- package/dist/observability/posthog-dashboard-contract.d.ts +46 -0
- package/dist/observability/posthog-dashboard-contract.d.ts.map +1 -0
- package/dist/observability/posthog-dashboard-contract.js +200 -0
- package/dist/observability/posthog-dashboard-contract.js.map +1 -0
- package/dist/observability/privacy-schema.d.ts +13 -0
- package/dist/observability/privacy-schema.d.ts.map +1 -0
- package/dist/observability/privacy-schema.js +204 -0
- package/dist/observability/privacy-schema.js.map +1 -0
- package/dist/observability/product-error-messages.d.ts +2 -0
- package/dist/observability/product-error-messages.d.ts.map +1 -0
- package/dist/observability/product-error-messages.js +15 -0
- package/dist/observability/product-error-messages.js.map +1 -0
- package/dist/observability/product-errors.d.ts +12 -0
- package/dist/observability/product-errors.d.ts.map +1 -0
- package/dist/observability/product-errors.js +109 -0
- package/dist/observability/product-errors.js.map +1 -0
- package/dist/observability/provisioning-analytics.d.ts +12 -0
- package/dist/observability/provisioning-analytics.d.ts.map +1 -0
- package/dist/observability/provisioning-analytics.js +11 -0
- package/dist/observability/provisioning-analytics.js.map +1 -0
- package/dist/observability/redaction.d.ts +10 -0
- package/dist/observability/redaction.d.ts.map +1 -0
- package/dist/observability/redaction.js +72 -0
- package/dist/observability/redaction.js.map +1 -0
- package/dist/observability/runtime-eligibility.d.ts +6 -0
- package/dist/observability/runtime-eligibility.d.ts.map +1 -0
- package/dist/observability/runtime-eligibility.js +33 -0
- package/dist/observability/runtime-eligibility.js.map +1 -0
- package/dist/observability/sentry-outbound-privacy.d.ts +12 -0
- package/dist/observability/sentry-outbound-privacy.d.ts.map +1 -0
- package/dist/observability/sentry-outbound-privacy.js +168 -0
- package/dist/observability/sentry-outbound-privacy.js.map +1 -0
- package/dist/observability/session-dedupe.d.ts +8 -0
- package/dist/observability/session-dedupe.d.ts.map +1 -0
- package/dist/observability/session-dedupe.js +42 -0
- package/dist/observability/session-dedupe.js.map +1 -0
- package/dist/observability/session-handoff.d.ts +10 -0
- package/dist/observability/session-handoff.d.ts.map +1 -0
- package/dist/observability/session-handoff.js +25 -0
- package/dist/observability/session-handoff.js.map +1 -0
- package/dist/observability/transport-lifecycle.d.ts +20 -0
- package/dist/observability/transport-lifecycle.d.ts.map +1 -0
- package/dist/observability/transport-lifecycle.js +69 -0
- package/dist/observability/transport-lifecycle.js.map +1 -0
- package/dist/observability/types.d.ts +189 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +2 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/p-dev/cli.d.ts +1 -1
- package/dist/p-dev/cli.d.ts.map +1 -1
- package/dist/p-dev/cli.js +1 -1
- package/dist/p-dev/cli.js.map +1 -1
- package/dist/p-dev/git-object-plumbing.d.ts +20 -0
- package/dist/p-dev/git-object-plumbing.d.ts.map +1 -1
- package/dist/p-dev/git-object-plumbing.js +106 -13
- package/dist/p-dev/git-object-plumbing.js.map +1 -1
- package/dist/p-dev/launch.d.ts.map +1 -1
- package/dist/p-dev/launch.js +77 -15
- package/dist/p-dev/launch.js.map +1 -1
- package/dist/p-dev/main.js +9 -1
- package/dist/p-dev/main.js.map +1 -1
- package/dist/p-dev/package-paths.d.ts +12 -0
- package/dist/p-dev/package-paths.d.ts.map +1 -1
- package/dist/p-dev/package-paths.js +48 -2
- package/dist/p-dev/package-paths.js.map +1 -1
- package/dist/p-dev/workspace-snapshot-generator.d.ts.map +1 -1
- package/dist/p-dev/workspace-snapshot-generator.js +18 -0
- package/dist/p-dev/workspace-snapshot-generator.js.map +1 -1
- package/dist/p-dev/workspace-snapshot-manifest.d.ts.map +1 -1
- package/dist/p-dev/workspace-snapshot-manifest.js +48 -0
- package/dist/p-dev/workspace-snapshot-manifest.js.map +1 -1
- package/dist/p-dev/workspace-snapshot-types.d.ts +8 -0
- package/dist/p-dev/workspace-snapshot-types.d.ts.map +1 -1
- package/dist/preview/preview-capability.d.ts +9 -0
- package/dist/preview/preview-capability.d.ts.map +1 -0
- package/dist/preview/preview-capability.js +15 -0
- package/dist/preview/preview-capability.js.map +1 -0
- package/dist/product/initialization-state.d.ts +15 -0
- package/dist/product/initialization-state.d.ts.map +1 -0
- package/dist/product/initialization-state.js +37 -0
- package/dist/product/initialization-state.js.map +1 -0
- package/dist/product/product-marker.d.ts +77 -0
- package/dist/product/product-marker.d.ts.map +1 -0
- package/dist/product/product-marker.js +62 -0
- package/dist/product/product-marker.js.map +1 -0
- package/dist/product/read-product-marker.d.ts +15 -0
- package/dist/product/read-product-marker.d.ts.map +1 -0
- package/dist/product/read-product-marker.js +28 -0
- package/dist/product/read-product-marker.js.map +1 -0
- package/dist/prompts/builder.d.ts +10 -1
- package/dist/prompts/builder.d.ts.map +1 -1
- package/dist/prompts/builder.js +16 -2
- package/dist/prompts/builder.js.map +1 -1
- package/dist/resolver/errors.d.ts +1 -1
- package/dist/resolver/errors.d.ts.map +1 -1
- package/dist/resolver/errors.js.map +1 -1
- package/dist/resolver/target-repo.d.ts +4 -1
- package/dist/resolver/target-repo.d.ts.map +1 -1
- package/dist/resolver/target-repo.js +40 -0
- package/dist/resolver/target-repo.js.map +1 -1
- package/dist/runner/builder-thread-acquire.d.ts +41 -0
- package/dist/runner/builder-thread-acquire.d.ts.map +1 -0
- package/dist/runner/builder-thread-acquire.js +224 -0
- package/dist/runner/builder-thread-acquire.js.map +1 -0
- package/dist/runner/builder-thread-evidence.d.ts +13 -0
- package/dist/runner/builder-thread-evidence.d.ts.map +1 -0
- package/dist/runner/builder-thread-evidence.js +23 -0
- package/dist/runner/builder-thread-evidence.js.map +1 -0
- package/dist/runner/builder-thread-idempotency.d.ts +17 -0
- package/dist/runner/builder-thread-idempotency.d.ts.map +1 -0
- package/dist/runner/builder-thread-idempotency.js +12 -0
- package/dist/runner/builder-thread-idempotency.js.map +1 -0
- package/dist/runner/builder-thread-lineage-errors.d.ts +7 -0
- package/dist/runner/builder-thread-lineage-errors.d.ts.map +1 -0
- package/dist/runner/builder-thread-lineage-errors.js +11 -0
- package/dist/runner/builder-thread-lineage-errors.js.map +1 -0
- package/dist/runner/builder-thread-lineage.d.ts +18 -0
- package/dist/runner/builder-thread-lineage.d.ts.map +1 -0
- package/dist/runner/builder-thread-lineage.js +342 -0
- package/dist/runner/builder-thread-lineage.js.map +1 -0
- package/dist/runner/builder-thread-types.d.ts +30 -0
- package/dist/runner/builder-thread-types.d.ts.map +1 -0
- package/dist/runner/builder-thread-types.js +2 -0
- package/dist/runner/builder-thread-types.js.map +1 -0
- package/dist/runner/delivery-dedup.d.ts +26 -0
- package/dist/runner/delivery-dedup.d.ts.map +1 -0
- package/dist/runner/delivery-dedup.js +44 -0
- package/dist/runner/delivery-dedup.js.map +1 -0
- package/dist/runner/failure-finalization.d.ts +34 -0
- package/dist/runner/failure-finalization.d.ts.map +1 -0
- package/dist/runner/failure-finalization.js +154 -0
- package/dist/runner/failure-finalization.js.map +1 -0
- package/dist/runner/fixture.d.ts +1 -1
- package/dist/runner/fixture.d.ts.map +1 -1
- package/dist/runner/fixture.js +3 -0
- package/dist/runner/fixture.js.map +1 -1
- package/dist/runner/phases/handoff.d.ts.map +1 -1
- package/dist/runner/phases/handoff.js +59 -32
- package/dist/runner/phases/handoff.js.map +1 -1
- package/dist/runner/phases/implementation.d.ts.map +1 -1
- package/dist/runner/phases/implementation.js +147 -24
- package/dist/runner/phases/implementation.js.map +1 -1
- package/dist/runner/phases/integration-repair.d.ts +18 -0
- package/dist/runner/phases/integration-repair.d.ts.map +1 -1
- package/dist/runner/phases/integration-repair.js +93 -7
- package/dist/runner/phases/integration-repair.js.map +1 -1
- package/dist/runner/phases/merge.d.ts.map +1 -1
- package/dist/runner/phases/merge.js +129 -51
- package/dist/runner/phases/merge.js.map +1 -1
- package/dist/runner/phases/planning.d.ts.map +1 -1
- package/dist/runner/phases/planning.js +46 -8
- package/dist/runner/phases/planning.js.map +1 -1
- package/dist/runner/phases/production-sync.d.ts.map +1 -1
- package/dist/runner/phases/production-sync.js +28 -4
- package/dist/runner/phases/production-sync.js.map +1 -1
- package/dist/runner/phases/revision.d.ts.map +1 -1
- package/dist/runner/phases/revision.js +112 -32
- package/dist/runner/phases/revision.js.map +1 -1
- package/dist/runner/preflight.d.ts +2 -0
- package/dist/runner/preflight.d.ts.map +1 -1
- package/dist/runner/preflight.js +112 -3
- package/dist/runner/preflight.js.map +1 -1
- package/dist/runner/resolve-route.d.ts +1 -0
- package/dist/runner/resolve-route.d.ts.map +1 -1
- package/dist/runner/resolve-route.js +26 -0
- package/dist/runner/resolve-route.js.map +1 -1
- package/dist/runner/run-generation.d.ts +2 -0
- package/dist/runner/run-generation.d.ts.map +1 -0
- package/dist/runner/run-generation.js +19 -0
- package/dist/runner/run-generation.js.map +1 -0
- package/dist/runner/uninitialized-product-routing.d.ts +24 -0
- package/dist/runner/uninitialized-product-routing.d.ts.map +1 -0
- package/dist/runner/uninitialized-product-routing.js +70 -0
- package/dist/runner/uninitialized-product-routing.js.map +1 -0
- package/dist/setup/config-builder.d.ts.map +1 -1
- package/dist/setup/config-builder.js +12 -0
- package/dist/setup/config-builder.js.map +1 -1
- package/dist/setup/control-plane-readiness.d.ts +8 -1
- package/dist/setup/control-plane-readiness.d.ts.map +1 -1
- package/dist/setup/control-plane-readiness.js +63 -19
- package/dist/setup/control-plane-readiness.js.map +1 -1
- package/dist/setup/control-plane-setup-state.d.ts +13 -3
- package/dist/setup/control-plane-setup-state.d.ts.map +1 -1
- package/dist/setup/control-plane-setup-state.js +30 -3
- package/dist/setup/control-plane-setup-state.js.map +1 -1
- package/dist/setup/control-plane-state-lock.d.ts +12 -0
- package/dist/setup/control-plane-state-lock.d.ts.map +1 -0
- package/dist/setup/control-plane-state-lock.js +79 -0
- package/dist/setup/control-plane-state-lock.js.map +1 -0
- package/dist/setup/control-plane-types.d.ts +72 -1
- package/dist/setup/control-plane-types.d.ts.map +1 -1
- package/dist/setup/first-run-readiness.d.ts +4 -0
- package/dist/setup/first-run-readiness.d.ts.map +1 -1
- package/dist/setup/first-run-readiness.js +2 -2
- package/dist/setup/first-run-readiness.js.map +1 -1
- package/dist/setup/git-askpass-credentials.d.ts +19 -0
- package/dist/setup/git-askpass-credentials.d.ts.map +1 -0
- package/dist/setup/git-askpass-credentials.js +60 -0
- package/dist/setup/git-askpass-credentials.js.map +1 -0
- package/dist/setup/github-dispatch-token.d.ts +4 -0
- package/dist/setup/github-dispatch-token.d.ts.map +1 -1
- package/dist/setup/github-dispatch-token.js +23 -3
- package/dist/setup/github-dispatch-token.js.map +1 -1
- package/dist/setup/github-remote-provider.d.ts +44 -0
- package/dist/setup/github-remote-provider.d.ts.map +1 -1
- package/dist/setup/github-remote-provider.js +22 -2
- package/dist/setup/github-remote-provider.js.map +1 -1
- package/dist/setup/github-remote-setup-live.d.ts +30 -1
- package/dist/setup/github-remote-setup-live.d.ts.map +1 -1
- package/dist/setup/github-remote-setup-live.js +68 -11
- package/dist/setup/github-remote-setup-live.js.map +1 -1
- package/dist/setup/github-repository-name.d.ts +15 -0
- package/dist/setup/github-repository-name.d.ts.map +1 -0
- package/dist/setup/github-repository-name.js +54 -0
- package/dist/setup/github-repository-name.js.map +1 -0
- package/dist/setup/github-target-repository-provider-live.d.ts +35 -0
- package/dist/setup/github-target-repository-provider-live.d.ts.map +1 -0
- package/dist/setup/github-target-repository-provider-live.js +236 -0
- package/dist/setup/github-target-repository-provider-live.js.map +1 -0
- package/dist/setup/github-target-repository-provider-mock.d.ts +47 -0
- package/dist/setup/github-target-repository-provider-mock.d.ts.map +1 -0
- package/dist/setup/github-target-repository-provider-mock.js +189 -0
- package/dist/setup/github-target-repository-provider-mock.js.map +1 -0
- package/dist/setup/github-target-repository-provider.d.ts +44 -0
- package/dist/setup/github-target-repository-provider.d.ts.map +1 -0
- package/dist/setup/github-target-repository-provider.js +7 -0
- package/dist/setup/github-target-repository-provider.js.map +1 -0
- package/dist/setup/github-workflow-permissions.d.ts +1 -1
- package/dist/setup/github-workflow-permissions.d.ts.map +1 -1
- package/dist/setup/github-workflow-permissions.js +1 -1
- package/dist/setup/github-workflow-permissions.js.map +1 -1
- package/dist/setup/gui-view-model.d.ts +5 -0
- package/dist/setup/gui-view-model.d.ts.map +1 -1
- package/dist/setup/gui-view-model.js +5 -0
- package/dist/setup/gui-view-model.js.map +1 -1
- package/dist/setup/harness-dispatch-repo.d.ts +16 -2
- package/dist/setup/harness-dispatch-repo.d.ts.map +1 -1
- package/dist/setup/harness-dispatch-repo.js +113 -22
- package/dist/setup/harness-dispatch-repo.js.map +1 -1
- package/dist/setup/harness-managed-repo-marker.d.ts +1 -0
- package/dist/setup/harness-managed-repo-marker.d.ts.map +1 -1
- package/dist/setup/harness-managed-repo-marker.js +18 -0
- package/dist/setup/harness-managed-repo-marker.js.map +1 -1
- package/dist/setup/harness-provisioning-last-run.d.ts +27 -0
- package/dist/setup/harness-provisioning-last-run.d.ts.map +1 -0
- package/dist/setup/harness-provisioning-last-run.js +94 -0
- package/dist/setup/harness-provisioning-last-run.js.map +1 -0
- package/dist/setup/harness-provisioning-pending-state.d.ts +1 -1
- package/dist/setup/harness-provisioning-pending-state.d.ts.map +1 -1
- package/dist/setup/harness-provisioning-pending-state.js.map +1 -1
- package/dist/setup/harness-provisioning-progress.d.ts +58 -0
- package/dist/setup/harness-provisioning-progress.d.ts.map +1 -0
- package/dist/setup/harness-provisioning-progress.js +134 -0
- package/dist/setup/harness-provisioning-progress.js.map +1 -0
- package/dist/setup/harness-repo-provisioning.d.ts +11 -0
- package/dist/setup/harness-repo-provisioning.d.ts.map +1 -1
- package/dist/setup/harness-repo-provisioning.js +98 -6
- package/dist/setup/harness-repo-provisioning.js.map +1 -1
- package/dist/setup/harness-snapshot-git-transport.d.ts +92 -0
- package/dist/setup/harness-snapshot-git-transport.d.ts.map +1 -0
- package/dist/setup/harness-snapshot-git-transport.js +544 -0
- package/dist/setup/harness-snapshot-git-transport.js.map +1 -0
- package/dist/setup/harness-snapshot-provisioning-helpers.d.ts +1 -1
- package/dist/setup/harness-snapshot-provisioning-helpers.d.ts.map +1 -1
- package/dist/setup/harness-snapshot-provisioning-helpers.js.map +1 -1
- package/dist/setup/harness-snapshot-provisioning.d.ts +12 -1
- package/dist/setup/harness-snapshot-provisioning.d.ts.map +1 -1
- package/dist/setup/harness-snapshot-provisioning.js +298 -73
- package/dist/setup/harness-snapshot-provisioning.js.map +1 -1
- package/dist/setup/harness-step-readiness-server.d.ts +11 -0
- package/dist/setup/harness-step-readiness-server.d.ts.map +1 -0
- package/dist/setup/harness-step-readiness-server.js +24 -0
- package/dist/setup/harness-step-readiness-server.js.map +1 -0
- package/dist/setup/harness-step-readiness.d.ts +21 -0
- package/dist/setup/harness-step-readiness.d.ts.map +1 -0
- package/dist/setup/harness-step-readiness.js +40 -0
- package/dist/setup/harness-step-readiness.js.map +1 -0
- package/dist/setup/harness-workspace-snapshot-loader.d.ts +6 -1
- package/dist/setup/harness-workspace-snapshot-loader.d.ts.map +1 -1
- package/dist/setup/harness-workspace-snapshot-loader.js +45 -12
- package/dist/setup/harness-workspace-snapshot-loader.js.map +1 -1
- package/dist/setup/initial-setup-lifecycle.d.ts +51 -0
- package/dist/setup/initial-setup-lifecycle.d.ts.map +1 -0
- package/dist/setup/initial-setup-lifecycle.js +93 -0
- package/dist/setup/initial-setup-lifecycle.js.map +1 -0
- package/dist/setup/linear-category-labels.d.ts +2 -0
- package/dist/setup/linear-category-labels.d.ts.map +1 -0
- package/dist/setup/linear-category-labels.js +19 -0
- package/dist/setup/linear-category-labels.js.map +1 -0
- package/dist/setup/linear-setup-apply.d.ts +1 -0
- package/dist/setup/linear-setup-apply.d.ts.map +1 -1
- package/dist/setup/linear-setup-apply.js +67 -16
- package/dist/setup/linear-setup-apply.js.map +1 -1
- package/dist/setup/linear-setup-client.d.ts +24 -0
- package/dist/setup/linear-setup-client.d.ts.map +1 -1
- package/dist/setup/linear-setup-client.js +61 -0
- package/dist/setup/linear-setup-client.js.map +1 -1
- package/dist/setup/linear-setup-plan.d.ts +22 -1
- package/dist/setup/linear-setup-plan.d.ts.map +1 -1
- package/dist/setup/linear-setup-plan.js +69 -6
- package/dist/setup/linear-setup-plan.js.map +1 -1
- package/dist/setup/linear-setup-progress.d.ts +30 -0
- package/dist/setup/linear-setup-progress.d.ts.map +1 -0
- package/dist/setup/linear-setup-progress.js +71 -0
- package/dist/setup/linear-setup-progress.js.map +1 -0
- package/dist/setup/linear-status-contract.d.ts +2 -1
- package/dist/setup/linear-status-contract.d.ts.map +1 -1
- package/dist/setup/linear-status-contract.js +26 -67
- package/dist/setup/linear-status-contract.js.map +1 -1
- package/dist/setup/linear-workflow-status-repair.d.ts +36 -0
- package/dist/setup/linear-workflow-status-repair.d.ts.map +1 -0
- package/dist/setup/linear-workflow-status-repair.js +187 -0
- package/dist/setup/linear-workflow-status-repair.js.map +1 -0
- package/dist/setup/linear-workspace-apply.d.ts +25 -0
- package/dist/setup/linear-workspace-apply.d.ts.map +1 -0
- package/dist/setup/linear-workspace-apply.js +212 -0
- package/dist/setup/linear-workspace-apply.js.map +1 -0
- package/dist/setup/linear-workspace-drift.d.ts +2 -0
- package/dist/setup/linear-workspace-drift.d.ts.map +1 -0
- package/dist/setup/linear-workspace-drift.js +2 -0
- package/dist/setup/linear-workspace-drift.js.map +1 -0
- package/dist/setup/linear-workspace-migration.d.ts +43 -0
- package/dist/setup/linear-workspace-migration.d.ts.map +1 -0
- package/dist/setup/linear-workspace-migration.js +212 -0
- package/dist/setup/linear-workspace-migration.js.map +1 -0
- package/dist/setup/linear-workspace-plan.d.ts +92 -0
- package/dist/setup/linear-workspace-plan.d.ts.map +1 -0
- package/dist/setup/linear-workspace-plan.js +283 -0
- package/dist/setup/linear-workspace-plan.js.map +1 -0
- package/dist/setup/local-readiness-checks.d.ts +17 -0
- package/dist/setup/local-readiness-checks.d.ts.map +1 -1
- package/dist/setup/local-readiness-checks.js +86 -23
- package/dist/setup/local-readiness-checks.js.map +1 -1
- package/dist/setup/mock-target-workflow-finalization.d.ts.map +1 -1
- package/dist/setup/mock-target-workflow-finalization.js +27 -4
- package/dist/setup/mock-target-workflow-finalization.js.map +1 -1
- package/dist/setup/packaged-default-route.d.ts +15 -0
- package/dist/setup/packaged-default-route.d.ts.map +1 -0
- package/dist/setup/packaged-default-route.js +17 -0
- package/dist/setup/packaged-default-route.js.map +1 -0
- package/dist/setup/release-sync-managed-runner.d.ts +61 -0
- package/dist/setup/release-sync-managed-runner.d.ts.map +1 -0
- package/dist/setup/release-sync-managed-runner.js +364 -0
- package/dist/setup/release-sync-managed-runner.js.map +1 -0
- package/dist/setup/remote-apply-actions.d.ts.map +1 -1
- package/dist/setup/remote-apply-actions.js +23 -0
- package/dist/setup/remote-apply-actions.js.map +1 -1
- package/dist/setup/runner-upgrade-canary-dispatch.d.ts +19 -0
- package/dist/setup/runner-upgrade-canary-dispatch.d.ts.map +1 -0
- package/dist/setup/runner-upgrade-canary-dispatch.js +38 -0
- package/dist/setup/runner-upgrade-canary-dispatch.js.map +1 -0
- package/dist/setup/runner-upgrade-canary.d.ts +23 -0
- package/dist/setup/runner-upgrade-canary.d.ts.map +1 -0
- package/dist/setup/runner-upgrade-canary.js +146 -0
- package/dist/setup/runner-upgrade-canary.js.map +1 -0
- package/dist/setup/runner-upgrade-evidence.d.ts +14 -0
- package/dist/setup/runner-upgrade-evidence.d.ts.map +1 -0
- package/dist/setup/runner-upgrade-evidence.js +9 -0
- package/dist/setup/runner-upgrade-evidence.js.map +1 -0
- package/dist/setup/runner-upgrade-pending-state.d.ts +30 -0
- package/dist/setup/runner-upgrade-pending-state.d.ts.map +1 -0
- package/dist/setup/runner-upgrade-pending-state.js +75 -0
- package/dist/setup/runner-upgrade-pending-state.js.map +1 -0
- package/dist/setup/runner-upgrade-progress.d.ts +38 -0
- package/dist/setup/runner-upgrade-progress.d.ts.map +1 -0
- package/dist/setup/runner-upgrade-progress.js +95 -0
- package/dist/setup/runner-upgrade-progress.js.map +1 -0
- package/dist/setup/runner-upgrade-provider-live.d.ts +5 -0
- package/dist/setup/runner-upgrade-provider-live.d.ts.map +1 -0
- package/dist/setup/runner-upgrade-provider-live.js +338 -0
- package/dist/setup/runner-upgrade-provider-live.js.map +1 -0
- package/dist/setup/runner-upgrade-provider.d.ts +231 -0
- package/dist/setup/runner-upgrade-provider.d.ts.map +1 -0
- package/dist/setup/runner-upgrade-provider.js +466 -0
- package/dist/setup/runner-upgrade-provider.js.map +1 -0
- package/dist/setup/runner-upgrade-status-cache.d.ts +13 -0
- package/dist/setup/runner-upgrade-status-cache.d.ts.map +1 -0
- package/dist/setup/runner-upgrade-status-cache.js +39 -0
- package/dist/setup/runner-upgrade-status-cache.js.map +1 -0
- package/dist/setup/runner-upgrade-three-way.d.ts +28 -0
- package/dist/setup/runner-upgrade-three-way.d.ts.map +1 -0
- package/dist/setup/runner-upgrade-three-way.js +102 -0
- package/dist/setup/runner-upgrade-three-way.js.map +1 -0
- package/dist/setup/runner-upgrade-timeouts.d.ts +72 -0
- package/dist/setup/runner-upgrade-timeouts.d.ts.map +1 -0
- package/dist/setup/runner-upgrade-timeouts.js +261 -0
- package/dist/setup/runner-upgrade-timeouts.js.map +1 -0
- package/dist/setup/runner-upgrade-types.d.ts +84 -0
- package/dist/setup/runner-upgrade-types.d.ts.map +1 -0
- package/dist/setup/runner-upgrade-types.js +64 -0
- package/dist/setup/runner-upgrade-types.js.map +1 -0
- package/dist/setup/runner-upgrade-worker.d.ts +17 -0
- package/dist/setup/runner-upgrade-worker.d.ts.map +1 -0
- package/dist/setup/runner-upgrade-worker.js +115 -0
- package/dist/setup/runner-upgrade-worker.js.map +1 -0
- package/dist/setup/runner-upgrade.d.ts +57 -0
- package/dist/setup/runner-upgrade.d.ts.map +1 -0
- package/dist/setup/runner-upgrade.js +1311 -0
- package/dist/setup/runner-upgrade.js.map +1 -0
- package/dist/setup/service-verification.d.ts +18 -1
- package/dist/setup/service-verification.d.ts.map +1 -1
- package/dist/setup/service-verification.js +110 -19
- package/dist/setup/service-verification.js.map +1 -1
- package/dist/setup/settings-config-patch.d.ts +69 -0
- package/dist/setup/settings-config-patch.d.ts.map +1 -0
- package/dist/setup/settings-config-patch.js +312 -0
- package/dist/setup/settings-config-patch.js.map +1 -0
- package/dist/setup/setup-state.d.ts +1 -0
- package/dist/setup/setup-state.d.ts.map +1 -1
- package/dist/setup/setup-state.js +11 -1
- package/dist/setup/setup-state.js.map +1 -1
- package/dist/setup/step6-automatic-control-state.d.ts +21 -0
- package/dist/setup/step6-automatic-control-state.d.ts.map +1 -0
- package/dist/setup/step6-automatic-control-state.js +28 -0
- package/dist/setup/step6-automatic-control-state.js.map +1 -0
- package/dist/setup/sync-harness-config-cloud.d.ts +23 -0
- package/dist/setup/sync-harness-config-cloud.d.ts.map +1 -0
- package/dist/setup/sync-harness-config-cloud.js +91 -0
- package/dist/setup/sync-harness-config-cloud.js.map +1 -0
- package/dist/setup/target-repo-provisioning-pending-state.d.ts +42 -0
- package/dist/setup/target-repo-provisioning-pending-state.d.ts.map +1 -0
- package/dist/setup/target-repo-provisioning-pending-state.js +95 -0
- package/dist/setup/target-repo-provisioning-pending-state.js.map +1 -0
- package/dist/setup/target-repo-provisioning.d.ts +67 -0
- package/dist/setup/target-repo-provisioning.d.ts.map +1 -0
- package/dist/setup/target-repo-provisioning.js +473 -0
- package/dist/setup/target-repo-provisioning.js.map +1 -0
- package/dist/setup/target-workflow-finalization-progress.d.ts +43 -0
- package/dist/setup/target-workflow-finalization-progress.d.ts.map +1 -0
- package/dist/setup/target-workflow-finalization-progress.js +83 -0
- package/dist/setup/target-workflow-finalization-progress.js.map +1 -0
- package/dist/setup/target-workflow-finalization-types.d.ts +21 -1
- package/dist/setup/target-workflow-finalization-types.d.ts.map +1 -1
- package/dist/setup/target-workflow-finalization-types.js +75 -0
- package/dist/setup/target-workflow-finalization-types.js.map +1 -1
- package/dist/setup/target-workflow-finalization.d.ts.map +1 -1
- package/dist/setup/target-workflow-finalization.js +618 -15
- package/dist/setup/target-workflow-finalization.js.map +1 -1
- package/dist/setup/target-workflow-setup.d.ts.map +1 -1
- package/dist/setup/target-workflow-setup.js +2 -0
- package/dist/setup/target-workflow-setup.js.map +1 -1
- package/dist/setup/test-only-runner-upgrade-provider.d.ts +11 -0
- package/dist/setup/test-only-runner-upgrade-provider.d.ts.map +1 -0
- package/dist/setup/test-only-runner-upgrade-provider.js +37 -0
- package/dist/setup/test-only-runner-upgrade-provider.js.map +1 -0
- package/dist/setup/test-only-target-repo-provisioning-provider.d.ts +7 -0
- package/dist/setup/test-only-target-repo-provisioning-provider.d.ts.map +1 -0
- package/dist/setup/test-only-target-repo-provisioning-provider.js +33 -0
- package/dist/setup/test-only-target-repo-provisioning-provider.js.map +1 -0
- package/dist/setup/vercel-bridge-artifact.d.ts +7 -0
- package/dist/setup/vercel-bridge-artifact.d.ts.map +1 -0
- package/dist/setup/vercel-bridge-artifact.js +164 -0
- package/dist/setup/vercel-bridge-artifact.js.map +1 -0
- package/dist/setup/vercel-bridge-deploy.d.ts +42 -0
- package/dist/setup/vercel-bridge-deploy.d.ts.map +1 -0
- package/dist/setup/vercel-bridge-deploy.js +138 -0
- package/dist/setup/vercel-bridge-deploy.js.map +1 -0
- package/dist/setup/vercel-bridge-diagnostics.js +1 -1
- package/dist/setup/vercel-bridge-diagnostics.js.map +1 -1
- package/dist/setup/vercel-bridge-options.d.ts +2 -0
- package/dist/setup/vercel-bridge-options.d.ts.map +1 -1
- package/dist/setup/vercel-bridge-options.js +2 -0
- package/dist/setup/vercel-bridge-options.js.map +1 -1
- package/dist/setup/vercel-bridge-orchestration-summary.d.ts +13 -0
- package/dist/setup/vercel-bridge-orchestration-summary.d.ts.map +1 -0
- package/dist/setup/vercel-bridge-orchestration-summary.js +22 -0
- package/dist/setup/vercel-bridge-orchestration-summary.js.map +1 -0
- package/dist/setup/vercel-bridge-project-marker.d.ts +5 -0
- package/dist/setup/vercel-bridge-project-marker.d.ts.map +1 -0
- package/dist/setup/vercel-bridge-project-marker.js +6 -0
- package/dist/setup/vercel-bridge-project-marker.js.map +1 -0
- package/dist/setup/vercel-bridge-readiness.d.ts +1 -0
- package/dist/setup/vercel-bridge-readiness.d.ts.map +1 -1
- package/dist/setup/vercel-bridge-readiness.js +1 -1
- package/dist/setup/vercel-bridge-readiness.js.map +1 -1
- package/dist/setup/vercel-bridge-redeploy-normalize.d.ts +18 -0
- package/dist/setup/vercel-bridge-redeploy-normalize.d.ts.map +1 -0
- package/dist/setup/vercel-bridge-redeploy-normalize.js +175 -0
- package/dist/setup/vercel-bridge-redeploy-normalize.js.map +1 -0
- package/dist/setup/vercel-bridge-redeploy-poll.d.ts +7 -1
- package/dist/setup/vercel-bridge-redeploy-poll.d.ts.map +1 -1
- package/dist/setup/vercel-bridge-redeploy-poll.js +329 -166
- package/dist/setup/vercel-bridge-redeploy-poll.js.map +1 -1
- package/dist/setup/vercel-bridge-redeploy-state.d.ts.map +1 -1
- package/dist/setup/vercel-bridge-redeploy-state.js +3 -0
- package/dist/setup/vercel-bridge-redeploy-state.js.map +1 -1
- package/dist/setup/vercel-bridge-structured-log.d.ts +5 -0
- package/dist/setup/vercel-bridge-structured-log.d.ts.map +1 -1
- package/dist/setup/vercel-bridge-structured-log.js.map +1 -1
- package/dist/setup/vercel-project-name.d.ts +7 -0
- package/dist/setup/vercel-project-name.d.ts.map +1 -0
- package/dist/setup/vercel-project-name.js +26 -0
- package/dist/setup/vercel-project-name.js.map +1 -0
- package/dist/setup/vercel-setup-apply.d.ts +7 -2
- package/dist/setup/vercel-setup-apply.d.ts.map +1 -1
- package/dist/setup/vercel-setup-apply.js +315 -38
- package/dist/setup/vercel-setup-apply.js.map +1 -1
- package/dist/setup/vercel-setup-client.d.ts +26 -1
- package/dist/setup/vercel-setup-client.d.ts.map +1 -1
- package/dist/setup/vercel-setup-client.js +50 -1
- package/dist/setup/vercel-setup-client.js.map +1 -1
- package/dist/setup/vercel-setup-plan.d.ts +5 -0
- package/dist/setup/vercel-setup-plan.d.ts.map +1 -1
- package/dist/setup/vercel-setup-plan.js +65 -13
- package/dist/setup/vercel-setup-plan.js.map +1 -1
- package/dist/setup/vercel-setup-summary.d.ts +3 -0
- package/dist/setup/vercel-setup-summary.d.ts.map +1 -1
- package/dist/setup/vercel-setup-summary.js +4 -0
- package/dist/setup/vercel-setup-summary.js.map +1 -1
- package/dist/setup/workflow-config-snapshot.d.ts +8 -0
- package/dist/setup/workflow-config-snapshot.d.ts.map +1 -0
- package/dist/setup/workflow-config-snapshot.js +13 -0
- package/dist/setup/workflow-config-snapshot.js.map +1 -0
- package/dist/setup/workflow-install-branch-recovery.d.ts +116 -0
- package/dist/setup/workflow-install-branch-recovery.d.ts.map +1 -0
- package/dist/setup/workflow-install-branch-recovery.js +385 -0
- package/dist/setup/workflow-install-branch-recovery.js.map +1 -0
- package/dist/setup/workflow-install-merge-errors.d.ts +5 -2
- package/dist/setup/workflow-install-merge-errors.d.ts.map +1 -1
- package/dist/setup/workflow-install-merge-errors.js +51 -17
- package/dist/setup/workflow-install-merge-errors.js.map +1 -1
- package/dist/setup/workflow-install-merge-gate.d.ts +10 -0
- package/dist/setup/workflow-install-merge-gate.d.ts.map +1 -0
- package/dist/setup/workflow-install-merge-gate.js +21 -0
- package/dist/setup/workflow-install-merge-gate.js.map +1 -0
- package/dist/setup/workflow-model-save-queue.d.ts +16 -0
- package/dist/setup/workflow-model-save-queue.d.ts.map +1 -0
- package/dist/setup/workflow-model-save-queue.js +174 -0
- package/dist/setup/workflow-model-save-queue.js.map +1 -0
- package/dist/setup/workflow-model-sync-lock.d.ts +12 -0
- package/dist/setup/workflow-model-sync-lock.d.ts.map +1 -0
- package/dist/setup/workflow-model-sync-lock.js +79 -0
- package/dist/setup/workflow-model-sync-lock.js.map +1 -0
- package/dist/setup/workflow-model-sync.d.ts +34 -0
- package/dist/setup/workflow-model-sync.d.ts.map +1 -0
- package/dist/setup/workflow-model-sync.js +163 -0
- package/dist/setup/workflow-model-sync.js.map +1 -0
- package/dist/setup/workflow-models-sync-evidence.d.ts +12 -0
- package/dist/setup/workflow-models-sync-evidence.d.ts.map +1 -0
- package/dist/setup/workflow-models-sync-evidence.js +15 -0
- package/dist/setup/workflow-models-sync-evidence.js.map +1 -0
- package/dist/types/parsed-issue.d.ts +8 -0
- package/dist/types/parsed-issue.d.ts.map +1 -1
- package/dist/types/run.d.ts +18 -3
- package/dist/types/run.d.ts.map +1 -1
- package/dist/validate/issue.d.ts +5 -0
- package/dist/validate/issue.d.ts.map +1 -1
- package/dist/validate/issue.js +23 -3
- package/dist/validate/issue.js.map +1 -1
- package/dist/validate/types.d.ts +3 -0
- package/dist/validate/types.d.ts.map +1 -1
- package/dist/webhook/dispatch-statuses.d.ts +1 -1
- package/dist/webhook/dispatch-statuses.d.ts.map +1 -1
- package/dist/webhook/dispatch-statuses.js +4 -13
- package/dist/webhook/dispatch-statuses.js.map +1 -1
- package/dist/webhook/filter.d.ts +5 -2
- package/dist/webhook/filter.d.ts.map +1 -1
- package/dist/webhook/filter.js +15 -1
- package/dist/webhook/filter.js.map +1 -1
- package/dist/webhook/handle-linear-webhook.d.ts.map +1 -1
- package/dist/webhook/handle-linear-webhook.js +15 -1
- package/dist/webhook/handle-linear-webhook.js.map +1 -1
- package/dist/webhook/parse-linear-issue-event.d.ts +6 -0
- package/dist/webhook/parse-linear-issue-event.d.ts.map +1 -1
- package/dist/webhook/parse-linear-issue-event.js +2 -0
- package/dist/webhook/parse-linear-issue-event.js.map +1 -1
- package/dist/webhook/types.d.ts +3 -1
- package/dist/webhook/types.d.ts.map +1 -1
- package/dist/workflow/canonical-product-development-workflow.d.ts +106 -0
- package/dist/workflow/canonical-product-development-workflow.d.ts.map +1 -0
- package/dist/workflow/canonical-product-development-workflow.js +425 -0
- package/dist/workflow/canonical-product-development-workflow.js.map +1 -0
- package/dist/workflow/canonical-workflow-gate.d.ts +33 -0
- package/dist/workflow/canonical-workflow-gate.d.ts.map +1 -0
- package/dist/workflow/canonical-workflow-gate.js +164 -0
- package/dist/workflow/canonical-workflow-gate.js.map +1 -0
- package/dist/workflow/canonical-workflow-validation.d.ts +44 -0
- package/dist/workflow/canonical-workflow-validation.d.ts.map +1 -0
- package/dist/workflow/canonical-workflow-validation.js +193 -0
- package/dist/workflow/canonical-workflow-validation.js.map +1 -0
- package/dist/workflow/finalize-harness-run.d.ts +2 -0
- package/dist/workflow/finalize-harness-run.d.ts.map +1 -0
- package/dist/workflow/finalize-harness-run.js +62 -0
- package/dist/workflow/finalize-harness-run.js.map +1 -0
- package/dist/workflow/preflight-canonical.d.ts +11 -0
- package/dist/workflow/preflight-canonical.d.ts.map +1 -0
- package/dist/workflow/preflight-canonical.js +20 -0
- package/dist/workflow/preflight-canonical.js.map +1 -0
- package/dist/workflow/write-fallback-manifest.d.ts +2 -0
- package/dist/workflow/write-fallback-manifest.d.ts.map +1 -0
- package/dist/workflow/write-fallback-manifest.js +30 -0
- package/dist/workflow/write-fallback-manifest.js.map +1 -0
- package/dist/workflow-page/bootstrap.d.ts +21 -0
- package/dist/workflow-page/bootstrap.d.ts.map +1 -0
- package/dist/workflow-page/bootstrap.js +185 -0
- package/dist/workflow-page/bootstrap.js.map +1 -0
- package/dist/workflow-page/catalog-validation.d.ts +33 -0
- package/dist/workflow-page/catalog-validation.d.ts.map +1 -0
- package/dist/workflow-page/catalog-validation.js +105 -0
- package/dist/workflow-page/catalog-validation.js.map +1 -0
- package/dist/workflow-page/constants.d.ts +7 -0
- package/dist/workflow-page/constants.d.ts.map +1 -0
- package/dist/workflow-page/constants.js +18 -0
- package/dist/workflow-page/constants.js.map +1 -0
- package/dist/workflow-page/current-workflow.d.ts +18 -0
- package/dist/workflow-page/current-workflow.d.ts.map +1 -0
- package/dist/workflow-page/current-workflow.js +142 -0
- package/dist/workflow-page/current-workflow.js.map +1 -0
- package/dist/workflow-page/fingerprint.d.ts +3 -0
- package/dist/workflow-page/fingerprint.d.ts.map +1 -0
- package/dist/workflow-page/fingerprint.js +8 -0
- package/dist/workflow-page/fingerprint.js.map +1 -0
- package/dist/workflow-page/fixture-definition.d.ts +13 -0
- package/dist/workflow-page/fixture-definition.d.ts.map +1 -0
- package/dist/workflow-page/fixture-definition.js +2 -0
- package/dist/workflow-page/fixture-definition.js.map +1 -0
- package/dist/workflow-page/fixture-role-models.d.ts +19 -0
- package/dist/workflow-page/fixture-role-models.d.ts.map +1 -0
- package/dist/workflow-page/fixture-role-models.js +32 -0
- package/dist/workflow-page/fixture-role-models.js.map +1 -0
- package/dist/workflow-page/fixtures/basic-current-workflow.d.ts +5 -0
- package/dist/workflow-page/fixtures/basic-current-workflow.d.ts.map +1 -0
- package/dist/workflow-page/fixtures/basic-current-workflow.js +36 -0
- package/dist/workflow-page/fixtures/basic-current-workflow.js.map +1 -0
- package/dist/workflow-page/fixtures/branching-pr-review.d.ts +3 -0
- package/dist/workflow-page/fixtures/branching-pr-review.d.ts.map +1 -0
- package/dist/workflow-page/fixtures/branching-pr-review.js +10 -0
- package/dist/workflow-page/fixtures/branching-pr-review.js.map +1 -0
- package/dist/workflow-page/fixtures/canonical-violations.d.ts +6 -0
- package/dist/workflow-page/fixtures/canonical-violations.d.ts.map +1 -0
- package/dist/workflow-page/fixtures/canonical-violations.js +19 -0
- package/dist/workflow-page/fixtures/canonical-violations.js.map +1 -0
- package/dist/workflow-page/fixtures/credential-errors.d.ts +3 -0
- package/dist/workflow-page/fixtures/credential-errors.d.ts.map +1 -0
- package/dist/workflow-page/fixtures/credential-errors.js +12 -0
- package/dist/workflow-page/fixtures/credential-errors.js.map +1 -0
- package/dist/workflow-page/fixtures/empty-linear-statuses.d.ts +3 -0
- package/dist/workflow-page/fixtures/empty-linear-statuses.d.ts.map +1 -0
- package/dist/workflow-page/fixtures/empty-linear-statuses.js +9 -0
- package/dist/workflow-page/fixtures/empty-linear-statuses.js.map +1 -0
- package/dist/workflow-page/fixtures/hundred-node-performance.d.ts +3 -0
- package/dist/workflow-page/fixtures/hundred-node-performance.d.ts.map +1 -0
- package/dist/workflow-page/fixtures/hundred-node-performance.js +21 -0
- package/dist/workflow-page/fixtures/hundred-node-performance.js.map +1 -0
- package/dist/workflow-page/fixtures/index.d.ts +6 -0
- package/dist/workflow-page/fixtures/index.d.ts.map +1 -0
- package/dist/workflow-page/fixtures/index.js +24 -0
- package/dist/workflow-page/fixtures/index.js.map +1 -0
- package/dist/workflow-page/fixtures/model-catalog-snapshot.d.ts +10 -0
- package/dist/workflow-page/fixtures/model-catalog-snapshot.d.ts.map +1 -0
- package/dist/workflow-page/fixtures/model-catalog-snapshot.js +29 -0
- package/dist/workflow-page/fixtures/model-catalog-snapshot.js.map +1 -0
- package/dist/workflow-page/fixtures/workflow-scopes.d.ts +4 -0
- package/dist/workflow-page/fixtures/workflow-scopes.d.ts.map +1 -0
- package/dist/workflow-page/fixtures/workflow-scopes.js +16 -0
- package/dist/workflow-page/fixtures/workflow-scopes.js.map +1 -0
- package/dist/workflow-page/linear-status-source.d.ts +15 -0
- package/dist/workflow-page/linear-status-source.d.ts.map +1 -0
- package/dist/workflow-page/linear-status-source.js +44 -0
- package/dist/workflow-page/linear-status-source.js.map +1 -0
- package/dist/workflow-page/model-catalog-lookup.d.ts +3 -0
- package/dist/workflow-page/model-catalog-lookup.d.ts.map +1 -0
- package/dist/workflow-page/model-catalog-lookup.js +4 -0
- package/dist/workflow-page/model-catalog-lookup.js.map +1 -0
- package/dist/workflow-page/model-catalog-utils.d.ts +19 -0
- package/dist/workflow-page/model-catalog-utils.d.ts.map +1 -0
- package/dist/workflow-page/model-catalog-utils.js +46 -0
- package/dist/workflow-page/model-catalog-utils.js.map +1 -0
- package/dist/workflow-page/model-catalog.d.ts +12 -0
- package/dist/workflow-page/model-catalog.d.ts.map +1 -0
- package/dist/workflow-page/model-catalog.js +40 -0
- package/dist/workflow-page/model-catalog.js.map +1 -0
- package/dist/workflow-page/scope-branches.d.ts +11 -0
- package/dist/workflow-page/scope-branches.d.ts.map +1 -0
- package/dist/workflow-page/scope-branches.js +18 -0
- package/dist/workflow-page/scope-branches.js.map +1 -0
- package/dist/workflow-page/source-context.d.ts +13 -0
- package/dist/workflow-page/source-context.d.ts.map +1 -0
- package/dist/workflow-page/source-context.js +61 -0
- package/dist/workflow-page/source-context.js.map +1 -0
- package/dist/workflow-page/types.d.ts +108 -0
- package/dist/workflow-page/types.d.ts.map +1 -0
- package/dist/workflow-page/types.js +2 -0
- package/dist/workflow-page/types.js.map +1 -0
- package/dist/workflow-page/workflow-scopes.d.ts +16 -0
- package/dist/workflow-page/workflow-scopes.d.ts.map +1 -0
- package/dist/workflow-page/workflow-scopes.js +55 -0
- package/dist/workflow-page/workflow-scopes.js.map +1 -0
- package/gui/.next/BUILD_ID +1 -1
- package/gui/.next/app-build-manifest.json +376 -115
- package/gui/.next/app-path-routes-manifest.json +44 -15
- package/gui/.next/build-manifest.json +12 -12
- package/gui/.next/next-minimal-server.js.nft.json +1 -1
- package/gui/.next/next-server.js.nft.json +1 -1
- package/gui/.next/prerender-manifest.json +0 -24
- package/gui/.next/required-server-files.json +4 -3
- package/gui/.next/routes-manifest.json +54 -0
- package/gui/.next/server/app/_not-found/page.js +2 -2
- package/gui/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/gui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/_not-found.html +1 -1
- package/gui/.next/server/app/_not-found.rsc +3 -3
- package/gui/.next/server/app/api/observability/event/route.js +1 -0
- package/gui/.next/server/app/api/observability/event/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/observability/event/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/observability/preferences/route.js +1 -0
- package/gui/.next/server/app/api/observability/preferences/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/observability/preferences/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/operations/bootstrap/route.js +1 -0
- package/gui/.next/server/app/api/operations/bootstrap/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/operations/bootstrap/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/operations/draft/route.js +1 -0
- package/gui/.next/server/app/api/operations/draft/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/operations/draft/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/settings/apply-config-patch/route.js +8 -0
- package/gui/.next/server/app/api/settings/apply-config-patch/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/settings/apply-config-patch/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/settings/preview-config-patch/route.js +8 -0
- package/gui/.next/server/app/api/settings/preview-config-patch/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/settings/preview-config-patch/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/setup/apply-connect-services/route.js +1 -1
- package/gui/.next/server/app/api/setup/apply-connect-services/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/apply-connect-services/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/apply-harness-repo-provisioning/route.js +1 -1
- package/gui/.next/server/app/api/setup/apply-harness-repo-provisioning/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/apply-harness-repo-provisioning/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/apply-harness-secrets/route.js +1 -1
- package/gui/.next/server/app/api/setup/apply-harness-secrets/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/apply-harness-secrets/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/apply-linear-setup/route.js +1 -1
- package/gui/.next/server/app/api/setup/apply-linear-setup/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/apply-linear-setup/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/apply-linear-workspace/route.js +1 -0
- package/gui/.next/server/app/api/setup/apply-linear-workspace/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/setup/apply-linear-workspace/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/setup/apply-local-files/route.js +1 -1
- package/gui/.next/server/app/api/setup/apply-local-files/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/apply-local-files/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/apply-runner-upgrade/route.js +1 -0
- package/gui/.next/server/app/api/setup/apply-runner-upgrade/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/setup/apply-runner-upgrade/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/setup/apply-target-repo-provisioning/route.js +1 -0
- package/gui/.next/server/app/api/setup/apply-target-repo-provisioning/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/setup/apply-target-repo-provisioning/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/setup/apply-target-workflow/route.js +1 -1
- package/gui/.next/server/app/api/setup/apply-target-workflow/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/apply-target-workflow/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/apply-vercel-bridge/route.js +1 -1
- package/gui/.next/server/app/api/setup/apply-vercel-bridge/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/apply-vercel-bridge/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/complete-initial-setup/route.js +1 -0
- package/gui/.next/server/app/api/setup/complete-initial-setup/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/setup/complete-initial-setup/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/setup/finalize-target-workflow/route.js +1 -1
- package/gui/.next/server/app/api/setup/finalize-target-workflow/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/finalize-target-workflow/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/harness-provisioning-progress/route.js +1 -0
- package/gui/.next/server/app/api/setup/harness-provisioning-progress/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/setup/harness-provisioning-progress/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/setup/harness-provisioning-summary/route.js +1 -1
- package/gui/.next/server/app/api/setup/harness-provisioning-summary/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/harness-provisioning-summary/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/linear-options/route.js +1 -1
- package/gui/.next/server/app/api/setup/linear-options/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/linear-options/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/linear-setup-progress/route.js +1 -0
- package/gui/.next/server/app/api/setup/linear-setup-progress/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/setup/linear-setup-progress/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/setup/linear-summary/route.js +1 -1
- package/gui/.next/server/app/api/setup/linear-summary/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/linear-summary/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/linear-workspace-editor-state/route.js +1 -0
- package/gui/.next/server/app/api/setup/linear-workspace-editor-state/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/setup/linear-workspace-editor-state/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/setup/local-readiness/route.js +3 -1
- package/gui/.next/server/app/api/setup/local-readiness/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/local-readiness/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/manual-harness-secret-values/route.js +1 -1
- package/gui/.next/server/app/api/setup/manual-harness-secret-values/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/manual-harness-secret-values/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/preview-connect-services/route.js +1 -1
- package/gui/.next/server/app/api/setup/preview-connect-services/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/preview-connect-services/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/preview-harness-repo-provisioning/route.js +1 -1
- package/gui/.next/server/app/api/setup/preview-harness-repo-provisioning/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/preview-harness-repo-provisioning/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/preview-harness-secrets/route.js +1 -1
- package/gui/.next/server/app/api/setup/preview-harness-secrets/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/preview-harness-secrets/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/preview-linear-setup/route.js +1 -1
- package/gui/.next/server/app/api/setup/preview-linear-setup/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/preview-linear-setup/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/preview-linear-workspace/route.js +1 -0
- package/gui/.next/server/app/api/setup/preview-linear-workspace/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/setup/preview-linear-workspace/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/setup/preview-local-files/route.js +1 -1
- package/gui/.next/server/app/api/setup/preview-local-files/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/preview-local-files/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/preview-runner-upgrade/route.js +1 -0
- package/gui/.next/server/app/api/setup/preview-runner-upgrade/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/setup/preview-runner-upgrade/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/setup/preview-target-repo-provisioning/route.js +1 -0
- package/gui/.next/server/app/api/setup/preview-target-repo-provisioning/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/setup/preview-target-repo-provisioning/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/setup/preview-target-workflow/route.js +1 -1
- package/gui/.next/server/app/api/setup/preview-target-workflow/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/preview-target-workflow/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/preview-vercel-bridge/route.js +1 -1
- package/gui/.next/server/app/api/setup/preview-vercel-bridge/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/preview-vercel-bridge/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/remote-summary/route.js +1 -1
- package/gui/.next/server/app/api/setup/remote-summary/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/remote-summary/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/runner-upgrade-progress/route.js +1 -0
- package/gui/.next/server/app/api/setup/runner-upgrade-progress/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/setup/runner-upgrade-progress/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/setup/runner-upgrade-status/route.js +1 -0
- package/gui/.next/server/app/api/setup/runner-upgrade-status/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/setup/runner-upgrade-status/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/setup/summary/route.js +1 -1
- package/gui/.next/server/app/api/setup/summary/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/summary/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/vercel-bridge-options/route.js +1 -1
- package/gui/.next/server/app/api/setup/vercel-bridge-options/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/vercel-bridge-options/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/vercel-bridge-redeploy-status/route.js +1 -1
- package/gui/.next/server/app/api/setup/vercel-bridge-redeploy-status/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/vercel-bridge-redeploy-status/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/vercel-summary/route.js +1 -1
- package/gui/.next/server/app/api/setup/vercel-summary/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/vercel-summary/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/verify-harness-repo/route.js +1 -1
- package/gui/.next/server/app/api/setup/verify-harness-repo/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/verify-harness-repo/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/verify-service/route.js +1 -1
- package/gui/.next/server/app/api/setup/verify-service/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/verify-service/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/verify-target-repo/route.js +1 -1
- package/gui/.next/server/app/api/setup/verify-target-repo/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/verify-target-repo/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/workflow/bootstrap/route.js +1 -0
- package/gui/.next/server/app/api/workflow/bootstrap/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/workflow/bootstrap/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/api/workflow/models/route.js +1 -0
- package/gui/.next/server/app/api/workflow/models/route.js.nft.json +1 -0
- package/gui/.next/server/app/api/workflow/models/route_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/operations/page.js +2 -0
- package/gui/.next/server/app/operations/page.js.nft.json +1 -0
- package/gui/.next/server/app/operations/page_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/page.js +3 -2
- package/gui/.next/server/app/page.js.nft.json +1 -1
- package/gui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/settings/(console)/connections/page.js +2 -0
- package/gui/.next/server/app/settings/(console)/connections/page.js.nft.json +1 -0
- package/gui/.next/server/app/settings/(console)/connections/page_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/settings/(console)/data-sharing/page.js +2 -0
- package/gui/.next/server/app/settings/(console)/data-sharing/page.js.nft.json +1 -0
- package/gui/.next/server/app/settings/(console)/data-sharing/page_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/settings/(console)/deployments/page.js +2 -0
- package/gui/.next/server/app/settings/(console)/deployments/page.js.nft.json +1 -0
- package/gui/.next/server/app/settings/(console)/deployments/page_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/settings/(console)/linear/page.js +10 -0
- package/gui/.next/server/app/settings/(console)/linear/page.js.nft.json +1 -0
- package/gui/.next/server/app/settings/(console)/linear/page_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/settings/(console)/models/page.js +2 -0
- package/gui/.next/server/app/settings/(console)/models/page.js.nft.json +1 -0
- package/gui/.next/server/app/settings/(console)/models/page_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/settings/(console)/page.js +2 -0
- package/gui/.next/server/app/settings/(console)/page.js.nft.json +1 -0
- package/gui/.next/server/app/settings/(console)/page_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/settings/(console)/repositories/page.js +6 -0
- package/gui/.next/server/app/settings/(console)/repositories/page.js.nft.json +1 -0
- package/gui/.next/server/app/settings/(console)/repositories/page_client-reference-manifest.js +1 -0
- package/gui/.next/server/app/settings/configure/page.js +4 -4
- package/gui/.next/server/app/settings/configure/page.js.nft.json +1 -1
- package/gui/.next/server/app/settings/configure/page_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/workflow/page.js +2 -0
- package/gui/.next/server/app/workflow/page.js.nft.json +1 -0
- package/gui/.next/server/app/workflow/page_client-reference-manifest.js +1 -0
- package/gui/.next/server/app-paths-manifest.json +44 -15
- package/gui/.next/server/chunks/105.js +2 -0
- package/gui/.next/server/chunks/1304.js +200 -0
- package/gui/.next/server/chunks/1536.js +1 -0
- package/gui/.next/server/chunks/1948.js +59 -0
- package/gui/.next/server/chunks/2470.js +3 -0
- package/gui/.next/server/chunks/2581.js +2 -0
- package/gui/.next/server/chunks/383.js +1 -1
- package/gui/.next/server/chunks/521.js +1 -0
- package/gui/.next/server/chunks/553.js +1 -0
- package/gui/.next/server/chunks/5827.js +1 -0
- package/gui/.next/server/chunks/6408.js +1 -0
- package/gui/.next/server/chunks/641.js +1 -0
- package/gui/.next/server/chunks/6482.js +1 -0
- package/gui/.next/server/chunks/6801.js +1 -0
- package/gui/.next/server/chunks/6890.js +1 -0
- package/gui/.next/server/chunks/7201.js +1 -0
- package/gui/.next/server/chunks/7221.js +1 -0
- package/gui/.next/server/chunks/{332.js → 7332.js} +1 -1
- package/gui/.next/server/chunks/7527.js +1 -0
- package/gui/.next/server/chunks/8312.js +1 -0
- package/gui/.next/server/chunks/8476.js +8 -0
- package/gui/.next/server/chunks/8764.js +16 -0
- package/gui/.next/server/chunks/8819.js +22 -0
- package/gui/.next/server/chunks/8825.js +1 -0
- package/gui/.next/server/chunks/9148.js +1 -0
- package/gui/.next/server/chunks/9454.js +1 -0
- package/gui/.next/server/instrumentation.js +1 -0
- package/gui/.next/server/instrumentation.js.nft.json +1 -0
- package/gui/.next/server/middleware-build-manifest.js +1 -1
- package/gui/.next/server/pages/404.html +1 -1
- package/gui/.next/server/pages/500.html +1 -1
- package/gui/.next/server/pages/_document.js +1 -1
- package/gui/.next/server/pages/_document.js.nft.json +1 -1
- package/gui/.next/server/pages/_error.js +2 -2
- package/gui/.next/server/pages/_error.js.nft.json +1 -1
- package/gui/.next/server/pages-manifest.json +1 -1
- package/gui/.next/server/webpack-runtime.js +1 -1
- package/gui/.next/static/chunks/3800-379a4b854a7eb1dc.js +1 -0
- package/gui/.next/static/chunks/464-7503c96bb839c213.js +1 -0
- package/gui/.next/static/chunks/5567-672d065d2668f1ea.js +1 -0
- package/gui/.next/static/chunks/6240-d3f8028539091853.js +1 -0
- package/gui/.next/static/chunks/7420-cb03f2f94db611c4.js +1 -0
- package/gui/.next/static/chunks/8002-528c2e589bc54111.js +1 -0
- package/gui/.next/static/chunks/9188-540635591aa2baf5.js +1 -0
- package/gui/.next/static/chunks/9289-00509b3e0c520cce.js +1 -0
- package/gui/.next/static/chunks/9576-6d94e3d152f876e7.js +1 -0
- package/gui/.next/static/chunks/app/_not-found/page-89865576110e31f0.js +1 -0
- package/gui/.next/static/chunks/app/api/observability/event/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/observability/preferences/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/operations/bootstrap/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/operations/draft/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/settings/apply-config-patch/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/settings/preview-config-patch/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/apply-connect-services/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/apply-harness-repo-provisioning/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/apply-harness-secrets/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/apply-linear-setup/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/apply-linear-workspace/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/apply-local-files/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/apply-runner-upgrade/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/apply-target-repo-provisioning/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/apply-target-workflow/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/apply-vercel-bridge/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/complete-initial-setup/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/finalize-target-workflow/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/harness-provisioning-progress/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/harness-provisioning-summary/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/linear-options/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/linear-setup-progress/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/linear-summary/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/linear-workspace-editor-state/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/local-readiness/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/manual-harness-secret-values/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/preview-connect-services/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/preview-harness-repo-provisioning/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/preview-harness-secrets/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/preview-linear-setup/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/preview-linear-workspace/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/preview-local-files/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/preview-runner-upgrade/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/preview-target-repo-provisioning/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/preview-target-workflow/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/preview-vercel-bridge/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/remote-summary/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/runner-upgrade-progress/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/runner-upgrade-status/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/summary/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/vercel-bridge-options/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/vercel-bridge-redeploy-status/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/vercel-summary/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/verify-harness-repo/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/verify-service/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/setup/verify-target-repo/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/workflow/bootstrap/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/api/workflow/models/route-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/layout-ec756afb9686f579.js +1 -0
- package/gui/.next/static/chunks/app/operations/page-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/page-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/settings/(console)/connections/page-95847d89fc70089a.js +1 -0
- package/gui/.next/static/chunks/app/settings/(console)/data-sharing/page-3e0d8fe941c7334e.js +1 -0
- package/gui/.next/static/chunks/app/settings/(console)/deployments/page-e3aaff205f09b567.js +1 -0
- package/gui/.next/static/chunks/app/settings/(console)/layout-74ce539ae02dc765.js +1 -0
- package/gui/.next/static/chunks/app/settings/(console)/linear/page-0a1e73b5ec66af90.js +1 -0
- package/gui/.next/static/chunks/app/settings/(console)/models/page-336406c2905983c9.js +1 -0
- package/gui/.next/static/chunks/app/settings/(console)/page-08ffe80f6f4603f6.js +1 -0
- package/gui/.next/static/chunks/app/settings/(console)/repositories/page-b1f7159c7771b16a.js +1 -0
- package/gui/.next/static/chunks/app/settings/configure/loading-5f1e73b910fbd9da.js +1 -0
- package/gui/.next/static/chunks/app/settings/configure/page-54b7572655b9f60f.js +1 -0
- package/gui/.next/static/chunks/app/workflow/page-8087b342a6ece93c.js +1 -0
- package/gui/.next/static/chunks/framework-dc88dc15d5e043e1.js +1 -0
- package/gui/.next/static/chunks/main-5b390d9aaa7199a5.js +1 -0
- package/gui/.next/static/chunks/main-app-7fbf1b54aaed0242.js +1 -0
- package/gui/.next/static/chunks/pages/{_app-2e239ff05bfdf6d6.js → _app-50fa07b56b2d29ac.js} +1 -1
- package/gui/.next/static/chunks/pages/_error-fed8688bdd23f211.js +1 -0
- package/gui/.next/static/chunks/{webpack-1e50074b7e886e1b.js → webpack-b27d2f88ec3d35a4.js} +1 -1
- package/gui/.next/static/css/b7b323a34ac09e0b.css +3 -0
- package/gui/.next/static/wM7YWpWgyTcGc7H5h1u7U/_buildManifest.js +1 -0
- package/gui/.next/trace +6 -4
- package/gui/.next/types/app/api/observability/event/route.ts +347 -0
- package/gui/.next/types/app/api/observability/preferences/route.ts +347 -0
- package/gui/.next/types/app/api/operations/bootstrap/route.ts +347 -0
- package/gui/.next/types/app/api/operations/draft/route.ts +347 -0
- package/gui/.next/types/app/api/settings/apply-config-patch/route.ts +347 -0
- package/gui/.next/types/app/api/settings/preview-config-patch/route.ts +347 -0
- package/gui/.next/types/app/api/setup/apply-linear-workspace/route.ts +347 -0
- package/gui/.next/types/app/api/setup/apply-runner-upgrade/route.ts +347 -0
- package/gui/.next/types/app/api/setup/apply-target-repo-provisioning/route.ts +347 -0
- package/gui/.next/types/app/api/setup/complete-initial-setup/route.ts +347 -0
- package/gui/.next/types/app/api/setup/harness-provisioning-progress/route.ts +347 -0
- package/gui/.next/types/app/api/setup/linear-setup-progress/route.ts +347 -0
- package/gui/.next/types/app/api/setup/linear-workspace-editor-state/route.ts +347 -0
- package/gui/.next/types/app/api/setup/preview-linear-workspace/route.ts +347 -0
- package/gui/.next/types/app/api/setup/preview-runner-upgrade/route.ts +347 -0
- package/gui/.next/types/app/api/setup/preview-target-repo-provisioning/route.ts +347 -0
- package/gui/.next/types/app/api/setup/runner-upgrade-progress/route.ts +347 -0
- package/gui/.next/types/app/api/setup/runner-upgrade-status/route.ts +347 -0
- package/gui/.next/types/app/api/workflow/bootstrap/route.ts +347 -0
- package/gui/.next/types/app/api/workflow/models/route.ts +347 -0
- package/gui/.next/types/app/operations/page.ts +84 -0
- package/gui/.next/types/app/settings/(console)/connections/page.ts +84 -0
- package/gui/.next/types/app/settings/(console)/data-sharing/page.ts +84 -0
- package/gui/.next/types/app/settings/(console)/deployments/page.ts +84 -0
- package/gui/.next/types/app/settings/(console)/layout.ts +84 -0
- package/gui/.next/types/app/settings/(console)/linear/page.ts +84 -0
- package/gui/.next/types/app/settings/(console)/models/page.ts +84 -0
- package/gui/.next/types/app/settings/(console)/page.ts +84 -0
- package/gui/.next/types/app/settings/(console)/repositories/page.ts +84 -0
- package/gui/.next/types/app/workflow/page.ts +84 -0
- package/gui/.next/types/routes.d.ts +33 -3
- package/gui/.next/types/validator.ts +270 -0
- package/observability.public.json +6 -0
- package/package.json +5 -1
- package/templates/.harness/config.example.json +1 -0
- package/workspace-snapshot/files/.agents/skills/implementation/SKILL.md +4 -0
- package/workspace-snapshot/files/.agents/skills/issue-intake/SKILL.md +13 -1
- package/workspace-snapshot/files/.agents/skills/planner/SKILL.md +10 -0
- package/workspace-snapshot/files/.github/workflows/harness-auto-runner.yml +38 -11
- package/workspace-snapshot/files/.github/workflows/p-dev-runner-config-canary.yml +24 -0
- package/workspace-snapshot/files/.harness/config.example.json +1 -0
- package/workspace-snapshot/files/AGENTS.md +13 -2
- package/workspace-snapshot/files/ARCHITECTURE.md +23 -6
- package/workspace-snapshot/files/CHANGELOG.md +50 -5
- package/workspace-snapshot/files/README.md +10 -4
- package/workspace-snapshot/files/ROADMAP.md +10 -1
- package/workspace-snapshot/files/apps/gui/app/api/observability/event/route.ts +36 -0
- package/workspace-snapshot/files/apps/gui/app/api/observability/preferences/route.ts +88 -0
- package/workspace-snapshot/files/apps/gui/app/api/operations/bootstrap/route.ts +8 -0
- package/workspace-snapshot/files/apps/gui/app/api/operations/draft/route.ts +15 -0
- package/workspace-snapshot/files/apps/gui/app/api/settings/apply-config-patch/route.ts +52 -0
- package/workspace-snapshot/files/apps/gui/app/api/settings/preview-config-patch/route.ts +40 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/apply-harness-repo-provisioning/route.ts +6 -5
- package/workspace-snapshot/files/apps/gui/app/api/setup/apply-linear-workspace/route.ts +23 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/apply-runner-upgrade/route.ts +33 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/apply-target-repo-provisioning/route.ts +38 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/apply-vercel-bridge/route.ts +7 -1
- package/workspace-snapshot/files/apps/gui/app/api/setup/complete-initial-setup/route.ts +49 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/harness-provisioning-progress/route.ts +21 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/linear-setup-progress/route.ts +17 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/linear-workspace-editor-state/route.ts +17 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/local-readiness/route.ts +52 -13
- package/workspace-snapshot/files/apps/gui/app/api/setup/preview-linear-workspace/route.ts +22 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/preview-runner-upgrade/route.ts +17 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/preview-target-repo-provisioning/route.ts +34 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/runner-upgrade-progress/route.ts +17 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/runner-upgrade-status/route.ts +72 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/verify-service/route.ts +2 -2
- package/workspace-snapshot/files/apps/gui/app/api/setup/verify-target-repo/route.ts +9 -2
- package/workspace-snapshot/files/apps/gui/app/api/workflow/bootstrap/route.ts +24 -0
- package/workspace-snapshot/files/apps/gui/app/api/workflow/models/route.ts +86 -0
- package/workspace-snapshot/files/apps/gui/app/operations/page.tsx +23 -0
- package/workspace-snapshot/files/apps/gui/app/page.tsx +8 -2
- package/workspace-snapshot/files/apps/gui/app/settings/(console)/connections/page.tsx +27 -0
- package/workspace-snapshot/files/apps/gui/app/settings/(console)/data-sharing/page.tsx +25 -0
- package/workspace-snapshot/files/apps/gui/app/settings/(console)/deployments/page.tsx +28 -0
- package/workspace-snapshot/files/apps/gui/app/settings/(console)/layout.tsx +45 -0
- package/workspace-snapshot/files/apps/gui/app/settings/(console)/linear/page.tsx +20 -0
- package/workspace-snapshot/files/apps/gui/app/settings/(console)/models/page.tsx +14 -0
- package/workspace-snapshot/files/apps/gui/app/settings/(console)/page.tsx +7 -0
- package/workspace-snapshot/files/apps/gui/app/settings/(console)/repositories/page.tsx +29 -0
- package/workspace-snapshot/files/apps/gui/app/settings/configure/loading.tsx +25 -0
- package/workspace-snapshot/files/apps/gui/app/settings/configure/page.tsx +76 -7
- package/workspace-snapshot/files/apps/gui/app/workflow/page.tsx +24 -0
- package/workspace-snapshot/files/apps/gui/components/custom/app-shell.tsx +26 -32
- package/workspace-snapshot/files/apps/gui/components/custom/application-header.tsx +64 -0
- package/workspace-snapshot/files/apps/gui/components/custom/configure-experience.tsx +347 -85
- package/workspace-snapshot/files/apps/gui/components/custom/configure-page-content.tsx +15 -0
- package/workspace-snapshot/files/apps/gui/components/custom/configure-workflow.tsx +675 -112
- package/workspace-snapshot/files/apps/gui/components/custom/data-sharing-preferences.tsx +159 -0
- package/workspace-snapshot/files/apps/gui/components/custom/environment-config-form.tsx +31 -13
- package/workspace-snapshot/files/apps/gui/components/custom/guided-cloud-secrets-card.tsx +99 -46
- package/workspace-snapshot/files/apps/gui/components/custom/guided-linear-workspace-card.tsx +974 -148
- package/workspace-snapshot/files/apps/gui/components/custom/guided-local-readiness-card.tsx +153 -35
- package/workspace-snapshot/files/apps/gui/components/custom/guided-operation-panel.tsx +102 -0
- package/workspace-snapshot/files/apps/gui/components/custom/guided-progress-check.tsx +37 -0
- package/workspace-snapshot/files/apps/gui/components/custom/guided-setup-progress.tsx +114 -0
- package/workspace-snapshot/files/apps/gui/components/custom/guided-step-success-panel.tsx +50 -0
- package/workspace-snapshot/files/apps/gui/components/custom/guided-step-transition.tsx +81 -27
- package/workspace-snapshot/files/apps/gui/components/custom/guided-target-workflow-card.tsx +267 -60
- package/workspace-snapshot/files/apps/gui/components/custom/guided-vercel-bridge-card.tsx +341 -179
- package/workspace-snapshot/files/apps/gui/components/custom/observability-settings-card.tsx +23 -0
- package/workspace-snapshot/files/apps/gui/components/custom/remote-action-confirmation.tsx +13 -11
- package/workspace-snapshot/files/apps/gui/components/custom/review-workflow-changes-disclosure.tsx +59 -0
- package/workspace-snapshot/files/apps/gui/components/custom/settings-menu.tsx +109 -0
- package/workspace-snapshot/files/apps/gui/components/custom/setup-checklist.tsx +47 -29
- package/workspace-snapshot/files/apps/gui/components/custom/target-repo-config-form.tsx +22 -2
- package/workspace-snapshot/files/apps/gui/components/custom/target-repo-create-connect.tsx +419 -0
- package/workspace-snapshot/files/apps/gui/components/custom/target-workflow-pr-card.tsx +105 -43
- package/workspace-snapshot/files/apps/gui/components/custom/theme-toggle.tsx +3 -11
- package/workspace-snapshot/files/apps/gui/components/custom/vercel-bridge-orchestration-status.tsx +65 -0
- package/workspace-snapshot/files/apps/gui/components/custom/workflow-install-pending-panel.tsx +125 -53
- package/workspace-snapshot/files/apps/gui/components/settings/editors/connections-settings-editor.tsx +261 -0
- package/workspace-snapshot/files/apps/gui/components/settings/editors/deployments-settings-editor.tsx +397 -0
- package/workspace-snapshot/files/apps/gui/components/settings/editors/linear-settings-editor.tsx +512 -0
- package/workspace-snapshot/files/apps/gui/components/settings/editors/repositories-settings-editor.tsx +749 -0
- package/workspace-snapshot/files/apps/gui/components/settings/editors/runner-upgrade-settings-card.tsx +533 -0
- package/workspace-snapshot/files/apps/gui/components/settings/settings-models-client.tsx +102 -0
- package/workspace-snapshot/files/apps/gui/components/settings/settings-mutation-panel.tsx +125 -0
- package/workspace-snapshot/files/apps/gui/components/settings/settings-shell.tsx +46 -0
- package/workspace-snapshot/files/apps/gui/components/ui/dropdown-menu.tsx +257 -0
- package/workspace-snapshot/files/apps/gui/components/ui/guided-select.tsx +22 -0
- package/workspace-snapshot/files/apps/gui/components/workflow/workflow-cards-section.tsx +206 -0
- package/workspace-snapshot/files/apps/gui/components/workflow/workflow-health-panel.tsx +43 -0
- package/workspace-snapshot/files/apps/gui/components/workflow/workflow-model-control.tsx +111 -0
- package/workspace-snapshot/files/apps/gui/components/workflow/workflow-page-client.tsx +161 -0
- package/workspace-snapshot/files/apps/gui/components/workflow/workflow-scope-selector.tsx +41 -0
- package/workspace-snapshot/files/apps/gui/instrumentation.ts +136 -0
- package/workspace-snapshot/files/apps/gui/lib/configure-navigation-timing.ts +53 -0
- package/workspace-snapshot/files/apps/gui/lib/constants/form.ts +5 -0
- package/workspace-snapshot/files/apps/gui/lib/constants/layout.ts +10 -3
- package/workspace-snapshot/files/apps/gui/lib/guided-setup.ts +222 -0
- package/workspace-snapshot/files/apps/gui/lib/linear-association-draft.ts +93 -0
- package/workspace-snapshot/files/apps/gui/lib/local-readiness-visual-queue.ts +61 -0
- package/workspace-snapshot/files/apps/gui/lib/observability-client.ts +21 -0
- package/workspace-snapshot/files/apps/gui/lib/observability-preferences.ts +19 -0
- package/workspace-snapshot/files/apps/gui/lib/observability-request-guard.ts +136 -0
- package/workspace-snapshot/files/apps/gui/lib/observability-route.ts +75 -0
- package/workspace-snapshot/files/apps/gui/lib/settings/load-harness-config-summary.ts +20 -0
- package/workspace-snapshot/files/apps/gui/lib/settings/load-repositories-overview.ts +37 -0
- package/workspace-snapshot/files/apps/gui/lib/settings/load-settings-editor-data.ts +51 -0
- package/workspace-snapshot/files/apps/gui/lib/settings/load-target-repo-overview-fields.ts +124 -0
- package/workspace-snapshot/files/apps/gui/lib/settings/runner-upgrade-feature-flag.ts +9 -0
- package/workspace-snapshot/files/apps/gui/lib/settings/runner-upgrade-ssr.ts +13 -0
- package/workspace-snapshot/files/apps/gui/lib/settings/runner-upgrade-ui-gates.ts +87 -0
- package/workspace-snapshot/files/apps/gui/lib/settings/settings-mutation.ts +49 -0
- package/workspace-snapshot/files/apps/gui/lib/settings/settings-navigation.ts +10 -0
- package/workspace-snapshot/files/apps/gui/lib/settings/settings-setup-client.ts +312 -0
- package/workspace-snapshot/files/apps/gui/lib/setup-server.ts +608 -17
- package/workspace-snapshot/files/apps/gui/lib/use-theme-toggle.ts +26 -0
- package/workspace-snapshot/files/apps/gui/lib/vercel-bridge-polling-ui.ts +88 -1
- package/workspace-snapshot/files/apps/gui/lib/verification-state.ts +97 -1
- package/workspace-snapshot/files/apps/gui/lib/workflow/api-client.ts +84 -0
- package/workspace-snapshot/files/apps/gui/lib/workflow/use-model-autosave.ts +90 -0
- package/workspace-snapshot/files/apps/gui/lib/workflow/use-workflow-model-save.ts +265 -0
- package/workspace-snapshot/files/apps/gui/lib/workflow/workflow-health.ts +53 -0
- package/workspace-snapshot/files/apps/gui/lib/workflow/workflow-ownership.ts +47 -0
- package/workspace-snapshot/files/apps/gui/lib/workflow/workflow-status-content.ts +149 -0
- package/workspace-snapshot/files/apps/gui/lib/workflow/workflow-violation-messages.ts +49 -0
- package/workspace-snapshot/files/apps/gui/lib/workflow-server.ts +307 -0
- package/workspace-snapshot/files/apps/gui/next.config.ts +8 -3
- package/workspace-snapshot/files/docs/architecture/canonical-product-development-workflow.md +70 -0
- package/workspace-snapshot/files/docs/architecture/linear-automation-state-machine.md +26 -10
- package/workspace-snapshot/files/docs/design/product-development-harness-gui.md +0 -1
- package/workspace-snapshot/files/docs/getting-started.md +2 -2
- package/workspace-snapshot/files/docs/gui-local.md +3 -3
- package/workspace-snapshot/files/docs/gui-remote-setup.md +2 -2
- package/workspace-snapshot/files/docs/issue-intake.md +12 -0
- package/workspace-snapshot/files/docs/observability-and-privacy.md +247 -0
- package/workspace-snapshot/files/docs/operator-config.md +16 -1
- package/workspace-snapshot/files/docs/p-dev.md +43 -9
- package/workspace-snapshot/files/docs/releases/release-process.md +135 -7
- package/workspace-snapshot/files/docs/releases/v0.3.1.md +42 -6
- package/workspace-snapshot/files/docs/releases/v0.4.0.md +93 -0
- package/workspace-snapshot/files/docs/security.md +8 -0
- package/workspace-snapshot/files/docs/settings-console.md +44 -0
- package/workspace-snapshot/files/harness.config.schema.json +114 -0
- package/workspace-snapshot/files/package-lock.json +1881 -95
- package/workspace-snapshot/files/package.json +10 -2
- package/workspace-snapshot/files/packages/p-dev/README.md +12 -4
- package/workspace-snapshot/files/packages/p-dev/observability.public.json +6 -0
- package/workspace-snapshot/files/packages/p-dev/package.json +5 -1
- package/workspace-snapshot/files/prompts/issue-intake-chatgpt.md +4 -0
- package/workspace-snapshot/files/scripts/configure-browser-matrix.config.ts +40 -0
- package/workspace-snapshot/files/scripts/configure-browser-matrix.spec.ts +294 -0
- package/workspace-snapshot/files/scripts/configure-step4-harness-readiness.config.ts +118 -0
- package/workspace-snapshot/files/scripts/configure-step4-harness-readiness.spec.ts +80 -0
- package/workspace-snapshot/files/scripts/prepare-configure-browser-workspace.ts +138 -0
- package/workspace-snapshot/files/scripts/prepare-p-dev-package.ts +9 -0
- package/workspace-snapshot/files/scripts/workflow-browser-matrix.config.ts +27 -0
- package/workspace-snapshot/files/scripts/workflow-browser-matrix.spec.ts +151 -0
- package/workspace-snapshot/files/src/agents/cursor-provider.ts +12 -14
- package/workspace-snapshot/files/src/agents/index.ts +8 -12
- package/workspace-snapshot/files/src/agents/types.ts +40 -4
- package/workspace-snapshot/files/src/artifacts/redact.ts +18 -2
- package/workspace-snapshot/files/src/artifacts/write-json-out-manifest.ts +90 -0
- package/workspace-snapshot/files/src/cli/commands/canary-runner-config.ts +6 -0
- package/workspace-snapshot/files/src/cli/commands/doctor.ts +148 -0
- package/workspace-snapshot/files/src/cli/commands/resolve-route.ts +5 -0
- package/workspace-snapshot/files/src/cli/commands/run.ts +65 -17
- package/workspace-snapshot/files/src/cli/commands/sync-managed-runner.ts +126 -0
- package/workspace-snapshot/files/src/cli/program.ts +47 -0
- package/workspace-snapshot/files/src/config/assert-cloud-config-fingerprint.ts +36 -0
- package/workspace-snapshot/files/src/config/cloud-config-fingerprint.ts +90 -0
- package/workspace-snapshot/files/src/config/legacy-linear-top-level.ts +69 -0
- package/workspace-snapshot/files/src/config/linear-association-gate.ts +80 -0
- package/workspace-snapshot/files/src/config/resolve-linear-team.ts +41 -0
- package/workspace-snapshot/files/src/config/resolve-linear-workspace.ts +391 -0
- package/workspace-snapshot/files/src/config/role-models.ts +39 -0
- package/workspace-snapshot/files/src/config/runner-upgrade-sync-gate.ts +26 -0
- package/workspace-snapshot/files/src/config/schema.ts +17 -0
- package/workspace-snapshot/files/src/config/types.ts +5 -1
- package/workspace-snapshot/files/src/config/workspace-root.ts +28 -0
- package/workspace-snapshot/files/src/cursor/agent-factory.ts +51 -5
- package/workspace-snapshot/files/src/cursor/builder-resume-errors.ts +41 -0
- package/workspace-snapshot/files/src/cursor/model.ts +106 -25
- package/workspace-snapshot/files/src/cursor/run-observer.ts +15 -2
- package/workspace-snapshot/files/src/github/auth-verification-retry.ts +63 -0
- package/workspace-snapshot/files/src/github/client.ts +204 -5
- package/workspace-snapshot/files/src/gui/configure-health.ts +2 -2
- package/workspace-snapshot/files/src/gui/repo-root.ts +20 -1
- package/workspace-snapshot/files/src/gui/start-configure-stable.ts +6 -2
- package/workspace-snapshot/files/src/gui/start-gui.ts +8 -3
- package/workspace-snapshot/files/src/linear/client.ts +10 -0
- package/workspace-snapshot/files/src/linear/comments.ts +52 -0
- package/workspace-snapshot/files/src/linear/issue-query.ts +4 -0
- package/workspace-snapshot/files/src/linear/markers.ts +28 -0
- package/workspace-snapshot/files/src/linear/parser.ts +61 -1
- package/workspace-snapshot/files/src/linear/project-harness-metadata.ts +147 -0
- package/workspace-snapshot/files/src/linear/project-metadata-sync.ts +115 -0
- package/workspace-snapshot/files/src/linear/run-status-comment.ts +197 -0
- package/workspace-snapshot/files/src/linear/writer.ts +25 -0
- package/workspace-snapshot/files/src/observability/adapters/fake.ts +267 -0
- package/workspace-snapshot/files/src/observability/adapters/noop.ts +62 -0
- package/workspace-snapshot/files/src/observability/adapters/posthog.ts +165 -0
- package/workspace-snapshot/files/src/observability/adapters/sentry.ts +276 -0
- package/workspace-snapshot/files/src/observability/analytics-schemas.ts +150 -0
- package/workspace-snapshot/files/src/observability/consent.ts +70 -0
- package/workspace-snapshot/files/src/observability/constants.ts +25 -0
- package/workspace-snapshot/files/src/observability/context.ts +152 -0
- package/workspace-snapshot/files/src/observability/facade-runtime-state.ts +47 -0
- package/workspace-snapshot/files/src/observability/facade.ts +628 -0
- package/workspace-snapshot/files/src/observability/fatal-handlers.ts +60 -0
- package/workspace-snapshot/files/src/observability/identity.ts +13 -0
- package/workspace-snapshot/files/src/observability/index.ts +47 -0
- package/workspace-snapshot/files/src/observability/local-state.ts +142 -0
- package/workspace-snapshot/files/src/observability/package-config.ts +180 -0
- package/workspace-snapshot/files/src/observability/posthog-dashboard-contract.ts +277 -0
- package/workspace-snapshot/files/src/observability/privacy-schema.ts +229 -0
- package/workspace-snapshot/files/src/observability/product-error-messages.ts +19 -0
- package/workspace-snapshot/files/src/observability/product-errors.ts +139 -0
- package/workspace-snapshot/files/src/observability/provisioning-analytics.ts +28 -0
- package/workspace-snapshot/files/src/observability/redaction.ts +85 -0
- package/workspace-snapshot/files/src/observability/runtime-eligibility.ts +50 -0
- package/workspace-snapshot/files/src/observability/sentry-outbound-privacy.ts +216 -0
- package/workspace-snapshot/files/src/observability/session-dedupe.ts +73 -0
- package/workspace-snapshot/files/src/observability/session-handoff.ts +47 -0
- package/workspace-snapshot/files/src/observability/transport-lifecycle.ts +93 -0
- package/workspace-snapshot/files/src/observability/types.ts +265 -0
- package/workspace-snapshot/files/src/p-dev/cli.ts +1 -1
- package/workspace-snapshot/files/src/p-dev/git-object-plumbing.ts +139 -14
- package/workspace-snapshot/files/src/p-dev/launch.ts +93 -14
- package/workspace-snapshot/files/src/p-dev/main.ts +12 -1
- package/workspace-snapshot/files/src/p-dev/package-paths.ts +72 -2
- package/workspace-snapshot/files/src/p-dev/workspace-snapshot-generator.ts +21 -0
- package/workspace-snapshot/files/src/p-dev/workspace-snapshot-manifest.ts +53 -0
- package/workspace-snapshot/files/src/p-dev/workspace-snapshot-types.ts +8 -0
- package/workspace-snapshot/files/src/preview/preview-capability.ts +21 -0
- package/workspace-snapshot/files/src/product/initialization-state.ts +65 -0
- package/workspace-snapshot/files/src/product/product-marker.ts +76 -0
- package/workspace-snapshot/files/src/product/read-product-marker.ts +63 -0
- package/workspace-snapshot/files/src/prompts/builder.ts +31 -1
- package/workspace-snapshot/files/src/prompts/implementation.md +6 -0
- package/workspace-snapshot/files/src/prompts/integration-repair.md +6 -0
- package/workspace-snapshot/files/src/prompts/planning.md +8 -0
- package/workspace-snapshot/files/src/prompts/revision.md +7 -0
- package/workspace-snapshot/files/src/resolver/errors.ts +3 -1
- package/workspace-snapshot/files/src/resolver/target-repo.ts +60 -1
- package/workspace-snapshot/files/src/runner/builder-thread-acquire.ts +321 -0
- package/workspace-snapshot/files/src/runner/builder-thread-evidence.ts +40 -0
- package/workspace-snapshot/files/src/runner/builder-thread-idempotency.ts +27 -0
- package/workspace-snapshot/files/src/runner/builder-thread-lineage-errors.ts +23 -0
- package/workspace-snapshot/files/src/runner/builder-thread-lineage.ts +555 -0
- package/workspace-snapshot/files/src/runner/builder-thread-types.ts +41 -0
- package/workspace-snapshot/files/src/runner/delivery-dedup.ts +78 -0
- package/workspace-snapshot/files/src/runner/failure-finalization.ts +234 -0
- package/workspace-snapshot/files/src/runner/fixture.ts +6 -1
- package/workspace-snapshot/files/src/runner/phases/handoff.ts +74 -46
- package/workspace-snapshot/files/src/runner/phases/implementation.ts +174 -28
- package/workspace-snapshot/files/src/runner/phases/integration-repair.ts +123 -7
- package/workspace-snapshot/files/src/runner/phases/merge.ts +145 -67
- package/workspace-snapshot/files/src/runner/phases/planning.ts +50 -7
- package/workspace-snapshot/files/src/runner/phases/production-sync.ts +37 -4
- package/workspace-snapshot/files/src/runner/phases/revision.ts +130 -44
- package/workspace-snapshot/files/src/runner/preflight.ts +134 -7
- package/workspace-snapshot/files/src/runner/resolve-route.ts +29 -0
- package/workspace-snapshot/files/src/runner/run-generation.ts +21 -0
- package/workspace-snapshot/files/src/runner/uninitialized-product-routing.ts +121 -0
- package/workspace-snapshot/files/src/setup/config-builder.ts +14 -0
- package/workspace-snapshot/files/src/setup/control-plane-readiness.ts +92 -18
- package/workspace-snapshot/files/src/setup/control-plane-setup-state.ts +61 -5
- package/workspace-snapshot/files/src/setup/control-plane-state-lock.ts +103 -0
- package/workspace-snapshot/files/src/setup/control-plane-types.ts +100 -1
- package/workspace-snapshot/files/src/setup/first-run-readiness.ts +9 -2
- package/workspace-snapshot/files/src/setup/git-askpass-credentials.ts +80 -0
- package/workspace-snapshot/files/src/setup/github-dispatch-token.ts +34 -3
- package/workspace-snapshot/files/src/setup/github-remote-provider.ts +78 -2
- package/workspace-snapshot/files/src/setup/github-remote-setup-live.ts +113 -11
- package/workspace-snapshot/files/src/setup/github-repository-name.ts +63 -0
- package/workspace-snapshot/files/src/setup/github-target-repository-provider-live.ts +323 -0
- package/workspace-snapshot/files/src/setup/github-target-repository-provider-mock.ts +284 -0
- package/workspace-snapshot/files/src/setup/github-target-repository-provider.ts +86 -0
- package/workspace-snapshot/files/src/setup/github-workflow-permissions.ts +2 -1
- package/workspace-snapshot/files/src/setup/gui-view-model.ts +10 -0
- package/workspace-snapshot/files/src/setup/harness-dispatch-repo.ts +157 -25
- package/workspace-snapshot/files/src/setup/harness-managed-repo-marker.ts +24 -0
- package/workspace-snapshot/files/src/setup/harness-provisioning-last-run.ts +152 -0
- package/workspace-snapshot/files/src/setup/harness-provisioning-pending-state.ts +3 -0
- package/workspace-snapshot/files/src/setup/harness-provisioning-progress.ts +213 -0
- package/workspace-snapshot/files/src/setup/harness-repo-provisioning.ts +135 -6
- package/workspace-snapshot/files/src/setup/harness-snapshot-git-transport.ts +846 -0
- package/workspace-snapshot/files/src/setup/harness-snapshot-provisioning-helpers.ts +4 -1
- package/workspace-snapshot/files/src/setup/harness-snapshot-provisioning.ts +352 -81
- package/workspace-snapshot/files/src/setup/harness-step-readiness-server.ts +39 -0
- package/workspace-snapshot/files/src/setup/harness-step-readiness.ts +72 -0
- package/workspace-snapshot/files/src/setup/harness-workspace-snapshot-loader.ts +59 -12
- package/workspace-snapshot/files/src/setup/initial-setup-lifecycle.ts +181 -0
- package/workspace-snapshot/files/src/setup/linear-category-labels.ts +18 -0
- package/workspace-snapshot/files/src/setup/linear-setup-apply.ts +97 -17
- package/workspace-snapshot/files/src/setup/linear-setup-client.ts +96 -0
- package/workspace-snapshot/files/src/setup/linear-setup-plan.ts +105 -11
- package/workspace-snapshot/files/src/setup/linear-setup-progress.ts +113 -0
- package/workspace-snapshot/files/src/setup/linear-status-contract.ts +36 -77
- package/workspace-snapshot/files/src/setup/linear-workflow-status-repair.ts +278 -0
- package/workspace-snapshot/files/src/setup/linear-workspace-apply.ts +309 -0
- package/workspace-snapshot/files/src/setup/linear-workspace-drift.ts +4 -0
- package/workspace-snapshot/files/src/setup/linear-workspace-migration.ts +314 -0
- package/workspace-snapshot/files/src/setup/linear-workspace-plan.ts +407 -0
- package/workspace-snapshot/files/src/setup/local-readiness-checks.ts +163 -31
- package/workspace-snapshot/files/src/setup/mock-target-workflow-finalization.ts +30 -4
- package/workspace-snapshot/files/src/setup/packaged-default-route.ts +29 -0
- package/workspace-snapshot/files/src/setup/release-sync-managed-runner.ts +604 -0
- package/workspace-snapshot/files/src/setup/remote-apply-actions.ts +33 -0
- package/workspace-snapshot/files/src/setup/runner-upgrade-canary-dispatch.ts +69 -0
- package/workspace-snapshot/files/src/setup/runner-upgrade-canary.ts +213 -0
- package/workspace-snapshot/files/src/setup/runner-upgrade-evidence.ts +30 -0
- package/workspace-snapshot/files/src/setup/runner-upgrade-pending-state.ts +116 -0
- package/workspace-snapshot/files/src/setup/runner-upgrade-progress.ts +150 -0
- package/workspace-snapshot/files/src/setup/runner-upgrade-provider-live.ts +520 -0
- package/workspace-snapshot/files/src/setup/runner-upgrade-provider.ts +852 -0
- package/workspace-snapshot/files/src/setup/runner-upgrade-status-cache.ts +61 -0
- package/workspace-snapshot/files/src/setup/runner-upgrade-three-way.ts +162 -0
- package/workspace-snapshot/files/src/setup/runner-upgrade-timeouts.ts +386 -0
- package/workspace-snapshot/files/src/setup/runner-upgrade-types.ts +176 -0
- package/workspace-snapshot/files/src/setup/runner-upgrade-worker.ts +149 -0
- package/workspace-snapshot/files/src/setup/runner-upgrade.ts +1926 -0
- package/workspace-snapshot/files/src/setup/service-verification.ts +160 -20
- package/workspace-snapshot/files/src/setup/settings-config-patch.ts +461 -0
- package/workspace-snapshot/files/src/setup/setup-state.ts +12 -1
- package/workspace-snapshot/files/src/setup/step6-automatic-control-state.ts +59 -0
- package/workspace-snapshot/files/src/setup/sync-harness-config-cloud.ts +128 -0
- package/workspace-snapshot/files/src/setup/target-repo-provisioning-pending-state.ts +160 -0
- package/workspace-snapshot/files/src/setup/target-repo-provisioning.ts +704 -0
- package/workspace-snapshot/files/src/setup/target-workflow-finalization-progress.ts +166 -0
- package/workspace-snapshot/files/src/setup/target-workflow-finalization-types.ts +128 -1
- package/workspace-snapshot/files/src/setup/target-workflow-finalization.ts +806 -15
- package/workspace-snapshot/files/src/setup/target-workflow-setup.ts +2 -0
- package/workspace-snapshot/files/src/setup/test-only-runner-upgrade-provider.ts +51 -0
- package/workspace-snapshot/files/src/setup/test-only-target-repo-provisioning-provider.ts +47 -0
- package/workspace-snapshot/files/src/setup/vercel-bridge-artifact.ts +174 -0
- package/workspace-snapshot/files/src/setup/vercel-bridge-deploy.ts +217 -0
- package/workspace-snapshot/files/src/setup/vercel-bridge-diagnostics.ts +1 -1
- package/workspace-snapshot/files/src/setup/vercel-bridge-options.ts +4 -0
- package/workspace-snapshot/files/src/setup/vercel-bridge-orchestration-summary.ts +46 -0
- package/workspace-snapshot/files/src/setup/vercel-bridge-project-marker.ts +8 -0
- package/workspace-snapshot/files/src/setup/vercel-bridge-readiness.ts +2 -1
- package/workspace-snapshot/files/src/setup/vercel-bridge-redeploy-normalize.ts +244 -0
- package/workspace-snapshot/files/src/setup/vercel-bridge-redeploy-poll.ts +406 -190
- package/workspace-snapshot/files/src/setup/vercel-bridge-redeploy-state.ts +3 -0
- package/workspace-snapshot/files/src/setup/vercel-bridge-structured-log.ts +5 -0
- package/workspace-snapshot/files/src/setup/vercel-project-name.ts +38 -0
- package/workspace-snapshot/files/src/setup/vercel-setup-apply.ts +386 -40
- package/workspace-snapshot/files/src/setup/vercel-setup-client.ts +97 -3
- package/workspace-snapshot/files/src/setup/vercel-setup-plan.ts +84 -14
- package/workspace-snapshot/files/src/setup/vercel-setup-summary.ts +10 -0
- package/workspace-snapshot/files/src/setup/workflow-config-snapshot.ts +22 -0
- package/workspace-snapshot/files/src/setup/workflow-install-branch-recovery.ts +660 -0
- package/workspace-snapshot/files/src/setup/workflow-install-merge-errors.ts +70 -20
- package/workspace-snapshot/files/src/setup/workflow-install-merge-gate.ts +25 -0
- package/workspace-snapshot/files/src/setup/workflow-model-save-queue.ts +251 -0
- package/workspace-snapshot/files/src/setup/workflow-model-sync-lock.ts +103 -0
- package/workspace-snapshot/files/src/setup/workflow-model-sync.ts +259 -0
- package/workspace-snapshot/files/src/setup/workflow-models-sync-evidence.ts +34 -0
- package/workspace-snapshot/files/src/types/parsed-issue.ts +9 -0
- package/workspace-snapshot/files/src/types/run.ts +44 -1
- package/workspace-snapshot/files/src/validate/issue.ts +52 -6
- package/workspace-snapshot/files/src/validate/types.ts +3 -0
- package/workspace-snapshot/files/src/webhook/dispatch-statuses.ts +8 -16
- package/workspace-snapshot/files/src/webhook/filter.ts +24 -1
- package/workspace-snapshot/files/src/webhook/handle-linear-webhook.ts +15 -1
- package/workspace-snapshot/files/src/webhook/parse-linear-issue-event.ts +4 -0
- package/workspace-snapshot/files/src/webhook/types.ts +4 -1
- package/workspace-snapshot/files/src/workflow/canonical-product-development-workflow.ts +584 -0
- package/workspace-snapshot/files/src/workflow/canonical-workflow-gate.ts +255 -0
- package/workspace-snapshot/files/src/workflow/canonical-workflow-validation.ts +297 -0
- package/workspace-snapshot/files/src/workflow/finalize-harness-run.ts +83 -0
- package/workspace-snapshot/files/src/workflow/preflight-canonical.ts +40 -0
- package/workspace-snapshot/files/src/workflow/write-fallback-manifest.ts +39 -0
- package/workspace-snapshot/files/src/workflow-page/bootstrap.ts +277 -0
- package/workspace-snapshot/files/src/workflow-page/catalog-validation.ts +158 -0
- package/workspace-snapshot/files/src/workflow-page/constants.ts +22 -0
- package/workspace-snapshot/files/src/workflow-page/current-workflow.ts +225 -0
- package/workspace-snapshot/files/src/workflow-page/fingerprint.ts +9 -0
- package/workspace-snapshot/files/src/workflow-page/fixture-definition.ts +16 -0
- package/workspace-snapshot/files/src/workflow-page/fixture-role-models.ts +50 -0
- package/workspace-snapshot/files/src/workflow-page/fixtures/basic-current-workflow.ts +39 -0
- package/workspace-snapshot/files/src/workflow-page/fixtures/branching-pr-review.ts +11 -0
- package/workspace-snapshot/files/src/workflow-page/fixtures/canonical-violations.ts +50 -0
- package/workspace-snapshot/files/src/workflow-page/fixtures/credential-errors.ts +13 -0
- package/workspace-snapshot/files/src/workflow-page/fixtures/empty-linear-statuses.ts +10 -0
- package/workspace-snapshot/files/src/workflow-page/fixtures/hundred-node-performance.ts +23 -0
- package/workspace-snapshot/files/src/workflow-page/fixtures/index.ts +37 -0
- package/workspace-snapshot/files/src/workflow-page/fixtures/model-catalog-snapshot.ts +34 -0
- package/workspace-snapshot/files/src/workflow-page/fixtures/workflow-scopes.ts +18 -0
- package/workspace-snapshot/files/src/workflow-page/linear-status-source.ts +65 -0
- package/workspace-snapshot/files/src/workflow-page/model-catalog-lookup.ts +8 -0
- package/workspace-snapshot/files/src/workflow-page/model-catalog-utils.ts +83 -0
- package/workspace-snapshot/files/src/workflow-page/model-catalog.ts +60 -0
- package/workspace-snapshot/files/src/workflow-page/scope-branches.ts +27 -0
- package/workspace-snapshot/files/src/workflow-page/source-context.ts +91 -0
- package/workspace-snapshot/files/src/workflow-page/types.ts +134 -0
- package/workspace-snapshot/files/src/workflow-page/workflow-scopes.ts +73 -0
- package/workspace-snapshot/files/tests/agents/cursor-provider.test.ts +41 -29
- package/workspace-snapshot/files/tests/artifacts/redact.test.ts +11 -0
- package/workspace-snapshot/files/tests/cli/json-out-manifest.test.ts +96 -0
- package/workspace-snapshot/files/tests/config/cloud-config-fingerprint.test.ts +62 -0
- package/workspace-snapshot/files/tests/config/legacy-linear-top-level.test.ts +86 -0
- package/workspace-snapshot/files/tests/config/onboarding-cloud-runner-contract.test.ts +139 -0
- package/workspace-snapshot/files/tests/config/resolve-linear-workspace.test.ts +314 -0
- package/workspace-snapshot/files/tests/config/role-models.test.ts +35 -0
- package/workspace-snapshot/files/tests/cursor/agent-factory.test.ts +124 -0
- package/workspace-snapshot/files/tests/cursor/role-models.test.ts +52 -0
- package/workspace-snapshot/files/tests/cursor/run-observer.test.ts +36 -0
- package/workspace-snapshot/files/tests/fixtures/workflows/harness-auto-runner-with-production-sync.yml +36 -11
- package/workspace-snapshot/files/tests/github/auth-verification-retry.test.ts +141 -0
- package/workspace-snapshot/files/tests/gui/app-shell-settings-menu.test.ts +115 -0
- package/workspace-snapshot/files/tests/gui/configure-fix-loop.test.ts +50 -37
- package/workspace-snapshot/files/tests/gui/configure-navigation-contract.test.ts +107 -0
- package/workspace-snapshot/files/tests/gui/configure-target-repo-create.test.ts +103 -0
- package/workspace-snapshot/files/tests/gui/configure-workflow-readiness.test.ts +117 -0
- package/workspace-snapshot/files/tests/gui/data-sharing-preferences.test.ts +43 -0
- package/workspace-snapshot/files/tests/gui/design-system.test.ts +65 -5
- package/workspace-snapshot/files/tests/gui/guided-linear-workspace-card.test.ts +168 -0
- package/workspace-snapshot/files/tests/gui/guided-operation-ux.test.ts +100 -0
- package/workspace-snapshot/files/tests/gui/guided-setup-progress.test.ts +267 -0
- package/workspace-snapshot/files/tests/gui/guided-setup.test.ts +60 -0
- package/workspace-snapshot/files/tests/gui/guided-target-workflow-polling.test.ts +38 -0
- package/workspace-snapshot/files/tests/gui/linear-association-draft.test.ts +93 -0
- package/workspace-snapshot/files/tests/gui/local-readiness-stream.test.ts +154 -0
- package/workspace-snapshot/files/tests/gui/local-readiness-visual-queue.test.ts +69 -0
- package/workspace-snapshot/files/tests/gui/local-readiness-workspace.test.ts +299 -0
- package/workspace-snapshot/files/tests/gui/m6-configure-boundaries.test.ts +177 -35
- package/workspace-snapshot/files/tests/gui/observability-preferences-route.test.ts +343 -0
- package/workspace-snapshot/files/tests/gui/observability-request-guard.test.ts +177 -0
- package/workspace-snapshot/files/tests/gui/packaged-harness-cloud-secrets-routes.test.ts +16 -0
- package/workspace-snapshot/files/tests/gui/packaged-runner-upgrade-routes.test.ts +532 -0
- package/workspace-snapshot/files/tests/gui/packaged-target-repo-provisioning-routes.test.ts +108 -0
- package/workspace-snapshot/files/tests/gui/repo-root.test.ts +55 -0
- package/workspace-snapshot/files/tests/gui/runner-upgrade-settings-card.test.ts +97 -0
- package/workspace-snapshot/files/tests/gui/settings-cursor.test.ts +39 -0
- package/workspace-snapshot/files/tests/gui/settings-deployments-autoload.test.ts +57 -0
- package/workspace-snapshot/files/tests/gui/settings-mutation-editors.test.ts +154 -0
- package/workspace-snapshot/files/tests/gui/settings-navigation.test.ts +95 -0
- package/workspace-snapshot/files/tests/gui/settings-repositories-page.test.ts +54 -0
- package/workspace-snapshot/files/tests/gui/step7-settings-polish.test.ts +180 -0
- package/workspace-snapshot/files/tests/gui/target-workflow-pr-card.test.ts +68 -0
- package/workspace-snapshot/files/tests/gui/vercel-bridge-polling-ui.test.ts +50 -1
- package/workspace-snapshot/files/tests/gui/verification-state.test.ts +45 -0
- package/workspace-snapshot/files/tests/gui/workflow-bootstrap-route.test.ts +78 -0
- package/workspace-snapshot/files/tests/gui/workflow-model-autosave.test.ts +36 -0
- package/workspace-snapshot/files/tests/gui/workflow-source-ui.test.ts +22 -0
- package/workspace-snapshot/files/tests/gui/workflow-violation-messages.test.ts +39 -0
- package/workspace-snapshot/files/tests/gui/workflow-workspace.test.ts +188 -0
- package/workspace-snapshot/files/tests/linear/markers.test.ts +29 -0
- package/workspace-snapshot/files/tests/linear/run-status-comment.test.ts +143 -0
- package/workspace-snapshot/files/tests/observability/analytics-schemas.test.ts +74 -0
- package/workspace-snapshot/files/tests/observability/context.test.ts +132 -0
- package/workspace-snapshot/files/tests/observability/fatal-process.test.ts +106 -0
- package/workspace-snapshot/files/tests/observability/foundation.test.ts +229 -0
- package/workspace-snapshot/files/tests/observability/instrumentation-dev-startup.test.ts +79 -0
- package/workspace-snapshot/files/tests/observability/lifecycle.test.ts +348 -0
- package/workspace-snapshot/files/tests/observability/package-config.test.ts +66 -0
- package/workspace-snapshot/files/tests/observability/packaged-config.test.ts +47 -0
- package/workspace-snapshot/files/tests/observability/posthog-dashboard-contract.test.ts +133 -0
- package/workspace-snapshot/files/tests/observability/posthog-envelope.test.ts +167 -0
- package/workspace-snapshot/files/tests/observability/posthog-shutdown.test.ts +68 -0
- package/workspace-snapshot/files/tests/observability/privacy-schema.test.ts +83 -0
- package/workspace-snapshot/files/tests/observability/provisioning-analytics.test.ts +54 -0
- package/workspace-snapshot/files/tests/observability/public-config-enablement.test.ts +48 -0
- package/workspace-snapshot/files/tests/observability/sentry-envelope.test.ts +289 -0
- package/workspace-snapshot/files/tests/observability/sentry-outbound-privacy.test.ts +141 -0
- package/workspace-snapshot/files/tests/observability/sentry-privacy-assertions.ts +52 -0
- package/workspace-snapshot/files/tests/observability/sentry-server-only.test.ts +68 -0
- package/workspace-snapshot/files/tests/observability/sentry-transport.test.ts +88 -0
- package/workspace-snapshot/files/tests/observability/session-dedupe.test.ts +117 -0
- package/workspace-snapshot/files/tests/observability/snapshot-exclusion.test.ts +9 -0
- package/workspace-snapshot/files/tests/p-dev/cli.test.ts +2 -2
- package/workspace-snapshot/files/tests/p-dev/git-object-plumbing.test.ts +49 -0
- package/workspace-snapshot/files/tests/p-dev/installed-tarball-gui.test.ts +475 -0
- package/workspace-snapshot/files/tests/p-dev/installed-tarball-loopback.test.ts +986 -0
- package/workspace-snapshot/files/tests/p-dev/installed-tarball-snapshot-provisioning.test.ts +361 -0
- package/workspace-snapshot/files/tests/p-dev/launch.test.ts +55 -3
- package/workspace-snapshot/files/tests/p-dev/package-manifest.test.ts +3 -1
- package/workspace-snapshot/files/tests/p-dev/package-packed-artifact.test.ts +115 -10
- package/workspace-snapshot/files/tests/p-dev/package-paths.test.ts +51 -0
- package/workspace-snapshot/files/tests/p-dev/package-version.test.ts +1 -1
- package/workspace-snapshot/files/tests/p-dev/packaged-workspace-setup.test.ts +1 -1
- package/workspace-snapshot/files/tests/p-dev/workspace-snapshot-policy.test.ts +6 -0
- package/workspace-snapshot/files/tests/product/initialization-state.test.ts +78 -0
- package/workspace-snapshot/files/tests/product/read-product-marker.test.ts +46 -0
- package/workspace-snapshot/files/tests/prompts/builder.test.ts +1 -0
- package/workspace-snapshot/files/tests/prompts/implementation-builder.test.ts +1 -0
- package/workspace-snapshot/files/tests/prompts/issue-intake-chatgpt.test.ts +1 -0
- package/workspace-snapshot/files/tests/resolver/target-repo.test.ts +66 -0
- package/workspace-snapshot/files/tests/runner/builder-thread-acquire.test.ts +288 -0
- package/workspace-snapshot/files/tests/runner/builder-thread-idempotency.test.ts +42 -0
- package/workspace-snapshot/files/tests/runner/builder-thread-lineage.test.ts +206 -0
- package/workspace-snapshot/files/tests/runner/delivery-dedup.test.ts +53 -0
- package/workspace-snapshot/files/tests/runner/failure-finalization-runner-upgrade.test.ts +112 -0
- package/workspace-snapshot/files/tests/runner/failure-finalization.test.ts +203 -0
- package/workspace-snapshot/files/tests/runner/handoff.test.ts +66 -0
- package/workspace-snapshot/files/tests/runner/idempotency-handoff.test.ts +1 -0
- package/workspace-snapshot/files/tests/runner/idempotency-implementation.test.ts +1 -0
- package/workspace-snapshot/files/tests/runner/idempotency-revision.test.ts +1 -0
- package/workspace-snapshot/files/tests/runner/idempotency.test.ts +1 -0
- package/workspace-snapshot/files/tests/runner/implementation.test.ts +24 -5
- package/workspace-snapshot/files/tests/runner/integration-repair.test.ts +21 -6
- package/workspace-snapshot/files/tests/runner/merge-linear-metadata.test.ts +90 -0
- package/workspace-snapshot/files/tests/runner/merge.test.ts +79 -0
- package/workspace-snapshot/files/tests/runner/planning.test.ts +9 -0
- package/workspace-snapshot/files/tests/runner/preflight-canonical.test.ts +73 -0
- package/workspace-snapshot/files/tests/runner/preflight-fail-closed.integration.test.ts +418 -0
- package/workspace-snapshot/files/tests/runner/preview-capability.test.ts +46 -0
- package/workspace-snapshot/files/tests/runner/resolve-route.test.ts +6 -0
- package/workspace-snapshot/files/tests/runner/revision.test.ts +117 -9
- package/workspace-snapshot/files/tests/runner/uninitialized-product-routing.test.ts +120 -0
- package/workspace-snapshot/files/tests/setup/control-plane-readiness.test.ts +86 -0
- package/workspace-snapshot/files/tests/setup/control-plane-state-lock.test.ts +67 -0
- package/workspace-snapshot/files/tests/setup/first-run-readiness.test.ts +134 -2
- package/workspace-snapshot/files/tests/setup/github-dispatch-token.test.ts +49 -1
- package/workspace-snapshot/files/tests/setup/github-repository-name.test.ts +28 -0
- package/workspace-snapshot/files/tests/setup/gui-remote-storage.test.ts +0 -2
- package/workspace-snapshot/files/tests/setup/harness-dispatch-repo.test.ts +292 -3
- package/workspace-snapshot/files/tests/setup/harness-snapshot-bulk-fixture.ts +72 -0
- package/workspace-snapshot/files/tests/setup/harness-snapshot-bulk-installed.test.ts +93 -0
- package/workspace-snapshot/files/tests/setup/harness-snapshot-git-transport.test.ts +518 -0
- package/workspace-snapshot/files/tests/setup/harness-step-readiness.test.ts +145 -0
- package/workspace-snapshot/files/tests/setup/harness-workspace-snapshot-loader.test.ts +142 -0
- package/workspace-snapshot/files/tests/setup/initial-setup-lifecycle.test.ts +220 -0
- package/workspace-snapshot/files/tests/setup/linear-setup-apply.test.ts +7 -4
- package/workspace-snapshot/files/tests/setup/linear-setup-plan.test.ts +46 -3
- package/workspace-snapshot/files/tests/setup/linear-workflow-status-repair.test.ts +314 -0
- package/workspace-snapshot/files/tests/setup/linear-workspace-migration.test.ts +173 -0
- package/workspace-snapshot/files/tests/setup/linear-workspace-plan.test.ts +247 -0
- package/workspace-snapshot/files/tests/setup/local-apply-actions.test.ts +13 -0
- package/workspace-snapshot/files/tests/setup/local-readiness-checks.test.ts +25 -1
- package/workspace-snapshot/files/tests/setup/mock-canonical-preflight.ts +14 -0
- package/workspace-snapshot/files/tests/setup/packaged-default-route.test.ts +85 -0
- package/workspace-snapshot/files/tests/setup/release-sync-managed-runner.test.ts +385 -0
- package/workspace-snapshot/files/tests/setup/runner-upgrade-canary.test.ts +201 -0
- package/workspace-snapshot/files/tests/setup/runner-upgrade-three-way.test.ts +226 -0
- package/workspace-snapshot/files/tests/setup/runner-upgrade.test.ts +702 -0
- package/workspace-snapshot/files/tests/setup/service-verification.test.ts +197 -18
- package/workspace-snapshot/files/tests/setup/settings-config-patch.test.ts +280 -0
- package/workspace-snapshot/files/tests/setup/setup-state.test.ts +47 -0
- package/workspace-snapshot/files/tests/setup/step6-automatic-apply-outcome.test.ts +1 -0
- package/workspace-snapshot/files/tests/setup/step6-automatic-control-state.test.ts +73 -0
- package/workspace-snapshot/files/tests/setup/target-repo-provisioning.test.ts +307 -0
- package/workspace-snapshot/files/tests/setup/target-workflow-finalization-progress.test.ts +71 -0
- package/workspace-snapshot/files/tests/setup/target-workflow-finalization-step-github.test.ts +240 -0
- package/workspace-snapshot/files/tests/setup/vercel-bridge-redeploy-normalize.test.ts +106 -0
- package/workspace-snapshot/files/tests/setup/vercel-bridge-redeploy-poll.test.ts +78 -4
- package/workspace-snapshot/files/tests/setup/vercel-setup-apply.test.ts +278 -3
- package/workspace-snapshot/files/tests/setup/vercel-setup-client.test.ts +76 -0
- package/workspace-snapshot/files/tests/setup/vercel-setup-plan.test.ts +58 -0
- package/workspace-snapshot/files/tests/setup/workflow-install-branch-recovery-commit.test.ts +144 -0
- package/workspace-snapshot/files/tests/setup/workflow-install-branch-recovery.test.ts +133 -0
- package/workspace-snapshot/files/tests/setup/workflow-install-merge-errors.test.ts +66 -1
- package/workspace-snapshot/files/tests/setup/workflow-install-merge-gate.test.ts +58 -0
- package/workspace-snapshot/files/tests/setup/workflow-model-save-queue.test.ts +139 -0
- package/workspace-snapshot/files/tests/setup/workflow-model-sync.test.ts +141 -0
- package/workspace-snapshot/files/tests/validate-issue/uninitialized-product.test.ts +108 -0
- package/workspace-snapshot/files/tests/webhook/filter.test.ts +55 -0
- package/workspace-snapshot/files/tests/webhook/harness-auto-runner-workflow.test.ts +7 -0
- package/workspace-snapshot/files/tests/workflow/canonical-product-development-workflow.test.ts +193 -0
- package/workspace-snapshot/files/tests/workflow/canonical-workflow-validation.test.ts +202 -0
- package/workspace-snapshot/files/tests/workflow/workflow-shell-safety.test.ts +5 -2
- package/workspace-snapshot/files/vitest.config.ts +5 -0
- package/workspace-snapshot/manifest.json +3604 -836
- package/workspace-snapshot/object-pack/snapshot-2735d42c938e514f27a9b2aaf5fa2fcc68019075.idx +0 -0
- package/workspace-snapshot/object-pack/snapshot-2735d42c938e514f27a9b2aaf5fa2fcc68019075.pack +0 -0
- package/gui/.next/server/app/index.html +0 -1
- package/gui/.next/server/app/index.meta +0 -9
- package/gui/.next/server/app/index.rsc +0 -18
- package/gui/.next/server/chunks/200.js +0 -1
- package/gui/.next/server/chunks/477.js +0 -16
- package/gui/.next/server/chunks/585.js +0 -1
- package/gui/.next/server/chunks/647.js +0 -82
- package/gui/.next/server/chunks/711.js +0 -1
- package/gui/.next/server/chunks/900.js +0 -1
- package/gui/.next/server/chunks/901.js +0 -22
- package/gui/.next/static/ZGJuemeaiW4yT7CTlmjdG/_buildManifest.js +0 -1
- package/gui/.next/static/chunks/661-5fc9351358e2f084.js +0 -1
- package/gui/.next/static/chunks/app/_not-found/page-f15332c94524c284.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/apply-connect-services/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/apply-harness-repo-provisioning/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/apply-harness-secrets/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/apply-linear-setup/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/apply-local-files/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/apply-target-workflow/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/apply-vercel-bridge/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/finalize-target-workflow/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/harness-provisioning-summary/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/linear-options/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/linear-summary/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/local-readiness/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/manual-harness-secret-values/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/preview-connect-services/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/preview-harness-repo-provisioning/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/preview-harness-secrets/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/preview-linear-setup/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/preview-local-files/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/preview-target-workflow/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/preview-vercel-bridge/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/remote-summary/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/summary/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/vercel-bridge-options/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/vercel-bridge-redeploy-status/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/vercel-summary/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/verify-harness-repo/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/verify-service/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/api/setup/verify-target-repo/route-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/layout-10445a363bff6a38.js +0 -1
- package/gui/.next/static/chunks/app/page-979ec1702bd9938a.js +0 -1
- package/gui/.next/static/chunks/app/settings/configure/page-25b2288ace2949a1.js +0 -1
- package/gui/.next/static/chunks/framework-7318ce553e854ad6.js +0 -1
- package/gui/.next/static/chunks/main-app-732547e2b1a794b6.js +0 -1
- package/gui/.next/static/chunks/main-f7a784f5852cbbd1.js +0 -1
- package/gui/.next/static/chunks/pages/_error-bda15e7831eec981.js +0 -1
- package/gui/.next/static/css/781f3c93b6d7425a.css +0 -3
- package/workspace-snapshot/files/apps/gui/components/custom/setup-dashboard.tsx +0 -124
- package/workspace-snapshot/files/apps/gui/components/custom/setup-readonly-sections.tsx +0 -210
- /package/gui/.next/static/{ZGJuemeaiW4yT7CTlmjdG → wM7YWpWgyTcGc7H5h1u7U}/_ssgManifest.js +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
(()=>{var a={};a.id=217,a.ids=[217],a.modules={44:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{GracefulDegradeBoundary:function(){return f},default:function(){return g}});let d=c(78157),e=c(31768);class f extends e.Component{static getDerivedStateFromError(a){return{hasError:!0}}componentDidMount(){let a=this.htmlRef.current;this.state.hasError&&a&&Object.entries(this.htmlAttributes).forEach(b=>{let[c,d]=b;a.setAttribute(c,d)})}render(){let{hasError:a}=this.state;return a?(0,d.jsx)("html",{ref:this.htmlRef,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:this.rootHtml}}):this.props.children}constructor(a){super(a),this.state={hasError:!1},this.rootHtml="",this.htmlAttributes={},this.htmlRef=(0,e.createRef)()}}let g=f;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1067:(a,b,c)=>{"use strict";c.d(b,{ThemeToggle:()=>k});var d=c(78157),e=c(81744);let f=(0,e.A)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),g=(0,e.A)("moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);var h=c(26556),i=c(31768),j=c(80678);function k(){let{resolvedTheme:a,setTheme:b}=(0,h.D)(),[c,e]=(0,i.useState)(!1);if(!c)return(0,d.jsx)(j.$,{type:"button",variant:"ghost",size:"sm",className:"h-8 w-8 px-0",disabled:!0,children:(0,d.jsx)("span",{className:"sr-only",children:"Toggle theme"})});let k="dark"===a;return(0,d.jsxs)(j.$,{type:"button",variant:"ghost",size:"sm",className:"inline-flex h-8 items-center gap-2 px-2",onClick:()=>b(k?"light":"dark"),children:[k?(0,d.jsx)(f,{className:"h-4 w-4","aria-hidden":!0}):(0,d.jsx)(g,{className:"h-4 w-4","aria-hidden":!0}),(0,d.jsx)("span",{className:"text-sm",children:k?"Light":"Dark"}),(0,d.jsx)("span",{className:"sr-only",children:"Toggle theme"})]})}},1667:a=>{"use strict";a.exports=JSON.parse('{"name":"dotenv","version":"16.6.1","description":"Loads environment variables from .env file","main":"lib/main.js","types":"lib/main.d.ts","exports":{".":{"types":"./lib/main.d.ts","require":"./lib/main.js","default":"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},"scripts":{"dts-check":"tsc --project tests/types/tsconfig.json","lint":"standard","pretest":"npm run lint && npm run dts-check","test":"tap run --allow-empty-coverage --disable-coverage --timeout=60000","test:coverage":"tap run --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov","prerelease":"npm test","release":"standard-version"},"repository":{"type":"git","url":"git://github.com/motdotla/dotenv.git"},"homepage":"https://github.com/motdotla/dotenv#readme","funding":"https://dotenvx.com","keywords":["dotenv","env",".env","environment","variables","config","settings"],"readmeFilename":"README.md","license":"BSD-2-Clause","devDependencies":{"@types/node":"^18.11.3","decache":"^4.6.2","sinon":"^14.0.1","standard":"^17.0.0","standard-version":"^9.5.0","tap":"^19.2.0","typescript":"^4.8.4"},"engines":{"node":">=12"},"browser":{"fs":false}}')},2173:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{addSearchParamsToPageSegments:function(){return m},handleAliasedPrefetchEntry:function(){return l}});let d=c(44859),e=c(25918),f=c(24848),g=c(75497),h=c(82521),i=c(68360),j=c(26613),k=c(15426);function l(a,b,c,l,n){let o,p=b.tree,q=b.cache,r=(0,g.createHrefFromUrl)(l),s=[];if("string"==typeof c)return!1;for(let b of c){if(!function a(b){if(!b)return!1;let c=b[2];if(b[3])return!0;for(let b in c)if(a(c[b]))return!0;return!1}(b.seedData))continue;let c=b.tree;c=m(c,Object.fromEntries(l.searchParams));let{seedData:g,isRootRender:j,pathToSegment:n}=b,t=["",...n];c=m(c,Object.fromEntries(l.searchParams));let u=(0,f.applyRouterStatePatchToTree)(t,p,c,r),v=(0,e.createEmptyCacheNode)();if(j&&g){let b=g[1];v.loading=g[3],v.rsc=b,function a(b,c,e,f,g){if(0!==Object.keys(f[1]).length)for(let i in f[1]){let j,k=f[1][i],l=k[0],m=(0,h.createRouterCacheKey)(l),n=null!==g&&void 0!==g[2][i]?g[2][i]:null;if(null!==n){let a=n[1],c=n[3];j={lazyData:null,rsc:l.includes(d.PAGE_SEGMENT_KEY)?null:a,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:c,navigatedAt:b}}else j={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1};let o=c.parallelRoutes.get(i);o?o.set(m,j):c.parallelRoutes.set(i,new Map([[m,j]])),a(b,j,e,k,n)}}(a,v,q,c,g)}else v.rsc=q.rsc,v.prefetchRsc=q.prefetchRsc,v.loading=q.loading,v.parallelRoutes=new Map(q.parallelRoutes),(0,i.fillCacheWithNewSubTreeDataButOnlyLoading)(a,v,q,b);for(let a of(u&&(p=u,q=v,o=!0),(0,k.generateSegmentsFromPatch)(c))){let c=[...b.pathToSegment,...a];c[c.length-1]!==d.DEFAULT_SEGMENT_KEY&&s.push(c)}}return!!o&&(n.patchedTree=p,n.cache=q,n.canonicalUrl=r,n.hashFragment=l.hash,n.scrollableSegments=s,(0,j.handleMutable)(b,n))}function m(a,b){let[c,e,...f]=a;if(c.includes(d.PAGE_SEGMENT_KEY))return[(0,d.addSearchParamsIfPageSegment)(c,b),e,...f];let g={};for(let[a,c]of Object.entries(e))g[a]=m(c,b);return[c,g,...f]}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},3498:(a,b,c)=>{let{createProxy:d}=c(38898);a.exports=d("/Users/weston/Code/agentic-product-development-harness/node_modules/next/dist/client/app-dir/link.js")},3615:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>ay,dynamic:()=>ax});var d=c(5939),e=c(3498),f=c.n(e),g=c(64788);let h={shell:"min-h-screen bg-background",header:"border-b border-border bg-card",headerInner:"mx-auto flex w-full max-w-5xl items-center justify-between px-4 py-4 md:px-6",main:"mx-auto w-full max-w-5xl px-4 py-8 md:px-6 md:py-10"},i=(a=new Map,b=null,c)=>({nextPart:a,validators:b,classGroupId:c}),j=[],k=(a,b,c)=>{if(0==a.length-b)return c.classGroupId;let d=a[b],e=c.nextPart.get(d);if(e){let c=k(a,b+1,e);if(c)return c}let f=c.validators;if(null===f)return;let g=0===b?a.join("-"):a.slice(b).join("-"),h=f.length;for(let a=0;a<h;a++){let b=f[a];if(b.validator(g))return b.classGroupId}},l=(a,b)=>{let c=i();for(let d in a)m(a[d],c,d,b);return c},m=(a,b,c,d)=>{let e=a.length;for(let f=0;f<e;f++)n(a[f],b,c,d)},n=(a,b,c,d)=>"string"==typeof a?void o(a,b,c):"function"==typeof a?void p(a,b,c,d):void q(a,b,c,d),o=(a,b,c)=>{(""===a?b:r(b,a)).classGroupId=c},p=(a,b,c,d)=>{if(s(a))return void m(a(d),b,c,d);null===b.validators&&(b.validators=[]),b.validators.push({classGroupId:c,validator:a})},q=(a,b,c,d)=>{let e=Object.entries(a),f=e.length;for(let a=0;a<f;a++){let[f,g]=e[a];m(g,r(b,f),c,d)}},r=(a,b)=>{let c=a,d=b.split("-"),e=d.length;for(let a=0;a<e;a++){let b=d[a],e=c.nextPart.get(b);e||(e=i(),c.nextPart.set(b,e)),c=e}return c},s=a=>"isThemeGetter"in a&&!0===a.isThemeGetter,t=[],u=(a,b,c,d,e)=>({modifiers:a,hasImportantModifier:b,baseClassName:c,maybePostfixModifierPosition:d,isExternal:e}),v=/\s+/,w=a=>{let b;if("string"==typeof a)return a;let c="";for(let d=0;d<a.length;d++)a[d]&&(b=w(a[d]))&&(c&&(c+=" "),c+=b);return c},x=[],y=a=>{let b=b=>b[a]||x;return b.isThemeGetter=!0,b},z=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,A=/^\((?:(\w[\w-]*):)?(.+)\)$/i,B=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,C=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,D=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,E=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,F=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,G=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,H=a=>B.test(a),I=a=>!!a&&!Number.isNaN(Number(a)),J=a=>!!a&&Number.isInteger(Number(a)),K=a=>a.endsWith("%")&&I(a.slice(0,-1)),L=a=>C.test(a),M=()=>!0,N=a=>D.test(a)&&!E.test(a),O=()=>!1,P=a=>F.test(a),Q=a=>G.test(a),R=a=>!U(a)&&!aa(a),S=a=>a.startsWith("@container")&&("/"===a[10]&&void 0!==a[11]||"s"===a[11]&&void 0!==a[16]&&a.startsWith("-size/",10)||"n"===a[11]&&void 0!==a[18]&&a.startsWith("-normal/",10)),T=a=>ai(a,am,O),U=a=>z.test(a),V=a=>ai(a,an,N),W=a=>ai(a,ao,I),X=a=>ai(a,aq,M),Y=a=>ai(a,ap,O),Z=a=>ai(a,ak,O),$=a=>ai(a,al,Q),_=a=>ai(a,ar,P),aa=a=>A.test(a),ab=a=>aj(a,an),ac=a=>aj(a,ap),ad=a=>aj(a,ak),ae=a=>aj(a,am),af=a=>aj(a,al),ag=a=>aj(a,ar,!0),ah=a=>aj(a,aq,!0),ai=(a,b,c)=>{let d=z.exec(a);return!!d&&(d[1]?b(d[1]):c(d[2]))},aj=(a,b,c=!1)=>{let d=A.exec(a);return!!d&&(d[1]?b(d[1]):c)},ak=a=>"position"===a||"percentage"===a,al=a=>"image"===a||"url"===a,am=a=>"length"===a||"size"===a||"bg-size"===a,an=a=>"length"===a,ao=a=>"number"===a,ap=a=>"family-name"===a,aq=a=>"number"===a||"weight"===a,ar=a=>"shadow"===a;Symbol.toStringTag;let as=((a,...b)=>{let c,d,e,f,g=a=>{let b=d(a);if(b)return b;let f=((a,b)=>{let{parseClassName:c,getClassGroupId:d,getConflictingClassGroupIds:e,sortModifiers:f,postfixLookupClassGroupIds:g}=b,h=[],i=a.trim().split(v),j="";for(let a=i.length-1;a>=0;a-=1){let b,k=i[a],{isExternal:l,modifiers:m,hasImportantModifier:n,baseClassName:o,maybePostfixModifierPosition:p}=c(k);if(l){j=k+(j.length>0?" "+j:j);continue}let q=!!p;if(q){let a=(b=d(o.substring(0,p)))&&g[b]?d(o):void 0;a&&a!==b&&(b=a,q=!1)}else b=d(o);if(!b){if(!q||!(b=d(o))){j=k+(j.length>0?" "+j:j);continue}q=!1}let r=0===m.length?"":1===m.length?m[0]:f(m).join(":"),s=n?r+"!":r,t=s+b;if(h.indexOf(t)>-1)continue;h.push(t);let u=e(b,q);for(let a=0;a<u.length;++a){let b=u[a];h.push(s+b)}j=k+(j.length>0?" "+j:j)}return j})(a,c);return e(a,f),f};return f=h=>(d=(c=(a=>({cache:(a=>{if(a<1)return{get:()=>void 0,set:()=>{}};let b=0,c=Object.create(null),d=Object.create(null),e=(e,f)=>{c[e]=f,++b>a&&(b=0,d=c,c=Object.create(null))};return{get(a){let b=c[a];return void 0!==b?b:void 0!==(b=d[a])?(e(a,b),b):void 0},set(a,b){a in c?c[a]=b:e(a,b)}}})(a.cacheSize),parseClassName:(a=>{let{prefix:b,experimentalParseClassName:c}=a,d=a=>{let b,c=[],d=0,e=0,f=0,g=a.length;for(let h=0;h<g;h++){let g=a[h];if(0===d&&0===e){if(":"===g){c.push(a.slice(f,h)),f=h+1;continue}if("/"===g){b=h;continue}}"["===g?d++:"]"===g?d--:"("===g?e++:")"===g&&e--}let h=0===c.length?a:a.slice(f),i=h,j=!1;return h.endsWith("!")?(i=h.slice(0,-1),j=!0):h.startsWith("!")&&(i=h.slice(1),j=!0),u(c,j,i,b&&b>f?b-f:void 0)};if(b){let a=b+":",c=d;d=b=>b.startsWith(a)?c(b.slice(a.length)):u(t,!1,b,void 0,!0)}if(c){let a=d;d=b=>c({className:b,parseClassName:a})}return d})(a),sortModifiers:(a=>{let b=new Map;return a.orderSensitiveModifiers.forEach((a,c)=>{b.set(a,1e6+c)}),a=>{let c=[],d=[];for(let e=0;e<a.length;e++){let f=a[e],g="["===f[0],h=b.has(f);g||h?(d.length>0&&(d.sort(),c.push(...d),d=[]),c.push(f)):d.push(f)}return d.length>0&&(d.sort(),c.push(...d)),c}})(a),postfixLookupClassGroupIds:(a=>{let b=Object.create(null),c=a.postfixLookupClassGroups;if(c)for(let a=0;a<c.length;a++)b[c[a]]=!0;return b})(a),...(a=>{let b=(a=>{let{theme:b,classGroups:c}=a;return l(c,b)})(a),{conflictingClassGroups:c,conflictingClassGroupModifiers:d}=a;return{getClassGroupId:a=>{if(a.startsWith("[")&&a.endsWith("]"))return(a=>-1===a.slice(1,-1).indexOf(":")?void 0:(()=>{let b=a.slice(1,-1),c=b.indexOf(":"),d=b.slice(0,c);return d?"arbitrary.."+d:void 0})())(a);let c=a.split("-"),d=+(""===c[0]&&c.length>1);return k(c,d,b)},getConflictingClassGroupIds:(a,b)=>{if(b){let b=d[a],e=c[a];return b?e?((a,b)=>{let c=Array(a.length+b.length);for(let b=0;b<a.length;b++)c[b]=a[b];for(let d=0;d<b.length;d++)c[a.length+d]=b[d];return c})(e,b):b:e||j}return c[a]||j}}})(a)}))(b.reduce((a,b)=>b(a),a()))).cache.get,e=c.cache.set,f=g,g(h)),(...a)=>f(((...a)=>{let b,c,d=0,e="";for(;d<a.length;)(b=a[d++])&&(c=w(b))&&(e&&(e+=" "),e+=c);return e})(...a))})(()=>{let a=y("color"),b=y("font"),c=y("text"),d=y("font-weight"),e=y("tracking"),f=y("leading"),g=y("breakpoint"),h=y("container"),i=y("spacing"),j=y("radius"),k=y("shadow"),l=y("inset-shadow"),m=y("text-shadow"),n=y("drop-shadow"),o=y("blur"),p=y("perspective"),q=y("aspect"),r=y("ease"),s=y("animate"),t=()=>["auto","avoid","all","avoid-page","page","left","right","column"],u=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],v=()=>[...u(),aa,U],w=()=>["auto","hidden","clip","visible","scroll"],x=()=>["auto","contain","none"],z=()=>[aa,U,i],A=()=>[H,"full","auto",...z()],B=()=>[J,"none","subgrid",aa,U],C=()=>["auto",{span:["full",J,aa,U]},J,aa,U],D=()=>[J,"auto",aa,U],E=()=>["auto","min","max","fr",aa,U],F=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G=()=>["start","end","center","stretch","center-safe","end-safe"],N=()=>["auto",...z()],O=()=>[H,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...z()],P=()=>[H,"screen","full","dvw","lvw","svw","min","max","fit",...z()],Q=()=>[H,"screen","full","lh","dvh","lvh","svh","min","max","fit",...z()],ai=()=>[a,aa,U],aj=()=>[...u(),ad,Z,{position:[aa,U]}],ak=()=>["no-repeat",{repeat:["","x","y","space","round"]}],al=()=>["auto","cover","contain",ae,T,{size:[aa,U]}],am=()=>[K,ab,V],an=()=>["","none","full",j,aa,U],ao=()=>["",I,ab,V],ap=()=>["solid","dashed","dotted","double"],aq=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ar=()=>[I,K,ad,Z],as=()=>["","none",o,aa,U],at=()=>["none",I,aa,U],au=()=>["none",I,aa,U],av=()=>[I,aa,U],aw=()=>[H,"full",...z()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[L],breakpoint:[L],color:[M],container:[L],"drop-shadow":[L],ease:["in","out","in-out"],font:[R],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[L],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[L],shadow:[L],spacing:["px",I],text:[L],"text-shadow":[L],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",H,U,aa,q]}],container:["container"],"container-type":[{"@container":["","normal","size",aa,U]}],"container-named":[S],columns:[{columns:[I,U,aa,h]}],"break-after":[{"break-after":t()}],"break-before":[{"break-before":t()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:v()}],overflow:[{overflow:w()}],"overflow-x":[{"overflow-x":w()}],"overflow-y":[{"overflow-y":w()}],overscroll:[{overscroll:x()}],"overscroll-x":[{"overscroll-x":x()}],"overscroll-y":[{"overscroll-y":x()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:A()}],"inset-x":[{"inset-x":A()}],"inset-y":[{"inset-y":A()}],start:[{"inset-s":A(),start:A()}],end:[{"inset-e":A(),end:A()}],"inset-bs":[{"inset-bs":A()}],"inset-be":[{"inset-be":A()}],top:[{top:A()}],right:[{right:A()}],bottom:[{bottom:A()}],left:[{left:A()}],visibility:["visible","invisible","collapse"],z:[{z:[J,"auto",aa,U]}],basis:[{basis:[H,"full","auto",h,...z()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[I,H,"auto","initial","none",U]}],grow:[{grow:["",I,aa,U]}],shrink:[{shrink:["",I,aa,U]}],order:[{order:[J,"first","last","none",aa,U]}],"grid-cols":[{"grid-cols":B()}],"col-start-end":[{col:C()}],"col-start":[{"col-start":D()}],"col-end":[{"col-end":D()}],"grid-rows":[{"grid-rows":B()}],"row-start-end":[{row:C()}],"row-start":[{"row-start":D()}],"row-end":[{"row-end":D()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":E()}],"auto-rows":[{"auto-rows":E()}],gap:[{gap:z()}],"gap-x":[{"gap-x":z()}],"gap-y":[{"gap-y":z()}],"justify-content":[{justify:[...F(),"normal"]}],"justify-items":[{"justify-items":[...G(),"normal"]}],"justify-self":[{"justify-self":["auto",...G()]}],"align-content":[{content:["normal",...F()]}],"align-items":[{items:[...G(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G(),{baseline:["","last"]}]}],"place-content":[{"place-content":F()}],"place-items":[{"place-items":[...G(),"baseline"]}],"place-self":[{"place-self":["auto",...G()]}],p:[{p:z()}],px:[{px:z()}],py:[{py:z()}],ps:[{ps:z()}],pe:[{pe:z()}],pbs:[{pbs:z()}],pbe:[{pbe:z()}],pt:[{pt:z()}],pr:[{pr:z()}],pb:[{pb:z()}],pl:[{pl:z()}],m:[{m:N()}],mx:[{mx:N()}],my:[{my:N()}],ms:[{ms:N()}],me:[{me:N()}],mbs:[{mbs:N()}],mbe:[{mbe:N()}],mt:[{mt:N()}],mr:[{mr:N()}],mb:[{mb:N()}],ml:[{ml:N()}],"space-x":[{"space-x":z()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":z()}],"space-y-reverse":["space-y-reverse"],size:[{size:O()}],"inline-size":[{inline:["auto",...P()]}],"min-inline-size":[{"min-inline":["auto",...P()]}],"max-inline-size":[{"max-inline":["none",...P()]}],"block-size":[{block:["auto",...Q()]}],"min-block-size":[{"min-block":["auto",...Q()]}],"max-block-size":[{"max-block":["none",...Q()]}],w:[{w:[h,"screen",...O()]}],"min-w":[{"min-w":[h,"screen","none",...O()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[g]},...O()]}],h:[{h:["screen","lh",...O()]}],"min-h":[{"min-h":["screen","lh","none",...O()]}],"max-h":[{"max-h":["screen","lh",...O()]}],"font-size":[{text:["base",c,ab,V]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[d,ah,X]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",K,U]}],"font-family":[{font:[ac,Y,b]}],"font-features":[{"font-features":[U]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[e,aa,U]}],"line-clamp":[{"line-clamp":[I,"none",aa,W]}],leading:[{leading:[f,...z()]}],"list-image":[{"list-image":["none",aa,U]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",aa,U]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:ai()}],"text-color":[{text:ai()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ap(),"wavy"]}],"text-decoration-thickness":[{decoration:[I,"from-font","auto",aa,V]}],"text-decoration-color":[{decoration:ai()}],"underline-offset":[{"underline-offset":[I,"auto",aa,U]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:z()}],"tab-size":[{tab:[J,aa,U]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",aa,U]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",aa,U]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:aj()}],"bg-repeat":[{bg:ak()}],"bg-size":[{bg:al()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},J,aa,U],radial:["",aa,U],conic:[J,aa,U]},af,$]}],"bg-color":[{bg:ai()}],"gradient-from-pos":[{from:am()}],"gradient-via-pos":[{via:am()}],"gradient-to-pos":[{to:am()}],"gradient-from":[{from:ai()}],"gradient-via":[{via:ai()}],"gradient-to":[{to:ai()}],rounded:[{rounded:an()}],"rounded-s":[{"rounded-s":an()}],"rounded-e":[{"rounded-e":an()}],"rounded-t":[{"rounded-t":an()}],"rounded-r":[{"rounded-r":an()}],"rounded-b":[{"rounded-b":an()}],"rounded-l":[{"rounded-l":an()}],"rounded-ss":[{"rounded-ss":an()}],"rounded-se":[{"rounded-se":an()}],"rounded-ee":[{"rounded-ee":an()}],"rounded-es":[{"rounded-es":an()}],"rounded-tl":[{"rounded-tl":an()}],"rounded-tr":[{"rounded-tr":an()}],"rounded-br":[{"rounded-br":an()}],"rounded-bl":[{"rounded-bl":an()}],"border-w":[{border:ao()}],"border-w-x":[{"border-x":ao()}],"border-w-y":[{"border-y":ao()}],"border-w-s":[{"border-s":ao()}],"border-w-e":[{"border-e":ao()}],"border-w-bs":[{"border-bs":ao()}],"border-w-be":[{"border-be":ao()}],"border-w-t":[{"border-t":ao()}],"border-w-r":[{"border-r":ao()}],"border-w-b":[{"border-b":ao()}],"border-w-l":[{"border-l":ao()}],"divide-x":[{"divide-x":ao()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ao()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ap(),"hidden","none"]}],"divide-style":[{divide:[...ap(),"hidden","none"]}],"border-color":[{border:ai()}],"border-color-x":[{"border-x":ai()}],"border-color-y":[{"border-y":ai()}],"border-color-s":[{"border-s":ai()}],"border-color-e":[{"border-e":ai()}],"border-color-bs":[{"border-bs":ai()}],"border-color-be":[{"border-be":ai()}],"border-color-t":[{"border-t":ai()}],"border-color-r":[{"border-r":ai()}],"border-color-b":[{"border-b":ai()}],"border-color-l":[{"border-l":ai()}],"divide-color":[{divide:ai()}],"outline-style":[{outline:[...ap(),"none","hidden"]}],"outline-offset":[{"outline-offset":[I,aa,U]}],"outline-w":[{outline:["",I,ab,V]}],"outline-color":[{outline:ai()}],shadow:[{shadow:["","none",k,ag,_]}],"shadow-color":[{shadow:ai()}],"inset-shadow":[{"inset-shadow":["none",l,ag,_]}],"inset-shadow-color":[{"inset-shadow":ai()}],"ring-w":[{ring:ao()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:ai()}],"ring-offset-w":[{"ring-offset":[I,V]}],"ring-offset-color":[{"ring-offset":ai()}],"inset-ring-w":[{"inset-ring":ao()}],"inset-ring-color":[{"inset-ring":ai()}],"text-shadow":[{"text-shadow":["none",m,ag,_]}],"text-shadow-color":[{"text-shadow":ai()}],opacity:[{opacity:[I,aa,U]}],"mix-blend":[{"mix-blend":[...aq(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":aq()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[I]}],"mask-image-linear-from-pos":[{"mask-linear-from":ar()}],"mask-image-linear-to-pos":[{"mask-linear-to":ar()}],"mask-image-linear-from-color":[{"mask-linear-from":ai()}],"mask-image-linear-to-color":[{"mask-linear-to":ai()}],"mask-image-t-from-pos":[{"mask-t-from":ar()}],"mask-image-t-to-pos":[{"mask-t-to":ar()}],"mask-image-t-from-color":[{"mask-t-from":ai()}],"mask-image-t-to-color":[{"mask-t-to":ai()}],"mask-image-r-from-pos":[{"mask-r-from":ar()}],"mask-image-r-to-pos":[{"mask-r-to":ar()}],"mask-image-r-from-color":[{"mask-r-from":ai()}],"mask-image-r-to-color":[{"mask-r-to":ai()}],"mask-image-b-from-pos":[{"mask-b-from":ar()}],"mask-image-b-to-pos":[{"mask-b-to":ar()}],"mask-image-b-from-color":[{"mask-b-from":ai()}],"mask-image-b-to-color":[{"mask-b-to":ai()}],"mask-image-l-from-pos":[{"mask-l-from":ar()}],"mask-image-l-to-pos":[{"mask-l-to":ar()}],"mask-image-l-from-color":[{"mask-l-from":ai()}],"mask-image-l-to-color":[{"mask-l-to":ai()}],"mask-image-x-from-pos":[{"mask-x-from":ar()}],"mask-image-x-to-pos":[{"mask-x-to":ar()}],"mask-image-x-from-color":[{"mask-x-from":ai()}],"mask-image-x-to-color":[{"mask-x-to":ai()}],"mask-image-y-from-pos":[{"mask-y-from":ar()}],"mask-image-y-to-pos":[{"mask-y-to":ar()}],"mask-image-y-from-color":[{"mask-y-from":ai()}],"mask-image-y-to-color":[{"mask-y-to":ai()}],"mask-image-radial":[{"mask-radial":[aa,U]}],"mask-image-radial-from-pos":[{"mask-radial-from":ar()}],"mask-image-radial-to-pos":[{"mask-radial-to":ar()}],"mask-image-radial-from-color":[{"mask-radial-from":ai()}],"mask-image-radial-to-color":[{"mask-radial-to":ai()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":u()}],"mask-image-conic-pos":[{"mask-conic":[I]}],"mask-image-conic-from-pos":[{"mask-conic-from":ar()}],"mask-image-conic-to-pos":[{"mask-conic-to":ar()}],"mask-image-conic-from-color":[{"mask-conic-from":ai()}],"mask-image-conic-to-color":[{"mask-conic-to":ai()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:aj()}],"mask-repeat":[{mask:ak()}],"mask-size":[{mask:al()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",aa,U]}],filter:[{filter:["","none",aa,U]}],blur:[{blur:as()}],brightness:[{brightness:[I,aa,U]}],contrast:[{contrast:[I,aa,U]}],"drop-shadow":[{"drop-shadow":["","none",n,ag,_]}],"drop-shadow-color":[{"drop-shadow":ai()}],grayscale:[{grayscale:["",I,aa,U]}],"hue-rotate":[{"hue-rotate":[I,aa,U]}],invert:[{invert:["",I,aa,U]}],saturate:[{saturate:[I,aa,U]}],sepia:[{sepia:["",I,aa,U]}],"backdrop-filter":[{"backdrop-filter":["","none",aa,U]}],"backdrop-blur":[{"backdrop-blur":as()}],"backdrop-brightness":[{"backdrop-brightness":[I,aa,U]}],"backdrop-contrast":[{"backdrop-contrast":[I,aa,U]}],"backdrop-grayscale":[{"backdrop-grayscale":["",I,aa,U]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[I,aa,U]}],"backdrop-invert":[{"backdrop-invert":["",I,aa,U]}],"backdrop-opacity":[{"backdrop-opacity":[I,aa,U]}],"backdrop-saturate":[{"backdrop-saturate":[I,aa,U]}],"backdrop-sepia":[{"backdrop-sepia":["",I,aa,U]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":z()}],"border-spacing-x":[{"border-spacing-x":z()}],"border-spacing-y":[{"border-spacing-y":z()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",aa,U]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[I,"initial",aa,U]}],ease:[{ease:["linear","initial",r,aa,U]}],delay:[{delay:[I,aa,U]}],animate:[{animate:["none",s,aa,U]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[p,aa,U]}],"perspective-origin":[{"perspective-origin":v()}],rotate:[{rotate:at()}],"rotate-x":[{"rotate-x":at()}],"rotate-y":[{"rotate-y":at()}],"rotate-z":[{"rotate-z":at()}],scale:[{scale:au()}],"scale-x":[{"scale-x":au()}],"scale-y":[{"scale-y":au()}],"scale-z":[{"scale-z":au()}],"scale-3d":["scale-3d"],skew:[{skew:av()}],"skew-x":[{"skew-x":av()}],"skew-y":[{"skew-y":av()}],transform:[{transform:[aa,U,"","none","gpu","cpu"]}],"transform-origin":[{origin:v()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:aw()}],"translate-x":[{"translate-x":aw()}],"translate-y":[{"translate-y":aw()}],"translate-z":[{"translate-z":aw()}],"translate-none":["translate-none"],zoom:[{zoom:[J,aa,U]}],accent:[{accent:ai()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:ai()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",aa,U]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":ai()}],"scrollbar-track-color":[{"scrollbar-track":ai()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":z()}],"scroll-mx":[{"scroll-mx":z()}],"scroll-my":[{"scroll-my":z()}],"scroll-ms":[{"scroll-ms":z()}],"scroll-me":[{"scroll-me":z()}],"scroll-mbs":[{"scroll-mbs":z()}],"scroll-mbe":[{"scroll-mbe":z()}],"scroll-mt":[{"scroll-mt":z()}],"scroll-mr":[{"scroll-mr":z()}],"scroll-mb":[{"scroll-mb":z()}],"scroll-ml":[{"scroll-ml":z()}],"scroll-p":[{"scroll-p":z()}],"scroll-px":[{"scroll-px":z()}],"scroll-py":[{"scroll-py":z()}],"scroll-ps":[{"scroll-ps":z()}],"scroll-pe":[{"scroll-pe":z()}],"scroll-pbs":[{"scroll-pbs":z()}],"scroll-pbe":[{"scroll-pbe":z()}],"scroll-pt":[{"scroll-pt":z()}],"scroll-pr":[{"scroll-pr":z()}],"scroll-pb":[{"scroll-pb":z()}],"scroll-pl":[{"scroll-pl":z()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",aa,U]}],fill:[{fill:["none",...ai()]}],"stroke-w":[{stroke:[I,ab,V,W]}],stroke:[{stroke:["none",...ai()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function at({children:a,className:b}){return(0,d.jsxs)("div",{className:function(...a){return as(function(){for(var a,b,c=0,d="",e=arguments.length;c<e;c++)(a=arguments[c])&&(b=function a(b){var c,d,e="";if("string"==typeof b||"number"==typeof b)e+=b;else if("object"==typeof b)if(Array.isArray(b)){var f=b.length;for(c=0;c<f;c++)b[c]&&(d=a(b[c]))&&(e&&(e+=" "),e+=d)}else for(d in b)b[d]&&(e&&(e+=" "),e+=d);return e}(a))&&(d&&(d+=" "),d+=b);return d}(a))}(h.shell,b),children:[(0,d.jsx)("header",{className:h.header,children:(0,d.jsxs)("div",{className:h.headerInner,children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:"Product Development Harness"}),(0,d.jsx)("h1",{className:"text-lg font-semibold tracking-tight",children:"Local operator GUI"})]}),(0,d.jsxs)("nav",{className:"flex items-center gap-4 text-sm",children:[(0,d.jsx)(g.ThemeToggle,{}),(0,d.jsx)(f(),{href:"/settings/configure",className:"font-medium text-foreground hover:text-primary",children:"Settings"})]})]})}),(0,d.jsx)("main",{className:h.main,children:a})]})}var au=c(51337);function av({summary:a,remoteSummary:b,linearSummary:c,vercelSummary:e,formDefaults:f}){return(0,d.jsx)(au.ConfigureExperience,{initialSummary:a,initialRemoteSummary:b,initialLinearSummary:c,initialVercelSummary:e,formDefaults:f})}var aw=c(4647);let ax="force-dynamic";async function ay(){let[a,b,c,e,f]=await Promise.all([(0,aw.al)(),(0,aw.CP)(),(0,aw.W8)(),(0,aw.VP)(),(0,aw.bT)()]);return(0,d.jsx)(at,{children:(0,d.jsx)(av,{summary:a,remoteSummary:c,linearSummary:e,vercelSummary:f,formDefaults:b})})}},4306:(a,b,c)=>{"use strict";c.d(b,{F:()=>g});var d=c(79390);let e=a=>"boolean"==typeof a?`${a}`:0===a?"0":a,f=d.$,g=(a,b)=>c=>{var d;if((null==b?void 0:b.variants)==null)return f(a,null==c?void 0:c.class,null==c?void 0:c.className);let{variants:g,defaultVariants:h}=b,i=Object.keys(g).map(a=>{let b=null==c?void 0:c[a],d=null==h?void 0:h[a];if(null===b)return null;let f=e(b)||e(d);return g[a][f]}),j=c&&Object.entries(c).reduce((a,b)=>{let[c,d]=b;return void 0===d||(a[c]=d),a},{});return f(a,i,null==b||null==(d=b.compoundVariants)?void 0:d.reduce((a,b)=>{let{class:c,className:d,...e}=b;return Object.entries(e).every(a=>{let[b,c]=a;return Array.isArray(c)?c.includes({...h,...j}[b]):({...h,...j})[b]===c})?[...a,c,d]:a},[]),null==c?void 0:c.class,null==c?void 0:c.className)}},4335:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"assignLocation",{enumerable:!0,get:function(){return e}});let d=c(61725);function e(a,b){if(a.startsWith(".")){let c=b.origin+b.pathname;return new URL((c.endsWith("/")?c:c+"/")+a)}return new URL((0,d.addBasePath)(a),b.href)}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},5162:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"PromiseQueue",{enumerable:!0,get:function(){return j}});let d=c(17400),e=c(64402);var f=e._("_maxConcurrency"),g=e._("_runningCount"),h=e._("_queue"),i=e._("_processNext");class j{enqueue(a){let b,c,e=new Promise((a,d)=>{b=a,c=d}),f=async()=>{try{d._(this,g)[g]++;let c=await a();b(c)}catch(a){c(a)}finally{d._(this,g)[g]--,d._(this,i)[i]()}};return d._(this,h)[h].push({promiseFn:e,task:f}),d._(this,i)[i](),e}bump(a){let b=d._(this,h)[h].findIndex(b=>b.promiseFn===a);if(b>-1){let a=d._(this,h)[h].splice(b,1)[0];d._(this,h)[h].unshift(a),d._(this,i)[i](!0)}}constructor(a=5){Object.defineProperty(this,i,{value:k}),Object.defineProperty(this,f,{writable:!0,value:void 0}),Object.defineProperty(this,g,{writable:!0,value:void 0}),Object.defineProperty(this,h,{writable:!0,value:void 0}),d._(this,f)[f]=a,d._(this,g)[g]=0,d._(this,h)[h]=[]}}function k(a){if(void 0===a&&(a=!1),(d._(this,g)[g]<d._(this,f)[f]||a)&&d._(this,h)[h].length>0){var b;null==(b=d._(this,h)[h].shift())||b.task()}}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},7342:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"invalidateCacheByRouterState",{enumerable:!0,get:function(){return e}});let d=c(82521);function e(a,b,c){for(let e in c[1]){let f=c[1][e][0],g=(0,d.createRouterCacheKey)(f),h=b.parallelRoutes.get(e);if(h){let b=new Map(h);b.delete(g),a.parallelRoutes.set(e,b)}}}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11505:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"shouldHardNavigate",{enumerable:!0,get:function(){return function a(b,c){let[f,g]=c,[h,i]=b;return(0,e.matchSegment)(h,f)?!(b.length<=2)&&a((0,d.getNextFlightSegmentPath)(b),g[i]):!!Array.isArray(h)}}});let d=c(89909),e=c(58395);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},11966:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"applyFlightData",{enumerable:!0,get:function(){return f}});let d=c(63102),e=c(68360);function f(a,b,c,f,g){let{tree:h,seedData:i,head:j,isRootRender:k}=f;if(null===i)return!1;if(k){let e=i[1];c.loading=i[3],c.rsc=e,c.prefetchRsc=null,(0,d.fillLazyItemsTillLeafWithHead)(a,c,b,h,i,j,g)}else c.rsc=b.rsc,c.prefetchRsc=b.prefetchRsc,c.parallelRoutes=new Map(b.parallelRoutes),c.loading=b.loading,(0,e.fillCacheWithNewSubTreeData)(a,c,b,f,g);return!0}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},13355:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"handleSegmentMismatch",{enumerable:!0,get:function(){return e}});let d=c(15426);function e(a,b,c){return(0,d.handleExternalUrl)(a,{},a.canonicalUrl,!0)}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},14329:(a,b,c)=>{"use strict";a.exports=c(83935).vendored.contexts.AmpContext},15252:(a,b,c)=>{"use strict";function d(a){return a}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removeBasePath",{enumerable:!0,get:function(){return d}}),c(94650),("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},15426:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{generateSegmentsFromPatch:function(){return u},handleExternalUrl:function(){return t},navigateReducer:function(){return function a(b,c){let{url:v,isExternalUrl:w,navigateType:x,shouldScroll:y,allowAliasing:z}=c,A={},{hash:B}=v,C=(0,e.createHrefFromUrl)(v),D="push"===x;if((0,q.prunePrefetchCache)(b.prefetchCache),A.preserveCustomHistoryState=!1,A.pendingPush=D,w)return t(b,A,v.toString(),D);if(document.getElementById("__next-page-redirect"))return t(b,A,C,D);let E=(0,q.getOrCreatePrefetchCacheEntry)({url:v,nextUrl:b.nextUrl,tree:b.tree,prefetchCache:b.prefetchCache,allowAliasing:z}),{treeAtTimeOfPrefetch:F,data:G}=E;return m.prefetchQueue.bump(G),G.then(m=>{let{flightData:q,canonicalUrl:w,postponed:x}=m,z=Date.now(),G=!1;if(E.lastUsedTime||(E.lastUsedTime=z,G=!0),E.aliased){let d=new URL(v.href);w&&(d.pathname=w.pathname);let e=(0,s.handleAliasedPrefetchEntry)(z,b,q,d,A);return!1===e?a(b,{...c,allowAliasing:!1}):e}if("string"==typeof q)return t(b,A,q,D);let H=w?(0,e.createHrefFromUrl)(w):C;if(B&&b.canonicalUrl.split("#",1)[0]===H.split("#",1)[0])return A.onlyHashChange=!0,A.canonicalUrl=H,A.shouldScroll=y,A.hashFragment=B,A.scrollableSegments=[],(0,k.handleMutable)(b,A);let I=b.tree,J=b.cache,K=[];for(let a of q){let{pathToSegment:c,seedData:e,head:k,isHeadPartial:m,isRootRender:q}=a,s=a.tree,w=["",...c],y=(0,g.applyRouterStatePatchToTree)(w,I,s,C);if(null===y&&(y=(0,g.applyRouterStatePatchToTree)(w,F,s,C)),null!==y){if(e&&q&&x){let a=(0,p.startPPRNavigation)(z,J,I,s,e,k,m,!1,K);if(null!==a){if(null===a.route)return t(b,A,C,D);y=a.route;let c=a.node;null!==c&&(A.cache=c);let e=a.dynamicRequestTree;if(null!==e){let c=(0,d.fetchServerResponse)(new URL(H,v.origin),{flightRouterState:e,nextUrl:b.nextUrl});(0,p.listenForDynamicRequest)(a,c)}}else y=s}else{if((0,i.isNavigatingToNewRootLayout)(I,y))return t(b,A,C,D);let d=(0,n.createEmptyCacheNode)(),e=!1;for(let b of(E.status!==j.PrefetchCacheEntryStatus.stale||G?e=(0,l.applyFlightData)(z,J,d,a,E):(e=function(a,b,c,d){let e=!1;for(let f of(a.rsc=b.rsc,a.prefetchRsc=b.prefetchRsc,a.loading=b.loading,a.parallelRoutes=new Map(b.parallelRoutes),u(d).map(a=>[...c,...a])))(0,r.clearCacheNodeDataForSegmentPath)(a,b,f),e=!0;return e}(d,J,c,s),E.lastUsedTime=z),(0,h.shouldHardNavigate)(w,I)?(d.rsc=J.rsc,d.prefetchRsc=J.prefetchRsc,(0,f.invalidateCacheBelowFlightSegmentPath)(d,J,c),A.cache=d):e&&(A.cache=d,J=d),u(s))){let a=[...c,...b];a[a.length-1]!==o.DEFAULT_SEGMENT_KEY&&K.push(a)}}I=y}}return A.patchedTree=I,A.canonicalUrl=H,A.scrollableSegments=K,A.hashFragment=B,A.shouldScroll=y,(0,k.handleMutable)(b,A)},()=>b)}}});let d=c(94082),e=c(75497),f=c(57162),g=c(24848),h=c(11505),i=c(77692),j=c(13136),k=c(26613),l=c(11966),m=c(37446),n=c(25918),o=c(44859),p=c(82582),q=c(81288),r=c(50202),s=c(2173);function t(a,b,c,d){return b.mpaNavigation=!0,b.canonicalUrl=c,b.pendingPush=d,b.scrollableSegments=void 0,(0,k.handleMutable)(a,b)}function u(a){let b=[],[c,d]=a;if(0===Object.keys(d).length)return[[c]];for(let[a,e]of Object.entries(d))for(let d of u(e))""===c?b.push([a,...d]):b.push([c,a,...d]);return b}c(68459),("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},17400:(a,b,c)=>{"use strict";function d(a,b){if(!Object.prototype.hasOwnProperty.call(a,b))throw TypeError("attempted to use private field on non-instance");return a}c.r(b),c.d(b,{_:()=>d})},18226:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{addRefreshMarkerToActiveParallelSegments:function(){return function a(b,c){let[d,e,,g]=b;for(let h in d.includes(f.PAGE_SEGMENT_KEY)&&"refresh"!==g&&(b[2]=c,b[3]="refresh"),e)a(e[h],c)}},refreshInactiveParallelSegments:function(){return g}});let d=c(11966),e=c(94082),f=c(44859);async function g(a){let b=new Set;await h({...a,rootTree:a.updatedTree,fetchedSegments:b})}async function h(a){let{navigatedAt:b,state:c,updatedTree:f,updatedCache:g,includeNextUrl:i,fetchedSegments:j,rootTree:k=f,canonicalUrl:l}=a,[,m,n,o]=f,p=[];if(n&&n!==l&&"refresh"===o&&!j.has(n)){j.add(n);let a=(0,e.fetchServerResponse)(new URL(n,location.origin),{flightRouterState:[k[0],k[1],k[2],"refetch"],nextUrl:i?c.nextUrl:null}).then(a=>{let{flightData:c}=a;if("string"!=typeof c)for(let a of c)(0,d.applyFlightData)(b,g,g,a)});p.push(a)}for(let a in m){let d=h({navigatedAt:b,state:c,updatedTree:m[a],updatedCache:g,includeNextUrl:i,fetchedSegments:j,rootTree:k,canonicalUrl:l});p.push(d)}await Promise.all(p)}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},18996:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,48365,23)),Promise.resolve().then(c.t.bind(c,64596,23)),Promise.resolve().then(c.t.bind(c,56186,23)),Promise.resolve().then(c.t.bind(c,67805,23)),Promise.resolve().then(c.t.bind(c,27561,23)),Promise.resolve().then(c.t.bind(c,47569,23)),Promise.resolve().then(c.t.bind(c,42747,23)),Promise.resolve().then(c.t.bind(c,56676,23)),Promise.resolve().then(c.bind(c,97225))},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},22345:(a,b)=>{"use strict";function c(a){let b={};for(let[c,d]of a.entries()){let a=b[c];void 0===a?b[c]=d:Array.isArray(a)?a.push(d):b[c]=[a,d]}return b}function d(a){return"string"==typeof a?a:("number"!=typeof a||isNaN(a))&&"boolean"!=typeof a?"":String(a)}function e(a){let b=new URLSearchParams;for(let[c,e]of Object.entries(a))if(Array.isArray(e))for(let a of e)b.append(c,d(a));else b.set(c,d(e));return b}function f(a){for(var b=arguments.length,c=Array(b>1?b-1:0),d=1;d<b;d++)c[d-1]=arguments[d];for(let b of c){for(let c of b.keys())a.delete(c);for(let[c,d]of b.entries())a.append(c,d)}return a}Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{assign:function(){return f},searchParamsToUrlQuery:function(){return c},urlQueryToSearchParams:function(){return e}})},22772:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(73653),e=c(97714),f=c(85250),g=c(37587),h=c(22369),i=c(1889),j=c(96232),k=c(22841),l=c(46537),m=c(46027),n=c(30905),o=c(78559),p=c(75928),q=c(19374),r=c(65971),s=c(261),t=c(79898),u=c(32967),v=c(26713),w=c(40139),x=c(14248),y=c(59580),z=c(57749),A=c(53123),B=c(89745),C=c(86439),D=c(58671),E=c.n(D),F=c(18283),G=c(39818),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["settings",{children:["configure",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,3615)),"/Users/weston/Code/agentic-product-development-harness/apps/gui/app/settings/configure/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,56035)),"/Users/weston/Code/agentic-product-development-harness/apps/gui/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,58671,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,17983,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,15034,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,54693,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,J=["/Users/weston/Code/agentic-product-development-harness/apps/gui/app/settings/configure/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/settings/configure/page",pathname:"/settings/configure",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:"apps/gui"});async function M(a,b,d){var D;let H="/settings/configure/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
-
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},23197:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return g}});let d=c(15915),e=c(78157);c(31768),c(44);let f=c(92810);function g(a){let{children:b,errorComponent:c,errorStyles:d,errorScripts:g}=a;return(0,e.jsx)(f.ErrorBoundary,{errorComponent:c,errorStyles:d,errorScripts:g,children:b})}c(87058),("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},24381:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"restoreReducer",{enumerable:!0,get:function(){return f}});let d=c(75497),e=c(62176);function f(a,b){var c;let{url:f,tree:g}=b,h=(0,d.createHrefFromUrl)(f),i=g||a.tree,j=a.cache;return{canonicalUrl:h,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:a.focusAndScrollRef,cache:j,prefetchCache:a.prefetchCache,tree:i,nextUrl:null!=(c=(0,e.extractPathFromFlightRouterState)(i))?c:f.pathname}}c(82582),("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},24848:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"applyRouterStatePatchToTree",{enumerable:!0,get:function(){return function a(b,c,d,i){let j,[k,l,m,n,o]=c;if(1===b.length){let a=h(c,d);return(0,g.addRefreshMarkerToActiveParallelSegments)(a,i),a}let[p,q]=b;if(!(0,f.matchSegment)(p,k))return null;if(2===b.length)j=h(l[q],d);else if(null===(j=a((0,e.getNextFlightSegmentPath)(b),l[q],d,i)))return null;let r=[b[0],{...l,[q]:j},m,n];return o&&(r[4]=!0),(0,g.addRefreshMarkerToActiveParallelSegments)(r,i),r}}});let d=c(44859),e=c(89909),f=c(58395),g=c(18226);function h(a,b){let[c,e]=a,[g,i]=b;if(g===d.DEFAULT_SEGMENT_KEY&&c!==d.DEFAULT_SEGMENT_KEY)return a;if((0,f.matchSegment)(c,g)){let b={};for(let a in e)void 0!==i[a]?b[a]=h(e[a],i[a]):b[a]=e[a];for(let a in i)b[a]||(b[a]=i[a]);let d=[c,b];return a[2]&&(d[2]=a[2]),a[3]&&(d[3]=a[3]),a[4]&&(d[4]=a[4]),d}return b}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},25248:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"reducer",{enumerable:!0,get:function(){return d}}),c(13136),c(15426),c(41573),c(24381),c(86556),c(37446),c(84254),c(51939);let d=function(a,b){return a};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},25918:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{createEmptyCacheNode:function(){return G},createPrefetchURL:function(){return E},default:function(){return K},isExternalURL:function(){return D}});let d=c(15915),e=c(86274),f=c(78157),g=e._(c(31768)),h=c(9344),i=c(13136),j=c(75497),k=c(66351),l=c(46259),m=c(87058),n=c(61725),o=c(76692),p=c(97944),q=c(82787),r=c(43508),s=c(15252),t=c(94650),u=c(62176),v=c(69374),w=c(99500),x=c(4873),y=c(79650);c(37384);let z=d._(c(23197)),A=d._(c(48365)),B=c(56676),C={};function D(a){return a.origin!==window.location.origin}function E(a){let b;if((0,m.isBot)(window.navigator.userAgent))return null;try{b=new URL((0,n.addBasePath)(a),window.location.href)}catch(b){throw Object.defineProperty(Error("Cannot prefetch '"+a+"' because it cannot be converted to a URL."),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return D(b)?null:b}function F(a){let{appRouterState:b}=a;return(0,g.useInsertionEffect)(()=>{let{tree:a,pushRef:c,canonicalUrl:d}=b,e={...c.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:a};c.pendingPush&&(0,j.createHrefFromUrl)(new URL(window.location.href))!==d?(c.pendingPush=!1,window.history.pushState(e,"",d)):window.history.replaceState(e,"",d)},[b]),(0,g.useEffect)(()=>{},[b.nextUrl,b.tree]),null}function G(){return{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1}}function H(a){null==a&&(a={});let b=window.history.state,c=null==b?void 0:b.__NA;c&&(a.__NA=c);let d=null==b?void 0:b.__PRIVATE_NEXTJS_INTERNALS_TREE;return d&&(a.__PRIVATE_NEXTJS_INTERNALS_TREE=d),a}function I(a){let{headCacheNode:b}=a,c=null!==b?b.head:null,d=null!==b?b.prefetchHead:null,e=null!==d?d:c;return(0,g.useDeferredValue)(c,e)}function J(a){let b,{actionQueue:c,assetPrefix:d,globalError:e}=a,j=(0,l.useActionQueue)(c),{canonicalUrl:m}=j,{searchParams:n,pathname:v}=(0,g.useMemo)(()=>{let a=new URL(m,"http://n");return{searchParams:a.searchParams,pathname:(0,t.hasBasePath)(a.pathname)?(0,s.removeBasePath)(a.pathname):a.pathname}},[m]);(0,g.useEffect)(()=>{function a(a){var b;a.persisted&&(null==(b=window.history.state)?void 0:b.__PRIVATE_NEXTJS_INTERNALS_TREE)&&(C.pendingMpaPath=void 0,(0,l.dispatchAppRouterAction)({type:i.ACTION_RESTORE,url:new URL(window.location.href),tree:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",a),()=>{window.removeEventListener("pageshow",a)}},[]),(0,g.useEffect)(()=>{function a(a){let b="reason"in a?a.reason:a.error;if((0,y.isRedirectError)(b)){a.preventDefault();let c=(0,x.getURLFromRedirectError)(b);(0,x.getRedirectTypeFromError)(b)===y.RedirectType.push?w.publicAppRouterInstance.push(c,{}):w.publicAppRouterInstance.replace(c,{})}}return window.addEventListener("error",a),window.addEventListener("unhandledrejection",a),()=>{window.removeEventListener("error",a),window.removeEventListener("unhandledrejection",a)}},[]);let{pushRef:A}=j;if(A.mpaNavigation){if(C.pendingMpaPath!==m){let a=window.location;A.pendingPush?a.assign(m):a.replace(m),C.pendingMpaPath=m}throw r.unresolvedThenable}(0,g.useEffect)(()=>{let a=window.history.pushState.bind(window.history),b=window.history.replaceState.bind(window.history),c=a=>{var b;let c=window.location.href,d=null==(b=window.history.state)?void 0:b.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,g.startTransition)(()=>{(0,l.dispatchAppRouterAction)({type:i.ACTION_RESTORE,url:new URL(null!=a?a:c,c),tree:d})})};window.history.pushState=function(b,d,e){return(null==b?void 0:b.__NA)||(null==b?void 0:b._N)||(b=H(b),e&&c(e)),a(b,d,e)},window.history.replaceState=function(a,d,e){return(null==a?void 0:a.__NA)||(null==a?void 0:a._N)||(a=H(a),e&&c(e)),b(a,d,e)};let d=a=>{if(a.state){if(!a.state.__NA)return void window.location.reload();(0,g.startTransition)(()=>{(0,w.dispatchTraverseAction)(window.location.href,a.state.__PRIVATE_NEXTJS_INTERNALS_TREE)})}};return window.addEventListener("popstate",d),()=>{window.history.pushState=a,window.history.replaceState=b,window.removeEventListener("popstate",d)}},[]);let{cache:D,tree:E,nextUrl:G,focusAndScrollRef:J}=j,K=(0,g.useMemo)(()=>(0,q.findHeadInCache)(D,E[1]),[D,E]),L=(0,g.useMemo)(()=>(0,u.getSelectedParams)(E),[E]),M=(0,g.useMemo)(()=>({parentTree:E,parentCacheNode:D,parentSegmentPath:null,url:m}),[E,D,m]),O=(0,g.useMemo)(()=>({tree:E,focusAndScrollRef:J,nextUrl:G}),[E,J,G]);if(null!==K){let[a,c,d]=K;b=(0,f.jsx)(I,{headCacheNode:a},d)}else b=null;let P=(0,f.jsxs)(p.RedirectBoundary,{children:[b,(0,f.jsx)(B.RootLayoutBoundary,{children:D.rsc}),(0,f.jsx)(o.AppRouterAnnouncer,{tree:E})]});return P=(0,f.jsx)(z.default,{errorComponent:e[0],errorStyles:e[1],children:P}),(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(F,{appRouterState:j}),(0,f.jsx)(N,{}),(0,f.jsx)(k.PathParamsContext.Provider,{value:L,children:(0,f.jsx)(k.PathnameContext.Provider,{value:v,children:(0,f.jsx)(k.SearchParamsContext.Provider,{value:n,children:(0,f.jsx)(h.GlobalLayoutRouterContext.Provider,{value:O,children:(0,f.jsx)(h.AppRouterContext.Provider,{value:w.publicAppRouterInstance,children:(0,f.jsx)(h.LayoutRouterContext.Provider,{value:M,children:P})})})})})})]})}function K(a){let{actionQueue:b,globalErrorState:c,assetPrefix:d}=a;(0,v.useNavFailureHandler)();let e=(0,f.jsx)(J,{actionQueue:b,assetPrefix:d,globalError:c});return(0,f.jsx)(z.default,{errorComponent:A.default,children:e})}let L=new Set,M=new Set;function N(){let[,a]=g.default.useState(0),b=L.size;return(0,g.useEffect)(()=>{let c=()=>a(a=>a+1);return M.add(c),b!==L.size&&c(),()=>{M.delete(c)}},[b,a]),[...L].map((a,b)=>(0,f.jsx)("link",{rel:"stylesheet",href:""+a,precedence:"next"},b))}globalThis._N_E_STYLE_LOAD=function(a){let b=L.size;return L.add(a),L.size!==b&&M.forEach(a=>a()),Promise.resolve()},("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},26577:(a,b,c)=>{Promise.resolve().then(c.bind(c,27785)),Promise.resolve().then(c.bind(c,1067)),Promise.resolve().then(c.t.bind(c,94496,23))},26613:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"handleMutable",{enumerable:!0,get:function(){return f}});let d=c(62176);function e(a){return void 0!==a}function f(a,b){var c,f;let g=null==(c=b.shouldScroll)||c,h=a.nextUrl;if(e(b.patchedTree)){let c=(0,d.computeChangedPath)(a.tree,b.patchedTree);c?h=c:h||(h=a.canonicalUrl)}return{canonicalUrl:e(b.canonicalUrl)?b.canonicalUrl===a.canonicalUrl?a.canonicalUrl:b.canonicalUrl:a.canonicalUrl,pushRef:{pendingPush:e(b.pendingPush)?b.pendingPush:a.pushRef.pendingPush,mpaNavigation:e(b.mpaNavigation)?b.mpaNavigation:a.pushRef.mpaNavigation,preserveCustomHistoryState:e(b.preserveCustomHistoryState)?b.preserveCustomHistoryState:a.pushRef.preserveCustomHistoryState},focusAndScrollRef:{apply:!!g&&(!!e(null==b?void 0:b.scrollableSegments)||a.focusAndScrollRef.apply),onlyHashChange:b.onlyHashChange||!1,hashFragment:g?b.hashFragment&&""!==b.hashFragment?decodeURIComponent(b.hashFragment.slice(1)):a.focusAndScrollRef.hashFragment:null,segmentPaths:g?null!=(f=null==b?void 0:b.scrollableSegments)?f:a.focusAndScrollRef.segmentPaths:[]},cache:b.cache?b.cache:a.cache,prefetchCache:b.prefetchCache?b.prefetchCache:a.prefetchCache,tree:e(b.patchedTree)?b.patchedTree:a.tree,nextUrl:h}}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27785:(a,b,c)=>{"use strict";let d,e,f;c.d(b,{ConfigureExperience:()=>h_});var g=c(78157),h=c(31768);let i={remoteRead:{scope:"remote-read",confirmation:"standard",manualAlternative:!0},remoteSecretWrite:{scope:"remote-secret-write",confirmation:"strong",manualAlternative:!0},remoteRepoWrite:{scope:"remote-repo-write",confirmation:"strong",manualAlternative:!0}},j=["HARNESS_CONFIG_JSON_B64","LINEAR_API_KEY","CURSOR_API_KEY","HARNESS_GITHUB_TOKEN"];function k(a){let b=new Map(a.map(a=>[a.name,a.status])),c=[],d=[];for(let a of j){let e=b.get(a);if("present"!==e){if("unknown"===e){d.push(a);continue}c.push(a)}}return{allPresent:0===c.length&&0===d.length,missing:c,unknown:d}}function l(a,b){return a.hasStaleConfig&&(void 0!==a.staleHarnessDispatchRepo||"denied"===b)}function m(a,b){a.push({blocking:!0,tone:b.tone??"setup_needed",...b})}function n(a){return JSON.stringify(function(a){let b=a.setupSummary.configSummary;return{configResolved:a.setupSummary.overview.configResolved,operatorConfigResolved:a.setupSummary.overview.operatorConfigResolved,linearTeamKeyFromConfig:a.controlPlaneContext?.linearTeamKeyFromConfig??null,linearTeamKeyFromControlPlane:a.controlPlaneContext?.state?.linear?.teamKey??null,repoIds:(b?.repos??[]).map(a=>a.id).sort((a,b)=>a.localeCompare(b)),repoTargets:(b?.repos??[]).map(a=>({id:a.id,targetRepo:a.targetRepo})).sort((a,b)=>a.id.localeCompare(b.id)),allowedTargetRepos:[...b?.allowedTargetRepos??[]].sort((a,b)=>a.localeCompare(b))}}(a))}i.remoteRead,i.remoteSecretWrite,i.remoteRead,i.remoteRepoWrite,["Ready for Planning","Ready for Build","PR Open","Needs Revision","Ready to Merge"].map(a=>a.toLowerCase());let o=["connect-services","linear-workspace","vercel-bridge","local-setup","local-readiness","cloud-secrets","target-workflow","ready-for-first-run"],p={"connect-services":"Connect services","linear-workspace":"Set up Linear workspace","vercel-bridge":"Set up Vercel webhook bridge","local-setup":"Choose target repo(s)","local-readiness":"Check local readiness","cloud-secrets":"Connect cloud secrets","target-workflow":"Install target repo workflow","ready-for-first-run":"Ready for first run"};function q(a,b){return a.localFiles.find(a=>a.label===b)?.exists??!1}let r=new Set(["missing-env-local","missing-config-local","missing-harness-config-path","missing-linear-key","missing-cursor-key","missing-github-token","missing-vercel-token","config-unresolved","linear-workspace-not-applied","vercel-bridge-not-applied"]);function s(a,b){a.push({blocking:!0,tone:b.tone??(r.has(b.id)?"setup_needed":"error"),...b})}function t(a,b){a.push({...b,blocking:!1})}function u(a,b,c,d,e){let f=[],g=[];if(d&&l(d,b.harnessRepoAccess))return{blockers:f,warnings:g};for(let a of(b.githubTokenConfigured||s(f,{id:"missing-github-token-remote",stepId:"cloud-secrets",message:"Blocked: GITHUB_TOKEN is required for cloud secrets setup.",action:"Next: Add GITHUB_TOKEN in local setup, then return to Connect cloud secrets.",priority:300}),b.harnessDispatchRepoResolved||s(f,{id:"harness-dispatch-repo-unresolved",stepId:"cloud-secrets",message:"Blocked: Harness dispatch repo could not be resolved.",action:"Next: Return to Step 4, enter your harness repo, and use Verify and use harness repo.",priority:301}),"denied"===b.harnessRepoAccess?s(f,{id:"harness-repo-access-denied",stepId:"cloud-secrets",message:`Blocked: I tried to check ${b.harnessDispatchRepo} and GitHub denied access.`,action:"Next: Return to Step 4 to correct the harness repo, or update GITHUB_TOKEN permissions in Step 1 and verify again.",priority:302}):"unknown"===b.harnessRepoAccess&&b.harnessDispatchRepoResolved&&s(f,{id:"harness-repo-access-unknown",stepId:"cloud-secrets",message:"Blocked: Harness repo access could not be verified yet.",action:"Next: Return to Step 4 and use Verify and use harness repo, or refresh after saving GITHUB_TOKEN in Step 1.",priority:303}),function(a){let b=new Map(a.harnessSecretStatuses.map(a=>[a.name,a.status]));return j.filter(a=>"missing"===b.get(a))}(b)))s(f,{id:`missing-harness-secret-${a}`,stepId:"cloud-secrets",message:`Blocked: Required cloud secret ${a} is missing.`,action:"Next: Review generated secrets, confirm, then create or update encrypted GitHub Actions secrets.",priority:303});for(let a of b.harnessSecretStatuses)"unknown"===a.status&&b.githubTokenConfigured&&t(g,{id:`harness-secret-unknown-${a.name}`,stepId:"cloud-secrets",message:`Cloud secret ${a.name} status is unknown.`,action:"Refresh cloud secrets setup to re-check secret presence.",priority:591});return c?.remoteSecretPreviewStale&&s(f,{id:"remote-secret-preview-stale",stepId:"cloud-secrets",message:"Blocked: Cloud secrets preview is out of date.",action:"Next: Regenerate the secrets preview, then confirm and create or update secrets.",priority:307}),e&&function(a){let b=a.state?.linear?.teamKey,c=a.linearTeamKeyFromConfig;return!!b&&!!c&&b!==c}(e)&&s(f,{id:"cloud-secrets-stale-linear-config",stepId:"cloud-secrets",message:"Blocked: HARNESS_CONFIG_JSON_B64 is stale after Linear workspace changes.",action:"Next: Regenerate cloud secrets preview after updating local config, then apply.",priority:308,tone:"error"}),{blockers:f.sort((a,b)=>a.priority-b.priority),warnings:g.sort((a,b)=>a.priority-b.priority)}}function v(a){let b=k(a.harnessSecretStatuses);return a.harnessDispatchRepoResolved&&"denied"!==a.harnessRepoAccess&&b.allPresent}function w(a){return!!a.evidence&&(!!a.evidence.harnessDispatchRepo&&!!a.harnessDispatchRepo&&a.evidence.harnessDispatchRepo!==a.harnessDispatchRepo||a.evidence.configStateFingerprint!==a.currentConfigStateFingerprint)}function x(a){return!(!a.evidence||w(a))&&y({evidence:a.evidence,currentConfigStateFingerprint:a.currentConfigStateFingerprint})}function y(a){return!!a.evidence&&"automatic"===a.evidence.path&&!!a.evidence.harnessConfigJsonB64Written&&a.evidence.configStateFingerprint===a.currentConfigStateFingerprint}function z(a){return a.blockers.filter(b=>"remote-secret-preview-stale"===b.id?!(a.previewStaleCleared&&a.postApplyVerificationReady):"cloud-secrets-stale-linear-config"!==b.id||!y({evidence:a.evidence,currentConfigStateFingerprint:a.currentConfigStateFingerprint}))}function A(a){return a.replace(/^Blocked:\s*/,"").replace(/^Setup needed:\s*/,"")}function B(a){let b=a.staleSmokeDiagnostics??{hasStaleConfig:!1,findings:[],staleTargetRepos:[]},c=a.controlPlaneContext??{state:null},d=function(a){let b=[];return a.envKeyPresence.LINEAR_API_KEY||m(b,{id:"missing-linear-key",stepId:"connect-services",message:"Setup needed: LINEAR_API_KEY is not configured yet.",action:"Add it in Step 1 \xb7 Connect services.",priority:103}),a.envKeyPresence.CURSOR_API_KEY||m(b,{id:"missing-cursor-key",stepId:"connect-services",message:"Setup needed: CURSOR_API_KEY is not configured yet.",action:"Add it in Step 1 \xb7 Connect services.",priority:104}),a.envKeyPresence.GITHUB_TOKEN||m(b,{id:"missing-github-token",stepId:"connect-services",message:"Setup needed: GITHUB_TOKEN is not configured yet.",action:"Add it in Step 1 \xb7 Connect services.",priority:105}),a.envKeyPresence.VERCEL_TOKEN||m(b,{id:"missing-vercel-token",stepId:"connect-services",message:"Setup needed: VERCEL_TOKEN is not configured yet.",action:"Add it in Step 1 \xb7 Connect services.",priority:106}),b.sort((a,b)=>a.priority-b.priority)}(a.summary),e=function(a,b){let c=[],d=a.state?.linear;return d?.teamKey?d.statusCoverageComplete||d.manualComplete||m(c,{id:"linear-status-coverage-incomplete",stepId:"linear-workspace",message:"Blocked: Required Linear workflow statuses are still missing.",action:"Next: Complete Linear workspace setup or confirm manual status coverage.",priority:151}):m(c,{id:"linear-workspace-not-applied",stepId:"linear-workspace",message:"Setup needed: Linear workspace setup is not complete yet.",action:"Next: Preview and apply Linear team, project, and workflow statuses.",priority:150}),b?.linearPreviewStale&&m(c,{id:"linear-preview-stale",stepId:"linear-workspace",message:"Blocked: Linear setup preview is out of date.",action:"Next: Regenerate the Linear setup preview, then confirm and apply.",priority:152,tone:"error"}),c.sort((a,b)=>a.priority-b.priority)}(c,a.uiState),f=function(a,b){let c=[],d=a.state?.vercel,e=a.state?.linear?.teamKey;if(d?.projectId){var f;for(let[a,b]of(d.endpointReachable||m(c,{id:"vercel-endpoint-unreachable",stepId:"vercel-bridge",message:"Blocked: Vercel /api/linear-webhook endpoint is not reachable yet.",action:"Next: Deploy the bridge project and confirm the public webhook route is reachable.",priority:161,tone:"error"}),Object.entries(d.envVarPresence??{})))"missing"===b&&m(c,{id:`vercel-env-missing-${a}`,stepId:"vercel-bridge",message:`Blocked: Vercel production env var ${a} is missing.`,action:"Next: Apply Vercel bridge env vars or set them manually.",priority:162,tone:"error"});d.linearWebhookVerified||m(c,{id:"linear-webhook-unverified",stepId:"vercel-bridge",message:"Blocked: Linear Issue webhook is not verified for the Vercel bridge URL.",action:"Next: Create or verify the Linear webhook, then refresh bridge readiness.",priority:163,tone:"error"}),d.signedProbeVerified||m(c,{id:"signed-probe-unverified",stepId:"vercel-bridge",message:"Blocked: Signed webhook delivery verification has not passed against production.",action:"Next: Apply Vercel bridge settings and wait for signed probe verification to pass.",priority:164,tone:"error"}),d.deploymentRedeployRequired&&m(c,{id:"vercel-redeploy-required",stepId:"vercel-bridge",message:"Blocked: Vercel production must be redeployed after env var changes before signed verification can pass.",action:"Next: Redeploy production, then retry Vercel bridge apply.",priority:165,tone:"error"}),e&&d.envVarPresence?.HARNESS_TEAM_KEY==="present"&&a.state?.linear?.teamKey&&((f={configuredTeamKey:a.state.linear.teamKey,selectedTeamKey:e}).configuredTeamKey&&f.selectedTeamKey&&f.configuredTeamKey!==f.selectedTeamKey||f.configuredProjectId&&f.selectedProjectId&&f.configuredProjectId!==f.selectedProjectId||f.configuredProductionUrl&&f.selectedProductionUrl&&f.configuredProductionUrl!==f.selectedProductionUrl||0)&&m(c,{id:"vercel-team-key-stale",stepId:"vercel-bridge",message:"Blocked: Vercel HARNESS_TEAM_KEY may be stale after Linear team changes.",action:"Next: Re-apply Vercel bridge setup with the current team key.",priority:166,tone:"error"})}else m(c,{id:"vercel-bridge-not-applied",stepId:"vercel-bridge",message:"Setup needed: Vercel webhook bridge setup is not complete yet.",action:"Next: Preview and apply Vercel bridge env vars and webhook readiness.",priority:160});return b?.vercelPreviewStale&&m(c,{id:"vercel-preview-stale",stepId:"vercel-bridge",message:"Blocked: Vercel bridge preview is out of date.",action:"Next: Regenerate the Vercel bridge preview, then confirm and apply.",priority:167,tone:"error"}),c.sort((a,b)=>a.priority-b.priority)}(c,a.uiState),g=function(a,b,c){let d=[];return q(a,".env.local")||s(d,{id:"missing-env-local",stepId:"local-setup",message:"Setup needed: create .env.local on this machine.",action:"Add your target repo in Step 4, then preview setup files.",priority:100}),q(a,".harness/config.local.json")||s(d,{id:"missing-config-local",stepId:"local-setup",message:"Setup needed: create .harness/config.local.json.",action:"Choose your target repo in Step 4, then preview setup files.",priority:101}),a.envKeyPresence.HARNESS_CONFIG_PATH||s(d,{id:"missing-harness-config-path",stepId:"local-setup",message:"Setup needed: HARNESS_CONFIG_PATH is not configured yet.",action:"This is set automatically when you create local setup files.",priority:102}),a.overview.configResolved||a.configSource.parseError||s(d,{id:"config-unresolved",stepId:"local-setup",message:"Setup needed: harness config is not configured locally yet.",action:"Complete Step 4 to create local setup files.",priority:106}),b?.localPreviewStale&&s(d,{id:"local-preview-stale",stepId:"local-setup",message:"Blocked: Local preview is out of date.",action:"Next: Regenerate preview after your latest edits, then confirm and apply.",priority:107}),c?.hasStaleConfig&&(c.staleHarnessDispatchRepo&&s(d,{id:"stale-smoke-dispatch-repo",stepId:"local-setup",message:"Blocked: Your setup points at an old disposable smoke-test harness repo.",action:"Next: Reset GITHUB_DISPATCH_REPOSITORY to your current harness repo, preview local setup, then apply.",priority:108}),c.staleTargetRepos.length>0&&s(d,{id:"stale-smoke-target-repo",stepId:"local-setup",message:"Blocked: Target repo config still points at an old disposable smoke-test repo.",action:"Next: Enter your intended target repo in Local setup, preview local setup, then apply.",priority:109})),d.sort((a,b)=>a.priority-b.priority)}(a.summary,a.uiState,b),h=function(a){let b=[];return a.configSource.parseError&&s(b,{id:"config-parse-error",stepId:"local-readiness",message:"Blocked: Harness config does not parse.",action:"Next: Fix .harness/config.local.json validation errors in Local setup.",priority:200}),a.configSummary&&!a.configSummary.closureValid&&s(b,{id:"allowed-target-repos-closure",stepId:"local-readiness",message:"Blocked: allowedTargetRepos does not cover every configured target repo.",action:"Next: Update target repo config so allowedTargetRepos includes each mapping.",priority:201}),{blockers:b.sort((a,b)=>a.priority-b.priority),warnings:[].sort((a,b)=>a.priority-b.priority)}}(a.summary),i=u(a.summary,a.remoteSummary,a.uiState,b,c),j=n({setupSummary:a.summary,controlPlaneContext:c}),k={blockers:z({blockers:i.blockers,evidence:a.uiState?.cloudSecretsApplyEvidence,currentConfigStateFingerprint:j}),warnings:i.warnings},r=function(a,b,c){let d=[],e=[];if(c&&l(c,b.harnessRepoAccess))return{blockers:d,warnings:e};for(let c of(b.githubTokenConfigured||s(d,{id:"missing-github-token-remote-workflow",stepId:"target-workflow",message:"Blocked: GITHUB_TOKEN is required for workflow install.",action:"Next: Add GITHUB_TOKEN in local setup, then return to workflow install.",priority:310}),0===b.targetRepos.length&&a.overview.configResolved&&s(d,{id:"missing-target-repos",stepId:"target-workflow",message:"Blocked: No target repos are configured for workflow install.",action:"Next: Add at least one target repo mapping in local setup.",priority:304}),b.targetRepos)){if("denied"===c.repoAccess&&s(d,{id:`target-repo-access-denied-${c.repoConfigId}`,stepId:"target-workflow",message:`Blocked: GitHub access to ${c.targetRepo} was denied.`,action:"Next: Grant workflow and PR permissions for this target repo, then refresh.",priority:305}),"missing"===c.workflowStatus||"differs"===c.workflowStatus){let a="missing"===c.workflowStatus?"missing":"outdated";s(d,{id:`target-workflow-${c.workflowStatus}-${c.repoConfigId}`,stepId:"target-workflow",message:`Blocked: Target workflow is ${a} for ${c.repoConfigId}.`,action:"Next: Preview the workflow install PR, confirm, then create or update the install PR.",priority:306})}"unknown"===c.workflowStatus&&b.githubTokenConfigured&&t(e,{id:`target-workflow-unknown-${c.repoConfigId}`,stepId:"target-workflow",message:`Target workflow status is unknown for ${c.repoConfigId}.`,action:"Refresh workflow install setup to re-check workflow presence.",priority:592})}return{blockers:d.sort((a,b)=>a.priority-b.priority),warnings:e.sort((a,b)=>a.priority-b.priority)}}(a.summary,a.remoteSummary,b),v=0===d.length,w=0===e.length,x=0===f.length,y=x&&0===g.length,B=y&&0===h.blockers.length&&a.summary.overview.readyForLocalDoctor,C=a.uiState?.localReadinessReviewed??!1,D=B&&C,E=D&&0===k.blockers.length,F=a.uiState?.cloudSecretsReviewed??!1,G=E&&F,H=G&&0===r.blockers.length,I=[...d,...e,...f,...g,...h.blockers,...k.blockers,...r.blockers].sort((a,b)=>a.priority-b.priority),J=[...h.warnings,...k.warnings,...r.warnings].sort((a,b)=>a.priority-b.priority),K=v?w?x?y?D?G?H?"ready-for-first-run":"target-workflow":"cloud-secrets":"local-readiness":"local-setup":"vercel-bridge":"linear-workspace":"connect-services",L={"connect-services":d,"linear-workspace":e,"vercel-bridge":f,"local-setup":g,"local-readiness":h.blockers,"cloud-secrets":k.blockers,"target-workflow":r.blockers,"ready-for-first-run":H?[]:[{id:"not-ready-for-first-run",stepId:"ready-for-first-run",message:"Blocked: Harness setup is not ready for a first run yet.",action:"Next: Complete the earlier setup steps first.",priority:400,blocking:!0}]},M=o.map(a=>{let b=function(a,b,c,d,e,f,g,h){switch(a){case"connect-services":return!0;case"linear-workspace":return b;case"vercel-bridge":return c;case"local-setup":return d;case"local-readiness":return e;case"cloud-secrets":return f;case"target-workflow":return g;case"ready-for-first-run":return h}}(a,v,w,x,y,D,G,H),c=L[a],d="local-readiness"===a?h.warnings:"cloud-secrets"===a?k.warnings:"target-workflow"===a?r.warnings:[],e="connect-services"===a?v:"linear-workspace"===a?w:"vercel-bridge"===a?x:"local-setup"===a?y:"local-readiness"===a?D:"cloud-secrets"===a?G:H,f=a===K;return{id:a,label:p[a],status:function(a){if(!a.prerequisitesMet)return"not_started";if(a.complete)return"complete";if(a.blockers.length>0){var b;return a.isCurrent&&(b=a.blockers).length>0&&b.every(a=>"setup_needed"===a.tone)?"in_progress":"blocked"}return a.isCurrent?"in_progress":"ready"}({stepId:a,prerequisitesMet:b,blockers:c,complete:e,isCurrent:f}),summary:"ready-for-first-run"===a&&H?"Harness setup is ready for a future first run.":c[0]?.message??`Continue ${p[a].toLowerCase()}.`,blockers:c,warnings:d,primaryAction:function(a,b){let c=b.find(b=>b.stepId===a);if(c)return{id:c.id,label:c.action.replace(/^Next:\s*/,""),stepId:a};switch(a){case"connect-services":return{id:"preview-connect-services",label:"Connect services",stepId:a};case"linear-workspace":return{id:"complete-linear-workspace",label:"Set up Linear workspace",stepId:a};case"vercel-bridge":return{id:"complete-vercel-bridge",label:"Set up Vercel webhook bridge",stepId:a};case"local-setup":return{id:"preview-local-files",label:"Preview setup files",stepId:a};case"local-readiness":return{id:"review-local-readiness",label:"Review local readiness checks",stepId:a};case"cloud-secrets":return{id:"complete-cloud-secrets",label:"Connect cloud secrets",stepId:a};case"target-workflow":return{id:"complete-target-workflow",label:"Install target repo workflow",stepId:a};case"ready-for-first-run":return{id:"review-first-run-readiness",label:"Review final readiness state",stepId:a}}}(a,I),inspectable:!0,actionable:b&&(f||c.length>0)}}),N=I[0],O=N?{id:N.id,label:N.action.replace(/^Next:\s*/,""),stepId:N.stepId}:M.find(a=>a.id===K)?.primaryAction,P=function(a){if(a.staleSmokeDiagnostics.hasStaleConfig){let b=a.staleSmokeDiagnostics.staleTargetRepos.length>0,c=a.staleSmokeDiagnostics.suggestedHarnessDispatchRepo;return{id:"fix-stale-smoke-config",stepId:"local-setup",title:"I need this from you now",problem:"Your setup points at an old disposable smoke-test repo.",whyItMatters:"That repo may have been deleted after the M5.5 smoke test, so GitHub access checks fail.",neededFromYou:b?c?`Reset GITHUB_DISPATCH_REPOSITORY to ${c}, and enter the target repo you actually intend to use.`:"Reset the stale harness dispatch repo and enter the target repo you actually intend to use.":c?`Reset GITHUB_DISPATCH_REPOSITORY to ${c}.`:"Reset the stale harness dispatch repo to your current harness repo.",primaryCtaLabel:"Preview setup files",secondaryCtaLabel:"Show technical details",tone:"error"}}if(a.highestPriorityBlocker?.id==="harness-repo-access-denied")return{id:"confirm-harness-repo-access",stepId:"cloud-secrets",title:"I need this from you now",problem:A(a.highestPriorityBlocker.message),whyItMatters:"Cloud secrets setup cannot continue until the harness dispatch repo is reachable with your GitHub token.",neededFromYou:"Confirm the harness dispatch repo is the one you intend to use, or fix local setup if it is wrong.",primaryCtaLabel:"Connect cloud secrets",secondaryCtaLabel:"Show technical details",tone:"error"};if(a.highestPriorityBlocker){let b="setup_needed"===a.highestPriorityBlocker.tone,c="missing-config-local"===a.highestPriorityBlocker.id||"config-unresolved"===a.highestPriorityBlocker.id?"Step 4 of 7 \xb7 Choose target repo":"connect-services"===a.highestPriorityBlocker.stepId?"Step 1 of 7 \xb7 Connect services":"linear-workspace"===a.highestPriorityBlocker.stepId?"Step 2 of 7 \xb7 Set up Linear workspace":"vercel-bridge"===a.highestPriorityBlocker.stepId?"Step 3 of 7 \xb7 Set up Vercel webhook bridge":"Step 1 of 7 \xb7 Connect services";return{id:a.highestPriorityBlocker.id,stepId:a.highestPriorityBlocker.stepId,title:b?c:"I need this from you now",problem:A(a.highestPriorityBlocker.message),whyItMatters:b?"This is normal for a first-time setup. Nothing is broken yet.":"Setup cannot continue until this blocker is resolved.",neededFromYou:a.highestPriorityBlocker.action.replace(/^Next:\s*/,""),primaryCtaLabel:b?"cloud-secrets"===a.highestPriorityBlocker.stepId||"target-workflow"===a.highestPriorityBlocker.stepId?"cloud-secrets"===a.highestPriorityBlocker.stepId?"Connect cloud secrets":"Install target repo workflow":("missing-config-local"===a.highestPriorityBlocker.id||a.highestPriorityBlocker.id,"Continue"):a.highestPriorityBlocker.action.replace(/^Next:\s*/,""),secondaryCtaLabel:"Show technical details",tone:b?"setup_needed":"error"}}}({highestPriorityBlocker:N,staleSmokeDiagnostics:b});return{steps:M,currentStepId:K,highestPriorityBlocker:N,nextRecommendedAction:O,primaryTask:P,staleSmokeDiagnostics:b,remoteSetupBlockedByUpstream:b.hasStaleConfig,readyForFirstRun:H,localReadinessBlockersCleared:B,localReadinessReviewed:C,localReadinessComplete:D,cloudSecretsBlockersCleared:E,cloudSecretsReviewed:F,nonBlockingWarnings:J,prohibitedActionsNote:"M6 confirms setup readiness only. It does not trigger harness phases, Linear automation, cloud workflow dispatch, implementation branches, or issue-work PRs. A later milestone may add a safe first-issue dry run."}}let C={sectionStack:"flex flex-col gap-6"},D={section:"space-y-6",cardHeader:"space-y-1.5 pb-4",list:"space-y-3",inline:"flex flex-wrap items-center gap-2",stackSm:"space-y-2"},E={pageTitle:"text-2xl font-semibold tracking-tight md:text-3xl",pageDescription:"text-sm text-muted-foreground md:text-base",twoColumnGrid:"grid grid-cols-1 gap-4 md:grid-cols-2",previewPanel:"overflow-x-auto rounded-md border border-border bg-muted/40 p-4 text-xs md:text-sm"},F={fieldStack:"space-y-2",fieldGrid:"grid grid-cols-1 gap-4 md:grid-cols-2",actions:"flex flex-wrap items-center gap-3",confirmationBox:"rounded-md border border-border bg-muted/20 p-4 space-y-3",secretHint:"text-xs text-muted-foreground"},G=["connect-services","linear-workspace","vercel-bridge","choose-target-repos","local-readiness","cloud-secrets","target-workflow","ready-for-first-run"];function H(a){return G.indexOf(a)}function I(a){let b=H(a);return b<=0?null:G[b-1]??null}function J(a){return a.overview.localFilesPresent}var K=c(80678),L=c(4306),M=c(84655);let N=(0,L.F)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",outline:"text-foreground",success:"border-transparent bg-emerald-100 text-emerald-800 dark:bg-emerald-950 dark:text-emerald-200",warning:"border-transparent bg-amber-100 text-amber-800 dark:bg-amber-950 dark:text-amber-200",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80"}},defaultVariants:{variant:"default"}});function O({className:a,variant:b,...c}){return(0,g.jsx)("div",{className:(0,M.cn)(N({variant:b}),a),...c})}function P({label:a,variant:b="secondary",className:c}){return(0,g.jsx)(O,{variant:b,className:(0,M.cn)(c),children:a})}var Q=c(81744);let R=(0,Q.A)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),S=(0,Q.A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),T=h.forwardRef(({className:a,...b},c)=>(0,g.jsx)("div",{ref:c,className:(0,M.cn)("rounded-xl border border-border bg-card text-card-foreground shadow-sm",a),...b}));T.displayName="Card";let U=h.forwardRef(({className:a,...b},c)=>(0,g.jsx)("div",{ref:c,className:(0,M.cn)("flex flex-col space-y-1.5 p-6",a),...b}));U.displayName="CardHeader";let V=h.forwardRef(({className:a,...b},c)=>(0,g.jsx)("div",{ref:c,className:(0,M.cn)("font-semibold leading-none tracking-tight",a),...b}));V.displayName="CardTitle";let W=h.forwardRef(({className:a,...b},c)=>(0,g.jsx)("div",{ref:c,className:(0,M.cn)("text-sm text-muted-foreground",a),...b}));W.displayName="CardDescription";let X=h.forwardRef(({className:a,...b},c)=>(0,g.jsx)("div",{ref:c,className:(0,M.cn)("p-6 pt-0",a),...b}));function Y({title:a,description:b,children:c,className:d}){return(0,g.jsxs)(T,{className:d,children:[(0,g.jsxs)(U,{className:D.cardHeader,children:[(0,g.jsx)(V,{children:a}),b?(0,g.jsx)(W,{children:b}):null]}),(0,g.jsx)(X,{className:(0,M.cn)(D.stackSm),children:c})]})}function Z({readiness:a}){let b=a.steps.find(b=>b.id===a.currentStepId);return(0,g.jsx)(Y,{title:"Setup readiness",description:"One recommended next action at a time.",children:(0,g.jsxs)("div",{className:D.stackSm,children:[(0,g.jsxs)("div",{className:D.inline,children:[(0,g.jsx)(P,{label:a.readyForFirstRun?"Ready for first run":"Setup in progress",variant:a.readyForFirstRun?"success":"warning"}),b?(0,g.jsx)(P,{label:`Current step: ${b.label}`,variant:"secondary"}):null]}),a.highestPriorityBlocker?(0,g.jsxs)("div",{className:"setup_needed"===a.highestPriorityBlocker.tone?"flex items-start gap-3 rounded-md border border-border bg-muted/30 p-3":"flex items-start gap-3 rounded-md border border-destructive/30 bg-destructive/5 p-3",children:["setup_needed"===a.highestPriorityBlocker.tone?(0,g.jsx)(R,{className:"mt-0.5 size-4 shrink-0 text-muted-foreground"}):(0,g.jsx)(S,{className:"mt-0.5 size-4 shrink-0 text-destructive"}),(0,g.jsxs)("div",{className:D.stackSm,children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:a.highestPriorityBlocker.message.replace(/^Blocked:\s*/,"").replace(/^Setup needed:\s*/,"")}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:a.highestPriorityBlocker.action})]})]}):a.nextRecommendedAction?(0,g.jsxs)("div",{className:"flex items-start gap-3 rounded-md border border-border bg-muted/30 p-3",children:[(0,g.jsx)(R,{className:"mt-0.5 size-4 shrink-0 text-muted-foreground"}),(0,g.jsxs)("div",{className:D.stackSm,children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:"Next recommended action"}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:a.nextRecommendedAction.label})]})]}):null,a.nonBlockingWarnings.length>0&&!a.remoteSetupBlockedByUpstream?(0,g.jsx)("ul",{className:"list-disc space-y-1 pl-5 text-sm text-muted-foreground",children:a.nonBlockingWarnings.map(a=>(0,g.jsx)("li",{children:a.message},a.id))}):a.remoteSetupBlockedByUpstream?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Remote setup details stay collapsed until harness repo access is fixed."}):null]})})}X.displayName="CardContent";let $={current:null},_={current:!1},aa="undefined"!=typeof window;function ab(){if(_.current=!0,aa)if(window.matchMedia){let a=window.matchMedia("(prefers-reduced-motion)"),b=()=>$.current=a.matches;a.addEventListener("change",b),b()}else $.current=!1}function ac(){_.current||ab();let[a]=(0,h.useState)($.current);return a}let ad=h.forwardRef(({className:a,orientation:b="horizontal",...c},d)=>(0,g.jsx)("div",{ref:d,className:(0,M.cn)("shrink-0 bg-border","horizontal"===b?"h-px w-full":"h-full w-px",a),...c}));ad.displayName="Separator";let ae=h.forwardRef(({className:a,type:b,...c},d)=>(0,g.jsx)("input",{type:b,className:(0,M.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",a),ref:d,...c}));ae.displayName="Input";let af=h.forwardRef(({className:a,...b},c)=>(0,g.jsx)("label",{ref:c,className:(0,M.cn)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",a),...b}));af.displayName="Label";var ag={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},ah=h.createContext&&h.createContext(ag),ai=["attr","size","title"];function aj(){return(aj=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function ak(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function al(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?ak(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):ak(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function am(a){return b=>h.createElement(an,aj({attr:al({},a.attr)},b),function a(b){return b&&b.map((b,c)=>h.createElement(b.tag,al({key:c},b.attr),a(b.child)))}(a.child))}function an(a){var b=b=>{var c,d=a.attr,e=a.size,f=a.title,g=function(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}(a,ai),i=e||b.size||"1em";return b.className&&(c=b.className),a.className&&(c=(c?c+" ":"")+a.className),h.createElement("svg",aj({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},b.attr,d,g,{className:c,style:al(al({color:a.color||b.color},b.style),a.style),height:i,width:i,xmlns:"http://www.w3.org/2000/svg"}),f&&h.createElement("title",null,f),a.children)};return void 0!==ah?h.createElement(ah.Consumer,null,a=>b(a)):b(ag)}function ao(a){return am({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"m12 1.608 12 20.784H0Z"},child:[]}]})(a)}function ap(a){return am({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M2.886 4.18A11.982 11.982 0 0 1 11.99 0C18.624 0 24 5.376 24 12.009c0 3.64-1.62 6.903-4.18 9.105L2.887 4.18ZM1.817 5.626l16.556 16.556c-.524.33-1.075.62-1.65.866L.951 7.277c.247-.575.537-1.126.866-1.65ZM.322 9.163l14.515 14.515c-.71.172-1.443.282-2.195.322L0 11.358a12 12 0 0 1 .322-2.195Zm-.17 4.862 9.823 9.824a12.02 12.02 0 0 1-9.824-9.824Z"},child:[]}]})(a)}function aq(a){return am({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"},child:[]}]})(a)}function ar(a){return am({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M11.503.131 1.891 5.678a.84.84 0 0 0-.42.726v11.188c0 .3.162.575.42.724l9.609 5.55a1 1 0 0 0 .998 0l9.61-5.55a.84.84 0 0 0 .42-.724V6.404a.84.84 0 0 0-.42-.726L12.497.131a1.01 1.01 0 0 0-.996 0M2.657 6.338h18.55c.263 0 .43.287.297.515L12.23 22.918c-.062.107-.229.064-.229-.06V12.335a.59.59 0 0 0-.295-.51l-9.11-5.257c-.109-.063-.064-.23.061-.23"},child:[]}]})(a)}let as="size-4 shrink-0 text-muted-foreground";function at({serviceKey:a,className:b}){let c=(0,M.cn)(as,b);switch(a){case"LINEAR_API_KEY":return(0,g.jsx)(ap,{className:c,"aria-hidden":"true"});case"CURSOR_API_KEY":return(0,g.jsx)(ar,{className:c,"aria-hidden":"true"});case"GITHUB_TOKEN":return(0,g.jsx)(aq,{className:c,"aria-hidden":"true"});case"VERCEL_TOKEN":return(0,g.jsx)(ao,{className:c,"aria-hidden":"true"})}}function au({className:a}){return(0,g.jsx)(aq,{className:(0,M.cn)(as,a),"aria-hidden":"true"})}function av(a){return am({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"},child:[]}]})(a)}function aw({message:a,failed:b=!1,className:c}){return(0,g.jsxs)("p",{className:(0,M.cn)("flex items-center gap-2 text-sm",b?"text-destructive":"text-muted-foreground",c),children:[b?null:(0,g.jsx)(av,{className:"size-4 shrink-0 text-green-600","aria-hidden":"true"}),(0,g.jsx)("span",{children:a})]})}function ax(a){let b=a.trim(),c=0;for(let a=0;a<b.length;a++)c=(c<<5)-c+b.charCodeAt(a)|0;return`fp:${c}:${b.length}`}function ay(a,b){return"connected"===a.state&&!!b.trim()&&a.verifiedValueFingerprint===ax(b)}function az(a){let b=a.typedToken.trim();return b?{tokenForRequest:b,source:"typed",fingerprint:ax(b)}:a.hasSavedToken?{source:"saved",fingerprint:"saved-local"}:null}function aA(a,b,c){return!!c&&!!function(a,b){if(!a||"connected"!==a.state)return!1;let c=b.trim();return!!c&&a.verifiedTargetRepo===c}(a,b)&&a?.verifiedGithubTokenFingerprint===c}function aB(a){return"undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`guided-repo-${a}`}let aC="https://github.com/settings/tokens",aD=[{id:"repo",description:"read and write repository contents, including private target repos and harness repo secrets"},{id:"workflow",description:"update GitHub Actions workflow files when the harness opens workflow install PRs"}];var aE=c(67283),aF=c.n(aE);let aG={generateNewToken:"/setup/github-token/github-pat-generate-new-token.png",generateClassic:"/setup/github-token/github-pat-generate-classic.png",verifyEmail:"/setup/github-token/github-pat-verify-email.png"};function aH({src:a,alt:b}){return(0,g.jsx)("div",{className:"overflow-hidden rounded-md border border-border bg-muted/20",children:(0,g.jsx)(aF(),{src:a,alt:b,width:640,height:360,className:"h-auto w-full max-w-sm",sizes:"(max-width: 640px) 100vw, 320px"})})}function aI(){return(0,g.jsxs)("details",{className:"rounded-md border border-border/80 bg-muted/10 p-3",children:[(0,g.jsx)("summary",{className:"cursor-pointer text-sm text-muted-foreground hover:text-foreground",children:"How do I get a GitHub token?"}),(0,g.jsxs)("ol",{className:"mt-3 list-decimal space-y-4 pl-5 text-sm text-muted-foreground",children:[(0,g.jsxs)("li",{className:"space-y-1",children:[(0,g.jsxs)("p",{children:["Go to"," ",(0,g.jsx)("a",{href:aC,target:"_blank",rel:"noopener noreferrer",className:"text-foreground underline underline-offset-2",children:aC}),"."]}),(0,g.jsxs)("p",{className:F.secretHint,children:["Open ",(0,g.jsx)("strong",{className:"font-medium text-foreground",children:"Personal access tokens"})," ","and choose the ",(0,g.jsx)("strong",{className:"font-medium text-foreground",children:"Tokens (classic)"})," ","tab if GitHub shows both classic and fine-grained options."]})]}),(0,g.jsxs)("li",{className:"space-y-2",children:[(0,g.jsxs)("p",{children:["Click ",(0,g.jsx)("strong",{className:"font-medium text-foreground",children:"Generate new token"}),"."]}),(0,g.jsx)(aH,{src:aG.generateNewToken,alt:"GitHub Personal access tokens page with Generate new token button"})]}),(0,g.jsxs)("li",{className:"space-y-2",children:[(0,g.jsxs)("p",{children:["Choose"," ",(0,g.jsx)("strong",{className:"font-medium text-foreground",children:"Generate new token (classic)"}),"."]}),(0,g.jsx)("p",{className:F.secretHint,children:"Use classic for the guided happy path. Fine-grained tokens can work, but they require repo-specific permissions and are better for advanced setup."}),(0,g.jsx)(aH,{src:aG.generateClassic,alt:"GitHub dropdown showing Generate new token classic for general use"})]}),(0,g.jsxs)("li",{className:"space-y-2",children:[(0,g.jsx)("p",{children:"If GitHub asks you to verify your email, complete that step before continuing."}),(0,g.jsx)(aH,{src:aG.verifyEmail,alt:"GitHub email verification prompt with Verify via email button"})]}),(0,g.jsxs)("li",{children:["Give the token a clear name, for example"," ",(0,g.jsx)("strong",{className:"font-medium text-foreground",children:"Product Development Harness"}),"."]}),(0,g.jsxs)("li",{className:"space-y-1",children:[(0,g.jsx)("p",{children:"Select these scopes:"}),(0,g.jsx)("ul",{className:"list-disc space-y-1 pl-5",children:aD.map(a=>(0,g.jsxs)("li",{children:[(0,g.jsx)("strong",{className:"font-medium text-foreground",children:a.id})," — ",a.description]},a.id))})]}),(0,g.jsxs)("li",{children:["Click ",(0,g.jsx)("strong",{className:"font-medium text-foreground",children:"Generate token"})," ","at the bottom of the page."]}),(0,g.jsxs)("li",{className:"space-y-1",children:[(0,g.jsx)("p",{children:"Copy the token immediately and store it somewhere safe. GitHub only shows it once."}),(0,g.jsx)("p",{className:F.secretHint,children:"Paste the copied token into the field above, then click Verify."})]})]}),(0,g.jsxs)("div",{className:"mt-4 rounded-md border border-dashed border-border/80 bg-background/50 p-3 text-xs text-muted-foreground",children:[(0,g.jsx)("p",{className:"font-medium text-foreground",children:"Advanced option"}),(0,g.jsx)("p",{className:"mt-1",children:"Fine-grained tokens can also work if they have access to each target repo and include Contents write plus Workflows write permissions. Use this only if you want repo-specific access control."})]})]})}let aJ={LINEAR_API_KEY:{state:"unchecked"},CURSOR_API_KEY:{state:"unchecked"},GITHUB_TOKEN:{state:"unchecked"},VERCEL_TOKEN:{state:"unchecked"}},aK=[{key:"LINEAR_API_KEY",id:"linear-api-key",displayName:"Linear",valueKey:"linearApiKey",helperText:"Lets the harness read and update Linear issues.",inputLabel:"Go to Linear, create or copy your API key, then paste it here."},{key:"CURSOR_API_KEY",id:"cursor-api-key",displayName:"Cursor",valueKey:"cursorApiKey",helperText:"Used to spin up Cursor agents that do the planning and development work.",inputLabel:"Go to Cursor, create or copy your API key, then paste it here."},{key:"GITHUB_TOKEN",id:"github-token",displayName:"GitHub",valueKey:"githubToken",helperText:"Use a classic GitHub personal access token with repo and workflow access. This lets the harness check your repos, save encrypted setup secrets, and open workflow install PRs later.",inputLabel:"Paste your GitHub token"},{key:"VERCEL_TOKEN",id:"vercel-token",displayName:"Vercel",valueKey:"vercelToken",helperText:"Used to create or access Vercel previews so implementation work can be verified before code is merged.",inputLabel:"Go to Vercel, create or copy your token, then paste it here."}];function aL({values:a,presence:b,highlightDispatchRepo:c=!1,variant:d="advanced",verification:e=aJ,verifyingKey:f=null,onChange:h,onVerifyService:i,onServiceBlur:j}){let k=b=>{h({...a,...b})};return"guided-services"===d?(0,g.jsx)("div",{className:"space-y-4",children:aK.map(c=>(0,g.jsx)(aM,{id:c.id,serviceKey:c.key,displayName:c.displayName,envKey:c.key,helperText:c.helperText,inputLabel:c.inputLabel,present:b[c.key],value:a[c.valueKey],verification:e[c.key],verifying:f===c.key,onChange:a=>k({[c.valueKey]:a}),onVerify:i?()=>i(c.key):void 0,onBlur:j?()=>j(c.key):void 0},c.key))}):(0,g.jsxs)("div",{className:F.fieldGrid,children:[(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"harness-config-path",children:"HARNESS_CONFIG_PATH"}),(0,g.jsx)(ae,{id:"harness-config-path",value:a.harnessConfigPath,onChange:a=>k({harnessConfigPath:a.target.value}),autoComplete:"off"}),(0,g.jsx)("p",{className:F.secretHint,children:"Recommended: .harness/config.local.json"})]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"github-dispatch-repository",children:"GITHUB_DISPATCH_REPOSITORY"}),(0,g.jsx)(ae,{id:"github-dispatch-repository",value:a.githubDispatchRepository,onChange:a=>k({githubDispatchRepository:a.target.value}),autoComplete:"off",className:c?"border-destructive/60":void 0}),(0,g.jsxs)("p",{className:F.secretHint,children:["Harness repo used for remote setup checks and Actions secret writes.",c?" This value still points at an old disposable smoke-test repo.":" Defaults to git remote origin when unset."]})]}),aK.map(c=>(0,g.jsx)(aN,{id:c.id,label:c.key,present:b[c.key],value:a[c.valueKey],onChange:a=>k({[c.valueKey]:a})},c.key))]})}function aM({id:a,serviceKey:b,displayName:c,envKey:d,helperText:e,inputLabel:f,present:h,value:i,verification:j,verifying:k,onChange:l,onVerify:m,onBlur:n}){let o=function(a){switch(a){case"checking":return{label:"Checking",variant:"secondary"};case"connected":return{label:"Connected",variant:"success"};case"failed":return{label:"Failed",variant:"destructive"};default:return{label:"Not connected yet",variant:"secondary"}}}(j.state),p=i.trim(),q="connected"===j.state&&(p?ay(j,p):h),r="failed"===j.state&&(p?"failed"===j.state&&!!p.trim()&&j.attemptedValueFingerprint===ax(p):h),s=q&&!!j.message,t=r&&!!j.message,u=k||q||!p&&!h;return(0,g.jsxs)("div",{className:"rounded-lg border border-border bg-card p-4 space-y-3",children:[(0,g.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-2",children:[(0,g.jsxs)("div",{className:"space-y-1",children:[(0,g.jsxs)("p",{className:"inline-flex items-center gap-2 text-sm font-medium",children:[(0,g.jsx)(at,{serviceKey:b}),(0,g.jsx)("span",{children:c})]}),(0,g.jsx)("p",{className:"text-xs text-muted-foreground",children:d})]}),(0,g.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[h?(0,g.jsx)(P,{label:"Saved locally",variant:"secondary"}):null,(0,g.jsx)(P,{label:o.label,variant:o.variant})]})]}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:e}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:a,children:f??d}),(0,g.jsx)(ae,{id:a,type:"password",value:i,onChange:a=>l(a.target.value),onBlur:n,placeholder:h?"Leave blank to keep existing value":"Enter value",autoComplete:"off"})]}),"GITHUB_TOKEN"===b?(0,g.jsx)(aI,{}):null,(0,g.jsxs)("div",{className:"flex flex-col items-start gap-2",children:[s?(0,g.jsx)(aw,{message:j.message}):t?(0,g.jsx)(aw,{message:j.message,failed:!0}):h&&"unchecked"===j.state&&!p?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"A key is already saved in `.env.local`. Verify it if you want to confirm it still works."}):null,j.limitation&&(q||r)?(0,g.jsx)("p",{className:"text-xs text-muted-foreground",children:j.limitation}):null,m?(0,g.jsx)(K.$,{type:"button",variant:"outline",size:"sm",onClick:m,disabled:u,children:k?"Verifying and saving…":q?"Verified":"Verify and save"}):null]})]})}function aN({id:a,label:b,present:c,value:d,helperText:e,onChange:f}){return(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)(af,{htmlFor:a,children:b}),(0,g.jsx)(P,{label:c?"Set":"Not configured yet",variant:c?"success":"secondary"})]}),(0,g.jsx)(ae,{id:a,type:"password",value:d,onChange:a=>f(a.target.value),placeholder:c?"Leave blank to keep existing value":"Enter value",autoComplete:"off"}),e?(0,g.jsx)("p",{className:F.secretHint,children:e}):c?(0,g.jsx)("p",{className:F.secretHint,children:"Existing values are never shown. Leave blank to preserve a set key."}):null]})}let aO=h.forwardRef(({className:a,...b},c)=>(0,g.jsx)("textarea",{className:(0,M.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",a),ref:c,...b}));aO.displayName="Textarea";let aP=/^https:\/\/github\.com\/[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+\/?$/;function aQ({values:a,highlightStaleTarget:b=!1,variant:c="advanced",suggestedHarnessDispatchRepo:d,savedHarnessDispatchRepository:e="",harnessRepoVerification:f={state:"unchecked"},verifyingHarnessRepo:i=!1,guidedRepos:j,repoVerification:k={},verifyingRepoRowId:l=null,onChange:m,onGuidedReposChange:n,onVerifyRepo:o,onRepoBlur:p,onAddRepo:q,onRemoveRepo:r,harnessDispatchRepository:s="",onHarnessDispatchRepositoryChange:t,onVerifyAndUseHarnessRepo:u,harnessConnectedAutomatically:v=!1,githubTokenSourceHint:w,activeGithubTokenFingerprint:x=null}){let[y,z]=(0,h.useState)({}),[A,B]=(0,h.useState)(!1),[C,D]=(0,h.useState)(s),E=s.trim()||e.trim()||d?.trim()||"",G=e.trim()?"Saved in .env.local":d?.trim()?"Detected from git remote":"Not detected yet",H=s.trim(),I="connected"===f.state&&f.verifiedRepo===H&&(!x||f.verifiedGithubTokenFingerprint===x),J=(b,c)=>{let d=[...a.repos];d[b]={...d[b]??{id:"",targetRepo:""},...c},m({...a,repos:d})},L=(a,b)=>{j&&n&&n(j.map(c=>c.rowId===a?{...c,...b}:c))};if("guided-minimal"===c){let a=j&&j.length>0?j:[{rowId:"fallback-repo",id:"",targetRepo:""}];return(0,g.jsxs)("div",{className:"space-y-6",children:[(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"harness-dispatch-repository-guided",children:"Harness workspace"}),A?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(ae,{id:"harness-dispatch-repository-guided",value:C,onChange:a=>D(a.target.value),autoComplete:"off"}),(0,g.jsx)("p",{className:F.secretHint,children:"Enter the harness repo slug or GitHub URL. Saving to `.env.local` happens when you verify and use this repo, then create or update local setup files."}),"failed"===f.state&&f.message?(0,g.jsx)(aw,{message:f.message,failed:!0}):null,f.limitation?(0,g.jsx)("p",{className:"text-xs text-muted-foreground",children:f.limitation}):null,(0,g.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[u?(0,g.jsx)(K.$,{type:"button",size:"sm",onClick:()=>u(C),disabled:i||!C.trim(),children:i?"Verifying harness repo…":"Verify and use harness repo"}):null,(0,g.jsx)(K.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{D(H||E),B(!1)},children:"Cancel"})]})]}):(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("p",{className:"text-sm font-medium break-all",children:H||E||"Not connected yet"}),(0,g.jsx)("p",{className:F.secretHint,children:"This is the private GitHub repo where harness GitHub Actions secrets and future dispatch/workflow setup are configured. It is not your target app repo."}),v?(0,g.jsx)("p",{className:F.secretHint,children:"Connected automatically during Step 1."}):(0,g.jsx)("p",{className:F.secretHint,children:G}),e.trim()&&d?.trim()&&e.trim()!==d.trim()?(0,g.jsxs)("p",{className:F.secretHint,children:["Detected git remote: ",d,". Your saved override in `.env.local` takes precedence."]}):null,!e.trim()&&d?.trim()&&E===d?(0,g.jsx)("p",{className:F.secretHint,children:"If this detected repo is correct, you do not need to change it."}):null,I&&f.message?(0,g.jsx)(aw,{message:f.message}):null,v||I||!H?null:(0,g.jsx)("p",{className:F.secretHint,children:"Verify and use this harness repo before creating local setup files."}),(0,g.jsx)(K.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{D(H||E),B(!0)},children:v?"Use a different or existing harness repo":H?"Update harness repo":"Enter harness repo"})]})]}),(0,g.jsx)("div",{className:"space-y-4",children:a.map((a,c)=>{let d=k[a.rowId]??{state:"unchecked"},e=function(a){switch(a){case"checking":return{label:"Checking",variant:"secondary"};case"connected":return{label:"Connected",variant:"success"};case"failed":return{label:"Failed",variant:"destructive"};default:return{label:"Not connected yet",variant:"secondary"}}}(d.state),f=a.targetRepo.trim(),h=aA(d,f,x),i=function(a,b,c){if(!c||!a||"failed"!==a.state)return!1;let d=b.trim();return!!d&&a.attemptedTargetRepo===d&&a.attemptedGithubTokenFingerprint===c}(d,f,x),j=l===a.rowId?"Checking repo + workflow access…":h?"Verified":"Verify repo + workflow access",m=l===a.rowId||h||!aP.test(f);return(0,g.jsxs)("div",{className:"rounded-lg border border-border bg-card p-4 space-y-3",children:[(0,g.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-2",children:[(0,g.jsxs)("p",{className:"inline-flex items-center gap-2 text-sm font-medium",children:[(0,g.jsx)(au,{}),(0,g.jsxs)("span",{children:["Target repo ",c+1]})]}),(0,g.jsx)(P,{label:e.label,variant:e.variant})]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:`target-repo-${a.rowId}`,children:"Target repo URL"}),(0,g.jsx)(ae,{id:`target-repo-${a.rowId}`,value:a.targetRepo,onChange:b=>L(a.rowId,{targetRepo:b.target.value}),onBlur:()=>p?.(a.rowId),placeholder:"https://github.com/acme/my-product",className:b&&0===c?"border-destructive/60":void 0,autoComplete:"off"}),(0,g.jsx)("p",{className:F.secretHint,children:"Copy-paste the main repo URL."}),b&&0===c?(0,g.jsx)("p",{className:F.secretHint,children:"Enter the target repo you actually intend to use. The app will not guess or invent a replacement repo for you."}):null]}),h?(0,g.jsx)(aw,{message:"Connected"}):i&&d.message?(0,g.jsx)(aw,{message:d.message,failed:!0}):null,d.limitation&&(h||i)?(0,g.jsx)("p",{className:"text-xs text-muted-foreground",children:d.limitation}):null,(0,g.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[o?(0,g.jsx)(K.$,{type:"button",variant:"outline",size:"sm",onClick:()=>o(a.rowId),disabled:m,children:j}):null,c>0&&r?(0,g.jsx)(K.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>r(a.rowId),children:"Remove repo"}):null]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(K.$,{type:"button",variant:"outline",size:"sm",onClick:()=>z(b=>({...b,[a.rowId]:!b[a.rowId]})),children:y[a.rowId]?"Hide advanced branch settings":"Advanced branch settings"}),y[a.rowId]?(0,g.jsxs)("div",{className:F.fieldGrid,children:[(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:`guided-base-branch-${a.rowId}`,children:"Base branch"}),(0,g.jsx)(ae,{id:`guided-base-branch-${a.rowId}`,value:a.baseBranch??"",onChange:b=>L(a.rowId,{baseBranch:b.target.value}),placeholder:"dev",autoComplete:"off"})]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:`guided-production-branch-${a.rowId}`,children:"Production branch"}),(0,g.jsx)(ae,{id:`guided-production-branch-${a.rowId}`,value:a.productionBranch??"",onChange:b=>L(a.rowId,{productionBranch:b.target.value}),placeholder:"main",autoComplete:"off"})]}),(0,g.jsx)("p",{className:F.secretHint,children:"Leave blank to use defaults: dev for base branch and main for production branch."})]}):null]})]},a.rowId)})}),q?(0,g.jsx)(K.$,{type:"button",variant:"outline",onClick:q,children:"Add additional repo"}):null]})}let M=a.repos[0]??{id:"",targetRepo:""};return(0,g.jsxs)("div",{className:"space-y-6",children:[(0,g.jsxs)("div",{className:F.fieldGrid,children:[(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"linear-team-key",children:"Linear team key"}),(0,g.jsx)(ae,{id:"linear-team-key",value:a.linearTeamKey??"",onChange:b=>m({...a,linearTeamKey:b.target.value})})]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"model-id",children:"Model ID"}),(0,g.jsx)(ae,{id:"model-id",value:a.modelId??"",onChange:b=>m({...a,modelId:b.target.value})}),(0,g.jsx)("p",{className:F.secretHint,children:"Local setup only. Harness runs use standard Composer 2.5 policy."})]})]}),(0,g.jsxs)("div",{className:F.fieldGrid,children:[(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"repo-id",children:"Repo config ID"}),(0,g.jsx)(ae,{id:"repo-id",value:M.id,onChange:a=>J(0,{id:a.target.value})})]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"target-repo",children:"Target repo URL"}),(0,g.jsx)(ae,{id:"target-repo",value:M.targetRepo,onChange:a=>J(0,{targetRepo:a.target.value}),className:b?"border-destructive/60":void 0}),b?(0,g.jsx)("p",{className:F.secretHint,children:"Enter the target repo you actually intend to use. The app will not guess or invent a replacement repo for you."}):null]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"linear-projects",children:"Linear projects"}),(0,g.jsx)(ae,{id:"linear-projects",value:M.linearProjects??"",onChange:a=>J(0,{linearProjects:a.target.value}),placeholder:"Comma-separated"})]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"linear-teams",children:"Linear teams"}),(0,g.jsx)(ae,{id:"linear-teams",value:M.linearTeams??"",onChange:a=>J(0,{linearTeams:a.target.value}),placeholder:"Comma-separated"})]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"base-branch",children:"Base branch"}),(0,g.jsx)(ae,{id:"base-branch",value:M.baseBranch??"",onChange:a=>J(0,{baseBranch:a.target.value}),placeholder:"dev"})]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"production-branch",children:"Production branch"}),(0,g.jsx)(ae,{id:"production-branch",value:M.productionBranch??"",onChange:a=>J(0,{productionBranch:a.target.value}),placeholder:"main"})]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"preview-provider",children:"Preview provider"}),(0,g.jsx)(ae,{id:"preview-provider",value:M.previewProvider??"",onChange:a=>J(0,{previewProvider:a.target.value}),placeholder:"vercel"})]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"integration-preview-url",children:"Integration preview URL"}),(0,g.jsx)(ae,{id:"integration-preview-url",value:M.integrationPreviewUrl??"",onChange:a=>J(0,{integrationPreviewUrl:a.target.value})})]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"production-url",children:"Production URL"}),(0,g.jsx)(ae,{id:"production-url",value:M.productionUrl??"",onChange:a=>J(0,{productionUrl:a.target.value})})]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"integration-success-status",children:"Integration success status"}),(0,g.jsx)(ae,{id:"integration-success-status",value:M.integrationSuccessStatus??"",onChange:a=>J(0,{integrationSuccessStatus:a.target.value}),placeholder:"Merged to Dev"})]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"production-success-status",children:"Production success status"}),(0,g.jsx)(ae,{id:"production-success-status",value:M.productionSuccessStatus??"",onChange:a=>J(0,{productionSuccessStatus:a.target.value}),placeholder:"Merged / Deployed"})]})]}),(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{htmlFor:"validation-commands",children:"Validation commands"}),(0,g.jsx)(aO,{id:"validation-commands",value:M.validationCommands??"",onChange:a=>J(0,{validationCommands:a.target.value}),placeholder:"One command per line",rows:4})]})]})}function aR({title:a,content:b,className:c}){return(0,g.jsxs)("div",{className:(0,M.cn)(D.stackSm,c),children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:a}),(0,g.jsx)("pre",{className:(0,M.cn)(E.previewPanel,"font-mono whitespace-pre-wrap"),children:b??"No preview available."})]})}function aS({envPreview:a,configPreview:b,validationError:c,variant:d="advanced",isLoading:e=!1}){return e?null:a||b||c?(0,g.jsxs)("div",{className:"space-y-4",children:[c?(0,g.jsx)("p",{className:"text-sm text-destructive",children:c}):null,a?(0,g.jsx)(aR,{title:".env.local preview (redacted)",content:a}):null,b?(0,g.jsx)(aR,{title:".harness/config.local.json preview",content:b}):null]}):"guided"===d?null:(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Generate a preview to review redacted local file changes before applying."})}let aT=h.forwardRef(({className:a,type:b="checkbox",...c},d)=>(0,g.jsx)("input",{type:b,className:(0,M.cn)("h-4 w-4 shrink-0 cursor-pointer rounded border border-input accent-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",a),ref:d,...c}));function aU({plan:a,confirmed:b,onConfirmedChange:c,disabled:d=!1,disabledReason:e,variant:f="advanced",intent:h="create"}){return"guided"===f?(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsxs)("div",{className:"flex items-start gap-3",children:[(0,g.jsx)(aT,{id:"confirm-local-write-guided",checked:b,disabled:d,onChange:a=>c(a.target.checked)}),(0,g.jsx)(af,{htmlFor:"confirm-local-write-guided",className:"cursor-pointer text-sm leading-snug",children:"update"===h?"I understand this will update local setup files on this machine.":"I understand this will create local setup files on this machine."})]}),d&&e&&e.includes("validation")?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:e}):null]}):(0,g.jsxs)("div",{className:F.confirmationBox,children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:"Confirm local file writes"}),(0,g.jsxs)("ul",{className:"list-disc space-y-1 pl-5 text-sm text-muted-foreground",children:[(0,g.jsxs)("li",{children:[".env.local — ",a?.envAction==="update"?"update":"create"]}),(0,g.jsxs)("li",{children:[".harness/config.local.json —"," ",a?.configAction==="update"?"update":"create"]}),(0,g.jsx)("li",{children:"Files are local, gitignored, and written only on this machine."}),(0,g.jsx)("li",{children:"No GitHub Actions secrets, target repo workflows, Linear writes, cloud workflow dispatch, tags, releases, settings, or live harness phases will run."})]}),(0,g.jsxs)("div",{className:"flex items-start gap-3",children:[(0,g.jsx)(aT,{id:"confirm-local-write",checked:b,disabled:d,onChange:a=>c(a.target.checked)}),(0,g.jsx)(af,{htmlFor:"confirm-local-write",className:"cursor-pointer text-sm leading-snug",children:"I reviewed the redacted preview and want to write these local setup files."})]}),d&&e?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:e}):null]})}function aV({className:a,...b}){return(0,g.jsx)("div",{className:(0,M.cn)("animate-pulse rounded-md bg-muted",a),...b})}function aW({open:a,onOpenChange:b,isLoading:c,previewError:d,envPreview:e,configPreview:f,validationError:h,previewIsCurrent:i}){return(0,g.jsxs)("details",{open:a,className:"rounded-md border border-border bg-background p-3",children:[(0,g.jsx)("summary",{className:"cursor-pointer text-sm font-medium",onClick:c=>{c.preventDefault(),b(!a)},children:"Review generated files"}),(0,g.jsx)("div",{className:"mt-3 space-y-3",children:c?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Generating redacted local file changes…"}),(0,g.jsxs)("div",{className:"space-y-2","aria-hidden":"true",children:[(0,g.jsx)(aV,{className:"h-4 w-[60%]"}),(0,g.jsx)(aV,{className:"h-24 w-full"}),(0,g.jsx)(aV,{className:"h-4 w-[40%]"}),(0,g.jsx)(aV,{className:"h-32 w-full"})]})]}):d?(0,g.jsx)("p",{className:"text-sm text-destructive",children:d}):(0,g.jsx)(aS,{variant:"guided",envPreview:i?e:void 0,configPreview:i?f:void 0,validationError:i?h:void 0})})]})}function aX({success:a,message:b,summary:c}){return(0,g.jsxs)("div",{className:"space-y-3 rounded-md border border-border p-4",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)(P,{label:a?"Applied":"Failed",variant:a?"success":"destructive"}),(0,g.jsx)("p",{className:"text-sm font-medium",children:b})]}),a&&c?(0,g.jsxs)("dl",{className:"grid grid-cols-1 gap-3 text-sm md:grid-cols-2",children:[(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-muted-foreground",children:"Local files present"}),(0,g.jsx)("dd",{children:c.overview.localFilesPresent?"Yes":"No"})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-muted-foreground",children:"Config resolved"}),(0,g.jsx)("dd",{children:c.overview.configResolved?"Yes":"No"})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-muted-foreground",children:"LINEAR_API_KEY"}),(0,g.jsx)("dd",{children:c.envKeyPresence.LINEAR_API_KEY?"Set":"Missing"})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-muted-foreground",children:"CURSOR_API_KEY"}),(0,g.jsx)("dd",{children:c.envKeyPresence.CURSOR_API_KEY?"Set":"Missing"})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-muted-foreground",children:"GITHUB_TOKEN"}),(0,g.jsx)("dd",{children:c.envKeyPresence.GITHUB_TOKEN?"Set":"Missing"})]})]}):null]})}aT.displayName="Checkbox";let aY=(0,h.createContext)({});function aZ(a){let b=(0,h.useRef)(null);return null===b.current&&(b.current=a()),b.current}let a$="undefined"!=typeof window?h.useLayoutEffect:h.useEffect,a_=(0,h.createContext)(null),a0=a=>"object"==typeof a&&null!==a;function a1(a){return a0(a)&&"offsetHeight"in a&&!("ownerSVGElement"in a)}let a2=(0,h.createContext)({transformPagePoint:a=>a,isStatic:!1,reducedMotion:"never"});function a3(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}class a4 extends h.Component{getSnapshotBeforeUpdate(a){let b=this.props.childRef.current;if(a1(b)&&a.isPresent&&!this.props.isPresent&&!1!==this.props.pop){let a=b.offsetParent,c=a1(a)&&a.offsetWidth||0,d=a1(a)&&a.offsetHeight||0,e=getComputedStyle(b),f=this.props.sizeRef.current;f.height=parseFloat(e.height),f.width=parseFloat(e.width),f.top=b.offsetTop,f.left=b.offsetLeft,f.right=c-f.width-f.left,f.bottom=d-f.height-f.top,f.direction=e.direction}return null}componentDidUpdate(){}render(){return this.props.children}}function a5({children:a,isPresent:b,anchorX:c,anchorY:d,root:e,pop:f}){let i=(0,h.useId)(),j=(0,h.useRef)(null),k=(0,h.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:"ltr"}),{nonce:l}=(0,h.useContext)(a2),m=function(...a){return h.useCallback(function(...a){return b=>{let c=!1,d=a.map(a=>{let d=a3(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():a3(a[b],null)}}}}(...a),a)}(j,a.props?.ref??a?.ref);return(0,h.useInsertionEffect)(()=>{let{width:a,height:g,top:h,left:m,right:n,bottom:o,direction:p}=k.current;if(b||!1===f||!j.current||!a||!g)return;let q="rtl"===p,r="left"===c?q?`right: ${n}`:`left: ${m}`:q?`left: ${m}`:`right: ${n}`,s="bottom"===d?`bottom: ${o}`:`top: ${h}`;j.current.dataset.motionPopId=i;let t=document.createElement("style");l&&(t.nonce=l);let u=e??document.head;return u.appendChild(t),t.sheet&&t.sheet.insertRule(`
|
|
1
|
+
(()=>{var a={};a.id=1217,a.ids=[1217],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{"use strict";a.exports=require("node:perf_hooks")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8830:(a,b,c)=>{"use strict";function d(a){return`${a.workspaceId}:${a.teamId}:${a.projectId}`}function e(a){let b=new Map;for(let c of a){let a=b.get(c.teamId)??[];a.push(c),b.set(c.teamId,a)}return b}function f(a){let b=a.teamName?.trim();return b&&b!==a.teamKey?`${b} (${a.teamKey})`:b||a.teamKey}c.d(b,{W:()=>f,iF:()=>d,um:()=>e})},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12579:(a,b,c)=>{"use strict";function d(a){return"enabled"===a.analyticsPreference&&"enabled"===a.errorReportingPreference}c.d(b,{u:()=>d})},15364:(a,b,c)=>{"use strict";c.d(b,{DataSharingPreferences:()=>k});var d=c(78157),e=c(31768),f=c(44527),g=c(42196),h=c(85711),i=c(12579);async function j(a,b){let c=await fetch("/api/observability/preferences",{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json","x-p-dev-observability-nonce":b},body:JSON.stringify(a)});if(!c.ok)throw Error("Could not save data sharing preferences.");return await c.json()}function k({mode:a,nonce:b,initialPreferences:c,onOnboardingComplete:k}){let[l,m]=(0,e.useState)(()=>(0,i.u)(c)),[n,o]=(0,e.useState)(()=>(0,i.u)(c)),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1),v=n!==l,w=(0,e.useCallback)(async c=>{if(!b)return q("Data sharing security token is unavailable."),null;s(!0),q(null),u(!1);try{let d=c?"enabled":"disabled",e=await j({analyticsPreference:d,errorReportingPreference:d,disclosureShown:!0},b);return"settings"===a&&(u(!0),m(c)),e}catch(a){return q(a instanceof Error?a.message:"Could not save data sharing preferences."),null}finally{s(!1)}},[a,b]),x=(0,e.useCallback)(async()=>{let b=await w(n);b&&"onboarding"===a&&k?.({analyticsPreference:b.analyticsPreference,errorReportingPreference:b.errorReportingPreference,disclosureShown:b.disclosureShown})},[n,a,k,w]);return(0,d.jsx)(g.i,{title:"Data sharing",description:"These preferences are stored locally only.",children:(0,d.jsxs)("div",{className:h.Es.stackSm,children:[(0,d.jsxs)("label",{className:"flex cursor-pointer items-start gap-2 text-sm disabled:cursor-not-allowed has-[:disabled]:cursor-not-allowed",children:[(0,d.jsx)("input",{type:"checkbox",className:"mt-0.5 cursor-pointer disabled:cursor-not-allowed",checked:n,disabled:r,onChange:a=>{o(a.target.checked),u(!1)},"data-guided-step-focus":!0}),(0,d.jsx)("span",{children:"Allow anonymous product analytics and error reports to improve functionality and performance."})]}),"onboarding"===a?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"You can change this at any time in Settings."}):null,(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)(f.$,{type:"button",disabled:r||!b||"settings"===a&&!v,onClick:()=>void x(),children:"onboarding"===a?"Continue setup":"Save changes"}),"settings"===a&&t?(0,d.jsx)("span",{className:"text-sm text-muted-foreground",children:"Saved."}):null]}),p?(0,d.jsx)("p",{className:"text-sm text-destructive",children:p}):null]})})}},15930:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/weston/Code/agentic-product-development-harness/apps/gui/app/settings/configure/loading.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/weston/Code/agentic-product-development-harness/apps/gui/app/settings/configure/loading.tsx","default")},16084:(a,b,c)=>{"use strict";c.d(b,{ConfigureExperience:()=>bn});var d=c(78157),e=c(31768);let f={remoteRead:{scope:"remote-read",confirmation:"standard",manualAlternative:!0},remoteSecretWrite:{scope:"remote-secret-write",confirmation:"strong",manualAlternative:!0},remoteRepoWrite:{scope:"remote-repo-write",confirmation:"strong",manualAlternative:!0}},g=["HARNESS_CONFIG_JSON_B64","LINEAR_API_KEY","CURSOR_API_KEY","HARNESS_GITHUB_TOKEN"];function h(a){let b=new Map(a.map(a=>[a.name,a.status])),c=[],d=[];for(let a of g){let e=b.get(a);if("present"!==e){if("unknown"===e){d.push(a);continue}c.push(a)}}return{allPresent:0===c.length&&0===d.length,missing:c,unknown:d}}function i(a,b){return a.hasStaleConfig&&(void 0!==a.staleHarnessDispatchRepo||"denied"===b)}function j(a,b){a.push({blocking:!0,tone:b.tone??"setup_needed",...b})}function k(a){return JSON.stringify(function(a){let b=a.setupSummary.configSummary,c=(b?.repos??[]).flatMap(a=>(a.linearAssociations??[]).map(b=>`${a.id}:${b.workspaceId}:${b.teamId}:${b.projectId}`)).sort((a,b)=>a.localeCompare(b));return{configResolved:a.setupSummary.overview.configResolved,operatorConfigResolved:a.setupSummary.overview.operatorConfigResolved,linearTeamKeyFromConfig:a.controlPlaneContext?.linearTeamKeyFromConfig??null,linearTeamKeyFromControlPlane:a.controlPlaneContext?.state?.linear?.teamKey??null,associationKeys:c,repoIds:(b?.repos??[]).map(a=>a.id).sort((a,b)=>a.localeCompare(b)),repoTargets:(b?.repos??[]).map(a=>({id:a.id,targetRepo:a.targetRepo})).sort((a,b)=>a.id.localeCompare(b.id)),allowedTargetRepos:[...b?.allowedTargetRepos??[]].sort((a,b)=>a.localeCompare(b))}}(a))}f.remoteRead,f.remoteSecretWrite,f.remoteRead,f.remoteRepoWrite,c(92059)._u.map(a=>({name:a.name,category:a.category,role:a.role,creatable:a.creatable}));let l=["connect-services","linear-workspace","vercel-bridge","local-setup","local-readiness","cloud-secrets","target-workflow","ready-for-first-run"],m={"connect-services":"Connect services","linear-workspace":"Set up Linear workspace","vercel-bridge":"Set up Vercel webhook bridge","local-setup":"Choose target repo(s)","local-readiness":"Check local readiness","cloud-secrets":"Connect cloud secrets","target-workflow":"Install target repo workflow","ready-for-first-run":"Ready for first run"};function n(a,b){return a.localFiles.find(a=>a.label===b)?.exists??!1}let o=new Set(["missing-env-local","missing-config-local","missing-harness-config-path","missing-linear-key","missing-cursor-key","missing-github-token","missing-vercel-token","config-unresolved","linear-workspace-not-applied","vercel-bridge-not-applied"]);function p(a,b){a.push({blocking:!0,tone:b.tone??(o.has(b.id)?"setup_needed":"error"),...b})}function q(a,b){a.push({...b,blocking:!1})}function r(a,b,c,d,e){let f=[],h=[];if(d&&i(d,b.harnessRepoAccess))return{blockers:f,warnings:h};for(let a of(b.githubTokenConfigured||p(f,{id:"missing-github-token-remote",stepId:"cloud-secrets",message:"Blocked: GITHUB_TOKEN is required for cloud secrets setup.",action:"Next: Add GITHUB_TOKEN in local setup, then return to Connect cloud secrets.",priority:300}),b.harnessDispatchRepoResolved||p(f,{id:"harness-dispatch-repo-unresolved",stepId:"cloud-secrets",message:"Blocked: Harness dispatch repo could not be resolved.",action:"Next: Return to Step 4, enter your harness repo, and use Verify and use harness repo.",priority:301}),"denied"===b.harnessRepoAccess?p(f,{id:"harness-repo-access-denied",stepId:"cloud-secrets",message:`Blocked: I tried to check ${b.harnessDispatchRepo} and GitHub denied access.`,action:"Next: Return to Step 4 to correct the harness repo, or update GITHUB_TOKEN permissions in Step 1 and verify again.",priority:302}):"unknown"===b.harnessRepoAccess&&b.harnessDispatchRepoResolved&&p(f,{id:"harness-repo-access-unknown",stepId:"cloud-secrets",message:"Blocked: Harness repo access could not be verified yet.",action:"Next: Return to Step 4 and use Verify and use harness repo, or refresh after saving GITHUB_TOKEN in Step 1.",priority:303}),function(a){let b=new Map(a.harnessSecretStatuses.map(a=>[a.name,a.status]));return g.filter(a=>"missing"===b.get(a))}(b)))p(f,{id:`missing-harness-secret-${a}`,stepId:"cloud-secrets",message:`Blocked: Required cloud secret ${a} is missing.`,action:"Next: Review generated secrets, confirm, then create or update encrypted GitHub Actions secrets.",priority:303});for(let a of b.harnessSecretStatuses)"unknown"===a.status&&b.githubTokenConfigured&&q(h,{id:`harness-secret-unknown-${a.name}`,stepId:"cloud-secrets",message:`Cloud secret ${a.name} status is unknown.`,action:"Refresh cloud secrets setup to re-check secret presence.",priority:591});return c?.remoteSecretPreviewStale&&c.cloudSecretsPreviewOpened&&p(f,{id:"remote-secret-preview-stale",stepId:"cloud-secrets",message:"Blocked: Cloud secrets preview is out of date.",action:"Next: Regenerate the secrets preview, then confirm and create or update secrets.",priority:307}),e&&function(a){let b=a.state?.linear?.teamKey,c=a.linearTeamKeyFromConfig;if(b&&c&&b!==c)return!0;let d=a.state?.linearWorkspace?.appliedFingerprint?.trim(),e=a.state?.linearWorkspace?.teams??[];return!!d&&0===e.length}(e)&&p(f,{id:"cloud-secrets-stale-linear-config",stepId:"cloud-secrets",message:"Blocked: HARNESS_CONFIG_JSON_B64 is stale after Linear workspace changes.",action:"Next: Regenerate cloud secrets preview after updating local config, then apply.",priority:308,tone:"error"}),{blockers:f.sort((a,b)=>a.priority-b.priority),warnings:h.sort((a,b)=>a.priority-b.priority)}}function s(a){let b=h(a.harnessSecretStatuses);return a.harnessDispatchRepoResolved&&"denied"!==a.harnessRepoAccess&&b.allPresent}function t(a){return!!a.evidence&&(!!a.evidence.harnessDispatchRepo&&!!a.harnessDispatchRepo&&a.evidence.harnessDispatchRepo!==a.harnessDispatchRepo||a.evidence.configStateFingerprint!==a.currentConfigStateFingerprint)}function u(a){return!(!a.evidence||t(a))&&v({evidence:a.evidence,currentConfigStateFingerprint:a.currentConfigStateFingerprint})}function v(a){return!!a.evidence&&"automatic"===a.evidence.path&&!!a.evidence.harnessConfigJsonB64Written&&a.evidence.configStateFingerprint===a.currentConfigStateFingerprint}function w(a){return a.blockers.filter(b=>"remote-secret-preview-stale"===b.id?!(a.previewStaleCleared&&a.postApplyVerificationReady):"cloud-secrets-stale-linear-config"!==b.id||!v({evidence:a.evidence,currentConfigStateFingerprint:a.currentConfigStateFingerprint}))}function x(a){return a.githubTokenConfigured?a.harnessDispatchRepoResolved?"denied"===a.harnessRepoAccess?{allowed:!1,reason:`Blocked: GitHub denied access to ${a.harnessDispatchRepo}.`,action:"Return to Step 4 to correct the harness repo, or update GITHUB_TOKEN permissions in Step 1 and verify again.",route:"step4-harness-repo"}:"available"!==a.harnessRepoAccess?{allowed:!1,reason:"Blocked: Harness repo access could not be verified yet.",action:"Return to Step 4 and use Verify and use harness repo, then refresh cloud secrets setup.",route:"step4-harness-repo"}:{allowed:!0}:{allowed:!1,reason:"Blocked: Harness dispatch repo could not be resolved.",action:"Return to Step 4, enter your harness repo, and use Verify and use harness repo.",route:"step4-harness-repo"}:{allowed:!1,reason:"Blocked: GITHUB_TOKEN is required for cloud secrets setup.",action:"Add GITHUB_TOKEN in Step 1, then return to cloud secrets setup.",route:"connect-services"}}function y(a){return a.replace(/^Blocked:\s*/,"").replace(/^Setup needed:\s*/,"")}function z(a){let b=a.staleSmokeDiagnostics??{hasStaleConfig:!1,findings:[],staleTargetRepos:[]},c=a.controlPlaneContext??{state:null},d=function(a,b){let c=[];return a.envKeyPresence.LINEAR_API_KEY||j(c,{id:"missing-linear-key",stepId:"connect-services",message:"Setup needed: LINEAR_API_KEY is not configured yet.",action:"Add it in Step 1 \xb7 Connect services.",priority:103}),a.envKeyPresence.CURSOR_API_KEY||j(c,{id:"missing-cursor-key",stepId:"connect-services",message:"Setup needed: CURSOR_API_KEY is not configured yet.",action:"Add it in Step 1 \xb7 Connect services.",priority:104}),a.envKeyPresence.GITHUB_TOKEN||j(c,{id:"missing-github-token",stepId:"connect-services",message:"Setup needed: GITHUB_TOKEN is not configured yet.",action:"Add it in Step 1 \xb7 Connect services.",priority:105}),a.envKeyPresence.VERCEL_TOKEN||j(c,{id:"missing-vercel-token",stepId:"connect-services",message:"Setup needed: VERCEL_TOKEN is not configured yet.",action:"Add it in Step 1 \xb7 Connect services.",priority:106}),b&&"verified-and-persisted"!==b.state&&"skipped-source-mode"!==b.state&&"skipped-not-packaged"!==b.state&&j(c,{id:"harness-workspace-not-provisioned",stepId:"connect-services",message:`Blocked: Harness workspace provisioning is not complete (${b.state}).`,action:"Next: Verify and save service keys, then use Set up workspace in Step 1.",priority:107,tone:b.recoverable?"setup_needed":"error"}),c.sort((a,b)=>a.priority-b.priority)}(a.summary,a.harnessProvisioningSummary),e=function(a,b){let c=[],d=a.state?.linearWorkspace,e=a.state?.linear,f=!!(d?.teams.some(a=>a.projects.length>0)||e?.teamKey),g=!!(d?.teams.every(a=>"healthy"===a.health||a.projects.every(a=>"healthy"===a.health))||e?.statusCoverageComplete||e?.manualComplete);return f?g||j(c,{id:"linear-status-coverage-incomplete",stepId:"linear-workspace",message:"Blocked: Required Linear workflow statuses are still missing.",action:"Next: Complete Linear workspace setup or confirm manual status coverage.",priority:151}):j(c,{id:"linear-workspace-not-applied",stepId:"linear-workspace",message:"Setup needed: Linear workspace setup is not complete yet.",action:"Next: Preview and apply Linear team, project, and workflow statuses.",priority:150}),b?.linearPreviewStale&&!f&&j(c,{id:"linear-preview-stale",stepId:"linear-workspace",message:"Blocked: Linear setup preview is out of date.",action:"Next: Regenerate the Linear setup preview, then confirm and apply.",priority:152,tone:"error"}),c.sort((a,b)=>a.priority-b.priority)}(c,a.uiState),f=function(a,b){let c=[],d=a.state?.vercel,e=a.state?.linear?.teamKey;if(d?.projectId){var f;for(let[a,b]of(d.endpointReachable||j(c,{id:"vercel-endpoint-unreachable",stepId:"vercel-bridge",message:"Blocked: Vercel /api/linear-webhook endpoint is not reachable yet.",action:"Next: Deploy the bridge project and confirm the public webhook route is reachable.",priority:161,tone:"error"}),Object.entries(d.envVarPresence??{})))"missing"===b&&j(c,{id:`vercel-env-missing-${a}`,stepId:"vercel-bridge",message:`Blocked: Vercel production env var ${a} is missing.`,action:"Next: Apply Vercel bridge env vars or set them manually.",priority:162,tone:"error"});d.linearWebhookVerified||j(c,{id:"linear-webhook-unverified",stepId:"vercel-bridge",message:"Blocked: Linear Issue webhook is not verified for the PDev automation bridge URL.",action:"Next: Create or verify the Linear webhook, then refresh bridge readiness.",priority:163,tone:"error"}),d.signedProbeVerified||j(c,{id:"signed-probe-unverified",stepId:"vercel-bridge",message:"Blocked: Signed webhook delivery verification has not passed against production.",action:"Next: Apply PDev automation bridge settings and wait for signed probe verification to pass.",priority:164,tone:"error"}),d.deploymentRedeployRequired&&j(c,{id:"vercel-redeploy-required",stepId:"vercel-bridge",message:"Blocked: Vercel production must be redeployed after env var changes before signed verification can pass.",action:"Next: Redeploy production, then retry PDev automation bridge apply.",priority:165,tone:"error"}),e&&d.envVarPresence?.HARNESS_TEAM_KEY==="present"&&a.state?.linear?.teamKey&&((f={configuredTeamKey:a.state.linear.teamKey,selectedTeamKey:e}).configuredTeamKey&&f.selectedTeamKey&&f.configuredTeamKey!==f.selectedTeamKey||f.configuredProjectId&&f.selectedProjectId&&f.configuredProjectId!==f.selectedProjectId||f.configuredProductionUrl&&f.selectedProductionUrl&&f.configuredProductionUrl!==f.selectedProductionUrl||0)&&j(c,{id:"vercel-team-key-stale",stepId:"vercel-bridge",message:"Blocked: Vercel HARNESS_TEAM_KEY may be stale after Linear team changes.",action:"Next: Re-apply PDev automation bridge setup with the current team key.",priority:166,tone:"error"})}else j(c,{id:"vercel-bridge-not-applied",stepId:"vercel-bridge",message:"Setup needed: PDev automation bridge setup is not complete yet.",action:"Next: Preview and apply PDev automation bridge env vars and webhook readiness.",priority:160});return b?.vercelPreviewStale&&!d?.projectId&&j(c,{id:"vercel-preview-stale",stepId:"vercel-bridge",message:"Blocked: PDev automation bridge preview is out of date.",action:"Next: Regenerate the PDev automation bridge preview, then confirm and apply.",priority:167,tone:"error"}),c.sort((a,b)=>a.priority-b.priority)}(c,a.uiState),g=function(a,b,c){let d=[];return n(a,".env.local")||p(d,{id:"missing-env-local",stepId:"local-setup",message:"Setup needed: create .env.local on this machine.",action:"Add your target repo in Step 4, then preview setup files.",priority:100}),n(a,".harness/config.local.json")||p(d,{id:"missing-config-local",stepId:"local-setup",message:"Setup needed: create .harness/config.local.json.",action:"Choose your target repo in Step 4, then preview setup files.",priority:101}),a.envKeyPresence.HARNESS_CONFIG_PATH||p(d,{id:"missing-harness-config-path",stepId:"local-setup",message:"Setup needed: HARNESS_CONFIG_PATH is not configured yet.",action:"This is set automatically when you create local setup files.",priority:102}),a.overview.configResolved||a.configSource.parseError||p(d,{id:"config-unresolved",stepId:"local-setup",message:"Setup needed: harness config is not configured locally yet.",action:"Complete Step 4 to create local setup files.",priority:106}),b?.localPreviewStale&&p(d,{id:"local-preview-stale",stepId:"local-setup",message:"Blocked: Local preview is out of date.",action:"Next: Regenerate preview after your latest edits, then confirm and apply.",priority:107}),c?.hasStaleConfig&&(c.staleHarnessDispatchRepo&&p(d,{id:"stale-smoke-dispatch-repo",stepId:"local-setup",message:"Blocked: Your setup points at an old disposable smoke-test harness repo.",action:"Next: Reset GITHUB_DISPATCH_REPOSITORY to your current harness repo, preview local setup, then apply.",priority:108}),c.staleTargetRepos.length>0&&p(d,{id:"stale-smoke-target-repo",stepId:"local-setup",message:"Blocked: Target repo config still points at an old disposable smoke-test repo.",action:"Next: Enter your intended target repo in Local setup, preview local setup, then apply.",priority:109})),d.sort((a,b)=>a.priority-b.priority)}(a.summary,a.uiState,b),h=function(a){let b=[];return a.configSource.parseError&&p(b,{id:"config-parse-error",stepId:"local-readiness",message:"Blocked: Harness config does not parse.",action:"Next: Fix .harness/config.local.json validation errors in Local setup.",priority:200}),a.configSummary&&!a.configSummary.closureValid&&p(b,{id:"allowed-target-repos-closure",stepId:"local-readiness",message:"Blocked: allowedTargetRepos does not cover every configured target repo.",action:"Next: Update target repo config so allowedTargetRepos includes each mapping.",priority:201}),{blockers:b.sort((a,b)=>a.priority-b.priority),warnings:[].sort((a,b)=>a.priority-b.priority)}}(a.summary),o=r(a.summary,a.remoteSummary,a.uiState,b,c),s=k({setupSummary:a.summary,controlPlaneContext:c}),t={blockers:w({blockers:o.blockers,evidence:a.uiState?.cloudSecretsApplyEvidence,currentConfigStateFingerprint:s}),warnings:o.warnings},u=function(a,b,c){let d=[],e=[];if(c&&i(c,b.harnessRepoAccess))return{blockers:d,warnings:e};for(let c of(b.githubTokenConfigured||p(d,{id:"missing-github-token-remote-workflow",stepId:"target-workflow",message:"Blocked: GITHUB_TOKEN is required for workflow install.",action:"Next: Add GITHUB_TOKEN in local setup, then return to workflow install.",priority:310}),0===b.targetRepos.length&&a.overview.configResolved&&p(d,{id:"missing-target-repos",stepId:"target-workflow",message:"Blocked: No target repos are configured for workflow install.",action:"Next: Add at least one target repo mapping in local setup.",priority:304}),b.targetRepos)){if("denied"===c.repoAccess&&p(d,{id:`target-repo-access-denied-${c.repoConfigId}`,stepId:"target-workflow",message:`Blocked: GitHub access to ${c.targetRepo} was denied.`,action:"Next: Grant workflow and PR permissions for this target repo, then refresh.",priority:305}),"missing"===c.workflowStatus||"differs"===c.workflowStatus){let a="missing"===c.workflowStatus?"missing":"outdated";p(d,{id:`target-workflow-${c.workflowStatus}-${c.repoConfigId}`,stepId:"target-workflow",message:`Blocked: Target workflow is ${a} for ${c.repoConfigId}.`,action:"Next: Preview the workflow install PR, confirm, then create or update the install PR.",priority:306})}"unknown"===c.workflowStatus&&b.githubTokenConfigured&&q(e,{id:`target-workflow-unknown-${c.repoConfigId}`,stepId:"target-workflow",message:`Target workflow status is unknown for ${c.repoConfigId}.`,action:"Refresh workflow install setup to re-check workflow presence.",priority:592})}return{blockers:d.sort((a,b)=>a.priority-b.priority),warnings:e.sort((a,b)=>a.priority-b.priority)}}(a.summary,a.remoteSummary,b),v=0===d.length,x=0===e.length,z=0===f.length,A=z&&0===g.length,B=A&&0===h.blockers.length&&a.summary.overview.readyForLocalDoctor,C=a.uiState?.localReadinessReviewed??!1,D=B&&C,E=D&&0===t.blockers.length,F=a.uiState?.cloudSecretsReviewed??!1,G=E&&F,H=G&&0===u.blockers.length,I=[...d,...e,...f,...g,...h.blockers,...t.blockers,...u.blockers].sort((a,b)=>a.priority-b.priority),J=[...h.warnings,...t.warnings,...u.warnings].sort((a,b)=>a.priority-b.priority),K=v?x?z?A?D?G?H?"ready-for-first-run":"target-workflow":"cloud-secrets":"local-readiness":"local-setup":"vercel-bridge":"linear-workspace":"connect-services",L={"connect-services":d,"linear-workspace":e,"vercel-bridge":f,"local-setup":g,"local-readiness":h.blockers,"cloud-secrets":t.blockers,"target-workflow":u.blockers,"ready-for-first-run":H?[]:[{id:"not-ready-for-first-run",stepId:"ready-for-first-run",message:"Blocked: Harness setup is not ready for a first run yet.",action:"Next: Complete the earlier setup steps first.",priority:400,blocking:!0}]},M=l.map(a=>{let b=function(a,b,c,d,e,f,g,h){switch(a){case"connect-services":return!0;case"linear-workspace":return b;case"vercel-bridge":return c;case"local-setup":return d;case"local-readiness":return e;case"cloud-secrets":return f;case"target-workflow":return g;case"ready-for-first-run":return h}}(a,v,x,z,A,D,G,H),c=L[a],d="local-readiness"===a?h.warnings:"cloud-secrets"===a?t.warnings:"target-workflow"===a?u.warnings:[],e="connect-services"===a?v:"linear-workspace"===a?x:"vercel-bridge"===a?z:"local-setup"===a?A:"local-readiness"===a?D:"cloud-secrets"===a?G:H,f=a===K;return{id:a,label:m[a],status:function(a){if(!a.prerequisitesMet)return"not_started";if(a.complete)return"complete";if(a.blockers.length>0){var b;return a.isCurrent&&(b=a.blockers).length>0&&b.every(a=>"setup_needed"===a.tone)?"in_progress":"blocked"}return a.isCurrent?"in_progress":"ready"}({stepId:a,prerequisitesMet:b,blockers:c,complete:e,isCurrent:f}),summary:"ready-for-first-run"===a&&H?"Harness setup is ready for a future first run.":c[0]?.message??`Continue ${m[a].toLowerCase()}.`,blockers:c,warnings:d,primaryAction:function(a,b){let c=b.find(b=>b.stepId===a);if(c)return{id:c.id,label:c.action.replace(/^Next:\s*/,""),stepId:a};switch(a){case"connect-services":return{id:"preview-connect-services",label:"Connect services",stepId:a};case"linear-workspace":return{id:"complete-linear-workspace",label:"Set up Linear workspace",stepId:a};case"vercel-bridge":return{id:"complete-vercel-bridge",label:"Set up Vercel webhook bridge",stepId:a};case"local-setup":return{id:"preview-local-files",label:"Preview setup files",stepId:a};case"local-readiness":return{id:"review-local-readiness",label:"Review local readiness checks",stepId:a};case"cloud-secrets":return{id:"complete-cloud-secrets",label:"Connect cloud secrets",stepId:a};case"target-workflow":return{id:"complete-target-workflow",label:"Install target repo workflow",stepId:a};case"ready-for-first-run":return{id:"review-first-run-readiness",label:"Review final readiness state",stepId:a}}}(a,I),inspectable:!0,actionable:b&&(f||c.length>0)}}),N=I[0],O=N?{id:N.id,label:N.action.replace(/^Next:\s*/,""),stepId:N.stepId}:M.find(a=>a.id===K)?.primaryAction,P=function(a){if(a.staleSmokeDiagnostics.hasStaleConfig){let b=a.staleSmokeDiagnostics.staleTargetRepos.length>0,c=a.staleSmokeDiagnostics.suggestedHarnessDispatchRepo;return{id:"fix-stale-smoke-config",stepId:"local-setup",title:"I need this from you now",problem:"Your setup points at an old disposable smoke-test repo.",whyItMatters:"That repo may have been deleted after the M5.5 smoke test, so GitHub access checks fail.",neededFromYou:b?c?`Reset GITHUB_DISPATCH_REPOSITORY to ${c}, and enter the target repo you actually intend to use.`:"Reset the stale harness dispatch repo and enter the target repo you actually intend to use.":c?`Reset GITHUB_DISPATCH_REPOSITORY to ${c}.`:"Reset the stale harness dispatch repo to your current harness repo.",primaryCtaLabel:"Preview setup files",secondaryCtaLabel:"Show technical details",tone:"error"}}if(a.highestPriorityBlocker?.id==="harness-repo-access-denied")return{id:"confirm-harness-repo-access",stepId:"cloud-secrets",title:"I need this from you now",problem:y(a.highestPriorityBlocker.message),whyItMatters:"Cloud secrets setup cannot continue until the harness dispatch repo is reachable with your GitHub token.",neededFromYou:"Confirm the harness dispatch repo is the one you intend to use, or fix local setup if it is wrong.",primaryCtaLabel:"Connect cloud secrets",secondaryCtaLabel:"Show technical details",tone:"error"};if(a.highestPriorityBlocker){let b="setup_needed"===a.highestPriorityBlocker.tone,c="missing-config-local"===a.highestPriorityBlocker.id||"config-unresolved"===a.highestPriorityBlocker.id?"Step 4 of 7 \xb7 Choose target repo":"connect-services"===a.highestPriorityBlocker.stepId?"Step 1 of 7 \xb7 Connect services":"linear-workspace"===a.highestPriorityBlocker.stepId?"Step 2 of 7 \xb7 Set up Linear workspace":"vercel-bridge"===a.highestPriorityBlocker.stepId?"Step 3 of 7 \xb7 Set up Vercel webhook bridge":"Step 1 of 7 \xb7 Connect services";return{id:a.highestPriorityBlocker.id,stepId:a.highestPriorityBlocker.stepId,title:b?c:"I need this from you now",problem:y(a.highestPriorityBlocker.message),whyItMatters:b?"This is normal for a first-time setup. Nothing is broken yet.":"Setup cannot continue until this blocker is resolved.",neededFromYou:a.highestPriorityBlocker.action.replace(/^Next:\s*/,""),primaryCtaLabel:b?"cloud-secrets"===a.highestPriorityBlocker.stepId||"target-workflow"===a.highestPriorityBlocker.stepId?"cloud-secrets"===a.highestPriorityBlocker.stepId?"Connect cloud secrets":"Install target repo workflow":("missing-config-local"===a.highestPriorityBlocker.id||a.highestPriorityBlocker.id,"Continue"):a.highestPriorityBlocker.action.replace(/^Next:\s*/,""),secondaryCtaLabel:"Show technical details",tone:b?"setup_needed":"error"}}}({highestPriorityBlocker:N,staleSmokeDiagnostics:b});return{steps:M,currentStepId:K,highestPriorityBlocker:N,nextRecommendedAction:O,primaryTask:P,staleSmokeDiagnostics:b,remoteSetupBlockedByUpstream:b.hasStaleConfig,readyForFirstRun:H,localReadinessBlockersCleared:B,localReadinessReviewed:C,localReadinessComplete:D,cloudSecretsBlockersCleared:E,cloudSecretsReviewed:F,nonBlockingWarnings:J,prohibitedActionsNote:"M6 confirms setup readiness only. It does not trigger harness phases, Linear automation, cloud workflow dispatch, implementation branches, or issue-work PRs. A later milestone may add a safe first-issue dry run."}}c(48075);var A=c(85711);let B=["connect-services","linear-workspace","vercel-bridge","local-setup","local-readiness","cloud-secrets","target-workflow","ready-for-first-run"],C=["connect-services","linear-workspace","vercel-bridge","choose-target-repos","local-readiness","cloud-secrets","target-workflow","ready-for-first-run"],D=[{id:"connect-services",shortLabel:"Services",accessibleLabel:"Connect services"},{id:"linear-workspace",shortLabel:"Linear",accessibleLabel:"Set up Linear workspace"},{id:"vercel-bridge",shortLabel:"Bridge",accessibleLabel:"Set up PDev automation bridge"},{id:"choose-target-repos",shortLabel:"Repositories",accessibleLabel:"Choose target repositories"},{id:"local-readiness",shortLabel:"Readiness",accessibleLabel:"Check local readiness"},{id:"cloud-secrets",shortLabel:"Secrets",accessibleLabel:"Connect cloud secrets"},{id:"target-workflow",shortLabel:"Workflow",accessibleLabel:"Install target workflow"}];function E(a){return C.indexOf(a)}function F(a){let b=E(a);return b<=0?null:C[b-1]??null}function G(a){return a.overview.localFilesPresent}var H=c(44527),I=c(94496),J=c.n(I),K=c(46457),L=c(62792);function M(a,b){let c=a.trim(),d=b?.trim();return!!(c&&d&&c===d)}var N=c(75704);let O=e.forwardRef(({className:a,orientation:b="horizontal",...c},e)=>(0,d.jsx)("div",{ref:e,className:(0,N.cn)("shrink-0 bg-border","horizontal"===b?"h-px w-full":"h-full w-px",a),...c}));O.displayName="Separator";var P=c(42196),Q=c(65101),R=c(85719),S=c(97457),T=c(23677),U=c(46196),V=c(94274),W=c(98862);let X=/^https:\/\/github\.com\/[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+\/?$/;function Y({values:a,highlightStaleTarget:b=!1,variant:c="advanced",guidedSection:f="full",suggestedHarnessDispatchRepo:g,savedHarnessDispatchRepository:h="",harnessRepoVerification:i={state:"unchecked"},verifyingHarnessRepo:j=!1,guidedRepos:k,repoVerification:l={},verifyingRepoRowId:m=null,onChange:n,onGuidedReposChange:o,onVerifyRepo:p,onRepoBlur:q,onAddRepo:r,onRemoveRepo:s,harnessDispatchRepository:t="",onHarnessDispatchRepositoryChange:u,onVerifyAndUseHarnessRepo:v,harnessConnectedAutomatically:w=!1,harnessRepoInheritedFromStep1:x=!1,githubTokenSourceHint:y,activeGithubTokenFingerprint:z=null}){let[B,C]=(0,e.useState)({}),[D,E]=(0,e.useState)(!1),[F,G]=(0,e.useState)(t),I=t.trim()||h.trim()||g?.trim()||"",J=h.trim()?"Saved in .env.local":g?.trim()?"Detected from git remote":"Not detected yet",L=t.trim(),M="connected"===i.state&&i.verifiedRepo===L&&(!z||i.verifiedGithubTokenFingerprint===z),N=(b,c)=>{let d=[...a.repos];d[b]={...d[b]??{id:"",targetRepo:""},...c},n({...a,repos:d})},O=(a,b)=>{k&&o&&o(k.map(c=>c.rowId===a?{...c,...b}:c))};if("guided-minimal"===c){let a=k&&k.length>0?k:[{rowId:"fallback-repo",id:"",targetRepo:""}],c="full"===f||"target-repos"===f;return(0,d.jsxs)("div",{className:"space-y-6",children:["full"===f||"harness"===f?(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:"harness-dispatch-repository-guided",children:"Harness workspace"}),D?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(R.p,{id:"harness-dispatch-repository-guided",value:F,onChange:a=>G(a.target.value),autoComplete:"off"}),(0,d.jsx)("p",{className:A.PI.secretHint,children:"Enter the harness repo slug or GitHub URL. Saving to `.env.local` happens when you verify and use this repo, then create or update local setup files."}),"failed"===i.state&&i.message?(0,d.jsx)(V.r,{message:i.message,failed:!0}):null,i.limitation?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:i.limitation}):null,(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[v?(0,d.jsx)(H.$,{type:"button",size:"sm",onClick:()=>v(F),disabled:j||!F.trim(),children:j?"Verifying harness repo…":"Verify and use harness repo"}):null,(0,d.jsx)(H.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{G(L||I),E(!1)},children:"Cancel"})]})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("p",{className:"text-sm font-medium break-all",children:L||I||"Not connected yet"}),(0,d.jsx)("p",{className:A.PI.secretHint,children:"This is the private GitHub repo where harness GitHub Actions secrets and future dispatch/workflow setup are configured. It is not your target app repo."}),w?(0,d.jsx)("p",{className:A.PI.secretHint,children:"Connected automatically during Step 1."}):x?(0,d.jsx)("p",{className:A.PI.secretHint,children:"Connected during Step 1. You can use a different harness repo if needed."}):(0,d.jsx)("p",{className:A.PI.secretHint,children:J}),h.trim()&&g?.trim()&&h.trim()!==g.trim()?(0,d.jsxs)("p",{className:A.PI.secretHint,children:["Detected git remote: ",g,". Your saved override in `.env.local` takes precedence."]}):null,!h.trim()&&g?.trim()&&I===g?(0,d.jsx)("p",{className:A.PI.secretHint,children:"If this detected repo is correct, you do not need to change it."}):null,M&&i.message?(0,d.jsx)(V.r,{message:i.message}):null,w||x||M||!L?null:(0,d.jsx)("p",{className:A.PI.secretHint,children:"Verify and use this harness repo before creating local setup files."}),(0,d.jsx)(H.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{G(L||I),E(!0)},children:w?"Use a different or existing harness repo":L?"Update harness repo":"Enter harness repo"})]})]}):null,c?(0,d.jsx)("div",{className:"space-y-4",children:a.map((a,c)=>{let e=l[a.rowId]??{state:"unchecked"},f=function(a){switch(a){case"checking":return{label:"Checking",variant:"secondary"};case"connected":return{label:"Connected",variant:"success"};case"failed":return{label:"Failed",variant:"destructive"};default:return{label:"Not connected yet",variant:"secondary"}}}(e.state),g=a.targetRepo.trim(),h=(0,W.bE)(e,g,z),i=(0,W.YQ)(e,g,z),j=m===a.rowId?"Checking repo + workflow access…":h?"Verified":"Verify repo + workflow access",k=m===a.rowId||h||!X.test(g);return(0,d.jsxs)("div",{className:"rounded-lg border border-border bg-card p-4 space-y-3",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-2",children:[(0,d.jsxs)("p",{className:"inline-flex items-center gap-2 text-sm font-medium",children:[(0,d.jsx)(U.S,{}),(0,d.jsxs)("span",{children:["Target repo ",c+1]})]}),(0,d.jsx)(K.W,{label:f.label,variant:f.variant})]}),(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:`target-repo-${a.rowId}`,children:"Target repo URL"}),(0,d.jsx)(R.p,{id:`target-repo-${a.rowId}`,value:a.targetRepo,onChange:b=>O(a.rowId,{targetRepo:b.target.value}),onBlur:()=>q?.(a.rowId),placeholder:"https://github.com/acme/my-product",className:b&&0===c?"border-destructive/60":void 0,autoComplete:"off"}),(0,d.jsx)("p",{className:A.PI.secretHint,children:"Copy-paste the main repo URL."}),b&&0===c?(0,d.jsx)("p",{className:A.PI.secretHint,children:"Enter the target repo you actually intend to use. The app will not guess or invent a replacement repo for you."}):null]}),h?(0,d.jsx)(V.r,{message:"Connected"}):i&&e.message?(0,d.jsx)(V.r,{message:e.message,failed:!0}):null,e.limitation&&(h||i)?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:e.limitation}):null,(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[p?(0,d.jsx)(H.$,{type:"button",variant:"outline",size:"sm",onClick:()=>p(a.rowId),disabled:k,children:j}):null,c>0&&s?(0,d.jsx)(H.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>s(a.rowId),children:"Remove repo"}):null]}),(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(H.$,{type:"button",variant:"outline",size:"sm",onClick:()=>C(b=>({...b,[a.rowId]:!b[a.rowId]})),children:B[a.rowId]?"Hide advanced branch settings":"Advanced branch settings"}),B[a.rowId]?(0,d.jsxs)("div",{className:A.PI.fieldGrid,children:[(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:`guided-base-branch-${a.rowId}`,children:"Base branch"}),(0,d.jsx)(R.p,{id:`guided-base-branch-${a.rowId}`,value:a.baseBranch??"",onChange:b=>O(a.rowId,{baseBranch:b.target.value}),placeholder:"dev",autoComplete:"off"})]}),(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:`guided-production-branch-${a.rowId}`,children:"Production branch"}),(0,d.jsx)(R.p,{id:`guided-production-branch-${a.rowId}`,value:a.productionBranch??"",onChange:b=>O(a.rowId,{productionBranch:b.target.value}),placeholder:"main",autoComplete:"off"})]}),(0,d.jsx)("p",{className:A.PI.secretHint,children:"Leave blank to use defaults: dev for base branch and main for production branch."})]}):null]})]},a.rowId)})}):null,c&&r?(0,d.jsx)(H.$,{type:"button",variant:"outline",onClick:r,children:"Add additional repo"}):null]})}let P=a.repos[0]??{id:"",targetRepo:""};return(0,d.jsxs)("div",{className:"space-y-6",children:[(0,d.jsxs)("div",{className:A.PI.fieldGrid,children:[(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:"linear-team-key",children:"Linear team key"}),(0,d.jsx)(R.p,{id:"linear-team-key",value:a.linearTeamKey??"",onChange:b=>n({...a,linearTeamKey:b.target.value})})]}),(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:"model-id",children:"Model ID"}),(0,d.jsx)(R.p,{id:"model-id",value:a.modelId??"",onChange:b=>n({...a,modelId:b.target.value})}),(0,d.jsx)("p",{className:A.PI.secretHint,children:"Local setup only. Harness runs use standard Composer 2.5 policy."})]})]}),(0,d.jsxs)("div",{className:A.PI.fieldGrid,children:[(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:"repo-id",children:"Repo config ID"}),(0,d.jsx)(R.p,{id:"repo-id",value:P.id,onChange:a=>N(0,{id:a.target.value})})]}),(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:"target-repo",children:"Target repo URL"}),(0,d.jsx)(R.p,{id:"target-repo",value:P.targetRepo,onChange:a=>N(0,{targetRepo:a.target.value}),className:b?"border-destructive/60":void 0}),b?(0,d.jsx)("p",{className:A.PI.secretHint,children:"Enter the target repo you actually intend to use. The app will not guess or invent a replacement repo for you."}):null]}),(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:"linear-projects",children:"Linear projects"}),(0,d.jsx)(R.p,{id:"linear-projects",value:P.linearProjects??"",onChange:a=>N(0,{linearProjects:a.target.value}),placeholder:"Comma-separated"})]}),(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:"linear-teams",children:"Linear teams"}),(0,d.jsx)(R.p,{id:"linear-teams",value:P.linearTeams??"",onChange:a=>N(0,{linearTeams:a.target.value}),placeholder:"Comma-separated"})]}),(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:"base-branch",children:"Base branch"}),(0,d.jsx)(R.p,{id:"base-branch",value:P.baseBranch??"",onChange:a=>N(0,{baseBranch:a.target.value}),placeholder:"dev"})]}),(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:"production-branch",children:"Production branch"}),(0,d.jsx)(R.p,{id:"production-branch",value:P.productionBranch??"",onChange:a=>N(0,{productionBranch:a.target.value}),placeholder:"main"})]}),(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:"preview-provider",children:"Preview provider"}),(0,d.jsx)(R.p,{id:"preview-provider",value:P.previewProvider??"",onChange:a=>N(0,{previewProvider:a.target.value}),placeholder:"vercel"})]}),(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:"integration-preview-url",children:"Integration preview URL"}),(0,d.jsx)(R.p,{id:"integration-preview-url",value:P.integrationPreviewUrl??"",onChange:a=>N(0,{integrationPreviewUrl:a.target.value})})]}),(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:"production-url",children:"Production URL"}),(0,d.jsx)(R.p,{id:"production-url",value:P.productionUrl??"",onChange:a=>N(0,{productionUrl:a.target.value})})]}),(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:"integration-success-status",children:"Integration success status"}),(0,d.jsx)(R.p,{id:"integration-success-status",value:P.integrationSuccessStatus??"",onChange:a=>N(0,{integrationSuccessStatus:a.target.value}),placeholder:"Merged to Dev"})]}),(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:"production-success-status",children:"Production success status"}),(0,d.jsx)(R.p,{id:"production-success-status",value:P.productionSuccessStatus??"",onChange:a=>N(0,{productionSuccessStatus:a.target.value}),placeholder:"Merged / Deployed"})]})]}),(0,d.jsxs)("div",{className:A.PI.fieldStack,children:[(0,d.jsx)(S.J,{htmlFor:"validation-commands",children:"Validation commands"}),(0,d.jsx)(T.T,{id:"validation-commands",value:P.validationCommands??"",onChange:a=>N(0,{validationCommands:a.target.value}),placeholder:"One command per line",rows:4})]})]})}var Z=c(86482);function $({title:a,content:b,className:c}){return(0,d.jsxs)("div",{className:(0,N.cn)(A.Es.stackSm,c),children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:a}),(0,d.jsx)("pre",{className:(0,N.cn)(A.xp.previewPanel,"font-mono whitespace-pre-wrap"),children:b??"No preview available."})]})}function _({envPreview:a,configPreview:b,validationError:c,variant:e="advanced",isLoading:f=!1}){return f?null:a||b||c?(0,d.jsxs)("div",{className:"space-y-4",children:[c?(0,d.jsx)("p",{className:"text-sm text-destructive",children:c}):null,a?(0,d.jsx)($,{title:".env.local preview (redacted)",content:a}):null,b?(0,d.jsx)($,{title:".harness/config.local.json preview",content:b}):null]}):"guided"===e?null:(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Generate a preview to review redacted local file changes before applying."})}var aa=c(30516);function ab({plan:a,confirmed:b,onConfirmedChange:c,disabled:e=!1,disabledReason:f,variant:g="advanced",intent:h="create"}){return"guided"===g?(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)(aa.S,{id:"confirm-local-write-guided",checked:b,disabled:e,onChange:a=>c(a.target.checked)}),(0,d.jsx)(S.J,{htmlFor:"confirm-local-write-guided",className:"cursor-pointer text-sm leading-snug",children:"update"===h?"I understand this will update local setup files on this machine.":"I understand this will create local setup files on this machine."})]}),e&&f&&f.includes("validation")?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:f}):null]}):(0,d.jsxs)("div",{className:A.PI.confirmationBox,children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:"Confirm local file writes"}),(0,d.jsxs)("ul",{className:"list-disc space-y-1 pl-5 text-sm text-muted-foreground",children:[(0,d.jsxs)("li",{children:[".env.local — ",a?.envAction==="update"?"update":"create"]}),(0,d.jsxs)("li",{children:[".harness/config.local.json —"," ",a?.configAction==="update"?"update":"create"]}),(0,d.jsx)("li",{children:"Files are local, gitignored, and written only on this machine."}),(0,d.jsx)("li",{children:"No GitHub Actions secrets, target repo workflows, Linear writes, cloud workflow dispatch, tags, releases, settings, or live harness phases will run."})]}),(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)(aa.S,{id:"confirm-local-write",checked:b,disabled:e,onChange:a=>c(a.target.checked)}),(0,d.jsx)(S.J,{htmlFor:"confirm-local-write",className:"cursor-pointer text-sm leading-snug",children:"I reviewed the redacted preview and want to write these local setup files."})]}),e&&f?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:f}):null]})}function ac({className:a,...b}){return(0,d.jsx)("div",{className:(0,N.cn)("animate-pulse rounded-md bg-muted",a),...b})}function ad({open:a,onOpenChange:b,isLoading:c,previewError:e,envPreview:f,configPreview:g,validationError:h,previewIsCurrent:i}){return(0,d.jsxs)("details",{open:a,className:"rounded-md border border-border bg-background p-3",children:[(0,d.jsx)("summary",{className:"cursor-pointer text-sm font-medium",onClick:c=>{c.preventDefault(),b(!a)},children:"Review generated files"}),(0,d.jsx)("div",{className:"mt-3 space-y-3",children:c?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Generating redacted local file changes…"}),(0,d.jsxs)("div",{className:"space-y-2","aria-hidden":"true",children:[(0,d.jsx)(ac,{className:"h-4 w-[60%]"}),(0,d.jsx)(ac,{className:"h-24 w-full"}),(0,d.jsx)(ac,{className:"h-4 w-[40%]"}),(0,d.jsx)(ac,{className:"h-32 w-full"})]})]}):e?(0,d.jsx)("p",{className:"text-sm text-destructive",children:e}):(0,d.jsx)(_,{variant:"guided",envPreview:i?f:void 0,configPreview:i?g:void 0,validationError:i?h:void 0})})]})}function ae({success:a,message:b,summary:c}){return(0,d.jsxs)("div",{className:"space-y-3 rounded-md border border-border p-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(K.W,{label:a?"Applied":"Failed",variant:a?"success":"destructive"}),(0,d.jsx)("p",{className:"text-sm font-medium",children:b})]}),a&&c?(0,d.jsxs)("dl",{className:"grid grid-cols-1 gap-3 text-sm md:grid-cols-2",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("dt",{className:"text-muted-foreground",children:"Local files present"}),(0,d.jsx)("dd",{children:c.overview.localFilesPresent?"Yes":"No"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("dt",{className:"text-muted-foreground",children:"Config resolved"}),(0,d.jsx)("dd",{children:c.overview.configResolved?"Yes":"No"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("dt",{className:"text-muted-foreground",children:"LINEAR_API_KEY"}),(0,d.jsx)("dd",{children:c.envKeyPresence.LINEAR_API_KEY?"Set":"Missing"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("dt",{className:"text-muted-foreground",children:"CURSOR_API_KEY"}),(0,d.jsx)("dd",{children:c.envKeyPresence.CURSOR_API_KEY?"Set":"Missing"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("dt",{className:"text-muted-foreground",children:"GITHUB_TOKEN"}),(0,d.jsx)("dd",{children:c.envKeyPresence.GITHUB_TOKEN?"Set":"Missing"})]})]}):null]})}var af=c(20543);function ag({heading:a,explanation:b,continueLabel:c,onContinue:e,details:f}){return(0,d.jsxs)("div",{className:"space-y-4 rounded-md border border-emerald-500/40 bg-emerald-500/5 p-4","data-testid":"guided-step-success-panel",role:"status",children:[(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"mt-0.5 flex size-6 shrink-0 items-center justify-center rounded-full border border-emerald-600 text-sm font-semibold text-emerald-700 dark:border-emerald-400 dark:text-emerald-300","aria-hidden":"true",children:"✓"}),(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:a}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:b}),f&&f.length>0?(0,d.jsx)("ul",{className:"mt-2 list-disc space-y-1 pl-5 text-sm text-muted-foreground",children:f.map(a=>(0,d.jsx)("li",{children:a},a))}):null]})]}),(0,d.jsx)(H.$,{type:"button",onClick:e,children:c})]})}let ah=["Connecting to GitHub","Repository reconciliation","Object import","Commit creation","Push","Remote verification","Saving configuration"],ai={"Creating private workspace":1,"Preparing workspace snapshot":2,"Uploading workspace":3,"Verifying workspace":5,"Saving configuration":6},aj=new Map(ah.map((a,b)=>[a,b])),ak={LINEAR_API_KEY:"linear",CURSOR_API_KEY:"cursor",GITHUB_TOKEN:"github",VERCEL_TOKEN:"vercel"},al={LINEAR_API_KEY:"linearApiKey",CURSOR_API_KEY:"cursorApiKey",GITHUB_TOKEN:"githubToken",VERCEL_TOKEN:"vercelToken"};function am({mode:a="advanced",guidedStep:b,onGuidedStepChange:c,initialEnv:f,initialConfig:g,initialHarnessProvisioningSummary:h,highlightStaleDispatch:i=!1,highlightStaleTarget:j=!1,onSummaryUpdated:k,onHarnessProvisioningSummaryUpdated:l,onUiStateChange:m,onGuidedLocalApplySuccess:n,onConnectServicesComplete:o,onConnectServicesSucceeded:p,onContinue:q,onStepCompleted:r,localSetupFilesExist:s=!1}){let t=(0,L.I)(),u=(0,e.useRef)(null),v=(0,e.useRef)(1),w=(0,e.useRef)({LINEAR_API_KEY:0,CURSOR_API_KEY:0,GITHUB_TOKEN:0,VERCEL_TOKEN:0}),x=(0,e.useRef)({}),[y,z]=(0,e.useState)("connect-services"),B=b??y,[C,D]=(0,e.useState)({harnessConfigPath:f.harnessConfigPath,githubDispatchRepository:f.githubDispatchRepository||f.suggestedHarnessDispatchRepo||"",linearApiKey:"",cursorApiKey:"",githubToken:"",vercelToken:""}),[E,F]=(0,e.useState)(g),[G,I]=(0,e.useState)(()=>(0,W.Kj)(g,v.current)),[J,K]=(0,e.useState)(f.secretPresence),[N,R]=(0,e.useState)(()=>(0,W.FE)(f.serviceConnectionSummaries)),[S,T]=(0,e.useState)(null),[U,V]=(0,e.useState)({}),[$,aa]=(0,e.useState)(null),[ac,am]=(0,e.useState)({state:"unchecked"}),[an,ao]=(0,e.useState)(null),[ap,aq]=(0,e.useState)(null),[ar,as]=(0,e.useState)(null),[at,au]=(0,e.useState)(!1),[av,aw]=(0,e.useState)(null),[ax,ay]=(0,e.useState)(null),[az,aA]=(0,e.useState)(!1),[aB,aC]=(0,e.useState)([]),[aD,aE]=(0,e.useState)(!1),[aF,aG]=(0,e.useState)([]),aH=(0,e.useRef)(null),aI=(0,e.useRef)(null),[aJ,aK]=(0,e.useState)(!1),[aL,aM]=(0,e.useState)(!1),[aN,aO]=(0,e.useState)(null),[aP,aQ]=(0,e.useState)(null),[aR,aS]=(0,e.useState)(!1),[aT,aU]=(0,e.useState)(null),[aV,aW]=(0,e.useState)(null),[aX,aY]=(0,e.useState)(null),[aZ,a$]=(0,e.useState)(null),[a_,a0]=(0,e.useState)(null),[a1,a2]=(0,e.useState)("create"),[a3,a4]=(0,e.useState)(null),[a5,a6]=(0,e.useState)(!1),a7=(0,e.useMemo)(()=>({...E,repos:(0,W.ai)(G)}),[E,G]),a8=(0,e.useMemo)(()=>"guided"===a?function(a){if(!a.repos.length)return a;let b=function(a){let b=new Set,c=[];for(let d of a){let a=d.id.trim()||function(a){let b=a.trim().match(/^https:\/\/github\.com\/[A-Za-z0-9_.-]+\/([A-Za-z0-9_.-]+)\/?$/);return b?.[1]??""}(d.targetRepo)||"target-repo",e=a,f=2;for(;b.has(e);)e=`${a}-${f}`,f+=1;b.add(e),c.push(e)}return c}(a.repos);return{...a,repos:a.repos.map((a,c)=>({...a,id:b[c]??a.id}))}}(a7):E,[E,a7,a]),a9=(0,e.useMemo)(()=>({env:C,config:a8}),[C,a8]),ba=null!==aN&&null!==aP&&JSON.stringify(aP)===JSON.stringify(a9),bb=(0,e.useCallback)(a=>{if(c)return void c(a);z(a)},[c]);(0,e.useCallback)(a=>{bb(a),requestAnimationFrame(()=>{u.current?.scrollIntoView({block:"start",behavior:t?"auto":"smooth"})})},[t,bb]);let bc=a=>(function(a){if(!a.presence[a.key]||"connected"!==a.verification[a.key].state)return!1;let b=a.envValues[al[a.key]].trim();return!b||(0,W.Mz)(a.verification[a.key],b)})({key:a,presence:J,verification:N,envValues:C}),bd=bc("LINEAR_API_KEY")&&bc("CURSOR_API_KEY")&&bc("GITHUB_TOKEN")&&bc("VERCEL_TOKEN"),be=J.LINEAR_API_KEY&&J.CURSOR_API_KEY&&J.GITHUB_TOKEN&&J.VERCEL_TOKEN,bf="guided"===a&&"choose-target-repos"===B,bg=(0,e.useMemo)(()=>(0,W.TW)({typedToken:C.githubToken,hasSavedToken:J.GITHUB_TOKEN}),[C.githubToken,J.GITHUB_TOKEN]);a8.repos.length>0&&a8.repos;let bh=G.every(a=>X.test(a.targetRepo.trim())),bi=G.every(a=>(0,W.bE)(U[a.rowId],a.targetRepo.trim(),bg?.fingerprint??null)),bj=C.githubDispatchRepository.trim()||f.savedHarnessDispatchRepository?.trim()||"",bk=M(bj,ar),bl=function(a){let b=a.effectiveRepo.trim();if(!b)return!1;if(M(b,a.step1TrustedRepo)||a.serverValidatedRepo?.trim()===b)return!0;var c={effectiveRepo:b,verificationState:a.manualVerification.state,verifiedRepo:a.manualVerification.verifiedRepo,activeGithubTokenFingerprint:a.activeGithubTokenFingerprint,verifiedGithubTokenFingerprint:a.manualVerification.verifiedGithubTokenFingerprint};let d=c.effectiveRepo.trim();return!!d&&"connected"===c.verificationState&&c.verifiedRepo===d&&(!c.activeGithubTokenFingerprint||c.verifiedGithubTokenFingerprint===c.activeGithubTokenFingerprint)}({effectiveRepo:bj,step1TrustedRepo:ar,serverValidatedRepo:ap,manualVerification:ac,activeGithubTokenFingerprint:bg?.fingerprint??null}),bm=(0,e.useCallback)(async()=>{let a,b=a=>{aC(a),aA(!0),p?.()};if("verified-and-persisted"===h.state||"skipped-source-mode"===h.state||"skipped-not-packaged"===h.state){let a=h.harnessDispatchRepo;a&&(as(a),aq(a),am({state:"connected",verifiedRepo:a,message:h.message})),b([a?`Workspace reconnected: ${a}`:"Workspace already verified","Configuration saved"]);return}au(!0),ay(null),aA(!1),aC([]);let c=aH.current??("undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`provision-${Date.now()}-${Math.random().toString(16).slice(2)}`);aH.current=c,aI.current=performance.now(),aw(ah[0]);try{let d,e=await fetch("/api/setup/preview-harness-repo-provisioning",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({operationId:c})}),g=await e.json();if(!e.ok)throw Error(g.error??"Provisioning preview failed");if("skipped-not-packaged"===g.state){let a=C.githubDispatchRepository.trim()||f.savedHarnessDispatchRepository?.trim()||f.suggestedHarnessDispatchRepo?.trim()||"";a&&(as(a),aq(a)),l?.({...h,state:"skipped-not-packaged",harnessDispatchRepo:a||null,message:g.message,recoverable:!1}),b([a?`Workspace reconnected: ${a}`:"Workspace setup skipped for source mode","Configuration saved"]);return}a=setInterval(()=>{fetch("/api/setup/harness-provisioning-progress").then(async a=>{if(!a.ok)return;let b=await a.json();if(b.uiPhaseLabel){let a="number"==typeof b.completed&&"number"==typeof b.total&&b.total>0?` (${b.completed}/${b.total})`:"";aw(`${b.uiPhaseLabel}${a}`)}}).catch(()=>{})},1e3);let i=new AbortController,j=setTimeout(()=>i.abort(),18e4);try{d=await fetch("/api/setup/apply-harness-repo-provisioning",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({confirmed:!0,fingerprint:g.fingerprint,operationId:g.operationId??c}),signal:i.signal})}catch(a){if(a instanceof DOMException&&"AbortError"===a.name)return void ay(`Workspace setup timed out after ${Math.round(180)}s. Operation ID: ${g.operationId}. Retry Step 1 Continue to resume or reconcile — the repository may already exist.`);throw a}finally{clearTimeout(j)}let m=await d.json();if(!d.ok)throw Error(m.error??"Provisioning apply failed");if("verified-and-persisted"!==m.apply.state){if(m.apply.recoverable){let a=m.apply.uiPhaseLabel?` (${m.apply.uiPhaseLabel})`:"",b=m.apply.operationId?` Operation ID: ${m.apply.operationId}.`:` Operation ID: ${g.operationId}.`;ay(`${m.apply.message}${a}.${b} Retry will resume or reconcile.`);return}throw Error(m.apply.message??"Harness workspace provisioning did not complete.")}let n=m.apply.harnessDispatchRepo;n&&(as(n),ao(n),D(a=>({...a,githubDispatchRepository:n})),am({state:"connected",verifiedRepo:n,message:m.apply.message})),l?.({...h,state:m.apply.state,harnessDispatchRepo:n,message:m.apply.message,recoverable:m.apply.recoverable,verifiedSavedRepo:"verified-and-persisted"===m.apply.state,connectedAutomatically:!!n}),k?.(m.summary);try{let a=await fetch("/api/setup/harness-provisioning-summary"),b=await a.json();a.ok&&l?.(b)}catch{}aw(m.apply.message);let o=null!==aI.current?Math.round(performance.now()-aI.current):void 0;b([n?`Workspace created or reconnected: ${n}`:"Workspace verified","Snapshot uploaded","Workspace verified","Configuration saved",...void 0!==o?[`Browser click-to-success: ${o}ms`]:[]])}catch(a){ay(a instanceof Error?a.message:"Harness workspace provisioning failed")}finally{a&&clearInterval(a),au(!1)}},[C.githubDispatchRepository,f.savedHarnessDispatchRepository,f.suggestedHarnessDispatchRepo,h,p,l,k]),bn=()=>{a0(null),a$(null),aY(null)},bo=(0,e.useCallback)(()=>{bn(),aO(null),aQ(null),aW(null),aS(!1),aE(!1),aG([])},[]),bp=a=>{R(b=>({...b,[a]:{state:"unchecked"}}))},bq=(0,e.useCallback)(()=>{V({})},[]),br=(0,e.useCallback)(a=>{V(b=>{let c={...b};for(let d of a){let a=b[d.rowId];if(!a)continue;let e=d.targetRepo.trim();a.verifiedTargetRepo&&a.verifiedTargetRepo!==e?c[d.rowId]={state:"unchecked"}:a.attemptedTargetRepo&&a.attemptedTargetRepo!==e&&(c[d.rowId]={state:"unchecked"})}return c})},[]),bs=(0,e.useCallback)(async a=>{let b=await fetch("/api/setup/preview-connect-services",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(C)}),c=await b.json();if(!b.ok)throw Error(c.error??"Preview failed");let d=await fetch("/api/setup/apply-connect-services",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({env:C,confirmed:!0,fingerprint:c.fingerprint})}),e=await d.json();if(!d.ok)throw Error(e.error??"Save failed");k?.(e.summary),K({LINEAR_API_KEY:e.summary.envKeyPresence.LINEAR_API_KEY,CURSOR_API_KEY:e.summary.envKeyPresence.CURSOR_API_KEY,GITHUB_TOKEN:e.summary.envKeyPresence.GITHUB_TOKEN,VERCEL_TOKEN:e.summary.envKeyPresence.VERCEL_TOKEN}),D(b=>({...b,[al[a]]:""}))},[C,k]),bt=(0,e.useCallback)(async(a,b)=>{let c=C[al[a]].trim(),d=c?(0,W.ar)(c):void 0,e=c?`typed:${d}`:"saved",f=x.current[a];if(f?.requestKey===e)return f.promise;f?.controller.abort();let g=new AbortController,h=w.current[a]+1;w.current[a]=h,T(a),R(b=>({...b,[a]:{state:"checking"}}));let i=(async()=>{let e=await fetch("/api/setup/verify-service",{method:"POST",headers:{"Content-Type":"application/json"},signal:g.signal,body:JSON.stringify({service:ak[a],...c?{token:c}:{}})}),f=await e.json();if(!e.ok)throw Error(f.error??"Verification failed");if(w.current[a]===h){if("connected"!==f.status)return void R(b=>({...b,[a]:{state:"failed",attemptedValueFingerprint:d,message:f.message,limitation:f.limitation,label:f.label}}));c&&b.saveOnConnected&&await bs(a),w.current[a]===h&&R(b=>({...b,[a]:{state:"connected",verifiedValueFingerprint:d,message:f.message,limitation:f.limitation,label:f.label}}))}})();x.current[a]={requestKey:e,id:h,controller:g,promise:i};try{await i}catch(b){if(g.signal.aborted||w.current[a]!==h)return;R(c=>({...c,[a]:{state:"failed",attemptedValueFingerprint:d,message:b instanceof Error?b.message:"Verification failed"}}))}finally{x.current[a]?.id===h&&delete x.current[a],w.current[a]===h&&T(null)}},[C,bs]),bu=(0,e.useCallback)(async a=>{await bt(a,{saveOnConnected:!0})},[bt]),bv=(0,e.useCallback)(async a=>{let b=a.trim(),c=(0,W.TW)({typedToken:C.githubToken,hasSavedToken:J.GITHUB_TOKEN}),d=c?.fingerprint??null;aK(!0),am({state:"checking"});try{let a=await fetch("/api/setup/verify-harness-repo",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({harnessDispatchRepo:b,...c?.tokenForRequest?{githubToken:c.tokenForRequest}:{}})}),e=await a.json();if(!a.ok)throw Error(e.error??"Harness repo verification failed");"connected"===e.status&&e.repoSlug?(bo(),D(a=>({...a,githubDispatchRepository:e.repoSlug})),am({state:"connected",verifiedRepo:e.repoSlug,verifiedGithubTokenFingerprint:d??void 0,message:e.message,limitation:e.limitation})):am({state:"failed",message:e.message,limitation:e.limitation})}catch(a){am({state:"failed",message:a instanceof Error?a.message:"Harness repo verification failed"})}finally{aK(!1)}},[C.githubToken,bo,J.GITHUB_TOKEN]),bw=(0,e.useCallback)(async a=>{let b=G.find(b=>b.rowId===a);if(!b)return;let c=b.targetRepo.trim(),d=(0,W.TW)({typedToken:C.githubToken,hasSavedToken:J.GITHUB_TOKEN}),e=d?.fingerprint??null;aa(a),V(b=>({...b,[a]:{state:"checking"}}));try{let b=await fetch("/api/setup/verify-target-repo",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetRepo:c,...d?.tokenForRequest?{githubToken:d.tokenForRequest}:{}})}),f=await b.json();if(!b.ok)throw Error(f.error??"Repo verification failed");V(b=>({...b,[a]:"connected"===f.status&&!1!==f.workflowInstallReady?{state:"connected",verifiedTargetRepo:c,verifiedGithubTokenFingerprint:e??void 0,message:f.message,repoSlug:f.repoSlug,limitation:f.limitation,workflowInstallReady:f.workflowInstallReady}:{state:"failed",attemptedTargetRepo:c,attemptedGithubTokenFingerprint:e??void 0,message:f.message,repoSlug:f.repoSlug,limitation:f.limitation,workflowInstallReady:f.workflowInstallReady}}))}catch(b){V(d=>({...d,[a]:{state:"failed",attemptedTargetRepo:c,attemptedGithubTokenFingerprint:e??void 0,message:b instanceof Error?b.message:"Repo verification failed"}}))}finally{aa(null)}},[C.githubToken,G,J.GITHUB_TOKEN]),bx=(0,e.useCallback)(a=>{bo();let b=G[0]?.rowId??(0,W.mD)(v.current);I([{rowId:b,id:a.resultingTargetRepoConfigId,targetRepo:a.repositoryUrl,baseBranch:"dev",productionBranch:"main",previewProvider:"none"}]),F(b=>({...b,repos:[{id:a.resultingTargetRepoConfigId,targetRepo:a.repositoryUrl,baseBranch:"dev",productionBranch:"main",previewProvider:"none"}]})),V({[b]:{state:"connected",verifiedTargetRepo:a.repositoryUrl,verifiedGithubTokenFingerprint:bg?.fingerprint??void 0,message:"Repository created and ready for local config.",repoSlug:a.repositoryFullName,workflowInstallReady:!1}}),a2("connect")},[bg?.fingerprint,G,bo]),by=(0,e.useCallback)(a=>{let b=C[al[a]].trim();b&&((0,W.Mz)(N[a],b)||bu(a))},[C,N,bu]),bz=(0,e.useCallback)(a=>{let b=G.find(b=>b.rowId===a);b&&X.test(b.targetRepo.trim())&&((0,W.bE)(U[a],b.targetRepo.trim(),bg?.fingerprint??null)||bw(a))},[bg?.fingerprint,G,U,bw]),bA=(0,e.useCallback)(async()=>{let a=await fetch("/api/setup/preview-local-files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a9)}),b=await a.json();if(!a.ok)throw Error(b.error??"Preview failed");return aO(b),aQ(a9),b},[a9]),bB=(0,e.useCallback)(async()=>{aU("preview"),aW(null),aS(!1);try{await bA(),aM(!0)}catch(a){aO(null),aQ(null),aW(a instanceof Error?a.message:"Preview failed"),aM(!0)}finally{aU(null)}},[bA]),bC=(0,e.useCallback)(a=>{aM(a),a&&!ba&&"preview"!==aT&&bB()},[bB,aT,ba]),bD=async()=>{if(bf){if(!aR)return}else if(!aN||!ba||!aR)return;aU("apply"),bn();try{let b=bf?ba&&aN?aN:await bA():aN;if(!b)throw Error("Preview failed");if(b.validationError)throw Error(b.validationError);let c=await fetch("/api/setup/apply-local-files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a9,confirmed:!0,fingerprint:b.fingerprint})}),d=await c.json();if(!c.ok)throw Error(d.error??"Apply failed");k?.(d.summary),K({LINEAR_API_KEY:d.summary.envKeyPresence.LINEAR_API_KEY,CURSOR_API_KEY:d.summary.envKeyPresence.CURSOR_API_KEY,GITHUB_TOKEN:d.summary.envKeyPresence.GITHUB_TOKEN,VERCEL_TOKEN:d.summary.envKeyPresence.VERCEL_TOKEN}),D(a=>({...a,linearApiKey:"",cursorApiKey:"",githubToken:"",vercelToken:""})),aO(null),aQ(null),aS(!1),aM(!1),"guided"===a?(aE(!0),aG([s?"Local setup files updated on this machine.":"Local setup files created on this machine.",".env.local and .harness/config.local.json are ready."]),n?.(),r?.()):(a0(!0),a$(d.summary))}catch(a){a0(!1),aY(a instanceof Error?a.message:"Apply failed")}finally{aU(null)}},bE=async()=>{await bD()},bF=null!==aT?"Wait for the current action to finish.":void 0,bG=ba?aN?.validationError?"Fix validation errors before confirming this write.":void 0:"Generate a preview before you can confirm this write.",bH=aN?.validationError?"Fix validation errors before confirming this write.":void 0,bI=bG??(aR?void 0:"Confirm that you understand local setup files will be created on this machine."),bJ=null===aT&&be&&bh&&bi&&bl&&aR,bK=null!==aT?"Wait for the current action to finish.":be?bh?bi?bl?aR?aN?.validationError?"Fix validation errors before creating setup files.":void 0:`Confirm that you understand local setup files will be ${s?"updated":"created"} on this machine.`:bj?"Verify and use your harness repo before creating local setup files.":"Complete Step 1 harness workspace setup before creating local setup files.":`Verify access for each target repo before ${s?"updating":"creating"} setup files.`:"Enter a valid GitHub target repo URL for each repo row to continue.":"Complete Step 1 service setup before creating local files.",bL=s?"Update local setup files":"Create local setup files",bM=s?"Updating…":"Creating…",bN=at?function(a){if(!a)return 0;let b=ah.find(b=>a.startsWith(b));if(b)return aj.get(b)??0;let c=Object.entries(ai).find(([b])=>a.startsWith(b));return c?c[1]:0}(av):ah.length;return"guided"===a?(0,d.jsxs)("div",{className:A.Es.section,children:[(0,d.jsx)("div",{ref:u}),(()=>{switch(B){case"connect-services":return(0,d.jsxs)(P.i,{title:`Step 1 of 7 \xb7 Connect services`,description:"Add the API keys the harness needs on this machine.",children:[(0,d.jsx)(Q.A,{values:C,presence:J,variant:"guided-services",verification:N,verifyingKey:S,onChange:a=>{bo(),aA(!1),aC([]),D(a),a.linearApiKey!==C.linearApiKey&&bp("LINEAR_API_KEY"),a.cursorApiKey!==C.cursorApiKey&&bp("CURSOR_API_KEY"),a.githubToken!==C.githubToken&&(bp("GITHUB_TOKEN"),bq()),a.vercelToken!==C.vercelToken&&bp("VERCEL_TOKEN")},onVerifyService:bu,onServiceBlur:by}),at?(0,d.jsx)(af.M,{phases:(0,af.y)({labels:[...ah],activeIndex:bN}),supportingText:av??ah[0]}):null,at||az?null:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:A.PI.actions,children:(0,d.jsx)(H.$,{type:"button",onClick:()=>{bm()},disabled:!bd,children:"Set up workspace"})}),bd?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"p-dev will use your GitHub token to create or reconnect your private `p-dev-harness` workspace before continuing."}):(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Verify and save each service key above. Continue unlocks after all four services are verified and saved locally."})]}),!at&&az?(0,d.jsx)(ag,{heading:"Workspace setup verified",explanation:"Your private harness workspace and local service configuration are ready.",details:aB,continueLabel:"Continue to Linear workspace",onContinue:o??(()=>void 0)}):null,ax?(0,d.jsx)("p",{className:"text-sm text-destructive",children:ax}):null]});case"choose-target-repos":return(0,d.jsxs)(P.i,{title:`Step 4 of 7 \xb7 Choose target repo(s) and create setup files`,description:"Create a new product repository or connect an existing GitHub repo, then preview and confirm local setup files on this machine.",children:[(0,d.jsx)(Y,{values:a7,highlightStaleTarget:j,variant:"guided-minimal",guidedSection:"harness",harnessDispatchRepository:C.githubDispatchRepository,savedHarnessDispatchRepository:f.savedHarnessDispatchRepository,suggestedHarnessDispatchRepo:f.suggestedHarnessDispatchRepo,harnessRepoVerification:ac,verifyingHarnessRepo:aJ,onHarnessDispatchRepositoryChange:a=>{bo(),am({state:"unchecked"}),D(b=>({...b,githubDispatchRepository:a}))},onVerifyAndUseHarnessRepo:a=>{bv(a)},harnessConnectedAutomatically:an===bj&&ap===bj&&!!bj,harnessRepoInheritedFromStep1:bk,onChange:a=>{bo(),F(a)}}),(0,d.jsx)(Z.A,{mode:a1,onModeChange:a2,githubOwner:a3,githubOwnerLoading:a5,onRepoCreated:bx,onInvalidatePreview:bo,connectContent:(0,d.jsx)(Y,{values:a7,highlightStaleTarget:j,variant:"guided-minimal",guidedSection:"target-repos",guidedRepos:G,repoVerification:U,verifyingRepoRowId:$,onChange:a=>{bo(),F(a)},onGuidedReposChange:a=>{bo(),br(a),I(a)},onVerifyRepo:bw,onRepoBlur:bz,activeGithubTokenFingerprint:bg?.fingerprint??null,onAddRepo:()=>{bo(),v.current+=1;let a=(0,W.mD)(v.current);I(b=>[...b,{rowId:a,id:"",targetRepo:""}])},onRemoveRepo:a=>{bo(),I(b=>b.filter(b=>b.rowId!==a)),V(b=>{let c={...b};return delete c[a],c})}})}),(0,d.jsx)(O,{className:"my-6"}),(0,d.jsxs)("div",{className:"rounded-md border border-border bg-muted/20 p-4 space-y-3",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:bL}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:s?"Local gitignored setup files already exist on this machine. Preview the changes, confirm, and update `.env.local` and `.harness/config.local.json`.":"This is the point where the app writes local gitignored setup files to this machine: `.env.local` and `.harness/config.local.json`."}),(0,d.jsx)(ad,{open:aL,onOpenChange:bC,isLoading:"preview"===aT,previewError:aV??void 0,envPreview:ba?aN?.envPreview:void 0,configPreview:ba?aN?.configPreview:void 0,validationError:ba?aN?.validationError:void 0,previewIsCurrent:ba}),(0,d.jsx)(ab,{variant:"guided",intent:s?"update":"create",plan:ba?aN?.plan:void 0,confirmed:aR,disabled:!!aN?.validationError,disabledReason:bH,onConfirmedChange:aS})]}),(0,d.jsx)("div",{className:A.PI.actions,children:(0,d.jsx)(H.$,{type:"button",onClick:bE,disabled:!bJ||aD,"data-primary-preview-button":"true",children:"apply"===aT?bM:bL})}),bJ||!bK||aD?null:(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:bK}),aD?(0,d.jsx)(ag,{heading:s?"Local setup files updated":"Local setup files created",explanation:"Your target repo configuration and local gitignored setup files are ready on this machine.",details:aF,continueLabel:"Continue to local readiness",onContinue:q??(()=>void 0)}):null]})}})(),aX?(0,d.jsx)(ae,{success:!1,message:aX}):null]}):(0,d.jsxs)("div",{className:A.Es.section,children:[(0,d.jsx)(P.i,{title:"Environment (.env.local)",description:"Edit local env keys. Existing secret values are never shown.",children:(0,d.jsx)(Q.A,{values:C,presence:J,highlightDispatchRepo:i,variant:"advanced",onChange:a=>{bo(),D(a)}})}),(0,d.jsx)(P.i,{title:"Target repo config",description:"Guided fields for .harness/config.local.json.",children:(0,d.jsx)(Y,{values:E,highlightStaleTarget:j,variant:"advanced",onChange:a=>{bo(),F(a)}})}),(0,d.jsxs)(P.i,{title:"Preview local changes",description:"Required before apply. Secret values are redacted in previews.",children:[(0,d.jsx)(_,{envPreview:ba?aN?.envPreview:void 0,configPreview:ba?aN?.configPreview:void 0,validationError:ba?aN?.validationError:void 0}),(0,d.jsx)("div",{className:A.PI.actions,children:(0,d.jsx)(H.$,{type:"button",onClick:bB,disabled:null!==aT,"data-primary-preview-button":"true",children:"preview"===aT?"Generating preview…":"Preview setup files"})}),bF?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:bF}):null]}),(0,d.jsxs)(P.i,{title:"Confirm and apply",description:"Writes only local gitignored setup files through setup core.",children:[(0,d.jsx)(ab,{plan:ba?aN?.plan:void 0,confirmed:aR,disabled:!ba||!!aN?.validationError,disabledReason:bG,onConfirmedChange:aS}),(0,d.jsx)("div",{className:A.PI.actions,children:(0,d.jsx)(H.$,{type:"button",onClick:bD,disabled:null!==aT||!ba||!aR||!!aN?.validationError,children:"apply"===aT?"Creating…":"Create local setup files"})}),bI?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:bI}):null]}),aX?(0,d.jsx)(ae,{success:!1,message:aX}):null,null===a_||aX?null:(0,d.jsx)(ae,{success:a_,message:a_?"Local setup files were written successfully.":"Apply failed.",summary:aZ??void 0})]})}var an=c(22645),ao=c(8830),ap=c(66668),aq=c(73176),ar=c(97390),as=c(22679);let at=["Validating Linear plan","Creating or selecting team","Creating or selecting project","Configuring workflow statuses","Verifying Linear workspace"];function au({readiness:a,initialSummary:b,linearApiKeyConfigured:c,availableRepos:f,onSummaryUpdated:g,onUiStateChange:h,onContinue:i,onStepCompleted:j}){let[k,l]=(0,e.useState)(b),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)([]),[q,r]=(0,e.useState)([]),[s,t]=(0,e.useState)("existing"),[u,v]=(0,e.useState)(k.controlPlane?.linear?.teamId??""),[w,x]=(0,e.useState)(k.controlPlane?.linear?.teamKey??""),[y,z]=(0,e.useState)(k.controlPlane?.linear?.teamName??""),[B,C]=(0,e.useState)("existing"),[D,E]=(0,e.useState)(k.controlPlane?.linear?.projectId??""),[F,G]=(0,e.useState)(k.controlPlane?.linear?.projectName??""),[I,J]=(0,e.useState)([]),[L,M]=(0,e.useState)(""),[N,O]=(0,e.useState)([]),[Q,T]=(0,e.useState)([]),[U,V]=(0,e.useState)(""),[W,X]=(0,e.useState)("Linear workspace"),[Y,Z]=(0,e.useState)(!1),[$,_]=(0,e.useState)(!1),[aa,ab]=(0,e.useState)(null),[ac,ad]=(0,e.useState)(null),[ah,ai]=(0,e.useState)(null),[aj,ak]=(0,e.useState)(null),[al,am]=(0,e.useState)(!1),[au,av]=(0,e.useState)(!1),[aw,ax]=(0,e.useState)("setup"),[ay,az]=(0,e.useState)(!1),[aA,aB]=(0,e.useState)(null),[aC,aD]=(0,e.useState)(null),[aE,aF]=(0,e.useState)(null),[aG,aH]=(0,e.useState)(null),[aI,aJ]=(0,e.useState)(!1),[aK,aL]=(0,e.useState)(0),[aM,aN]=(0,e.useState)(null),aO=(0,e.useRef)(!1),aP=(0,e.useMemo)(()=>(function(...a){let b=new Map;for(let c of a)for(let a of c??[])a.id.trim()&&a.targetRepo.trim()&&b.set(a.id,a);return[...b.values()]})(m?.repos,f),[f,m?.repos]),aQ=aP.find(a=>a.id===L)??aP[0],aR=aQ?.targetRepo??"",aS=aQ?.id??"",aT=!!(aR&&aS),aU=aP.length>0,aV="workspace"===aw?aj:ah,aW=null!==aV&&al,aX=c??k.linearApiKeyConfigured,aY=(0,e.useCallback)(()=>{aJ(!1),aH(null)},[]),aZ=(0,e.useCallback)(()=>{ai(null),ak(null),am(!1),av(!1),aY()},[aY]),a$=(0,e.useCallback)(async()=>{ad(null);try{let a=await fetch("/api/setup/linear-workspace-editor-state"),b=await a.json();if(!a.ok)throw Error(b.error??"Failed to load Linear workspace state");n(b),p(b.associations),b.workspaceId&&V(b.workspaceId),b.workspaceName&&X(b.workspaceName)}catch(a){ad(a instanceof Error?a.message:"Failed to load Linear workspace state")}},[]),a_=(0,e.useCallback)(async()=>{if(aX){Z(!1),_(!0),ab(null);try{let a=await fetch("/api/setup/linear-options"),b=await a.json();if(!a.ok)throw Error(b.error??"Failed to load Linear teams and projects");O(b.teams??[]),T(b.projects??[]),b.workspaceId&&V(String(b.workspaceId)),b.workspaceName&&X(String(b.workspaceName))}catch(a){O([]),T([]),ab(a instanceof Error?a.message:"Failed to load Linear teams and projects")}finally{Z(!0),_(!1)}}},[aX]),a0=(0,e.useMemo)(()=>(0,ap.gy)(o),[o]),a1=(0,e.useMemo)(()=>(0,ao.um)(o),[o]),a2=(0,e.useMemo)(()=>"create"!==s&&u?Q.filter(a=>0===a.teamIds.length||a.teamIds.includes(u)):Q,[Q,u,s]),a3=a2.length>0,a4=Y&&"existing"===s&&!a3,a5=(0,e.useCallback)(async()=>{aB("refresh");try{let a=await fetch("/api/setup/linear-summary"),b=await a.json();if(!a.ok)throw Error(b.error??"Linear summary refresh failed");l(b),g?.(b),await a$()}catch(a){aD(a instanceof Error?a.message:"Linear summary refresh failed")}finally{aB(null)}},[a$,g]),a6=(0,e.useCallback)(()=>({team:{mode:s,teamId:"existing"===s?u:void 0,teamKey:"create"===s?w:void 0,teamName:"create"===s?y:void 0},project:{mode:B,projectId:"existing"===B?D:void 0,projectName:"create"===B?F:void 0,targetRepo:aR||void 0}}),[D,B,F,aR,u,w,s,y]),a7=(0,e.useCallback)(a=>({expectedCommittedFingerprint:m?.expectedCommittedFingerprint??"",workspaceId:U||m?.workspaceId||"",workspaceName:W||m?.workspaceName||"Linear workspace",requestedAssociations:a}),[m,U,W]),a8="existing"===s?!!u&&("existing"===B?I.length>0||!!D:!!F):!!(w&&y)&&("existing"===B?!!D:!!F),a9=(0,e.useCallback)(()=>{if(a8){if(aZ(),"existing"===s&&"existing"===B){let a=N.find(a=>a.id===u);if(!a)return;let b=(I.length>0?I:D?[D]:[]).map(a=>Q.find(b=>b.id===a)).filter(a=>!!a);aT&&p(c=>(0,ap.UY)({draft:c,workspaceId:U||m?.workspaceId||"",team:{id:a.id,key:a.key,name:a.name},projects:b.map(a=>({id:a.id,name:a.name})),targetRepo:aR,repoConfigId:aS})),J([]),D&&E("");return}r(a=>[...a,{id:crypto.randomUUID(),workspaceId:U||m?.workspaceId||"",teamMode:s,teamId:"existing"===s?u:void 0,teamKey:"create"===s?w:void 0,teamName:"create"===s?y:void 0,projectMode:B,projectId:"existing"===B?D:void 0,projectName:"create"===B?F:void 0,targetRepo:aT?aR:"",repoConfigId:aT?aS:""}]),J([]),E(""),G("")}},[a8,I,m?.workspaceId,aT,aZ,D,B,F,Q,aS,aR,u,w,s,y,N,U]),ba=(0,e.useCallback)(async()=>{let a=[...o];for(let b of q){let c=await (0,aq.XC)({plan:{team:{mode:b.teamMode,teamId:b.teamId,teamKey:b.teamKey,teamName:b.teamName},project:{mode:b.projectMode,projectId:b.projectId,projectName:b.projectName,targetRepo:b.targetRepo||void 0}},fingerprint:(await (0,aq.PA)({team:{mode:b.teamMode,teamId:b.teamId,teamKey:b.teamKey,teamName:b.teamName},project:{mode:b.projectMode,projectId:b.projectId,projectName:b.projectName,targetRepo:b.targetRepo||void 0}})).fingerprint});if(!c.apply.verified)throw Error("Linear create apply finished without verification.");let d={workspaceId:b.workspaceId||U||m?.workspaceId||"",teamId:c.apply.team.id,teamKey:c.apply.team.key,teamName:c.apply.team.name,projectId:c.apply.project.id,projectName:c.apply.project.name,targetRepo:b.targetRepo,repoConfigId:b.repoConfigId};a=(0,ap.m5)({draft:a,association:d})}return r([]),p(a),a},[m?.workspaceId,o,q,U]),bb=(0,e.useCallback)(async()=>{if(aU&&o.length>0){let a=await (0,aq.b)(a7(o));if(a.validationError)throw Error(a.validationError);return ak(a),ai(null),ax("workspace"),am(!0),a}if(1===o.length&&0===q.length){let a=o[0],b=await (0,aq.PA)({team:{mode:"existing",teamId:a.teamId},project:{mode:"existing",projectId:a.projectId}});return ai(b),ak(null),ax("setup"),am(!0),b}let a=q[0],b=a?await (0,aq.PA)({team:{mode:a.teamMode,teamId:a.teamId,teamKey:a.teamKey,teamName:a.teamName},project:{mode:a.projectMode,projectId:a.projectId,projectName:a.projectName,targetRepo:a.targetRepo||void 0}}):await (0,aq.PA)(a6());return ai(b),ak(null),ax("setup"),am(!0),b},[a6,a7,aU,o,q]),bc=(0,e.useCallback)(async()=>{aB("preview"),aD(null),aF(null),aY(),az(!1);try{await bb(),av(!0)}catch(a){ai(null),ak(null),am(!1),av(!0),aF(a instanceof Error?a.message:"Preview failed")}finally{aB(null)}},[aY,bb]),bd=async()=>{if(ay&&null===aA&&!aO.current){aO.current=!0,aB("apply"),aL(0),aN(at[0]),aD(null),aY();try{let a=o;if(q.length>0&&(a=await ba()),0===a.length)throw Error("Add at least one Linear team and project association before applying.");if(aU){let b=aW&&"workspace"===aw&&aj?aj:await (0,aq.b)(a7(a));if(b.validationError)throw Error(b.validationError);let c=await (0,aq.xD)({plan:a7(a),fingerprint:b.fingerprint});if(!c.apply.verified)throw Error("Linear workspace apply finished, but post-apply verification did not pass.");l(c.summary),g?.(c.summary),j?.(),aJ(!0),p(a),aH(c.apply)}else if(1===a.length){let b=a[0],c=aW&&"setup"===aw&&ah?ah:await (0,aq.PA)({team:{mode:"existing",teamId:b.teamId},project:{mode:"existing",projectId:b.projectId}});if(c.validationError)throw Error(c.validationError);let d=await (0,aq.XC)({plan:{team:{mode:"existing",teamId:b.teamId},project:{mode:"existing",projectId:b.projectId}},fingerprint:c.fingerprint});if(!d.apply.verified)throw Error("Linear workspace apply finished, but post-apply verification did not pass.");aH(d.apply),l(d.summary),g?.(d.summary),j?.(),aJ(!0)}else if(q.length>0||a8){let b=aW&&"setup"===aw&&ah?ah:await (0,aq.PA)(a6());if(b.validationError)throw Error(b.validationError);let c=await (0,aq.XC)({plan:a6(),fingerprint:b.fingerprint});if(!c.apply.verified)throw Error("Linear workspace apply finished, but post-apply verification did not pass.");let d={workspaceId:U||m?.workspaceId||"",teamId:c.apply.team.id,teamKey:c.apply.team.key,teamName:c.apply.team.name,projectId:c.apply.project.id,projectName:c.apply.project.name,targetRepo:aR,repoConfigId:aS},e=(0,ap.m5)({draft:a,association:d});p(e),aH(c.apply),l(c.summary),g?.(c.summary),j?.(),aJ(!0)}else throw Error("Configure at least one target repository before applying multiple Linear associations.");ai(null),ak(null),am(!1),av(!1),az(!1),aL(at.length),aN("Linear workspace verified."),a_(),await a$()}catch(a){aD(a instanceof Error?a.message:"Apply failed")}finally{aO.current=!1,aB(null)}}},be=aI||a.steps.find(a=>"linear-workspace"===a.id)?.status==="complete"||k.workspace.configured,bf=o.length>0||q.length>0||a8,bg="apply"===aA;return(0,d.jsx)(P.i,{title:`Step 2 of 7 \xb7 Set up Linear workspace`,description:"Add one or more Linear team and project associations, review the draft list, then apply the initial workspace setup.",children:(0,d.jsx)("div",{className:A.Es.stackSm,children:aX?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(S.J,{htmlFor:"linear-team-mode",children:"Team"}),(0,d.jsxs)(ar.l,{id:"linear-team-mode",value:s,onChange:a=>{t(a.target.value),aZ()},disabled:bg,children:[(0,d.jsx)("option",{value:"existing",children:"Use existing team"}),(0,d.jsx)("option",{value:"create",children:"Create new team"})]}),"existing"===s?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(ar.l,{value:u,onChange:a=>{v(a.target.value),E(""),J([]),aZ()},disabled:bg||$,children:[(0,d.jsx)("option",{value:"",children:"Select a team…"}),N.map(a=>(0,d.jsxs)("option",{value:a.id,children:[a.name," (",a.key,")"]},a.id))]}),$?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading Linear teams…"}):null,$||0!==N.length?null:(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"No Linear teams found for this API key."})]}):(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(R.p,{placeholder:"Team name",value:y,disabled:bg,onChange:a=>{z(a.target.value),aZ()}}),(0,d.jsx)(R.p,{placeholder:"Team key (e.g. ENG)",value:w,disabled:bg,onChange:a=>{x(a.target.value),aZ()}})]})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(S.J,{htmlFor:"linear-project-mode",children:"Project"}),a4?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Create a new project for this Linear team."}):(0,d.jsxs)(ar.l,{id:"linear-project-mode",value:B,onChange:a=>{C(a.target.value),aZ()},disabled:bg,children:[(0,d.jsx)("option",{value:"existing",children:"Use existing project"}),(0,d.jsx)("option",{value:"create",children:"Create new project"})]}),a4||"existing"!==B?(0,d.jsx)(R.p,{placeholder:"Project name",value:F,disabled:bg,onChange:a=>{G(a.target.value),aZ()}}):(0,d.jsxs)(d.Fragment,{children:["existing"===s&&u?(0,d.jsx)("div",{className:"space-y-2 rounded-md border border-border/70 p-3",children:0===a2.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"No Linear projects are associated with this team."}):a2.map(a=>{let b=(0,ao.iF)({workspaceId:U||m?.workspaceId||"",teamId:u,projectId:a.id}),c=a0.has(b);return(0,d.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,d.jsx)("input",{type:"checkbox",disabled:bg||c,checked:I.includes(a.id),onChange:b=>{J(c=>b.target.checked?[...c,a.id]:c.filter(b=>b!==a.id)),aZ()}}),(0,d.jsxs)("span",{children:[a.name,c?" (already in draft)":""]})]},a.id)})}):(0,d.jsxs)(ar.l,{value:D,onChange:a=>{E(a.target.value),aZ()},disabled:bg||$,children:[(0,d.jsx)("option",{value:"",children:"Select a project…"}),a2.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]}),$?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading Linear projects…"}):null]})]})]}),aP.length>0?(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(S.J,{htmlFor:"guided-linear-target-repo",children:"Target repository"}),(0,d.jsx)(ar.l,{id:"guided-linear-target-repo",value:L,onChange:a=>{M(a.target.value),aZ()},disabled:bg,children:aP.map(a=>(0,d.jsx)("option",{value:a.id,children:a.targetRepo},a.id))})]}):(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Target repositories are not configured yet. You can still draft create selections here; they will map onto the first configured repo when harness config exists."}),(0,d.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:(0,d.jsx)(H.$,{type:"button",variant:"outline",size:"sm",onClick:a9,disabled:bg||!a8,children:"Add to draft"})}),aa?(0,d.jsx)("p",{className:"text-sm text-destructive",children:aa}):null,ac?(0,d.jsx)("p",{className:"text-sm text-destructive",children:ac}):null,(0,d.jsxs)("div",{className:"space-y-3 rounded-md border border-border/70 p-3",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:"Draft associations"}),0===a1.size&&0===q.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"No Linear associations added yet."}):(0,d.jsxs)("div",{className:"space-y-3",children:[[...a1.entries()].map(([a,b])=>(0,d.jsxs)("div",{className:"rounded-md border border-border/70 p-3",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,d.jsxs)("p",{className:"text-sm font-medium",children:[(0,ao.W)({teamName:b[0]?.teamName,teamKey:b[0]?.teamKey??a})," ","\xb7 ",b.length," project",1===b.length?"":"s"]}),(0,d.jsx)(H.$,{type:"button",variant:"outline",size:"sm",disabled:bg,onClick:()=>{p(b=>(0,ap.Bw)(b,a)),aZ()},children:"Remove team"})]}),(0,d.jsx)("ul",{className:"mt-2 space-y-2",children:b.map(a=>(0,d.jsxs)("li",{className:"flex flex-wrap items-center justify-between gap-2 rounded-md bg-muted/30 px-3 py-2 text-sm",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{children:a.projectName}),a.targetRepo?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:a.targetRepo}):null]}),(0,d.jsx)(H.$,{type:"button",variant:"ghost",size:"sm",disabled:bg,onClick:()=>{p(b=>(0,ap.df)(b,a)),aZ()},children:"Remove"})]},(0,ao.iF)(a)))})]},a)),q.length>0?(0,d.jsx)("ul",{className:"space-y-2",children:q.map(a=>(0,d.jsxs)("li",{className:"flex flex-wrap items-center justify-between gap-2 rounded-md bg-muted/20 px-3 py-2 text-sm",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{children:function(a){let b="create"===a.teamMode?(0,ao.W)({teamName:a.teamName,teamKey:a.teamKey??"key"}):(0,ao.W)({teamName:a.teamName,teamKey:a.teamKey??a.teamId??"Team"}),c="create"===a.projectMode?a.projectName??"New project":a.projectName??a.projectId??"Project";return`${b} \xb7 ${c}`}(a)}),(0,d.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Will be created on apply",a.targetRepo?` \xb7 ${a.targetRepo}`:""]})]}),(0,d.jsx)(H.$,{type:"button",variant:"ghost",size:"sm",disabled:bg,onClick:()=>{r(b=>b.filter(b=>b.id!==a.id)),aZ()},children:"Remove"})]},a.id))}):null]})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[k.workspace.configured?(0,d.jsx)(K.W,{label:`Team ${(0,ao.W)({teamName:k.controlPlane?.linear?.teamName??k.controlPlane?.linearWorkspace?.teams[0]?.teamName,teamKey:k.workspace.teamKey??""})} configured`,variant:"success"}):null,(0,d.jsx)(H.$,{type:"button",variant:"outline",size:"sm",onClick:()=>void bc(),disabled:null!==aA||!bf,children:"preview"===aA?"Previewing…":"Preview Linear setup"}),(0,d.jsx)(H.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>void a5(),disabled:null!==aA,children:"Refresh"})]}),au&&aW&&aV?(0,d.jsxs)("div",{className:"rounded-md border border-border bg-muted/10 p-3 text-sm space-y-2",children:["workspace"===aw&&aj?(0,d.jsx)("pre",{className:"whitespace-pre-wrap font-sans text-sm",children:[`Teams to add: ${aj.impactSummary.teamsToAdd.join(", ")||"none"}`,`Projects to add: ${aj.impactSummary.projectsToAdd.join(", ")||"none"}`,`Teams to repair: ${aj.impactSummary.teamsToRepair.join(", ")||"none"}`,`Projects to detach: ${aj.impactSummary.projectsToDetach.join(", ")||"none"}`,...aj.impactSummary.explicitNonActions].join("\n")}):ah?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("p",{children:["Missing creatable statuses:"," ",ah.missingStatuses.length>0?ah.missingStatuses.join(", "):"none"]}),(0,d.jsxs)("p",{children:["Dispatch triggers: ",ah.dispatchTriggerStatuses.join(", ")]}),ah.repairActions.length>0?(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("p",{className:"font-medium",children:"Workflow status repairs"}),(0,d.jsx)("ul",{className:"space-y-2",children:ah.repairActions.map(a=>(0,d.jsxs)("li",{className:"rounded-md border border-border bg-background p-2",children:[(0,d.jsx)("p",{className:"font-medium",children:a.statusName}),(0,d.jsx)("p",{className:"text-muted-foreground",children:a.explanation}),(0,d.jsxs)("p",{children:["Current category:"," ",(0,an.L)(a.actualCategory)," \xb7 Required:"," ",(0,an.L)(a.expectedCategory)]}),(0,d.jsxs)("p",{children:["Affected issues: ",a.affectedIssueCount," \xb7 Strategy:"," ",a.repairStrategy]})]},a.existingStatusId))})]}):null,ah.manualSteps.length>0?(0,d.jsx)("ul",{className:"list-disc pl-5 text-muted-foreground",children:ah.manualSteps.map(a=>(0,d.jsx)("li",{children:a},a))}):null]}):null,aE?(0,d.jsx)("p",{className:"text-destructive",children:aE}):null]}):null,"apply"===aA||aI?null:(0,d.jsx)(as.I,{scope:"linear-write",variant:"guided",confirmed:ay,disabled:null!==aA||!bf,disabledReason:bf?void 0:"Add at least one Linear team and project association before confirming.",onConfirmedChange:az}),"apply"===aA?(0,d.jsx)(af.M,{phases:(0,af.y)({labels:[...at],activeIndex:aK}),supportingText:aM}):null,aI||"apply"===aA?null:(0,d.jsx)("div",{className:A.PI.actions,children:(0,d.jsx)(H.$,{type:"button",onClick:()=>void bd(),disabled:null!==aA||!ay||!bf||!!aV?.validationError,children:"Apply Linear workspace setup"})}),aC?(0,d.jsx)(ae,{success:!1,message:aC}):null,aI&&aG?(0,d.jsx)(ag,{heading:"Linear workspace verified",explanation:"The selected Linear team, project, and workflow statuses are ready.",details:["created"in aG?`Created: ${aG.created.join(", ")||"none"}`:`Operations: ${aG.operationsCompleted.length}`,"skipped"in aG?`Reused: ${aG.skipped.join(", ")||"none"}`:"Reused: none","repaired"in aG?`Repaired: ${aG.repaired.join(", ")||"none"}`:"Repaired: none"],continueLabel:"Continue to Vercel bridge",onContinue:i}):null,be&&!aI?(0,d.jsx)(H.$,{type:"button",onClick:i,children:"Continue to Vercel bridge"}):null]}):(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Add your Linear API key in Step 1 before configuring the Linear workspace."})})})}at.map((a,b)=>[a,b]);var av=c(41751);let aw="Vercel production redeploy is in progress. Wait for verification to finish before changing settings.";function ax({message:a,phaseLabel:b}){let[c,f]=(0,e.useState)(a);(0,e.useRef)(null);let[g,h]=(0,e.useState)(!1);return(0,d.jsx)("div",{className:"rounded-md border border-border bg-muted/20 px-3 py-2 text-sm","aria-live":"polite","aria-atomic":"true",children:(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)("span",{"aria-hidden":"true",className:`mt-1 inline-block h-2 w-2 shrink-0 rounded-full bg-primary ${g?"":"animate-pulse"}`}),(0,d.jsxs)("div",{className:"min-w-0 space-y-1",children:[b?(0,d.jsx)("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:b}):null,(0,d.jsx)("p",{className:`text-foreground break-words ${g?"font-medium":""}`,children:a}),(0,d.jsx)("span",{className:"sr-only",children:c})]})]})})}let ay=["Validating Vercel selection","Creating or connecting project","Deploying automation bridge","Writing environment variables","Configuring Linear webhook","Verifying signed webhook"];function az(a){let b=a.orchestration;return b?b.verified||a.readiness.ready?{setupPending:!1,pollActionId:null,verifiedSuccess:!0}:b.active?{setupPending:!0,pollActionId:b.pollActionId??null,verifiedSuccess:!1}:{setupPending:!1,pollActionId:null,verifiedSuccess:!1}:{setupPending:!1,pollActionId:null,verifiedSuccess:a.readiness.ready}}function aA({readiness:a,initialSummary:b,onSummaryUpdated:c,onUiStateChange:f,onContinue:g,onStepCompleted:h}){var i,j,k,l;let m=az(b),[n,o]=(0,e.useState)(b),[p,q]=(0,e.useState)([]),[r,s]=(0,e.useState)([]),[t,u]=(0,e.useState)({teamCreate:!0,projectCreate:!0}),[v,w]=(0,e.useState)(!0),[x,y]=(0,e.useState)(null),[z,B]=(0,e.useState)("existing"),[C,D]=(0,e.useState)(n.controlPlane?.vercel?.teamId??""),[E,F]=(0,e.useState)(""),[G,I]=(0,e.useState)(""),[J,K]=(0,e.useState)("existing"),[L,M]=(0,e.useState)(n.controlPlane?.vercel?.projectId??""),[N,O]=(0,e.useState)(""),[Q,T]=(0,e.useState)(n.linearTeamKey??""),[U,V]=(0,e.useState)(null),[W,X]=(0,e.useState)(!1),[Y,Z]=(0,e.useState)(null),[$,_]=(0,e.useState)(!1),[aa,ab]=(0,e.useState)(!1),[ac,ad]=(0,e.useState)(!1),[ah,ai]=(0,e.useState)(!1),[aj,ak]=(0,e.useState)(null),[al,am]=(0,e.useState)(null),[an,ao]=(0,e.useState)(null),[ap,aq]=(0,e.useState)(null),[at,au]=(0,e.useState)(m.pollActionId),[aA,aB]=(0,e.useState)(m.setupPending),[aC,aD]=(0,e.useState)(m.verifiedSuccess),[aE,aF]=(0,e.useState)(null),[aG,aH]=(0,e.useState)(!1),aI=(i={setupPending:aA,pollActionId:at,orchestration:n.orchestration}).setupPending||!!i.pollActionId||!!i.orchestration?.active,aJ=aI||null!==aj,aK="apply"===(j={loading:aj,applyResult:ap,orchestration:n.orchestration}).loading?"Applying Vercel settings…":j.applyResult?.orchestrationStatusMessage?j.applyResult.orchestrationStatusMessage:j.orchestration?.active?j.orchestration.statusMessage:void 0,aL=!(!(k={applyResult:ap,orchestration:n.orchestration,redeployPollingActive:aI}).applyResult||k.redeployPollingActive||k.orchestration?.active)&&!k.applyResult.setupPending&&!!(k.applyResult.setupBlocked||k.orchestration?.terminal||k.applyResult.verified&&k.applyResult.signedProbeVerified),aM=(l={verifiedSuccess:aC,redeployPollingActive:aI}).verifiedSuccess||l.redeployPollingActive,aN=(0,e.useMemo)(()=>"create"===J?function(a){let b=a?.trim()??"";return b.length<1||b.length>100?{valid:!1,normalized:b,error:"Vercel project name must be 1-100 characters."}:b!==b.toLowerCase()?{valid:!1,normalized:b,error:"Vercel project name must be lowercase."}:/^[a-z0-9._-]+$/.test(b)?{valid:!0,normalized:b}:{valid:!1,normalized:b,error:"Vercel project name may only contain lowercase letters, numbers, dots, underscores, and hyphens."}}(N):{valid:!0,normalized:N},[J,N]),aO=null!==Y&&$,aP=(0,e.useCallback)(async a=>{X(!0),V(null);try{let b=void 0!==a?`?teamId=${encodeURIComponent(a)}`:"",c=await fetch(`/api/setup/vercel-bridge-options${b}`),d=await c.json();if(!c.ok)throw Error(d.error??d.loadError??"Failed to load Vercel options");q(d.scopes??[]),s(d.projects??[]),u(d.capabilities??{teamCreate:!0,projectCreate:!0}),d.harnessTeamKey&&T(d.harnessTeamKey),w(d.githubDispatch.eligible),y(d.githubDispatch.eligible?null:d.githubDispatch.message),d.githubDispatch.eligible||(Z(null),_(!1),ab(!1),ai(!1)),void 0===a&&void 0!==d.selectedScopeId&&D(d.selectedScopeId),M(a=>d.projects.some(b=>b.id===a)?a:d.selectedProjectId??""),d.loadError&&V(d.loadError)}catch(a){V(a instanceof Error?a.message:"Failed to load Vercel settings options")}finally{X(!1)}},[]),aQ=(0,e.useCallback)(async()=>{ak("refresh");try{let a=await fetch("/api/setup/vercel-summary"),b=await a.json();if(!a.ok)throw Error(b.error??"Vercel summary refresh failed");o(b),c?.(b);let d=az(b);aB(d.setupPending),au(d.pollActionId),aD(d.verifiedSuccess)}catch(a){am(a instanceof Error?a.message:"Vercel summary refresh failed")}finally{ak(null)}},[c]),aR=(0,e.useCallback)(a=>{aI&&a?.force!==!0||(Z(null),_(!1),ab(!1),aD(!1),aq(null),au(null),aB(!1),aF(null),aH(!1))},[aI]),aS=(0,e.useCallback)(()=>({team:{mode:z,teamId:"existing"===z?C:void 0,teamName:"create"===z&&E||void 0,teamSlug:"create"===z&&G||void 0},project:{mode:J,projectId:"existing"===J&&L||void 0,projectName:"create"===J&&N||void 0},allowExistingProjectBridgeInstall:"existing"===J?ac:void 0,teamId:"existing"===z&&C||void 0,projectId:"existing"===J&&L||void 0,projectName:"create"===J&&N||void 0,linearTeamId:n.controlPlane?.linear?.teamId,envInput:{HARNESS_TEAM_KEY:Q||void 0}}),[ac,Q,L,J,N,n.controlPlane?.linear?.teamId,C,z,E,G]),aT=(0,e.useCallback)(async(a,b)=>{if(aq(a),"deployment-required"===a.status){am(a.deploymentRequired?.message??"Deployment required before applying settings."),aD(!1),aB(!1),au(null),aP("existing"===z?C:void 0),Z(null),_(!1),ab(!1),ai(!1);return}o(b),c?.(b);let d=a.verified&&a.signedProbeVerified;aD(a.verified),aB(!!(a.setupPending||b.orchestration?.active)),au(a.pollActionId??b.orchestration?.pollActionId??null),a.linearWebhookSetup.manualCopySecret?(aF(a.linearWebhookSetup.manualCopySecret),aH(!1)):aF(null),Z(null),_(!1),ab(!1),ai(!1),d&&h?.(),aP("existing"===z?C:void 0)},[aP,h,c,C,z]);(0,e.useCallback)(async()=>{if(at){ak("poll"),am(null);try{var a;let b=await fetch("/api/setup/vercel-bridge-redeploy-status",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({actionId:at})}),c=await (0,av.V)(b,"POST /api/setup/vercel-bridge-redeploy-status");if(!b.ok)throw Error(c.error??"Redeploy status check failed");let d=c.apply;await aT(d,c.summary),a=c.summary,(d.verified&&d.signedProbeVerified||!(d.setupPending||a.orchestration?.active)&&(d.setupBlocked||"failed"===d.productionRedeployStatus||"timeout"===d.productionRedeployStatus||"no_source_deployment"===d.productionRedeployStatus||a.orchestration?.terminal))&&(aB(!1),au(null))}catch(a){am(a instanceof Error?a.message:"Redeploy status check failed"),n.orchestration?.active||aB(!1)}finally{ak(null)}}},[aT,at,n.orchestration?.active]);let aU=(0,e.useCallback)(async()=>{let a=await fetch("/api/setup/preview-vercel-bridge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(aS())}),b=await a.json();if(!a.ok)throw Error(b.error??"Preview failed");return Z(b),_(!0),b},[aS]),aV=(0,e.useCallback)(async()=>{if(!aI){ak("preview"),am(null),ao(null),aR(),ai(!1);try{await aU(),ab(!0)}catch(a){Z(null),_(!1),ab(!0),ao(a instanceof Error?a.message:"Preview failed")}finally{ak(null)}}},[aR,aI,aU]),aW=async()=>{if(!aI&&ah){if(!v)return void am(x??"Saved GITHUB_TOKEN cannot dispatch to the harness repository. Update Step 1 before applying.");if("create"===J&&!aN.valid)return void am(aN.error??"Vercel project name is invalid.");ak("apply"),am(null),aR();try{let a=aO&&Y?Y:await aU();if(a.validationError)throw Error(a.validationError);let b=await fetch("/api/setup/apply-vercel-bridge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({plan:aS(),confirmed:!0,fingerprint:a.fingerprint})}),c=await (0,av.V)(b,"POST /api/setup/apply-vercel-bridge");if(!b.ok)throw Error(c.error??"Apply failed");await aT(c.apply,c.summary)}catch(a){am(a instanceof Error?a.message:"Apply failed")}finally{ak(null)}}},aX="existing"===z?!!Q&&("existing"===J?!!L:!!N&&aN.valid):!!(G&&Q)&&("existing"===J?!!L:!!N&&aN.valid),aY=aC&&ap?.signedProbeVerified===!0||n.readiness.ready,aZ="apply"===aj||aI,a$=function(a){if("apply"===a.loading)return 0;switch(a.applyResult?.orchestrationSteps?.find(a=>"active"===a.status)?.phase){case"deploying_bridge":return 2;case"writing_env_vars":return 3;case"verifying_webhook":return 5}switch(a.applyResult?.orchestrationPhase??a.orchestrationPhase){case"triggered":case"building":case"waiting_for_ready":return 2;case"verifying":case"retry_wait":return 5;case"verified":return ay.length;default:return 0}}({loading:aj,applyResult:ap,orchestrationPhase:n.orchestration?.phase}),a_=aK??ay[a$];return(0,d.jsx)(P.i,{title:`Step 3 of 7 \xb7 Configure PDev automation bridge`,description:"Choose the Vercel team and project that hosts the PDev automation bridge.",children:(0,d.jsx)("div",{className:A.Es.stackSm,children:n.vercelTokenConfigured?(0,d.jsxs)(d.Fragment,{children:[aI?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:aw}):null,!v&&x?(0,d.jsx)("p",{className:"text-sm text-destructive",children:x}):null,aK&&!aZ?(0,d.jsx)(ax,{message:aK,phaseLabel:function(a){if(a)switch(a){case"triggered":return"Redeploying production";case"building":case"waiting_for_ready":return"Waiting for deployment";case"verifying":return"Verifying webhook";case"retry_wait":return"Retrying verification";case"verified":return"Verified";case"terminal":return"Action required";default:return}}(ap?.orchestrationPhase??n.orchestration?.phase)}):null,v?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(S.J,{htmlFor:"vercel-team-mode",children:"Vercel team name"}),t.teamCreate?(0,d.jsxs)(ar.l,{id:"vercel-team-mode",value:z,onChange:a=>{aI||(B(a.target.value),aR())},disabled:aJ,children:[(0,d.jsx)("option",{value:"existing",children:"Use existing team"}),(0,d.jsx)("option",{value:"create",children:"Create new team"})]}):null,"existing"===z?(0,d.jsx)(ar.l,{id:"vercel-team-name",value:C,onChange:a=>{aI||(D(a.target.value),M(""),aR(),aP(a.target.value))},disabled:aJ||W,children:p.map(a=>(0,d.jsx)("option",{value:a.id,children:a.label},a.id||"personal"))}):(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(R.p,{placeholder:"Team name",value:E,onChange:a=>{aI||(F(a.target.value),aR())},disabled:aJ}),(0,d.jsx)(R.p,{placeholder:"Team slug",value:G,onChange:a=>{aI||(I(a.target.value),aR())},disabled:aJ})]})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(S.J,{htmlFor:"vercel-project-mode",children:"Vercel project"}),t.projectCreate?(0,d.jsxs)(ar.l,{id:"vercel-project-mode",value:J,onChange:a=>{aI||(K(a.target.value),ad(!1),aR())},disabled:aJ,children:[(0,d.jsx)("option",{value:"existing",children:"Use existing project"}),(0,d.jsx)("option",{value:"create",children:"Create new project"})]}):null,"existing"===J?(0,d.jsxs)(ar.l,{id:"vercel-project-id",value:L,onChange:a=>{aI||(M(a.target.value),ad(!1),aR())},disabled:aJ||W||0===r.length,children:[(0,d.jsx)("option",{value:"",children:"Select a project…"}),r.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]}):(0,d.jsx)(R.p,{placeholder:"Project name",value:N,onChange:a=>{aI||(O(a.target.value),aR())},disabled:aJ}),"create"===J&&aN.error?(0,d.jsx)("p",{className:"text-sm text-destructive",children:aN.error}):null,"existing"===J&&L?(0,d.jsxs)("label",{className:"flex cursor-pointer items-start gap-2 rounded-md border border-border bg-muted/10 p-3 text-sm has-[:disabled]:cursor-not-allowed",children:[(0,d.jsx)("input",{type:"checkbox",className:"mt-0.5 cursor-pointer disabled:cursor-not-allowed",checked:ac,disabled:aJ,onChange:a=>{ad(a.target.checked),Z(null),_(!1),ab(!1),ai(!1)}}),(0,d.jsx)("span",{className:"text-muted-foreground",children:"Allow PDev to install the automation bridge into this existing project if it is not already marked as PDev-managed."})]}):null]})]}),W?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading Vercel teams and projects…"}):null,U?(0,d.jsx)("p",{className:"text-sm text-destructive",children:U}):null,(0,d.jsxs)("div",{className:A.PI.actions,children:[(0,d.jsx)(H.$,{type:"button",variant:"outline",onClick:()=>void aV(),disabled:aJ||!aX,children:"preview"===aj?"Previewing…":"Preview PDev automation bridge"}),(0,d.jsx)(H.$,{type:"button",variant:"ghost",onClick:()=>void aQ(),disabled:aJ,children:"Refresh"})]}),aa&&aO&&Y?(0,d.jsxs)("div",{className:"rounded-md border border-border bg-muted/10 p-3 text-sm space-y-2",children:[(0,d.jsxs)("p",{children:["Webhook URL: ",Y.webhookUrl??"unknown"]}),(0,d.jsxs)("p",{children:["Endpoint reachable:"," ",Y.endpointReachable?"yes":"no"]}),(0,d.jsxs)("p",{children:["GitHub dispatch source: ",Y.githubDispatchSource??"unknown"]}),(0,d.jsxs)("p",{children:["Linear webhook secret mode:"," ",Y.linearWebhookSecretMode??"unknown"]}),(0,d.jsx)("p",{className:"text-muted-foreground",children:"Preview does not run signed verification. Apply writes the webhook secret and runs a signed production probe after env setup."}),(0,d.jsxs)("p",{children:["Signed probe verified:"," ",Y.signedProbeVerified?"yes":"no (runs on apply)"]}),"ready"!==Y.deploymentStatus?(0,d.jsxs)("p",{className:"text-amber-700 dark:text-amber-400",children:["Deployment status: ",Y.deploymentStatus]}):null,Y.manualSteps.length>0?(0,d.jsx)("ul",{className:"list-disc pl-5 text-muted-foreground",children:Y.manualSteps.map(a=>(0,d.jsx)("li",{children:a},a))}):null,an?(0,d.jsx)("p",{className:"text-destructive",children:an}):null]}):null,"apply"===aj||aZ||aC?null:(0,d.jsx)(as.I,{scope:"vercel-bridge-write",variant:"guided",confirmed:ah,disabled:aJ||!aX,disabledReason:aI?aw:aX?"create"===z?"This will create provider resources in Vercel when you apply.":void 0:"Select or enter the Vercel team and project before confirming.",onConfirmedChange:a=>{aI||ai(a)}}),aZ?(0,d.jsx)(af.M,{phases:(0,af.y)({labels:[...ay],activeIndex:a$}),supportingText:a_}):null,aM||aZ?null:(0,d.jsx)("div",{className:A.PI.actions,children:(0,d.jsx)(H.$,{type:"button",onClick:()=>void aW(),disabled:aJ||!ah||!aX||!!Y?.validationError,children:"Apply PDev automation bridge"})}),al?(0,d.jsx)(ae,{success:!1,message:al}):null,aL&&ap&&!(ap.verified&&ap.signedProbeVerified)?(0,d.jsx)(ae,{success:ap.verified,message:function(a){if("deployment-required"===a.status)return`${a.deploymentRequired?.message??"Deployment required."} ${a.deploymentRequired?.nextSteps.join(" ")??""}`;if(a.setupBlocked)return[a.setupBlocked.message,...a.setupBlocked.nextSteps].join(" ");if(a.verified&&a.signedProbeVerified)return"PDev automation bridge verified.";let b=[`Vercel team: ${a.team?.outcome??"unchanged"} ${a.team?.name??""}.`,`Vercel project: ${a.project?.outcome??"unchanged"} ${a.project?.name??a.projectName}.`,`Env vars written: ${a.writtenEnvKeys.join(", ")||"none"}.`,`Linear webhook setup: ${a.linearWebhookSetup.mode}.`,`Signed probe: ${a.signedProbeVerified?"passed":"failed"}${a.signedProbeReason?` (${a.signedProbeReason})`:""}.`];return a.productionRedeployTriggered&&b.push(`Production redeploy: ${a.productionRedeployStatus??"unknown"}.`),b.join(" ")}(ap)}):null,aC&&ap?.signedProbeVerified?(0,d.jsx)(ag,{heading:"PDev automation bridge verified",explanation:"The Vercel bridge, environment variables, Linear webhook, and signed production probe are ready.",details:[`Project: ${ap.project?.name??ap.projectName}`,`Env vars written: ${ap.writtenEnvKeys.join(", ")||"none"}`,`Linear webhook: ${ap.linearWebhookSetup.mode}`],continueLabel:"Continue to Step 4",onContinue:g}):null,aE?(0,d.jsxs)("div",{className:"rounded-md border border-amber-500/40 bg-amber-500/5 p-3 text-sm space-y-2",children:[(0,d.jsx)("p",{className:"font-medium",children:"Manual Linear webhook secret (one-time)"}),(0,d.jsx)("p",{className:"text-muted-foreground",children:"Copy this secret into the Linear webhook signing secret field. Manual acknowledgement does not verify the bridge; signed delivery verification must pass after you apply again."}),(0,d.jsx)(R.p,{readOnly:!0,value:aE}),(0,d.jsxs)("label",{className:"flex items-center gap-2",children:[(0,d.jsx)("input",{type:"checkbox",checked:aG,onChange:a=>aH(a.target.checked)}),"I copied the webhook secret into Linear."]}),ap?.linearWebhookSetup.manualSteps.length?(0,d.jsx)("ul",{className:"list-disc pl-5 text-muted-foreground",children:ap.linearWebhookSetup.manualSteps.map(a=>(0,d.jsx)("li",{children:a},a))}):null]}):null,aY&&!aC?(0,d.jsx)(H.$,{type:"button",onClick:g,children:"Continue to target repo setup"}):null]}):null]}):(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Add VERCEL_TOKEN in Step 1 before configuring the PDev automation bridge."})})})}var aB=c(81744);let aC=(0,aB.A)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),aD=(0,aB.A)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),aE=(0,aB.A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]),aF=(0,aB.A)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var aG=c(27239),aH=c(60283);let aI="undefined"!=typeof window?e.useLayoutEffect:e.useEffect;var aJ=c(56549),aK=c(15337),aL=c(75444);function aM(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}class aN extends e.Component{getSnapshotBeforeUpdate(a){let b=this.props.childRef.current;if((0,aK.s)(b)&&a.isPresent&&!this.props.isPresent&&!1!==this.props.pop){let a=b.offsetParent,c=(0,aK.s)(a)&&a.offsetWidth||0,d=(0,aK.s)(a)&&a.offsetHeight||0,e=getComputedStyle(b),f=this.props.sizeRef.current;f.height=parseFloat(e.height),f.width=parseFloat(e.width),f.top=b.offsetTop,f.left=b.offsetLeft,f.right=c-f.width-f.left,f.bottom=d-f.height-f.top,f.direction=e.direction}return null}componentDidUpdate(){}render(){return this.props.children}}function aO({children:a,isPresent:b,anchorX:c,anchorY:f,root:g,pop:h}){let i=(0,e.useId)(),j=(0,e.useRef)(null),k=(0,e.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:"ltr"}),{nonce:l}=(0,e.useContext)(aL.Q),m=function(...a){return e.useCallback(function(...a){return b=>{let c=!1,d=a.map(a=>{let d=aM(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():aM(a[b],null)}}}}(...a),a)}(j,a.props?.ref??a?.ref);return(0,e.useInsertionEffect)(()=>{let{width:a,height:d,top:e,left:m,right:n,bottom:o,direction:p}=k.current;if(b||!1===h||!j.current||!a||!d)return;let q="rtl"===p,r="left"===c?q?`right: ${n}`:`left: ${m}`:q?`left: ${m}`:`right: ${n}`,s="bottom"===f?`bottom: ${o}`:`top: ${e}`;j.current.dataset.motionPopId=i;let t=document.createElement("style");l&&(t.nonce=l);let u=g??document.head;return u.appendChild(t),t.sheet&&t.sheet.insertRule(`
|
|
3
2
|
[data-motion-pop-id="${i}"] {
|
|
4
3
|
position: absolute !important;
|
|
5
4
|
width: ${a}px !important;
|
|
6
|
-
height: ${
|
|
5
|
+
height: ${d}px !important;
|
|
7
6
|
${r}px !important;
|
|
8
7
|
${s}px !important;
|
|
9
8
|
}
|
|
10
|
-
`),()=>{j.current?.removeAttribute("data-motion-pop-id"),u.contains(t)&&u.removeChild(t)}},[b]),(0,g.jsx)(a4,{isPresent:b,childRef:j,sizeRef:k,pop:f,children:!1===f?a:h.cloneElement(a,{ref:m})})}let a6=({children:a,initial:b,isPresent:c,onExitComplete:d,custom:e,presenceAffectsLayout:f,mode:i,anchorX:j,anchorY:k,root:l})=>{let m=aZ(a7),n=(0,h.useId)(),o=(0,h.useRef)(c),p=(0,h.useRef)(d);a$(()=>{o.current=c,p.current=d});let q=!0,r=(0,h.useMemo)(()=>(q=!1,{id:n,initial:b,isPresent:c,custom:e,onExitComplete:a=>{for(let b of(m.set(a,!0),m.values()))if(!b)return;d&&d()},register:a=>(m.set(a,!1),()=>{m.delete(a),o.current||m.size||p.current?.()})}),[c,m,d]);return f&&q&&(r={...r}),(0,h.useMemo)(()=>{m.forEach((a,b)=>m.set(b,!1))},[c]),h.useEffect(()=>{c||m.size||!d||d()},[c]),a=(0,g.jsx)(a5,{pop:"popLayout"===i,isPresent:c,anchorX:j,anchorY:k,root:l,children:a}),(0,g.jsx)(a_.Provider,{value:r,children:a})};function a7(){return new Map}function a8(a=!0){let b=(0,h.useContext)(a_);if(null===b)return[!0,null];let{isPresent:c,onExitComplete:d,register:e}=b,f=(0,h.useId)(),g=(0,h.useCallback)(()=>a&&d&&d(f),[f,d,a]);return!c&&d?[!1,g]:[!0]}let a9=a=>a.key||"";function ba(a){let b=[];return h.Children.forEach(a,a=>{(0,h.isValidElement)(a)&&b.push(a)}),b}let bb=({children:a,custom:b,initial:c=!0,onExitComplete:d,presenceAffectsLayout:e=!0,mode:f="sync",propagate:i=!1,anchorX:j="left",anchorY:k="top",root:l})=>{let[m,n]=a8(i),o=(0,h.useMemo)(()=>ba(a),[a]),p=i&&!m?[]:o.map(a9),q=(0,h.useRef)(!0),r=(0,h.useRef)(o),s=aZ(()=>new Map),t=(0,h.useRef)(new Set),[u,v]=(0,h.useState)(o),[w,x]=(0,h.useState)(o);a$(()=>{q.current=!1,r.current=o;for(let a=0;a<w.length;a++){let b=a9(w[a]);p.includes(b)?(s.delete(b),t.current.delete(b)):!0!==s.get(b)&&s.set(b,!1)}},[w,p.length,p.join("-")]);let y=[];if(o!==u){let a=[...o];for(let b=0;b<w.length;b++){let c=w[b],d=a9(c);p.includes(d)||(a.splice(b,0,c),y.push(c))}return"wait"===f&&y.length&&(a=y),x(ba(a)),v(o),null}let{forceRender:z}=(0,h.useContext)(aY);return(0,g.jsx)(g.Fragment,{children:w.map(a=>{let h=a9(a),u=(!i||!!m)&&(o===w||p.includes(h));return(0,g.jsx)(a6,{isPresent:u,initial:(!q.current||!!c)&&void 0,custom:b,presenceAffectsLayout:e,mode:f,root:l,onExitComplete:u?void 0:()=>{if(t.current.has(h)||!s.has(h))return;t.current.add(h),s.set(h,!0);let a=!0;s.forEach(b=>{b||(a=!1)}),a&&(z?.(),x(r.current),i&&n?.(),d&&d())},anchorX:j,anchorY:k,children:a},h)})})},bc=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],bd=new Set([...bc,"pathRotation"]),be=(a,b,c)=>c>b?b:c<a?a:c,bf={test:a=>"number"==typeof a,parse:parseFloat,transform:a=>a},bg={...bf,transform:a=>be(0,1,a)},bh={...bf,default:1},bi=a=>Math.round(1e5*a)/1e5,bj=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu,bk=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,bl=(a,b)=>c=>!!("string"==typeof c&&bk.test(c)&&c.startsWith(a)||b&&null!=c&&Object.prototype.hasOwnProperty.call(c,b)),bm=(a,b,c)=>d=>{if("string"!=typeof d)return d;let[e,f,g,h]=d.match(bj);return{[a]:parseFloat(e),[b]:parseFloat(f),[c]:parseFloat(g),alpha:void 0!==h?parseFloat(h):1}},bn={...bf,transform:a=>Math.round(be(0,255,a))},bo={test:bl("rgb","red"),parse:bm("red","green","blue"),transform:({red:a,green:b,blue:c,alpha:d=1})=>"rgba("+bn.transform(a)+", "+bn.transform(b)+", "+bn.transform(c)+", "+bi(bg.transform(d))+")"},bp={test:bl("#"),parse:function(a){let b="",c="",d="",e="";return a.length>5?(b=a.substring(1,3),c=a.substring(3,5),d=a.substring(5,7),e=a.substring(7,9)):(b=a.substring(1,2),c=a.substring(2,3),d=a.substring(3,4),e=a.substring(4,5),b+=b,c+=c,d+=d,e+=e),{red:parseInt(b,16),green:parseInt(c,16),blue:parseInt(d,16),alpha:e?parseInt(e,16)/255:1}},transform:bo.transform},bq=a=>({test:b=>"string"==typeof b&&b.endsWith(a)&&1===b.split(" ").length,parse:parseFloat,transform:b=>`${b}${a}`}),br=bq("deg"),bs=bq("%"),bt=bq("px"),bu=bq("vh"),bv=bq("vw"),bw={...bs,parse:a=>bs.parse(a)/100,transform:a=>bs.transform(100*a)},bx={test:bl("hsl","hue"),parse:bm("hue","saturation","lightness"),transform:({hue:a,saturation:b,lightness:c,alpha:d=1})=>"hsla("+Math.round(a)+", "+bs.transform(bi(b))+", "+bs.transform(bi(c))+", "+bi(bg.transform(d))+")"},by={test:a=>bo.test(a)||bp.test(a)||bx.test(a),parse:a=>bo.test(a)?bo.parse(a):bx.test(a)?bx.parse(a):bp.parse(a),transform:a=>"string"==typeof a?a:a.hasOwnProperty("red")?bo.transform(a):bx.transform(a),getAnimatableNone:a=>{let b=by.parse(a);return b.alpha=0,by.transform(b)}},bz=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu,bA="number",bB="color",bC=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function bD(a){let b=a.toString(),c=[],d={color:[],number:[],var:[]},e=[],f=0,g=b.replace(bC,a=>(by.test(a)?(d.color.push(f),e.push(bB),c.push(by.parse(a))):a.startsWith("var(")?(d.var.push(f),e.push("var"),c.push(a)):(d.number.push(f),e.push(bA),c.push(parseFloat(a))),++f,"${}")).split("${}");return{values:c,split:g,indexes:d,types:e}}function bE({split:a,types:b}){let c=a.length;return d=>{let e="";for(let f=0;f<c;f++)if(e+=a[f],void 0!==d[f]){let a=b[f];a===bA?e+=bi(d[f]):a===bB?e+=by.transform(d[f]):e+=d[f]}return e}}let bF={test:function(a){return isNaN(a)&&"string"==typeof a&&(a.match(bj)?.length||0)+(a.match(bz)?.length||0)>0},parse:function(a){return bD(a).values},createTransformer:function(a){return bE(bD(a))},getAnimatableNone:function(a){let b=bD(a);return bE(b)(b.values.map((a,c)=>{var d;let e;return d=b.split[c],"number"==typeof a?d?.trim().endsWith("/")?a:0:"number"==typeof(e=a)?0:by.test(e)?by.getAnimatableNone(e):e}))}},bG=new Set(["brightness","contrast","saturate","opacity"]);function bH(a){let[b,c]=a.slice(0,-1).split("(");if("drop-shadow"===b)return a;let[d]=c.match(bj)||[];if(!d)return a;let e=c.replace(d,""),f=+!!bG.has(b);return d!==c&&(f*=100),b+"("+f+e+")"}let bI=/\b([a-z-]*)\(.*?\)/gu,bJ={...bF,getAnimatableNone:a=>{let b=a.match(bI);return b?b.map(bH).join(" "):a}},bK={...bF,getAnimatableNone:a=>{let b=bF.parse(a);return bF.createTransformer(a)(b.map(a=>"number"==typeof a?0:"object"==typeof a?{...a,alpha:1}:a))}},bL={...bf,transform:Math.round},bM={borderWidth:bt,borderTopWidth:bt,borderRightWidth:bt,borderBottomWidth:bt,borderLeftWidth:bt,borderRadius:bt,borderTopLeftRadius:bt,borderTopRightRadius:bt,borderBottomRightRadius:bt,borderBottomLeftRadius:bt,width:bt,maxWidth:bt,height:bt,maxHeight:bt,top:bt,right:bt,bottom:bt,left:bt,inset:bt,insetBlock:bt,insetBlockStart:bt,insetBlockEnd:bt,insetInline:bt,insetInlineStart:bt,insetInlineEnd:bt,padding:bt,paddingTop:bt,paddingRight:bt,paddingBottom:bt,paddingLeft:bt,paddingBlock:bt,paddingBlockStart:bt,paddingBlockEnd:bt,paddingInline:bt,paddingInlineStart:bt,paddingInlineEnd:bt,margin:bt,marginTop:bt,marginRight:bt,marginBottom:bt,marginLeft:bt,marginBlock:bt,marginBlockStart:bt,marginBlockEnd:bt,marginInline:bt,marginInlineStart:bt,marginInlineEnd:bt,fontSize:bt,backgroundPositionX:bt,backgroundPositionY:bt,rotate:br,pathRotation:br,rotateX:br,rotateY:br,rotateZ:br,scale:bh,scaleX:bh,scaleY:bh,scaleZ:bh,skew:br,skewX:br,skewY:br,distance:bt,translateX:bt,translateY:bt,translateZ:bt,x:bt,y:bt,z:bt,perspective:bt,transformPerspective:bt,opacity:bg,originX:bw,originY:bw,originZ:bt,zIndex:bL,fillOpacity:bg,strokeOpacity:bg,numOctaves:bL},bN={...bM,color:by,backgroundColor:by,outlineColor:by,fill:by,stroke:by,borderColor:by,borderTopColor:by,borderRightColor:by,borderBottomColor:by,borderLeftColor:by,filter:bJ,WebkitFilter:bJ,mask:bK,WebkitMask:bK},bO=a=>bN[a],bP=()=>({translate:0,scale:1,origin:0,originPoint:0}),bQ=()=>({x:bP(),y:bP()}),bR=()=>({min:0,max:0}),bS=()=>({x:bR(),y:bR()}),bT=a=>!!(a&&a.getVelocity),bU=new Set(["width","height","top","left","right","bottom",...bc]),bV=a=>b=>b.test(a),bW=[bf,bt,bs,br,bv,bu,{test:a=>"auto"===a,parse:a=>a}],bX=a=>bW.find(bV(a)),bY=()=>{},bZ=()=>{},b$=a=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(a),b_=a=>b=>"string"==typeof b&&b.startsWith(a),b0=b_("--"),b1=b_("var(--"),b2=a=>!!b1(a)&&b3.test(a.split("/*")[0].trim()),b3=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function b4(a){return"string"==typeof a&&a.split("/*")[0].includes("var(--")}let b5=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u,b6=a=>180*a/Math.PI,b7=a=>b9(b6(Math.atan2(a[1],a[0]))),b8={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:a=>(Math.abs(a[0])+Math.abs(a[3]))/2,rotate:b7,rotateZ:b7,skewX:a=>b6(Math.atan(a[1])),skewY:a=>b6(Math.atan(a[2])),skew:a=>(Math.abs(a[1])+Math.abs(a[2]))/2},b9=a=>((a%=360)<0&&(a+=360),a),ca=a=>Math.sqrt(a[0]*a[0]+a[1]*a[1]),cb=a=>Math.sqrt(a[4]*a[4]+a[5]*a[5]),cc={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:ca,scaleY:cb,scale:a=>(ca(a)+cb(a))/2,rotateX:a=>b9(b6(Math.atan2(a[6],a[5]))),rotateY:a=>b9(b6(Math.atan2(-a[2],a[0]))),rotateZ:b7,rotate:b7,skewX:a=>b6(Math.atan(a[4])),skewY:a=>b6(Math.atan(a[1])),skew:a=>(Math.abs(a[1])+Math.abs(a[4]))/2};function cd(a){return+!!a.includes("scale")}function ce(a,b){let c,d;if(!a||"none"===a)return cd(b);let e=a.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);if(e)c=cc,d=e;else{let b=a.match(/^matrix\(([-\d.e\s,]+)\)$/u);c=b8,d=b}if(!d)return cd(b);let f=c[b],g=d[1].split(",").map(cf);return"function"==typeof f?f(g):g[f]}function cf(a){return parseFloat(a.trim())}let cg=a=>a===bf||a===bt,ch=new Set(["x","y","z"]),ci=bc.filter(a=>!ch.has(a)),cj={width:({x:a},{paddingLeft:b="0",paddingRight:c="0",boxSizing:d})=>{let e=a.max-a.min;return"border-box"===d?e:e-parseFloat(b)-parseFloat(c)},height:({y:a},{paddingTop:b="0",paddingBottom:c="0",boxSizing:d})=>{let e=a.max-a.min;return"border-box"===d?e:e-parseFloat(b)-parseFloat(c)},top:(a,{top:b})=>parseFloat(b),left:(a,{left:b})=>parseFloat(b),bottom:({y:a},{top:b})=>parseFloat(b)+(a.max-a.min),right:({x:a},{left:b})=>parseFloat(b)+(a.max-a.min),x:(a,{transform:b})=>ce(b,"x"),y:(a,{transform:b})=>ce(b,"y")};cj.translateX=cj.x,cj.translateY=cj.y;let ck=a=>a,cl={},cm=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function cn(a,b){let c=!1,d=!0,e={delta:0,timestamp:0,isProcessing:!1},f=()=>c=!0,g=cm.reduce((a,b)=>(a[b]=function(a){let b=new Set,c=new Set,d=!1,e=!1,f=new WeakSet,g={delta:0,timestamp:0,isProcessing:!1};function h(b){f.has(b)&&(i.schedule(b),a()),b(g)}let i={schedule:(a,e=!1,g=!1)=>{let h=g&&d?b:c;return e&&f.add(a),h.add(a),a},cancel:a=>{c.delete(a),f.delete(a)},process:a=>{if(g=a,d){e=!0;return}d=!0;let f=b;b=c,c=f,b.forEach(h),b.clear(),d=!1,e&&(e=!1,i.process(a))}};return i}(f),a),{}),{setup:h,read:i,resolveKeyframes:j,preUpdate:k,update:l,preRender:m,render:n,postRender:o}=g,p=()=>{let f=cl.useManualTiming,g=f?e.timestamp:performance.now();c=!1,f||(e.delta=d?1e3/60:Math.max(Math.min(g-e.timestamp,40),1)),e.timestamp=g,e.isProcessing=!0,h.process(e),i.process(e),j.process(e),k.process(e),l.process(e),m.process(e),n.process(e),o.process(e),e.isProcessing=!1,c&&b&&(d=!1,a(p))};return{schedule:cm.reduce((b,f)=>{let h=g[f];return b[f]=(b,f=!1,g=!1)=>(!c&&(c=!0,d=!0,e.isProcessing||a(p)),h.schedule(b,f,g)),b},{}),cancel:a=>{for(let b=0;b<cm.length;b++)g[cm[b]].cancel(a)},state:e,steps:g}}let{schedule:co,cancel:cp,state:cq,steps:cr}=cn("undefined"!=typeof requestAnimationFrame?requestAnimationFrame:ck,!0),cs=new Set,ct=!1,cu=!1,cv=!1;function cw(){if(cu){let a=Array.from(cs).filter(a=>a.needsMeasurement),b=new Set(a.map(a=>a.element)),c=new Map;b.forEach(a=>{let b=function(a){let b=[];return ci.forEach(c=>{let d=a.getValue(c);void 0!==d&&(b.push([c,d.get()]),d.set(+!!c.startsWith("scale")))}),b}(a);b.length&&(c.set(a,b),a.render())}),a.forEach(a=>a.measureInitialState()),b.forEach(a=>{a.render();let b=c.get(a);b&&b.forEach(([b,c])=>{a.getValue(b)?.set(c)})}),a.forEach(a=>a.measureEndState()),a.forEach(a=>{void 0!==a.suspendedScrollY&&window.scrollTo(0,a.suspendedScrollY)})}cu=!1,ct=!1,cs.forEach(a=>a.complete(cv)),cs.clear()}function cx(){cs.forEach(a=>{a.readKeyframes(),a.needsMeasurement&&(cu=!0)})}class cy{constructor(a,b,c,d,e,f=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...a],this.onComplete=b,this.name=c,this.motionValue=d,this.element=e,this.isAsync=f}scheduleResolve(){this.state="scheduled",this.isAsync?(cs.add(this),ct||(ct=!0,co.read(cx),co.resolveKeyframes(cw))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes:a,name:b,element:c,motionValue:d}=this;if(null===a[0]){let e=d?.get(),f=a[a.length-1];if(void 0!==e)a[0]=e;else if(c&&b){let d=c.readValue(b,f);null!=d&&(a[0]=d)}void 0===a[0]&&(a[0]=f),d&&void 0===e&&d.set(a[0])}for(let b=1;b<a.length;b++)a[b]??(a[b]=a[b-1])}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(a=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,a),cs.delete(this)}cancel(){"scheduled"===this.state&&(cs.delete(this),this.state="pending")}resume(){"pending"===this.state&&this.scheduleResolve()}}let cz=a=>/^0[^.\s]+$/u.test(a),cA=new Set([bJ,bK]);function cB(a,b){let c=bO(a);return cA.has(c)||(c=bF),c.getAnimatableNone?c.getAnimatableNone(b):void 0}let cC=new Set(["auto","none","0"]);class cD extends cy{constructor(a,b,c,d,e){super(a,b,c,d,e,!0)}readKeyframes(){let{unresolvedKeyframes:a,element:b,name:c}=this;if(!b||!b.current)return;super.readKeyframes();for(let c=0;c<a.length;c++){let d=a[c];if("string"==typeof d&&b2(d=d.trim())){let e=function a(b,c,d=1){bZ(d<=4,`Max CSS variable fallback depth detected in property "${b}". This may indicate a circular fallback dependency.`,"max-css-var-depth");let[e,f]=function(a){let b=b5.exec(a);if(!b)return[,];let[,c,d,e]=b;return[`--${c??d}`,e]}(b);if(!e)return;let g=window.getComputedStyle(c).getPropertyValue(e);if(g){let a=g.trim();return b$(a)?parseFloat(a):a}return b2(f)?a(f,c,d+1):f}(d,b.current);void 0!==e&&(a[c]=e),c===a.length-1&&(this.finalKeyframe=d)}}if(this.resolveNoneKeyframes(),!bU.has(c)||2!==a.length)return;let[d,e]=a,f=bX(d),g=bX(e);if(b4(d)!==b4(e)&&cj[c]){this.needsMeasurement=!0;return}if(f!==g)if(cg(f)&&cg(g))for(let b=0;b<a.length;b++){let c=a[b];"string"==typeof c&&(a[b]=parseFloat(c))}else cj[c]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){let{unresolvedKeyframes:a,name:b}=this,c=[];for(let b=0;b<a.length;b++){var d;(null===a[b]||("number"==typeof(d=a[b])?0===d:null===d||"none"===d||"0"===d||cz(d)))&&c.push(b)}c.length&&function(a,b,c){let d,e=0;for(;e<a.length&&!d;){let b=a[e];"string"==typeof b&&!cC.has(b)&&bD(b).values.length&&(d=a[e]),e++}if(d&&c)for(let e of b)a[e]=cB(c,d)}(a,c,b)}measureInitialState(){let{element:a,unresolvedKeyframes:b,name:c}=this;if(!a||!a.current)return;"height"===c&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=cj[c](a.measureViewportBox(),window.getComputedStyle(a.current)),b[0]=this.measuredOrigin;let d=b[b.length-1];void 0!==d&&a.getValue(c,d).jump(d,!1)}measureEndState(){let{element:a,name:b,unresolvedKeyframes:c}=this;if(!a||!a.current)return;let d=a.getValue(b);d&&d.jump(this.measuredOrigin,!1);let e=c.length-1,f=c[e];c[e]=cj[b](a.measureViewportBox(),window.getComputedStyle(a.current)),null!==f&&void 0===this.finalKeyframe&&(this.finalKeyframe=f),this.removedTransforms?.length&&this.removedTransforms.forEach(([b,c])=>{a.getValue(b).set(c)}),this.resolveNoneKeyframes()}}let cE=a=>1e3*a;function cF(a,b){-1===a.indexOf(b)&&a.push(b)}function cG(a,b){let c=a.indexOf(b);c>-1&&a.splice(c,1)}class cH{constructor(){this.subscriptions=[]}add(a){return cF(this.subscriptions,a),()=>cG(this.subscriptions,a)}notify(a,b,c){let d=this.subscriptions.length;if(d)if(1===d)this.subscriptions[0](a,b,c);else for(let e=0;e<d;e++){let d=this.subscriptions[e];d&&d(a,b,c)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}function cI(a,b,c){b.startsWith("--")?a.style.setProperty(b,c):a.style[b]=c}function cJ(a){let b;return()=>(void 0===b&&(b=a()),b)}let cK={};function cL(a,b){let c=cJ(a);return()=>cK[b]??c()}let cM=cL(()=>void 0!==window.ScrollTimeline,"scrollTimeline"),cN=a=>null!==a;function cO(a,{repeat:b,repeatType:c="loop"},d,e=1){let f=a.filter(cN),g=e<0||b&&"loop"!==c&&b%2==1?0:f.length-1;return g&&void 0!==d?d:f[g]}class cP{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(a=>{this.resolve=a})}notifyFinished(){this.resolve()}then(a,b){return this.finished.then(a,b)}}let cQ=a=>Array.isArray(a)&&"number"==typeof a[0],cR=cL(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch(a){return!1}return!0},"linearEasing"),cS=(a,b,c=10)=>{let d="",e=Math.max(Math.round(b/c),2);for(let b=0;b<e;b++)d+=Math.round(1e4*a(b/(e-1)))/1e4+", ";return`linear(${d.substring(0,d.length-2)})`},cT=([a,b,c,d])=>`cubic-bezier(${a}, ${b}, ${c}, ${d})`,cU={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:cT([0,.65,.55,1]),circOut:cT([.55,0,1,.45]),backIn:cT([.31,.01,.66,-.59]),backOut:cT([.33,1.53,.69,.99])};function cV(a){return"function"==typeof a&&"applyToOptions"in a}class cW extends cP{constructor(a){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!a)return;let{element:b,name:c,keyframes:d,pseudoElement:e,allowFlatten:f=!1,finalKeyframe:g,onComplete:h}=a;this.isPseudoElement=!!e,this.allowFlatten=f,this.options=a,bZ("string"!=typeof a.type,'Mini animate() doesn\'t support "type" as a string.',"mini-spring");let i=function({type:a,...b}){return cV(a)&&cR()?a.applyToOptions(b):(b.duration??(b.duration=300),b.ease??(b.ease="easeOut"),b)}(a);this.animation=function(a,b,c,{delay:d=0,duration:e=300,repeat:f=0,repeatType:g="loop",ease:h="easeOut",times:i}={},j){let k={[b]:c};i&&(k.offset=i);let l=function a(b,c){if(b)return"function"==typeof b?cR()?cS(b,c):"ease-out":cQ(b)?cT(b):Array.isArray(b)?b.map(b=>a(b,c)||cU.easeOut):cU[b]}(h,e);Array.isArray(l)&&(k.easing=l);let m={delay:d,duration:e,easing:Array.isArray(l)?"linear":l,fill:"both",iterations:f+1,direction:"reverse"===g?"alternate":"normal"};return j&&(m.pseudoElement=j),a.animate(k,m)}(b,c,d,i,e),!1===i.autoplay&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!e){let a=cO(d,this.options,g,this.speed);this.updateMotionValue&&this.updateMotionValue(a),cI(b,c,a),this.animation.cancel()}h?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),"finished"===this.state&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch(a){}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:a}=this;"idle"!==a&&"finished"!==a&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){let a=this.options?.element;!this.isPseudoElement&&a?.isConnected&&this.animation.commitStyles?.()}get duration(){return Number(this.animation.effect?.getComputedTiming?.().duration||0)/1e3}get iterationDuration(){let{delay:a=0}=this.options||{};return this.duration+a/1e3}get time(){return(Number(this.animation.currentTime)||0)/1e3}set time(a){let b=null!==this.finishedTime;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=cE(a),b&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(a){a<0&&(this.finishedTime=null),this.animation.playbackRate=a}get state(){return null!==this.finishedTime?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(a){this.manualStartTime=this.animation.startTime=a}attachTimeline({timeline:a,rangeStart:b,rangeEnd:c,observe:d}){return(this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,a&&cM())?(this.animation.timeline=a,b&&(this.animation.rangeStart=b),c&&(this.animation.rangeEnd=c),ck):d(this)}}let cX=new Set(["opacity","clipPath","filter","transform"]),{schedule:cY}=cn(queueMicrotask,!1);function cZ(){d=void 0}let c$={now:()=>(void 0===d&&c$.set(cq.isProcessing||cl.useManualTiming?cq.timestamp:performance.now()),d),set:a=>{d=a,queueMicrotask(cZ)}},c_=(a,b)=>b?1e3/b*a:0,c0={current:void 0};class c1{constructor(a,b={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=a=>{let b=c$.now();if(this.updatedAt!==b&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(a),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(let a of this.dependents)a.dirty()},this.hasAnimated=!1,this.setCurrent(a),this.owner=b.owner}setCurrent(a){this.current=a,this.updatedAt=c$.now(),null===this.canTrackVelocity&&void 0!==a&&(this.canTrackVelocity=!isNaN(parseFloat(this.current)))}setPrevFrameValue(a=this.current){this.prevFrameValue=a,this.prevUpdatedAt=this.updatedAt}onChange(a){return this.on("change",a)}on(a,b){this.events[a]||(this.events[a]=new cH);let c=this.events[a].add(b);return"change"===a?()=>{c(),co.read(()=>{this.events.change.getSize()||this.stop()})}:c}clearListeners(){for(let a in this.events)this.events[a].clear()}attach(a,b){this.passiveEffect=a,this.stopPassiveEffect=b}set(a){this.passiveEffect?this.passiveEffect(a,this.updateAndNotify):this.updateAndNotify(a)}setWithVelocity(a,b,c){this.set(b),this.prev=void 0,this.prevFrameValue=a,this.prevUpdatedAt=this.updatedAt-c}jump(a,b=!0){this.updateAndNotify(a),this.prev=a,this.prevUpdatedAt=this.prevFrameValue=void 0,b&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(a){this.dependents||(this.dependents=new Set),this.dependents.add(a)}removeDependent(a){this.dependents&&this.dependents.delete(a)}get(){return c0.current&&c0.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){let a=c$.now();if(!this.canTrackVelocity||void 0===this.prevFrameValue||a-this.updatedAt>30)return 0;let b=Math.min(this.updatedAt-this.prevUpdatedAt,30);return c_(parseFloat(this.current)-parseFloat(this.prevFrameValue),b)}start(a){return this.stop(),new Promise(b=>{this.hasAnimated=!0,this.animation=a(b),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function c2(a,b){return new c1(a,b)}let c3=[...bW,by,bF],c4=new WeakMap;function c5(a){return null!==a&&"object"==typeof a&&"function"==typeof a.start}function c6(a){return"string"==typeof a||Array.isArray(a)}let c7=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],c8=["initial",...c7];function c9(a){return c5(a.animate)||c8.some(b=>c6(a[b]))}function da(a){return!!(c9(a)||a.variants)}function db(a){let b=[{},{}];return a?.values.forEach((a,c)=>{b[0][c]=a.get(),b[1][c]=a.getVelocity()}),b}function dc(a,b,c,d){if("function"==typeof b){let[e,f]=db(d);b=b(void 0!==c?c:a.custom,e,f)}if("string"==typeof b&&(b=a.variants&&a.variants[b]),"function"==typeof b){let[e,f]=db(d);b=b(void 0!==c?c:a.custom,e,f)}return b}let dd=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],de={};class df{scrapeMotionValuesFromProps(a,b,c){return{}}constructor({parent:a,props:b,presenceContext:c,reducedMotionConfig:d,skipAnimations:e,blockInitialAnimation:f,visualState:g},h={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=cy,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{let a=c$.now();this.renderScheduledAt<a&&(this.renderScheduledAt=a,co.render(this.render,!1,!0))};let{latestValues:i,renderState:j}=g;this.latestValues=i,this.baseTarget={...i},this.initialValues=b.initial?{...i}:{},this.renderState=j,this.parent=a,this.props=b,this.presenceContext=c,this.depth=a?a.depth+1:0,this.reducedMotionConfig=d,this.skipAnimationsConfig=e,this.options=h,this.blockInitialAnimation=!!f,this.isControllingVariants=c9(b),this.isVariantNode=da(b),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(a&&a.current);let{willChange:k,...l}=this.scrapeMotionValuesFromProps(b,{},this);for(let a in l){let b=l[a];void 0!==i[a]&&bT(b)&&b.set(i[a])}}mount(a){if(this.hasBeenMounted)for(let a in this.initialValues)this.values.get(a)?.jump(this.initialValues[a]),this.latestValues[a]=this.initialValues[a];this.current=a,c4.set(a,this),this.projection&&!this.projection.instance&&this.projection.mount(a),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((a,b)=>this.bindToMotionValue(b,a)),"never"===this.reducedMotionConfig?this.shouldReduceMotion=!1:"always"===this.reducedMotionConfig?this.shouldReduceMotion=!0:(_.current||ab(),this.shouldReduceMotion=$.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){for(let a in this.projection&&this.projection.unmount(),cp(this.notifyUpdate),cp(this.render),this.valueSubscriptions.forEach(a=>a()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this),this.events)this.events[a].clear();for(let a in this.features){let b=this.features[a];b&&(b.unmount(),b.isMounted=!1)}this.current=null}addChild(a){this.children.add(a),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(a)}removeChild(a){this.children.delete(a),this.enteringChildren&&this.enteringChildren.delete(a)}bindToMotionValue(a,b){let c;if(this.valueSubscriptions.has(a)&&this.valueSubscriptions.get(a)(),b.accelerate&&cX.has(a)&&this.current instanceof HTMLElement){let{factory:c,keyframes:d,times:e,ease:f,duration:g}=b.accelerate,h=new cW({element:this.current,name:a,keyframes:d,times:e,ease:f,duration:cE(g)}),i=c(h);this.valueSubscriptions.set(a,()=>{i(),h.cancel()});return}let d=bd.has(a);d&&this.onBindTransform&&this.onBindTransform();let e=b.on("change",b=>{this.latestValues[a]=b,this.props.onUpdate&&co.preRender(this.notifyUpdate),d&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});"undefined"!=typeof window&&window.MotionCheckAppearSync&&(c=window.MotionCheckAppearSync(this,a,b)),this.valueSubscriptions.set(a,()=>{e(),c&&c()})}sortNodePosition(a){return this.current&&this.sortInstanceNodePosition&&this.type===a.type?this.sortInstanceNodePosition(this.current,a.current):0}updateFeatures(){let a="animation";for(a in de){let b=de[a];if(!b)continue;let{isEnabled:c,Feature:d}=b;if(!this.features[a]&&d&&c(this.props)&&(this.features[a]=new d(this)),this.features[a]){let b=this.features[a];b.isMounted?b.update():(b.mount(),b.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):bS()}getStaticValue(a){return this.latestValues[a]}setStaticValue(a,b){this.latestValues[a]=b}update(a,b){(a.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=a,this.prevPresenceContext=this.presenceContext,this.presenceContext=b;for(let b=0;b<dd.length;b++){let c=dd[b];this.propEventSubscriptions[c]&&(this.propEventSubscriptions[c](),delete this.propEventSubscriptions[c]);let d=a["on"+c];d&&(this.propEventSubscriptions[c]=this.on(c,d))}this.prevMotionValues=function(a,b,c){for(let d in b){let e=b[d],f=c[d];if(bT(e))a.addValue(d,e);else if(bT(f))a.addValue(d,c2(e,{owner:a}));else if(f!==e)if(a.hasValue(d)){let b=a.getValue(d);!0===b.liveStyle?b.jump(e):b.hasAnimated||b.set(e)}else{let b=a.getStaticValue(d);a.addValue(d,c2(void 0!==b?b:e,{owner:a}))}}for(let d in c)void 0===b[d]&&a.removeValue(d);return b}(this,this.scrapeMotionValuesFromProps(a,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(a){return this.props.variants?this.props.variants[a]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(a){let b=this.getClosestVariantNode();if(b)return b.variantChildren&&b.variantChildren.add(a),()=>b.variantChildren.delete(a)}addValue(a,b){let c=this.values.get(a);b!==c&&(c&&this.removeValue(a),this.bindToMotionValue(a,b),this.values.set(a,b),this.latestValues[a]=b.get())}removeValue(a){this.values.delete(a);let b=this.valueSubscriptions.get(a);b&&(b(),this.valueSubscriptions.delete(a)),delete this.latestValues[a],this.removeValueFromRenderState(a,this.renderState)}hasValue(a){return this.values.has(a)}getValue(a,b){if(this.props.values&&this.props.values[a])return this.props.values[a];let c=this.values.get(a);return void 0===c&&void 0!==b&&(c=c2(null===b?void 0:b,{owner:this}),this.addValue(a,c)),c}readValue(a,b){let c=void 0===this.latestValues[a]&&this.current?this.getBaseTargetFromProps(this.props,a)??this.readValueFromInstance(this.current,a,this.options):this.latestValues[a];if(null!=c){if("string"==typeof c&&(b$(c)||cz(c)))c=parseFloat(c);else{let d;d=c,!c3.find(bV(d))&&bF.test(b)&&(c=cB(a,b))}this.setBaseTarget(a,bT(c)?c.get():c)}return bT(c)?c.get():c}setBaseTarget(a,b){this.baseTarget[a]=b}getBaseTarget(a){let b,{initial:c}=this.props;if("string"==typeof c||"object"==typeof c){let d=dc(this.props,c,this.presenceContext?.custom);d&&(b=d[a])}if(c&&void 0!==b)return b;let d=this.getBaseTargetFromProps(this.props,a);return void 0===d||bT(d)?void 0!==this.initialValues[a]&&void 0===b?void 0:this.baseTarget[a]:d}on(a,b){return this.events[a]||(this.events[a]=new cH),this.events[a].add(b)}notify(a,...b){this.events[a]&&this.events[a].notify(...b)}scheduleRenderMicrotask(){cY.render(this.render)}}class dg extends df{constructor(){super(...arguments),this.KeyframeResolver=cD}sortInstanceNodePosition(a,b){return 2&a.compareDocumentPosition(b)?1:-1}getBaseTargetFromProps(a,b){let c=a.style;return c?c[b]:void 0}removeValueFromRenderState(a,{vars:b,style:c}){delete b[a],delete c[a]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);let{children:a}=this.props;bT(a)&&(this.childSubscription=a.on("change",a=>{this.current&&(this.current.textContent=`${a}`)}))}}function dh(a){return a.replace(/([A-Z])/g,a=>`-${a.toLowerCase()}`)}let di=(a,b)=>b&&"number"==typeof a?b.transform(a):a,dj={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},dk=bc.length;function dl(a,b,c){let{style:d,vars:e,transformOrigin:f}=a,g=!1,h=!1;for(let a in b){let c=b[a];if(bd.has(a)){g=!0;continue}if(b0(a)){e[a]=c;continue}{let b=di(c,bM[a]);a.startsWith("origin")?(h=!0,f[a]=b):d[a]=b}}if(!b.transform&&(g||c?d.transform=function(a,b,c){let d="",e=!0;for(let f=0;f<dk;f++){let g=bc[f],h=a[g];if(void 0===h)continue;let i=!0;if("number"==typeof h)i=h===+!!g.startsWith("scale");else{let a=parseFloat(h);i=g.startsWith("scale")?1===a:0===a}if(!i||c){let a=di(h,bM[g]);if(!i){e=!1;let b=dj[g]||g;d+=`${b}(${a}) `}c&&(b[g]=a)}}let f=a.pathRotation;return f&&(e=!1,d+=`rotate(${di(f,bM.pathRotation)}) `),d=d.trim(),c?d=c(b,e?"":d):e&&(d="none"),d}(b,a.transform,c):d.transform&&(d.transform="none")),h){let{originX:a="50%",originY:b="50%",originZ:c=0}=f;d.transformOrigin=`${a} ${b} ${c}`}}let dm={offset:"stroke-dashoffset",array:"stroke-dasharray"},dn={offset:"strokeDashoffset",array:"strokeDasharray"},dp=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function dq(a,{attrX:b,attrY:c,attrScale:d,pathLength:e,pathSpacing:f=1,pathOffset:g=0,...h},i,j,k){if(dl(a,h,j),i){a.style.viewBox&&(a.attrs.viewBox=a.style.viewBox);return}a.attrs=a.style,a.style={};let{attrs:l,style:m}=a;for(let a of(l.transform&&(m.transform=l.transform,delete l.transform),(m.transform||l.transformOrigin)&&(m.transformOrigin=l.transformOrigin??"50% 50%",delete l.transformOrigin),m.transform&&(m.transformBox=k?.transformBox??"fill-box",delete l.transformBox),dp))void 0!==l[a]&&(m[a]=l[a],delete l[a]);void 0!==b&&(l.x=b),void 0!==c&&(l.y=c),void 0!==d&&(l.scale=d),void 0!==e&&function(a,b,c=1,d=0,e=!0){a.pathLength=1;let f=e?dm:dn;a[f.offset]=`${-d}`,a[f.array]=`${b} ${c}`}(l,e,f,g,!1)}let dr=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),ds=a=>"string"==typeof a&&"svg"===a.toLowerCase();function dt(a,{style:b,vars:c},d,e){let f,g=a.style;for(f in b)g[f]=b[f];for(f in e?.applyProjectionStyles(g,d),c)g.setProperty(f,c[f])}let du=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"];function dv(a,b){return b.max===b.min?0:a/(b.max-b.min)*100}let dw={correct:(a,b)=>{if(!b.target)return a;if("string"==typeof a)if(!bt.test(a))return a;else a=parseFloat(a);let c=dv(a,b.target.x),d=dv(a,b.target.y);return`${c}% ${d}%`}},dx=(a,b,c)=>a+(b-a)*c,dy={borderRadius:{...dw,applyTo:[...du]},borderTopLeftRadius:dw,borderTopRightRadius:dw,borderBottomLeftRadius:dw,borderBottomRightRadius:dw,boxShadow:{correct:(a,{treeScale:b,projectionDelta:c})=>{let d=bF.parse(a);if(d.length>5)return a;let e=bF.createTransformer(a),f=+("number"!=typeof d[0]),g=c.x.scale*b.x,h=c.y.scale*b.y;d[0+f]/=g,d[1+f]/=h;let i=dx(g,h,.5);return"number"==typeof d[2+f]&&(d[2+f]/=i),"number"==typeof d[3+f]&&(d[3+f]/=i),e(d)}}};function dz(a,{layout:b,layoutId:c}){return bd.has(a)||a.startsWith("origin")||(b||void 0!==c)&&(!!dy[a]||"opacity"===a)}function dA(a,b,c){let d=a.style,e=b?.style,f={};if(!d)return f;for(let b in d)(bT(d[b])||e&&bT(e[b])||dz(b,a)||c?.getValue(b)?.liveStyle!==void 0)&&(f[b]=d[b]);return f}function dB(a,b,c){let d=dA(a,b,c);for(let c in a)(bT(a[c])||bT(b[c]))&&(d[-1!==bc.indexOf(c)?"attr"+c.charAt(0).toUpperCase()+c.substring(1):c]=a[c]);return d}class dC extends dg{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=bS}getBaseTargetFromProps(a,b){return a[b]}readValueFromInstance(a,b){if(bd.has(b)){let a=bO(b);return a&&a.default||0}return b=dr.has(b)?b:dh(b),a.getAttribute(b)}scrapeMotionValuesFromProps(a,b,c){return dB(a,b,c)}build(a,b,c){dq(a,b,this.isSVGTag,c.transformTemplate,c.style)}renderInstance(a,b,c,d){for(let c in dt(a,b,void 0,d),b.attrs)a.setAttribute(dr.has(c)?c:dh(c),b.attrs[c])}mount(a){this.isSVGTag=ds(a.tagName),super.mount(a)}}function dD({top:a,left:b,right:c,bottom:d}){return{x:{min:b,max:c},y:{min:a,max:d}}}function dE(a){return void 0===a||1===a}function dF({scale:a,scaleX:b,scaleY:c}){return!dE(a)||!dE(b)||!dE(c)}function dG(a){return dF(a)||dH(a)||a.z||a.rotate||a.rotateX||a.rotateY||a.skewX||a.skewY}function dH(a){var b,c;return(b=a.x)&&"0%"!==b||(c=a.y)&&"0%"!==c}function dI(a,b,c,d,e){return void 0!==e&&(a=d+e*(a-d)),d+c*(a-d)+b}function dJ(a,b=0,c=1,d,e){a.min=dI(a.min,b,c,d,e),a.max=dI(a.max,b,c,d,e)}function dK(a,{x:b,y:c}){dJ(a.x,b.translate,b.scale,b.originPoint),dJ(a.y,c.translate,c.scale,c.originPoint)}function dL(a,b){a.min+=b,a.max+=b}function dM(a,b,c,d,e=.5){let f=dx(a.min,a.max,e);dJ(a,b,c,f,d)}function dN(a,b){return"string"==typeof a?parseFloat(a)/100*(b.max-b.min):a}function dO(a,b,c){let d=c??a;dM(a.x,dN(b.x,d.x),b.scaleX,b.scale,b.originX),dM(a.y,dN(b.y,d.y),b.scaleY,b.scale,b.originY)}function dP(a,b){return dD(function(a,b){if(!b)return a;let c=b({x:a.left,y:a.top}),d=b({x:a.right,y:a.bottom});return{top:c.y,left:c.x,bottom:d.y,right:d.x}}(a.getBoundingClientRect(),b))}class dQ extends dg{constructor(){super(...arguments),this.type="html",this.renderInstance=dt}readValueFromInstance(a,b){if(bd.has(b))return this.projection?.isProjecting?cd(b):((a,b)=>{let{transform:c="none"}=getComputedStyle(a);return ce(c,b)})(a,b);{let c=window.getComputedStyle(a),d=(b0(b)?c.getPropertyValue(b):c[b])||0;return"string"==typeof d?d.trim():d}}measureInstanceViewportBox(a,{transformPagePoint:b}){return dP(a,b)}build(a,b,c){dl(a,b,c.transformTemplate)}scrapeMotionValuesFromProps(a,b,c){return dA(a,b,c)}}let dR=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function dS(a){if("string"!=typeof a||a.includes("-"));else if(dR.indexOf(a)>-1||/[A-Z]/u.test(a))return!0;return!1}let dT=(0,h.createContext)({});function dU(a){return Array.isArray(a)?a.join(" "):a}let dV=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function dW(a,b,c){for(let d in b)bT(b[d])||dz(d,c)||(a[d]=b[d])}let dX=()=>({...dV(),attrs:{}}),dY=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function dZ(a){return a.startsWith("while")||a.startsWith("drag")&&"draggable"!==a||a.startsWith("layout")||a.startsWith("onTap")||a.startsWith("onPan")||a.startsWith("onLayout")||dY.has(a)}let d$=a=>!dZ(a);try{!function(a){"function"==typeof a&&(d$=b=>b.startsWith("on")?!dZ(b):a(b))}(require("@emotion/is-prop-valid").default)}catch{}function d_(a){return bT(a)?a.get():a}let d0=a=>(b,c)=>{let d=(0,h.useContext)(dT),e=(0,h.useContext)(a_),f=()=>(function({scrapeMotionValuesFromProps:a,createRenderState:b},c,d,e){return{latestValues:function(a,b,c,d){let e={},f=d(a,{});for(let a in f)e[a]=d_(f[a]);let{initial:g,animate:h}=a,i=c9(a),j=da(a);b&&j&&!i&&!1!==a.inherit&&(void 0===g&&(g=b.initial),void 0===h&&(h=b.animate));let k=!!c&&!1===c.initial,l=(k=k||!1===g)?h:g;if(l&&"boolean"!=typeof l&&!c5(l)){let b=Array.isArray(l)?l:[l];for(let c=0;c<b.length;c++){let d=dc(a,b[c]);if(d){let{transitionEnd:a,transition:b,...c}=d;for(let a in c){let b=c[a];if(Array.isArray(b)){let a=k?b.length-1:0;b=b[a]}null!==b&&(e[a]=b)}for(let b in a)e[b]=a[b]}}}return e}(c,d,e,a),renderState:b()}})(a,b,d,e);return c?f():aZ(f)},d1=d0({scrapeMotionValuesFromProps:dA,createRenderState:dV}),d2=d0({scrapeMotionValuesFromProps:dB,createRenderState:dX}),d3={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},d4=!1,d5=Symbol.for("motionComponentSymbol");function d6(a,{forwardMotionProps:b=!1,type:c}={},d,e){d&&function(a){let b=(!function(){if(d4)return;let a={};for(let b in d3)a[b]={isEnabled:a=>d3[b].some(b=>!!a[b])};de=a,d4=!0}(),de);for(let c in a)b[c]={...b[c],...a[c]};de=b}(d);let f=c?"svg"===c:dS(a),i=f?d2:d1;function j(c,d){let e,j={...(0,h.useContext)(a2),...c,layoutId:function({layoutId:a}){let b=(0,h.useContext)(aY).id;return b&&void 0!==a?b+"-"+a:a}(c)},{isStatic:k}=j,l=function(a){let{initial:b,animate:c}=function(a,b){if(c9(a)){let{initial:b,animate:c}=a;return{initial:!1===b||c6(b)?b:void 0,animate:c6(c)?c:void 0}}return!1!==a.inherit?b:{}}(a,(0,h.useContext)(dT));return(0,h.useMemo)(()=>({initial:b,animate:c}),[dU(b),dU(c)])}(c),m=i(c,k);return(0,g.jsxs)(dT.Provider,{value:l,children:[e&&l.visualElement?(0,g.jsx)(e,{visualElement:l.visualElement,...j}):null,function(a,b,c,{latestValues:d},e,f=!1,g){let i=(g??dS(a)?function(a,b,c,d){let e=(0,h.useMemo)(()=>{let c=dX();return dq(c,b,ds(d),a.transformTemplate,a.style),{...c.attrs,style:{...c.style}}},[b]);if(a.style){let b={};dW(b,a.style,a),e.style={...b,...e.style}}return e}:function(a,b){let c={},d=function(a,b){let c=a.style||{},d={};return dW(d,c,a),Object.assign(d,function({transformTemplate:a},b){return(0,h.useMemo)(()=>{let c=dV();return dl(c,b,a),Object.assign({},c.vars,c.style)},[b])}(a,b)),d}(a,b);return a.drag&&!1!==a.dragListener&&(c.draggable=!1,d.userSelect=d.WebkitUserSelect=d.WebkitTouchCallout="none",d.touchAction=!0===a.drag?"none":`pan-${"x"===a.drag?"y":"x"}`),void 0===a.tabIndex&&(a.onTap||a.onTapStart||a.whileTap)&&(c.tabIndex=0),c.style=d,c})(b,d,e,a),j=function(a,b,c){let d={};for(let e in a)("values"!==e||"object"!=typeof a.values)&&!bT(a[e])&&(d$(e)||!0===c&&dZ(e)||!b&&!dZ(e)||a.draggable&&e.startsWith("onDrag"))&&(d[e]=a[e]);return d}(b,"string"==typeof a,f),k=a!==h.Fragment?{...j,...i,ref:c}:{},{children:l}=b,m=(0,h.useMemo)(()=>bT(l)?l.get():l,[l]);return(0,h.createElement)(a,{...k,children:m})}(a,c,function(a,b,c){let d=(0,h.useRef)(c);(0,h.useInsertionEffect)(()=>{d.current=c});let e=(0,h.useRef)(null);return(0,h.useCallback)(c=>{c&&a.onMount?.(c),b&&(c?b.mount(c):b.unmount());let f=d.current;if("function"==typeof f)if(c){let a=f(c);"function"==typeof a&&(e.current=a)}else e.current?(e.current(),e.current=null):f(c);else f&&(f.current=c)},[b])}(m,l.visualElement,d),m,k,b,f)]})}j.displayName=`motion.${"string"==typeof a?a:`create(${a.displayName??a.name??""})`}`;let k=(0,h.forwardRef)(j);return k[d5]=a,k}class d7{constructor(a){this.isMounted=!1,this.node=a}update(){}}function d8(a,b,c){let d=a.getProps();return dc(d,b,void 0!==c?c:d.custom,a)}function d9(a,b){if(a?.inherit&&b){let{inherit:c,...d}=a;return{...b,...d}}return a}function ea(a,b){let c=a?.[b]??a?.default??a;return c!==a?d9(c,a):c}let eb=a=>Array.isArray(a);function ec(a,b){let c=a.getValue("willChange");if(bT(c)&&c.add)return c.add(b);if(!c&&cl.WillChange){let c=new cl.WillChange("auto");a.addValue("willChange",c),c.add(b)}}let ed="data-"+dh("framerAppearId"),ee=(...a)=>a.reduce((a,b)=>c=>b(a(c)));function ef(a,b,c){return(c<0&&(c+=1),c>1&&(c-=1),c<1/6)?a+(b-a)*6*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a}function eg(a,b){return c=>c>0?b:a}let eh=(a,b,c)=>{let d=a*a,e=c*(b*b-d)+d;return e<0?0:Math.sqrt(e)},ei=[bp,bo,bx];function ej(a){let b=ei.find(b=>b.test(a));if(bY(!!b,`'${a}' is not an animatable color. Use the equivalent color code instead.`,"color-not-animatable"),!b)return!1;let c=b.parse(a);return b===bx&&(c=function({hue:a,saturation:b,lightness:c,alpha:d}){a/=360,c/=100;let e=0,f=0,g=0;if(b/=100){let d=c<.5?c*(1+b):c+b-c*b,h=2*c-d;e=ef(h,d,a+1/3),f=ef(h,d,a),g=ef(h,d,a-1/3)}else e=f=g=c;return{red:Math.round(255*e),green:Math.round(255*f),blue:Math.round(255*g),alpha:d}}(c)),c}let ek=(a,b)=>{let c=ej(a),d=ej(b);if(!c||!d)return eg(a,b);let e={...c};return a=>(e.red=eh(c.red,d.red,a),e.green=eh(c.green,d.green,a),e.blue=eh(c.blue,d.blue,a),e.alpha=dx(c.alpha,d.alpha,a),bo.transform(e))},el=new Set(["none","hidden"]);function em(a,b){return c=>dx(a,b,c)}function en(a){return"number"==typeof a?em:"string"==typeof a?b2(a)?eg:by.test(a)?ek:eq:Array.isArray(a)?eo:"object"==typeof a?by.test(a)?ek:ep:eg}function eo(a,b){let c=[...a],d=c.length,e=a.map((a,c)=>en(a)(a,b[c]));return a=>{for(let b=0;b<d;b++)c[b]=e[b](a);return c}}function ep(a,b){let c={...a,...b},d={};for(let e in c)void 0!==a[e]&&void 0!==b[e]&&(d[e]=en(a[e])(a[e],b[e]));return a=>{for(let b in d)c[b]=d[b](a);return c}}let eq=(a,b)=>{let c=bF.createTransformer(b),d=bD(a),e=bD(b);return d.indexes.var.length===e.indexes.var.length&&d.indexes.color.length===e.indexes.color.length&&d.indexes.number.length>=e.indexes.number.length?el.has(a)&&!e.values.length||el.has(b)&&!d.values.length?function(a,b){return el.has(a)?c=>c<=0?a:b:c=>c>=1?b:a}(a,b):ee(eo(function(a,b){let c=[],d={color:0,var:0,number:0};for(let e=0;e<b.values.length;e++){let f=b.types[e],g=a.indexes[f][d[f]],h=a.values[g]??0;c[e]=h,d[f]++}return c}(d,e),e.values),c):(bY(!0,`Complex values '${a}' and '${b}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`,"complex-values-different"),eg(a,b))};function er(a,b,c){return"number"==typeof a&&"number"==typeof b&&"number"==typeof c?dx(a,b,c):en(a)(a,b)}let es=a=>{let b=({timestamp:b})=>a(b);return{start:(a=!0)=>co.update(b,a),stop:()=>cp(b),now:()=>cq.isProcessing?cq.timestamp:c$.now()}};function et(a){let b=0,c=a.next(b);for(;!c.done&&b<2e4;)b+=50,c=a.next(b);return b>=2e4?1/0:b}let eu={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function ev(a,b){return a*Math.sqrt(1-b*b)}let ew=["duration","bounce"],ex=["stiffness","damping","mass"];function ey(a,b){return b.some(b=>void 0!==a[b])}function ez(a=eu.visualDuration,b=eu.bounce){let c,d,e,f,g,h,i="object"!=typeof a?{visualDuration:a,keyframes:[0,1],bounce:b}:a,{restSpeed:j,restDelta:k}=i,l=i.keyframes[0],m=i.keyframes[i.keyframes.length-1],n={done:!1,value:l},{stiffness:o,damping:p,mass:q,duration:r,velocity:s,isResolvedFromDuration:t}=function(a){let b={velocity:eu.velocity,stiffness:eu.stiffness,damping:eu.damping,mass:eu.mass,isResolvedFromDuration:!1,...a};if(!ey(a,ex)&&ey(a,ew))if(b.velocity=0,a.visualDuration){let c=2*Math.PI/(1.2*a.visualDuration),d=c*c,e=2*be(.05,1,1-(a.bounce||0))*Math.sqrt(d);b={...b,mass:eu.mass,stiffness:d,damping:e}}else{let c=function({duration:a=eu.duration,bounce:b=eu.bounce,velocity:c=eu.velocity,mass:d=eu.mass}){let e,f;bY(a<=cE(eu.maxDuration),"Spring duration must be 10 seconds or less","spring-duration-limit");let g=1-b;g=be(eu.minDamping,eu.maxDamping,g),a=be(eu.minDuration,eu.maxDuration,a/1e3),g<1?(e=b=>{let d=b*g,e=d*a;return .001-(d-c)/ev(b,g)*Math.exp(-e)},f=b=>{let d=b*g*a,f=Math.pow(g,2)*Math.pow(b,2)*a,h=Math.exp(-d),i=ev(Math.pow(b,2),g);return(d*c+c-f)*h*(-e(b)+.001>0?-1:1)/i}):(e=b=>-.001+Math.exp(-b*a)*((b-c)*a+1),f=b=>a*a*(c-b)*Math.exp(-b*a));let h=function(a,b,c){let d=c;for(let c=1;c<12;c++)d-=a(d)/b(d);return d}(e,f,5/a);if(a=cE(a),isNaN(h))return{stiffness:eu.stiffness,damping:eu.damping,duration:a};{let b=Math.pow(h,2)*d;return{stiffness:b,damping:2*g*Math.sqrt(d*b),duration:a}}}({...a,velocity:0});(b={...b,...c,mass:eu.mass}).isResolvedFromDuration=!0}return b}({...i,velocity:-((i.velocity||0)/1e3)}),u=s||0,v=p/(2*Math.sqrt(o*q)),w=m-l,x=Math.sqrt(o/q)/1e3,y=5>Math.abs(w);if(j||(j=y?eu.restSpeed.granular:eu.restSpeed.default),k||(k=y?eu.restDelta.granular:eu.restDelta.default),v<1)e=ev(x,v),f=(u+v*x*w)/e,c=a=>m-Math.exp(-v*x*a)*(f*Math.sin(e*a)+w*Math.cos(e*a)),g=v*x*f+w*e,h=v*x*w-f*e,d=a=>Math.exp(-v*x*a)*(g*Math.sin(e*a)+h*Math.cos(e*a));else if(1===v){c=a=>m-Math.exp(-x*a)*(w+(u+x*w)*a);let a=u+x*w;d=b=>Math.exp(-x*b)*(x*a*b-u)}else{let a=x*Math.sqrt(v*v-1);c=b=>{let c=Math.exp(-v*x*b),d=Math.min(a*b,300);return m-c*((u+v*x*w)*Math.sinh(d)+a*w*Math.cosh(d))/a};let b=(u+v*x*w)/a,e=v*x*b-w*a,f=v*x*w-b*a;d=b=>{let c=Math.exp(-v*x*b),d=Math.min(a*b,300);return c*(e*Math.sinh(d)+f*Math.cosh(d))}}let z={calculatedDuration:t&&r||null,velocity:a=>cE(d(a)),next:a=>{if(!t&&v<1){let b=Math.exp(-v*x*a),c=Math.sin(e*a),d=Math.cos(e*a),i=m-b*(f*c+w*d);return n.done=Math.abs(cE(b*(g*c+h*d)))<=j&&Math.abs(m-i)<=k,n.value=n.done?m:i,n}let b=c(a);return t?n.done=a>=r:n.done=Math.abs(cE(d(a)))<=j&&Math.abs(m-b)<=k,n.value=n.done?m:b,n},toString:()=>{let a=Math.min(et(z),2e4),b=cS(b=>z.next(a*b).value,a,30);return a+"ms "+b},toTransition:()=>{}};return z}function eA(a,b,c){let d=Math.max(b-5,0);return c_(c-a(d),b-d)}function eB({keyframes:a,velocity:b=0,power:c=.8,timeConstant:d=325,bounceDamping:e=10,bounceStiffness:f=500,modifyTarget:g,min:h,max:i,restDelta:j=.5,restSpeed:k}){let l,m,n=a[0],o={done:!1,value:n},p=c*b,q=n+p,r=void 0===g?q:g(q);r!==q&&(p=r-n);let s=a=>-p*Math.exp(-a/d),t=a=>r+s(a),u=a=>{let b=s(a),c=t(a);o.done=Math.abs(b)<=j,o.value=o.done?r:c},v=a=>{let b;if(b=o.value,void 0!==h&&b<h||void 0!==i&&b>i){var c;l=a,m=ez({keyframes:[o.value,(c=o.value,void 0===h?i:void 0===i||Math.abs(h-c)<Math.abs(i-c)?h:i)],velocity:eA(t,a,o.value),damping:e,stiffness:f,restDelta:j,restSpeed:k})}};return v(0),{calculatedDuration:null,next:a=>{let b=!1;return(m||void 0!==l||(b=!0,u(a),v(a)),void 0!==l&&a>=l)?m.next(a-l):(b||u(a),o)}}}ez.applyToOptions=a=>{let b=function(a,b=100,c){let d=c({...a,keyframes:[0,b]}),e=Math.min(et(d),2e4);return{type:"keyframes",ease:a=>d.next(e*a).value/b,duration:e/1e3}}(a,100,ez);return a.ease=b.ease,a.duration=cE(b.duration),a.type="keyframes",a};let eC=(a,b,c)=>(((1-3*c+3*b)*a+(3*c-6*b))*a+3*b)*a;function eD(a,b,c,d){return a===b&&c===d?ck:e=>0===e||1===e?e:eC(function(a,b,c,d,e){let f,g,h=0;do(f=eC(g=b+(c-b)/2,d,e)-a)>0?c=g:b=g;while(Math.abs(f)>1e-7&&++h<12);return g}(e,0,1,a,c),b,d)}let eE=eD(.42,0,1,1),eF=eD(0,0,.58,1),eG=eD(.42,0,.58,1),eH=a=>b=>b<=.5?a(2*b)/2:(2-a(2*(1-b)))/2,eI=a=>b=>1-a(1-b),eJ=eD(.33,1.53,.69,.99),eK=eI(eJ),eL=eH(eK),eM=a=>a>=1?1:(a*=2)<1?.5*eK(a):.5*(2-Math.pow(2,-10*(a-1))),eN=a=>1-Math.sin(Math.acos(a)),eO=eI(eN),eP=eH(eN),eQ={linear:ck,easeIn:eE,easeInOut:eG,easeOut:eF,circIn:eN,circInOut:eP,circOut:eO,backIn:eK,backInOut:eL,backOut:eJ,anticipate:eM},eR=a=>{if(cQ(a)){bZ(4===a.length,"Cubic bezier arrays must contain four numerical values.","cubic-bezier-length");let[b,c,d,e]=a;return eD(b,c,d,e)}return"string"==typeof a?(bZ(void 0!==eQ[a],`Invalid easing type '${a}'`,"invalid-easing-type"),eQ[a]):a},eS=(a,b,c)=>{let d=b-a;return d?(c-a)/d:1};function eT({duration:a=300,keyframes:b,times:c,ease:d="easeInOut"}){var e;let f=Array.isArray(d)&&"number"!=typeof d[0]?d.map(eR):eR(d),g={done:!1,value:b[0]},h=function(a,b,{clamp:c=!0,ease:d,mixer:e}={}){let f=a.length;if(bZ(f===b.length,"Both input and output ranges must be the same length","range-length"),1===f)return()=>b[0];if(2===f&&b[0]===b[1])return()=>b[1];let g=a[0]===a[1];a[0]>a[f-1]&&(a=[...a].reverse(),b=[...b].reverse());let h=function(a,b,c){let d=[],e=c||cl.mix||er,f=a.length-1;for(let c=0;c<f;c++){let f=e(a[c],a[c+1]);b&&(f=ee(Array.isArray(b)?b[c]||ck:b,f)),d.push(f)}return d}(b,d,e),i=h.length,j=c=>{if(g&&c<a[0])return b[0];let d=0;if(i>1)for(;d<a.length-2&&!(c<a[d+1]);d++);let e=eS(a[d],a[d+1],c);return h[d](e)};return c?b=>j(be(a[0],a[f-1],b)):j}((e=c&&c.length===b.length?c:function(a){let b=[0];return!function(a,b){let c=a[a.length-1];for(let d=1;d<=b;d++){let e=eS(0,b,d);a.push(dx(c,1,e))}}(b,a.length-1),b}(b),e.map(b=>b*a)),b,{ease:Array.isArray(f)?f:b.map(()=>f||eG).splice(0,b.length-1)});return{calculatedDuration:a,next:b=>(g.value=h(b),g.done=b>=a,g)}}let eU={decay:eB,inertia:eB,tween:eT,keyframes:eT,spring:ez};function eV(a){"string"==typeof a.type&&(a.type=eU[a.type])}let eW=a=>a/100;class eX extends cP{constructor(a){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{let{motionValue:a}=this.options;a&&a.updatedAt!==c$.now()&&this.tick(c$.now()),this.isStopped=!0,"idle"!==this.state&&(this.teardown(),this.options.onStop?.())},this.options=a,this.initAnimation(),this.play(),!1===a.autoplay&&this.pause()}initAnimation(){let{options:a}=this;eV(a);let{type:b=eT,repeat:c=0,repeatDelay:d=0,repeatType:e,velocity:f=0}=a,{keyframes:g}=a,h=b||eT;h!==eT&&"number"!=typeof g[0]&&(this.mixKeyframes=ee(eW,er(g[0],g[1])),g=[0,100]);let i=h({...a,keyframes:g});"mirror"===e&&(this.mirroredGenerator=h({...a,keyframes:[...g].reverse(),velocity:-f})),null===i.calculatedDuration&&(i.calculatedDuration=et(i));let{calculatedDuration:j}=i;this.calculatedDuration=j,this.resolvedDuration=j+d,this.totalDuration=this.resolvedDuration*(c+1)-d,this.generator=i}updateTime(a){let b=Math.round(a-this.startTime)*this.playbackSpeed;null!==this.holdTime?this.currentTime=this.holdTime:this.currentTime=b}tick(a,b=!1){let c,{generator:d,totalDuration:e,mixKeyframes:f,mirroredGenerator:g,resolvedDuration:h,calculatedDuration:i}=this;if(null===this.startTime)return d.next(0);let{delay:j=0,keyframes:k,repeat:l,repeatType:m,repeatDelay:n,type:o,onUpdate:p,finalKeyframe:q}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,a):this.speed<0&&(this.startTime=Math.min(a-e/this.speed,this.startTime)),b?this.currentTime=a:this.updateTime(a);let r=this.currentTime-j*(this.playbackSpeed>=0?1:-1),s=this.playbackSpeed>=0?r<0:r>e;this.currentTime=Math.max(r,0),"finished"===this.state&&null===this.holdTime&&(this.currentTime=e);let t=this.currentTime,u=d;if(l){let a=Math.min(this.currentTime,e)/h,b=Math.floor(a),c=a%1;!c&&a>=1&&(c=1),1===c&&b--,(b=Math.min(b,l+1))%2&&("reverse"===m?(c=1-c,n&&(c-=n/h)):"mirror"===m&&(u=g)),t=be(0,1,c)*h}s?(this.delayState.value=k[0],c=this.delayState):c=u.next(t),f&&!s&&(c.value=f(c.value));let{done:v}=c;s||null===i||(v=this.playbackSpeed>=0?this.currentTime>=e:this.currentTime<=0);let w=null===this.holdTime&&("finished"===this.state||"running"===this.state&&v);return w&&o!==eB&&(c.value=cO(k,this.options,q,this.speed)),p&&p(c.value),w&&this.finish(),c}then(a,b){return this.finished.then(a,b)}get duration(){return this.calculatedDuration/1e3}get iterationDuration(){let{delay:a=0}=this.options||{};return this.duration+a/1e3}get time(){return this.currentTime/1e3}set time(a){a=cE(a),this.currentTime=a,null===this.startTime||null!==this.holdTime||0===this.playbackSpeed?this.holdTime=a:this.driver&&(this.startTime=this.driver.now()-a/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=a,this.tick(a))}getGeneratorVelocity(){let a=this.currentTime;if(a<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(a);let b=this.generator.next(a).value;return eA(a=>this.generator.next(a).value,a,b)}get speed(){return this.playbackSpeed}set speed(a){let b=this.playbackSpeed!==a;b&&this.driver&&this.updateTime(c$.now()),this.playbackSpeed=a,b&&this.driver&&(this.time=this.currentTime/1e3)}play(){if(this.isStopped)return;let{driver:a=es,startTime:b}=this.options;this.driver||(this.driver=a(a=>this.tick(a))),this.options.onPlay?.();let c=this.driver.now();"finished"===this.state?(this.updateFinished(),this.startTime=c):null!==this.holdTime?this.startTime=c-this.holdTime:this.startTime||(this.startTime=b??c),"finished"===this.state&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(c$.now()),this.holdTime=this.currentTime}complete(){"running"!==this.state&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(a){return this.startTime=0,this.tick(a,!0)}attachTimeline(a){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),a.observe(this)}}let eY={anticipate:eM,backInOut:eL,circInOut:eP};class eZ extends cW{constructor(a){!function(a){"string"==typeof a.ease&&a.ease in eY&&(a.ease=eY[a.ease])}(a),eV(a),super(a),void 0!==a.startTime&&!1!==a.autoplay&&(this.startTime=a.startTime),this.options=a}updateMotionValue(a){let{motionValue:b,onUpdate:c,onComplete:d,element:e,...f}=this.options;if(!b)return;if(void 0!==a)return void b.set(a);let g=new eX({...f,autoplay:!1}),h=Math.max(10,c$.now()-this.startTime),i=be(0,10,h-10),j=g.sample(h).value,{name:k}=this.options;e&&k&&cI(e,k,j),b.setWithVelocity(g.sample(Math.max(0,h-i)).value,j,i),g.stop()}}let e$=(a,b)=>"zIndex"!==b&&!!("number"==typeof a||Array.isArray(a)||"string"==typeof a&&(bF.test(a)||"0"===a)&&!a.startsWith("url("));function e_(a){a.duration=0,a.type="keyframes"}let e0=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/,e1=new Set(["color","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"]),e2=cJ(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));class e3 extends cP{constructor({autoplay:a=!0,delay:b=0,type:c="keyframes",repeat:d=0,repeatDelay:e=0,repeatType:f="loop",keyframes:g,name:h,motionValue:i,element:j,...k}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=c$.now();let l={autoplay:a,delay:b,type:c,repeat:d,repeatDelay:e,repeatType:f,name:h,motionValue:i,element:j,...k},m=j?.KeyframeResolver||cy;this.keyframeResolver=new m(g,(a,b,c)=>this.onKeyframesResolved(a,b,l,!c),h,i,j),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(a,b,c,d){let e;this.keyframeResolver=void 0;let{name:f,type:g,velocity:h,delay:i,isHandoff:j,onUpdate:k}=c;this.resolvedAt=c$.now();let l=!0;!function(a,b,c,d){let e=a[0];if(null===e)return!1;if("display"===b||"visibility"===b)return!0;let f=a[a.length-1],g=e$(e,b),h=e$(f,b);return bY(g===h,`You are trying to animate ${b} from "${e}" to "${f}". "${g?f:e}" is not an animatable value.`,"value-not-animatable"),!!g&&!!h&&(function(a){let b=a[0];if(1===a.length)return!0;for(let c=0;c<a.length;c++)if(a[c]!==b)return!0}(a)||("spring"===c||cV(c))&&d)}(a,f,g,h)&&(l=!1,(cl.instantAnimations||!i)&&k?.(cO(a,c,b)),a[0]=a[a.length-1],e_(c),c.repeat=0);let m={startTime:d?this.resolvedAt&&this.resolvedAt-this.createdAt>40?this.resolvedAt:this.createdAt:void 0,finalKeyframe:b,...c,keyframes:a},n=l&&!j&&function(a){let{motionValue:b,name:c,repeatDelay:d,repeatType:e,damping:f,type:g,keyframes:h}=a;if(!(b?.owner?.current instanceof HTMLElement))return!1;let{onUpdate:i,transformTemplate:j}=b.owner.getProps();return e2()&&c&&(cX.has(c)||e1.has(c)&&function(a){for(let b=0;b<a.length;b++)if("string"==typeof a[b]&&e0.test(a[b]))return!0;return!1}(h))&&("transform"!==c||!j)&&!i&&!d&&"mirror"!==e&&0!==f&&"inertia"!==g}(m),o=m.motionValue?.owner?.current;if(n)try{e=new eZ({...m,element:o})}catch{e=new eX(m)}else e=new eX(m);e.finished.then(()=>{this.notifyFinished()}).catch(ck),this.pendingTimeline&&(this.stopTimeline=e.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=e}get finished(){return this._animation?this.animation.finished:this._finished}then(a,b){return this.finished.finally(a).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),cv=!0,cx(),cw(),cv=!1),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(a){this.animation.time=a}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(a){this.animation.speed=a}get startTime(){return this.animation.startTime}attachTimeline(a){return this._animation?this.stopTimeline=this.animation.attachTimeline(a):this.pendingTimeline=a,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}let e4={type:"spring",stiffness:500,damping:25,restSpeed:10},e5={type:"keyframes",duration:.8},e6={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},e7=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]),e8=(a,b,c,d={},e,f)=>g=>{let h=ea(d,a)||{},i=h.delay||d.delay||0,{elapsed:j=0}=d;j-=cE(i);let k={keyframes:Array.isArray(c)?c:[null,c],ease:"easeOut",velocity:b.getVelocity(),...h,delay:-j,onUpdate:a=>{b.set(a),h.onUpdate&&h.onUpdate(a)},onComplete:()=>{g(),h.onComplete&&h.onComplete()},name:a,motionValue:b,element:f?void 0:e};!function(a){for(let b in a)if(!e7.has(b))return!0;return!1}(h)&&Object.assign(k,((a,{keyframes:b})=>b.length>2?e5:bd.has(a)?a.startsWith("scale")?{type:"spring",stiffness:550,damping:0===b[1]?2*Math.sqrt(550):30,restSpeed:10}:e4:e6)(a,k)),k.duration&&(k.duration=cE(k.duration)),k.repeatDelay&&(k.repeatDelay=cE(k.repeatDelay)),void 0!==k.from&&(k.keyframes[0]=k.from);let l=!1;if(!1!==k.type&&(0!==k.duration||k.repeatDelay)||(e_(k),0===k.delay&&(l=!0)),(cl.instantAnimations||cl.skipAnimations||e?.shouldSkipAnimations||h.skipAnimations)&&(l=!0,e_(k),k.delay=0),k.allowFlatten=!h.type&&!h.ease,l&&!f&&void 0!==b.get()){let a=cO(k.keyframes,h);if(void 0!==a)return void co.update(()=>{k.onUpdate(a),k.onComplete()})}return h.isSync?new eX(k):new e3(k)};function e9(a,b,{delay:c=0,transitionOverride:d,type:e}={}){let{transition:f,transitionEnd:g,...h}=b,i=a.getDefaultTransition();f=f?d9(f,i):i;let j=f?.reduceMotion,k=f?.skipAnimations;d&&(f=d);let l=[],m=e&&a.animationState&&a.animationState.getState()[e],n=f?.path;for(let b in n&&n.animateVisualElement(a,h,f,c,l),h){let d=a.getValue(b,a.latestValues[b]??null),e=h[b];if(void 0===e||m&&function({protectedKeys:a,needsAnimating:b},c){let d=a.hasOwnProperty(c)&&!0!==b[c];return b[c]=!1,d}(m,b))continue;let g={delay:c,...ea(f||{},b)};k&&(g.skipAnimations=!0);let i=d.get();if(void 0!==i&&!d.isAnimating()&&!Array.isArray(e)&&e===i&&!g.velocity){co.update(()=>d.set(e));continue}let n=!1;if(window.MotionHandoffAnimation){let c=a.props[ed];if(c){let a=window.MotionHandoffAnimation(c,b,co);null!==a&&(g.startTime=a,n=!0)}}ec(a,b);let o=j??a.shouldReduceMotion;d.start(e8(b,d,e,o&&bU.has(b)?{type:!1}:g,a,n));let p=d.animation;p&&l.push(p)}if(g){let b=()=>co.update(()=>{g&&function(a,b){let{transitionEnd:c={},transition:d={},...e}=d8(a,b)||{};for(let b in e={...e,...c}){var f;let c=eb(f=e[b])?f[f.length-1]||0:f;a.hasValue(b)?a.getValue(b).set(c):a.addValue(b,c2(c))}}(a,g)});l.length?Promise.all(l).then(b):b()}return l}function fa(a,b,c,d=0,e=1){let f=Array.from(a).sort((a,b)=>a.sortNodePosition(b)).indexOf(b),g=a.size,h=(g-1)*d;return"function"==typeof c?c(f,g):1===e?f*d:h-f*d}function fb(a,b,c={}){let d=d8(a,b,"exit"===c.type?a.presenceContext?.custom:void 0),{transition:e=a.getDefaultTransition()||{}}=d||{};c.transitionOverride&&(e=c.transitionOverride);let f=d?()=>Promise.all(e9(a,d,c)):()=>Promise.resolve(),g=a.variantChildren&&a.variantChildren.size?(d=0)=>{let{delayChildren:f=0,staggerChildren:g,staggerDirection:h}=e;return function(a,b,c=0,d=0,e=0,f=1,g){let h=[];for(let i of a.variantChildren)i.notify("AnimationStart",b),h.push(fb(i,b,{...g,delay:c+("function"==typeof d?0:d)+fa(a.variantChildren,i,d,e,f)}).then(()=>i.notify("AnimationComplete",b)));return Promise.all(h)}(a,b,d,f,g,h,c)}:()=>Promise.resolve(),{when:h}=e;if(!h)return Promise.all([f(),g(c.delay)]);{let[a,b]="beforeChildren"===h?[f,g]:[g,f];return a().then(()=>b())}}let fc=c8.length;function fd(a,b){if(!Array.isArray(b))return!1;let c=b.length;if(c!==a.length)return!1;for(let d=0;d<c;d++)if(b[d]!==a[d])return!1;return!0}let fe=[...c7].reverse(),ff=c7.length;function fg(a=!1){return{isActive:a,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function fh(){return{animate:fg(!0),whileInView:fg(),whileHover:fg(),whileTap:fg(),whileDrag:fg(),whileFocus:fg(),exit:fg()}}class fi extends d7{constructor(a){super(a),a.animationState||(a.animationState=function(a){let b=b=>Promise.all(b.map(({animation:b,options:c})=>(function(a,b,c={}){let d;if(a.notify("AnimationStart",b),Array.isArray(b))d=Promise.all(b.map(b=>fb(a,b,c)));else if("string"==typeof b)d=fb(a,b,c);else{let e="function"==typeof b?d8(a,b,c.custom):b;d=Promise.all(e9(a,e,c))}return d.then(()=>{a.notify("AnimationComplete",b)})})(a,b,c))),c=fh(),d=!0,e=!1,f=b=>(c,d)=>{let e=d8(a,d,"exit"===b?a.presenceContext?.custom:void 0);if(e){let{transition:a,transitionEnd:b,...d}=e;c={...c,...d,...b}}return c};function g(g){let{props:h}=a,i=function a(b){if(!b)return;if(!b.isControllingVariants){let c=b.parent&&a(b.parent)||{};return void 0!==b.props.initial&&(c.initial=b.props.initial),c}let c={};for(let a=0;a<fc;a++){let d=c8[a],e=b.props[d];(c6(e)||!1===e)&&(c[d]=e)}return c}(a.parent)||{},j=[],k=new Set,l={},m=1/0;for(let b=0;b<ff;b++){var n,o;let p=fe[b],q=c[p],r=void 0!==h[p]?h[p]:i[p],s=c6(r),t=p===g?q.isActive:null;!1===t&&(m=b);let u=r===i[p]&&r!==h[p]&&s;if(u&&(d||e)&&a.manuallyAnimateOnMount&&(u=!1),q.protectedKeys={...l},!q.isActive&&null===t||!r&&!q.prevProp||c5(r)||"boolean"==typeof r)continue;if("exit"===p&&q.isActive&&!0!==t){q.prevResolvedValues&&(l={...l,...q.prevResolvedValues});continue}let v=(n=q.prevProp,"string"==typeof(o=r)?o!==n:!!Array.isArray(o)&&!fd(o,n)),w=v||p===g&&q.isActive&&!u&&s||b>m&&s,x=!1,y=Array.isArray(r)?r:[r],z=y.reduce(f(p),{});!1===t&&(z={});let{prevResolvedValues:A={}}=q,B={...A,...z},C=b=>{w=!0,k.has(b)&&(x=!0,k.delete(b)),q.needsAnimating[b]=!0;let c=a.getValue(b);c&&(c.liveStyle=!1)};for(let a in B){let b=z[a],c=A[a];if(!l.hasOwnProperty(a))(eb(b)&&eb(c)?!fd(b,c)||v:b!==c)?null!=b?C(a):k.add(a):void 0!==b&&k.has(a)?C(a):q.protectedKeys[a]=!0}q.prevProp=r,q.prevResolvedValues=z,q.isActive&&(l={...l,...z}),(d||e)&&a.blockInitialAnimation&&(w=!1);let D=u&&v,E=!D||x;w&&E&&j.push(...y.map(b=>{let c={type:p};if("string"==typeof b&&(d||e)&&!D&&a.manuallyAnimateOnMount&&a.parent){let{parent:d}=a,e=d8(d,b);if(d.enteringChildren&&e){let{delayChildren:b}=e.transition||{};c.delay=fa(d.enteringChildren,a,b)}}return{animation:b,options:c}}))}if(k.size){let b={};if("boolean"!=typeof h.initial){let c=d8(a,Array.isArray(h.initial)?h.initial[0]:h.initial);c&&c.transition&&(b.transition=c.transition)}k.forEach(c=>{let d=a.getBaseTarget(c),e=a.getValue(c);e&&(e.liveStyle=!0),b[c]=d??null}),j.push({animation:b})}let p=!!j.length;return d&&(!1===h.initial||h.initial===h.animate)&&!a.manuallyAnimateOnMount&&(p=!1),d=!1,e=!1,p?b(j):Promise.resolve()}return{animateChanges:g,setActive:function(b,d){if(c[b].isActive===d)return Promise.resolve();a.variantChildren?.forEach(a=>a.animationState?.setActive(b,d)),c[b].isActive=d;let e=g(b);for(let a in c)c[a].protectedKeys={};return e},setAnimateFunction:function(c){b=c(a)},getState:()=>c,reset:()=>{c=fh(),e=!0}}}(a))}updateAnimationControlsSubscription(){let{animate:a}=this.node.getProps();c5(a)&&(this.unmountControls=a.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:a}=this.node.getProps(),{animate:b}=this.node.prevProps||{};a!==b&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let fj=0;class fk extends d7{constructor(){super(...arguments),this.id=fj++,this.isExitComplete=!1}update(){if(!this.node.presenceContext)return;let{isPresent:a,onExitComplete:b}=this.node.presenceContext,{isPresent:c}=this.node.prevPresenceContext||{};if(!this.node.animationState||a===c)return;if(a&&!1===c){if(this.isExitComplete){let{initial:a,custom:b}=this.node.getProps();if("string"==typeof a||"object"==typeof a&&null!==a&&!Array.isArray(a)){let c=d8(this.node,a,b);if(c){let{transition:a,transitionEnd:b,...d}=c;for(let a in d)this.node.getValue(a)?.jump(d[a])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}let d=this.node.animationState.setActive("exit",!a);b&&!a&&d.then(()=>{this.isExitComplete=!0,b(this.id)})}mount(){let{register:a,onExitComplete:b}=this.node.presenceContext||{};b&&b(this.id),a&&(this.unmount=a(this.id))}unmount(){}}let fl={x:!1,y:!1};function fm(a){return[a("x"),a("y")]}function fn(a){return a.max-a.min}function fo(a,b,c,d=.5){a.origin=d,a.originPoint=dx(b.min,b.max,a.origin),a.scale=fn(c)/fn(b),a.translate=dx(c.min,c.max,a.origin)-a.originPoint,(a.scale>=.9999&&a.scale<=1.0001||isNaN(a.scale))&&(a.scale=1),(a.translate>=-.01&&a.translate<=.01||isNaN(a.translate))&&(a.translate=0)}function fp(a,b,c,d){fo(a.x,b.x,c.x,d?d.originX:void 0),fo(a.y,b.y,c.y,d?d.originY:void 0)}function fq(a,b,c,d=0){a.min=(d?dx(c.min,c.max,d):c.min)+b.min,a.max=a.min+fn(b)}function fr(a,b,c,d=0){let e=d?dx(c.min,c.max,d):c.min;a.min=b.min-e,a.max=a.min+fn(b)}function fs(a,b,c,d){fr(a.x,b.x,c.x,d?.x),fr(a.y,b.y,c.y,d?.y)}let ft=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]),fu=new Set(["INPUT","SELECT","TEXTAREA"]);function fv(a,b,c,d={passive:!0}){return a.addEventListener(b,c,d),()=>a.removeEventListener(b,c,d)}function fw(a){return a0(a)&&"ownerSVGElement"in a}function fx(a,b,c){if(null==a)return[];if(a instanceof EventTarget)return[a];if("string"==typeof a){let d=document;b&&(d=b.current);let e=c?.[a]??d.querySelectorAll(a);return e?Array.from(e):[]}return Array.from(a).filter(a=>null!=a)}let fy=new WeakMap,fz=(a,b,c)=>(d,e)=>e&&e[0]?e[0][a+"Size"]:fw(d)&&"getBBox"in d?d.getBBox()[b]:d[c],fA=fz("inline","width","offsetWidth"),fB=fz("block","height","offsetHeight");function fC({target:a,borderBoxSize:b}){fy.get(a)?.forEach(c=>{c(a,{get width(){return fA(a,b)},get height(){return fB(a,b)}})})}function fD(a){a.forEach(fC)}let fE=new Set;function fF(a,b){return"function"==typeof a?(fE.add(a),f||(f=()=>{let a={get width(){return window.innerWidth},get height(){return window.innerHeight}};fE.forEach(b=>b(a))},window.addEventListener("resize",f)),()=>{fE.delete(a),fE.size||"function"!=typeof f||(window.removeEventListener("resize",f),f=void 0)}):function(a,b){e||"undefined"!=typeof ResizeObserver&&(e=new ResizeObserver(fD));let c=fx(a);return c.forEach(a=>{let c=fy.get(a);c||(c=new Set,fy.set(a,c)),c.add(b),e?.observe(a)}),()=>{c.forEach(a=>{let c=fy.get(a);c?.delete(b),c?.size||e?.unobserve(a)})}}(a,b)}let fG=a=>"mouse"===a.pointerType?"number"!=typeof a.button||a.button<=0:!1!==a.isPrimary;function fH(a){return{point:{x:a.pageX,y:a.pageY}}}function fI(a,b,c,d){return fv(a,b,a=>fG(a)&&c(a,fH(a)),d)}let fJ=({current:a})=>a?a.ownerDocument.defaultView:null;function fK(a){return a&&"object"==typeof a&&Object.prototype.hasOwnProperty.call(a,"current")}let fL=(a,b)=>Math.abs(a-b),fM=new Set(["auto","scroll"]);class fN{constructor(a,b,{transformPagePoint:c,contextWindow:d=window,dragSnapToOrigin:e=!1,distanceThreshold:f=3,element:g}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=a=>{this.handleScroll(a.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=fO(this.lastRawMoveEventInfo,this.transformPagePoint));let a=fQ(this.lastMoveEventInfo,this.history),b=null!==this.startEvent,c=function(a,b){return Math.sqrt(fL(a.x,b.x)**2+fL(a.y,b.y)**2)}(a.offset,{x:0,y:0})>=this.distanceThreshold;if(!b&&!c)return;let{point:d}=a,{timestamp:e}=cq;this.history.push({...d,timestamp:e});let{onStart:f,onMove:g}=this.handlers;b||(f&&f(this.lastMoveEvent,a),this.startEvent=this.lastMoveEvent),g&&g(this.lastMoveEvent,a)},this.handlePointerMove=(a,b)=>{this.lastMoveEvent=a,this.lastRawMoveEventInfo=b,this.lastMoveEventInfo=fO(b,this.transformPagePoint),co.update(this.updatePoint,!0)},this.handlePointerUp=(a,b)=>{this.end();let{onEnd:c,onSessionEnd:d,resumeAnimation:e}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&e&&e(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let f=fQ("pointercancel"===a.type?this.lastMoveEventInfo:fO(b,this.transformPagePoint),this.history);this.startEvent&&c&&c(a,f),d&&d(a,f)},!fG(a))return;this.dragSnapToOrigin=e,this.handlers=b,this.transformPagePoint=c,this.distanceThreshold=f,this.contextWindow=d||window;let h=fO(fH(a),this.transformPagePoint),{point:i}=h,{timestamp:j}=cq;this.history=[{...i,timestamp:j}];let{onSessionStart:k}=b;k&&k(a,fQ(h,this.history));let l={passive:!0,capture:!0};this.removeListeners=ee(fI(this.contextWindow,"pointermove",this.handlePointerMove,l),fI(this.contextWindow,"pointerup",this.handlePointerUp,l),fI(this.contextWindow,"pointercancel",this.handlePointerUp,l)),g&&this.startScrollTracking(g)}startScrollTracking(a){let b=a.parentElement;for(;b;){let a=getComputedStyle(b);(fM.has(a.overflowX)||fM.has(a.overflowY))&&this.scrollPositions.set(b,{x:b.scrollLeft,y:b.scrollTop}),b=b.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(a){let b=this.scrollPositions.get(a);if(!b)return;let c=a===window,d=c?{x:window.scrollX,y:window.scrollY}:{x:a.scrollLeft,y:a.scrollTop},e={x:d.x-b.x,y:d.y-b.y};(0!==e.x||0!==e.y)&&(c?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=e.x,this.lastMoveEventInfo.point.y+=e.y):this.history.length>0&&(this.history[0].x-=e.x,this.history[0].y-=e.y),this.scrollPositions.set(a,d),co.update(this.updatePoint,!0))}updateHandlers(a){this.handlers=a}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),cp(this.updatePoint)}}function fO(a,b){return b?{point:b(a.point)}:a}function fP(a,b){return{x:a.x-b.x,y:a.y-b.y}}function fQ({point:a},b){return{point:a,delta:fP(a,fR(b)),offset:fP(a,b[0]),velocity:function(a,b){if(a.length<2)return{x:0,y:0};let c=a.length-1,d=null,e=fR(a);for(;c>=0&&(d=a[c],!(e.timestamp-d.timestamp>cE(.1)));)c--;if(!d)return{x:0,y:0};d===a[0]&&a.length>2&&e.timestamp-d.timestamp>2*cE(b)&&(d=a[1]);let f=(e.timestamp-d.timestamp)/1e3;if(0===f)return{x:0,y:0};let g={x:(e.x-d.x)/f,y:(e.y-d.y)/f};return g.x===1/0&&(g.x=0),g.y===1/0&&(g.y=0),g}(b,.1)}}function fR(a){return a[a.length-1]}function fS(a,b,c){return{min:void 0!==b?a.min+b:void 0,max:void 0!==c?a.max+c-(a.max-a.min):void 0}}function fT(a,b){let c=b.min-a.min,d=b.max-a.max;return b.max-b.min<a.max-a.min&&([c,d]=[d,c]),{min:c,max:d}}function fU(a,b,c){return{min:fV(a,b),max:fV(a,c)}}function fV(a,b){return"number"==typeof a?a:a[b]||0}let fW=new WeakMap;class fX{constructor(a){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=bS(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=a}start(a,{snapToCursor:b=!1,distanceThreshold:c}={}){let{presenceContext:d}=this.visualElement;if(d&&!1===d.isPresent)return;let e=a=>{b&&this.snapToCursor(fH(a).point),this.stopAnimation()},f=(a,b)=>{let{drag:c,dragPropagation:d,onDragStart:e}=this.getProps();if(c&&!d&&(this.openDragLock&&this.openDragLock(),this.openDragLock=function(a){if("x"===a||"y"===a)if(fl[a])return null;else return fl[a]=!0,()=>{fl[a]=!1};return fl.x||fl.y?null:(fl.x=fl.y=!0,()=>{fl.x=fl.y=!1})}(c),!this.openDragLock))return;this.latestPointerEvent=a,this.latestPanInfo=b,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),fm(a=>{let b=this.getAxisMotionValue(a).get()||0;if(bs.test(b)){let{projection:c}=this.visualElement;if(c&&c.layout){let d=c.layout.layoutBox[a];d&&(b=fn(d)*(parseFloat(b)/100))}}this.originPoint[a]=b}),e&&co.update(()=>e(a,b),!1,!0),ec(this.visualElement,"transform");let{animationState:f}=this.visualElement;f&&f.setActive("whileDrag",!0)},g=(a,b)=>{this.latestPointerEvent=a,this.latestPanInfo=b;let{dragPropagation:c,dragDirectionLock:d,onDirectionLock:e,onDrag:f}=this.getProps();if(!c&&!this.openDragLock)return;let{offset:g}=b;if(d&&null===this.currentDirection){this.currentDirection=function(a,b=10){let c=null;return Math.abs(a.y)>b?c="y":Math.abs(a.x)>b&&(c="x"),c}(g),null!==this.currentDirection&&e&&e(this.currentDirection);return}this.updateAxis("x",b.point,g),this.updateAxis("y",b.point,g),this.visualElement.render(),f&&co.update(()=>f(a,b),!1,!0)},h=(a,b)=>{this.latestPointerEvent=a,this.latestPanInfo=b,this.stop(a,b),this.latestPointerEvent=null,this.latestPanInfo=null},i=()=>{let{dragSnapToOrigin:a}=this.getProps();(a||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:j}=this.getProps();this.panSession=new fN(a,{onSessionStart:e,onStart:f,onMove:g,onSessionEnd:h,resumeAnimation:i},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:j,distanceThreshold:c,contextWindow:fJ(this.visualElement),element:this.visualElement.current})}stop(a,b){let c=a||this.latestPointerEvent,d=b||this.latestPanInfo,e=this.isDragging;if(this.cancel(),!e||!d||!c)return;let{velocity:f}=d;this.startAnimation(f);let{onDragEnd:g}=this.getProps();g&&co.postRender(()=>g(c,d))}cancel(){this.isDragging=!1;let{projection:a,animationState:b}=this.visualElement;a&&(a.isAnimationBlocked=!1),this.endPanSession();let{dragPropagation:c}=this.getProps();!c&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),b&&b.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(a,b,c){let{drag:d}=this.getProps();if(!c||!fZ(a,d,this.currentDirection))return;let e=this.getAxisMotionValue(a),f=this.originPoint[a]+c[a];this.constraints&&this.constraints[a]&&(f=function(a,{min:b,max:c},d){return void 0!==b&&a<b?a=d?dx(b,a,d.min):Math.max(a,b):void 0!==c&&a>c&&(a=d?dx(c,a,d.max):Math.min(a,c)),a}(f,this.constraints[a],this.elastic[a])),e.set(f)}resolveConstraints(){let{dragConstraints:a,dragElastic:b}=this.getProps(),c=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,d=this.constraints;a&&fK(a)?this.constraints||(this.constraints=this.resolveRefConstraints()):a&&c?this.constraints=function(a,{top:b,left:c,bottom:d,right:e}){return{x:fS(a.x,c,e),y:fS(a.y,b,d)}}(c.layoutBox,a):this.constraints=!1,this.elastic=function(a=.35){return!1===a?a=0:!0===a&&(a=.35),{x:fU(a,"left","right"),y:fU(a,"top","bottom")}}(b),d!==this.constraints&&!fK(a)&&c&&this.constraints&&!this.hasMutatedConstraints&&fm(a=>{!1!==this.constraints&&this.getAxisMotionValue(a)&&(this.constraints[a]=function(a,b){let c={};return void 0!==b.min&&(c.min=b.min-a.min),void 0!==b.max&&(c.max=b.max-a.min),c}(c.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){var a;let{dragConstraints:b,onMeasureDragConstraints:c}=this.getProps();if(!b||!fK(b))return!1;let d=b.current;bZ(null!==d,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.","drag-constraints-ref");let{projection:e}=this.visualElement;if(!e||!e.layout)return!1;e.root&&(e.root.scroll=void 0,e.root.updateScroll());let f=function(a,b,c){let d=dP(a,c),{scroll:e}=b;return e&&(dL(d.x,e.offset.x),dL(d.y,e.offset.y)),d}(d,e.root,this.visualElement.getTransformPagePoint()),g=(a=e.layout.layoutBox,{x:fT(a.x,f.x),y:fT(a.y,f.y)});if(c){let a=c(function({x:a,y:b}){return{top:b.min,right:a.max,bottom:b.max,left:a.min}}(g));this.hasMutatedConstraints=!!a,a&&(g=dD(a))}return g}startAnimation(a){let{drag:b,dragMomentum:c,dragElastic:d,dragTransition:e,dragSnapToOrigin:f,onDragTransitionEnd:g}=this.getProps(),h=this.constraints||{};return Promise.all(fm(g=>{if(!fZ(g,b,this.currentDirection))return;let i=h&&h[g]||{};(!0===f||f===g)&&(i={min:0,max:0});let j={type:"inertia",velocity:c?a[g]:0,bounceStiffness:d?200:1e6,bounceDamping:d?40:1e7,timeConstant:750,restDelta:1,restSpeed:10,...e,...i};return this.startAxisValueAnimation(g,j)})).then(g)}startAxisValueAnimation(a,b){let c=this.getAxisMotionValue(a);return ec(this.visualElement,a),c.start(e8(a,c,0,b,this.visualElement,!1))}stopAnimation(){fm(a=>this.getAxisMotionValue(a).stop())}getAxisMotionValue(a){let b=`_drag${a.toUpperCase()}`;return this.visualElement.getProps()[b]||this.visualElement.getValue(a,this.visualElement.latestValues[a]??0)}snapToCursor(a){fm(b=>{let{drag:c}=this.getProps();if(!fZ(b,c,this.currentDirection))return;let{projection:d}=this.visualElement,e=this.getAxisMotionValue(b);if(d&&d.layout){let{min:c,max:f}=d.layout.layoutBox[b],g=e.get()||0;e.set(a[b]-dx(c,f,.5)+g)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:a,dragConstraints:b}=this.getProps(),{projection:c}=this.visualElement;if(!fK(b)||!c||!this.constraints)return;this.stopAnimation();let d={x:0,y:0};fm(a=>{let b=this.getAxisMotionValue(a);if(b&&!1!==this.constraints){let c=b.get();d[a]=function(a,b){let c=.5,d=fn(a),e=fn(b);return e>d?c=eS(b.min,b.max-d,a.min):d>e&&(c=eS(a.min,a.max-e,b.min)),be(0,1,c)}({min:c,max:c},this.constraints[a])}});let{transformTemplate:e}=this.visualElement.getProps();this.visualElement.current.style.transform=e?e({},""):"none",c.root&&c.root.updateScroll(),c.updateLayout(),this.constraints=!1,this.resolveConstraints(),fm(b=>{if(!fZ(b,a,null))return;let c=this.getAxisMotionValue(b),{min:e,max:f}=this.constraints[b];c.set(dx(e,f,d[b]))}),this.visualElement.render()}addListeners(){let a;if(!this.visualElement.current)return;fW.set(this.visualElement,this);let b=this.visualElement.current,c=fI(b,"pointerdown",a=>{let{drag:c,dragListener:d=!0}=this.getProps(),e=a.target,f=e!==b&&(fu.has(e.tagName)||!0===e.isContentEditable);c&&d&&!f&&this.start(a)}),d=()=>{let{dragConstraints:c}=this.getProps();fK(c)&&c.current&&(this.constraints=this.resolveRefConstraints(),a||(a=function(a,b,c){let d=fF(a,fY(c)),e=fF(b,fY(c));return()=>{d(),e()}}(b,c.current,()=>this.scalePositionWithinConstraints())))},{projection:e}=this.visualElement,f=e.addEventListener("measure",d);e&&!e.layout&&(e.root&&e.root.updateScroll(),e.updateLayout()),co.read(d);let g=fv(window,"resize",()=>this.scalePositionWithinConstraints()),h=e.addEventListener("didUpdate",({delta:a,hasLayoutChanged:b})=>{this.isDragging&&b&&(fm(b=>{let c=this.getAxisMotionValue(b);c&&(this.originPoint[b]+=a[b].translate,c.set(c.get()+a[b].translate))}),this.visualElement.render())});return()=>{g(),c(),f(),h&&h(),a&&a()}}getProps(){let a=this.visualElement.getProps(),{drag:b=!1,dragDirectionLock:c=!1,dragPropagation:d=!1,dragConstraints:e=!1,dragElastic:f=.35,dragMomentum:g=!0}=a;return{...a,drag:b,dragDirectionLock:c,dragPropagation:d,dragConstraints:e,dragElastic:f,dragMomentum:g}}}function fY(a){let b=!0;return()=>{if(b){b=!1;return}a()}}function fZ(a,b,c){return(!0===b||b===a)&&(null===c||c===a)}class f$ extends d7{constructor(a){super(a),this.removeGroupControls=ck,this.removeListeners=ck,this.controls=new fX(a)}mount(){let{dragControls:a}=this.node.getProps();a&&(this.removeGroupControls=a.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ck}update(){let{dragControls:a}=this.node.getProps(),{dragControls:b}=this.node.prevProps||{};a!==b&&(this.removeGroupControls(),a&&(this.removeGroupControls=a.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}let f_=a=>(b,c)=>{a&&co.update(()=>a(b,c),!1,!0)};class f0 extends d7{constructor(){super(...arguments),this.removePointerDownListener=ck}onPointerDown(a){this.session=new fN(a,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:fJ(this.node)})}createPanHandlers(){let{onPanSessionStart:a,onPanStart:b,onPan:c,onPanEnd:d}=this.node.getProps();return{onSessionStart:f_(a),onStart:f_(b),onMove:f_(c),onEnd:(a,b)=>{delete this.session,d&&co.postRender(()=>d(a,b))}}}mount(){this.removePointerDownListener=fI(this.node.current,"pointerdown",a=>this.onPointerDown(a))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let f1={hasAnimatedSinceResize:!0,hasEverUpdated:!1},f2=(0,h.createContext)({}),f3=!1;class f4 extends h.Component{componentDidMount(){let{visualElement:a,layoutGroup:b,switchLayoutGroup:c,layoutId:d}=this.props,{projection:e}=a;e&&(b.group&&b.group.add(e),c&&c.register&&d&&c.register(e),f3&&e.root.didUpdate(),e.addEventListener("animationComplete",()=>{this.safeToRemove()}),e.setOptions({...e.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),f1.hasEverUpdated=!0}getSnapshotBeforeUpdate(a){let{layoutDependency:b,visualElement:c,drag:d,isPresent:e}=this.props,{projection:f}=c;return f&&(f.isPresent=e,a.layoutDependency!==b&&f.setOptions({...f.options,layoutDependency:b}),f3=!0,d||a.layoutDependency!==b||void 0===b||a.isPresent!==e?f.willUpdate():this.safeToRemove(),a.isPresent!==e&&(e?f.promote():f.relegate()||co.postRender(()=>{let a=f.getStack();a&&a.members.length||this.safeToRemove()}))),null}componentDidUpdate(){let{visualElement:a,layoutAnchor:b}=this.props,{projection:c}=a;c&&(c.options.layoutAnchor=b,c.root.didUpdate(),cY.postRender(()=>{!c.currentAnimation&&c.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:a,layoutGroup:b,switchLayoutGroup:c}=this.props,{projection:d}=a;f3=!0,d&&(d.scheduleCheckAfterUnmount(),b&&b.group&&b.group.remove(d),c&&c.deregister&&c.deregister(d))}safeToRemove(){let{safeToRemove:a}=this.props;a&&a()}render(){return null}}function f5(a){let[b,c]=a8(),d=(0,h.useContext)(aY);return(0,g.jsx)(f4,{...a,layoutGroup:d,switchLayoutGroup:(0,h.useContext)(f2),isPresent:b,safeToRemove:c})}let f6={value:null,addProjectionMetrics:null},f7=du.length,f8=a=>"string"==typeof a?parseFloat(a):a,f9=a=>"number"==typeof a||bt.test(a);function ga(a,b){return void 0!==a[b]?a[b]:a.borderRadius}let gb=gd(0,.5,eO),gc=gd(.5,.95,ck);function gd(a,b,c){return d=>d<a?0:d>b?1:c(eS(a,b,d))}function ge(a,b){a.min=b.min,a.max=b.max}function gf(a,b){ge(a.x,b.x),ge(a.y,b.y)}function gg(a,b){a.translate=b.translate,a.scale=b.scale,a.originPoint=b.originPoint,a.origin=b.origin}function gh(a,b,c,d,e){return a-=b,a=d+1/c*(a-d),void 0!==e&&(a=d+1/e*(a-d)),a}function gi(a,b,[c,d,e],f,g){!function(a,b=0,c=1,d=.5,e,f=a,g=a){if(bs.test(b)&&(b=parseFloat(b),b=dx(g.min,g.max,b/100)-g.min),"number"!=typeof b)return;let h=dx(f.min,f.max,d);a===f&&(h-=b),a.min=gh(a.min,b,c,h,e),a.max=gh(a.max,b,c,h,e)}(a,b[c],b[d],b[e],b.scale,f,g)}let gj=["x","scaleX","originX"],gk=["y","scaleY","originY"];function gl(a,b,c,d){gi(a.x,b,gj,c?c.x:void 0,d?d.x:void 0),gi(a.y,b,gk,c?c.y:void 0,d?d.y:void 0)}function gm(a){return 0===a.translate&&1===a.scale}function gn(a){return gm(a.x)&&gm(a.y)}function go(a,b){return a.min===b.min&&a.max===b.max}function gp(a,b){return Math.round(a.min)===Math.round(b.min)&&Math.round(a.max)===Math.round(b.max)}function gq(a,b){return gp(a.x,b.x)&&gp(a.y,b.y)}function gr(a){return fn(a.x)/fn(a.y)}function gs(a,b){return a.translate===b.translate&&a.scale===b.scale&&a.originPoint===b.originPoint}class gt{constructor(){this.members=[]}add(a){cF(this.members,a);for(let b=this.members.length-1;b>=0;b--){let c=this.members[b];if(c===a||c===this.lead||c===this.prevLead)continue;let d=c.instance;d&&!1!==d.isConnected||c.snapshot||(cG(this.members,c),c.unmount())}a.scheduleRender()}remove(a){if(cG(this.members,a),a===this.prevLead&&(this.prevLead=void 0),a===this.lead){let a=this.members[this.members.length-1];a&&this.promote(a)}}relegate(a){for(let b=this.members.indexOf(a)-1;b>=0;b--){let a=this.members[b];if(!1!==a.isPresent&&a.instance?.isConnected!==!1)return this.promote(a),!0}return!1}promote(a,b){let c=this.lead;if(a!==c&&(this.prevLead=c,this.lead=a,a.show(),c)){c.updateSnapshot(),a.scheduleRender();let{layoutDependency:d}=c.options,{layoutDependency:e}=a.options;(void 0===d||d!==e)&&(a.resumeFrom=c,b&&(c.preserveOpacity=!0),c.snapshot&&(a.snapshot=c.snapshot,a.snapshot.latestValues=c.animationValues||c.latestValues),a.root?.isUpdating&&(a.isLayoutDirty=!0)),!1===a.options.crossfade&&c.hide()}}exitAnimationComplete(){this.members.forEach(a=>{a.options.onExitComplete?.(),a.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(a=>a.instance&&a.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}}let gu=(a,b)=>a.depth-b.depth;class gv{constructor(){this.children=[],this.isDirty=!1}add(a){cF(this.children,a),this.isDirty=!0}remove(a){cG(this.children,a),this.isDirty=!0}forEach(a){this.isDirty&&this.children.sort(gu),this.isDirty=!1,this.children.forEach(a)}}let gw={nodes:0,calculatedTargetDeltas:0,calculatedProjections:0},gx=["","X","Y","Z"],gy=0;function gz(a,b,c,d){let{latestValues:e}=b;e[a]&&(c[a]=e[a],b.setStaticValue(a,0),d&&(d[a]=0))}function gA({attachResizeListener:a,defaultParent:b,measureScroll:c,checkIsScrollRoot:d,resetTransform:e}){return class{constructor(a={},c=b?.()){this.id=gy++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,f6.value&&(gw.nodes=gw.calculatedTargetDeltas=gw.calculatedProjections=0),this.nodes.forEach(gD),this.nodes.forEach(gM),this.nodes.forEach(gN),this.nodes.forEach(gE),f6.addProjectionMetrics&&f6.addProjectionMetrics(gw)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=c?c.root||c:this,this.path=c?[...c.path,c]:[],this.parent=c,this.depth=c?c.depth+1:0;for(let a=0;a<this.path.length;a++)this.path[a].shouldResetTransform=!0;this.root===this&&(this.nodes=new gv)}addEventListener(a,b){return this.eventHandlers.has(a)||this.eventHandlers.set(a,new cH),this.eventHandlers.get(a).add(b)}notifyListeners(a,...b){let c=this.eventHandlers.get(a);c&&c.notify(...b)}hasListeners(a){return this.eventHandlers.has(a)}mount(b){if(this.instance)return;this.isSVG=fw(b)&&!(fw(b)&&"svg"===b.tagName),this.instance=b;let{layoutId:c,layout:d,visualElement:e}=this.options;if(e&&!e.current&&e.mount(b),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(d||c)&&(this.isLayoutDirty=!0),a){let c,d=0,e=()=>this.root.updateBlockedByResize=!1;co.read(()=>{d=window.innerWidth}),a(b,()=>{let a=window.innerWidth;a!==d&&(d=a,this.root.updateBlockedByResize=!0,c&&c(),c=function(a,b){let c=c$.now(),d=({timestamp:b})=>{let e=b-c;e>=250&&(cp(d),a(e-250))};return co.setup(d,!0),()=>cp(d)}(e,250),f1.hasAnimatedSinceResize&&(f1.hasAnimatedSinceResize=!1,this.nodes.forEach(gL)))})}c&&this.root.registerSharedNode(c,this),!1!==this.options.animate&&e&&(c||d)&&this.addEventListener("didUpdate",({delta:a,hasLayoutChanged:b,hasRelativeLayoutChanged:c,layout:d})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let f=this.options.transition||e.getDefaultTransition()||gT,{onLayoutAnimationStart:g,onLayoutAnimationComplete:h}=e.getProps(),i=!this.targetLayout||!gq(this.targetLayout,d),j=!b&&c;if(this.options.layoutRoot||this.resumeFrom||j||b&&(i||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let b={...ea(f,"layout"),onPlay:g,onComplete:h};(e.shouldReduceMotion||this.options.layoutRoot)&&(b.delay=0,b.type=!1),this.startAnimation(b),this.setAnimationOrigin(a,j,b.path)}else b||gL(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=d})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),cp(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){!this.isUpdateBlocked()&&(this.isUpdating=!0,this.nodes&&this.nodes.forEach(gO),this.animationId++)}getTransformTemplate(){let{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&function a(b){if(b.hasCheckedOptimisedAppear=!0,b.root===b)return;let{visualElement:c}=b.options;if(!c)return;let d=c.props[ed];if(window.MotionHasOptimisedAnimation(d,"transform")){let{layout:a,layoutId:c}=b.options;window.MotionCancelOptimisedAnimation(d,"transform",co,!(a||c))}let{parent:e}=b;e&&!e.hasCheckedOptimisedAppear&&a(e)}(this),this.root.isUpdating||this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let a=0;a<this.path.length;a++){let b=this.path[a];b.shouldResetTransform=!0,("string"==typeof b.latestValues.x||"string"==typeof b.latestValues.y)&&(b.isLayoutDirty=!0),b.updateScroll("snapshot"),b.options.layoutRoot&&b.willUpdate(!1)}let{layoutId:b,layout:c}=this.options;if(void 0===b&&!c)return;let d=this.getTransformTemplate();this.prevTransformTemplateValue=d?d(this.latestValues,""):void 0,this.updateSnapshot(),a&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){let a=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),a&&this.nodes.forEach(gH),this.nodes.forEach(gG);return}if(this.animationId<=this.animationCommitId)return void this.nodes.forEach(gI);this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(gJ),this.nodes.forEach(gK),this.nodes.forEach(gB),this.nodes.forEach(gC)):this.nodes.forEach(gI),this.clearAllSnapshots();let a=c$.now();cq.delta=be(0,1e3/60,a-cq.timestamp),cq.timestamp=a,cq.isProcessing=!0,cr.update.process(cq),cr.preRender.process(cq),cr.render.process(cq),cq.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,cY.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(gF),this.sharedNodes.forEach(gP)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,co.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){co.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){!this.snapshot&&this.instance&&(this.snapshot=this.measure(),!this.snapshot||fn(this.snapshot.measuredBox.x)||fn(this.snapshot.measuredBox.y)||(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let a=0;a<this.path.length;a++)this.path[a].updateScroll();let a=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected||(this.layoutCorrected=bS()),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);let{visualElement:b}=this.options;b&&b.notify("LayoutMeasure",this.layout.layoutBox,a?a.layoutBox:void 0)}updateScroll(a="measure"){let b=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===a&&(b=!1),b&&this.instance){let b=d(this.instance);this.scroll={animationId:this.root.animationId,phase:a,isRoot:b,offset:c(this.instance),wasRoot:this.scroll?this.scroll.isRoot:b}}}resetTransform(){if(!e)return;let a=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,b=this.projectionDelta&&!gn(this.projectionDelta),c=this.getTransformTemplate(),d=c?c(this.latestValues,""):void 0,f=d!==this.prevTransformTemplateValue;a&&this.instance&&(b||dG(this.latestValues)||f)&&(e(this.instance,d),this.shouldResetTransform=!1,this.scheduleRender())}measure(a=!0){var b;let c=this.measurePageBox(),d=this.removeElementScroll(c);return a&&(d=this.removeTransform(d)),gW((b=d).x),gW(b.y),{animationId:this.root.animationId,measuredBox:c,layoutBox:d,latestValues:{},source:this.id}}measurePageBox(){let{visualElement:a}=this.options;if(!a)return bS();let b=a.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(gY))){let{scroll:a}=this.root;a&&(dL(b.x,a.offset.x),dL(b.y,a.offset.y))}return b}removeElementScroll(a){let b=bS();if(gf(b,a),this.scroll?.wasRoot)return b;for(let c=0;c<this.path.length;c++){let d=this.path[c],{scroll:e,options:f}=d;d!==this.root&&e&&f.layoutScroll&&(e.wasRoot&&gf(b,a),dL(b.x,e.offset.x),dL(b.y,e.offset.y))}return b}applyTransform(a,b=!1,c){let d=c||bS();gf(d,a);for(let a=0;a<this.path.length;a++){let c=this.path[a];!b&&c.options.layoutScroll&&c.scroll&&c!==c.root&&(dL(d.x,-c.scroll.offset.x),dL(d.y,-c.scroll.offset.y)),dG(c.latestValues)&&dO(d,c.latestValues,c.layout?.layoutBox)}return dG(this.latestValues)&&dO(d,this.latestValues,this.layout?.layoutBox),d}removeTransform(a){let b=bS();gf(b,a);for(let a=0;a<this.path.length;a++){let c,d=this.path[a];dG(d.latestValues)&&(d.instance&&(dF(d.latestValues)&&d.updateSnapshot(),gf(c=bS(),d.measurePageBox())),gl(b,d.latestValues,d.snapshot?.layoutBox,c))}return dG(this.latestValues)&&gl(b,this.latestValues),b}setTargetDelta(a){this.targetDelta=a,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(a){this.options={...this.options,...a,crossfade:void 0===a.crossfade||a.crossfade}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==cq.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(a=!1){let b=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=b.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=b.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=b.isSharedProjectionDirty);let c=!!this.resumingFrom||this!==b;if(!(a||c&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;let{layout:d,layoutId:e}=this.options;if(!this.layout||!(d||e))return;this.resolvedRelativeTargetAt=cq.timestamp;let f=this.getClosestProjectingParent();if(f&&this.linkedParentVersion!==f.layoutVersion&&!f.options.layoutRoot&&this.removeRelativeTarget(),this.targetDelta||this.relativeTarget||(!1!==this.options.layoutAnchor&&f&&f.layout?this.createRelativeTarget(f,this.layout.layoutBox,f.layout.layoutBox):this.removeRelativeTarget()),this.relativeTarget||this.targetDelta){if(this.target||(this.target=bS(),this.targetWithTransforms=bS()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target){var g,h,i,j;this.forceRelativeParentToResolveTarget(),g=this.target,h=this.relativeTarget,i=this.relativeParent.target,j=this.options.layoutAnchor||void 0,fq(g.x,h.x,i.x,j?.x),fq(g.y,h.y,i.y,j?.y)}else this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):gf(this.target,this.layout.layoutBox),dK(this.target,this.targetDelta)):gf(this.target,this.layout.layoutBox);this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,!1!==this.options.layoutAnchor&&f&&!!f.resumingFrom==!!this.resumingFrom&&!f.options.layoutScroll&&f.target&&1!==this.animationProgress?this.createRelativeTarget(f,this.target,f.target):this.relativeParent=this.relativeTarget=void 0),f6.value&&gw.calculatedTargetDeltas++}}getClosestProjectingParent(){if(!(!this.parent||dF(this.parent.latestValues)||dH(this.parent.latestValues)))if(this.parent.isProjecting())return this.parent;else return this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(a,b,c){this.relativeParent=a,this.linkedParentVersion=a.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=bS(),this.relativeTargetOrigin=bS(),fs(this.relativeTargetOrigin,b,c,this.options.layoutAnchor||void 0),gf(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){let a=this.getLead(),b=!!this.resumingFrom||this!==a,c=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(c=!1),b&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(c=!1),this.resolvedRelativeTargetAt===cq.timestamp&&(c=!1),c)return;let{layout:d,layoutId:e}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(d||e))return;gf(this.layoutCorrected,this.layout.layoutBox);let f=this.treeScale.x,g=this.treeScale.y;!function(a,b,c,d=!1){let e,f,g=c.length;if(g){b.x=b.y=1;for(let h=0;h<g;h++){f=(e=c[h]).projectionDelta;let{visualElement:g}=e.options;(!g||!g.props.style||"contents"!==g.props.style.display)&&(d&&e.options.layoutScroll&&e.scroll&&e!==e.root&&(dL(a.x,-e.scroll.offset.x),dL(a.y,-e.scroll.offset.y)),f&&(b.x*=f.x.scale,b.y*=f.y.scale,dK(a,f)),d&&dG(e.latestValues)&&dO(a,e.latestValues,e.layout?.layoutBox))}b.x<1.0000000000001&&b.x>.999999999999&&(b.x=1),b.y<1.0000000000001&&b.y>.999999999999&&(b.y=1)}}(this.layoutCorrected,this.treeScale,this.path,b),a.layout&&!a.target&&(1!==this.treeScale.x||1!==this.treeScale.y)&&(a.target=a.layout.layoutBox,a.targetWithTransforms=bS());let{target:h}=a;if(!h){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}this.projectionDelta&&this.prevProjectionDelta?(gg(this.prevProjectionDelta.x,this.projectionDelta.x),gg(this.prevProjectionDelta.y,this.projectionDelta.y)):this.createProjectionDeltas(),fp(this.projectionDelta,this.layoutCorrected,h,this.latestValues),this.treeScale.x===f&&this.treeScale.y===g&&gs(this.projectionDelta.x,this.prevProjectionDelta.x)&&gs(this.projectionDelta.y,this.prevProjectionDelta.y)||(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",h)),f6.value&&gw.calculatedProjections++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(a=!0){if(this.options.visualElement?.scheduleRender(),a){let a=this.getStack();a&&a.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=bQ(),this.projectionDelta=bQ(),this.projectionDeltaWithTransform=bQ()}setAnimationOrigin(a,b=!1,c){let d,e=this.snapshot,f=e?e.latestValues:{},g={...this.latestValues},h=bQ();this.relativeParent&&this.relativeParent.options.layoutRoot||(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!b;let i=bS(),j=(e?e.source:void 0)!==(this.layout?this.layout.source:void 0),k=this.getStack(),l=!k||k.members.length<=1,m=!!(j&&!l&&!0===this.options.crossfade&&!this.path.some(gS));this.animationProgress=0;let n=c?.interpolateProjection(a);this.mixTargetDelta=b=>{let c=b/1e3,e=n?.(c);if(e?(h.x.translate=e.x,h.x.scale=dx(a.x.scale,1,c),h.x.origin=a.x.origin,h.x.originPoint=a.x.originPoint,h.y.translate=e.y,h.y.scale=dx(a.y.scale,1,c),h.y.origin=a.y.origin,h.y.originPoint=a.y.originPoint):(gQ(h.x,a.x,c),gQ(h.y,a.y,c)),this.setTargetDelta(h),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout){var k,o,p,q,r,s;fs(i,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),p=this.relativeTarget,q=this.relativeTargetOrigin,r=i,s=c,gR(p.x,q.x,r.x,s),gR(p.y,q.y,r.y,s),d&&(k=this.relativeTarget,o=d,go(k.x,o.x)&&go(k.y,o.y))&&(this.isProjectionDirty=!1),d||(d=bS()),gf(d,this.relativeTarget)}j&&(this.animationValues=g,function(a,b,c,d,e,f){e?(a.opacity=dx(0,c.opacity??1,gb(d)),a.opacityExit=dx(b.opacity??1,0,gc(d))):f&&(a.opacity=dx(b.opacity??1,c.opacity??1,d));for(let e=0;e<f7;e++){let f=du[e],g=ga(b,f),h=ga(c,f);(void 0!==g||void 0!==h)&&(g||(g=0),h||(h=0),0===g||0===h||f9(g)===f9(h)?(a[f]=Math.max(dx(f8(g),f8(h),d),0),(bs.test(h)||bs.test(g))&&(a[f]+="%")):a[f]=h)}(b.rotate||c.rotate)&&(a.rotate=dx(b.rotate||0,c.rotate||0,d))}(g,f,this.latestValues,c,m,l)),e&&void 0!==e.rotate&&(this.animationValues||(this.animationValues=g),this.animationValues.pathRotation=e.rotate),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=c},this.mixTargetDelta(1e3*!!this.options.layoutRoot)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(cp(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=co.update(()=>{f1.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=c2(0)),this.motionValue.jump(0,!1),this.currentAnimation=function(a,b,c){let d=bT(a)?a:c2(a);return d.start(e8("",d,b,c)),d.animation}(this.motionValue,[0,1e3],{...a,velocity:0,isSync:!0,onUpdate:b=>{this.mixTargetDelta(b),a.onUpdate&&a.onUpdate(b)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(1e3),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let a=this.getLead(),{targetWithTransforms:b,target:c,layout:d,latestValues:e}=a;if(b&&c&&d){if(this!==a&&this.layout&&d&&gX(this.options.animationType,this.layout.layoutBox,d.layoutBox)){c=this.target||bS();let b=fn(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+b;let d=fn(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+d}gf(b,c),dO(b,e),fp(this.projectionDeltaWithTransform,this.layoutCorrected,b,e)}}registerSharedNode(a,b){this.sharedNodes.has(a)||this.sharedNodes.set(a,new gt),this.sharedNodes.get(a).add(b);let c=b.options.initialPromotionConfig;b.promote({transition:c?c.transition:void 0,preserveFollowOpacity:c&&c.shouldPreserveFollowOpacity?c.shouldPreserveFollowOpacity(b):void 0})}isLead(){let a=this.getStack();return!a||a.lead===this}getLead(){let{layoutId:a}=this.options;return a&&this.getStack()?.lead||this}getPrevLead(){let{layoutId:a}=this.options;return a?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:b,preserveFollowOpacity:c}={}){let d=this.getStack();d&&d.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),b&&this.setOptions({transition:b})}relegate(){let a=this.getStack();return!!a&&a.relegate(this)}resetSkewAndRotation(){let{visualElement:a}=this.options;if(!a)return;let b=!1,{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(b=!0),!b)return;let d={};c.z&&gz("z",a,d,this.animationValues);for(let b=0;b<gx.length;b++)gz(`rotate${gx[b]}`,a,d,this.animationValues),gz(`skew${gx[b]}`,a,d,this.animationValues);for(let b in a.render(),d)a.setStaticValue(b,d[b]),this.animationValues&&(this.animationValues[b]=d[b]);a.scheduleRender()}applyProjectionStyles(a,b){if(!this.instance||this.isSVG)return;if(!this.isVisible){a.visibility="hidden";return}let c=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,a.visibility="",a.opacity="",a.pointerEvents=d_(b?.pointerEvents)||"",a.transform=c?c(this.latestValues,""):"none";return}let d=this.getLead();if(!this.projectionDelta||!this.layout||!d.target){this.options.layoutId&&(a.opacity=void 0!==this.latestValues.opacity?this.latestValues.opacity:1,a.pointerEvents=d_(b?.pointerEvents)||""),this.hasProjected&&!dG(this.latestValues)&&(a.transform=c?c({},""):"none",this.hasProjected=!1);return}a.visibility="";let e=d.animationValues||d.latestValues;this.applyTransformsToTarget();let f=function(a,b,c){let d="",e=a.x.translate/b.x,f=a.y.translate/b.y,g=c?.z||0;if((e||f||g)&&(d=`translate3d(${e}px, ${f}px, ${g}px) `),(1!==b.x||1!==b.y)&&(d+=`scale(${1/b.x}, ${1/b.y}) `),c){let{transformPerspective:a,rotate:b,pathRotation:e,rotateX:f,rotateY:g,skewX:h,skewY:i}=c;a&&(d=`perspective(${a}px) ${d}`),b&&(d+=`rotate(${b}deg) `),e&&(d+=`rotate(${e}deg) `),f&&(d+=`rotateX(${f}deg) `),g&&(d+=`rotateY(${g}deg) `),h&&(d+=`skewX(${h}deg) `),i&&(d+=`skewY(${i}deg) `)}let h=a.x.scale*b.x,i=a.y.scale*b.y;return(1!==h||1!==i)&&(d+=`scale(${h}, ${i})`),d||"none"}(this.projectionDeltaWithTransform,this.treeScale,e);c&&(f=c(e,f)),a.transform=f;let{x:g,y:h}=this.projectionDelta;for(let b in a.transformOrigin=`${100*g.origin}% ${100*h.origin}% 0`,d.animationValues?a.opacity=d===this?e.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:e.opacityExit:a.opacity=d===this?void 0!==e.opacity?e.opacity:"":void 0!==e.opacityExit?e.opacityExit:0,dy){if(void 0===e[b])continue;let{correct:c,applyTo:g,isCSSVariable:h}=dy[b],i="none"===f?e[b]:c(e[b],d);if(g){let b=g.length;for(let c=0;c<b;c++)a[g[c]]=i}else h?this.options.visualElement.renderState.vars[b]=i:a[b]=i}this.options.layoutId&&(a.pointerEvents=d===this?d_(b?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(a=>a.currentAnimation?.stop()),this.root.nodes.forEach(gG),this.root.sharedNodes.clear()}}}function gB(a){a.updateLayout()}function gC(a){let b=a.resumeFrom?.snapshot||a.snapshot;if(a.isLead()&&a.layout&&b&&a.hasListeners("didUpdate")){let{layoutBox:c,measuredBox:d}=a.layout,{animationType:e}=a.options,f=b.source!==a.layout.source;if("size"===e)fm(a=>{let d=f?b.measuredBox[a]:b.layoutBox[a],e=fn(d);d.min=c[a].min,d.max=d.min+e});else if("x"===e||"y"===e){let a="x"===e?"y":"x";ge(f?b.measuredBox[a]:b.layoutBox[a],c[a])}else gX(e,b.layoutBox,c)&&fm(d=>{let e=f?b.measuredBox[d]:b.layoutBox[d],g=fn(c[d]);e.max=e.min+g,a.relativeTarget&&!a.currentAnimation&&(a.isProjectionDirty=!0,a.relativeTarget[d].max=a.relativeTarget[d].min+g)});let g=bQ();fp(g,c,b.layoutBox);let h=bQ();f?fp(h,a.applyTransform(d,!0),b.measuredBox):fp(h,c,b.layoutBox);let i=!gn(g),j=!1;if(!a.resumeFrom){let d=a.getClosestProjectingParent();if(d&&!d.resumeFrom){let{snapshot:e,layout:f}=d;if(e&&f){let g=a.options.layoutAnchor||void 0,h=bS();fs(h,b.layoutBox,e.layoutBox,g);let i=bS();fs(i,c,f.layoutBox,g),gq(h,i)||(j=!0),d.options.layoutRoot&&(a.relativeTarget=i,a.relativeTargetOrigin=h,a.relativeParent=d)}}}a.notifyListeners("didUpdate",{layout:c,snapshot:b,delta:h,layoutDelta:g,hasLayoutChanged:i,hasRelativeLayoutChanged:j})}else if(a.isLead()){let{onExitComplete:b}=a.options;b&&b()}a.options.transition=void 0}function gD(a){f6.value&&gw.nodes++,a.parent&&(a.isProjecting()||(a.isProjectionDirty=a.parent.isProjectionDirty),a.isSharedProjectionDirty||(a.isSharedProjectionDirty=!!(a.isProjectionDirty||a.parent.isProjectionDirty||a.parent.isSharedProjectionDirty)),a.isTransformDirty||(a.isTransformDirty=a.parent.isTransformDirty))}function gE(a){a.isProjectionDirty=a.isSharedProjectionDirty=a.isTransformDirty=!1}function gF(a){a.clearSnapshot()}function gG(a){a.clearMeasurements()}function gH(a){a.isLayoutDirty=!0,a.updateLayout()}function gI(a){a.isLayoutDirty=!1}function gJ(a){a.isAnimationBlocked&&a.layout&&!a.isLayoutDirty&&(a.snapshot=a.layout,a.isLayoutDirty=!0)}function gK(a){let{visualElement:b}=a.options;b&&b.getProps().onBeforeLayoutMeasure&&b.notify("BeforeLayoutMeasure"),a.resetTransform()}function gL(a){a.finishAnimation(),a.targetDelta=a.relativeTarget=a.target=void 0,a.isProjectionDirty=!0}function gM(a){a.resolveTargetDelta()}function gN(a){a.calcProjection()}function gO(a){a.resetSkewAndRotation()}function gP(a){a.removeLeadSnapshot()}function gQ(a,b,c){a.translate=dx(b.translate,0,c),a.scale=dx(b.scale,1,c),a.origin=b.origin,a.originPoint=b.originPoint}function gR(a,b,c,d){a.min=dx(b.min,c.min,d),a.max=dx(b.max,c.max,d)}function gS(a){return a.animationValues&&void 0!==a.animationValues.opacityExit}let gT={duration:.45,ease:[.4,0,.1,1]},gU=a=>"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(a),gV=gU("applewebkit/")&&!gU("chrome/")?Math.round:ck;function gW(a){a.min=gV(a.min),a.max=gV(a.max)}function gX(a,b,c){return"position"===a||"preserve-aspect"===a&&!(.2>=Math.abs(gr(b)-gr(c)))}function gY(a){return a!==a.root&&a.scroll?.wasRoot}let gZ=gA({attachResizeListener:(a,b)=>fv(a,"resize",b),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),g$={current:void 0},g_=gA({measureScroll:a=>({x:a.scrollLeft,y:a.scrollTop}),defaultParent:()=>{if(!g$.current){let a=new gZ({});a.mount(window),a.setOptions({layoutScroll:!0}),g$.current=a}return g$.current},resetTransform:(a,b)=>{a.style.transform=void 0!==b?b:"none"},checkIsScrollRoot:a=>"fixed"===window.getComputedStyle(a).position});function g0(a,b){let c=fx(a),d=new AbortController;return[c,{passive:!0,...b,signal:d.signal},()=>d.abort()]}function g1(a,b,c){let{props:d}=a;a.animationState&&d.whileHover&&a.animationState.setActive("whileHover","Start"===c);let e=d["onHover"+c];e&&co.postRender(()=>e(b,fH(b)))}class g2 extends d7{mount(){let{current:a}=this.node;a&&(this.unmount=function(a,b,c={}){let[d,e,f]=g0(a,c);return d.forEach(a=>{let c,d=!1,f=!1,g=b=>{c&&(c(b),c=void 0),a.removeEventListener("pointerleave",i)},h=a=>{d=!1,window.removeEventListener("pointerup",h),window.removeEventListener("pointercancel",h),f&&(f=!1,g(a))},i=a=>{if("touch"!==a.pointerType){if(d){f=!0;return}g(a)}};a.addEventListener("pointerenter",d=>{if("touch"===d.pointerType||fl.x||fl.y)return;f=!1;let g=b(a,d);"function"==typeof g&&(c=g,a.addEventListener("pointerleave",i,e))},e),a.addEventListener("pointerdown",()=>{d=!0,window.addEventListener("pointerup",h,e),window.addEventListener("pointercancel",h,e)},e)}),f}(a,(a,b)=>(g1(this.node,b,"Start"),a=>g1(this.node,a,"End"))))}unmount(){}}class g3 extends d7{constructor(){super(...arguments),this.isActive=!1}onFocus(){let a=!1;try{a=this.node.current.matches(":focus-visible")}catch(b){a=!0}a&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){this.isActive&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=ee(fv(this.node.current,"focus",()=>this.onFocus()),fv(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}let g4=(a,b)=>!!b&&(a===b||g4(a,b.parentElement)),g5=new WeakSet;function g6(a){return b=>{"Enter"===b.key&&a(b)}}function g7(a,b){a.dispatchEvent(new PointerEvent("pointer"+b,{isPrimary:!0,bubbles:!0}))}function g8(a){return fG(a)&&!(fl.x||fl.y)}let g9=new WeakSet;function ha(a,b,c){let{props:d}=a;if(a.current instanceof HTMLButtonElement&&a.current.disabled)return;a.animationState&&d.whileTap&&a.animationState.setActive("whileTap","Start"===c);let e=d["onTap"+("End"===c?"":c)];e&&co.postRender(()=>e(b,fH(b)))}class hb extends d7{mount(){let{current:a}=this.node;if(!a)return;let{globalTapTarget:b,propagate:c}=this.node.props;this.unmount=function(a,b,c={}){let[d,e,f]=g0(a,c),g=a=>{let d=a.currentTarget;if(!g8(a)||g9.has(a))return;g5.add(d),c.stopPropagation&&g9.add(a);let f=b(d,a),g={...e,capture:!0},h=(a,b)=>{window.removeEventListener("pointerup",i,g),window.removeEventListener("pointercancel",j,g),g5.has(d)&&g5.delete(d),g8(a)&&"function"==typeof f&&f(a,{success:b})},i=a=>{h(a,d===window||d===document||c.useGlobalTarget||g4(d,a.target))},j=a=>{h(a,!1)};window.addEventListener("pointerup",i,g),window.addEventListener("pointercancel",j,g)};return d.forEach(a=>{((c.useGlobalTarget?window:a).addEventListener("pointerdown",g,e),a1(a))&&(a.addEventListener("focus",a=>((a,b)=>{let c=a.currentTarget;if(!c)return;let d=g6(()=>{if(g5.has(c))return;g7(c,"down");let a=g6(()=>{g7(c,"up")});c.addEventListener("keyup",a,b),c.addEventListener("blur",()=>g7(c,"cancel"),b)});c.addEventListener("keydown",d,b),c.addEventListener("blur",()=>c.removeEventListener("keydown",d),b)})(a,e)),ft.has(a.tagName)||!0===a.isContentEditable||a.hasAttribute("tabindex")||(a.tabIndex=0))}),f}(a,(a,b)=>(ha(this.node,b,"Start"),(a,{success:b})=>ha(this.node,a,b?"End":"Cancel")),{useGlobalTarget:b,stopPropagation:c?.tap===!1})}unmount(){}}let hc=new WeakMap,hd=new WeakMap,he=a=>{let b=hc.get(a.target);b&&b(a)},hf=a=>{a.forEach(he)},hg={some:0,all:1};class hh extends d7{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.stopObserver?.();let{viewport:a={}}=this.node.getProps(),{root:b,margin:c,amount:d="some",once:e}=a,f={root:b?b.current:void 0,rootMargin:c,threshold:"number"==typeof d?d:hg[d]},g=a=>{let{isIntersecting:b}=a;if(this.isInView===b||(this.isInView=b,e&&!b&&this.hasEnteredView))return;b&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",b);let{onViewportEnter:c,onViewportLeave:d}=this.node.getProps(),f=b?c:d;f&&f(a)};this.stopObserver=function(a,b,c){let d=function({root:a,...b}){let c=a||document;hd.has(c)||hd.set(c,{});let d=hd.get(c),e=JSON.stringify(b);return d[e]||(d[e]=new IntersectionObserver(hf,{root:a,...b})),d[e]}(b);return hc.set(a,c),d.observe(a),()=>{hc.delete(a),d.unobserve(a)}}(this.node.current,f,g)}mount(){this.startObserver()}update(){if("undefined"==typeof IntersectionObserver)return;let{props:a,prevProps:b}=this.node;["amount","margin","root"].some(function({viewport:a={}},{viewport:b={}}={}){return c=>a[c]!==b[c]}(a,b))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}}let hi=function(a,b){if("undefined"==typeof Proxy)return d6;let c=new Map,d=(c,d)=>d6(c,d,a,b);return new Proxy((a,b)=>d(a,b),{get:(e,f)=>"create"===f?d:(c.has(f)||c.set(f,d6(f,void 0,a,b)),c.get(f))})}({animation:{Feature:fi},exit:{Feature:fk},inView:{Feature:hh},tap:{Feature:hb},focus:{Feature:g3},hover:{Feature:g2},pan:{Feature:f0},drag:{Feature:f$,ProjectionNode:g_,MeasureLayout:f5},layout:{ProjectionNode:g_,MeasureLayout:f5}},(a,b)=>b.isSVG??dS(a)?new dC(b):new dQ(b,{allowProjection:a!==h.Fragment}));function hj({stepKey:a,children:b,className:c}){let d=ac();return(0,g.jsx)(bb,{mode:"wait",initial:!1,children:(0,g.jsx)(hi.div,{className:(0,M.cn)(c),variants:d?{initial:{opacity:0},animate:{opacity:1,transition:{duration:.15,ease:[.2,0,0,1]}},exit:{opacity:0,transition:{duration:.12,ease:[.3,0,1,1]}}}:{initial:{opacity:0,y:12},animate:{opacity:1,y:0,transition:{duration:.28,ease:[.2,0,0,1]}},exit:{opacity:0,y:-8,transition:{duration:.22,ease:[.3,0,1,1]}}},initial:"initial",animate:"animate",exit:"exit",children:b},a)})}let hk={LINEAR_API_KEY:"linear",CURSOR_API_KEY:"cursor",GITHUB_TOKEN:"github",VERCEL_TOKEN:"vercel"},hl={LINEAR_API_KEY:"linearApiKey",CURSOR_API_KEY:"cursorApiKey",GITHUB_TOKEN:"githubToken",VERCEL_TOKEN:"vercelToken"};function hm({mode:a="advanced",guidedStep:b,onGuidedStepChange:c,initialEnv:d,initialConfig:e,highlightStaleDispatch:f=!1,highlightStaleTarget:i=!1,onSummaryUpdated:j,onUiStateChange:k,onGuidedLocalApplySuccess:l,onConnectServicesComplete:m,localSetupFilesExist:n=!1}){let o=ac(),p=(0,h.useRef)(null),q=(0,h.useRef)(1),[r,s]=(0,h.useState)("connect-services"),t=b??r,[u,v]=(0,h.useState)({harnessConfigPath:d.harnessConfigPath,githubDispatchRepository:d.githubDispatchRepository||d.suggestedHarnessDispatchRepo||"",linearApiKey:"",cursorApiKey:"",githubToken:"",vercelToken:""}),[w,x]=(0,h.useState)(e),[y,z]=(0,h.useState)(()=>(function(a,b=1){return(a.repos.length>0?a.repos:[{id:"",targetRepo:""}]).map((a,c)=>({...a,rowId:aB(b+c)}))})(e,q.current)),[A,B]=(0,h.useState)(d.secretPresence),[C,E]=(0,h.useState)(aJ),[G,H]=(0,h.useState)(null),[I,J]=(0,h.useState)({}),[L,M]=(0,h.useState)(null),[N,O]=(0,h.useState)({state:"unchecked"}),[P,Q]=(0,h.useState)(null),[R,S]=(0,h.useState)(null),[T,U]=(0,h.useState)(!1),[V,W]=(0,h.useState)(null),[X,Z]=(0,h.useState)(null),[$,_]=(0,h.useState)(!1),[aa,ab]=(0,h.useState)(!1),[ae,af]=(0,h.useState)(null),[ag,ah]=(0,h.useState)(null),[ai,aj]=(0,h.useState)(!1),[ak,al]=(0,h.useState)(null),[am,an]=(0,h.useState)(null),[ao,ap]=(0,h.useState)(null),[aq,ar]=(0,h.useState)(null),[as,at]=(0,h.useState)(null),au=(0,h.useMemo)(()=>({...w,repos:y.map(({rowId:a,...b})=>b)}),[w,y]),av=(0,h.useMemo)(()=>"guided"===a?function(a){if(!a.repos.length)return a;let b=function(a){let b=new Set,c=[];for(let d of a){let a=d.id.trim()||function(a){let b=a.trim().match(/^https:\/\/github\.com\/[A-Za-z0-9_.-]+\/([A-Za-z0-9_.-]+)\/?$/);return b?.[1]??""}(d.targetRepo)||"target-repo",e=a,f=2;for(;b.has(e);)e=`${a}-${f}`,f+=1;b.add(e),c.push(e)}return c}(a.repos);return{...a,repos:a.repos.map((a,c)=>({...a,id:b[c]??a.id}))}}(au):w,[w,au,a]),aw=(0,h.useMemo)(()=>({env:u,config:av}),[u,av]),aC=null!==ae&&null!==ag&&JSON.stringify(ag)===JSON.stringify(aw),aD=(0,h.useCallback)(a=>{if(c)return void c(a);s(a)},[c]);(0,h.useCallback)(a=>{aD(a),requestAnimationFrame(()=>{p.current?.scrollIntoView({block:"start",behavior:o?"auto":"smooth"})})},[o,aD]);let aE=a=>{if(!A[a]||"connected"!==C[a].state)return!1;let b=u[hl[a]].trim();return!b||ay(C[a],b)},aF=aE("LINEAR_API_KEY")&&aE("CURSOR_API_KEY")&&aE("GITHUB_TOKEN")&&aE("VERCEL_TOKEN"),aG=A.LINEAR_API_KEY&&A.CURSOR_API_KEY&&A.GITHUB_TOKEN&&A.VERCEL_TOKEN,aH="guided"===a&&"choose-target-repos"===t,aI=(0,h.useMemo)(()=>az({typedToken:u.githubToken,hasSavedToken:A.GITHUB_TOKEN}),[u.githubToken,A.GITHUB_TOKEN]);av.repos.length>0&&av.repos;let aK=y.every(a=>aP.test(a.targetRepo.trim())),aM=y.every(a=>aA(I[a.rowId],a.targetRepo.trim(),aI?.fingerprint??null)),aN=u.githubDispatchRepository.trim()||d.savedHarnessDispatchRepository?.trim()||"",aO=aN.length>0&&(R===aN||"connected"===N.state&&N.verifiedRepo===aN&&(!aI?.fingerprint||N.verifiedGithubTokenFingerprint===aI.fingerprint)),aR=(0,h.useCallback)(async()=>{U(!0),Z(null),W("Setting up your private p-dev workspace...");try{let a=await fetch("/api/setup/preview-harness-repo-provisioning",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})}),b=await a.json();if(!a.ok)throw Error(b.error??"Provisioning preview failed");if("skipped-not-packaged"===b.state)return void m?.();let c=await fetch("/api/setup/apply-harness-repo-provisioning",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({confirmed:!0,fingerprint:b.fingerprint,operationId:b.operationId})}),d=await c.json();if(!c.ok)throw Error(d.error??"Provisioning apply failed");if("verified-and-persisted"!==d.apply.state){if(d.apply.recoverable)return void Z(d.apply.message);throw Error(d.apply.message??"Harness workspace provisioning did not complete.")}let e=d.apply.harnessDispatchRepo;e&&(Q(e),v(a=>({...a,githubDispatchRepository:e})),O({state:"connected",verifiedRepo:e,message:d.apply.message})),j?.(d.summary),W(d.apply.message),m?.()}catch(a){Z(a instanceof Error?a.message:"Harness workspace provisioning failed")}finally{U(!1)}},[m,j]),aT=()=>{at(null),ar(null),ap(null)},aV=(0,h.useCallback)(()=>{aT(),af(null),ah(null),an(null),aj(!1)},[]),aY=a=>{E(b=>({...b,[a]:{state:"unchecked"}}))},aZ=(0,h.useCallback)(()=>{J({})},[]),a$=(0,h.useCallback)(a=>{J(b=>{let c={...b};for(let d of a){let a=b[d.rowId];if(!a)continue;let e=d.targetRepo.trim();a.verifiedTargetRepo&&a.verifiedTargetRepo!==e?c[d.rowId]={state:"unchecked"}:a.attemptedTargetRepo&&a.attemptedTargetRepo!==e&&(c[d.rowId]={state:"unchecked"})}return c})},[]),a_=(0,h.useCallback)(async a=>{let b=await fetch("/api/setup/preview-connect-services",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u)}),c=await b.json();if(!b.ok)throw Error(c.error??"Preview failed");let d=await fetch("/api/setup/apply-connect-services",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({env:u,confirmed:!0,fingerprint:c.fingerprint})}),e=await d.json();if(!d.ok)throw Error(e.error??"Save failed");j?.(e.summary),B({LINEAR_API_KEY:e.summary.envKeyPresence.LINEAR_API_KEY,CURSOR_API_KEY:e.summary.envKeyPresence.CURSOR_API_KEY,GITHUB_TOKEN:e.summary.envKeyPresence.GITHUB_TOKEN,VERCEL_TOKEN:e.summary.envKeyPresence.VERCEL_TOKEN}),v(b=>({...b,[hl[a]]:""}))},[u,j]),a0=(0,h.useCallback)(async a=>{let b=u[hl[a]].trim(),c=b?ax(b):void 0;H(a),E(b=>({...b,[a]:{state:"checking"}}));try{let d=await fetch("/api/setup/verify-service",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({service:hk[a],...b?{token:b}:{}})}),e=await d.json();if(!d.ok)throw Error(e.error??"Verification failed");if("connected"!==e.status)return void E(b=>({...b,[a]:{state:"failed",attemptedValueFingerprint:c,message:e.message,limitation:e.limitation,label:e.label}}));b&&await a_(a),E(b=>({...b,[a]:{state:"connected",verifiedValueFingerprint:c,message:e.message,limitation:e.limitation,label:e.label}}))}catch(b){E(d=>({...d,[a]:{state:"failed",attemptedValueFingerprint:c,message:b instanceof Error?b.message:"Verification failed"}}))}finally{H(null)}},[u,a_]),a1=(0,h.useCallback)(async a=>{let b=a.trim(),c=az({typedToken:u.githubToken,hasSavedToken:A.GITHUB_TOKEN}),d=c?.fingerprint??null;_(!0),O({state:"checking"});try{let a=await fetch("/api/setup/verify-harness-repo",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({harnessDispatchRepo:b,...c?.tokenForRequest?{githubToken:c.tokenForRequest}:{}})}),e=await a.json();if(!a.ok)throw Error(e.error??"Harness repo verification failed");"connected"===e.status&&e.repoSlug?(aV(),v(a=>({...a,githubDispatchRepository:e.repoSlug})),O({state:"connected",verifiedRepo:e.repoSlug,verifiedGithubTokenFingerprint:d??void 0,message:e.message,limitation:e.limitation})):O({state:"failed",message:e.message,limitation:e.limitation})}catch(a){O({state:"failed",message:a instanceof Error?a.message:"Harness repo verification failed"})}finally{_(!1)}},[u.githubToken,aV,A.GITHUB_TOKEN]),a2=(0,h.useCallback)(async a=>{let b=y.find(b=>b.rowId===a);if(!b)return;let c=b.targetRepo.trim(),d=az({typedToken:u.githubToken,hasSavedToken:A.GITHUB_TOKEN}),e=d?.fingerprint??null;M(a),J(b=>({...b,[a]:{state:"checking"}}));try{let b=await fetch("/api/setup/verify-target-repo",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetRepo:c,...d?.tokenForRequest?{githubToken:d.tokenForRequest}:{}})}),f=await b.json();if(!b.ok)throw Error(f.error??"Repo verification failed");J(b=>({...b,[a]:"connected"===f.status&&!1!==f.workflowInstallReady?{state:"connected",verifiedTargetRepo:c,verifiedGithubTokenFingerprint:e??void 0,message:f.message,repoSlug:f.repoSlug,limitation:f.limitation,workflowInstallReady:f.workflowInstallReady}:{state:"failed",attemptedTargetRepo:c,attemptedGithubTokenFingerprint:e??void 0,message:f.message,repoSlug:f.repoSlug,limitation:f.limitation,workflowInstallReady:f.workflowInstallReady}}))}catch(b){J(d=>({...d,[a]:{state:"failed",attemptedTargetRepo:c,attemptedGithubTokenFingerprint:e??void 0,message:b instanceof Error?b.message:"Repo verification failed"}}))}finally{M(null)}},[u.githubToken,y,A.GITHUB_TOKEN]),a3=(0,h.useCallback)(a=>{let b=u[hl[a]].trim();b&&(ay(C[a],b)||a0(a))},[u,C,a0]),a4=(0,h.useCallback)(a=>{let b=y.find(b=>b.rowId===a);b&&aP.test(b.targetRepo.trim())&&(aA(I[a],b.targetRepo.trim(),aI?.fingerprint??null)||a2(a))},[aI?.fingerprint,y,I,a2]),a5=(0,h.useCallback)(async()=>{let a=await fetch("/api/setup/preview-local-files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(aw)}),b=await a.json();if(!a.ok)throw Error(b.error??"Preview failed");return af(b),ah(aw),b},[aw]),a6=(0,h.useCallback)(async()=>{al("preview"),an(null),aj(!1);try{await a5(),ab(!0)}catch(a){af(null),ah(null),an(a instanceof Error?a.message:"Preview failed"),ab(!0)}finally{al(null)}},[a5]),a7=(0,h.useCallback)(a=>{ab(a),a&&!aC&&"preview"!==ak&&a6()},[a6,ak,aC]),a8=async()=>{if(aH){if(!ai)return}else if(!ae||!aC||!ai)return;al("apply"),aT();try{let b=aH?aC&&ae?ae:await a5():ae;if(!b)throw Error("Preview failed");if(b.validationError)throw Error(b.validationError);let c=await fetch("/api/setup/apply-local-files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...aw,confirmed:!0,fingerprint:b.fingerprint})}),d=await c.json();if(!c.ok)throw Error(d.error??"Apply failed");j?.(d.summary),B({LINEAR_API_KEY:d.summary.envKeyPresence.LINEAR_API_KEY,CURSOR_API_KEY:d.summary.envKeyPresence.CURSOR_API_KEY,GITHUB_TOKEN:d.summary.envKeyPresence.GITHUB_TOKEN,VERCEL_TOKEN:d.summary.envKeyPresence.VERCEL_TOKEN}),v(a=>({...a,linearApiKey:"",cursorApiKey:"",githubToken:"",vercelToken:""})),af(null),ah(null),aj(!1),ab(!1),"guided"===a?l?.():(at(!0),ar(d.summary))}catch(a){at(!1),ap(a instanceof Error?a.message:"Apply failed")}finally{al(null)}},a9=async()=>{await a8()},ba=null!==ak?"Wait for the current action to finish.":void 0,bb=aC?ae?.validationError?"Fix validation errors before confirming this write.":void 0:"Generate a preview before you can confirm this write.",bc=ae?.validationError?"Fix validation errors before confirming this write.":void 0,bd=bb??(ai?void 0:"Confirm that you understand local setup files will be created on this machine."),be=null===ak&&aG&&aK&&aM&&aO&&ai,bf=null!==ak?"Wait for the current action to finish.":aG?aK?aM?aO?ai?ae?.validationError?"Fix validation errors before creating setup files.":void 0:`Confirm that you understand local setup files will be ${n?"updated":"created"} on this machine.`:aN?"Verify and use your harness repo before creating local setup files.":"Complete Step 1 harness workspace setup before creating local setup files.":`Verify access for each target repo before ${n?"updating":"creating"} setup files.`:"Enter a valid GitHub target repo URL for each repo row to continue.":"Complete Step 1 service setup before creating local files.",bg=n?"Update local setup files":"Create local setup files",bh=n?"Updating…":"Creating…";return"guided"===a?(0,g.jsxs)("div",{className:D.section,children:[(0,g.jsx)("div",{ref:p}),(0,g.jsx)(hj,{stepKey:t,children:(()=>{switch(t){case"connect-services":return(0,g.jsxs)(Y,{title:`Step 1 of 7 \xb7 Connect services`,description:"Add the API keys the harness needs on this machine.",children:[(0,g.jsx)(aL,{values:u,presence:A,variant:"guided-services",verification:C,verifyingKey:G,onChange:a=>{aV(),v(a),a.linearApiKey!==u.linearApiKey&&aY("LINEAR_API_KEY"),a.cursorApiKey!==u.cursorApiKey&&aY("CURSOR_API_KEY"),a.githubToken!==u.githubToken&&(aY("GITHUB_TOKEN"),aZ()),a.vercelToken!==u.vercelToken&&aY("VERCEL_TOKEN")},onVerifyService:a0,onServiceBlur:a3}),(0,g.jsx)("div",{className:F.actions,children:(0,g.jsx)(K.$,{type:"button",onClick:()=>{aR()},disabled:!aF||T,children:T?"Setting up your private p-dev workspace...":"Continue and set up private p-dev workspace"})}),aF?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"p-dev will use your GitHub token to create or reconnect your private `p-dev-harness` workspace before continuing."}):(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Verify and save each service key above. Continue unlocks after all four services are verified and saved locally."}),V?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:V}):null,X?(0,g.jsx)("p",{className:"text-sm text-destructive",children:X}):null]});case"choose-target-repos":return(0,g.jsxs)(Y,{title:`Step 4 of 7 \xb7 Choose target repo(s) and create setup files`,description:"Tell the harness which GitHub repo(s) it should work against, then create local setup files on this machine.",children:[(0,g.jsx)(aQ,{values:au,highlightStaleTarget:i,variant:"guided-minimal",harnessDispatchRepository:u.githubDispatchRepository,savedHarnessDispatchRepository:d.savedHarnessDispatchRepository,suggestedHarnessDispatchRepo:d.suggestedHarnessDispatchRepo,harnessRepoVerification:N,verifyingHarnessRepo:$,onHarnessDispatchRepositoryChange:a=>{aV(),O({state:"unchecked"}),v(b=>({...b,githubDispatchRepository:a}))},onVerifyAndUseHarnessRepo:a=>{a1(a)},harnessConnectedAutomatically:P===aN&&R===aN&&!!aN,guidedRepos:y,repoVerification:I,verifyingRepoRowId:L,onChange:a=>{aV(),x(a)},onGuidedReposChange:a=>{aV(),a$(a),z(a)},onVerifyRepo:a2,onRepoBlur:a4,activeGithubTokenFingerprint:aI?.fingerprint??null,onAddRepo:()=>{aV(),q.current+=1;let a=aB(q.current);z(b=>[...b,{rowId:a,id:"",targetRepo:""}])},onRemoveRepo:a=>{aV(),z(b=>b.filter(b=>b.rowId!==a)),J(b=>{let c={...b};return delete c[a],c})}}),(0,g.jsx)(ad,{className:"my-6"}),(0,g.jsxs)("div",{className:"rounded-md border border-border bg-muted/20 p-4 space-y-3",children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:bg}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:n?"Local gitignored setup files already exist on this machine. Preview the changes, confirm, and update `.env.local` and `.harness/config.local.json`.":"This is the point where the app writes local gitignored setup files to this machine: `.env.local` and `.harness/config.local.json`."}),(0,g.jsx)(aW,{open:aa,onOpenChange:a7,isLoading:"preview"===ak,previewError:am??void 0,envPreview:aC?ae?.envPreview:void 0,configPreview:aC?ae?.configPreview:void 0,validationError:aC?ae?.validationError:void 0,previewIsCurrent:aC}),(0,g.jsx)(aU,{variant:"guided",intent:n?"update":"create",plan:aC?ae?.plan:void 0,confirmed:ai,disabled:!!ae?.validationError,disabledReason:bc,onConfirmedChange:aj})]}),(0,g.jsx)("div",{className:F.actions,children:(0,g.jsx)(K.$,{type:"button",onClick:a9,disabled:!be,"data-primary-preview-button":"true",children:"apply"===ak?bh:bg})}),!be&&bf?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:bf}):null]})}})()}),ao?(0,g.jsx)(aX,{success:!1,message:ao}):null]}):(0,g.jsxs)("div",{className:D.section,children:[(0,g.jsx)(Y,{title:"Environment (.env.local)",description:"Edit local env keys. Existing secret values are never shown.",children:(0,g.jsx)(aL,{values:u,presence:A,highlightDispatchRepo:f,variant:"advanced",onChange:a=>{aV(),v(a)}})}),(0,g.jsx)(Y,{title:"Target repo config",description:"Guided fields for .harness/config.local.json.",children:(0,g.jsx)(aQ,{values:w,highlightStaleTarget:i,variant:"advanced",onChange:a=>{aV(),x(a)}})}),(0,g.jsxs)(Y,{title:"Preview local changes",description:"Required before apply. Secret values are redacted in previews.",children:[(0,g.jsx)(aS,{envPreview:aC?ae?.envPreview:void 0,configPreview:aC?ae?.configPreview:void 0,validationError:aC?ae?.validationError:void 0}),(0,g.jsx)("div",{className:F.actions,children:(0,g.jsx)(K.$,{type:"button",onClick:a6,disabled:null!==ak,"data-primary-preview-button":"true",children:"preview"===ak?"Generating preview…":"Preview setup files"})}),ba?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:ba}):null]}),(0,g.jsxs)(Y,{title:"Confirm and apply",description:"Writes only local gitignored setup files through setup core.",children:[(0,g.jsx)(aU,{plan:aC?ae?.plan:void 0,confirmed:ai,disabled:!aC||!!ae?.validationError,disabledReason:bb,onConfirmedChange:aj}),(0,g.jsx)("div",{className:F.actions,children:(0,g.jsx)(K.$,{type:"button",onClick:a8,disabled:null!==ak||!aC||!ai||!!ae?.validationError,children:"apply"===ak?"Creating…":"Create local setup files"})}),bd?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:bd}):null]}),ao?(0,g.jsx)(aX,{success:!1,message:ao}):null,null===as||ao?null:(0,g.jsx)(aX,{success:as,message:as?"Local setup files were written successfully.":"Apply failed.",summary:aq??void 0})]})}let hn={LINEAR_API_KEY:"LINEAR_API_KEY",CURSOR_API_KEY:"CURSOR_API_KEY",HARNESS_GITHUB_TOKEN:"HARNESS_GITHUB_TOKEN"};function ho(a){return"present"===a?"success":"missing"===a?"warning":"secondary"}function hp({values:a,secretStatuses:b,onChange:c}){let d=b=>{c({...a,...b})},e=new Map(b.map(a=>[a.name,a.status]));return(0,g.jsxs)("div",{className:F.fieldGrid,children:[(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsx)(af,{children:"HARNESS_CONFIG_JSON_B64"}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Generated server-side from validated `.harness/config.local.json` during apply. Never shown in previews or responses."}),(0,g.jsx)(P,{label:e.get("HARNESS_CONFIG_JSON_B64")??"unknown",variant:ho(e.get("HARNESS_CONFIG_JSON_B64")??"unknown")})]}),(0,g.jsx)(hq,{id:"remote-linear-api-key",label:hn.LINEAR_API_KEY,status:e.get("LINEAR_API_KEY")??"unknown",value:a.linearApiKey,onChange:a=>d({linearApiKey:a})}),(0,g.jsx)(hq,{id:"remote-cursor-api-key",label:hn.CURSOR_API_KEY,status:e.get("CURSOR_API_KEY")??"unknown",value:a.cursorApiKey,onChange:a=>d({cursorApiKey:a})}),(0,g.jsx)(hq,{id:"remote-harness-github-token",label:hn.HARNESS_GITHUB_TOKEN,status:e.get("HARNESS_GITHUB_TOKEN")??"unknown",value:a.harnessGithubToken,onChange:a=>d({harnessGithubToken:a})})]})}function hq({id:a,label:b,status:c,value:d,onChange:e}){return(0,g.jsxs)("div",{className:F.fieldStack,children:[(0,g.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,g.jsx)(af,{htmlFor:a,children:b}),(0,g.jsx)(P,{label:c,variant:ho(c)})]}),(0,g.jsx)(ae,{id:a,type:"password",value:d,autoComplete:"off",onChange:a=>e(a.target.value)}),(0,g.jsx)("p",{className:F.secretHint,children:"Existing GitHub Actions secret values are never readable. Leave blank to preserve an existing secret when status is present."})]})}function hr({harnessSecretPreview:a,targetWorkflowPreview:b}){return a||b?a?(0,g.jsxs)("div",{className:"space-y-4",children:[a.validationError?(0,g.jsx)("p",{className:"text-sm text-destructive",children:a.validationError}):null,(0,g.jsxs)("dl",{className:"grid grid-cols-1 gap-3 md:grid-cols-2 text-sm",children:[(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-muted-foreground",children:"Harness dispatch repo"}),(0,g.jsx)("dd",{className:"font-medium break-all",children:a.harnessDispatchRepo})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-muted-foreground",children:"Repo access"}),(0,g.jsx)("dd",{className:"font-medium",children:a.repoAccess})]})]}),(0,g.jsx)(aR,{title:"Secret write plan (key names only)",content:a.secretWritePlan.map(a=>`${a.name}: ${a.action} (${a.source})`).join("\n")}),(0,g.jsx)(aR,{title:"Manual copy-paste alternative",content:a.manualInstructions.join("\n")})]}):b?(0,g.jsxs)("div",{className:"space-y-4",children:[b.validationError?(0,g.jsx)("p",{className:"text-sm text-destructive",children:b.validationError}):null,(0,g.jsx)(aR,{title:"Workflow install preview",content:b.workflowPreviewSummary}),(0,g.jsx)(aR,{title:"Manual copy-paste alternative",content:b.manualInstructions.join("\n")})]}):null:(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Generate a preview before confirming any remote write."})}let hs={"remote-secret-write":{advanced:{title:"Confirm harness repo Actions secret writes",bullets:["Writes encrypted GitHub Actions secrets to the harness dispatch repo only.","HARNESS_CONFIG_JSON_B64 is generated server-side from local config.","Secret values are never returned in previews, results, or errors.","No target repo branches, PRs, Linear writes, or harness phases will run."],label:"I reviewed the harness secret preview and want to write these Actions secrets."},guided:{title:"Confirm cloud secrets write",bullets:["This writes encrypted GitHub Actions secrets to the harness repo.","Preflight runs automatically before apply when you skip preview.","It does not run the harness, create branches, open PRs, or change your target app.","Secret values are never shown in previews, results, or errors."],label:"I understand this will create or update encrypted GitHub Actions secrets in the harness repo."}},"vercel-bridge-write":{advanced:{title:"Confirm Vercel bridge setup writes",bullets:["May create or reuse Vercel team and project resources when selected.","Writes required Vercel production environment variables for the bridge.","May create or verify the Linear Issue webhook for automation.","Secret values are never returned in previews, results, or errors."],label:"I reviewed the Vercel settings preview and want to apply these changes."},guided:{title:"Confirm Vercel settings write",bullets:["This may create or update Vercel production environment variables and configure the Linear webhook bridge.","It does not run the harness, create branches, open PRs, or change your target app.","Secret values are never shown in previews, results, or errors."],label:"I understand this will write Vercel environment variables and configure the Linear webhook bridge."}},"remote-repo-write":{advanced:{title:"Confirm target workflow branch and PR install",bullets:["Creates or updates an install branch and opens or reuses a PR.","Never writes directly to the target repo production or main branch.","No harness repo secret writes, Linear writes, or harness phases will run."],label:"I reviewed the workflow preview and want to create or update the install PR."},guided:{title:"Confirm workflow install PR",bullets:["This may create or update an install branch and open or reuse a PR.","It does not merge the PR, write directly to main/production, run the harness, or write Linear."],label:"I reviewed the workflow preview and want to create or update the workflow install PR."}},"linear-write":{advanced:{title:"Confirm Linear workspace writes",bullets:["May create or update Linear teams, projects, and workflow statuses.","Preview is read-only until you confirm this write.","No harness phases, GitHub dispatch, or target repo changes run from this step."],label:"I reviewed the Linear setup preview and want to apply workspace changes."},guided:{title:"Confirm Linear workspace setup",bullets:["This may create missing Linear workflow statuses or workspace resources.","It does not run harness automation or modify your target app repo."],label:"I understand this will apply Linear workspace setup changes."}}};function ht({scope:a,confirmed:b,disabled:c=!1,disabledReason:d,variant:e="advanced",onConfirmedChange:f}){let h=hs[a][e];return(0,g.jsxs)("div",{className:F.confirmationBox,children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:h.title}),(0,g.jsx)("ul",{className:"list-disc space-y-1 pl-5 text-sm text-muted-foreground",children:h.bullets.map(a=>(0,g.jsx)("li",{children:a},a))}),(0,g.jsxs)("div",{className:"flex items-start gap-3",children:[(0,g.jsx)(aT,{id:`confirm-${a}`,checked:b,disabled:c,onChange:a=>f(a.target.checked)}),(0,g.jsx)(af,{htmlFor:`confirm-${a}`,className:"text-sm leading-snug",children:h.label})]}),c&&d?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:d}):null]})}function hu({repo:a,onApplied:b,onGuidedApplySuccess:c,blockedByUpstream:d=!1,variant:e="advanced"}){var f,i;let[j,k]=(0,h.useState)(null),[l,m]=(0,h.useState)(null),[n,o]=(0,h.useState)(!1),[p,q]=(0,h.useState)(null),[r,s]=(0,h.useState)(null),[t,u]=(0,h.useState)(null),v=`${a.repoConfigId}:${a.targetRepo}:${a.productionBranch}`,w=null!==j&&l===v,x=async()=>{q("preview"),s(null),u(null),o(!1);try{let b=await fetch("/api/setup/preview-target-workflow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoConfigId:a.repoConfigId,targetRepo:a.targetRepo,productionBranch:a.productionBranch})}),c=await b.json();if(!b.ok)throw Error(c.error??"Preview failed");k(c),m(v)}catch(a){k(null),m(null),s(a instanceof Error?a.message:"Preview failed")}finally{q(null)}},y=async()=>{if(j&&w&&n){q("apply"),s(null);try{let d=await fetch("/api/setup/apply-target-workflow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoConfigId:a.repoConfigId,targetRepo:a.targetRepo,productionBranch:a.productionBranch,confirmed:!0,fingerprint:j.fingerprint})}),f=await d.json();if(!d.ok)throw Error(f.error??"Apply failed");let g=f.apply,h=f.finalization;k(null),m(null),o(!1),"guided"===e?c?.(g,h):u(g),b()}catch(a){s(a instanceof Error?a.message:"Apply failed")}finally{q(null)}}},z=(0,h.useMemo)(()=>t?"already-installed"===t.outcome?"Workflow already installed on production branch. No PR opened.":t.prUrl?`Workflow install ${t.outcome}: ${t.prUrl}`:`Workflow install ${t.outcome} on branch ${t.branchName}.`:null,[t]),A=d?"Fix harness repo access before target workflow setup can be previewed.":void 0,B=A||(w?j?.validationError?"Fix validation errors before confirming this write.":void 0:"Generate a preview before you can confirm this write."),C=B??(n?void 0:"guided"===e?"Confirm the preview before creating the workflow install PR.":"Confirm the preview before applying the workflow install PR."),D="apply"===p?"Creating PR…":"guided"===e?"present"===a.workflowStatus?"Update workflow install PR":"Create workflow install PR":"Apply workflow PR";return(0,g.jsxs)("div",{className:"guided"===e?"space-y-4":"rounded-md border border-border bg-muted/10 p-4 space-y-4",children:["advanced"===e?(0,g.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,g.jsxs)("div",{children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:a.repoConfigId}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground break-all",children:a.targetRepo}),(0,g.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Production branch: ",a.productionBranch]})]}),(0,g.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,g.jsx)(P,{label:`Access: ${a.repoAccess}`,variant:"available"===(f=a.repoAccess)?"success":"denied"===f?"destructive":"secondary"}),(0,g.jsx)(P,{label:`Workflow: ${a.workflowStatus}`,variant:"present"===(i=a.workflowStatus)?"success":"differs"===i||"missing"===i?"warning":"secondary"})]})]}):null,(0,g.jsx)(hr,{targetWorkflowPreview:w?j??void 0:void 0}),(0,g.jsx)(ht,{scope:"remote-repo-write",variant:e,confirmed:n,disabled:!w||!!j?.validationError||d,disabledReason:B,onConfirmedChange:o}),(0,g.jsxs)("div",{className:F.actions,children:[(0,g.jsx)(K.$,{type:"button",onClick:x,disabled:null!==p||d,children:"preview"===p?"Generating preview…":"guided"===e?"Preview workflow install PR":"Preview workflow PR"}),(0,g.jsx)(K.$,{type:"button",onClick:y,disabled:null!==p||!w||!n||!!j?.validationError||d,children:D})]}),A?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:A}):null,C&&!A?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:C}):null,r?(0,g.jsx)(aX,{success:!1,message:r}):null,"advanced"===e&&z?(0,g.jsx)(aX,{success:!0,message:z}):null]})}function hv({initialSummary:a,onSummaryUpdated:b,onUiStateChange:c,blockedByUpstream:d=!1}){var e;let[f,i]=(0,h.useState)(a),[j,k]=(0,h.useState)({linearApiKey:"",cursorApiKey:"",harnessGithubToken:""}),[l,m]=(0,h.useState)(null),[n,o]=(0,h.useState)(null),[p,q]=(0,h.useState)(!1),[r,s]=(0,h.useState)(null),[t,u]=(0,h.useState)(null),[v,w]=(0,h.useState)(null),x=(0,h.useMemo)(()=>({linearApiKey:j.linearApiKey||void 0,cursorApiKey:j.cursorApiKey||void 0,harnessGithubToken:j.harnessGithubToken||void 0}),[j]),y=null!==l&&null!==n&&JSON.stringify(n)===JSON.stringify(j),z=(0,h.useCallback)(async()=>{s("refresh");try{let a=await fetch("/api/setup/remote-summary"),c=await a.json();if(!a.ok)throw Error(c.error??"Remote summary refresh failed");i(c),b?.(c)}catch(a){u(a instanceof Error?a.message:"Remote summary refresh failed")}finally{s(null)}},[b]),A=()=>{w(null),u(null)},B=async()=>{s("preview"),A(),q(!1);try{let a=await fetch("/api/setup/preview-harness-secrets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(x)}),b=await a.json();if(!a.ok)throw Error(b.error??"Preview failed");m(b),o({...j})}catch(a){m(null),o(null),u(a instanceof Error?a.message:"Preview failed")}finally{s(null)}},C=async()=>{if(l&&y&&p){s("apply"),A();try{let a=await fetch("/api/setup/apply-harness-secrets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...x,confirmed:!0,fingerprint:l.fingerprint})}),c=await a.json();if(!a.ok)throw Error(c.error??"Apply failed");w(c.apply),i(c.summary),b?.(c.summary),k({linearApiKey:"",cursorApiKey:"",harnessGithubToken:""}),m(null),o(null),q(!1)}catch(a){u(a instanceof Error?a.message:"Apply failed")}finally{s(null)}}},E=v?`Wrote ${v.writtenSecrets.map(a=>a.name).join(", ")||"no secrets"}.`:null,G=d?"Fix harness repo access in local setup before remote secrets or workflow checks can continue.":void 0,H=G??(f.githubTokenConfigured?null!==r?"Wait for the current action to finish.":void 0:"Set GITHUB_TOKEN in `.env.local` before previewing remote harness secret writes."),I=G||(y?l?.validationError?"Fix validation errors before confirming this write.":void 0:"Generate a preview before you can confirm this write."),J=I??(p?void 0:"Confirm the preview before applying harness repo Actions secrets.");return(0,g.jsxs)("div",{className:D.section,children:[(0,g.jsx)(Y,{title:"Remote setup",description:"Preview and apply harness repo Actions secrets and target workflow install PRs. Each action requires its own preview and confirmation.",children:(0,g.jsxs)("dl",{className:"grid grid-cols-1 gap-3 md:grid-cols-2 text-sm",children:[(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-muted-foreground",children:"GITHUB_TOKEN in .env.local"}),(0,g.jsx)("dd",{children:(0,g.jsx)(P,{label:f.githubTokenConfigured?"Configured":"Missing",variant:f.githubTokenConfigured?"success":"warning"})})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-muted-foreground",children:"Harness dispatch repo"}),(0,g.jsx)("dd",{className:"font-medium break-all",children:f.harnessDispatchRepo})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-muted-foreground",children:"Dispatch repo source"}),(0,g.jsx)("dd",{className:"font-medium",children:f.harnessDispatchRepoSource})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-muted-foreground",children:"Harness repo access"}),(0,g.jsx)("dd",{children:(0,g.jsx)(P,{label:f.harnessRepoAccess,variant:"available"===(e=f.harnessRepoAccess)?"success":"denied"===e?"destructive":"secondary"})})]})]})}),d?(0,g.jsxs)(Y,{title:"Blocked until repo access is fixed",description:"Remote setup details stay hidden until the harness dispatch repo is corrected.",children:[(0,g.jsxs)("p",{className:"text-sm text-muted-foreground",children:[G," Use the local setup fix above, then refresh this page after applying."]}),(0,g.jsx)("div",{className:F.actions,children:(0,g.jsx)(K.$,{type:"button",onClick:z,disabled:null!==r,children:"refresh"===r?"Refreshing…":"Refresh remote setup"})})]}):(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)(Y,{title:"Harness repo Actions secrets",description:"Write encrypted secrets to the harness dispatch repo. HARNESS_CONFIG_JSON_B64 is generated server-side.",children:[(0,g.jsx)(hp,{values:j,secretStatuses:f.harnessSecretStatuses,onChange:a=>{A(),m(null),o(null),q(!1),k(a)}}),(0,g.jsx)(hr,{harnessSecretPreview:y?l??void 0:void 0}),(0,g.jsx)(ht,{scope:"remote-secret-write",confirmed:p,disabled:!y||!!l?.validationError,disabledReason:I,onConfirmedChange:q}),(0,g.jsxs)("div",{className:F.actions,children:[(0,g.jsx)(K.$,{type:"button",onClick:B,disabled:null!==r||!f.githubTokenConfigured||!!G,children:"preview"===r?"Generating preview…":"Preview harness secrets"}),(0,g.jsx)(K.$,{type:"button",onClick:C,disabled:null!==r||!y||!p||!!l?.validationError,children:"apply"===r?"Applying…":"Apply harness secrets"})]}),H?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:H}):null,J?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:J}):null,t?(0,g.jsx)(aX,{success:!1,message:t}):null,E?(0,g.jsx)(aX,{success:!0,message:E}):null]}),(0,g.jsx)(Y,{title:"Target workflow install PRs",description:"One install PR card per configured target repo. Never writes directly to production branches.",children:0===f.targetRepos.length?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Resolve `.harness/config.local.json` to show target workflow cards."}):(0,g.jsx)("div",{className:D.stackSm,children:f.targetRepos.map(a=>(0,g.jsx)(hu,{repo:a,onApplied:z,blockedByUpstream:d},a.repoConfigId))})})]})]})}let hw=(0,Q.A)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),hx=(0,Q.A)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),hy=(0,Q.A)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),hz=(0,Q.A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);function hA({items:a,className:b}){return(0,g.jsx)("ul",{className:(0,M.cn)(D.list,b),children:a.map(a=>{let b=function(a){switch(a){case"complete":return hw;case"blocked":return hx;default:return hy}}(a.status);return(0,g.jsxs)("li",{className:"flex items-start gap-3 rounded-md border border-border bg-muted/30 p-3",children:[(0,g.jsx)(b,{className:(0,M.cn)("mt-0.5 size-4 shrink-0",function(a){switch(a){case"complete":return"text-emerald-600";case"blocked":return"text-destructive";default:return"text-muted-foreground"}}(a.status))}),(0,g.jsxs)("div",{className:D.stackSm,children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:a.label}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:a.detail})]})]},a.id)})})}function hB({checks:a,className:b}){return(0,g.jsx)("ul",{className:(0,M.cn)(D.list,b),children:a.map(a=>{let b=a.skipped?hy:a.ok?hw:hx,c=a.skipped?"text-muted-foreground":a.ok?"text-emerald-600":"text-destructive";return(0,g.jsxs)("li",{className:"flex items-start gap-3",children:[(0,g.jsx)(b,{className:(0,M.cn)("mt-0.5 size-4 shrink-0",c)}),(0,g.jsxs)("div",{className:D.stackSm,children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:a.label}),a.detail?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:a.detail}):null]})]},a.label)})})}function hC({checks:a,className:b}){return(0,g.jsx)("ul",{className:(0,M.cn)(D.list,b),children:a.map(a=>{let b=function(a){switch(a){case"passed":return hw;case"failed":return hx;case"checking":return hz;default:return hy}}(a.status);return(0,g.jsxs)("li",{className:"flex items-start gap-3 rounded-md border border-border bg-muted/30 p-3",children:[(0,g.jsx)(b,{className:(0,M.cn)("mt-0.5 size-4 shrink-0",function(a){switch(a){case"passed":return"text-emerald-600";case"failed":return"text-destructive";case"checking":return"text-muted-foreground animate-spin";default:return"text-muted-foreground"}}(a.status))}),(0,g.jsxs)("div",{className:(0,M.cn)(D.stackSm,"min-w-0 flex-1"),children:[(0,g.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:a.label}),(0,g.jsx)("span",{className:"text-xs text-muted-foreground",children:function(a){switch(a){case"passed":return"Passed";case"failed":return"Failed";case"checking":return"Checking";default:return"Pending"}}(a.status)})]}),a.detail?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:a.detail}):null,"failed"===a.status&&a.action?(0,g.jsx)("p",{className:"text-sm text-foreground",children:a.action}):null]})]},a.id)})})}function hD({summary:a,checklistItems:b}){return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(Y,{title:"Overview",description:"Current harness setup state and active config source.",children:(0,g.jsxs)("dl",{className:E.twoColumnGrid,children:[(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-sm text-muted-foreground",children:"Config source"}),(0,g.jsx)("dd",{className:"text-sm font-medium",children:a.configSource.kind})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-sm text-muted-foreground",children:"Source label"}),(0,g.jsx)("dd",{className:"text-sm font-medium break-all",children:a.configSource.label})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-sm text-muted-foreground",children:"Local files present"}),(0,g.jsx)("dd",{className:"text-sm font-medium",children:a.overview.localFilesPresent?"Yes":"No"})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-sm text-muted-foreground",children:"Ready for CLI doctor"}),(0,g.jsx)("dd",{className:"text-sm font-medium",children:a.overview.readyForLocalDoctor?"Yes":"No"})]})]})}),(0,g.jsx)(Y,{title:"Local files",description:"Gitignored operator files used for local harness setup.",children:(0,g.jsx)("ul",{className:D.list,children:a.localFiles.map(a=>(0,g.jsxs)("li",{className:"flex items-center justify-between gap-4 rounded-md border border-border p-3",children:[(0,g.jsxs)("div",{children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:a.label}),(0,g.jsx)("p",{className:"text-xs text-muted-foreground break-all",children:a.path})]}),(0,g.jsx)(P,{label:a.exists?"Present":"Missing",variant:a.exists?"success":"warning"})]},a.path))})}),a.configSummary?(0,g.jsxs)(Y,{title:"Config summary",description:"Parsed harness config metadata without secret values.",children:[(0,g.jsxs)("dl",{className:E.twoColumnGrid,children:[(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-sm text-muted-foreground",children:"Repo count"}),(0,g.jsx)("dd",{className:"text-sm font-medium",children:a.configSummary.repoCount})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-sm text-muted-foreground",children:"Linear team key"}),(0,g.jsx)("dd",{className:"text-sm font-medium",children:a.configSummary.linearTeamKey??"Not set"})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-sm text-muted-foreground",children:"Model"}),(0,g.jsx)("dd",{className:"text-sm font-medium",children:a.configSummary.model.resolvedModelId})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-sm text-muted-foreground",children:"Model source"}),(0,g.jsx)("dd",{className:"text-sm font-medium",children:a.configSummary.model.source})]})]}),(0,g.jsx)(ad,{}),(0,g.jsx)("ul",{className:D.list,children:a.configSummary.repos.map(a=>(0,g.jsxs)("li",{className:"rounded-md border border-border bg-muted/20 p-3",children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:a.id}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:a.targetRepo}),(0,g.jsxs)("p",{className:"text-xs text-muted-foreground",children:[a.baseBranch," → ",a.productionBranch,a.previewProvider?` \xb7 ${a.previewProvider}`:""]})]},a.id))})]}):null,(0,g.jsx)(Y,{title:"Environment key presence",description:"Whether required keys are set in .env.local. Values are never displayed.",children:(0,g.jsx)("dl",{className:E.twoColumnGrid,children:Object.entries(a.envKeyPresence).map(([a,b])=>(0,g.jsxs)("div",{children:[(0,g.jsx)("dt",{className:"text-sm text-muted-foreground",children:a}),(0,g.jsx)("dd",{children:(0,g.jsx)(P,{label:b?"Set":"Missing",variant:b?"success":"warning"})})]},a))})}),(0,g.jsxs)(Y,{title:"Reference previews",description:"Read-only dry-run previews from setup core.",children:[(0,g.jsx)(aR,{title:".env.local reference preview",content:a.generatedPreviews.envLocal}),(0,g.jsx)(aR,{title:".harness/config.local.json reference preview",content:a.generatedPreviews.configLocal})]}),(0,g.jsx)(Y,{title:"Setup checklist",description:"Recommended next actions before a future first harness run.",children:(0,g.jsx)(hA,{items:b})}),(0,g.jsx)(Y,{title:"Doctor summary",description:a.doctor.remoteChecksNote,children:(0,g.jsx)(hB,{checks:a.doctor.checks})}),(0,g.jsx)(Y,{title:"Manual instructions",description:"Copy-paste setup guidance for local and remote setup.",children:a.instructionPreviews.map(a=>(0,g.jsxs)("div",{className:D.stackSm,children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:a.reason}),(0,g.jsx)("ul",{className:"list-disc space-y-2 pl-5 text-sm text-muted-foreground",children:a.manualInstructions?.map(a=>(0,g.jsx)("li",{children:a},a))})]},a.actionId))})]})}function hE({title:a,children:b}){return(0,g.jsxs)("section",{className:C.sectionStack,children:[(0,g.jsx)("h3",{className:"text-base font-semibold",children:a}),b]})}function hF({summary:a,remoteSummary:b,readiness:c,formDefaults:d,onSummaryUpdated:e,onRemoteSummaryUpdated:f,onLocalUiStateChange:h,onRemoteUiStateChange:i}){return(0,g.jsxs)("div",{className:C.sectionStack,children:[(0,g.jsx)(hE,{title:"Phase 1 \xb7 Local setup",children:(0,g.jsx)(hm,{mode:"advanced",initialEnv:d.env,initialConfig:d.config,onSummaryUpdated:e,onUiStateChange:h})}),(0,g.jsx)(hE,{title:"Phase 2 \xb7 Local readiness",children:(0,g.jsx)(Y,{title:"Doctor summary",description:a.doctor.remoteChecksNote,children:(0,g.jsx)(hB,{checks:a.doctor.checks})})}),(0,g.jsx)(hE,{title:"Phase 3 \xb7 Remote setup",children:(0,g.jsx)(hv,{initialSummary:b,onSummaryUpdated:f,onUiStateChange:i,blockedByUpstream:c.remoteSetupBlockedByUpstream})}),(0,g.jsx)(hE,{title:"Phase 4 \xb7 Ready for first run",children:(0,g.jsx)(Y,{title:"Final readiness",description:"Confirms setup readiness without triggering a live harness run.",children:(0,g.jsxs)("div",{className:D.stackSm,children:[(0,g.jsx)(P,{label:c.readyForFirstRun?"Ready for first run":"Blocked for first run",variant:c.readyForFirstRun?"success":"warning"}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:c.prohibitedActionsNote})]})})}),(0,g.jsx)(hE,{title:"Diagnostics and reference",children:(0,g.jsx)(hD,{summary:a,checklistItems:c.steps.map(a=>({id:a.id,label:a.label,detail:a.blockers[0]?.action??a.summary,status:"complete"===a.status?"complete":"blocked"===a.status?"blocked":"pending"}))})})]})}let hG="w-full rounded-md border border-input bg-background px-3 py-2 text-sm";function hH({readiness:a,initialSummary:b,linearApiKeyConfigured:c,onSummaryUpdated:d,onUiStateChange:e,onContinue:f}){let[i,j]=(0,h.useState)(b),[k,l]=(0,h.useState)("existing"),[m,n]=(0,h.useState)(i.controlPlane?.linear?.teamId??""),[o,p]=(0,h.useState)(i.controlPlane?.linear?.teamKey??""),[q,r]=(0,h.useState)(i.controlPlane?.linear?.teamName??""),[s,t]=(0,h.useState)("existing"),[u,v]=(0,h.useState)(i.controlPlane?.linear?.projectId??""),[w,x]=(0,h.useState)(i.controlPlane?.linear?.projectName??""),[y,z]=(0,h.useState)([]),[A,B]=(0,h.useState)([]),[C,E]=(0,h.useState)(!1),[G,H]=(0,h.useState)(null),[I,J]=(0,h.useState)(null),[L,M]=(0,h.useState)(!1),[N,O]=(0,h.useState)(!1),[Q,R]=(0,h.useState)(null),[S,T]=(0,h.useState)(null),[U,V]=(0,h.useState)(null),[W,X]=(0,h.useState)(null),[Z,$]=(0,h.useState)(!1),_=null!==I&&L,aa=c??i.linearApiKeyConfigured,ab=(0,h.useCallback)(()=>{$(!1),X(null)},[]),ac=(0,h.useCallback)(()=>{J(null),M(!1),ab()},[ab]),ad=(0,h.useCallback)(async()=>{if(aa){E(!0),H(null);try{let a=await fetch("/api/setup/linear-options"),b=await a.json();if(!a.ok)throw Error(b.error??"Failed to load Linear teams and projects");z(b.teams??[]),B(b.projects??[])}catch(a){z([]),B([]),H(a instanceof Error?a.message:"Failed to load Linear teams and projects")}finally{E(!1)}}},[aa]),ag=(0,h.useMemo)(()=>{if(!m)return A;let a=A.filter(a=>0===a.teamIds.length||a.teamIds.includes(m));return a.length>0?a:A},[A,m]),ah=(0,h.useCallback)(async()=>{R("refresh");try{let a=await fetch("/api/setup/linear-summary"),b=await a.json();if(!a.ok)throw Error(b.error??"Linear summary refresh failed");j(b),d?.(b)}catch(a){T(a instanceof Error?a.message:"Linear summary refresh failed")}finally{R(null)}},[d]),ai=(0,h.useCallback)(()=>({team:{mode:k,teamId:"existing"===k?m:void 0,teamKey:"create"===k?o:void 0,teamName:"create"===k?q:void 0},project:{mode:s,projectId:"existing"===s?u:void 0,projectName:"create"===s?w:void 0}}),[u,s,w,m,o,k,q]),aj=(0,h.useCallback)(async()=>{let a=await fetch("/api/setup/preview-linear-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ai())}),b=await a.json();if(!a.ok)throw Error(b.error??"Preview failed");return J(b),M(!0),b},[ai]),ak=(0,h.useCallback)(async()=>{R("preview"),T(null),V(null),ab(),O(!1);try{await aj()}catch(a){J(null),M(!1),V(a instanceof Error?a.message:"Preview failed")}finally{R(null)}},[ab,aj]),al=async()=>{if(N){R("apply"),T(null),ab();try{let a=_&&I?I:await aj();if(a.validationError)throw Error(a.validationError);let b=await fetch("/api/setup/apply-linear-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({plan:ai(),confirmed:!0,fingerprint:a.fingerprint})}),c=await b.json();if(!b.ok)throw Error(c.error??"Apply failed");let e=c.apply;if(!e.verified)throw Error("Linear workspace apply finished, but post-apply verification did not pass.");X(e),j(c.summary),d?.(c.summary),$(!0),J(null),M(!1),O(!1),ad()}catch(a){T(a instanceof Error?a.message:"Apply failed")}finally{R(null)}}},am=Z||a.steps.find(a=>"linear-workspace"===a.id)?.status==="complete"||i.workspace.configured,an="existing"===k?!!m&&("existing"===s?!!u:!!w):!!(o&&q)&&("existing"===s?!!u:!!w);return(0,g.jsx)(Y,{title:`Step 2 of 7 \xb7 Set up Linear workspace`,description:"Choose or create the Linear team and project, then ensure issue workflow statuses exist for the team.",children:(0,g.jsx)("div",{className:D.stackSm,children:aa?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(af,{htmlFor:"linear-team-mode",children:"Team"}),(0,g.jsxs)("select",{id:"linear-team-mode",className:hG,value:k,onChange:a=>{l(a.target.value),ac()},children:[(0,g.jsx)("option",{value:"existing",children:"Use existing team"}),(0,g.jsx)("option",{value:"create",children:"Create new team"})]}),"existing"===k?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("select",{className:hG,value:m,onChange:a=>{n(a.target.value),v(""),ac()},disabled:C,children:[(0,g.jsx)("option",{value:"",children:"Select a team…"}),y.map(a=>(0,g.jsxs)("option",{value:a.id,children:[a.name," (",a.key,")"]},a.id))]}),C?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading Linear teams…"}):null,C||0!==y.length?null:(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"No Linear teams found for this API key."})]}):(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(ae,{placeholder:"Team name",value:q,onChange:a=>{r(a.target.value),ac()}}),(0,g.jsx)(ae,{placeholder:"Team key (e.g. ENG)",value:o,onChange:a=>{p(a.target.value),ac()}})]})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(af,{htmlFor:"linear-project-mode",children:"Project"}),(0,g.jsxs)("select",{id:"linear-project-mode",className:hG,value:s,onChange:a=>{t(a.target.value),ac()},children:[(0,g.jsx)("option",{value:"existing",children:"Use existing project"}),(0,g.jsx)("option",{value:"create",children:"Create new project"})]}),"existing"===s?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("select",{className:hG,value:u,onChange:a=>{v(a.target.value),ac()},disabled:C,children:[(0,g.jsx)("option",{value:"",children:"Select a project…"}),ag.map(a=>(0,g.jsx)("option",{value:a.id,children:a.name},a.id))]}),C?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading Linear projects…"}):null,C||0!==ag.length?null:(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"No Linear projects found for this API key."}),!C&&ag.length>0&&m&&A.some(a=>a.teamIds.length>0)&&ag.length===A.length?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Showing all workspace projects because team association could not be narrowed further."}):null]}):(0,g.jsx)(ae,{placeholder:"Project name",value:w,onChange:a=>{x(a.target.value),ac()}})]})]}),G?(0,g.jsx)("p",{className:"text-sm text-destructive",children:G}):null,(0,g.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[i.workspace.configured?(0,g.jsx)(P,{label:`Team ${i.workspace.teamKey} configured`,variant:"success"}):null,(0,g.jsx)(K.$,{type:"button",variant:"outline",size:"sm",onClick:()=>void ak(),disabled:null!==Q,children:"preview"===Q?"Previewing…":"Preview Linear setup"}),(0,g.jsx)(K.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>void ah(),disabled:null!==Q,children:"Refresh"})]}),_&&I?(0,g.jsxs)("div",{className:"rounded-md border border-border bg-muted/10 p-3 text-sm space-y-2",children:[(0,g.jsxs)("p",{children:["Missing creatable statuses:"," ",I.missingStatuses.length>0?I.missingStatuses.join(", "):"none"]}),(0,g.jsxs)("p",{children:["Dispatch triggers: ",I.dispatchTriggerStatuses.join(", ")]}),I.manualSteps.length>0?(0,g.jsx)("ul",{className:"list-disc pl-5 text-muted-foreground",children:I.manualSteps.map(a=>(0,g.jsx)("li",{children:a},a))}):null,U?(0,g.jsx)("p",{className:"text-destructive",children:U}):null]}):null,(0,g.jsx)(ht,{scope:"linear-write",variant:"guided",confirmed:N,disabled:null!==Q||!an,disabledReason:an?void 0:"Select or enter the Linear team and project before confirming.",onConfirmedChange:O}),Z?null:(0,g.jsx)("div",{className:F.actions,children:(0,g.jsx)(K.$,{type:"button",onClick:()=>void al(),disabled:null!==Q||!N||!an||!!I?.validationError,children:"apply"===Q?"Applying…":"Apply Linear workspace setup"})}),S?(0,g.jsx)(aX,{success:!1,message:S}):null,Z&&W?(0,g.jsx)(aX,{success:!0,message:`Linear workspace verified. Created: ${W.created.join(", ")||"none"}. Reused: ${W.skipped.join(", ")||"none"}.`}):null,am?(0,g.jsx)(K.$,{type:"button",onClick:f,children:"Continue to Vercel bridge"}):null]}):(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Add your Linear API key in Step 1 before configuring the Linear workspace."})})})}async function hI(a,b){let c=await a.text();if(!c.trim())throw Error(`Setup request failed: ${b} returned HTTP ${a.status} with an empty response body`);try{return JSON.parse(c)}catch{throw Error(`Setup request failed: ${b} returned HTTP ${a.status} with an invalid JSON body`)}}let hJ="Vercel production redeploy is in progress. Wait for verification to finish before changing settings.",hK="w-full rounded-md border border-input bg-background px-3 py-2 text-sm";function hL({readiness:a,initialSummary:b,onSummaryUpdated:c,onUiStateChange:d,onContinue:e}){var f;let[i,j]=(0,h.useState)(b),[k,l]=(0,h.useState)([]),[m,n]=(0,h.useState)([]),[o,p]=(0,h.useState)({teamCreate:!0,projectCreate:!0}),[q,r]=(0,h.useState)("existing"),[s,t]=(0,h.useState)(i.controlPlane?.vercel?.teamId??""),[u,v]=(0,h.useState)(""),[w,x]=(0,h.useState)(""),[y,z]=(0,h.useState)("existing"),[A,B]=(0,h.useState)(i.controlPlane?.vercel?.projectId??""),[C,E]=(0,h.useState)(""),[G,H]=(0,h.useState)(i.linearTeamKey??""),[I,J]=(0,h.useState)(!1),[L,M]=(0,h.useState)(""),[N,O]=(0,h.useState)(null),[P,Q]=(0,h.useState)(!1),[R,S]=(0,h.useState)(null),[T,U]=(0,h.useState)(!1),[V,W]=(0,h.useState)(!1),[X,Z]=(0,h.useState)(null),[$,_]=(0,h.useState)(null),[aa,ab]=(0,h.useState)(null),[ac,ad]=(0,h.useState)(null),[ag,ah]=(0,h.useState)(null),[ai,aj]=(0,h.useState)(!1),[ak,al]=(0,h.useState)(!1),[am,an]=(0,h.useState)(null),[ao,ap]=(0,h.useState)(!1),aq=(f={setupPending:ai,pollActionId:ag}).setupPending||!!f.pollActionId,ar=aq||null!==X,as=null!==R&&T,at=(0,h.useCallback)(async a=>{Q(!0),O(null);try{let b=void 0!==a?`?teamId=${encodeURIComponent(a)}`:"",c=await fetch(`/api/setup/vercel-bridge-options${b}`),d=await c.json();if(!c.ok)throw Error(d.error??d.loadError??"Failed to load Vercel options");l(d.scopes??[]),n(d.projects??[]),p(d.capabilities??{teamCreate:!0,projectCreate:!0}),d.harnessTeamKey&&H(d.harnessTeamKey),J(!d.githubDispatch.eligible),void 0===a&&void 0!==d.selectedScopeId&&t(d.selectedScopeId),B(a=>d.projects.some(b=>b.id===a)?a:d.selectedProjectId??""),d.loadError&&O(d.loadError)}catch(a){O(a instanceof Error?a.message:"Failed to load Vercel settings options")}finally{Q(!1)}},[]),au=(0,h.useCallback)(async()=>{Z("refresh");try{let a=await fetch("/api/setup/vercel-summary"),b=await a.json();if(!a.ok)throw Error(b.error??"Vercel summary refresh failed");j(b),c?.(b)}catch(a){_(a instanceof Error?a.message:"Vercel summary refresh failed")}finally{Z(null)}},[c]),av=(0,h.useCallback)(a=>{aq&&a?.force!==!0||(S(null),U(!1),al(!1),ad(null),ah(null),aj(!1),an(null),ap(!1))},[aq]),aw=(0,h.useCallback)(()=>({team:{mode:q,teamId:"existing"===q?s:void 0,teamName:"create"===q&&u||void 0,teamSlug:"create"===q&&w||void 0},project:{mode:y,projectId:"existing"===y&&A||void 0,projectName:"create"===y&&C||void 0},teamId:"existing"===q&&s||void 0,projectId:"existing"===y&&A||void 0,projectName:"create"===y&&C||void 0,linearTeamId:i.controlPlane?.linear?.teamId,envInput:{GITHUB_DISPATCH_TOKEN:I&&L||void 0,HARNESS_TEAM_KEY:G||void 0}}),[L,G,A,y,C,I,i.controlPlane?.linear?.teamId,s,q,u,w]),ax=(0,h.useCallback)(async(a,b)=>{if(ad(a),"deployment-required"===a.status){_(a.deploymentRequired?.message??"Deployment required before applying settings."),al(!1),aj(!1),ah(null),at("existing"===q?s:void 0),S(null),U(!1),W(!1);return}j(b),c?.(b),al(a.verified),aj(!!a.setupPending),ah(a.pollActionId??null),a.linearWebhookSetup.manualCopySecret?(an(a.linearWebhookSetup.manualCopySecret),ap(!1)):an(null),S(null),U(!1),W(!1),at("existing"===q?s:void 0)},[at,c,s,q]);(0,h.useCallback)(async()=>{if(ag){Z("poll"),_(null);try{let a=await fetch("/api/setup/vercel-bridge-redeploy-status",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({actionId:ag})}),b=await hI(a,"POST /api/setup/vercel-bridge-redeploy-status");if(!a.ok)throw Error(b.error??"Redeploy status check failed");let c=b.apply;await ax(c,b.summary),(c.verified&&c.signedProbeVerified||!c.setupPending&&(c.setupBlocked||"failed"===c.productionRedeployStatus||"timeout"===c.productionRedeployStatus||"no_source_deployment"===c.productionRedeployStatus))&&(aj(!1),ah(null))}catch(a){_(a instanceof Error?a.message:"Redeploy status check failed"),aj(!1)}finally{Z(null)}}},[ax,ag]);let ay=(0,h.useCallback)(async()=>{let a=await fetch("/api/setup/preview-vercel-bridge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(aw())}),b=await a.json();if(!a.ok)throw Error(b.error??"Preview failed");return S(b),U(!0),b},[aw]),az=(0,h.useCallback)(async()=>{if(!aq){Z("preview"),_(null),ab(null),av(),W(!1);try{await ay()}catch(a){S(null),U(!1),ab(a instanceof Error?a.message:"Preview failed")}finally{Z(null)}}},[av,aq,ay]),aA=async a=>{if((!aq||a?.verifyOnly)&&(V||a?.verifyOnly)){Z("apply"),_(null),a?.verifyOnly||av();try{let b=as&&R?R:await ay();if(b.validationError)throw Error(b.validationError);let c=await fetch("/api/setup/apply-vercel-bridge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({plan:aw(),confirmed:!0,fingerprint:b.fingerprint,verifyOnly:a?.verifyOnly===!0})}),d=await hI(c,"POST /api/setup/apply-vercel-bridge");if(!c.ok)throw Error(d.error??"Apply failed");await ax(d.apply,d.summary)}catch(a){_(a instanceof Error?a.message:"Apply failed")}finally{Z(null)}}},aB="existing"===q?!!G&&("existing"===y?!!A:!!C):!!(w&&G)&&("existing"===y?!!A:!!C),aC=ak&&ac?.signedProbeVerified===!0||i.readiness.ready;return(0,g.jsx)(Y,{title:`Step 3 of 7 \xb7 Configure Vercel settings`,description:"Choose the Vercel team and project this setup should use for automation and preview checks. Env var presence alone is not enough; the bridge must pass signed delivery verification against production.",children:(0,g.jsx)("div",{className:D.stackSm,children:i.vercelTokenConfigured?(0,g.jsxs)(g.Fragment,{children:[aq?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:hJ}):null,(0,g.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(af,{htmlFor:"vercel-team-mode",children:"Vercel team name"}),o.teamCreate?(0,g.jsxs)("select",{id:"vercel-team-mode",className:hK,value:q,onChange:a=>{aq||(r(a.target.value),av())},disabled:ar,children:[(0,g.jsx)("option",{value:"existing",children:"Use existing team"}),(0,g.jsx)("option",{value:"create",children:"Create new team"})]}):null,"existing"===q?(0,g.jsx)("select",{id:"vercel-team-name",className:hK,value:s,onChange:a=>{aq||(t(a.target.value),B(""),av(),at(a.target.value))},disabled:ar||P,children:k.map(a=>(0,g.jsx)("option",{value:a.id,children:a.label},a.id||"personal"))}):(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(ae,{placeholder:"Team name",value:u,onChange:a=>{aq||(v(a.target.value),av())},disabled:ar}),(0,g.jsx)(ae,{placeholder:"Team slug",value:w,onChange:a=>{aq||(x(a.target.value),av())},disabled:ar})]})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(af,{htmlFor:"vercel-project-mode",children:"Vercel project"}),o.projectCreate?(0,g.jsxs)("select",{id:"vercel-project-mode",className:hK,value:y,onChange:a=>{aq||(z(a.target.value),av())},disabled:ar,children:[(0,g.jsx)("option",{value:"existing",children:"Use existing project"}),(0,g.jsx)("option",{value:"create",children:"Create new project"})]}):null,"existing"===y?(0,g.jsxs)("select",{id:"vercel-project-id",className:hK,value:A,onChange:a=>{aq||(B(a.target.value),av())},disabled:ar||P||0===m.length,children:[(0,g.jsx)("option",{value:"",children:"Select a project…"}),m.map(a=>(0,g.jsx)("option",{value:a.id,children:a.name},a.id))]}):(0,g.jsx)(ae,{placeholder:"Project name",value:C,onChange:a=>{aq||(E(a.target.value),av())},disabled:ar})]})]}),P?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading Vercel teams and projects…"}):null,N?(0,g.jsx)("p",{className:"text-sm text-destructive",children:N}):null,I?(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(af,{htmlFor:"github-dispatch-token",children:"GITHUB_DISPATCH_TOKEN override"}),(0,g.jsx)(ae,{id:"github-dispatch-token",type:"password",value:L,onChange:a=>{aq||(M(a.target.value),av())},disabled:ar})]}):null,(0,g.jsxs)("div",{className:F.actions,children:[(0,g.jsx)(K.$,{type:"button",variant:"outline",onClick:()=>void az(),disabled:ar||!aB,children:"preview"===X?"Previewing…":"Preview Vercel settings"}),(0,g.jsx)(K.$,{type:"button",variant:"ghost",onClick:()=>void au(),disabled:ar,children:"Refresh"})]}),as&&R?(0,g.jsxs)("div",{className:"rounded-md border border-border bg-muted/10 p-3 text-sm space-y-2",children:[(0,g.jsxs)("p",{children:["Webhook URL: ",R.webhookUrl??"unknown"]}),(0,g.jsxs)("p",{children:["Endpoint reachable:"," ",R.endpointReachable?"yes":"no"]}),(0,g.jsxs)("p",{children:["GitHub dispatch source: ",R.githubDispatchSource??"unknown"]}),(0,g.jsxs)("p",{children:["Linear webhook secret mode:"," ",R.linearWebhookSecretMode??"unknown"]}),(0,g.jsx)("p",{className:"text-muted-foreground",children:"Preview does not run signed verification. Apply writes the webhook secret and runs a signed production probe after env setup."}),(0,g.jsxs)("p",{children:["Signed probe verified:"," ",R.signedProbeVerified?"yes":"no (runs on apply)"]}),"ready"!==R.deploymentStatus?(0,g.jsxs)("p",{className:"text-amber-700 dark:text-amber-400",children:["Deployment status: ",R.deploymentStatus]}):null,R.manualSteps.length>0?(0,g.jsx)("ul",{className:"list-disc pl-5 text-muted-foreground",children:R.manualSteps.map(a=>(0,g.jsx)("li",{children:a},a))}):null,aa?(0,g.jsx)("p",{className:"text-destructive",children:aa}):null]}):null,(0,g.jsx)(ht,{scope:"vercel-bridge-write",variant:"guided",confirmed:V,disabled:ar||!aB,disabledReason:aq?hJ:aB?"create"===q?"This will create provider resources in Vercel when you apply.":void 0:"Select or enter the Vercel team and project before confirming.",onConfirmedChange:a=>{aq||W(a)}}),ak?null:(0,g.jsxs)("div",{className:F.actions,children:[(0,g.jsx)(K.$,{type:"button",onClick:()=>void aA(),disabled:ar||!V||!aB||!!R?.validationError,children:"apply"===X?"Applying Vercel settings…":"poll"===X?"Waiting for production redeploy…":"Apply Vercel Settings"}),aq||!ac||ac.setupPending||ac.verified&&ac.signedProbeVerified||!ac.setupBlocked&&(!ac.deploymentRedeployRequired||ac.signedProbeVerified)&&(!ac.productionRedeployTriggered||"ready"!==ac.productionRedeployStatus||ac.signedProbeVerified)?null:(0,g.jsx)(K.$,{type:"button",variant:"outline",onClick:()=>void aA({verifyOnly:!0}),disabled:null!==X||!aB,children:"apply"===X?"Verifying…":"Retry verification"})]}),ac?.orchestrationSteps?.length||ai?(0,g.jsxs)("ul",{className:"list-disc pl-5 text-sm text-muted-foreground",children:[ac?.orchestrationSteps?.map(a=>(0,g.jsxs)("li",{children:[a.message,"failed"===a.status?" (failed)":""]},`${a.phase}-${a.status}`)),ai?(0,g.jsx)("li",{children:"poll"===X?"Checking Vercel deployment status…":"Waiting for Vercel deployment READY…"}):null]}):null,$?(0,g.jsx)(aX,{success:!1,message:$}):null,ac?(0,g.jsx)(aX,{success:ac.verified,message:function(a){if("deployment-required"===a.status)return`${a.deploymentRequired?.message??"Deployment required."} ${a.deploymentRequired?.nextSteps.join(" ")??""}`;let b=[`Vercel team: ${a.team?.outcome??"unchanged"} ${a.team?.name??""}.`,`Vercel project: ${a.project?.outcome??"unchanged"} ${a.project?.name??a.projectName}.`,`Env vars written: ${a.writtenEnvKeys.join(", ")||"none"}.`,`Linear webhook setup: ${a.linearWebhookSetup.mode}.`,`Signed probe: ${a.signedProbeVerified?"passed":"failed"}${a.signedProbeReason?` (${a.signedProbeReason})`:""}.`];return a.productionRedeployTriggered&&b.push(`Production redeploy: ${a.productionRedeployStatus??"unknown"}.`),a.setupBlocked?(b.push(a.setupBlocked.message),a.setupBlocked.nextSteps.length>0&&b.push(a.setupBlocked.nextSteps.join(" "))):!a.deploymentRedeployRequired||a.signedProbeVerified||a.productionRedeployTriggered||b.push("Redeploy production in Vercel, then use Retry verification (this will not rotate secrets or rewrite env vars)."),b.join(" ")}(ac)}):null,am?(0,g.jsxs)("div",{className:"rounded-md border border-amber-500/40 bg-amber-500/5 p-3 text-sm space-y-2",children:[(0,g.jsx)("p",{className:"font-medium",children:"Manual Linear webhook secret (one-time)"}),(0,g.jsx)("p",{className:"text-muted-foreground",children:"Copy this secret into the Linear webhook signing secret field. Manual acknowledgement does not verify the bridge; signed delivery verification must pass after you apply again."}),(0,g.jsx)(ae,{readOnly:!0,value:am}),(0,g.jsxs)("label",{className:"flex items-center gap-2",children:[(0,g.jsx)("input",{type:"checkbox",checked:ao,onChange:a=>ap(a.target.checked)}),"I copied the webhook secret into Linear."]}),ac?.linearWebhookSetup.manualSteps.length?(0,g.jsx)("ul",{className:"list-disc pl-5 text-muted-foreground",children:ac.linearWebhookSetup.manualSteps.map(a=>(0,g.jsx)("li",{children:a},a))}):null]}):null,aC?(0,g.jsx)(K.$,{type:"button",onClick:e,children:"Continue to target repo setup"}):null]}):(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Add VERCEL_TOKEN in Step 1 before configuring Vercel settings."})})})}function hM({readiness:a,onContinue:b}){let[c,d]=(0,h.useState)([]),[e,f]=(0,h.useState)(!0),[i,j]=(0,h.useState)(null),[k,l]=(0,h.useState)(!1),m=(0,h.useCallback)(async()=>{f(!0),j(null),l(!1),d([]);try{let a=await fetch("/api/setup/local-readiness"),b=await a.json();if(!a.ok)throw Error(b.error??"Local readiness check failed");let c=b.checks;d(c.map(a=>({id:a.id,label:a.label,status:"checking"}))),await new Promise(a=>setTimeout(a,0)),d(c.map(a=>({id:a.id,label:a.label,status:"passed"===a.status?"passed":"failed",detail:a.detail,action:a.action}))),l(!!b.allPassed)}catch(a){j(a instanceof Error?a.message:"Could not run local readiness checks"),d([])}finally{f(!1)}},[]),n=k&&!e&&!a.localReadinessReviewed;return(0,g.jsx)(Y,{title:`Step 5 of 7 \xb7 Check local readiness`,description:"We're checking whether this machine is ready for remote setup.",children:(0,g.jsxs)("div",{className:D.stackSm,children:[e&&0===c.length?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Running local readiness checks…"}):null,i?(0,g.jsxs)("div",{className:D.stackSm,children:[(0,g.jsx)("p",{className:"text-sm text-destructive",children:i}),(0,g.jsx)(K.$,{type:"button",variant:"outline",onClick:()=>void m(),children:"Retry checks"})]}):null,c.length>0?(0,g.jsx)(hC,{checks:c}):null,k&&!e?(0,g.jsx)("p",{className:"text-sm font-medium text-emerald-700",children:"Local readiness passed."}):null,n?(0,g.jsx)(K.$,{type:"button",onClick:b,children:"Continue to cloud secrets"}):null]})})}function hN(a){return a.current+=1,a.current}function hO(a,b){return b===a.current}function hP({open:a,onOpenChange:b,isLoading:c,previewError:d,preview:e,previewIsCurrent:f}){return(0,g.jsxs)("details",{open:a,className:"rounded-md border border-border bg-background p-3",children:[(0,g.jsx)("summary",{className:"cursor-pointer text-sm font-medium",onClick:c=>{c.preventDefault(),b(!a)},children:"Review generated secrets (optional)"}),(0,g.jsx)("div",{className:"mt-3 space-y-3",children:c?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Generating redacted cloud secrets preview…"}),(0,g.jsxs)("div",{className:"space-y-2","aria-hidden":"true",children:[(0,g.jsx)(aV,{className:"h-4 w-[60%]"}),(0,g.jsx)(aV,{className:"h-24 w-full"})]})]}):d?(0,g.jsx)("p",{className:"text-sm text-destructive",children:d}):(0,g.jsx)(hr,{harnessSecretPreview:f?e:void 0})})]})}function hQ(a){let b=k(a.harnessSecretStatuses);if(b.allPresent)return"All required GitHub Actions secrets are present in the harness repo.";let c=[];return b.missing.length>0&&c.push(`Missing: ${b.missing.join(", ")}`),b.unknown.length>0&&c.push(`Unknown: ${b.unknown.join(", ")}`),c.join(". ")}function hR({blocker:a}){return(0,g.jsxs)("div",{className:"space-y-2 rounded-md border border-destructive/30 bg-destructive/5 p-4",children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:a.message}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:a.action})]})}async function hS(a){if("undefined"!=typeof navigator&&navigator.clipboard?.writeText)return void await navigator.clipboard.writeText(a);throw Error("Clipboard is not available in this browser.")}function hT({readiness:a,setupSummary:b,controlPlaneContext:c,remoteSecretPreviewStale:d=!1,cloudSecretsApplyEvidence:e,initialSummary:f,onSummaryUpdated:i,onUiStateChange:k,onContinue:l,blockedByUpstream:m=!1,onGoToHarnessRepo:o,onGoToConnectServices:p}){let[q,r]=(0,h.useState)(f),[s,t]=(0,h.useState)(null),[y,A]=(0,h.useState)(!1),[B,C]=(0,h.useState)(null),[E,G]=(0,h.useState)(!1),[H,I]=(0,h.useState)(!1),[J,L]=(0,h.useState)(!1),[M,N]=(0,h.useState)(null),[O,P]=(0,h.useState)(null),[Q,R]=(0,h.useState)(null),[S,T]=(0,h.useState)(null),[U,V]=(0,h.useState)(!1),[W,X]=(0,h.useState)(!1),[Z,$]=(0,h.useState)(!1),[_,aa]=(0,h.useState)(null),[ab,ac]=(0,h.useState)(!1),[ad,ae]=(0,h.useState)(null),[ag,ah]=(0,h.useState)(null),[ai,aj]=(0,h.useState)(null),[ak,al]=(0,h.useState)(null),am=(0,h.useRef)({current:0});(0,h.useRef)(!1);let an=(0,h.useMemo)(()=>n({setupSummary:b,controlPlaneContext:c}),[b,c]),ao=(0,h.useCallback)((a,b)=>{var c,d;hO((d=c={tracker:am.current,revision:b,summary:a,install:a=>{r(a),i?.(a)}}).tracker,d.revision)&&c.install(c.summary)},[i]),ap=(0,h.useCallback)(async(a="manual")=>{let b=hN(am.current);N("mount"===a?"mount-refresh":"refresh"),"mount"===a?al(null):P(null);try{let a=await fetch("/api/setup/remote-summary"),c=await a.json();if(!a.ok)throw Error(c.error??"Remote summary refresh failed");if(!hO(am.current,b))return null;return ao(c,b),c}catch(d){if(!hO(am.current,b))return null;let c=d instanceof Error?d.message:"Remote summary refresh failed";return"mount"===a?al(c):P(c),null}finally{hO(am.current,b)&&N(null)}},[ao]),aq=null!==B&&E,ar=(0,h.useMemo)(()=>q.githubTokenConfigured?q.harnessDispatchRepoResolved?"denied"===q.harnessRepoAccess?{allowed:!1,reason:`Blocked: GitHub denied access to ${q.harnessDispatchRepo}.`,action:"Return to Step 4 to correct the harness repo, or update GITHUB_TOKEN permissions in Step 1 and verify again.",route:"step4-harness-repo"}:"available"!==q.harnessRepoAccess?{allowed:!1,reason:"Blocked: Harness repo access could not be verified yet.",action:"Return to Step 4 and use Verify and use harness repo, then refresh cloud secrets setup.",route:"step4-harness-repo"}:{allowed:!0}:{allowed:!1,reason:"Blocked: Harness dispatch repo could not be resolved.",action:"Return to Step 4, enter your harness repo, and use Verify and use harness repo.",route:"step4-harness-repo"}:{allowed:!1,reason:"Blocked: GITHUB_TOKEN is required for cloud secrets setup.",action:"Add GITHUB_TOKEN in Step 1, then return to cloud secrets setup.",route:"connect-services"},[q]),as=m||!ar.allowed,at=m?"Fix harness repo access in local setup before cloud secrets can be configured.":ar.reason,au=m?"Return to Step 4 and verify your harness repo, then refresh.":ar.action,av=q.harnessSecretStatuses.some(a=>"missing"===a.status),aw=(0,h.useMemo)(()=>(function(a){var b;let c=(b=a?.harnessRepo,b?.trim()||"<harness-dispatch-repo>");return{summary:`Manual GitHub Actions secret setup for ${c}.`,steps:[`Open GitHub repository settings for ${c}.`,"Navigate to Settings → Secrets and variables → Actions.","Create or update these secret names: HARNESS_CONFIG_JSON_B64, LINEAR_API_KEY, CURSOR_API_KEY, HARNESS_GITHUB_TOKEN.","Set HARNESS_CONFIG_JSON_B64 from the base64-encoded full private harness config.","Set LINEAR_API_KEY, CURSOR_API_KEY, and HARNESS_GITHUB_TOKEN from your operator credentials.","Never print secret values in logs, docs, PR comments, or generated setup previews."]}})({harnessRepo:q.harnessDispatchRepo}).steps,[q.harnessDispatchRepo]),ax=(0,h.useCallback)(()=>{C(null),G(!1),R(null),T(null),V(!1),L(!1),I(!1),P(null)},[]),ay=(0,h.useCallback)(()=>{aa(null),ac(!1),ae(null),ah(null),X(!1),aj(null)},[]),az=(0,h.useCallback)(a=>{t(a),"automatic"===a?ay():ax()},[ax,ay]),aA=(0,h.useCallback)(()=>{aa(null),ac(!1),ae(null),aj(null)},[]),aB=(0,h.useCallback)((a,b)=>{A(!0),k?.({remoteSecretPreviewStale:!1}),"automatic"===a?(V(!0),b&&k?.({remoteSecretPreviewStale:!1,cloudSecretsApplyEvidence:b})):X(!0)},[k]),aC=(0,h.useCallback)(async()=>{let a=await fetch("/api/setup/preview-harness-secrets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})}),b=await a.json();if(!a.ok)throw Error(b.error??"Preview failed");return C(b),G(!0),b},[]),aD=(0,h.useCallback)(async()=>{N("preview"),P(null),R(null),T(null),V(!1),L(!1);try{await aC()}catch(a){C(null),G(!1),R(a instanceof Error?a.message:"Preview failed")}finally{N(null)}},[aC]),aE=(0,h.useCallback)(a=>{as||(I(a),a&&!aq&&"preview"!==M&&aD())},[aD,M,aq,as]),aF=async()=>{if(!J||as||"apply"===M)return;let a=hN(am.current);N("apply"),P(null),V(!1);try{let b=aq&&B?B:await aC();if(b.validationError)throw Error(b.validationError);let c=await fetch("/api/setup/apply-harness-secrets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({confirmed:!0,fingerprint:b.fingerprint})}),d=await c.json();if(!c.ok)throw Error(d.error??"Apply failed");if(!hO(am.current,a))return;let e=d.summary,f=d.apply,g=d.evidence;T(f),ao(e,a),C(null),G(!1),L(!1),I(!1),v(e)?aB("automatic",g):P(`Write request completed, but verification failed: ${hQ(e)}. Refresh or retry.`)}catch(b){if(!hO(am.current,a))return;P(b instanceof Error?b.message:"Apply failed")}finally{hO(am.current,a)&&N(null)}},aG=async()=>{if(!as){if(!Z)return void ae("Confirm the sensitivity warning before generating manual copy values.");N("manual-values"),ae(null),aj(null);try{let a=await fetch("/api/setup/manual-harness-secret-values",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({confirmedSensitiveReveal:!0})}),b=await a.json();if(!a.ok)throw Error(b.error??"Manual value generation failed");aa(b),ac(!1),b.missing.length>0&&ae(`Some values are unavailable locally: ${b.missing.join(", ")}`)}catch(a){aA(),ae(a instanceof Error?a.message:"Manual value generation failed")}finally{N(null)}}},aH=async()=>{if(!as){N("manual-verify"),ah(null),X(!1);try{let a=await ap("manual");if(!a)return;v(a)?(aB("manual"),ah(hQ(a)),aA()):ah(hQ(a))}finally{N(null)}}},aI=async(a,b)=>{if(!b)return void aj(`${a} is not available to copy.`);try{await hS(b),aj(`Copied ${a} to clipboard.`)}catch(b){aj(b instanceof Error?b.message:`Could not copy ${a}.`)}},aJ=(0,h.useMemo)(()=>(function(a){var b;let c=v(a.summary),d=a.previewStaleCleared??!1,e={...a.uiState,remoteSecretPreviewStale:!d&&a.uiState?.remoteSecretPreviewStale},f=z({blockers:u(a.setupSummary,a.summary,e,a.staleSmokeDiagnostics,a.controlPlaneContext).blockers,evidence:(b={postApplyVerificationReady:c,previewStaleCleared:d,evidence:a.uiState?.cloudSecretsApplyEvidence,currentConfigStateFingerprint:n({setupSummary:a.setupSummary,controlPlaneContext:a.controlPlaneContext})}).evidence,currentConfigStateFingerprint:b.currentConfigStateFingerprint,previewStaleCleared:b.previewStaleCleared,postApplyVerificationReady:b.postApplyVerificationReady});return{canContinue:c&&a.localReadinessComplete&&0===f.length,postApplyVerificationReady:c,blockers:f}})({summary:q,setupSummary:b,localReadinessComplete:a.localReadinessComplete,uiState:{remoteSecretPreviewStale:d,cloudSecretsApplyEvidence:e},staleSmokeDiagnostics:a.staleSmokeDiagnostics,controlPlaneContext:c,previewStaleCleared:y}),[q,b,a.localReadinessComplete,a.staleSmokeDiagnostics,d,e,c,y]),aK=x({evidence:e,currentConfigStateFingerprint:an,harnessDispatchRepo:q.harnessDispatchRepo}),aL=function(a){if("automatic"!==a.setupType||"apply"===a.loading)return{kind:"idle"};if(a.applyError)return{kind:"apply-failed",message:a.applyError,showRetry:!0};let b=x({evidence:a.cloudSecretsApplyEvidence,currentConfigStateFingerprint:a.currentConfigStateFingerprint,harnessDispatchRepo:a.harnessDispatchRepo});return a.verifiedAutomaticSuccess||a.applyResult&&b?a.cloudSecretsApplyEvidence&&w({evidence:a.cloudSecretsApplyEvidence,currentConfigStateFingerprint:a.currentConfigStateFingerprint,harnessDispatchRepo:a.harnessDispatchRepo})?{kind:"stale-after-apply",message:"Local or control-plane config changed after the last automatic secret write. Preview and apply again to refresh HARNESS_CONFIG_JSON_B64.",showRetry:!0,primaryBlocker:a.eligibility.blockers.find(a=>"cloud-secrets-stale-linear-config"===a.id)}:a.eligibility.postApplyVerificationReady?a.eligibility.canContinue?{kind:"success",message:"Encrypted GitHub Actions secrets were created or updated successfully.",canContinue:!0}:{kind:"success-blocked",message:"Automatic secret write succeeded, but Step 6 is not ready to continue yet.",primaryBlocker:a.eligibility.blockers[0],showRefresh:!0,showRetry:!0}:{kind:"verification-inconclusive",message:"Write request completed, but remote secret verification is not ready yet. Refresh or retry.",showRefresh:!0,showRetry:!0}:{kind:"idle"}}({setupType:s,loading:M,applyError:O,applyResult:S,verifiedAutomaticSuccess:U,cloudSecretsApplyEvidence:e,eligibility:aJ,currentConfigStateFingerprint:an,harnessDispatchRepo:q.harnessDispatchRepo}),aM=as?at:B?.validationError?"Fix validation errors before confirming this write.":void 0,aN=aM??(J?"success"===aL.kind?"Automatic secret write already verified for the current config.":void 0:"Confirm the GitHub Actions secret write before applying."),aO=("automatic"===s&&(U||aK)||"manual"===s&&W)&&aJ.canContinue&&!a.cloudSecretsReviewed&&!M&&!as,aP=W&&null!==ag&&aJ.canContinue,aQ=W&&null!==ag&&!aJ.canContinue,aR=aJ.blockers[0],aS=null!==M||!J||!!B?.validationError||as||"success"===aL.kind;return(0,g.jsx)(Y,{title:`Step 6 of 7 \u00b7 Connect cloud secrets`,description:"Your local setup is ready. Choose automatic GitHub Actions secret setup or manual setup in GitHub, then verify before continuing.",children:(0,g.jsxs)("div",{className:D.stackSm,children:["mount-refresh"===M?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Refreshing harness repo and secret status…"}):null,ak?(0,g.jsxs)("div",{className:"space-y-2 rounded-md border border-destructive/30 bg-destructive/5 p-4",children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:ak}),(0,g.jsx)(K.$,{type:"button",variant:"outline",onClick:()=>void ap("mount"),disabled:null!==M,children:"Retry refresh"})]}):null,as?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("div",{className:"space-y-2 rounded-md border border-destructive/30 bg-destructive/5 p-4",children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:at}),au?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:au}):null]}),(0,g.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:["step4-harness-repo"===ar.route&&o?(0,g.jsx)(K.$,{type:"button",onClick:o,children:"Go to Step 4 harness repo"}):null,"connect-services"===ar.route&&p?(0,g.jsx)(K.$,{type:"button",onClick:p,children:"Go to Step 1 services"}):null,(0,g.jsx)(K.$,{type:"button",variant:"outline",onClick:()=>void ap("manual"),disabled:null!==M,children:"refresh"===M?"Refreshing…":"Refresh"})]})]}):(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("fieldset",{className:"space-y-3",children:[(0,g.jsx)("legend",{className:"text-sm font-medium",children:"Setup type"}),(0,g.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:gap-6",children:[(0,g.jsxs)("div",{className:"flex items-center gap-3",children:[(0,g.jsx)(aT,{id:"setup-type-automatic",type:"radio",name:"cloud-secrets-setup-type",checked:"automatic"===s,onChange:()=>az("automatic")}),(0,g.jsx)(af,{htmlFor:"setup-type-automatic",className:"text-sm",children:"Automatic setup"})]}),(0,g.jsxs)("div",{className:"flex items-center gap-3",children:[(0,g.jsx)(aT,{id:"setup-type-manual",type:"radio",name:"cloud-secrets-setup-type",checked:"manual"===s,onChange:()=>az("manual")}),(0,g.jsx)(af,{htmlFor:"setup-type-manual",className:"text-sm",children:"Manual setup"})]})]})]}),"automatic"===s?(0,g.jsxs)("div",{className:"rounded-md border border-border bg-muted/10 p-4 space-y-4",children:[(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:"Automatic setup"}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Write encrypted GitHub Actions secrets to the harness repo through the GitHub API. Preview is optional; preflight runs before apply when you skip preview."})]}),(0,g.jsx)(hP,{open:H,onOpenChange:aE,isLoading:"preview"===M,previewError:Q??void 0,preview:B??void 0,previewIsCurrent:aq}),(0,g.jsx)(ht,{scope:"remote-secret-write",variant:"guided",confirmed:J,disabled:as||!!B?.validationError,disabledReason:aM,onConfirmedChange:L}),(0,g.jsxs)("div",{className:F.actions,children:[(0,g.jsx)(K.$,{type:"button",onClick:()=>void aF(),disabled:aS,variant:"success"===aL.kind?"outline":"default",children:"apply"===M?"Writing secrets…":av?"Create encrypted GitHub Actions secrets":"Update encrypted GitHub Actions secrets"}),aL.showRefresh?(0,g.jsx)(K.$,{type:"button",variant:"outline",onClick:()=>void ap("manual"),disabled:null!==M,children:"refresh"===M?"Refreshing…":"Refresh"}):null,aL.showRetry?(0,g.jsx)(K.$,{type:"button",variant:"outline",onClick:()=>void aD(),disabled:null!==M,children:"preview"===M?"Refreshing preview…":"Preview again"}):null]}),aN&&!as?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:aN}):null]}):null,"manual"===s?(0,g.jsxs)("div",{className:"rounded-md border border-border bg-background p-4 space-y-4",children:[(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:"Manual setup"}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Create or update the required GitHub Actions secrets yourself in the harness repo, then run verify-only checks here."})]}),(0,g.jsx)("ul",{className:"list-disc space-y-1 pl-5 text-sm text-muted-foreground",children:aw.map(a=>(0,g.jsx)("li",{children:a},a))}),(0,g.jsxs)("div",{className:"rounded-md border border-destructive/30 bg-destructive/5 p-3 space-y-3",children:[(0,g.jsx)("p",{className:"text-sm font-medium text-destructive",children:"Sensitive values warning"}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Manual copy values are secret. Do not paste them into logs, PRs, issues, screenshots, chat, or saved notes."}),(0,g.jsxs)("div",{className:"flex items-start gap-3",children:[(0,g.jsx)(aT,{id:"manual-values-warning",checked:Z,onChange:a=>$(a.target.checked)}),(0,g.jsx)(af,{htmlFor:"manual-values-warning",className:"text-sm leading-snug",children:"I understand these values are sensitive and will handle them carefully."})]})]}),(0,g.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,g.jsx)(K.$,{type:"button",variant:"outline",onClick:()=>void aG(),disabled:null!==M||!Z,children:"manual-values"===M?"Generating manual copy values…":"Generate manual copy values"}),_?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(K.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>ac(a=>!a),children:ab?"Hide values":"Show values"}),(0,g.jsx)(K.$,{type:"button",variant:"ghost",size:"sm",onClick:aA,children:"Clear values"})]}):null]}),ad?(0,g.jsx)("p",{className:"text-sm text-destructive",children:ad}):null,ai?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:ai}):null,_?(0,g.jsx)("div",{className:"space-y-3",children:j.map(a=>{let b=_.values[a];return(0,g.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 rounded-md border border-border p-3",children:[(0,g.jsxs)("div",{children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:a}),ab&&b?(0,g.jsx)("p",{className:"mt-1 break-all font-mono text-xs text-muted-foreground",children:b}):(0,g.jsx)("p",{className:"text-xs text-muted-foreground",children:b?"Value ready to copy.":"Value unavailable locally."})]}),(0,g.jsx)(K.$,{type:"button",variant:"outline",size:"sm",disabled:!b,onClick:()=>void aI(a,b),children:"Copy value"})]},a)})}):null,(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"GitHub does not allow secret values to be read back. Verify-only confirms required secret names exist and the harness repo is reachable; it cannot prove the values match your local config or keys."}),(0,g.jsx)("div",{className:F.actions,children:(0,g.jsx)(K.$,{type:"button",variant:"outline",onClick:()=>void aH(),disabled:null!==M,children:"manual-verify"===M?"Verifying manual setup…":"Verify manual setup"})}),ag&&!W?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:ag}):null]}):null,"apply-failed"===aL.kind||"verification-inconclusive"===aL.kind?(0,g.jsx)(aX,{success:!1,message:aL.message??"Automatic apply failed."}):null,"success"===aL.kind?(0,g.jsx)(aX,{success:!0,message:aL.message??"Automatic apply succeeded."}):null,"stale-after-apply"===aL.kind?(0,g.jsx)(aX,{success:!1,message:aL.message??"Config changed after apply."}):null,"success-blocked"===aL.kind&&aL.primaryBlocker?(0,g.jsx)(hR,{blocker:aL.primaryBlocker}):null,aP?(0,g.jsx)(aX,{success:!0,message:ag}):null,aQ&&aR?(0,g.jsx)(hR,{blocker:aR}):null,aO?(0,g.jsx)(K.$,{type:"button",onClick:l,children:"Continue to target workflow"}):null]})]})})}function hU({finalization:a,onRetry:b,retrying:c=!1}){var d;let e="blocked"===a.lifecycle,f="complete"===a.lifecycle;return(0,g.jsxs)("div",{className:"rounded-md border border-border bg-muted/20 p-4 space-y-3",children:[(0,g.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:(0,g.jsx)(P,{label:function(a){switch(a){case"preparing":return"Creating workflow install";case"pr-created":case"pr-updated":return"Workflow install PR ready";case"waiting-for-checks":return"Waiting for checks";case"updating-branch":return"Updating install branch";case"merging":return"Merging automatically";case"verifying":return"Verifying workflow";case"complete":return"Workflow installed";case"blocked":return"Workflow install blocked";default:return"Finalizing workflow install"}}(a.lifecycle),variant:"complete"===(d=a.lifecycle)?"success":"blocked"===d?"destructive":"waiting-for-checks"===d||"verifying"===d?"warning":"secondary"})}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:a.message}),e?(0,g.jsxs)("div",{className:"flex flex-wrap gap-2",children:[a.canRetry&&b?(0,g.jsx)(K.$,{type:"button",onClick:b,disabled:c,children:c?"Retrying…":"Retry finalization"}):null,a.requiresGitHubIntervention&&a.prUrl?(0,g.jsx)(K.$,{asChild:!0,variant:"outline",children:(0,g.jsx)("a",{href:a.prUrl,target:"_blank",rel:"noopener noreferrer",children:"Open GitHub details"})}):null]}):null,e||f||!a.prUrl?null:(0,g.jsxs)("details",{className:"text-xs text-muted-foreground",children:[(0,g.jsx)("summary",{className:"cursor-pointer",children:"Advanced details"}),(0,g.jsxs)("p",{className:"mt-2 break-all",children:["Install PR: ",a.prUrl]})]})]})}function hV({repoConfigId:a}){return(0,g.jsxs)("div",{className:"rounded-md border border-border bg-muted/20 p-4 space-y-2",children:[(0,g.jsx)(P,{label:"Workflow ready",variant:"success"}),(0,g.jsxs)("p",{className:"text-sm text-muted-foreground",children:[a," has the expected harness workflow on its production branch."]})]})}function hW(a){return"pr-created"===a.outcome||"pr-updated"===a.outcome||"branch-updated"===a.outcome}function hX(a){return!!a&&"complete"!==a.lifecycle&&("blocked"!==a.lifecycle||!!a.canRetry)}function hY(a){return a?.lifecycle==="complete"||a?.lifecycle==="blocked"&&!a.canRetry}function hZ({initialSummary:a,onSummaryUpdated:b,onWorkflowSetupComplete:c,onWorkflowAwaitingMergeChange:d,pendingInstallByRepo:e={},finalizationByRepo:f={},onPendingInstallChange:i,onFinalizationChange:j,blockedByUpstream:k=!1}){let[l,m]=(0,h.useState)(a),[n,o]=(0,h.useState)(f),p=(0,h.useRef)(0),q=(0,h.useCallback)(async()=>{let a=await fetch("/api/setup/remote-summary"),c=await a.json();if(!a.ok)throw Error(c.error??"Remote summary refresh failed");return m(c),b?.(c),c},[b]),r=(0,h.useCallback)(async(a,f)=>{let g=l.targetRepos.find(b=>b.repoConfigId===a);if(!g)return;let h=await fetch("/api/setup/finalize-target-workflow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoConfigId:g.repoConfigId,targetRepo:g.targetRepo,productionBranch:g.productionBranch,prUrl:f?.prUrl,branchName:f?.branchName})}),k=await h.json();if(!h.ok)throw Error(k.error??"Workflow finalization failed");let n=k.finalization,p=k.summary;if(o(b=>{let c=b[a];if(c&&hY(c)&&!hY(n))return b;let d={...b,[a]:n};return j?.(d),d}),m(p),b?.(p),"complete"===n.lifecycle){let b={...e};delete b[a],i?.(b)}return p.targetRepos.length>0&&p.targetRepos.every(a=>"present"===a.workflowStatus)&&(i?.({}),d?.(!1),c?.()),n},[j,i,b,d,c,e,l.targetRepos]),s=(0,h.useCallback)((a,b)=>{let c=p.current+1;p.current=c,(async()=>{for(;p.current===c;){try{let c=await r(a,b);if(!hX(c))break}catch{break}await new Promise(a=>setTimeout(a,2e3))}})()},[r]),t=(0,h.useCallback)(async(a,b,c)=>{let d={...e};if("already-installed"===b.outcome){delete d[a],i?.(d),await q();return}if(hW(b)&&(d[a]=b),i?.(d),c){let b={...n,[a]:c};o(b),j?.(b)}hW(b)&&s(a,b)},[n,j,i,e,q,s]),u=Object.values(n).some(a=>hX(a));return(0,g.jsx)(Y,{title:`Step 7 of 7 \xb7 Install target repo workflow`,description:u?"Installing the harness workflow automatically. Setup will continue when production verification succeeds.":"The harness will create or reuse a workflow install PR, merge it automatically when GitHub permits, and verify the production workflow.",children:(0,g.jsxs)("div",{className:D.stackSm,children:[(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Each target repo gets a deterministic install branch and PR. The harness finalizes the install automatically when checks and branch protection allow."}),0===l.targetRepos.length?(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Resolve your local harness config to show target repo workflow cards."}):(0,g.jsx)("div",{className:D.stackSm,children:l.targetRepos.map(a=>{let b=e[a.repoConfigId],c=n[a.repoConfigId],d="present"===a.workflowStatus;return(0,g.jsxs)("div",{className:"rounded-md border border-border bg-background p-4 space-y-3",children:[(0,g.jsxs)("div",{children:[(0,g.jsx)("p",{className:"text-sm font-medium",children:a.repoConfigId}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground break-all",children:a.targetRepo}),(0,g.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Status: ",function(a){switch(a){case"present":return"workflow ready";case"missing":return"workflow missing";case"differs":return"workflow outdated";default:return"workflow status unknown"}}(a.workflowStatus)]})]}),d?(0,g.jsx)(hV,{repoConfigId:a.repoConfigId}):c?(0,g.jsx)(hU,{finalization:c,onRetry:c.canRetry?()=>void r(a.repoConfigId,b):void 0}):b&&hW(b)?(0,g.jsx)(hU,{finalization:{repoConfigId:a.repoConfigId,targetRepo:a.targetRepo,targetRepoSlug:a.targetRepo,productionBranch:a.productionBranch,branchName:b.branchName,lifecycle:"preparing",message:"Starting automatic workflow install finalization.",workflowStatus:a.workflowStatus,canRetry:!1,requiresGitHubIntervention:!1,advancedThisRequest:!1,lockContended:!1}}):(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Preview and confirm to create or update the workflow install PR. Finalization runs automatically after apply."}),(0,g.jsx)(hu,{repo:a,variant:"guided",onApplied:()=>void 0,onGuidedApplySuccess:(b,c)=>void t(a.repoConfigId,b,c),blockedByUpstream:k})]})]},a.repoConfigId)})})]})})}function h$(a){return{state:{version:1,linear:a.linearSummary.controlPlane?.linear,vercel:a.vercelSummary.controlPlane?.vercel},linearTeamKeyFromConfig:a.summary.configSummary?.linearTeamKey}}function h_({initialSummary:a,initialRemoteSummary:b,initialLinearSummary:c,initialVercelSummary:d,formDefaults:e}){let[f,i]=(0,h.useState)("guided"),[j,k]=(0,h.useState)(a),[l,m]=(0,h.useState)(b),[o,p]=(0,h.useState)(c),[q,r]=(0,h.useState)(d),[s,t]=(0,h.useState)({}),u=(0,h.useMemo)(()=>h$({linearSummary:o,vercelSummary:q,summary:j}),[o,q,j]),[v,x]=(0,h.useState)(()=>(function(a){switch(a.currentStepId){case"connect-services":return"connect-services";case"linear-workspace":return"linear-workspace";case"vercel-bridge":return"vercel-bridge";case"local-setup":var b;return b=a.summary,b.localFiles.find(a=>".env.local"===a.label)?.exists&&J(a.summary),"choose-target-repos";case"local-readiness":return"local-readiness";case"cloud-secrets":return"cloud-secrets";case"target-workflow":return"target-workflow";case"ready-for-first-run":return"ready-for-first-run"}})({currentStepId:B({summary:a,remoteSummary:b,uiState:{},staleSmokeDiagnostics:b.staleSmokeDiagnostics,controlPlaneContext:h$({linearSummary:c,vercelSummary:d,summary:a})}).currentStepId,summary:a})),[y,z]=(0,h.useState)({}),[A,F]=(0,h.useState)({}),[G,L]=(0,h.useState)(!1);(0,h.useRef)(null);let M=(0,h.useMemo)(()=>B({summary:j,remoteSummary:l,uiState:s,staleSmokeDiagnostics:l.staleSmokeDiagnostics,controlPlaneContext:u}),[j,l,s,u]),N=M.staleSmokeDiagnostics.staleTargetRepos.length>0,O=!!M.staleSmokeDiagnostics.staleHarnessDispatchRepo,Q=(0,h.useMemo)(()=>{let a=e.env.suggestedHarnessDispatchRepo,b=M.staleSmokeDiagnostics.staleHarnessDispatchRepo&&a;return{harnessConfigPath:e.env.harnessConfigPath,githubDispatchRepository:b?a??"":e.env.githubDispatchRepository||a||"",savedHarnessDispatchRepository:e.env.githubDispatchRepository,suggestedHarnessDispatchRepo:a,secretPresence:{LINEAR_API_KEY:j.envKeyPresence.LINEAR_API_KEY,CURSOR_API_KEY:j.envKeyPresence.CURSOR_API_KEY,GITHUB_TOKEN:j.envKeyPresence.GITHUB_TOKEN,VERCEL_TOKEN:j.envKeyPresence.VERCEL_TOKEN}}},[e.env,M.staleSmokeDiagnostics.staleHarnessDispatchRepo,j.envKeyPresence.CURSOR_API_KEY,j.envKeyPresence.GITHUB_TOKEN,j.envKeyPresence.LINEAR_API_KEY,j.envKeyPresence.VERCEL_TOKEN]),R=(0,h.useCallback)(a=>{t(b=>b.localPreviewStale===a.localPreviewStale?b:{...b,localPreviewStale:a.localPreviewStale})},[]),S=(0,h.useCallback)(a=>{t(b=>{let c=b;if(void 0!==a.remoteSecretPreviewStale&&b.remoteSecretPreviewStale!==a.remoteSecretPreviewStale&&(c={...c,remoteSecretPreviewStale:a.remoteSecretPreviewStale}),"cloudSecretsApplyEvidence"in a){if(b.cloudSecretsApplyEvidence===a.cloudSecretsApplyEvidence)return c===b?b:c;c={...c,cloudSecretsApplyEvidence:a.cloudSecretsApplyEvidence}}return c===b?b:c})},[]),T=(0,h.useCallback)(a=>{t(b=>b.linearPreviewStale===a.linearPreviewStale?b:{...b,linearPreviewStale:a.linearPreviewStale})},[]),U=(0,h.useCallback)(a=>{t(b=>b.vercelPreviewStale===a.vercelPreviewStale?b:{...b,vercelPreviewStale:a.vercelPreviewStale})},[]),V=(0,h.useCallback)(async()=>{x("linear-workspace");try{let a=await fetch("/api/setup/linear-summary"),b=await a.json();a.ok&&p(b)}catch{}},[]),W=(0,h.useCallback)(()=>{x("vercel-bridge")},[]),X=(0,h.useCallback)(()=>{x("choose-target-repos")},[]),$=(0,h.useCallback)(()=>{t(a=>({...a,localReadinessReviewed:!0})),x("cloud-secrets")},[]),_=(0,h.useCallback)(()=>{t(a=>({...a,cloudSecretsReviewed:!0})),x("target-workflow")},[]),aa=(0,h.useCallback)(a=>{k(a),p(b=>{var c;return c=a.envKeyPresence,{...b,linearApiKeyConfigured:c.LINEAR_API_KEY}}),r(b=>{var c;return c=a.envKeyPresence,{...b,vercelTokenConfigured:c.VERCEL_TOKEN,linearApiKeyConfigured:c.LINEAR_API_KEY}}),m(b=>(function(a,b){let c=a.harnessSecretStatuses.map(a=>"present"===a.status?a:"missing"===a.status&&function(a,b){switch(b){case"LINEAR_API_KEY":return a.LINEAR_API_KEY;case"CURSOR_API_KEY":return a.CURSOR_API_KEY;case"HARNESS_GITHUB_TOKEN":return a.GITHUB_TOKEN;case"HARNESS_CONFIG_JSON_B64":return!1}}(b,a.name)?{...a,status:"unknown"}:a);return{...a,githubTokenConfigured:b.GITHUB_TOKEN,harnessSecretStatuses:c}})(b,a.envKeyPresence)),t(b=>{let c=h$({linearSummary:o,vercelSummary:q,summary:a}),d=w({evidence:b.cloudSecretsApplyEvidence,currentConfigStateFingerprint:n({setupSummary:a,controlPlaneContext:c}),harnessDispatchRepo:l.harnessDispatchRepo});return{...b,linearPreviewStale:!0,vercelPreviewStale:!0,remoteSecretPreviewStale:!0,cloudSecretsApplyEvidence:d?void 0:b.cloudSecretsApplyEvidence}})},[o,l.harnessDispatchRepo,q]),ab=(0,h.useCallback)(()=>{L(!1),z({}),F({})},[]),ac=(0,h.useCallback)(()=>{t(a=>({...a,localReadinessReviewed:!1,cloudSecretsReviewed:!1,cloudSecretsApplyEvidence:void 0,remoteSecretPreviewStale:!0,localPreviewStale:!1})),x("local-readiness")},[]);(0,h.useCallback)(a=>{x(a)},[]);let ad=(0,h.useCallback)(a=>{if("connect-services"===a||"linear-workspace"===a||"vercel-bridge"===a||"choose-target-repos"===a)return void t(b=>({...b,localReadinessReviewed:!1,cloudSecretsReviewed:!1,cloudSecretsApplyEvidence:void 0,remoteSecretPreviewStale:!0,linearPreviewStale:"connect-services"===a||"linear-workspace"===a||b.linearPreviewStale,vercelPreviewStale:"connect-services"===a||"linear-workspace"===a||"vercel-bridge"===a||b.vercelPreviewStale}));"local-readiness"===a&&t(a=>({...a,cloudSecretsReviewed:!1,cloudSecretsApplyEvidence:void 0,remoteSecretPreviewStale:!0}))},[]),ae=(0,h.useCallback)(()=>{let a=I(v);if(!a)return;let b=function(a){var b;let c=function(a){switch(a){case"connect-services":return"connect-services";case"linear-workspace":return"linear-workspace";case"vercel-bridge":return"vercel-bridge";case"local-setup":return"choose-target-repos";case"local-readiness":return"local-readiness";case"cloud-secrets":return"cloud-secrets";case"target-workflow":return"target-workflow";case"ready-for-first-run":return"ready-for-first-run"}}(a.currentStepId);return(b=a.target,H(b)-H(c)>0)?c:a.target}({target:a,currentStepId:M.currentStepId});x(b),ad(b)},[v,ad,M.currentStepId]),af="guided"===f&&null!==I(v),ag=(0,h.useRef)(null),ah=j.overview.operatorConfigResolved?"Config resolved":j.overview.configResolved?"Template config loaded":"Not configured yet",ai=j.overview.operatorConfigResolved?"success":"secondary",aj=M.readyForFirstRun?"Setup complete":G?"Finalizing workflow install":"Setup in progress";return(0,g.jsxs)("div",{className:C.sectionStack,children:[(0,g.jsxs)("section",{className:D.section,children:[(0,g.jsxs)("div",{className:D.stackSm,children:[(0,g.jsx)("h2",{className:E.pageTitle,children:"Settings / Configure"}),(0,g.jsx)("p",{className:E.pageDescription,children:"Guided first-run readiness for the Product Development Harness. Complete local setup, local readiness checks, cloud secrets, and target workflow install before your first future harness run."})]}),(0,g.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,g.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[af?(0,g.jsx)(K.$,{type:"button",variant:"ghost",size:"sm",className:"text-muted-foreground",onClick:ae,children:"Back"}):null,(0,g.jsxs)("div",{className:D.inline,children:[(0,g.jsx)(P,{label:aj,variant:M.readyForFirstRun?"success":"warning"}),"advanced"===f?(0,g.jsx)(P,{label:ah,variant:ai}):null]})]}),"guided"===f?(0,g.jsx)(K.$,{type:"button",variant:"outline",size:"sm",onClick:()=>i("advanced"),children:"Advanced checklist view"}):(0,g.jsx)(K.$,{type:"button",variant:"outline",size:"sm",onClick:()=>i("guided"),children:"Back to guided flow"})]})]}),"advanced"===f?(0,g.jsx)(Z,{readiness:M}):null,"guided"===f?(0,g.jsx)("div",{className:D.section,children:(0,g.jsx)("div",{ref:ag,children:(()=>{switch(v){case"connect-services":return(0,g.jsx)(hm,{mode:"guided",guidedStep:"connect-services",initialEnv:Q,initialConfig:e.config,onSummaryUpdated:aa,onConnectServicesComplete:V},"guided-connect-services");case"linear-workspace":return(0,g.jsx)(hH,{readiness:M,initialSummary:o,linearApiKeyConfigured:j.envKeyPresence.LINEAR_API_KEY,onSummaryUpdated:p,onUiStateChange:T,onContinue:W});case"vercel-bridge":return(0,g.jsx)(hL,{readiness:M,initialSummary:q,onSummaryUpdated:r,onUiStateChange:U,onContinue:X});case"choose-target-repos":return(0,g.jsx)(hm,{mode:"guided",guidedStep:"choose-target-repos",initialEnv:Q,initialConfig:e.config,highlightStaleDispatch:O,highlightStaleTarget:N,onSummaryUpdated:aa,onUiStateChange:R,onGuidedLocalApplySuccess:ac,localSetupFilesExist:J(j)},"guided-local-setup");case"local-readiness":return(0,g.jsx)(hM,{readiness:M,onContinue:$});case"cloud-secrets":return(0,g.jsx)(hT,{readiness:M,setupSummary:j,controlPlaneContext:u,remoteSecretPreviewStale:s.remoteSecretPreviewStale,cloudSecretsApplyEvidence:s.cloudSecretsApplyEvidence,initialSummary:l,onSummaryUpdated:m,onUiStateChange:S,onContinue:_,blockedByUpstream:M.remoteSetupBlockedByUpstream,onGoToHarnessRepo:()=>x("choose-target-repos"),onGoToConnectServices:()=>x("connect-services")});case"target-workflow":return(0,g.jsx)(hZ,{initialSummary:l,onSummaryUpdated:m,onWorkflowSetupComplete:ab,onWorkflowAwaitingMergeChange:L,pendingInstallByRepo:y,finalizationByRepo:A,onPendingInstallChange:z,onFinalizationChange:F,blockedByUpstream:M.remoteSetupBlockedByUpstream});case"ready-for-first-run":return(0,g.jsx)(Y,{title:"Setup complete",description:"Harness setup is ready for a future first run.",children:(0,g.jsxs)("div",{className:D.stackSm,children:[(0,g.jsx)(P,{label:"Setup complete",variant:"success"}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:"Your harness setup is ready. The target workflow install finished automatically when production verification succeeded. A later milestone can add a safe first-issue dry run or no-op harness validation."}),(0,g.jsx)("p",{className:"text-sm text-muted-foreground",children:M.prohibitedActionsNote})]})})}})()})}):(0,g.jsx)(hF,{summary:j,remoteSummary:l,readiness:M,formDefaults:e,onSummaryUpdated:k,onRemoteSummaryUpdated:m,onLocalUiStateChange:R,onRemoteUiStateChange:S})]})}},28010:(a,b)=>{"use strict";function c(a){let{widthInt:b,heightInt:c,blurWidth:d,blurHeight:e,blurDataURL:f,objectFit:g}=a,h=d?40*d:b,i=e?40*e:c,j=h&&i?"viewBox='0 0 "+h+" "+i+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+j+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(j?"none":"contain"===g?"xMidYMid":"cover"===g?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+f+"'/%3E%3C/svg%3E"}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getImageBlurSvg",{enumerable:!0,get:function(){return c}})},28354:a=>{"use strict";a.exports=require("util")},28783:a=>{"use strict";a.exports=import("@cursor/sdk")},29021:a=>{"use strict";a.exports=require("fs")},29056:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isLocalURL",{enumerable:!0,get:function(){return f}});let d=c(53387),e=c(94650);function f(a){if(!(0,d.isAbsoluteUrl)(a))return!0;try{let b=(0,d.getLocationOrigin)(),c=new URL(a,b);return c.origin===b&&(0,e.hasBasePath)(c.pathname)}catch(a){return!1}}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29897:(a,b,c)=>{Promise.resolve().then(c.bind(c,72921))},30858:(a,b)=>{"use strict";function c(a){let{ampFirst:b=!1,hybrid:c=!1,hasQuery:d=!1}=void 0===a?{}:a;return b||c&&d}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isInAmpMode",{enumerable:!0,get:function(){return c}})},31421:a=>{"use strict";a.exports=require("node:child_process")},33443:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(21820),g=c(55511),h=c(1667).version,i=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function j(a){console.log(`[dotenv@${h}][DEBUG] ${a}`)}function k(a){console.log(`[dotenv@${h}] ${a}`)}function l(a){return a&&a.DOTENV_KEY&&a.DOTENV_KEY.length>0?a.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function m(a){let b=null;if(a&&a.path&&a.path.length>0)if(Array.isArray(a.path))for(let c of a.path)d.existsSync(c)&&(b=c.endsWith(".vault")?c:`${c}.vault`);else b=a.path.endsWith(".vault")?a.path:`${a.path}.vault`;else b=e.resolve(process.cwd(),".env.vault");return d.existsSync(b)?b:null}function n(a){return"~"===a[0]?e.join(f.homedir(),a.slice(1)):a}let o={configDotenv:function(a){let b,c=e.resolve(process.cwd(),".env"),f="utf8",g=!!(a&&a.debug),h=!a||!("quiet"in a)||a.quiet;a&&a.encoding?f=a.encoding:g&&j("No encoding is specified. UTF-8 is used by default");let i=[c];if(a&&a.path)if(Array.isArray(a.path))for(let b of(i=[],a.path))i.push(n(b));else i=[n(a.path)];let l={};for(let c of i)try{let b=o.parse(d.readFileSync(c,{encoding:f}));o.populate(l,b,a)}catch(a){g&&j(`Failed to load ${c} ${a.message}`),b=a}let m=process.env;if(a&&null!=a.processEnv&&(m=a.processEnv),o.populate(m,l,a),g||!h){let a=Object.keys(l).length,c=[];for(let a of i)try{let b=e.relative(process.cwd(),a);c.push(b)}catch(c){g&&j(`Failed to load ${a} ${c.message}`),b=c}k(`injecting env (${a}) from ${c.join(",")}`)}return b?{parsed:l,error:b}:{parsed:l}},_configVault:function(a){let b=!!(a&&a.debug),c=!a||!("quiet"in a)||a.quiet;(b||!c)&&k("Loading env from encrypted .env.vault");let d=o._parseVault(a),e=process.env;return a&&null!=a.processEnv&&(e=a.processEnv),o.populate(e,d,a),{parsed:d}},_parseVault:function(a){let b,c=m(a=a||{});a.path=c;let d=o.configDotenv(a);if(!d.parsed){let a=Error(`MISSING_DATA: Cannot parse ${c} for an unknown reason`);throw a.code="MISSING_DATA",a}let e=l(a).split(","),f=e.length;for(let a=0;a<f;a++)try{let c=e[a].trim(),f=function(a,b){let c;try{c=new URL(b)}catch(a){if("ERR_INVALID_URL"===a.code){let a=Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw a.code="INVALID_DOTENV_KEY",a}throw a}let d=c.password;if(!d){let a=Error("INVALID_DOTENV_KEY: Missing key part");throw a.code="INVALID_DOTENV_KEY",a}let e=c.searchParams.get("environment");if(!e){let a=Error("INVALID_DOTENV_KEY: Missing environment part");throw a.code="INVALID_DOTENV_KEY",a}let f=`DOTENV_VAULT_${e.toUpperCase()}`,g=a.parsed[f];if(!g){let a=Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${f} in your .env.vault file.`);throw a.code="NOT_FOUND_DOTENV_ENVIRONMENT",a}return{ciphertext:g,key:d}}(d,c);b=o.decrypt(f.ciphertext,f.key);break}catch(b){if(a+1>=f)throw b}return o.parse(b)},config:function(a){if(0===l(a).length)return o.configDotenv(a);let b=m(a);if(!b){var c;return c=`You set DOTENV_KEY but you are missing a .env.vault file at ${b}. Did you forget to build it?`,console.log(`[dotenv@${h}][WARN] ${c}`),o.configDotenv(a)}return o._configVault(a)},decrypt:function(a,b){let c=Buffer.from(b.slice(-64),"hex"),d=Buffer.from(a,"base64"),e=d.subarray(0,12),f=d.subarray(-16);d=d.subarray(12,-16);try{let a=g.createDecipheriv("aes-256-gcm",c,e);return a.setAuthTag(f),`${a.update(d)}${a.final()}`}catch(d){let a=d instanceof RangeError,b="Invalid key length"===d.message,c="Unsupported state or unable to authenticate data"===d.message;if(a||b){let a=Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw a.code="INVALID_DOTENV_KEY",a}if(c){let a=Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw a.code="DECRYPTION_FAILED",a}throw d}},parse:function(a){let b,c={},d=a.toString();for(d=d.replace(/\r\n?/mg,"\n");null!=(b=i.exec(d));){let a=b[1],d=b[2]||"",e=(d=d.trim())[0];d=d.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),'"'===e&&(d=(d=d.replace(/\\n/g,"\n")).replace(/\\r/g,"\r")),c[a]=d}return c},populate:function(a,b,c={}){let d=!!(c&&c.debug),e=!!(c&&c.override);if("object"!=typeof b){let a=Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw a.code="OBJECT_REQUIRED",a}for(let c of Object.keys(b))Object.prototype.hasOwnProperty.call(a,c)?(!0===e&&(a[c]=b[c]),d&&(!0===e?j(`"${c}" is already defined and WAS overwritten`):j(`"${c}" is already defined and was NOT overwritten`))):a[c]=b[c]}};a.exports.configDotenv=o.configDotenv,a.exports._configVault=o._configVault,a.exports._parseVault=o._parseVault,a.exports.config=o.config,a.exports.decrypt=o.decrypt,a.exports.parse=o.parse,a.exports.populate=o.populate,a.exports=o},33873:a=>{"use strict";a.exports=require("path")},35966:a=>{"use strict";a.exports=require("@linear/sdk")},36305:(a,b,c)=>{Promise.resolve().then(c.bind(c,51337)),Promise.resolve().then(c.bind(c,64788)),Promise.resolve().then(c.t.bind(c,3498,23))},37384:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{IDLE_LINK_STATUS:function(){return i},PENDING_LINK_STATUS:function(){return h},mountFormInstance:function(){return r},mountLinkInstance:function(){return q},onLinkVisibilityChanged:function(){return t},onNavigationIntent:function(){return u},pingVisibleLinks:function(){return w},setLinkForCurrentNavigation:function(){return j},unmountLinkForCurrentNavigation:function(){return k},unmountPrefetchableInstance:function(){return s}}),c(99500);let d=c(25918),e=c(68459),f=c(31768);c(13136),c(26521);let g=null,h={pending:!0},i={pending:!1};function j(a){(0,f.startTransition)(()=>{null==g||g.setOptimisticLinkStatus(i),null==a||a.setOptimisticLinkStatus(h),g=a})}function k(a){g===a&&(g=null)}let l="function"==typeof WeakMap?new WeakMap:new Map,m=new Set,n="function"==typeof IntersectionObserver?new IntersectionObserver(function(a){for(let b of a){let a=b.intersectionRatio>0;t(b.target,a)}},{rootMargin:"200px"}):null;function o(a,b){void 0!==l.get(a)&&s(a),l.set(a,b),null!==n&&n.observe(a)}function p(a){try{return(0,d.createPrefetchURL)(a)}catch(b){return("function"==typeof reportError?reportError:console.error)("Cannot prefetch '"+a+"' because it cannot be converted to a URL."),null}}function q(a,b,c,d,e,f){if(e){let e=p(b);if(null!==e){let b={router:c,fetchStrategy:d,isVisible:!1,prefetchTask:null,prefetchHref:e.href,setOptimisticLinkStatus:f};return o(a,b),b}}return{router:c,fetchStrategy:d,isVisible:!1,prefetchTask:null,prefetchHref:null,setOptimisticLinkStatus:f}}function r(a,b,c,d){let e=p(b);null!==e&&o(a,{router:c,fetchStrategy:d,isVisible:!1,prefetchTask:null,prefetchHref:e.href,setOptimisticLinkStatus:null})}function s(a){let b=l.get(a);if(void 0!==b){l.delete(a),m.delete(b);let c=b.prefetchTask;null!==c&&(0,e.cancelPrefetchTask)(c)}null!==n&&n.unobserve(a)}function t(a,b){let c=l.get(a);void 0!==c&&(c.isVisible=b,b?m.add(c):m.delete(c),v(c,e.PrefetchPriority.Default))}function u(a,b){let c=l.get(a);void 0!==c&&void 0!==c&&v(c,e.PrefetchPriority.Intent)}function v(a,b){let c=a.prefetchTask;if(!a.isVisible){null!==c&&(0,e.cancelPrefetchTask)(c);return}}function w(a,b){for(let c of m){let d=c.prefetchTask;if(null!==d&&!(0,e.isPrefetchTaskDirty)(d,a,b))continue;null!==d&&(0,e.cancelPrefetchTask)(d);let f=(0,e.createCacheKey)(c.prefetchHref,a);c.prefetchTask=(0,e.schedulePrefetchTask)(f,b,c.fetchStrategy,e.PrefetchPriority.Default,null)}}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},37446:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{prefetchQueue:function(){return f},prefetchReducer:function(){return g}});let d=c(5162),e=c(81288),f=new d.PromiseQueue(5),g=function(a,b){(0,e.prunePrefetchCache)(a.prefetchCache);let{url:c}=b;return(0,e.getOrCreatePrefetchCacheEntry)({url:c,nextUrl:a.nextUrl,prefetchCache:a.prefetchCache,kind:b.kind,tree:a.tree,allowAliasing:!0}),a};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},39625:(a,b,c)=>{Promise.resolve().then(c.bind(c,58931))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41573:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"serverPatchReducer",{enumerable:!0,get:function(){return k}});let d=c(75497),e=c(24848),f=c(77692),g=c(15426),h=c(11966),i=c(26613),j=c(25918);function k(a,b){let{serverResponse:{flightData:c,canonicalUrl:k},navigatedAt:l}=b,m={};if(m.preserveCustomHistoryState=!1,"string"==typeof c)return(0,g.handleExternalUrl)(a,m,c,a.pushRef.pendingPush);let n=a.tree,o=a.cache;for(let b of c){let{segmentPath:c,tree:i}=b,p=(0,e.applyRouterStatePatchToTree)(["",...c],n,i,a.canonicalUrl);if(null===p)return a;if((0,f.isNavigatingToNewRootLayout)(n,p))return(0,g.handleExternalUrl)(a,m,a.canonicalUrl,a.pushRef.pendingPush);let q=k?(0,d.createHrefFromUrl)(k):void 0;q&&(m.canonicalUrl=q);let r=(0,j.createEmptyCacheNode)();(0,h.applyFlightData)(l,o,r,b),m.patchedTree=p,m.cache=r,o=r,n=p}return(0,i.handleMutable)(a,m)}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},41831:(a,b)=>{"use strict";function c(a){return a.replace(/\/$/,"")||"/"}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removeTrailingSlash",{enumerable:!0,get:function(){return c}})},48161:a=>{"use strict";a.exports=require("node:os")},48540:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addPathPrefix",{enumerable:!0,get:function(){return e}});let d=c(67431);function e(a,b){if(!a.startsWith("/")||!b)return a;let{pathname:c,query:e,hash:f}=(0,d.parsePath)(a);return""+b+c+e+f}},48760:(a,b)=>{"use strict";function c(a){let b=parseInt(a.slice(0,2),16),c=b>>1&63,d=Array(6);for(let a=0;a<6;a++){let b=c>>5-a&1;d[a]=1===b}return{type:1==(b>>7&1)?"use-cache":"server-action",usedArgs:d,hasRestArgs:1==(1&b)}}function d(a,b){let c=Array(a.length);for(let d=0;d<a.length;d++)(d<6&&b.usedArgs[d]||d>=6&&b.hasRestArgs)&&(c[d]=a[d]);return c}Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{extractInfoFromServerReferenceId:function(){return c},omitUnusedArgs:function(){return d}})},50202:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"clearCacheNodeDataForSegmentPath",{enumerable:!0,get:function(){return function a(b,c,f){let g=f.length<=2,[h,i]=f,j=(0,e.createRouterCacheKey)(i),k=c.parallelRoutes.get(h),l=b.parallelRoutes.get(h);l&&l!==k||(l=new Map(k),b.parallelRoutes.set(h,l));let m=null==k?void 0:k.get(j),n=l.get(j);if(g){n&&n.lazyData&&n!==m||l.set(j,{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1});return}if(!n||!m){n||l.set(j,{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1});return}return n===m&&(n={lazyData:n.lazyData,rsc:n.rsc,prefetchRsc:n.prefetchRsc,head:n.head,prefetchHead:n.prefetchHead,parallelRoutes:new Map(n.parallelRoutes),loading:n.loading},l.set(j,n)),a(n,m,(0,d.getNextFlightSegmentPath)(f))}}});let d=c(89909),e=c(82521);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},51337:(a,b,c)=>{"use strict";c.d(b,{ConfigureExperience:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call ConfigureExperience() from the server but ConfigureExperience is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/weston/Code/agentic-product-development-harness/apps/gui/components/custom/configure-experience.tsx","ConfigureExperience")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},51939:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"serverActionReducer",{enumerable:!0,get:function(){return E}});let d=c(53418),e=c(86802),f=c(58529),g=c(12786),h=c(78589),i=c(13136),j=c(4335),k=c(75497),l=c(15426),m=c(24848),n=c(77692),o=c(26613),p=c(63102),q=c(25918),r=c(78592),s=c(13355),t=c(18226),u=c(89909),v=c(4873),w=c(79650),x=c(81288),y=c(15252),z=c(94650),A=c(48760);c(68459);let B=h.createFromFetch;async function C(a,b,c){let i,k,l,m,{actionId:n,actionArgs:o}=c,p=(0,h.createTemporaryReferenceSet)(),q=(0,A.extractInfoFromServerReferenceId)(n),r="use-cache"===q.type?(0,A.omitUnusedArgs)(o,q):o,s=await (0,h.encodeReply)(r,{temporaryReferences:p}),t=await fetch(a.canonicalUrl,{method:"POST",headers:{Accept:f.RSC_CONTENT_TYPE_HEADER,[f.ACTION_HEADER]:n,[f.NEXT_ROUTER_STATE_TREE_HEADER]:(0,u.prepareFlightRouterStateForRequest)(a.tree),...{},...b?{[f.NEXT_URL]:b}:{}},body:s});if("1"===t.headers.get(f.NEXT_ACTION_NOT_FOUND_HEADER))throw Object.defineProperty(new g.UnrecognizedActionError('Server Action "'+n+'" was not found on the server. \nRead more: https://nextjs.org/docs/messages/failed-to-find-server-action'),"__NEXT_ERROR_CODE",{value:"E715",enumerable:!1,configurable:!0});let v=t.headers.get("x-action-redirect"),[x,y]=(null==v?void 0:v.split(";"))||[];switch(y){case"push":i=w.RedirectType.push;break;case"replace":i=w.RedirectType.replace;break;default:i=void 0}let z=!!t.headers.get(f.NEXT_IS_PRERENDER_HEADER);try{let a=JSON.parse(t.headers.get("x-action-revalidated")||"[[],0,0]");k={paths:a[0]||[],tag:!!a[1],cookie:a[2]}}catch(a){k=D}let C=x?(0,j.assignLocation)(x,new URL(a.canonicalUrl,window.location.href)):void 0,E=t.headers.get("content-type"),F=!!(E&&E.startsWith(f.RSC_CONTENT_TYPE_HEADER));if(!F&&!C)throw Object.defineProperty(Error(t.status>=400&&"text/plain"===E?await t.text():"An unexpected response was received from the server."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if(F){let a=await B(Promise.resolve(t),{callServer:d.callServer,findSourceMapURL:e.findSourceMapURL,temporaryReferences:p});l=C?void 0:a.a,m=(0,u.normalizeFlightData)(a.f)}else l=void 0,m=void 0;return{actionResult:l,actionFlightData:m,redirectLocation:C,redirectType:i,revalidatedParts:k,isPrerender:z}}let D={paths:[],tag:!1,cookie:!1};function E(a,b){let{resolve:c,reject:d}=b,e={},f=a.tree;e.preserveCustomHistoryState=!1;let g=a.nextUrl&&(0,r.hasInterceptionRouteInCurrentTree)(a.tree)?a.nextUrl:null,h=Date.now();return C(a,g,b).then(async j=>{let r,{actionResult:u,actionFlightData:A,redirectLocation:B,redirectType:C,isPrerender:D,revalidatedParts:E}=j;if(B&&(C===w.RedirectType.replace?(a.pushRef.pendingPush=!1,e.pendingPush=!1):(a.pushRef.pendingPush=!0,e.pendingPush=!0),e.canonicalUrl=r=(0,k.createHrefFromUrl)(B,!1)),!A)return(c(u),B)?(0,l.handleExternalUrl)(a,e,B.href,a.pushRef.pendingPush):a;if("string"==typeof A)return c(u),(0,l.handleExternalUrl)(a,e,A,a.pushRef.pendingPush);let F=E.paths.length>0||E.tag||E.cookie;for(let d of A){let{tree:i,seedData:j,head:k,isRootRender:o}=d;if(!o)return console.log("SERVER ACTION APPLY FAILED"),c(u),a;let v=(0,m.applyRouterStatePatchToTree)([""],f,i,r||a.canonicalUrl);if(null===v)return c(u),(0,s.handleSegmentMismatch)(a,b,i);if((0,n.isNavigatingToNewRootLayout)(f,v))return c(u),(0,l.handleExternalUrl)(a,e,r||a.canonicalUrl,a.pushRef.pendingPush);if(null!==j){let b=j[1],c=(0,q.createEmptyCacheNode)();c.rsc=b,c.prefetchRsc=null,c.loading=j[3],(0,p.fillLazyItemsTillLeafWithHead)(h,c,void 0,i,j,k,void 0),e.cache=c,e.prefetchCache=new Map,F&&await (0,t.refreshInactiveParallelSegments)({navigatedAt:h,state:a,updatedTree:v,updatedCache:c,includeNextUrl:!!g,canonicalUrl:e.canonicalUrl||a.canonicalUrl})}e.patchedTree=v,f=v}return B&&r?(F||((0,x.createSeededPrefetchCacheEntry)({url:B,data:{flightData:A,canonicalUrl:void 0,couldBeIntercepted:!1,prerendered:!1,postponed:!1,staleTime:-1},tree:a.tree,prefetchCache:a.prefetchCache,nextUrl:a.nextUrl,kind:D?i.PrefetchKind.FULL:i.PrefetchKind.AUTO}),e.prefetchCache=a.prefetchCache),d((0,v.getRedirectError)((0,z.hasBasePath)(r)?(0,y.removeBasePath)(r):r,C||w.RedirectType.push))):c(u),(0,o.handleMutable)(a,e)},b=>(d(b),a))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},53387:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{DecodeError:function(){return o},MiddlewareNotFoundError:function(){return s},MissingStaticPage:function(){return r},NormalizeError:function(){return p},PageNotFoundError:function(){return q},SP:function(){return m},ST:function(){return n},WEB_VITALS:function(){return c},execOnce:function(){return d},getDisplayName:function(){return i},getLocationOrigin:function(){return g},getURL:function(){return h},isAbsoluteUrl:function(){return f},isResSent:function(){return j},loadGetInitialProps:function(){return l},normalizeRepeatedSlashes:function(){return k},stringifyError:function(){return t}});let c=["CLS","FCP","FID","INP","LCP","TTFB"];function d(a){let b,c=!1;return function(){for(var d=arguments.length,e=Array(d),f=0;f<d;f++)e[f]=arguments[f];return c||(c=!0,b=a(...e)),b}}let e=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,f=a=>e.test(a);function g(){let{protocol:a,hostname:b,port:c}=window.location;return a+"//"+b+(c?":"+c:"")}function h(){let{href:a}=window.location,b=g();return a.substring(b.length)}function i(a){return"string"==typeof a?a:a.displayName||a.name||"Unknown"}function j(a){return a.finished||a.headersSent}function k(a){let b=a.split("?");return b[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(b[1]?"?"+b.slice(1).join("?"):"")}async function l(a,b){let c=b.res||b.ctx&&b.ctx.res;if(!a.getInitialProps)return b.ctx&&b.Component?{pageProps:await l(b.Component,b.ctx)}:{};let d=await a.getInitialProps(b);if(c&&j(c))return d;if(!d)throw Object.defineProperty(Error('"'+i(a)+'.getInitialProps()" should resolve to an object. But found "'+d+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return d}let m="undefined"!=typeof performance,n=m&&["mark","measure","getEntriesByName"].every(a=>"function"==typeof performance[a]);class o extends Error{}class p extends Error{}class q extends Error{constructor(a){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+a}}class r extends Error{constructor(a,b){super(),this.message="Failed to load static file for page: "+a+" "+b}}class s extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function t(a){return JSON.stringify({message:a.message,stack:a.stack})}},55511:a=>{"use strict";a.exports=require("crypto")},56035:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i,metadata:()=>h});var d=c(5939),e=c(91860),f=c.n(e),g=c(58931);c(98944);let h={title:"Product Development Harness",description:"Local operator GUI for harness setup and configuration."};function i({children:a}){return(0,d.jsx)("html",{lang:"en",className:f().variable,suppressHydrationWarning:!0,children:(0,d.jsx)("body",{children:(0,d.jsx)(g.ThemeProvider,{children:a})})})}},57162:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"invalidateCacheBelowFlightSegmentPath",{enumerable:!0,get:function(){return function a(b,c,f){let g=f.length<=2,[h,i]=f,j=(0,d.createRouterCacheKey)(i),k=c.parallelRoutes.get(h);if(!k)return;let l=b.parallelRoutes.get(h);if(l&&l!==k||(l=new Map(k),b.parallelRoutes.set(h,l)),g)return void l.delete(j);let m=k.get(j),n=l.get(j);n&&m&&(n===m&&(n={lazyData:n.lazyData,rsc:n.rsc,prefetchRsc:n.prefetchRsc,head:n.head,prefetchHead:n.prefetchHead,parallelRoutes:new Map(n.parallelRoutes)},l.set(j,n)),a(n,m,(0,e.getNextFlightSegmentPath)(f)))}}});let d=c(82521),e=c(89909);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},57975:a=>{"use strict";a.exports=require("node:util")},58931:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/weston/Code/agentic-product-development-harness/apps/gui/components/custom/theme-provider.tsx","ThemeProvider")},61725:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addBasePath",{enumerable:!0,get:function(){return f}});let d=c(48540),e=c(83328);function f(a,b){return(0,e.normalizePathTrailingSlash)((0,d.addPathPrefix)(a,""))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},61798:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{VALID_LOADERS:function(){return c},imageConfigDefault:function(){return d}});let c=["default","imgix","cloudinary","akamai","custom"],d={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumResponseBody:5e7,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:void 0,unoptimized:!1}},61966:(a,b,c)=>{"use strict";a.exports=c(83935).vendored.contexts.RouterContext},62176:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{computeChangedPath:function(){return j},extractPathFromFlightRouterState:function(){return i},getSelectedParams:function(){return function a(b,c){for(let d of(void 0===c&&(c={}),Object.values(b[1]))){let b=d[0],f=Array.isArray(b),g=f?b[1]:b;!g||g.startsWith(e.PAGE_SEGMENT_KEY)||(f&&("c"===b[2]||"oc"===b[2])?c[b[0]]=b[1].split("/"):f&&(c[b[0]]=b[1]),c=a(d,c))}return c}}});let d=c(54357),e=c(44859),f=c(58395),g=a=>"string"==typeof a?"children"===a?"":a:a[1];function h(a){return a.reduce((a,b)=>{let c;return""===(b="/"===(c=b)[0]?c.slice(1):c)||(0,e.isGroupSegment)(b)?a:a+"/"+b},"")||"/"}function i(a){var b;let c=Array.isArray(a[0])?a[0][1]:a[0];if(c===e.DEFAULT_SEGMENT_KEY||d.INTERCEPTION_ROUTE_MARKERS.some(a=>c.startsWith(a)))return;if(c.startsWith(e.PAGE_SEGMENT_KEY))return"";let f=[g(c)],j=null!=(b=a[1])?b:{},k=j.children?i(j.children):void 0;if(void 0!==k)f.push(k);else for(let[a,b]of Object.entries(j)){if("children"===a)continue;let c=i(b);void 0!==c&&f.push(c)}return h(f)}function j(a,b){let c=function a(b,c){let[e,h]=b,[j,k]=c,l=g(e),m=g(j);if(d.INTERCEPTION_ROUTE_MARKERS.some(a=>l.startsWith(a)||m.startsWith(a)))return"";if(!(0,f.matchSegment)(e,j)){var n;return null!=(n=i(c))?n:""}for(let b in h)if(k[b]){let c=a(h[b],k[b]);if(null!==c)return g(j)+"/"+c}return null}(a,b);return null==c||"/"===c?c:h(c.split("/"))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},62475:(a,b)=>{"use strict";function c(a){var b;let{config:c,src:d,width:e,quality:f}=a,g=f||(null==(b=c.qualities)?void 0:b.reduce((a,b)=>Math.abs(b-75)<Math.abs(a-75)?b:a))||75;return c.path+"?url="+encodeURIComponent(d)+"&w="+e+"&q="+g+(d.startsWith("/_next/static/media/"),"")}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return d}}),c.__next_img_default=!0;let d=c},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63102:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"fillLazyItemsTillLeafWithHead",{enumerable:!0,get:function(){return function a(b,c,f,g,h,i,j){if(0===Object.keys(g[1]).length){c.head=i;return}for(let k in g[1]){let l,m=g[1][k],n=m[0],o=(0,d.createRouterCacheKey)(n),p=null!==h&&void 0!==h[2][k]?h[2][k]:null;if(f){let d=f.parallelRoutes.get(k);if(d){let f,g=(null==j?void 0:j.kind)==="auto"&&j.status===e.PrefetchCacheEntryStatus.reusable,h=new Map(d),l=h.get(o);f=null!==p?{lazyData:null,rsc:p[1],prefetchRsc:null,head:null,prefetchHead:null,loading:p[3],parallelRoutes:new Map(null==l?void 0:l.parallelRoutes),navigatedAt:b}:g&&l?{lazyData:l.lazyData,rsc:l.rsc,prefetchRsc:l.prefetchRsc,head:l.head,prefetchHead:l.prefetchHead,parallelRoutes:new Map(l.parallelRoutes),loading:l.loading}:{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map(null==l?void 0:l.parallelRoutes),loading:null,navigatedAt:b},h.set(o,f),a(b,f,l,m,p||null,i,j),c.parallelRoutes.set(k,h);continue}}if(null!==p){let a=p[1],c=p[3];l={lazyData:null,rsc:a,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:c,navigatedAt:b}}else l={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:b};let q=c.parallelRoutes.get(k);q?q.set(o,l):c.parallelRoutes.set(k,new Map([[o,l]])),a(b,l,void 0,m,p,i,j)}}}});let d=c(82521),e=c(13136);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},64402:(a,b,c)=>{"use strict";c.r(b),c.d(b,{_:()=>e});var d=0;function e(a){return"__private_"+d+++"_"+a}},64788:(a,b,c)=>{"use strict";c.d(b,{ThemeToggle:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call ThemeToggle() from the server but ThemeToggle is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/weston/Code/agentic-product-development-harness/apps/gui/components/custom/theme-toggle.tsx","ThemeToggle")},66099:(a,b,c)=>{"use strict";a.exports=c(83935).vendored.contexts.HeadManagerContext},66260:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,58671,23)),Promise.resolve().then(c.t.bind(c,56542,23)),Promise.resolve().then(c.t.bind(c,88248,23)),Promise.resolve().then(c.t.bind(c,49743,23)),Promise.resolve().then(c.t.bind(c,96231,23)),Promise.resolve().then(c.t.bind(c,10959,23)),Promise.resolve().then(c.t.bind(c,72041,23)),Promise.resolve().then(c.t.bind(c,95094,23)),Promise.resolve().then(c.t.bind(c,67487,23))},67122:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{default:function(){return p},defaultHead:function(){return l}});let d=c(15915),e=c(86274),f=c(78157),g=e._(c(31768)),h=d._(c(68737)),i=c(14329),j=c(66099),k=c(30858);function l(a){void 0===a&&(a=!1);let b=[(0,f.jsx)("meta",{charSet:"utf-8"},"charset")];return a||b.push((0,f.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),b}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===g.default.Fragment?a.concat(g.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}c(99026);let n=["name","httpEquiv","charSet","itemProp"];function o(a,b){let{inAmpMode:c}=b;return a.reduce(m,[]).reverse().concat(l(c).reverse()).filter(function(){let a=new Set,b=new Set,c=new Set,d={};return e=>{let f=!0,g=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){g=!0;let b=e.key.slice(e.key.indexOf("$")+1);a.has(b)?f=!1:a.add(b)}switch(e.type){case"title":case"base":b.has(e.type)?f=!1:b.add(e.type);break;case"meta":for(let a=0,b=n.length;a<b;a++){let b=n[a];if(e.props.hasOwnProperty(b))if("charSet"===b)c.has(b)?f=!1:c.add(b);else{let a=e.props[b],c=d[b]||new Set;("name"!==b||!g)&&c.has(a)?f=!1:(c.add(a),d[b]=c)}}}return f}}()).reverse().map((a,b)=>{let c=a.key||b;return g.default.cloneElement(a,{key:c})})}let p=function(a){let{children:b}=a,c=(0,g.useContext)(i.AmpStateContext),d=(0,g.useContext)(j.HeadManagerContext);return(0,f.jsx)(h.default,{reduceComponentsToState:o,headManager:d,inAmpMode:(0,k.isInAmpMode)(c),children:b})};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},67283:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{default:function(){return i},getImageProps:function(){return h}});let d=c(15915),e=c(77387),f=c(79075),g=d._(c(62475));function h(a){let{props:b}=(0,e.getImgProps)(a,{defaultLoader:g.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let i=f.Image},67431:(a,b)=>{"use strict";function c(a){let b=a.indexOf("#"),c=a.indexOf("?"),d=c>-1&&(b<0||c<b);return d||b>-1?{pathname:a.substring(0,d?c:b),query:d?a.substring(c,b>-1?b:void 0):"",hash:b>-1?a.slice(b):""}:{pathname:a,query:"",hash:""}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parsePath",{enumerable:!0,get:function(){return c}})},68360:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{fillCacheWithNewSubTreeData:function(){return i},fillCacheWithNewSubTreeDataButOnlyLoading:function(){return j}});let d=c(7342),e=c(63102),f=c(82521),g=c(44859);function h(a,b,c,h,i,j){let{segmentPath:k,seedData:l,tree:m,head:n}=h,o=b,p=c;for(let b=0;b<k.length;b+=2){let c=k[b],h=k[b+1],q=b===k.length-2,r=(0,f.createRouterCacheKey)(h),s=p.parallelRoutes.get(c);if(!s)continue;let t=o.parallelRoutes.get(c);t&&t!==s||(t=new Map(s),o.parallelRoutes.set(c,t));let u=s.get(r),v=t.get(r);if(q){if(l&&(!v||!v.lazyData||v===u)){let b=l[0],c=l[1],f=l[3];v={lazyData:null,rsc:j||b!==g.PAGE_SEGMENT_KEY?c:null,prefetchRsc:null,head:null,prefetchHead:null,loading:f,parallelRoutes:j&&u?new Map(u.parallelRoutes):new Map,navigatedAt:a},u&&j&&(0,d.invalidateCacheByRouterState)(v,u,m),j&&(0,e.fillLazyItemsTillLeafWithHead)(a,v,u,m,l,n,i),t.set(r,v)}continue}v&&u&&(v===u&&(v={lazyData:v.lazyData,rsc:v.rsc,prefetchRsc:v.prefetchRsc,head:v.head,prefetchHead:v.prefetchHead,parallelRoutes:new Map(v.parallelRoutes),loading:v.loading},t.set(r,v)),o=v,p=u)}}function i(a,b,c,d,e){h(a,b,c,d,e,!0)}function j(a,b,c,d,e){h(a,b,c,d,e,!1)}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},68459:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{FetchStrategy:function(){return o},NavigationResultTag:function(){return m},PrefetchPriority:function(){return n},cancelPrefetchTask:function(){return i},createCacheKey:function(){return l},getCurrentCacheVersion:function(){return g},isPrefetchTaskDirty:function(){return k},navigate:function(){return e},prefetch:function(){return d},reschedulePrefetchTask:function(){return j},revalidateEntireCache:function(){return f},schedulePrefetchTask:function(){return h}});let c=()=>{throw Object.defineProperty(Error("Segment Cache experiment is not enabled. This is a bug in Next.js."),"__NEXT_ERROR_CODE",{value:"E654",enumerable:!1,configurable:!0})},d=c,e=c,f=c,g=c,h=c,i=c,j=c,k=c,l=c;var m=function(a){return a[a.MPA=0]="MPA",a[a.Success=1]="Success",a[a.NoOp=2]="NoOp",a[a.Async=3]="Async",a}({}),n=function(a){return a[a.Intent=2]="Intent",a[a.Default=1]="Default",a[a.Background=0]="Background",a}({}),o=function(a){return a[a.LoadingBoundary=0]="LoadingBoundary",a[a.PPR=1]="PPR",a[a.PPRRuntime=2]="PPRRuntime",a[a.Full=3]="Full",a}({});("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},68477:(a,b,c)=>{"use strict";a.exports=c(83935).vendored.contexts.ImageConfigContext},68737:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return f}});let d=c(31768),e=()=>{};function f(a){var b;let{headManager:c,reduceComponentsToState:f}=a;function g(){if(c&&c.mountedInstances){let b=d.Children.toArray(Array.from(c.mountedInstances).filter(Boolean));c.updateHead(f(b,a))}}return null==c||null==(b=c.mountedInstances)||b.add(a.children),g(),e(()=>{var b;return null==c||null==(b=c.mountedInstances)||b.add(a.children),()=>{var b;null==c||null==(b=c.mountedInstances)||b.delete(a.children)}}),e(()=>(c&&(c._pendingUpdate=g),()=>{c&&(c._pendingUpdate=g)})),null}},71281:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{formatUrl:function(){return f},formatWithValidation:function(){return h},urlObjectKeys:function(){return g}});let d=c(86274)._(c(22345)),e=/https?|ftp|gopher|file/;function f(a){let{auth:b,hostname:c}=a,f=a.protocol||"",g=a.pathname||"",h=a.hash||"",i=a.query||"",j=!1;b=b?encodeURIComponent(b).replace(/%3A/i,":")+"@":"",a.host?j=b+a.host:c&&(j=b+(~c.indexOf(":")?"["+c+"]":c),a.port&&(j+=":"+a.port)),i&&"object"==typeof i&&(i=String(d.urlQueryToSearchParams(i)));let k=a.search||i&&"?"+i||"";return f&&!f.endsWith(":")&&(f+=":"),a.slashes||(!f||e.test(f))&&!1!==j?(j="//"+(j||""),g&&"/"!==g[0]&&(g="/"+g)):j||(j=""),h&&"#"!==h[0]&&(h="#"+h),k&&"?"!==k[0]&&(k="?"+k),""+f+j+(g=g.replace(/[?#]/g,encodeURIComponent))+(k=k.replace("#","%23"))+h}let g=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function h(a){return f(a)}},72921:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>f});var d=c(78157),e=c(26556);function f({children:a}){return(0,d.jsx)(e.N,{attribute:"class",defaultTheme:"system",enableSystem:!0,children:a})}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76692:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"AppRouterAnnouncer",{enumerable:!0,get:function(){return g}});let d=c(31768),e=c(65081),f="next-route-announcer";function g(a){let{tree:b}=a,[c,g]=(0,d.useState)(null);(0,d.useEffect)(()=>(g(function(){var a;let b=document.getElementsByName(f)[0];if(null==b||null==(a=b.shadowRoot)?void 0:a.childNodes[0])return b.shadowRoot.childNodes[0];{let a=document.createElement(f);a.style.cssText="position:absolute";let b=document.createElement("div");return b.ariaLive="assertive",b.id="__next-route-announcer__",b.role="alert",b.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",a.attachShadow({mode:"open"}).appendChild(b),document.body.appendChild(a),b}}()),()=>{let a=document.getElementsByTagName(f)[0];(null==a?void 0:a.isConnected)&&document.body.removeChild(a)}),[]);let[h,i]=(0,d.useState)(""),j=(0,d.useRef)(void 0);return(0,d.useEffect)(()=>{let a="";if(document.title)a=document.title;else{let b=document.querySelector("h1");b&&(a=b.innerText||b.textContent||"")}void 0!==j.current&&j.current!==a&&i(a),j.current=a},[b]),c?(0,e.createPortal)(h,c):null}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},76760:a=>{"use strict";a.exports=require("node:path")},77387:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getImgProps",{enumerable:!0,get:function(){return i}}),c(99026);let d=c(28010),e=c(61798),f=["-moz-initial","fill","none","scale-down",void 0];function g(a){return void 0!==a.default}function h(a){return void 0===a?a:"number"==typeof a?Number.isFinite(a)?a:NaN:"string"==typeof a&&/^[0-9]+$/.test(a)?parseInt(a,10):NaN}function i(a,b){var c,i;let j,k,l,{src:m,sizes:n,unoptimized:o=!1,priority:p=!1,loading:q,className:r,quality:s,width:t,height:u,fill:v=!1,style:w,overrideSrc:x,onLoad:y,onLoadingComplete:z,placeholder:A="empty",blurDataURL:B,fetchPriority:C,decoding:D="async",layout:E,objectFit:F,objectPosition:G,lazyBoundary:H,lazyRoot:I,...J}=a,{imgConf:K,showAltText:L,blurComplete:M,defaultLoader:N}=b,O=K||e.imageConfigDefault;if("allSizes"in O)j=O;else{let a=[...O.deviceSizes,...O.imageSizes].sort((a,b)=>a-b),b=O.deviceSizes.sort((a,b)=>a-b),d=null==(c=O.qualities)?void 0:c.sort((a,b)=>a-b);j={...O,allSizes:a,deviceSizes:b,qualities:d}}if(void 0===N)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let P=J.loader||N;delete J.loader,delete J.srcSet;let Q="__next_img_default"in P;if(Q){if("custom"===j.loader)throw Object.defineProperty(Error('Image with src "'+m+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let a=P;P=b=>{let{config:c,...d}=b;return a(d)}}if(E){"fill"===E&&(v=!0);let a={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[E];a&&(w={...w,...a});let b={responsive:"100vw",fill:"100vw"}[E];b&&!n&&(n=b)}let R="",S=h(t),T=h(u);if((i=m)&&"object"==typeof i&&(g(i)||void 0!==i.src)){let a=g(m)?m.default:m;if(!a.src)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(a)),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!a.height||!a.width)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(a)),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(k=a.blurWidth,l=a.blurHeight,B=B||a.blurDataURL,R=a.src,!v)if(S||T){if(S&&!T){let b=S/a.width;T=Math.round(a.height*b)}else if(!S&&T){let b=T/a.height;S=Math.round(a.width*b)}}else S=a.width,T=a.height}let U=!p&&("lazy"===q||void 0===q);(!(m="string"==typeof m?m:R)||m.startsWith("data:")||m.startsWith("blob:"))&&(o=!0,U=!1),j.unoptimized&&(o=!0),Q&&!j.dangerouslyAllowSVG&&m.split("?",1)[0].endsWith(".svg")&&(o=!0);let V=h(s),W=Object.assign(v?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:F,objectPosition:G}:{},L?{}:{color:"transparent"},w),X=M||"empty"===A?null:"blur"===A?'url("data:image/svg+xml;charset=utf-8,'+(0,d.getImageBlurSvg)({widthInt:S,heightInt:T,blurWidth:k,blurHeight:l,blurDataURL:B||"",objectFit:W.objectFit})+'")':'url("'+A+'")',Y=f.includes(W.objectFit)?"fill"===W.objectFit?"100% 100%":"cover":W.objectFit,Z=X?{backgroundSize:Y,backgroundPosition:W.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:X}:{},$=function(a){let{config:b,src:c,unoptimized:d,width:e,quality:f,sizes:g,loader:h}=a;if(d)return{src:c,srcSet:void 0,sizes:void 0};let{widths:i,kind:j}=function(a,b,c){let{deviceSizes:d,allSizes:e}=a;if(c){let a=/(^|\s)(1?\d?\d)vw/g,b=[];for(let d;d=a.exec(c);)b.push(parseInt(d[2]));if(b.length){let a=.01*Math.min(...b);return{widths:e.filter(b=>b>=d[0]*a),kind:"w"}}return{widths:e,kind:"w"}}return"number"!=typeof b?{widths:d,kind:"w"}:{widths:[...new Set([b,2*b].map(a=>e.find(b=>b>=a)||e[e.length-1]))],kind:"x"}}(b,e,g),k=i.length-1;return{sizes:g||"w"!==j?g:"100vw",srcSet:i.map((a,d)=>h({config:b,src:c,quality:f,width:a})+" "+("w"===j?a:d+1)+j).join(", "),src:h({config:b,src:c,quality:f,width:i[k]})}}({config:j,src:m,unoptimized:o,width:S,quality:V,sizes:n,loader:P});return{props:{...J,loading:U?"lazy":q,fetchPriority:C,width:S,height:T,decoding:D,className:r,style:{...W,...Z},sizes:$.sizes,srcSet:$.srcSet,src:x||$.src},meta:{unoptimized:o,priority:p,placeholder:A,fill:v}}}},77598:a=>{"use strict";a.exports=require("node:crypto")},77692:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function a(b,c){let d=b[0],e=c[0];if(Array.isArray(d)&&Array.isArray(e)){if(d[0]!==e[0]||d[2]!==e[2])return!0}else if(d!==e)return!0;if(b[4])return!c[4];if(c[4])return!0;let f=Object.values(b[1])[0],g=Object.values(c[1])[0];return!f||!g||a(f,g)}}}),("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},79075:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"Image",{enumerable:!0,get:function(){return u}});let d=c(15915),e=c(86274),f=c(78157),g=e._(c(31768)),h=d._(c(65081)),i=d._(c(67122)),j=c(77387),k=c(61798),l=c(68477);c(99026);let m=c(61966),n=d._(c(62475)),o=c(79268),p={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function q(a,b,c,d,e,f,g){let h=null==a?void 0:a.src;a&&a["data-loaded-src"]!==h&&(a["data-loaded-src"]=h,("decode"in a?a.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(a.parentElement&&a.isConnected){if("empty"!==b&&e(!0),null==c?void 0:c.current){let b=new Event("load");Object.defineProperty(b,"target",{writable:!1,value:a});let d=!1,e=!1;c.current({...b,nativeEvent:b,currentTarget:a,target:a,isDefaultPrevented:()=>d,isPropagationStopped:()=>e,persist:()=>{},preventDefault:()=>{d=!0,b.preventDefault()},stopPropagation:()=>{e=!0,b.stopPropagation()}})}(null==d?void 0:d.current)&&d.current(a)}}))}function r(a){return g.use?{fetchPriority:a}:{fetchpriority:a}}globalThis.__NEXT_IMAGE_IMPORTED=!0;let s=(0,g.forwardRef)((a,b)=>{let{src:c,srcSet:d,sizes:e,height:h,width:i,decoding:j,className:k,style:l,fetchPriority:m,placeholder:n,loading:p,unoptimized:s,fill:t,onLoadRef:u,onLoadingCompleteRef:v,setBlurComplete:w,setShowAltText:x,sizesInput:y,onLoad:z,onError:A,...B}=a,C=(0,g.useCallback)(a=>{a&&(A&&(a.src=a.src),a.complete&&q(a,n,u,v,w,s,y))},[c,n,u,v,w,A,s,y]),D=(0,o.useMergedRef)(b,C);return(0,f.jsx)("img",{...B,...r(m),loading:p,width:i,height:h,decoding:j,"data-nimg":t?"fill":"1",className:k,style:l,sizes:e,srcSet:d,src:c,ref:D,onLoad:a=>{q(a.currentTarget,n,u,v,w,s,y)},onError:a=>{x(!0),"empty"!==n&&w(!0),A&&A(a)}})});function t(a){let{isAppRouter:b,imgAttributes:c}=a,d={as:"image",imageSrcSet:c.srcSet,imageSizes:c.sizes,crossOrigin:c.crossOrigin,referrerPolicy:c.referrerPolicy,...r(c.fetchPriority)};return b&&h.default.preload?(h.default.preload(c.src,d),null):(0,f.jsx)(i.default,{children:(0,f.jsx)("link",{rel:"preload",href:c.srcSet?void 0:c.src,...d},"__nimg-"+c.src+c.srcSet+c.sizes)})}let u=(0,g.forwardRef)((a,b)=>{let c=(0,g.useContext)(m.RouterContext),d=(0,g.useContext)(l.ImageConfigContext),e=(0,g.useMemo)(()=>{var a;let b=p||d||k.imageConfigDefault,c=[...b.deviceSizes,...b.imageSizes].sort((a,b)=>a-b),e=b.deviceSizes.sort((a,b)=>a-b),f=null==(a=b.qualities)?void 0:a.sort((a,b)=>a-b);return{...b,allSizes:c,deviceSizes:e,qualities:f}},[d]),{onLoad:h,onLoadingComplete:i}=a,o=(0,g.useRef)(h);(0,g.useEffect)(()=>{o.current=h},[h]);let q=(0,g.useRef)(i);(0,g.useEffect)(()=>{q.current=i},[i]);let[r,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),{props:x,meta:y}=(0,j.getImgProps)(a,{defaultLoader:n.default,imgConf:e,blurComplete:r,showAltText:v});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(s,{...x,unoptimized:y.unoptimized,placeholder:y.placeholder,fill:y.fill,onLoadRef:o,onLoadingCompleteRef:q,setBlurComplete:u,setShowAltText:w,sizesInput:a.sizes,ref:b}),y.priority?(0,f.jsx)(t,{isAppRouter:!c,imgAttributes:x}):null]})});("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},79268:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"useMergedRef",{enumerable:!0,get:function(){return e}});let d=c(31768);function e(a,b){let c=(0,d.useRef)(null),e=(0,d.useRef)(null);return(0,d.useCallback)(d=>{if(null===d){let a=c.current;a&&(c.current=null,a());let b=e.current;b&&(e.current=null,b())}else a&&(c.current=f(a,d)),b&&(e.current=f(b,d))},[a,b])}function f(a,b){if("function"!=typeof a)return a.current=b,()=>{a.current=null};{let c=a(b);return"function"==typeof c?c:()=>a(null)}}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},79390:(a,b,c)=>{"use strict";function d(){for(var a,b,c=0,d="",e=arguments.length;c<e;c++)(a=arguments[c])&&(b=function a(b){var c,d,e="";if("string"==typeof b||"number"==typeof b)e+=b;else if("object"==typeof b)if(Array.isArray(b)){var f=b.length;for(c=0;c<f;c++)b[c]&&(d=a(b[c]))&&(e&&(e+=" "),e+=d)}else for(d in b)b[d]&&(e&&(e+=" "),e+=d);return e}(a))&&(d&&(d+=" "),d+=b);return d}c.d(b,{$:()=>d})},80678:(a,b,c)=>{"use strict";c.d(b,{$:()=>s});var d=c(78157),e=c(31768),f=c.t(e,2);function g(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}var h=function(a){let b=e.forwardRef((b,c)=>{var d;let f,h,{children:k,...p}=b,q=null,r=!1,s=[];l(k)&&"function"==typeof o&&(k=o(k._payload)),e.Children.forEach(k,a=>{var b;if(b=a,e.isValidElement(b)&&"function"==typeof b.type&&"__radixId"in b.type&&b.type.__radixId===i){r=!0;let b="child"in a.props?a.props.child:a.props.children;l(b)&&"function"==typeof o&&(b=o(b._payload)),q=j(a,b),s.push(q?.props?.children)}else s.push(a)}),q?q=e.cloneElement(q,void 0,s):!r&&1===e.Children.count(k)&&e.isValidElement(k)&&(q=k);let t=q?(d=q,(h=(f=Object.getOwnPropertyDescriptor(d.props,"ref")?.get)&&"isReactWarning"in f&&f.isReactWarning)?d.ref:(h=(f=Object.getOwnPropertyDescriptor(d,"ref")?.get)&&"isReactWarning"in f&&f.isReactWarning)?d.props.ref:d.props.ref||d.ref):void 0,u=function(...a){return e.useCallback(function(...a){return b=>{let c=!1,d=a.map(a=>{let d=g(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():g(a[b],null)}}}}(...a),a)}(c,t);if(!q){if(k||0===k)throw Error(r?n(a):m(a));return k}let v=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(p,q.props??{});return q.type!==e.Fragment&&(v.ref=c?u:t),e.cloneElement(q,v)});return b.displayName=`${a}.Slot`,b}("Slot"),i=Symbol.for("radix.slottable"),j=(a,b)=>{if("child"in a.props){let b=a.props.child;return e.isValidElement(b)?e.cloneElement(b,void 0,a.props.children(b.props.children)):null}return e.isValidElement(b)?b:null},k=Symbol.for("react.lazy");function l(a){var b;return null!=a&&"object"==typeof a&&"$$typeof"in a&&a.$$typeof===k&&"_payload"in a&&"object"==typeof(b=a._payload)&&null!==b&&"then"in b}var m=a=>`${a} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,n=a=>`${a} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,o=f[" use ".trim().toString()],p=c(4306),q=c(84655);let r=(0,p.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring cursor-pointer disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",ghost:"hover:bg-accent hover:text-accent-foreground"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8"}},defaultVariants:{variant:"default",size:"default"}}),s=e.forwardRef(({className:a,variant:b,size:c,asChild:e=!1,...f},g)=>(0,d.jsx)(e?h:"button",{className:(0,q.cn)(r({variant:b,size:c,className:a})),ref:g,...f}));s.displayName="Button"},81288:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{DYNAMIC_STALETIME_MS:function(){return m},STATIC_STALETIME_MS:function(){return n},createSeededPrefetchCacheEntry:function(){return j},getOrCreatePrefetchCacheEntry:function(){return i},prunePrefetchCache:function(){return l}});let d=c(94082),e=c(13136),f=c(37446);function g(a,b,c){let d=a.pathname;return(b&&(d+=a.search),c)?""+c+"%"+d:d}function h(a,b,c){return g(a,b===e.PrefetchKind.FULL,c)}function i(a){let{url:b,nextUrl:c,tree:d,prefetchCache:f,kind:h,allowAliasing:i=!0}=a,j=function(a,b,c,d,f){for(let h of(void 0===b&&(b=e.PrefetchKind.TEMPORARY),[c,null])){let c=g(a,!0,h),i=g(a,!1,h),j=a.search?c:i,k=d.get(j);if(k&&f){if(k.url.pathname===a.pathname&&k.url.search!==a.search)return{...k,aliased:!0};return k}let l=d.get(i);if(f&&a.search&&b!==e.PrefetchKind.FULL&&l&&!l.key.includes("%"))return{...l,aliased:!0}}if(b!==e.PrefetchKind.FULL&&f){for(let b of d.values())if(b.url.pathname===a.pathname&&!b.key.includes("%"))return{...b,aliased:!0}}}(b,h,c,f,i);return j?(j.status=o(j),j.kind!==e.PrefetchKind.FULL&&h===e.PrefetchKind.FULL&&j.data.then(a=>{if(!(Array.isArray(a.flightData)&&a.flightData.some(a=>a.isRootRender&&null!==a.seedData)))return k({tree:d,url:b,nextUrl:c,prefetchCache:f,kind:null!=h?h:e.PrefetchKind.TEMPORARY})}),h&&j.kind===e.PrefetchKind.TEMPORARY&&(j.kind=h),j):k({tree:d,url:b,nextUrl:c,prefetchCache:f,kind:h||e.PrefetchKind.TEMPORARY})}function j(a){let{nextUrl:b,tree:c,prefetchCache:d,url:f,data:g,kind:i}=a,j=g.couldBeIntercepted?h(f,i,b):h(f,i),k={treeAtTimeOfPrefetch:c,data:Promise.resolve(g),kind:i,prefetchTime:Date.now(),lastUsedTime:Date.now(),staleTime:g.staleTime,key:j,status:e.PrefetchCacheEntryStatus.fresh,url:f};return d.set(j,k),k}function k(a){let{url:b,kind:c,tree:g,nextUrl:i,prefetchCache:j}=a,k=h(b,c),l=f.prefetchQueue.enqueue(()=>(0,d.fetchServerResponse)(b,{flightRouterState:g,nextUrl:i,prefetchKind:c}).then(a=>{let c;if(a.couldBeIntercepted&&(c=function(a){let{url:b,nextUrl:c,prefetchCache:d,existingCacheKey:e}=a,f=d.get(e);if(!f)return;let g=h(b,f.kind,c);return d.set(g,{...f,key:g}),d.delete(e),g}({url:b,existingCacheKey:k,nextUrl:i,prefetchCache:j})),a.prerendered){let b=j.get(null!=c?c:k);b&&(b.kind=e.PrefetchKind.FULL,-1!==a.staleTime&&(b.staleTime=a.staleTime))}return a})),m={treeAtTimeOfPrefetch:g,data:l,kind:c,prefetchTime:Date.now(),lastUsedTime:null,staleTime:-1,key:k,status:e.PrefetchCacheEntryStatus.fresh,url:b};return j.set(k,m),m}function l(a){for(let[b,c]of a)o(c)===e.PrefetchCacheEntryStatus.expired&&a.delete(b)}let m=1e3*Number("0"),n=1e3*Number("300");function o(a){let{kind:b,prefetchTime:c,lastUsedTime:d}=a;return Date.now()<(null!=d?d:c)+m?d?e.PrefetchCacheEntryStatus.reusable:e.PrefetchCacheEntryStatus.fresh:b===e.PrefetchKind.AUTO&&Date.now()<c+n?e.PrefetchCacheEntryStatus.stale:b===e.PrefetchKind.FULL&&Date.now()<c+n?e.PrefetchCacheEntryStatus.reusable:e.PrefetchCacheEntryStatus.expired}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},81744:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(31768);let e=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)},f=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim();var g={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let h=(0,d.forwardRef)(({color:a="currentColor",size:b=24,strokeWidth:c=2,absoluteStrokeWidth:e,className:h="",children:i,iconNode:j,...k},l)=>(0,d.createElement)("svg",{ref:l,...g,width:b,height:b,stroke:a,strokeWidth:e?24*Number(c)/Number(b):c,className:f("lucide",h),...!i&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0})(k)&&{"aria-hidden":"true"},...k},[...j.map(([a,b])=>(0,d.createElement)(a,b)),...Array.isArray(i)?i:[i]])),i=(a,b)=>{let c=(0,d.forwardRef)(({className:c,...g},i)=>(0,d.createElement)(h,{ref:i,iconNode:b,className:f(`lucide-${e(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,c),...g}));return c.displayName=e(a),c}},82582:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{abortTask:function(){return o},listenForDynamicRequest:function(){return n},startPPRNavigation:function(){return j},updateCacheNodeOnPopstateRestoration:function(){return function a(b,c){let d=c[1],e=b.parallelRoutes,g=new Map(e);for(let b in d){let c=d[b],h=c[0],i=(0,f.createRouterCacheKey)(h),j=e.get(b);if(void 0!==j){let d=j.get(i);if(void 0!==d){let e=a(d,c),f=new Map(j);f.set(i,e),g.set(b,f)}}}let h=b.rsc,i=r(h)&&"pending"===h.status;return{lazyData:null,rsc:h,head:b.head,prefetchHead:i?b.prefetchHead:[null,null],prefetchRsc:i?b.prefetchRsc:null,loading:b.loading,parallelRoutes:g,navigatedAt:b.navigatedAt}}}});let d=c(44859),e=c(58395),f=c(82521),g=c(77692),h=c(81288),i={route:null,node:null,dynamicRequestTree:null,children:null};function j(a,b,c,g,h,j,m,n,o){return function a(b,c,g,h,j,m,n,o,p,q,r){let s=g[1],t=h[1],u=null!==m?m[2]:null;j||!0===h[4]&&(j=!0);let v=c.parallelRoutes,w=new Map(v),x={},y=null,z=!1,A={};for(let c in t){let g,h=t[c],l=s[c],m=v.get(c),B=null!==u?u[c]:null,C=h[0],D=q.concat([c,C]),E=(0,f.createRouterCacheKey)(C),F=void 0!==l?l[0]:void 0,G=void 0!==m?m.get(E):void 0;if(null!==(g=C===d.DEFAULT_SEGMENT_KEY?void 0!==l?{route:l,node:null,dynamicRequestTree:null,children:null}:k(b,l,h,G,j,void 0!==B?B:null,n,o,D,r):p&&0===Object.keys(h[1]).length?k(b,l,h,G,j,void 0!==B?B:null,n,o,D,r):void 0!==l&&void 0!==F&&(0,e.matchSegment)(C,F)&&void 0!==G&&void 0!==l?a(b,G,l,h,j,B,n,o,p,D,r):k(b,l,h,G,j,void 0!==B?B:null,n,o,D,r))){if(null===g.route)return i;null===y&&(y=new Map),y.set(c,g);let a=g.node;if(null!==a){let b=new Map(m);b.set(E,a),w.set(c,b)}let b=g.route;x[c]=b;let d=g.dynamicRequestTree;null!==d?(z=!0,A[c]=d):A[c]=b}else x[c]=h,A[c]=h}if(null===y)return null;let B={lazyData:null,rsc:c.rsc,prefetchRsc:c.prefetchRsc,head:c.head,prefetchHead:c.prefetchHead,loading:c.loading,parallelRoutes:w,navigatedAt:b};return{route:l(h,x),node:B,dynamicRequestTree:z?l(h,A):null,children:y}}(a,b,c,g,!1,h,j,m,n,[],o)}function k(a,b,c,d,e,j,k,n,o,p){return!e&&(void 0===b||(0,g.isNavigatingToNewRootLayout)(b,c))?i:function a(b,c,d,e,g,i,j,k){let n,o,p,q,r=c[1],s=0===Object.keys(r).length;if(void 0!==d&&d.navigatedAt+h.DYNAMIC_STALETIME_MS>b)n=d.rsc,o=d.loading,p=d.head,q=d.navigatedAt;else if(null===e)return m(b,c,null,g,i,j,k);else if(n=e[1],o=e[3],p=s?g:null,q=b,e[4]||i&&s)return m(b,c,e,g,i,j,k);let t=null!==e?e[2]:null,u=new Map,v=void 0!==d?d.parallelRoutes:null,w=new Map(v),x={},y=!1;if(s)k.push(j);else for(let c in r){let d=r[c],e=null!==t?t[c]:null,h=null!==v?v.get(c):void 0,l=d[0],m=j.concat([c,l]),n=(0,f.createRouterCacheKey)(l),o=a(b,d,void 0!==h?h.get(n):void 0,e,g,i,m,k);u.set(c,o);let p=o.dynamicRequestTree;null!==p?(y=!0,x[c]=p):x[c]=d;let q=o.node;if(null!==q){let a=new Map;a.set(n,q),w.set(c,a)}}return{route:c,node:{lazyData:null,rsc:n,prefetchRsc:null,head:p,prefetchHead:null,loading:o,parallelRoutes:w,navigatedAt:q},dynamicRequestTree:y?l(c,x):null,children:u}}(a,c,d,j,k,n,o,p)}function l(a,b){let c=[a[0],b];return 2 in a&&(c[2]=a[2]),3 in a&&(c[3]=a[3]),4 in a&&(c[4]=a[4]),c}function m(a,b,c,d,e,g,h){let i=l(b,b[1]);return i[3]="refetch",{route:b,node:function a(b,c,d,e,g,h,i){let j=c[1],k=null!==d?d[2]:null,l=new Map;for(let c in j){let d=j[c],m=null!==k?k[c]:null,n=d[0],o=h.concat([c,n]),p=(0,f.createRouterCacheKey)(n),q=a(b,d,void 0===m?null:m,e,g,o,i),r=new Map;r.set(p,q),l.set(c,r)}let m=0===l.size;m&&i.push(h);let n=null!==d?d[1]:null,o=null!==d?d[3]:null;return{lazyData:null,parallelRoutes:l,prefetchRsc:void 0!==n?n:null,prefetchHead:m?e:[null,null],loading:void 0!==o?o:null,rsc:s(),head:m?s():null,navigatedAt:b}}(a,b,c,d,e,g,h),dynamicRequestTree:i,children:null}}function n(a,b){b.then(b=>{let{flightData:c}=b;if("string"!=typeof c){for(let b of c){let{segmentPath:c,tree:d,seedData:g,head:h}=b;g&&function(a,b,c,d,g){let h=a;for(let a=0;a<b.length;a+=2){let c=b[a],d=b[a+1],f=h.children;if(null!==f){let a=f.get(c);if(void 0!==a){let b=a.route[0];if((0,e.matchSegment)(d,b)){h=a;continue}}}return}!function a(b,c,d,g){if(null===b.dynamicRequestTree)return;let h=b.children,i=b.node;if(null===h){null!==i&&(function a(b,c,d,g,h){let i=c[1],j=d[1],k=g[2],l=b.parallelRoutes;for(let b in i){let c=i[b],d=j[b],g=k[b],m=l.get(b),n=c[0],o=(0,f.createRouterCacheKey)(n),q=void 0!==m?m.get(o):void 0;void 0!==q&&(void 0!==d&&(0,e.matchSegment)(n,d[0])&&null!=g?a(q,c,d,g,h):p(c,q,null))}let m=b.rsc,n=g[1];null===m?b.rsc=n:r(m)&&m.resolve(n);let o=b.head;r(o)&&o.resolve(h)}(i,b.route,c,d,g),b.dynamicRequestTree=null);return}let j=c[1],k=d[2];for(let b in c){let c=j[b],d=k[b],f=h.get(b);if(void 0!==f){let b=f.route[0];if((0,e.matchSegment)(c[0],b)&&null!=d)return a(f,c,d,g)}}}(h,c,d,g)}(a,c,d,g,h)}o(a,null)}},b=>{o(a,b)})}function o(a,b){let c=a.node;if(null===c)return;let d=a.children;if(null===d)p(a.route,c,b);else for(let a of d.values())o(a,b);a.dynamicRequestTree=null}function p(a,b,c){let d=a[1],e=b.parallelRoutes;for(let a in d){let b=d[a],g=e.get(a);if(void 0===g)continue;let h=b[0],i=(0,f.createRouterCacheKey)(h),j=g.get(i);void 0!==j&&p(b,j,c)}let g=b.rsc;r(g)&&(null===c?g.resolve(null):g.reject(c));let h=b.head;r(h)&&h.resolve(null)}let q=Symbol();function r(a){return a&&a.tag===q}function s(){let a,b,c=new Promise((c,d)=>{a=c,b=d});return c.status="pending",c.resolve=b=>{"pending"===c.status&&(c.status="fulfilled",c.value=b,a(b))},c.reject=a=>{"pending"===c.status&&(c.status="rejected",c.reason=a,b(a))},c.tag=q,c}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},82787:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"findHeadInCache",{enumerable:!0,get:function(){return f}});let d=c(44859),e=c(82521);function f(a,b){return function a(b,c,f,g){if(0===Object.keys(c).length)return[b,f,g];let h=Object.keys(c).filter(a=>"children"!==a);for(let g of("children"in c&&h.unshift("children"),h)){let[h,i]=c[g];if(h===d.DEFAULT_SEGMENT_KEY)continue;let j=b.parallelRoutes.get(g);if(!j)continue;let k=(0,e.createRouterCacheKey)(h),l=(0,e.createRouterCacheKey)(h,!0),m=j.get(k);if(!m)continue;let n=a(m,i,f+"/"+k,f+"/"+l);if(n)return n}return null}(a,b,"","")}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},82853:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"pathHasPrefix",{enumerable:!0,get:function(){return e}});let d=c(67431);function e(a,b){if("string"!=typeof a)return!1;let{pathname:c}=(0,d.parsePath)(a);return c===b||c.startsWith(b+"/")}},83328:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return f}});let d=c(41831),e=c(67431),f=a=>{if(!a.startsWith("/"))return a;let{pathname:b,query:c,hash:f}=(0,e.parsePath)(a);return""+(0,d.removeTrailingSlash)(b)+c+f};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},84254:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"hmrRefreshReducer",{enumerable:!0,get:function(){return d}}),c(94082),c(75497),c(24848),c(77692),c(15426),c(26613),c(11966),c(25918),c(13355),c(78592);let d=function(a,b){return a};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},84655:(a,b,c)=>{"use strict";c.d(b,{cn:()=>ap});var d=c(79390);let e=(a=new Map,b=null,c)=>({nextPart:a,validators:b,classGroupId:c}),f=[],g=(a,b,c)=>{if(0==a.length-b)return c.classGroupId;let d=a[b],e=c.nextPart.get(d);if(e){let c=g(a,b+1,e);if(c)return c}let f=c.validators;if(null===f)return;let h=0===b?a.join("-"):a.slice(b).join("-"),i=f.length;for(let a=0;a<i;a++){let b=f[a];if(b.validator(h))return b.classGroupId}},h=(a,b)=>{let c=e();for(let d in a)i(a[d],c,d,b);return c},i=(a,b,c,d)=>{let e=a.length;for(let f=0;f<e;f++)j(a[f],b,c,d)},j=(a,b,c,d)=>"string"==typeof a?void k(a,b,c):"function"==typeof a?void l(a,b,c,d):void m(a,b,c,d),k=(a,b,c)=>{(""===a?b:n(b,a)).classGroupId=c},l=(a,b,c,d)=>{if(o(a))return void i(a(d),b,c,d);null===b.validators&&(b.validators=[]),b.validators.push({classGroupId:c,validator:a})},m=(a,b,c,d)=>{let e=Object.entries(a),f=e.length;for(let a=0;a<f;a++){let[f,g]=e[a];i(g,n(b,f),c,d)}},n=(a,b)=>{let c=a,d=b.split("-"),f=d.length;for(let a=0;a<f;a++){let b=d[a],f=c.nextPart.get(b);f||(f=e(),c.nextPart.set(b,f)),c=f}return c},o=a=>"isThemeGetter"in a&&!0===a.isThemeGetter,p=[],q=(a,b,c,d,e)=>({modifiers:a,hasImportantModifier:b,baseClassName:c,maybePostfixModifierPosition:d,isExternal:e}),r=/\s+/,s=a=>{let b;if("string"==typeof a)return a;let c="";for(let d=0;d<a.length;d++)a[d]&&(b=s(a[d]))&&(c&&(c+=" "),c+=b);return c},t=[],u=a=>{let b=b=>b[a]||t;return b.isThemeGetter=!0,b},v=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,w=/^\((?:(\w[\w-]*):)?(.+)\)$/i,x=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,y=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,z=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,A=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,B=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,C=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,D=a=>x.test(a),E=a=>!!a&&!Number.isNaN(Number(a)),F=a=>!!a&&Number.isInteger(Number(a)),G=a=>a.endsWith("%")&&E(a.slice(0,-1)),H=a=>y.test(a),I=()=>!0,J=a=>z.test(a)&&!A.test(a),K=()=>!1,L=a=>B.test(a),M=a=>C.test(a),N=a=>!Q(a)&&!Y(a),O=a=>a.startsWith("@container")&&("/"===a[10]&&void 0!==a[11]||"s"===a[11]&&void 0!==a[16]&&a.startsWith("-size/",10)||"n"===a[11]&&void 0!==a[18]&&a.startsWith("-normal/",10)),P=a=>ae(a,ai,K),Q=a=>v.test(a),R=a=>ae(a,aj,J),S=a=>ae(a,ak,E),T=a=>ae(a,am,I),U=a=>ae(a,al,K),V=a=>ae(a,ag,K),W=a=>ae(a,ah,M),X=a=>ae(a,an,L),Y=a=>w.test(a),Z=a=>af(a,aj),$=a=>af(a,al),_=a=>af(a,ag),aa=a=>af(a,ai),ab=a=>af(a,ah),ac=a=>af(a,an,!0),ad=a=>af(a,am,!0),ae=(a,b,c)=>{let d=v.exec(a);return!!d&&(d[1]?b(d[1]):c(d[2]))},af=(a,b,c=!1)=>{let d=w.exec(a);return!!d&&(d[1]?b(d[1]):c)},ag=a=>"position"===a||"percentage"===a,ah=a=>"image"===a||"url"===a,ai=a=>"length"===a||"size"===a||"bg-size"===a,aj=a=>"length"===a,ak=a=>"number"===a,al=a=>"family-name"===a,am=a=>"number"===a||"weight"===a,an=a=>"shadow"===a;Symbol.toStringTag;let ao=((a,...b)=>{let c,d,e,i,j=a=>{let b=d(a);if(b)return b;let f=((a,b)=>{let{parseClassName:c,getClassGroupId:d,getConflictingClassGroupIds:e,sortModifiers:f,postfixLookupClassGroupIds:g}=b,h=[],i=a.trim().split(r),j="";for(let a=i.length-1;a>=0;a-=1){let b,k=i[a],{isExternal:l,modifiers:m,hasImportantModifier:n,baseClassName:o,maybePostfixModifierPosition:p}=c(k);if(l){j=k+(j.length>0?" "+j:j);continue}let q=!!p;if(q){let a=(b=d(o.substring(0,p)))&&g[b]?d(o):void 0;a&&a!==b&&(b=a,q=!1)}else b=d(o);if(!b){if(!q||!(b=d(o))){j=k+(j.length>0?" "+j:j);continue}q=!1}let r=0===m.length?"":1===m.length?m[0]:f(m).join(":"),s=n?r+"!":r,t=s+b;if(h.indexOf(t)>-1)continue;h.push(t);let u=e(b,q);for(let a=0;a<u.length;++a){let b=u[a];h.push(s+b)}j=k+(j.length>0?" "+j:j)}return j})(a,c);return e(a,f),f};return i=k=>(d=(c=(a=>({cache:(a=>{if(a<1)return{get:()=>void 0,set:()=>{}};let b=0,c=Object.create(null),d=Object.create(null),e=(e,f)=>{c[e]=f,++b>a&&(b=0,d=c,c=Object.create(null))};return{get(a){let b=c[a];return void 0!==b?b:void 0!==(b=d[a])?(e(a,b),b):void 0},set(a,b){a in c?c[a]=b:e(a,b)}}})(a.cacheSize),parseClassName:(a=>{let{prefix:b,experimentalParseClassName:c}=a,d=a=>{let b,c=[],d=0,e=0,f=0,g=a.length;for(let h=0;h<g;h++){let g=a[h];if(0===d&&0===e){if(":"===g){c.push(a.slice(f,h)),f=h+1;continue}if("/"===g){b=h;continue}}"["===g?d++:"]"===g?d--:"("===g?e++:")"===g&&e--}let h=0===c.length?a:a.slice(f),i=h,j=!1;return h.endsWith("!")?(i=h.slice(0,-1),j=!0):h.startsWith("!")&&(i=h.slice(1),j=!0),q(c,j,i,b&&b>f?b-f:void 0)};if(b){let a=b+":",c=d;d=b=>b.startsWith(a)?c(b.slice(a.length)):q(p,!1,b,void 0,!0)}if(c){let a=d;d=b=>c({className:b,parseClassName:a})}return d})(a),sortModifiers:(a=>{let b=new Map;return a.orderSensitiveModifiers.forEach((a,c)=>{b.set(a,1e6+c)}),a=>{let c=[],d=[];for(let e=0;e<a.length;e++){let f=a[e],g="["===f[0],h=b.has(f);g||h?(d.length>0&&(d.sort(),c.push(...d),d=[]),c.push(f)):d.push(f)}return d.length>0&&(d.sort(),c.push(...d)),c}})(a),postfixLookupClassGroupIds:(a=>{let b=Object.create(null),c=a.postfixLookupClassGroups;if(c)for(let a=0;a<c.length;a++)b[c[a]]=!0;return b})(a),...(a=>{let b=(a=>{let{theme:b,classGroups:c}=a;return h(c,b)})(a),{conflictingClassGroups:c,conflictingClassGroupModifiers:d}=a;return{getClassGroupId:a=>{if(a.startsWith("[")&&a.endsWith("]"))return(a=>-1===a.slice(1,-1).indexOf(":")?void 0:(()=>{let b=a.slice(1,-1),c=b.indexOf(":"),d=b.slice(0,c);return d?"arbitrary.."+d:void 0})())(a);let c=a.split("-"),d=+(""===c[0]&&c.length>1);return g(c,d,b)},getConflictingClassGroupIds:(a,b)=>{if(b){let b=d[a],e=c[a];return b?e?((a,b)=>{let c=Array(a.length+b.length);for(let b=0;b<a.length;b++)c[b]=a[b];for(let d=0;d<b.length;d++)c[a.length+d]=b[d];return c})(e,b):b:e||f}return c[a]||f}}})(a)}))(b.reduce((a,b)=>b(a),a()))).cache.get,e=c.cache.set,i=j,j(k)),(...a)=>i(((...a)=>{let b,c,d=0,e="";for(;d<a.length;)(b=a[d++])&&(c=s(b))&&(e&&(e+=" "),e+=c);return e})(...a))})(()=>{let a=u("color"),b=u("font"),c=u("text"),d=u("font-weight"),e=u("tracking"),f=u("leading"),g=u("breakpoint"),h=u("container"),i=u("spacing"),j=u("radius"),k=u("shadow"),l=u("inset-shadow"),m=u("text-shadow"),n=u("drop-shadow"),o=u("blur"),p=u("perspective"),q=u("aspect"),r=u("ease"),s=u("animate"),t=()=>["auto","avoid","all","avoid-page","page","left","right","column"],v=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...v(),Y,Q],x=()=>["auto","hidden","clip","visible","scroll"],y=()=>["auto","contain","none"],z=()=>[Y,Q,i],A=()=>[D,"full","auto",...z()],B=()=>[F,"none","subgrid",Y,Q],C=()=>["auto",{span:["full",F,Y,Q]},F,Y,Q],J=()=>[F,"auto",Y,Q],K=()=>["auto","min","max","fr",Y,Q],L=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],M=()=>["start","end","center","stretch","center-safe","end-safe"],ae=()=>["auto",...z()],af=()=>[D,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...z()],ag=()=>[D,"screen","full","dvw","lvw","svw","min","max","fit",...z()],ah=()=>[D,"screen","full","lh","dvh","lvh","svh","min","max","fit",...z()],ai=()=>[a,Y,Q],aj=()=>[...v(),_,V,{position:[Y,Q]}],ak=()=>["no-repeat",{repeat:["","x","y","space","round"]}],al=()=>["auto","cover","contain",aa,P,{size:[Y,Q]}],am=()=>[G,Z,R],an=()=>["","none","full",j,Y,Q],ao=()=>["",E,Z,R],ap=()=>["solid","dashed","dotted","double"],aq=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ar=()=>[E,G,_,V],as=()=>["","none",o,Y,Q],at=()=>["none",E,Y,Q],au=()=>["none",E,Y,Q],av=()=>[E,Y,Q],aw=()=>[D,"full",...z()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[H],breakpoint:[H],color:[I],container:[H],"drop-shadow":[H],ease:["in","out","in-out"],font:[N],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[H],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[H],shadow:[H],spacing:["px",E],text:[H],"text-shadow":[H],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",D,Q,Y,q]}],container:["container"],"container-type":[{"@container":["","normal","size",Y,Q]}],"container-named":[O],columns:[{columns:[E,Q,Y,h]}],"break-after":[{"break-after":t()}],"break-before":[{"break-before":t()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:w()}],overflow:[{overflow:x()}],"overflow-x":[{"overflow-x":x()}],"overflow-y":[{"overflow-y":x()}],overscroll:[{overscroll:y()}],"overscroll-x":[{"overscroll-x":y()}],"overscroll-y":[{"overscroll-y":y()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:A()}],"inset-x":[{"inset-x":A()}],"inset-y":[{"inset-y":A()}],start:[{"inset-s":A(),start:A()}],end:[{"inset-e":A(),end:A()}],"inset-bs":[{"inset-bs":A()}],"inset-be":[{"inset-be":A()}],top:[{top:A()}],right:[{right:A()}],bottom:[{bottom:A()}],left:[{left:A()}],visibility:["visible","invisible","collapse"],z:[{z:[F,"auto",Y,Q]}],basis:[{basis:[D,"full","auto",h,...z()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[E,D,"auto","initial","none",Q]}],grow:[{grow:["",E,Y,Q]}],shrink:[{shrink:["",E,Y,Q]}],order:[{order:[F,"first","last","none",Y,Q]}],"grid-cols":[{"grid-cols":B()}],"col-start-end":[{col:C()}],"col-start":[{"col-start":J()}],"col-end":[{"col-end":J()}],"grid-rows":[{"grid-rows":B()}],"row-start-end":[{row:C()}],"row-start":[{"row-start":J()}],"row-end":[{"row-end":J()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":K()}],"auto-rows":[{"auto-rows":K()}],gap:[{gap:z()}],"gap-x":[{"gap-x":z()}],"gap-y":[{"gap-y":z()}],"justify-content":[{justify:[...L(),"normal"]}],"justify-items":[{"justify-items":[...M(),"normal"]}],"justify-self":[{"justify-self":["auto",...M()]}],"align-content":[{content:["normal",...L()]}],"align-items":[{items:[...M(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...M(),{baseline:["","last"]}]}],"place-content":[{"place-content":L()}],"place-items":[{"place-items":[...M(),"baseline"]}],"place-self":[{"place-self":["auto",...M()]}],p:[{p:z()}],px:[{px:z()}],py:[{py:z()}],ps:[{ps:z()}],pe:[{pe:z()}],pbs:[{pbs:z()}],pbe:[{pbe:z()}],pt:[{pt:z()}],pr:[{pr:z()}],pb:[{pb:z()}],pl:[{pl:z()}],m:[{m:ae()}],mx:[{mx:ae()}],my:[{my:ae()}],ms:[{ms:ae()}],me:[{me:ae()}],mbs:[{mbs:ae()}],mbe:[{mbe:ae()}],mt:[{mt:ae()}],mr:[{mr:ae()}],mb:[{mb:ae()}],ml:[{ml:ae()}],"space-x":[{"space-x":z()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":z()}],"space-y-reverse":["space-y-reverse"],size:[{size:af()}],"inline-size":[{inline:["auto",...ag()]}],"min-inline-size":[{"min-inline":["auto",...ag()]}],"max-inline-size":[{"max-inline":["none",...ag()]}],"block-size":[{block:["auto",...ah()]}],"min-block-size":[{"min-block":["auto",...ah()]}],"max-block-size":[{"max-block":["none",...ah()]}],w:[{w:[h,"screen",...af()]}],"min-w":[{"min-w":[h,"screen","none",...af()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[g]},...af()]}],h:[{h:["screen","lh",...af()]}],"min-h":[{"min-h":["screen","lh","none",...af()]}],"max-h":[{"max-h":["screen","lh",...af()]}],"font-size":[{text:["base",c,Z,R]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[d,ad,T]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",G,Q]}],"font-family":[{font:[$,U,b]}],"font-features":[{"font-features":[Q]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[e,Y,Q]}],"line-clamp":[{"line-clamp":[E,"none",Y,S]}],leading:[{leading:[f,...z()]}],"list-image":[{"list-image":["none",Y,Q]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Y,Q]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:ai()}],"text-color":[{text:ai()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ap(),"wavy"]}],"text-decoration-thickness":[{decoration:[E,"from-font","auto",Y,R]}],"text-decoration-color":[{decoration:ai()}],"underline-offset":[{"underline-offset":[E,"auto",Y,Q]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:z()}],"tab-size":[{tab:[F,Y,Q]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Y,Q]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Y,Q]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:aj()}],"bg-repeat":[{bg:ak()}],"bg-size":[{bg:al()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},F,Y,Q],radial:["",Y,Q],conic:[F,Y,Q]},ab,W]}],"bg-color":[{bg:ai()}],"gradient-from-pos":[{from:am()}],"gradient-via-pos":[{via:am()}],"gradient-to-pos":[{to:am()}],"gradient-from":[{from:ai()}],"gradient-via":[{via:ai()}],"gradient-to":[{to:ai()}],rounded:[{rounded:an()}],"rounded-s":[{"rounded-s":an()}],"rounded-e":[{"rounded-e":an()}],"rounded-t":[{"rounded-t":an()}],"rounded-r":[{"rounded-r":an()}],"rounded-b":[{"rounded-b":an()}],"rounded-l":[{"rounded-l":an()}],"rounded-ss":[{"rounded-ss":an()}],"rounded-se":[{"rounded-se":an()}],"rounded-ee":[{"rounded-ee":an()}],"rounded-es":[{"rounded-es":an()}],"rounded-tl":[{"rounded-tl":an()}],"rounded-tr":[{"rounded-tr":an()}],"rounded-br":[{"rounded-br":an()}],"rounded-bl":[{"rounded-bl":an()}],"border-w":[{border:ao()}],"border-w-x":[{"border-x":ao()}],"border-w-y":[{"border-y":ao()}],"border-w-s":[{"border-s":ao()}],"border-w-e":[{"border-e":ao()}],"border-w-bs":[{"border-bs":ao()}],"border-w-be":[{"border-be":ao()}],"border-w-t":[{"border-t":ao()}],"border-w-r":[{"border-r":ao()}],"border-w-b":[{"border-b":ao()}],"border-w-l":[{"border-l":ao()}],"divide-x":[{"divide-x":ao()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ao()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ap(),"hidden","none"]}],"divide-style":[{divide:[...ap(),"hidden","none"]}],"border-color":[{border:ai()}],"border-color-x":[{"border-x":ai()}],"border-color-y":[{"border-y":ai()}],"border-color-s":[{"border-s":ai()}],"border-color-e":[{"border-e":ai()}],"border-color-bs":[{"border-bs":ai()}],"border-color-be":[{"border-be":ai()}],"border-color-t":[{"border-t":ai()}],"border-color-r":[{"border-r":ai()}],"border-color-b":[{"border-b":ai()}],"border-color-l":[{"border-l":ai()}],"divide-color":[{divide:ai()}],"outline-style":[{outline:[...ap(),"none","hidden"]}],"outline-offset":[{"outline-offset":[E,Y,Q]}],"outline-w":[{outline:["",E,Z,R]}],"outline-color":[{outline:ai()}],shadow:[{shadow:["","none",k,ac,X]}],"shadow-color":[{shadow:ai()}],"inset-shadow":[{"inset-shadow":["none",l,ac,X]}],"inset-shadow-color":[{"inset-shadow":ai()}],"ring-w":[{ring:ao()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:ai()}],"ring-offset-w":[{"ring-offset":[E,R]}],"ring-offset-color":[{"ring-offset":ai()}],"inset-ring-w":[{"inset-ring":ao()}],"inset-ring-color":[{"inset-ring":ai()}],"text-shadow":[{"text-shadow":["none",m,ac,X]}],"text-shadow-color":[{"text-shadow":ai()}],opacity:[{opacity:[E,Y,Q]}],"mix-blend":[{"mix-blend":[...aq(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":aq()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[E]}],"mask-image-linear-from-pos":[{"mask-linear-from":ar()}],"mask-image-linear-to-pos":[{"mask-linear-to":ar()}],"mask-image-linear-from-color":[{"mask-linear-from":ai()}],"mask-image-linear-to-color":[{"mask-linear-to":ai()}],"mask-image-t-from-pos":[{"mask-t-from":ar()}],"mask-image-t-to-pos":[{"mask-t-to":ar()}],"mask-image-t-from-color":[{"mask-t-from":ai()}],"mask-image-t-to-color":[{"mask-t-to":ai()}],"mask-image-r-from-pos":[{"mask-r-from":ar()}],"mask-image-r-to-pos":[{"mask-r-to":ar()}],"mask-image-r-from-color":[{"mask-r-from":ai()}],"mask-image-r-to-color":[{"mask-r-to":ai()}],"mask-image-b-from-pos":[{"mask-b-from":ar()}],"mask-image-b-to-pos":[{"mask-b-to":ar()}],"mask-image-b-from-color":[{"mask-b-from":ai()}],"mask-image-b-to-color":[{"mask-b-to":ai()}],"mask-image-l-from-pos":[{"mask-l-from":ar()}],"mask-image-l-to-pos":[{"mask-l-to":ar()}],"mask-image-l-from-color":[{"mask-l-from":ai()}],"mask-image-l-to-color":[{"mask-l-to":ai()}],"mask-image-x-from-pos":[{"mask-x-from":ar()}],"mask-image-x-to-pos":[{"mask-x-to":ar()}],"mask-image-x-from-color":[{"mask-x-from":ai()}],"mask-image-x-to-color":[{"mask-x-to":ai()}],"mask-image-y-from-pos":[{"mask-y-from":ar()}],"mask-image-y-to-pos":[{"mask-y-to":ar()}],"mask-image-y-from-color":[{"mask-y-from":ai()}],"mask-image-y-to-color":[{"mask-y-to":ai()}],"mask-image-radial":[{"mask-radial":[Y,Q]}],"mask-image-radial-from-pos":[{"mask-radial-from":ar()}],"mask-image-radial-to-pos":[{"mask-radial-to":ar()}],"mask-image-radial-from-color":[{"mask-radial-from":ai()}],"mask-image-radial-to-color":[{"mask-radial-to":ai()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":v()}],"mask-image-conic-pos":[{"mask-conic":[E]}],"mask-image-conic-from-pos":[{"mask-conic-from":ar()}],"mask-image-conic-to-pos":[{"mask-conic-to":ar()}],"mask-image-conic-from-color":[{"mask-conic-from":ai()}],"mask-image-conic-to-color":[{"mask-conic-to":ai()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:aj()}],"mask-repeat":[{mask:ak()}],"mask-size":[{mask:al()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Y,Q]}],filter:[{filter:["","none",Y,Q]}],blur:[{blur:as()}],brightness:[{brightness:[E,Y,Q]}],contrast:[{contrast:[E,Y,Q]}],"drop-shadow":[{"drop-shadow":["","none",n,ac,X]}],"drop-shadow-color":[{"drop-shadow":ai()}],grayscale:[{grayscale:["",E,Y,Q]}],"hue-rotate":[{"hue-rotate":[E,Y,Q]}],invert:[{invert:["",E,Y,Q]}],saturate:[{saturate:[E,Y,Q]}],sepia:[{sepia:["",E,Y,Q]}],"backdrop-filter":[{"backdrop-filter":["","none",Y,Q]}],"backdrop-blur":[{"backdrop-blur":as()}],"backdrop-brightness":[{"backdrop-brightness":[E,Y,Q]}],"backdrop-contrast":[{"backdrop-contrast":[E,Y,Q]}],"backdrop-grayscale":[{"backdrop-grayscale":["",E,Y,Q]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[E,Y,Q]}],"backdrop-invert":[{"backdrop-invert":["",E,Y,Q]}],"backdrop-opacity":[{"backdrop-opacity":[E,Y,Q]}],"backdrop-saturate":[{"backdrop-saturate":[E,Y,Q]}],"backdrop-sepia":[{"backdrop-sepia":["",E,Y,Q]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":z()}],"border-spacing-x":[{"border-spacing-x":z()}],"border-spacing-y":[{"border-spacing-y":z()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Y,Q]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[E,"initial",Y,Q]}],ease:[{ease:["linear","initial",r,Y,Q]}],delay:[{delay:[E,Y,Q]}],animate:[{animate:["none",s,Y,Q]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[p,Y,Q]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:at()}],"rotate-x":[{"rotate-x":at()}],"rotate-y":[{"rotate-y":at()}],"rotate-z":[{"rotate-z":at()}],scale:[{scale:au()}],"scale-x":[{"scale-x":au()}],"scale-y":[{"scale-y":au()}],"scale-z":[{"scale-z":au()}],"scale-3d":["scale-3d"],skew:[{skew:av()}],"skew-x":[{"skew-x":av()}],"skew-y":[{"skew-y":av()}],transform:[{transform:[Y,Q,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:aw()}],"translate-x":[{"translate-x":aw()}],"translate-y":[{"translate-y":aw()}],"translate-z":[{"translate-z":aw()}],"translate-none":["translate-none"],zoom:[{zoom:[F,Y,Q]}],accent:[{accent:ai()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:ai()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Y,Q]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":ai()}],"scrollbar-track-color":[{"scrollbar-track":ai()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":z()}],"scroll-mx":[{"scroll-mx":z()}],"scroll-my":[{"scroll-my":z()}],"scroll-ms":[{"scroll-ms":z()}],"scroll-me":[{"scroll-me":z()}],"scroll-mbs":[{"scroll-mbs":z()}],"scroll-mbe":[{"scroll-mbe":z()}],"scroll-mt":[{"scroll-mt":z()}],"scroll-mr":[{"scroll-mr":z()}],"scroll-mb":[{"scroll-mb":z()}],"scroll-ml":[{"scroll-ml":z()}],"scroll-p":[{"scroll-p":z()}],"scroll-px":[{"scroll-px":z()}],"scroll-py":[{"scroll-py":z()}],"scroll-ps":[{"scroll-ps":z()}],"scroll-pe":[{"scroll-pe":z()}],"scroll-pbs":[{"scroll-pbs":z()}],"scroll-pbe":[{"scroll-pbe":z()}],"scroll-pt":[{"scroll-pt":z()}],"scroll-pr":[{"scroll-pr":z()}],"scroll-pb":[{"scroll-pb":z()}],"scroll-pl":[{"scroll-pl":z()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Y,Q]}],fill:[{fill:["none",...ai()]}],"stroke-w":[{stroke:[E,Z,R,S]}],stroke:[{stroke:["none",...ai()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function ap(...a){return ao((0,d.$)(a))}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86556:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"refreshReducer",{enumerable:!0,get:function(){return o}});let d=c(94082),e=c(75497),f=c(24848),g=c(77692),h=c(15426),i=c(26613),j=c(63102),k=c(25918),l=c(13355),m=c(78592),n=c(18226);function o(a,b){let{origin:c}=b,o={},p=a.canonicalUrl,q=a.tree;o.preserveCustomHistoryState=!1;let r=(0,k.createEmptyCacheNode)(),s=(0,m.hasInterceptionRouteInCurrentTree)(a.tree);r.lazyData=(0,d.fetchServerResponse)(new URL(p,c),{flightRouterState:[q[0],q[1],q[2],"refetch"],nextUrl:s?a.nextUrl:null});let t=Date.now();return r.lazyData.then(async c=>{let{flightData:d,canonicalUrl:k}=c;if("string"==typeof d)return(0,h.handleExternalUrl)(a,o,d,a.pushRef.pendingPush);for(let c of(r.lazyData=null,d)){let{tree:d,seedData:i,head:m,isRootRender:u}=c;if(!u)return console.log("REFRESH FAILED"),a;let v=(0,f.applyRouterStatePatchToTree)([""],q,d,a.canonicalUrl);if(null===v)return(0,l.handleSegmentMismatch)(a,b,d);if((0,g.isNavigatingToNewRootLayout)(q,v))return(0,h.handleExternalUrl)(a,o,p,a.pushRef.pendingPush);let w=k?(0,e.createHrefFromUrl)(k):void 0;if(k&&(o.canonicalUrl=w),null!==i){let a=i[1],b=i[3];r.rsc=a,r.prefetchRsc=null,r.loading=b,(0,j.fillLazyItemsTillLeafWithHead)(t,r,void 0,d,i,m,void 0),o.prefetchCache=new Map}await (0,n.refreshInactiveParallelSegments)({navigatedAt:t,state:a,updatedTree:v,updatedCache:r,includeNextUrl:s,canonicalUrl:o.canonicalUrl||a.canonicalUrl}),o.cache=r,o.patchedTree=v,q=v}return(0,i.handleMutable)(a,o)},()=>a)}c(68459),("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},94496:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{default:function(){return q},useLinkStatus:function(){return s}});let d=c(86274),e=c(78157),f=d._(c(31768)),g=c(71281),h=c(9344),i=c(79268),j=c(53387),k=c(61725);c(99026);let l=c(37384),m=c(29056),n=c(99500);c(98762);let o=c(68459);function p(a){return"string"==typeof a?a:(0,g.formatUrl)(a)}function q(a){var b;let c,d,g,[q,s]=(0,f.useOptimistic)(l.IDLE_LINK_STATUS),t=(0,f.useRef)(null),{href:u,as:v,children:w,prefetch:x=null,passHref:y,replace:z,shallow:A,scroll:B,onClick:C,onMouseEnter:D,onTouchStart:E,legacyBehavior:F=!1,onNavigate:G,ref:H,unstable_dynamicOnHover:I,...J}=a;c=w,F&&("string"==typeof c||"number"==typeof c)&&(c=(0,e.jsx)("a",{children:c}));let K=f.default.useContext(h.AppRouterContext),L=!1!==x,M=!1!==x?null===(b=x)||"auto"===b?o.FetchStrategy.PPR:o.FetchStrategy.Full:o.FetchStrategy.PPR,{href:N,as:O}=f.default.useMemo(()=>{let a=p(u);return{href:a,as:v?p(v):a}},[u,v]);F&&(d=f.default.Children.only(c));let P=F?d&&"object"==typeof d&&d.ref:H,Q=f.default.useCallback(a=>(null!==K&&(t.current=(0,l.mountLinkInstance)(a,N,K,M,L,s)),()=>{t.current&&((0,l.unmountLinkForCurrentNavigation)(t.current),t.current=null),(0,l.unmountPrefetchableInstance)(a)}),[L,N,K,M,s]),R={ref:(0,i.useMergedRef)(Q,P),onClick(a){F||"function"!=typeof C||C(a),F&&d.props&&"function"==typeof d.props.onClick&&d.props.onClick(a),K&&(a.defaultPrevented||function(a,b,c,d,e,g,h){let{nodeName:i}=a.currentTarget;if(!("A"===i.toUpperCase()&&function(a){let b=a.currentTarget.getAttribute("target");return b&&"_self"!==b||a.metaKey||a.ctrlKey||a.shiftKey||a.altKey||a.nativeEvent&&2===a.nativeEvent.which}(a)||a.currentTarget.hasAttribute("download"))){if(!(0,m.isLocalURL)(b)){e&&(a.preventDefault(),location.replace(b));return}if(a.preventDefault(),h){let a=!1;if(h({preventDefault:()=>{a=!0}}),a)return}f.default.startTransition(()=>{(0,n.dispatchNavigateAction)(c||b,e?"replace":"push",null==g||g,d.current)})}}(a,N,O,t,z,B,G))},onMouseEnter(a){F||"function"!=typeof D||D(a),F&&d.props&&"function"==typeof d.props.onMouseEnter&&d.props.onMouseEnter(a),K&&L&&(0,l.onNavigationIntent)(a.currentTarget,!0===I)},onTouchStart:function(a){F||"function"!=typeof E||E(a),F&&d.props&&"function"==typeof d.props.onTouchStart&&d.props.onTouchStart(a),K&&L&&(0,l.onNavigationIntent)(a.currentTarget,!0===I)}};return(0,j.isAbsoluteUrl)(O)?R.href=O:F&&!y&&("a"!==d.type||"href"in d.props)||(R.href=(0,k.addBasePath)(O)),g=F?f.default.cloneElement(d,R):(0,e.jsx)("a",{...J,...R,children:c}),(0,e.jsx)(r.Provider,{value:q,children:g})}let r=(0,f.createContext)(l.IDLE_LINK_STATUS),s=()=>(0,f.useContext)(r);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},94650:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"hasBasePath",{enumerable:!0,get:function(){return e}});let d=c(82853);function e(a){return(0,d.pathHasPrefix)(a,"")}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},98762:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"errorOnce",{enumerable:!0,get:function(){return c}});let c=a=>{}},98944:()=>{},99500:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{createMutableActionQueue:function(){return o},dispatchNavigateAction:function(){return q},dispatchTraverseAction:function(){return r},getCurrentAppRouterState:function(){return p},publicAppRouterInstance:function(){return s}});let d=c(13136),e=c(25248),f=c(31768),g=c(39370);c(68459);let h=c(46259),i=c(61725),j=c(25918),k=c(37446),l=c(37384);function m(a,b){null!==a.pending&&(a.pending=a.pending.next,null!==a.pending?n({actionQueue:a,action:a.pending,setState:b}):a.needsRefresh&&(a.needsRefresh=!1,a.dispatch({type:d.ACTION_REFRESH,origin:window.location.origin},b)))}async function n(a){let{actionQueue:b,action:c,setState:d}=a,e=b.state;b.pending=c;let f=c.payload,h=b.action(e,f);function i(a){c.discarded||(b.state=a,m(b,d),c.resolve(a))}(0,g.isThenable)(h)?h.then(i,a=>{m(b,d),c.reject(a)}):i(h)}function o(a,b){let c={state:a,dispatch:(a,b)=>(function(a,b,c){let e={resolve:c,reject:()=>{}};if(b.type!==d.ACTION_RESTORE){let a=new Promise((a,b)=>{e={resolve:a,reject:b}});(0,f.startTransition)(()=>{c(a)})}let g={payload:b,next:null,resolve:e.resolve,reject:e.reject};null===a.pending?(a.last=g,n({actionQueue:a,action:g,setState:c})):b.type===d.ACTION_NAVIGATE||b.type===d.ACTION_RESTORE?(a.pending.discarded=!0,g.next=a.pending.next,a.pending.payload.type===d.ACTION_SERVER_ACTION&&(a.needsRefresh=!0),n({actionQueue:a,action:g,setState:c})):(null!==a.last&&(a.last.next=g),a.last=g)})(c,a,b),action:async(a,b)=>(0,e.reducer)(a,b),pending:null,last:null,onRouterTransitionStart:null!==b&&"function"==typeof b.onRouterTransitionStart?b.onRouterTransitionStart:null};return c}function p(){return null}function q(a,b,c,e){let f=new URL((0,i.addBasePath)(a),location.href);(0,l.setLinkForCurrentNavigation)(e);(0,h.dispatchAppRouterAction)({type:d.ACTION_NAVIGATE,url:f,isExternalUrl:(0,j.isExternalURL)(f),locationSearch:location.search,shouldScroll:c,navigateType:b,allowAliasing:!0})}function r(a,b){(0,h.dispatchAppRouterAction)({type:d.ACTION_RESTORE,url:new URL(a),tree:b})}let s={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(a,b)=>{let c=function(){throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}(),e=(0,j.createPrefetchURL)(a);if(null!==e){var f;(0,k.prefetchReducer)(c.state,{type:d.ACTION_PREFETCH,url:e,kind:null!=(f=null==b?void 0:b.kind)?f:d.PrefetchKind.FULL})}},replace:(a,b)=>{(0,f.startTransition)(()=>{var c;q(a,"replace",null==(c=null==b?void 0:b.scroll)||c,null)})},push:(a,b)=>{(0,f.startTransition)(()=>{var c;q(a,"push",null==(c=null==b?void 0:b.scroll)||c,null)})},refresh:()=>{(0,f.startTransition)(()=>{(0,h.dispatchAppRouterAction)({type:d.ACTION_REFRESH,origin:window.location.origin})})},hmrRefresh:()=>{throw Object.defineProperty(Error("hmrRefresh can only be used in development mode. Please use refresh instead."),"__NEXT_ERROR_CODE",{value:"E485",enumerable:!1,configurable:!0})}};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[901,200,900,332,477,585,647],()=>b(b.s=22772));module.exports=c})();
|
|
9
|
+
`),()=>{j.current?.removeAttribute("data-motion-pop-id"),u.contains(t)&&u.removeChild(t)}},[b]),(0,d.jsx)(aN,{isPresent:b,childRef:j,sizeRef:k,pop:h,children:!1===h?a:e.cloneElement(a,{ref:m})})}let aP=({children:a,initial:b,isPresent:c,onExitComplete:f,custom:g,presenceAffectsLayout:h,mode:i,anchorX:j,anchorY:k,root:l})=>{let m=(0,aH.M)(aQ),n=(0,e.useId)(),o=(0,e.useRef)(c),p=(0,e.useRef)(f);aI(()=>{o.current=c,p.current=f});let q=!0,r=(0,e.useMemo)(()=>(q=!1,{id:n,initial:b,isPresent:c,custom:g,onExitComplete:a=>{for(let b of(m.set(a,!0),m.values()))if(!b)return;f&&f()},register:a=>(m.set(a,!1),()=>{m.delete(a),o.current||m.size||p.current?.()})}),[c,m,f]);return h&&q&&(r={...r}),(0,e.useMemo)(()=>{m.forEach((a,b)=>m.set(b,!1))},[c]),e.useEffect(()=>{c||m.size||!f||f()},[c]),a=(0,d.jsx)(aO,{pop:"popLayout"===i,isPresent:c,anchorX:j,anchorY:k,root:l,children:a}),(0,d.jsx)(aJ.t.Provider,{value:r,children:a})};function aQ(){return new Map}var aR=c(85862);let aS=a=>a.key||"";function aT(a){let b=[];return e.Children.forEach(a,a=>{(0,e.isValidElement)(a)&&b.push(a)}),b}let aU=({children:a,custom:b,initial:c=!0,onExitComplete:f,presenceAffectsLayout:g=!0,mode:h="sync",propagate:i=!1,anchorX:j="left",anchorY:k="top",root:l})=>{let[m,n]=(0,aR.xQ)(i),o=(0,e.useMemo)(()=>aT(a),[a]),p=i&&!m?[]:o.map(aS),q=(0,e.useRef)(!0),r=(0,e.useRef)(o),s=(0,aH.M)(()=>new Map),t=(0,e.useRef)(new Set),[u,v]=(0,e.useState)(o),[w,x]=(0,e.useState)(o);aI(()=>{q.current=!1,r.current=o;for(let a=0;a<w.length;a++){let b=aS(w[a]);p.includes(b)?(s.delete(b),t.current.delete(b)):!0!==s.get(b)&&s.set(b,!1)}},[w,p.length,p.join("-")]);let y=[];if(o!==u){let a=[...o];for(let b=0;b<w.length;b++){let c=w[b],d=aS(c);p.includes(d)||(a.splice(b,0,c),y.push(c))}return"wait"===h&&y.length&&(a=y),x(aT(a)),v(o),null}let{forceRender:z}=(0,e.useContext)(aG.L);return(0,d.jsx)(d.Fragment,{children:w.map(a=>{let e=aS(a),u=(!i||!!m)&&(o===w||p.includes(e));return(0,d.jsx)(aP,{isPresent:u,initial:(!q.current||!!c)&&void 0,custom:b,presenceAffectsLayout:g,mode:h,root:l,onExitComplete:u?void 0:()=>{if(t.current.has(e)||!s.has(e))return;t.current.add(e),s.set(e,!0);let a=!0;s.forEach(b=>{b||(a=!1)}),a&&(z?.(),x(r.current),i&&n?.(),f&&f())},anchorX:j,anchorY:k,children:a},e)})})};var aV=c(60185);function aW({checks:a,className:b}){let c=(0,L.I)()??!1;return(0,d.jsx)("ul",{className:(0,N.cn)(A.Es.list,b),children:(0,d.jsx)(aU,{initial:!1,children:a.map(a=>{let b=function(a){switch(a){case"passed":return aC;case"failed":return aD;case"checking":return aE;default:return aF}}(a.status);return(0,d.jsxs)(aV.P.li,{layout:!c,initial:!c&&{opacity:0,y:8,scale:.98},animate:{opacity:1,y:0,scale:1},exit:c?void 0:{opacity:0,y:-4,scale:.98},transition:c?{duration:0}:{duration:.24,ease:[.2,0,0,1]},className:"flex items-start gap-3 rounded-md border border-border bg-muted/30 p-3",children:[(0,d.jsx)(b,{className:(0,N.cn)("mt-0.5 size-4 shrink-0",function(a){switch(a){case"passed":return"text-emerald-600";case"failed":return"text-destructive";case"checking":return"text-muted-foreground animate-spin";default:return"text-muted-foreground"}}(a.status))}),(0,d.jsxs)("div",{className:(0,N.cn)(A.Es.stackSm,"min-w-0 flex-1"),children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:a.label}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:function(a){switch(a){case"passed":return"Passed";case"failed":return"Failed";case"checking":return"Checking";default:return"Pending"}}(a.status)})]}),a.detail?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:a.detail}):null,"failed"===a.status&&a.action?(0,d.jsx)("p",{className:"text-sm text-foreground",children:a.action}):null]})]},a.id)})})})}class aX{constructor(a,b){this.onDispatch=a,this.reducedMotion=b,this.queue=[],this.draining=!1,this.cancelled=!1}enqueue(a){this.queue.push(a),this.drain()}cancel(){this.cancelled=!0,this.queue=[]}reset(){this.cancelled=!1,this.queue=[],this.draining=!1}async drain(){if(!this.draining&&!this.cancelled){for(this.draining=!0;this.queue.length>0&&!this.cancelled;){let a=this.queue.shift();if(!a)break;this.onDispatch(a),this.reducedMotion||await new Promise(a=>{window.setTimeout(a,280)})}this.draining=!1,this.queue.length>0&&!this.cancelled&&this.drain()}}}function aY(a){let b=a.trim();if(!b)return null;try{return JSON.parse(b)}catch{return null}}function aZ({readiness:a,onContinue:b,onStepCompleted:c}){let f=(0,L.I)()??!1,[g,h]=(0,e.useState)([]),[i,j]=(0,e.useState)(!0),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(!1),q=(0,e.useRef)(0),r=(0,e.useRef)(null),s=(0,e.useRef)(null),t=(0,e.useCallback)(a=>{h(a)},[]),u=(0,e.useCallback)(async()=>{r.current?.abort(),s.current?.cancel();let a=q.current+1;q.current=a;let b=new AbortController;r.current=b,j(!0),l(null),n(!1),p(!1),h([]);let c=new aX(b=>{if(q.current===a){if("check-started"===b.type)return void t(a=>a.some(a=>a.id===b.id)?a:[...a,{id:b.id,label:b.label,status:"checking"}]);t(a=>a.map(a=>{var c;return a.id===b.check.id?{id:(c=b.check).id,label:c.label,status:"passed"===c.status?"passed":"failed",detail:c.detail,action:c.action}:a}))}},f);s.current=c;try{let d=await fetch("/api/setup/local-readiness?stream=1",{signal:b.signal});if(!d.ok){let a=await d.json();throw Error(a.error??"Local readiness check failed")}if(!d.body)throw Error("Local readiness stream was empty");let e=d.body.getReader(),f=new TextDecoder,g="";for(;;){let{done:b,value:d}=await e.read();if(b)break;if(q.current!==a)return;let h=(g+=f.decode(d,{stream:!0})).split("\n");for(let b of(g=h.pop()??"",h)){let d=aY(b);if(d&&q.current===a){if("run-failed"===d.type)throw Error(d.message);if("run-completed"===d.type){n(d.allPassed);continue}c.enqueue(d)}}}let h=aY(g);if(h&&q.current===a){if("run-failed"===h.type)throw Error(h.message);"run-completed"===h.type?n(h.allPassed):c.enqueue(h)}}catch(a){if(b.signal.aborted)return;l(a instanceof Error?a.message:"Could not run local readiness checks"),h([]),n(!1)}finally{q.current===a&&j(!1)}},[t,f]),v=g.filter(a=>"passed"===a.status);return(0,d.jsx)(P.i,{title:`Step 5 of 7 \xb7 Check local readiness`,description:"We're checking whether this machine is ready for remote setup.",children:(0,d.jsxs)("div",{className:A.Es.stackSm,children:[i&&0===g.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Running local readiness checks…"}):null,k?(0,d.jsxs)("div",{className:A.Es.stackSm,children:[(0,d.jsx)("p",{className:"text-sm text-destructive",children:k}),(0,d.jsx)(H.$,{type:"button",variant:"outline",onClick:()=>void u(),children:"Retry checks"})]}):null,g.length>0?(0,d.jsx)(aW,{checks:g}):null,!m||i||a.localReadinessReviewed?null:(0,d.jsx)(ag,{heading:"Local readiness passed",explanation:"This machine passed the local readiness checks required before cloud secrets setup.",details:v.length>0?v.map(a=>a.label):["All local readiness checks passed."],continueLabel:"Continue to cloud secrets",onContinue:b})]})})}function a$(a){return a.current+=1,a.current}function a_(a,b){return b===a.current}function a0({harnessSecretPreview:a,targetWorkflowPreview:b}){return a||b?a?(0,d.jsxs)("div",{className:"space-y-4",children:[a.validationError?(0,d.jsx)("p",{className:"text-sm text-destructive",children:a.validationError}):null,(0,d.jsxs)("dl",{className:"grid grid-cols-1 gap-3 md:grid-cols-2 text-sm",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("dt",{className:"text-muted-foreground",children:"Harness dispatch repo"}),(0,d.jsx)("dd",{className:"font-medium break-all",children:a.harnessDispatchRepo})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("dt",{className:"text-muted-foreground",children:"Repo access"}),(0,d.jsx)("dd",{className:"font-medium",children:a.repoAccess})]})]}),(0,d.jsx)($,{title:"Secret write plan (key names only)",content:a.secretWritePlan.map(a=>`${a.name}: ${a.action} (${a.source})`).join("\n")}),(0,d.jsx)($,{title:"Manual copy-paste alternative",content:a.manualInstructions.join("\n")})]}):b?(0,d.jsxs)("div",{className:"space-y-4",children:[b.validationError?(0,d.jsx)("p",{className:"text-sm text-destructive",children:b.validationError}):null,(0,d.jsx)($,{title:"Workflow install preview",content:b.workflowPreviewSummary}),(0,d.jsx)($,{title:"Manual copy-paste alternative",content:b.manualInstructions.join("\n")})]}):null:(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Generate a preview before confirming any remote write."})}function a1({open:a,onOpenChange:b,isLoading:c,previewError:e,preview:f,previewIsCurrent:g}){return(0,d.jsxs)("details",{open:a,className:"rounded-md border border-border bg-background p-3",children:[(0,d.jsx)("summary",{className:"cursor-pointer text-sm font-medium",onClick:c=>{c.preventDefault(),b(!a)},children:"Review generated secrets (optional)"}),(0,d.jsx)("div",{className:"mt-3 space-y-3",children:c?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Generating redacted cloud secrets preview…"}),(0,d.jsxs)("div",{className:"space-y-2","aria-hidden":"true",children:[(0,d.jsx)(ac,{className:"h-4 w-[60%]"}),(0,d.jsx)(ac,{className:"h-24 w-full"})]})]}):e?(0,d.jsx)("p",{className:"text-sm text-destructive",children:e}):(0,d.jsx)(a0,{harnessSecretPreview:g?f:void 0})})]})}function a2(a){let b=h(a.harnessSecretStatuses);if(b.allPresent)return"All required GitHub Actions secrets are present in the harness repo.";let c=[];return b.missing.length>0&&c.push(`Missing: ${b.missing.join(", ")}`),b.unknown.length>0&&c.push(`Unknown: ${b.unknown.join(", ")}`),c.join(". ")}function a3({blocker:a}){return(0,d.jsxs)("div",{className:"space-y-2 rounded-md border border-destructive/30 bg-destructive/5 p-4",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:a.message}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:a.action})]})}async function a4(a){if("undefined"!=typeof navigator&&navigator.clipboard?.writeText)return void await navigator.clipboard.writeText(a);throw Error("Clipboard is not available in this browser.")}function a5({readiness:a,setupSummary:b,controlPlaneContext:c,cloudSecretsPreviewOpened:f=!1,remoteSecretPreviewStale:h=!1,cloudSecretsApplyEvidence:i,initialSummary:j,onSummaryUpdated:l,onUiStateChange:m,onContinue:n,onStepCompleted:o,blockedByUpstream:p=!1,onGoToHarnessRepo:q,onGoToConnectServices:v}){let[y,z]=(0,e.useState)(j),[B,C]=(0,e.useState)(()=>x(j).allowed?"automatic":null),[D,E]=(0,e.useState)(!1),[F,G]=(0,e.useState)(f),[I,J]=(0,e.useState)(null),[K,L]=(0,e.useState)(!1),[M,N]=(0,e.useState)(!1),[O,Q]=(0,e.useState)(!1),[R,T]=(0,e.useState)(null),[U,V]=(0,e.useState)(null),[W,X]=(0,e.useState)(null),[Y,Z]=(0,e.useState)(null),[$,_]=(0,e.useState)(!1),[ab,ac]=(0,e.useState)(!1),[ad,ah]=(0,e.useState)(!1),[ai,aj]=(0,e.useState)(null),[ak,al]=(0,e.useState)(!1),[am,an]=(0,e.useState)(null),[ao,ap]=(0,e.useState)(null),[aq,ar]=(0,e.useState)(null),[at,au]=(0,e.useState)(null),[av,aw]=(0,e.useState)(!1),ax=["Preparing repository configuration"],ay=(0,e.useRef)({current:0});(0,e.useRef)(!1);let az=(0,e.useMemo)(()=>k({setupSummary:b,controlPlaneContext:c}),[b,c]),aA=(0,e.useCallback)((a,b)=>{var c,d;a_((d=c={tracker:ay.current,revision:b,summary:a,install:a=>{z(a),l?.(a)}}).tracker,d.revision)&&c.install(c.summary)},[l]),aB=(0,e.useCallback)(async(a="manual")=>{let b=a$(ay.current);T("mount"===a?"mount-refresh":"refresh"),"mount"===a?au(null):V(null);try{let a=await fetch("/api/setup/remote-summary"),c=await a.json();if(!a.ok)throw Error(c.error??"Remote summary refresh failed");if(!a_(ay.current,b))return null;return aA(c,b),c}catch(d){if(!a_(ay.current,b))return null;let c=d instanceof Error?d.message:"Remote summary refresh failed";return"mount"===a?au(c):V(c),null}finally{a_(ay.current,b)&&(T(null),"mount"===a&&aw(!0))}},[aA]),aC=null!==I&&K,aD=F||f,aE=(0,e.useMemo)(()=>x(y),[y]),aF=p||!aE.allowed,aG=p?"Fix harness repo access in local setup before cloud secrets can be configured.":aE.reason,aH=p?"Return to Step 4 and verify your harness repo, then refresh.":aE.action,aI=y.harnessSecretStatuses.some(a=>"missing"===a.status),aJ=(0,e.useMemo)(()=>(function(a){var b;let c=(b=a?.harnessRepo,b?.trim()||"<harness-dispatch-repo>");return{summary:`Manual GitHub Actions secret setup for ${c}.`,steps:[`Open GitHub repository settings for ${c}.`,"Navigate to Settings → Secrets and variables → Actions.","Create or update these secret names: HARNESS_CONFIG_JSON_B64, LINEAR_API_KEY, CURSOR_API_KEY, HARNESS_GITHUB_TOKEN.","Set HARNESS_CONFIG_JSON_B64 from the base64-encoded full private harness config.","Set LINEAR_API_KEY, CURSOR_API_KEY, and HARNESS_GITHUB_TOKEN from your operator credentials.","Never print secret values in logs, docs, PR comments, or generated setup previews."]}})({harnessRepo:y.harnessDispatchRepo}).steps,[y.harnessDispatchRepo]),aK=(0,e.useCallback)(()=>{J(null),L(!1),X(null),Z(null),_(!1),Q(!1),N(!1),V(null)},[]),aL=(0,e.useCallback)(()=>{aj(null),al(!1),an(null),ap(null),ac(!1),ar(null)},[]),aM=(0,e.useCallback)(a=>{C(a),"automatic"===a?aL():aK()},[aK,aL]),aN=(0,e.useCallback)(()=>{aj(null),al(!1),an(null),ar(null)},[]),aO=(0,e.useCallback)((a,b)=>{E(!0),m?.({remoteSecretPreviewStale:!1}),"automatic"===a?(_(!0),b&&m?.({remoteSecretPreviewStale:!1,cloudSecretsApplyEvidence:b})):ac(!0),o?.()},[o,m]),aP=(0,e.useCallback)(async()=>{let a=await fetch("/api/setup/preview-harness-secrets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})}),b=await a.json();if(!a.ok)throw Error(b.error??"Preview failed");return J(b),L(!0),b},[]),aQ=(0,e.useCallback)(()=>{G(!0),m?.({cloudSecretsPreviewOpened:!0})},[m]),aR=(0,e.useCallback)(async()=>{T("preview"),V(null),X(null),Z(null),_(!1),Q(!1),aQ();try{await aP()}catch(a){J(null),L(!1),X(a instanceof Error?a.message:"Preview failed")}finally{T(null)}},[aQ,aP]),aS=(0,e.useCallback)(a=>{!aF&&(N(a),a&&(aQ(),aC||"preview"===R||aR()))},[aR,R,aQ,aC,aF]),aT=async()=>{if(!O||aF||"apply"===R)return;let a=a$(ay.current);T("apply"),V(null),_(!1);try{let b=aC&&I?I:await aP();if(b.validationError)throw Error(b.validationError);let c=await fetch("/api/setup/apply-harness-secrets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({confirmed:!0,fingerprint:b.fingerprint})}),d=await c.json();if(!c.ok)throw Error(d.error??"Apply failed");if(!a_(ay.current,a))return;let e=d.summary,f=d.apply,g=d.evidence;Z(f),aA(e,a),J(null),L(!1),Q(!1),N(!1),s(e)?aO("automatic",g):V(`Write request completed, but verification failed: ${a2(e)}. Refresh or retry.`)}catch(b){if(!a_(ay.current,a))return;V(b instanceof Error?b.message:"Apply failed")}finally{a_(ay.current,a)&&T(null)}},aU=async()=>{if(!aF){if(!ad)return void an("Confirm the sensitivity warning before generating manual copy values.");T("manual-values"),an(null),ar(null);try{let a=await fetch("/api/setup/manual-harness-secret-values",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({confirmedSensitiveReveal:!0})}),b=await a.json();if(!a.ok)throw Error(b.error??"Manual value generation failed");aj(b),al(!1),b.missing.length>0&&an(`Some values are unavailable locally: ${b.missing.join(", ")}`)}catch(a){aN(),an(a instanceof Error?a.message:"Manual value generation failed")}finally{T(null)}}},aV=async()=>{if(!aF){T("manual-verify"),ap(null),ac(!1);try{let a=await aB("manual");if(!a)return;s(a)?(aO("manual"),ap(a2(a)),aN()):ap(a2(a))}finally{T(null)}}},aW=async(a,b)=>{if(!b)return void ar(`${a} is not available to copy.`);try{await a4(b),ar(`Copied ${a} to clipboard.`)}catch(b){ar(b instanceof Error?b.message:`Could not copy ${a}.`)}},aX=(0,e.useMemo)(()=>(function(a){var b;let c=s(a.summary),d=a.previewStaleCleared??!1,e={...a.uiState,remoteSecretPreviewStale:!d&&a.uiState?.remoteSecretPreviewStale},f=w({blockers:r(a.setupSummary,a.summary,e,a.staleSmokeDiagnostics,a.controlPlaneContext).blockers,evidence:(b={postApplyVerificationReady:c,previewStaleCleared:d,evidence:a.uiState?.cloudSecretsApplyEvidence,currentConfigStateFingerprint:k({setupSummary:a.setupSummary,controlPlaneContext:a.controlPlaneContext})}).evidence,currentConfigStateFingerprint:b.currentConfigStateFingerprint,previewStaleCleared:b.previewStaleCleared,postApplyVerificationReady:b.postApplyVerificationReady});return{canContinue:c&&a.localReadinessComplete&&0===f.length,postApplyVerificationReady:c,blockers:f}})({summary:y,setupSummary:b,localReadinessComplete:a.localReadinessComplete,uiState:{remoteSecretPreviewStale:h,cloudSecretsApplyEvidence:i,cloudSecretsPreviewOpened:aD},staleSmokeDiagnostics:a.staleSmokeDiagnostics,controlPlaneContext:c,previewStaleCleared:D}),[y,b,a.localReadinessComplete,a.staleSmokeDiagnostics,h,i,c,D,aD]),aY=u({evidence:i,currentConfigStateFingerprint:az,harnessDispatchRepo:y.harnessDispatchRepo}),aZ=function(a){if("automatic"!==a.setupType||"apply"===a.loading)return{kind:"idle"};if(a.applyError)return{kind:"apply-failed",message:a.applyError,showRetry:!0};let b=u({evidence:a.cloudSecretsApplyEvidence,currentConfigStateFingerprint:a.currentConfigStateFingerprint,harnessDispatchRepo:a.harnessDispatchRepo});return a.verifiedAutomaticSuccess||a.applyResult&&b?a.cloudSecretsApplyEvidence&&t({evidence:a.cloudSecretsApplyEvidence,currentConfigStateFingerprint:a.currentConfigStateFingerprint,harnessDispatchRepo:a.harnessDispatchRepo})?{kind:"stale-after-apply",message:"Local or control-plane config changed after the last automatic secret write. Preview and apply again to refresh HARNESS_CONFIG_JSON_B64.",showRetry:!0,primaryBlocker:a.eligibility.blockers.find(a=>"cloud-secrets-stale-linear-config"===a.id)}:a.eligibility.postApplyVerificationReady?a.eligibility.canContinue?{kind:"success",message:"Encrypted GitHub Actions secrets were created or updated successfully.",canContinue:!0}:{kind:"success-blocked",message:"Automatic secret write succeeded, but Step 6 is not ready to continue yet.",primaryBlocker:a.eligibility.blockers[0],showRefresh:!0,showRetry:!0}:{kind:"verification-inconclusive",message:"Write request completed, but remote secret verification is not ready yet. Refresh or retry.",showRefresh:!0,showRetry:!0}:{kind:"idle"}}({setupType:B,loading:R,applyError:U,applyResult:Y,verifiedAutomaticSuccess:$,cloudSecretsApplyEvidence:i,eligibility:aX,currentConfigStateFingerprint:az,harnessDispatchRepo:y.harnessDispatchRepo}),a0=function(a){let b=a.remoteActionsBlocked||!!a.previewValidationError,c=a.remoteActionsBlocked?a.remoteActionsBlockedReason:a.previewValidationError?"Fix validation errors before confirming this write.":void 0,d=null!==a.loading||!a.confirmed||!!a.previewValidationError||a.remoteActionsBlocked||"success"===a.automaticOutcomeKind,e=c??(a.confirmed?"success"===a.automaticOutcomeKind?"Automatic secret write already verified for the current config.":void 0:"Confirm the GitHub Actions secret write before applying.");return{confirmDisabled:b,confirmDisabledReason:c,applyDisabled:d,applyDisabledReason:e,stalePreviewBlockerActive:a.remoteSecretPreviewStale&&a.cloudSecretsPreviewOpened}}({setupType:B,confirmed:O,loading:R,remoteActionsBlocked:aF,remoteActionsBlockedReason:aG,previewValidationError:I?.validationError,automaticOutcomeKind:aZ.kind,cloudSecretsPreviewOpened:aD,remoteSecretPreviewStale:h}),a5=a0.confirmDisabledReason,a6=a0.applyDisabledReason,a7=a0.applyDisabled,a8="automatic"===B&&($||aY)||"manual"===B&&ab,a9=a8&&aX.canContinue&&!a.cloudSecretsReviewed&&!R&&!aF,ba=!av,bb=av&&aF&&!ba,bc=ab&&null!==ao&&aX.canContinue,bd=ab&&null!==ao&&!aX.canContinue,be=aX.blockers[0];return(0,d.jsx)(P.i,{title:`Step 6 of 7 \u00b7 Connect cloud secrets`,description:"Your local setup is ready. Choose automatic GitHub Actions secret setup or manual setup in GitHub, then verify before continuing.",children:(0,d.jsxs)("div",{className:A.Es.stackSm,children:[ba?(0,d.jsx)(af.M,{phases:(0,af.y)({labels:[...ax],activeIndex:0}),supportingText:ax[0]}):null,av&&at?(0,d.jsxs)("div",{className:"space-y-2 rounded-md border border-destructive/30 bg-destructive/5 p-4",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:at}),(0,d.jsx)(H.$,{type:"button",variant:"outline",onClick:()=>void aB("mount"),disabled:null!==R,children:"Retry refresh"})]}):null,bb?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"space-y-2 rounded-md border border-destructive/30 bg-destructive/5 p-4",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:aG}),aH?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:aH}):null]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:["step4-harness-repo"===aE.route&&q?(0,d.jsx)(H.$,{type:"button",onClick:q,children:"Go to Step 4 harness repo"}):null,"connect-services"===aE.route&&v?(0,d.jsx)(H.$,{type:"button",onClick:v,children:"Go to Step 1 services"}):null,(0,d.jsx)(H.$,{type:"button",variant:"outline",onClick:()=>void aB("manual"),disabled:null!==R,children:"refresh"===R?"Refreshing…":"Refresh"})]})]}):av?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("fieldset",{className:"space-y-3",children:[(0,d.jsx)("legend",{className:"text-sm font-medium",children:"Setup type"}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:gap-6",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)(aa.S,{id:"setup-type-automatic",type:"radio",name:"cloud-secrets-setup-type",checked:"automatic"===B,onChange:()=>aM("automatic")}),(0,d.jsx)(S.J,{htmlFor:"setup-type-automatic",className:"text-sm",children:"Automatic setup"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)(aa.S,{id:"setup-type-manual",type:"radio",name:"cloud-secrets-setup-type",checked:"manual"===B,onChange:()=>aM("manual")}),(0,d.jsx)(S.J,{htmlFor:"setup-type-manual",className:"text-sm",children:"Manual setup"})]})]})]}),"automatic"===B?(0,d.jsxs)("div",{className:"rounded-md border border-border bg-muted/10 p-4 space-y-4",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:"Automatic setup"}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Write encrypted GitHub Actions secrets to the harness repo through the GitHub API. Preview is optional; preflight runs before apply when you skip preview."})]}),(0,d.jsx)(a1,{open:M,onOpenChange:aS,isLoading:"preview"===R,previewError:W??void 0,preview:I??void 0,previewIsCurrent:aC}),"apply"===R||a8?null:(0,d.jsx)(as.I,{scope:"remote-secret-write",variant:"guided",confirmed:O,disabled:a0.confirmDisabled,disabledReason:a5,onConfirmedChange:Q}),(0,d.jsxs)("div",{className:A.PI.actions,children:[(0,d.jsx)(H.$,{type:"button",onClick:()=>void aT(),disabled:a7,variant:"success"===aZ.kind?"outline":"default",children:"apply"===R?"Writing secrets…":aI?"Create encrypted GitHub Actions secrets":"Update encrypted GitHub Actions secrets"}),aZ.showRefresh?(0,d.jsx)(H.$,{type:"button",variant:"outline",onClick:()=>void aB("manual"),disabled:null!==R,children:"refresh"===R?"Refreshing…":"Refresh"}):null,aZ.showRetry?(0,d.jsx)(H.$,{type:"button",variant:"outline",onClick:()=>void aR(),disabled:null!==R,children:"preview"===R?"Refreshing preview…":"Preview again"}):null]}),a6&&!aF?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:a6}):null]}):null,"manual"===B?(0,d.jsxs)("div",{className:"rounded-md border border-border bg-background p-4 space-y-4",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:"Manual setup"}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Create or update the required GitHub Actions secrets yourself in the harness repo, then run verify-only checks here."})]}),(0,d.jsx)("ul",{className:"list-disc space-y-1 pl-5 text-sm text-muted-foreground",children:aJ.map(a=>(0,d.jsx)("li",{children:a},a))}),(0,d.jsxs)("div",{className:"rounded-md border border-destructive/30 bg-destructive/5 p-3 space-y-3",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-destructive",children:"Sensitive values warning"}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Manual copy values are secret. Do not paste them into logs, PRs, issues, screenshots, chat, or saved notes."}),(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)(aa.S,{id:"manual-values-warning",checked:ad,onChange:a=>ah(a.target.checked)}),(0,d.jsx)(S.J,{htmlFor:"manual-values-warning",className:"text-sm leading-snug",children:"I understand these values are sensitive and will handle them carefully."})]})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)(H.$,{type:"button",variant:"outline",onClick:()=>void aU(),disabled:null!==R||!ad,children:"manual-values"===R?"Generating manual copy values…":"Generate manual copy values"}),ai?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(H.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>al(a=>!a),children:ak?"Hide values":"Show values"}),(0,d.jsx)(H.$,{type:"button",variant:"ghost",size:"sm",onClick:aN,children:"Clear values"})]}):null]}),am?(0,d.jsx)("p",{className:"text-sm text-destructive",children:am}):null,aq?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:aq}):null,ai?(0,d.jsx)("div",{className:"space-y-3",children:g.map(a=>{let b=ai.values[a];return(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 rounded-md border border-border p-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:a}),ak&&b?(0,d.jsx)("p",{className:"mt-1 break-all font-mono text-xs text-muted-foreground",children:b}):(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:b?"Value ready to copy.":"Value unavailable locally."})]}),(0,d.jsx)(H.$,{type:"button",variant:"outline",size:"sm",disabled:!b,onClick:()=>void aW(a,b),children:"Copy value"})]},a)})}):null,(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"GitHub does not allow secret values to be read back. Verify-only confirms required secret names exist and the harness repo is reachable; it cannot prove the values match your local config or keys."}),(0,d.jsx)("div",{className:A.PI.actions,children:(0,d.jsx)(H.$,{type:"button",variant:"outline",onClick:()=>void aV(),disabled:null!==R,children:"manual-verify"===R?"Verifying manual setup…":"Verify manual setup"})}),ao&&!ab?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:ao}):null]}):null,"apply-failed"===aZ.kind||"verification-inconclusive"===aZ.kind?(0,d.jsx)(ae,{success:!1,message:aZ.message??"Automatic apply failed."}):null,"success"===aZ.kind?(0,d.jsx)(ae,{success:!0,message:aZ.message??"Automatic apply succeeded."}):null,"stale-after-apply"===aZ.kind?(0,d.jsx)(ae,{success:!1,message:aZ.message??"Config changed after apply."}):null,"success-blocked"===aZ.kind&&aZ.primaryBlocker?(0,d.jsx)(a3,{blocker:aZ.primaryBlocker}):null,bc?(0,d.jsx)(ae,{success:!0,message:ao}):null,bd&&be?(0,d.jsx)(a3,{blocker:be}):null,a9?(0,d.jsx)(ag,{heading:"Cloud secrets verified",explanation:"Required GitHub Actions secrets are present in the harness repo and ready for target workflow install.",details:["automatic"===B?"Automatic GitHub Actions secret setup verified.":"Manual GitHub Actions secret setup verified.",a2(y)],continueLabel:"Continue to target workflow",onContinue:n}):null]}):null]})})}let a6=["preparing-workflow-installation","creating-or-refreshing-install-branch","verifying-install-pull-request","waiting-for-github-checks","merging-workflow-installation","verifying-production-workflow"],a7={"preparing-workflow-installation":"Preparing workflow installation","creating-or-refreshing-install-branch":"Creating or refreshing install branch","verifying-install-pull-request":"Verifying install pull request","waiting-for-github-checks":"Waiting for GitHub checks","merging-workflow-installation":"Merging workflow installation","verifying-production-workflow":"Verifying production workflow"};function a8({open:a,onOpenChange:b,isLoading:c,previewError:e,preview:f,previewIsCurrent:g}){return(0,d.jsxs)("details",{open:a,className:"rounded-md border border-border bg-background p-3",children:[(0,d.jsx)("summary",{className:"cursor-pointer text-sm font-medium",onClick:c=>{c.preventDefault(),b(!a)},children:"Review planned workflow changes (optional)"}),(0,d.jsx)("div",{className:"mt-3 space-y-3",children:c?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Generating workflow install preview…"}),(0,d.jsxs)("div",{className:"space-y-2","aria-hidden":"true",children:[(0,d.jsx)(ac,{className:"h-4 w-[60%]"}),(0,d.jsx)(ac,{className:"h-24 w-full"})]})]}):e?(0,d.jsx)("p",{className:"text-sm text-destructive",children:e}):(0,d.jsx)(a0,{targetWorkflowPreview:g?f:void 0})})]})}function a9({repo:a,onApplied:b,onGuidedApplySuccess:c,blockedByUpstream:f=!1,variant:g="advanced"}){var h,i;let[j,k]=(0,e.useState)(null),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(null),[v,w]=(0,e.useState)(null),[x,y]=(0,e.useState)(null),z=`${a.repoConfigId}:${a.targetRepo}:${a.productionBranch}`,B=null!==j&&l===z,C=(0,e.useCallback)(async()=>{let b=await fetch("/api/setup/preview-target-workflow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoConfigId:a.repoConfigId,targetRepo:a.targetRepo,productionBranch:a.productionBranch})}),c=await b.json();if(!b.ok)throw Error(c.error??"Preview failed");return k(c),m(z),o(null),c},[z,a.productionBranch,a.repoConfigId,a.targetRepo]),D=async()=>{u("preview"),w(null),o(null),y(null),s(!1);try{await C()}catch(b){k(null),m(null);let a=b instanceof Error?b.message:"Preview failed";o(a),w(a)}finally{u(null)}},E=(0,e.useCallback)(a=>{f||(q(a),a&&!B&&"preview"!==t&&D())},[f,t,B]),F=async()=>{if(r){u("apply"),w(null);try{let d=B&&j?j:await C();if(d.validationError)throw Error(d.validationError);let e=await fetch("/api/setup/apply-target-workflow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoConfigId:a.repoConfigId,targetRepo:a.targetRepo,productionBranch:a.productionBranch,confirmed:!0,fingerprint:d.fingerprint})}),f=await e.json();if(!e.ok)throw Error(f.error??"Apply failed");let h=f.apply,i=f.finalization;k(null),m(null),s(!1),q(!1),"guided"===g?c?.(h,i):y(h),b()}catch(a){w(a instanceof Error?a.message:"Apply failed")}finally{u(null)}}},G=(0,e.useMemo)(()=>x?"already-installed"===x.outcome?"Workflow already installed on production branch. No PR opened.":x.prUrl?`Workflow install ${x.outcome}: ${x.prUrl}`:`Workflow install ${x.outcome} on branch ${x.branchName}.`:null,[x]),I=f?"Fix harness repo access before target workflow setup can be previewed.":void 0,J=I||("advanced"!==g||B?"advanced"===g&&j?.validationError?"Fix validation errors before confirming this write.":void 0:"Generate a preview before you can confirm this write."),L=J??(r?void 0:"guided"===g?"Confirm before creating the workflow install PR.":"Confirm the preview before applying the workflow install PR."),M="guided"===g?"Preview workflow install PR":"Preview workflow PR",N="apply"===t?"Creating PR…":"guided"===g?"present"===a.workflowStatus?"Update workflow install PR":"Create workflow install PR":"Apply workflow PR",O="advanced"===g&&(!B||!!j?.validationError)||f;return(0,d.jsxs)("div",{className:"guided"===g?"space-y-4":"rounded-md border border-border bg-muted/10 p-4 space-y-4",children:["advanced"===g?(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:a.repoConfigId}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground break-all",children:a.targetRepo}),(0,d.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Production branch: ",a.productionBranch]})]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(K.W,{label:`Access: ${a.repoAccess}`,variant:"available"===(h=a.repoAccess)?"success":"denied"===h?"destructive":"secondary"}),(0,d.jsx)(K.W,{label:`Workflow: ${function(a,b){if("guided"===b)switch(a){case"present":return"workflow ready";case"missing":return"workflow missing";case"differs":return"workflow outdated";default:return"workflow status unknown"}return a}(a.workflowStatus,g)}`,variant:"present"===(i=a.workflowStatus)?"success":"differs"===i||"missing"===i?"warning":"secondary"})]})]}):null,"guided"===g?(0,d.jsx)(a8,{open:p,onOpenChange:E,isLoading:"preview"===t,previewError:n??void 0,preview:j??void 0,previewIsCurrent:B}):(0,d.jsx)(a0,{targetWorkflowPreview:B?j??void 0:void 0}),(0,d.jsx)(as.I,{scope:"remote-repo-write",variant:g,confirmed:r,disabled:O,disabledReason:J,onConfirmedChange:s}),"guided"===g?(0,d.jsx)(H.$,{type:"button",onClick:F,disabled:null!==t||!r||f,children:N}):(0,d.jsxs)("div",{className:A.PI.actions,children:[(0,d.jsx)(H.$,{type:"button",onClick:D,disabled:null!==t||f,children:"preview"===t?"Generating preview…":M}),(0,d.jsx)(H.$,{type:"button",onClick:F,disabled:null!==t||!B||!r||!!j?.validationError||f,children:N})]}),I?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:I}):null,L&&!I?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:L}):null,v?(0,d.jsx)(ae,{success:!1,message:v}):null,"advanced"===g&&G?(0,d.jsx)(ae,{success:!0,message:G}):null]})}function ba({finalization:a,onRetry:b,retrying:c=!1,variant:e="advanced",transientMessage:f=null,onContinue:g}){let h="blocked"===a.lifecycle&&!a.retryable,i="complete"===a.lifecycle,j="advanced"===e&&h&&a.requiresGitHubIntervention&&a.prUrl;if(i&&"guided"===e){let b=[a.branchName?`Install branch: ${a.branchName}`:null,a.prNumber?`Pull request #${a.prNumber} merged`:null,"Production workflow verified.",a.supersededPrNumber?`Superseded empty PR #${a.supersededPrNumber}.`:null].filter(a=>!!a);return(0,d.jsx)(ag,{heading:"Workflow installed",explanation:"The harness workflow is verified on the production branch.",details:b,continueLabel:"Continue to finish setup",onContinue:g??(()=>void 0)})}if(h)return(0,d.jsxs)("div",{className:"rounded-md border border-destructive/40 bg-destructive/5 p-4 space-y-3",children:[(0,d.jsx)(K.W,{label:"Workflow install blocked",variant:"destructive"}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:a.message}),(0,d.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Failed phase:"," ",a7[a.phase]??a.phase,a.prUrl?(0,d.jsxs)(d.Fragment,{children:[" \xb7 ",(0,d.jsx)("a",{href:a.prUrl,target:"_blank",rel:"noopener noreferrer",className:"underline",children:"Open PR"})]}):null]}),a.lastSafeCheckpoint?(0,d.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Last checkpoint: ",a.lastSafeCheckpoint]}):null,(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[a.canRetry&&b?(0,d.jsx)(H.$,{type:"button",onClick:b,disabled:c,children:c?"Retrying…":"Retry"}):null,j?(0,d.jsx)(H.$,{asChild:!0,variant:"outline",children:(0,d.jsx)("a",{href:a.prUrl,target:"_blank",rel:"noopener noreferrer",children:"Open GitHub details"})}):null]})]});let k=a6.map(a=>a7[a]),l=(0,af.y)({labels:k,activeIndex:function(a){let b=a6.indexOf(a.phase);return b>=0?b:0}(a)});return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(af.M,{phases:l,supportingText:f??a.message,busy:"complete"!==a.lifecycle}),f?(0,d.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Temporarily unable to refresh GitHub status.",a.lastSafeCheckpoint?` Last checkpoint: ${a.lastSafeCheckpoint}.`:"",a.updatedAt?` Last updated: ${new Date(a.updatedAt).toLocaleTimeString()}.`:""]}):null,a.prUrl?(0,d.jsxs)("details",{className:"text-xs text-muted-foreground",children:[(0,d.jsx)("summary",{className:"cursor-pointer",children:"Install details"}),(0,d.jsxs)("p",{className:"mt-2 break-all",children:["PR: ",a.prUrl]}),(0,d.jsxs)("p",{className:"mt-1",children:["Operation: ",a.operationId]})]}):null]})}function bb({repoConfigId:a,onContinue:b}){return b?(0,d.jsx)(ag,{heading:"Workflow ready",explanation:`${a} has the expected harness workflow on its production branch.`,continueLabel:"Continue to finish setup",onContinue:b}):(0,d.jsxs)("div",{className:"rounded-md border border-border bg-muted/20 p-4 space-y-2",children:[(0,d.jsx)(K.W,{label:"Workflow ready",variant:"success"}),(0,d.jsxs)("p",{className:"text-sm text-muted-foreground",children:[a," has the expected harness workflow on its production branch."]})]})}function bc(a){return a.targetRepos.length>0&&a.targetRepos.every(a=>"present"===a.workflowStatus)}function bd(a){return"pr-created"===a.outcome||"pr-updated"===a.outcome||"branch-updated"===a.outcome}function be(a){return!!a&&("complete"===a.lifecycle||"blocked"===a.lifecycle&&!a.retryable)}function bf({initialSummary:a,onSummaryUpdated:b,onWorkflowSetupComplete:c,onWorkflowAwaitingMergeChange:f,onStepCompleted:g,onContinue:h,pendingInstallByRepo:i={},finalizationByRepo:j={},onPendingInstallChange:k,onFinalizationChange:l,blockedByUpstream:m=!1}){let[n,o]=(0,e.useState)(a),[p,q]=(0,e.useState)(j),[r,s]=(0,e.useState)({}),[t,u]=(0,e.useState)({}),v=(0,e.useRef)(0),w=(0,e.useRef)({}),x=(0,e.useRef)(!0),y=(0,e.useCallback)(async()=>{let a=await fetch("/api/setup/remote-summary"),c=await a.json();if(!a.ok)throw Error(c.error??"Remote summary refresh failed");return o(c),b?.(c),c},[b]),z=(0,e.useCallback)(async(a,c)=>{let d=n.targetRepos.find(b=>b.repoConfigId===a);if(!d)return;let e=p[a],f=await fetch("/api/setup/finalize-target-workflow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoConfigId:d.repoConfigId,targetRepo:d.targetRepo,productionBranch:d.productionBranch,prUrl:c?.prUrl??e?.prUrl,branchName:c?.branchName??e?.branchName,operationId:e?.operationId})}),h=await f.json();if(!f.ok){let a=Error(h.error??"Workflow finalization failed");throw a.retryable=!0===h.retryable,a.retryAfterMs="number"==typeof h.retryAfterMs?h.retryAfterMs:void 0,a.errorCode="string"==typeof h.errorCode?h.errorCode:void 0,a}let j=h.finalization,m=h.summary;if(!x.current)return j;if(q(b=>{if(!function(a,b){return!a||(!be(a)||!!be(b))&&(a.validatedHeadSha&&b.validatedHeadSha&&a.validatedHeadSha!==b.validatedHeadSha?b.advancedThisRequest:!!("updating-branch"===b.lifecycle&&b.message.includes("Refreshing"))||b.advancedThisRequest||!a.lockContended)}(b[a],j))return b;let c={...b,[a]:j};return l?.(c),c}),o(m),b?.(m),"complete"===j.lifecycle){let b={...i};delete b[a],k?.(b),g?.()}return j},[p,l,k,g,b,i,n.targetRepos]),B=(0,e.useCallback)((a,b)=>{let c=v.current+1;v.current=c,w.current[a]=0,(async()=>{for(;v.current===c;)try{var d;let e=await z(a,b);if(!x.current||v.current!==c)break;if(e?.lockContended){s(b=>({...b,[a]:null})),await new Promise(a=>setTimeout(a,e.retryAfterMs??2e3));continue}if(w.current[a]=0,s(b=>({...b,[a]:null})),!(d=e)||be(d))break;await new Promise(a=>setTimeout(a,e?.retryAfterMs??2e3))}catch(d){if(!x.current||v.current!==c)break;let b=(w.current[a]??0)+1;if(w.current[a]=b,!1===d.retryable||b>8){q(b=>{let c=b[a];if(!c)return b;let d={...c,lifecycle:"blocked",retryable:!1,canRetry:!0,errorCode:"retry_budget_exhausted",message:c.message||"Workflow install polling stopped after repeated refresh failures.",updatedAt:new Date().toISOString()},e={...b,[a]:d};return l?.(e),e}),s(b=>({...b,[a]:null}));break}s(b=>({...b,[a]:"Temporarily unable to refresh GitHub status."})),await new Promise(a=>setTimeout(a,Math.min(3e4,Math.min(3e4,(d.retryAfterMs??2e3)*2**Math.max(0,b-1))+Math.floor(2e3*Math.random()))))}})()},[z,l]),C=(0,e.useCallback)(async(a,b,c)=>{u(b=>({...b,[a]:!0}));let d={...i};if("already-installed"===b.outcome){delete d[a],k?.(d),await y(),g?.();return}if(bd(b)&&(d[a]=b),k?.(d),c){let b={...p,[a]:c};q(b),l?.(b)}bd(b)&&B(a,b)},[p,l,k,g,i,y,B]),D=Object.values(p).some(a=>{var b;return!(!(b=a)||be(b))}),E=bc(n)||n.targetRepos.length>0&&n.targetRepos.every(a=>{let b=p[a.repoConfigId];return"present"===a.workflowStatus||b?.lifecycle==="complete"}),F=(0,e.useCallback)(async()=>{let a;if(E){try{a=await y()}catch{return}bc(a)&&(c?.(),h?.())}},[E,h,c,y]);return(0,d.jsx)(P.i,{title:`Step 7 of 7 \xb7 Install target repo workflow`,description:D?"Installing the harness workflow. Continue when production verification succeeds.":"The harness will create or reuse a workflow install PR, merge it automatically when GitHub permits, and verify the production workflow.",children:(0,d.jsxs)("div",{className:A.Es.stackSm,children:[(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Each target repo gets a deterministic install branch and PR. The harness finalizes the install automatically when checks and branch protection allow."}),0===n.targetRepos.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Resolve your local harness config to show target repo workflow cards."}):(0,d.jsx)("div",{className:A.Es.stackSm,children:n.targetRepos.map(a=>{let b=i[a.repoConfigId],c=p[a.repoConfigId],e="present"===a.workflowStatus||c?.lifecycle==="complete",f=t[a.repoConfigId]||!!c||!!(b&&bd(b));return(0,d.jsxs)("div",{className:"rounded-md border border-border bg-background p-4 space-y-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:a.repoConfigId}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground break-all",children:a.targetRepo}),(0,d.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Status: ",function(a){switch(a){case"present":return"workflow ready";case"missing":return"workflow missing";case"differs":return"workflow outdated";default:return"workflow status unknown"}}(a.workflowStatus)]})]}),e?(0,d.jsx)(bb,{repoConfigId:a.repoConfigId,onContinue:E?()=>{F()}:void 0}):c?(0,d.jsx)(ba,{variant:"guided",finalization:c,transientMessage:r[a.repoConfigId],onContinue:E&&"complete"===c.lifecycle?()=>{F()}:void 0,onRetry:c.canRetry||c.retryable?()=>{w.current[a.repoConfigId]=0,B(a.repoConfigId,b)}:void 0}):b&&bd(b)?(0,d.jsx)(ba,{variant:"guided",finalization:{repoConfigId:a.repoConfigId,targetRepo:a.targetRepo,targetRepoSlug:a.targetRepo,productionBranch:a.productionBranch,branchName:b.branchName,lifecycle:"preparing",phase:"preparing-workflow-installation",operationId:crypto.randomUUID(),message:"Starting automatic workflow install finalization.",workflowStatus:a.workflowStatus,canRetry:!0,retryable:!0,retryAfterMs:2e3,lastSafeCheckpoint:"preparing",errorCode:"none",requiresGitHubIntervention:!1,advancedThisRequest:!1,lockContended:!1,updatedAt:new Date().toISOString()}}):f?null:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Confirm to create or update the workflow install PR. Preview is optional. Finalization runs automatically after apply."}),(0,d.jsx)(a9,{repo:a,variant:"guided",onApplied:()=>void 0,onGuidedApplySuccess:(b,c)=>void C(a.repoConfigId,b,c),blockedByUpstream:m})]})]},a.repoConfigId)})})]})})}async function bg(a,b){if(!(await fetch("/api/observability/event",{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json","x-p-dev-observability-nonce":b},body:JSON.stringify(a)})).ok)return}function bh({animateDraw:a}){let b=(0,L.I)(),c=a&&!b;return(0,d.jsx)("svg",{className:"size-3.5 sm:size-4",viewBox:"0 0 16 16","aria-hidden":!0,focusable:"false",children:(0,d.jsx)(aV.P.path,{d:"M3.5 8.5 L6.5 11.5 L12.5 4.5",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",initial:c?{pathLength:0}:{pathLength:1},animate:{pathLength:1},transition:c?{duration:.28,ease:[.2,0,0,1]}:{duration:0}})})}function bi({stages:a}){let b=(0,L.I)(),c=(0,e.useRef)(new Map),f=(0,e.useRef)(!0),g=a.find(a=>"current"===a.state);return(0,d.jsxs)("nav",{"aria-label":"Guided setup progress",className:"w-full",children:[(0,d.jsx)("ol",{className:"grid grid-cols-7 gap-1 sm:gap-2",children:a.map(a=>{let e="current"===a.state,g="completed"===a.state,h=e?"current":g?"completed":"upcoming";return(0,d.jsx)("li",{"aria-current":e?"step":void 0,className:"min-w-0",children:(0,d.jsxs)("div",{className:"flex flex-col items-center gap-1.5 text-center",children:[(0,d.jsx)(aV.P.div,{layout:!b,className:(0,N.cn)("flex size-7 shrink-0 items-center justify-center rounded-full border text-xs font-medium sm:size-8",g&&"border-primary bg-primary text-primary-foreground",e&&"border-primary bg-background text-foreground",!g&&!e&&"border-border bg-muted text-muted-foreground"),transition:b?{duration:0}:{duration:.2,ease:[.2,0,0,1]},children:g?(0,d.jsx)(bh,{animateDraw:(a=>{if(b||f.current)return!1;let d=c.current.get(a.id);return"completed"===a.state&&"completed"!==d})(a)}):(0,d.jsx)("span",{"aria-hidden":!0,children:a.stepNumber})}),(0,d.jsx)("span",{className:(0,N.cn)("hidden w-full truncate text-[10px] font-medium sm:block sm:text-xs",e?"text-foreground":g?"text-muted-foreground":"text-muted-foreground/80"),children:a.shortLabel}),(0,d.jsx)("span",{className:"sr-only",children:`Step ${a.stepNumber} of 7, ${a.accessibleLabel}, ${h}`})]})},a.id)})}),g?(0,d.jsx)("p",{"aria-live":"polite",className:"mt-3 text-center text-sm font-medium text-foreground sm:hidden",children:g.shortLabel}):null]})}function bj({stepKey:a,direction:b,children:c,className:f,panelRef:g}){let h=(0,L.I)(),i=(0,e.useRef)(!1);(0,e.useRef)(a);let j=h?{initial:{opacity:0},animate:{opacity:1,transition:{duration:.08,ease:[.2,0,0,1]}},exit:{opacity:0,transition:{duration:.08,ease:[.3,0,1,1]}}}:"forward"===("none"===b?"forward":b)?{initial:{opacity:0,x:"100vw"},animate:{opacity:1,x:0,transition:{duration:.32,ease:[.2,0,0,1]}},exit:{opacity:0,x:"-100vw",transition:{duration:.28,ease:[.32,0,.67,0]}}}:{initial:{opacity:0,x:"-100vw"},animate:{opacity:1,x:0,transition:{duration:.32,ease:[.2,0,0,1]}},exit:{opacity:0,x:"100vw",transition:{duration:.28,ease:[.32,0,.67,0]}}};return(0,d.jsx)("div",{className:"w-full overflow-x-hidden",children:(0,d.jsx)(aU,{mode:"wait",initial:!1,children:(0,d.jsx)(aV.P.div,{className:(0,N.cn)(f),variants:j,initial:"none"!==b&&"initial",animate:"animate",exit:"exit",onAnimationComplete:a=>{"animate"===a&&i.current&&(!function(a){if(!a)return;let b=a.querySelector("[data-guided-step-focus]")??a.querySelector("h2, h3, button, a, input, select, textarea");b?.focus({preventScroll:!0})}(g?.current??null),i.current=!1)},children:c},a)})})}var bk=c(15364),bl=c(12579);function bm(a){return{state:{version:1,linear:a.linearSummary.controlPlane?.linear,vercel:a.vercelSummary.controlPlane?.vercel},linearTeamKeyFromConfig:a.summary.configSummary?.linearTeamKey}}function bn({initialSummary:a,initialRemoteSummary:b,initialLinearSummary:c,initialVercelSummary:f,initialHarnessProvisioningSummary:g,formDefaults:h,observabilityNonce:i,initialObservabilityPreferences:j}){let[l,m]=(0,e.useState)(j),[n,o]=(0,e.useState)(j.disclosureShown),[p,q]=(0,e.useState)(a),[r,s]=(0,e.useState)(b),[u,v]=(0,e.useState)(c),[w,x]=(0,e.useState)(f),[y,C]=(0,e.useState)(g),[I,L]=(0,e.useState)({}),M=(0,e.useMemo)(()=>bm({linearSummary:u,vercelSummary:w,summary:p}),[u,w,p]),[N,O]=(0,e.useState)(()=>(function(a){switch(a.currentStepId){case"connect-services":return"connect-services";case"linear-workspace":return"linear-workspace";case"vercel-bridge":return"vercel-bridge";case"local-setup":var b;return b=a.summary,b.localFiles.find(a=>".env.local"===a.label)?.exists&&G(a.summary),"choose-target-repos";case"local-readiness":return"local-readiness";case"cloud-secrets":return"cloud-secrets";case"target-workflow":return"target-workflow";case"ready-for-first-run":return"ready-for-first-run"}})({currentStepId:z({summary:a,remoteSummary:b,uiState:{},staleSmokeDiagnostics:b.staleSmokeDiagnostics,harnessProvisioningSummary:g,controlPlaneContext:bm({linearSummary:c,vercelSummary:f,summary:a})}).currentStepId,summary:a})),[Q,R]=(0,e.useState)({}),[S,T]=(0,e.useState)({}),[U,V]=(0,e.useState)(!1);(0,e.useRef)(null);let W=(0,e.useRef)(null),[X,Y]=(0,e.useState)(null),Z=(0,e.useCallback)(()=>{W.current=null},[]),$=(0,e.useCallback)(a=>{Y(a)},[]),_=(0,e.useRef)({}),aa=(0,e.useRef)(null),ab=(0,e.useRef)({}),ac=(0,e.useCallback)(a=>{aa.current=a;let b=_.current[a]??0;_.current[a]=b+1,ab.current[a]=Date.now();let c=E(a)+1;i&&bg({type:"p_dev_configure_step_viewed",stepId:a,stepNumber:c,resumed:!1,revisited:!1},i)},[i]),ad=(0,e.useCallback)((a,b="success")=>{var c;if(!i)return;let d=ab.current[a],e=!Number.isFinite(c=d?Date.now()-d:-1)||c<0?"unknown":c<1e4?"lt_10s":c<3e4?"10s_30s":c<12e4?"30s_2m":c<3e5?"2m_5m":"gt_5m",f=E(a)+1;bg({type:"p_dev_configure_step_completed",stepId:a,stepNumber:f,resumed:!1,revisited:!1,durationBucket:e,completionOutcome:b},i)},[i]),ae=(0,e.useMemo)(()=>z({summary:p,remoteSummary:r,uiState:I,staleSmokeDiagnostics:r.staleSmokeDiagnostics,harnessProvisioningSummary:y,controlPlaneContext:M}),[p,r,I,y,M]),af=ae.staleSmokeDiagnostics.staleTargetRepos.length>0,ag=!!ae.staleSmokeDiagnostics.staleHarnessDispatchRepo,ah=(0,e.useMemo)(()=>{let a=h.env.suggestedHarnessDispatchRepo,b=ae.staleSmokeDiagnostics.staleHarnessDispatchRepo&&a;return{harnessConfigPath:h.env.harnessConfigPath,githubDispatchRepository:b?a??"":h.env.githubDispatchRepository||a||"",savedHarnessDispatchRepository:h.env.githubDispatchRepository,suggestedHarnessDispatchRepo:a,secretPresence:{LINEAR_API_KEY:p.envKeyPresence.LINEAR_API_KEY,CURSOR_API_KEY:p.envKeyPresence.CURSOR_API_KEY,GITHUB_TOKEN:p.envKeyPresence.GITHUB_TOKEN,VERCEL_TOKEN:p.envKeyPresence.VERCEL_TOKEN},serviceConnectionSummaries:h.env.serviceConnectionSummaries}},[h.env,ae.staleSmokeDiagnostics.staleHarnessDispatchRepo,p.envKeyPresence.CURSOR_API_KEY,p.envKeyPresence.GITHUB_TOKEN,p.envKeyPresence.LINEAR_API_KEY,p.envKeyPresence.VERCEL_TOKEN]),ai=(0,e.useCallback)(a=>{L(b=>b.localPreviewStale===a.localPreviewStale?b:{...b,localPreviewStale:a.localPreviewStale})},[]),aj=(0,e.useCallback)(a=>{L(b=>{let c=b;if(void 0!==a.cloudSecretsPreviewOpened&&b.cloudSecretsPreviewOpened!==a.cloudSecretsPreviewOpened&&(c={...c,cloudSecretsPreviewOpened:a.cloudSecretsPreviewOpened}),void 0!==a.remoteSecretPreviewStale&&b.remoteSecretPreviewStale!==a.remoteSecretPreviewStale&&(c={...c,remoteSecretPreviewStale:a.remoteSecretPreviewStale}),"cloudSecretsApplyEvidence"in a){if(b.cloudSecretsApplyEvidence===a.cloudSecretsApplyEvidence)return c===b?b:c;c={...c,cloudSecretsApplyEvidence:a.cloudSecretsApplyEvidence}}return c===b?b:c})},[]),ak=(0,e.useCallback)(a=>{L(b=>b.linearPreviewStale===a.linearPreviewStale?b:{...b,linearPreviewStale:a.linearPreviewStale})},[]),al=(0,e.useCallback)(a=>{L(b=>b.vercelPreviewStale===a.vercelPreviewStale?b:{...b,vercelPreviewStale:a.vercelPreviewStale})},[]),an=(0,e.useCallback)(async()=>{Z(),Y(null),ad("connect-services"),O("linear-workspace");try{let a=await fetch("/api/setup/linear-summary"),b=await a.json();a.ok&&v(b)}catch{}},[Z,ad]),ao=(0,e.useCallback)(a=>{C(a)},[]),ap=(0,e.useCallback)(()=>{Z(),Y(null),ad("linear-workspace"),O("vercel-bridge")},[Z,ad]),aq=(0,e.useCallback)(()=>{Z(),Y(null),ad("vercel-bridge"),O("choose-target-repos")},[Z,ad]),ar=(0,e.useCallback)(()=>{Z(),Y(null),ad("local-readiness"),L(a=>({...a,localReadinessReviewed:!0})),O("cloud-secrets")},[Z,ad]),as=(0,e.useCallback)(()=>{Z(),Y(null),ad("cloud-secrets"),L(a=>({...a,cloudSecretsReviewed:!0})),O("target-workflow")},[Z,ad]),at=(0,e.useCallback)(a=>{q(a),v(b=>{var c;return c=a.envKeyPresence,{...b,linearApiKeyConfigured:c.LINEAR_API_KEY}}),x(b=>{var c;return c=a.envKeyPresence,{...b,vercelTokenConfigured:c.VERCEL_TOKEN,linearApiKeyConfigured:c.LINEAR_API_KEY}}),s(b=>(function(a,b){let c=a.harnessSecretStatuses.map(a=>"present"===a.status?a:"missing"===a.status&&function(a,b){switch(b){case"LINEAR_API_KEY":return a.LINEAR_API_KEY;case"CURSOR_API_KEY":return a.CURSOR_API_KEY;case"HARNESS_GITHUB_TOKEN":return a.GITHUB_TOKEN;case"HARNESS_CONFIG_JSON_B64":return!1}}(b,a.name)?{...a,status:"unknown"}:a);return{...a,githubTokenConfigured:b.GITHUB_TOKEN,harnessSecretStatuses:c}})(b,a.envKeyPresence)),L(b=>{let c=bm({linearSummary:u,vercelSummary:w,summary:a}),d=t({evidence:b.cloudSecretsApplyEvidence,currentConfigStateFingerprint:k({setupSummary:a,controlPlaneContext:c}),harnessDispatchRepo:r.harnessDispatchRepo});return{...b,linearPreviewStale:!0,vercelPreviewStale:!0,remoteSecretPreviewStale:!!b.cloudSecretsPreviewOpened||b.remoteSecretPreviewStale,cloudSecretsApplyEvidence:d?void 0:b.cloudSecretsApplyEvidence}})},[u,r.harnessDispatchRepo,w]),av=(0,e.useCallback)(()=>{ad("target-workflow"),fetch("/api/setup/complete-initial-setup",{method:"POST"}).then(async a=>{a.ok&&(await a.json()).completed&&window.location.assign("/workflow")}).catch(()=>void 0),i&&bg({type:"p_dev_setup_completed"},i)},[i,ad]),aw=(0,e.useCallback)(()=>{L(a=>({...a,localReadinessReviewed:!1,cloudSecretsReviewed:!1,cloudSecretsApplyEvidence:void 0,remoteSecretPreviewStale:!!a.cloudSecretsPreviewOpened,localPreviewStale:!1}))},[]),ax=(0,e.useCallback)(()=>{Z(),Y(null),ad("choose-target-repos"),O("local-readiness")},[Z,ad]),ay=(0,e.useCallback)(()=>{Z(),Y(null),V(!1),R({}),T({}),O("ready-for-first-run")},[Z]);(0,e.useCallback)(a=>{O(a)},[]);let az=(0,e.useCallback)(a=>{if("connect-services"===a||"linear-workspace"===a||"vercel-bridge"===a||"choose-target-repos"===a)return void L(b=>({...b,localReadinessReviewed:!1,cloudSecretsReviewed:!1,cloudSecretsApplyEvidence:void 0,remoteSecretPreviewStale:!!b.cloudSecretsPreviewOpened||b.remoteSecretPreviewStale,linearPreviewStale:"connect-services"===a||"linear-workspace"===a||b.linearPreviewStale,vercelPreviewStale:"connect-services"===a||"linear-workspace"===a||"vercel-bridge"===a||b.vercelPreviewStale}));"local-readiness"===a&&L(a=>({...a,cloudSecretsReviewed:!1,cloudSecretsApplyEvidence:void 0,remoteSecretPreviewStale:!!a.cloudSecretsPreviewOpened||a.remoteSecretPreviewStale}))},[]),aB=(0,e.useCallback)(()=>{let a=F(N);if(!a)return;let b=function(a){var b;let c=function(a){switch(a){case"connect-services":return"connect-services";case"linear-workspace":return"linear-workspace";case"vercel-bridge":return"vercel-bridge";case"local-setup":return"choose-target-repos";case"local-readiness":return"local-readiness";case"cloud-secrets":return"cloud-secrets";case"target-workflow":return"target-workflow";case"ready-for-first-run":return"ready-for-first-run"}}(a.currentStepId);return(b=a.target,E(b)-E(c)>0)?c:a.target}({target:a,currentStepId:ae.currentStepId});O(b),W.current=b,az(b)},[N,az,ae.currentStepId]),aC=null!==F(N),aD=(0,e.useMemo)(()=>(function(a){var b;let c="ready-for-first-run"===(b=a.displayedStep)?null:b,d=a.readyForFirstRun||"ready-for-first-run"===a.displayedStep;return D.map((b,e)=>{let f,g=function(a,b){var c,d;if(b.readyForFirstRun||function(a,b){switch(a){case"connect-services":return!!b.summary&&function(a){return a.envKeyPresence.LINEAR_API_KEY&&a.envKeyPresence.CURSOR_API_KEY&&a.envKeyPresence.GITHUB_TOKEN&&a.envKeyPresence.VERCEL_TOKEN}(b.summary);case"linear-workspace":var c,d=b.controlPlaneContext;let e=d?.state?.linear;return!!e?.teamKey&&(e.statusCoverageComplete||!0===e.manualComplete);case"vercel-bridge":return c=b.controlPlaneContext,!!c?.state?.vercel?.projectId;case"choose-target-repos":return b.summary?.overview.localFilesPresent===!0;default:return!1}}(a,{summary:b.summary,controlPlaneContext:b.controlPlaneContext}))return!0;let e="choose-target-repos"===a?"local-setup":a,f=b.readinessSteps.find(a=>a.id===e);return f?.status==="complete"||(c=b.readinessCurrentStepId,d=e,B.indexOf(c)-B.indexOf(d)>0)}(b.id,{readinessCurrentStepId:a.readinessCurrentStepId,readinessSteps:a.readinessSteps,readyForFirstRun:a.readyForFirstRun,summary:a.summary,controlPlaneContext:a.controlPlaneContext}),h=!d&&c===b.id;return f=d?"completed":h?"current":g?"completed":"upcoming",{...b,state:f,stepNumber:e+1}})})({displayedStep:N,readinessCurrentStepId:ae.currentStepId,readinessSteps:ae.steps,readyForFirstRun:ae.readyForFirstRun,summary:p,controlPlaneContext:M}),[M,N,ae.currentStepId,ae.readyForFirstRun,ae.steps,p]),aE=(0,e.useRef)(null),aF=function(a,b){if(null===a||a===b)return"none";let c=E(a)-E(b);return c<0?"forward":c>0?"backward":"none"}((0,e.useRef)(N).current,N),aG=ae.readyForFirstRun?"Setup complete":U?"Finalizing workflow install":"Setup in progress",aH=(0,e.useCallback)(a=>{m(a),o(!0),(0,bl.u)(a)&&(aa.current=null,ac(N))},[N,ac]);return n?(0,d.jsxs)("div",{className:`${A.rs.configureContent} ${A.rs.sectionStack}`,children:[(0,d.jsxs)("section",{className:A.Es.section,children:[(0,d.jsxs)("div",{className:A.Es.stackSm,children:[(0,d.jsx)("h2",{className:A.xp.pageTitle,children:"Initial Harness Configuration"}),(0,d.jsx)("p",{className:A.xp.pageDescription,children:"Guided first-run readiness for the Product Development Harness. Complete local setup, local readiness checks, cloud secrets, and target workflow install before your first future harness run."})]}),(0,d.jsx)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[aC?(0,d.jsx)(H.$,{type:"button",variant:"ghost",size:"sm",className:"text-muted-foreground",onClick:aB,children:"Back"}):null,(0,d.jsx)("div",{className:A.Es.inline,children:(0,d.jsx)(K.W,{label:aG,variant:ae.readyForFirstRun?"success":"warning"})})]})})]}),(0,d.jsx)("section",{className:A.Es.section,children:(0,d.jsx)(bi,{stages:aD})}),(0,d.jsx)("div",{className:A.Es.section,children:(0,d.jsx)("div",{ref:aE,children:(0,d.jsx)(bj,{stepKey:N,direction:aF,panelRef:aE,children:(()=>{switch(N){case"connect-services":return(0,d.jsx)(am,{mode:"guided",guidedStep:"connect-services",initialEnv:ah,initialConfig:h.config,initialHarnessProvisioningSummary:y,onSummaryUpdated:at,onHarnessProvisioningSummaryUpdated:ao,onConnectServicesComplete:an,onConnectServicesSucceeded:()=>$("connect-services")},"guided-connect-services");case"linear-workspace":return(0,d.jsx)(au,{readiness:ae,initialSummary:u,linearApiKeyConfigured:p.envKeyPresence.LINEAR_API_KEY,availableRepos:h.config.repos.filter(a=>a.id.trim()&&a.targetRepo.trim()).map(a=>({id:a.id.trim(),targetRepo:a.targetRepo.trim()})),onSummaryUpdated:v,onUiStateChange:ak,onContinue:ap,onStepCompleted:()=>$("linear-workspace")});case"vercel-bridge":return(0,d.jsx)(aA,{readiness:ae,initialSummary:w,onSummaryUpdated:x,onUiStateChange:al,onContinue:aq,onStepCompleted:()=>$("vercel-bridge")});case"choose-target-repos":return(0,d.jsx)(am,{mode:"guided",guidedStep:"choose-target-repos",initialEnv:ah,initialConfig:h.config,initialHarnessProvisioningSummary:y,highlightStaleDispatch:ag,highlightStaleTarget:af,onSummaryUpdated:at,onHarnessProvisioningSummaryUpdated:ao,onUiStateChange:ai,onGuidedLocalApplySuccess:aw,onContinue:ax,onStepCompleted:()=>$("choose-target-repos"),localSetupFilesExist:G(p)},"guided-local-setup");case"local-readiness":return(0,d.jsx)(aZ,{readiness:ae,onContinue:ar,onStepCompleted:()=>$("local-readiness")});case"cloud-secrets":return(0,d.jsx)(a5,{readiness:ae,setupSummary:p,controlPlaneContext:M,cloudSecretsPreviewOpened:I.cloudSecretsPreviewOpened,remoteSecretPreviewStale:I.remoteSecretPreviewStale,cloudSecretsApplyEvidence:I.cloudSecretsApplyEvidence,initialSummary:r,onSummaryUpdated:s,onUiStateChange:aj,onContinue:as,onStepCompleted:()=>$("cloud-secrets"),blockedByUpstream:ae.remoteSetupBlockedByUpstream,onGoToHarnessRepo:()=>O("choose-target-repos"),onGoToConnectServices:()=>O("connect-services")});case"target-workflow":return(0,d.jsx)(bf,{initialSummary:r,onSummaryUpdated:s,onWorkflowSetupComplete:av,onWorkflowAwaitingMergeChange:V,pendingInstallByRepo:Q,finalizationByRepo:S,onPendingInstallChange:R,onFinalizationChange:T,onStepCompleted:()=>$("target-workflow"),onContinue:ay,blockedByUpstream:ae.remoteSetupBlockedByUpstream});case"ready-for-first-run":return(0,d.jsx)(P.i,{title:"Setup complete",description:"Harness setup is ready for workflow configuration and future runs.",children:(0,d.jsxs)("div",{className:A.Es.stackSm,children:[(0,d.jsx)(K.W,{label:"Setup complete",variant:"success"}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Your harness setup is ready. The target workflow install finished automatically when production verification succeeded."}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:ae.prohibitedActionsNote}),(0,d.jsx)(H.$,{asChild:!0,children:(0,d.jsx)(J(),{href:"/workflow",children:"Continue to Workflow"})})]})})}})()})})})]}):(0,d.jsx)("div",{className:A.rs.configureContent,children:(0,d.jsx)(bk.DataSharingPreferences,{mode:"onboarding",nonce:i,initialPreferences:l,onOnboardingComplete:aH})})}},16698:a=>{"use strict";a.exports=require("node:async_hooks")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},20543:(a,b,c)=>{"use strict";c.d(b,{M:()=>g,y:()=>h});var d=c(78157),e=c(62792),f=c(60185);function g({phases:a,supportingText:b,busy:c=!0}){let g=(0,e.I)()??!1,h=a.find(a=>"active"===a.status);return(0,d.jsxs)("div",{className:"space-y-3 rounded-md border border-border bg-muted/10 p-4","aria-live":"polite","aria-busy":c,"data-testid":"guided-operation-panel",children:[(0,d.jsx)("ul",{className:"space-y-2",children:a.map(a=>{let b="active"===a.status,c="complete"===a.status;return(0,d.jsxs)("li",{className:"flex items-start gap-2 text-sm","data-phase-status":a.status,children:[(0,d.jsx)("span",{className:c?"mt-0.5 text-emerald-600 dark:text-emerald-400":b?"mt-0.5 text-foreground":"mt-0.5 text-muted-foreground","aria-hidden":"true",children:c?"✓":b?"●":"○"}),b&&!g?(0,d.jsx)(f.P.span,{className:"font-medium text-foreground",animate:{opacity:[.55,1,.55]},transition:{duration:1.6,repeat:1/0,ease:"easeInOut"},children:a.label}):(0,d.jsx)("span",{className:b?"font-medium text-foreground":c?"text-foreground":"text-muted-foreground",children:a.label})]},a.id)})}),b||h?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:b??h?.label}):null]})}function h(a){return a.labels.map((b,c)=>({id:`phase-${c}`,label:b,status:c<a.activeIndex?"complete":c===a.activeIndex?"active":"pending"}))}},21405:(a,b,c)=>{Promise.resolve().then(c.bind(c,51337)),Promise.resolve().then(c.bind(c,32815)),Promise.resolve().then(c.t.bind(c,3498,23))},21820:a=>{"use strict";a.exports=require("os")},22645:(a,b,c)=>{"use strict";function d(a){switch(a){case"unstarted":return"Unstarted";case"started":return"Started";case"backlog":return"Backlog";case"completed":return"Completed";case"canceled":return"Canceled";case"duplicate":return"Duplicate";default:return a}}c.d(b,{L:()=>d})},22772:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(73653),e=c(97714),f=c(85250),g=c(37587),h=c(22369),i=c(1889),j=c(96232),k=c(22841),l=c(46537),m=c(46027),n=c(30905),o=c(78559),p=c(75928),q=c(19374),r=c(65971),s=c(261),t=c(79898),u=c(32967),v=c(26713),w=c(40139),x=c(14248),y=c(59580),z=c(57749),A=c(53123),B=c(89745),C=c(86439),D=c(58671),E=c.n(D),F=c(18283),G=c(39818),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["settings",{children:["configure",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,97491)),"/Users/weston/Code/agentic-product-development-harness/apps/gui/app/settings/configure/page.tsx"]}]},{loading:[()=>Promise.resolve().then(c.bind(c,15930)),"/Users/weston/Code/agentic-product-development-harness/apps/gui/app/settings/configure/loading.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,56035)),"/Users/weston/Code/agentic-product-development-harness/apps/gui/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,58671,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,17983,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,15034,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,54693,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,J=["/Users/weston/Code/agentic-product-development-harness/apps/gui/app/settings/configure/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/settings/configure/page",pathname:"/settings/configure",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:"apps/gui"});async function M(a,b,d){var D;let H="/settings/configure/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
10
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},28783:a=>{"use strict";a.exports=import("@cursor/sdk")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},33873:a=>{"use strict";a.exports=require("path")},35966:a=>{"use strict";a.exports=require("@linear/sdk")},39965:(a,b,c)=>{Promise.resolve().then(c.bind(c,16084)),Promise.resolve().then(c.bind(c,62022)),Promise.resolve().then(c.t.bind(c,94496,23))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},42196:(a,b,c)=>{"use strict";c.d(b,{i:()=>m});var d=c(78157),e=c(31768),f=c(75704);let g=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("div",{ref:c,className:(0,f.cn)("rounded-xl border border-border bg-card text-card-foreground shadow-sm",a),...b}));g.displayName="Card";let h=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("div",{ref:c,className:(0,f.cn)("flex flex-col space-y-1.5 p-6",a),...b}));h.displayName="CardHeader";let i=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("div",{ref:c,className:(0,f.cn)("font-semibold leading-none tracking-tight",a),...b}));i.displayName="CardTitle";let j=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("div",{ref:c,className:(0,f.cn)("text-sm text-muted-foreground",a),...b}));j.displayName="CardDescription";let k=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("div",{ref:c,className:(0,f.cn)("p-6 pt-0",a),...b}));k.displayName="CardContent";var l=c(85711);function m({title:a,description:b,children:c,className:e}){return(0,d.jsxs)(g,{className:e,children:[(0,d.jsxs)(h,{className:l.Es.cardHeader,children:[(0,d.jsx)(i,{children:a}),b?(0,d.jsx)(j,{children:b}):null]}),(0,d.jsx)(k,{className:(0,f.cn)(l.Es.stackSm),children:c})]})}},48075:(a,b,c)=>{"use strict";function d(a){}c.d(b,{b0:()=>d}),process.env.P_DEV_CONFIGURE_TIMING},48161:a=>{"use strict";a.exports=require("node:os")},51337:(a,b,c)=>{"use strict";c.d(b,{ConfigureExperience:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call ConfigureExperience() from the server but ConfigureExperience is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/weston/Code/agentic-product-development-harness/apps/gui/components/custom/configure-experience.tsx","ConfigureExperience")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66668:(a,b,c)=>{"use strict";c.d(b,{Bw:()=>g,UY:()=>h,df:()=>f,gy:()=>e,m5:()=>i});var d=c(8830);function e(a){return new Set(a.map(a=>(0,d.iF)(a)))}function f(a,b){return a.filter(a=>a.teamId!==b.teamId||a.projectId!==b.projectId)}function g(a,b){return a.filter(a=>a.teamId!==b)}function h(a){if(!a.targetRepo.trim()||!a.repoConfigId.trim())return a.draft;let b=e(a.draft),c=[...a.draft];for(let e of a.projects){let f={workspaceId:a.workspaceId,teamId:a.team.id,teamKey:a.team.key,teamName:a.team.name,projectId:e.id,projectName:e.name,targetRepo:a.targetRepo,repoConfigId:a.repoConfigId},g=(0,d.iF)(f);b.has(g)||(c.push(f),b.add(g))}return c}function i(a){let b=e(a.draft),c=(0,d.iF)(a.association);return b.has(c)?a.draft:[...a.draft,a.association]}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},77706:a=>{"use strict";a.exports=import("@sentry/node")},80481:a=>{"use strict";a.exports=require("node:readline")},81308:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>l});var d=c(78157);c(31768);var e=c(94496),f=c.n(e),g=c(62022),h=c(85725);function i(){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{"aria-hidden":"true",className:"flex size-8 shrink-0 items-center justify-center rounded-full border border-foreground bg-transparent text-sm font-semibold text-foreground",children:"P"}),(0,d.jsx)("span",{className:"truncate text-sm font-semibold tracking-tight sm:text-base",children:"PDev Harness"})]})}function j({settingsHref:a,isSettingsActive:b,workflowHref:c="/workflow",isWorkflowActive:e=!1,showProductNavigation:j=!0,enableHomeNavigation:k=!0}){return(0,d.jsx)("header",{className:h.rs.header,children:(0,d.jsxs)("div",{className:h.rs.headerInner,children:[k?(0,d.jsx)(f(),{href:c,className:"flex min-w-0 items-center gap-2.5 rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,d.jsx)(i,{})}):(0,d.jsx)("div",{className:"flex min-w-0 items-center gap-2.5","aria-hidden":"false",children:(0,d.jsx)(i,{})}),(0,d.jsx)(g.SettingsMenu,{settingsHref:a,isSettingsActive:b,workflowHref:c,isWorkflowActive:e,showProductNavigation:j})]})})}function k({children:a,settingsHref:b,isSettingsActive:c,isWorkflowActive:e,showProductNavigation:f=!0,enableHomeNavigation:g=!0}){return(0,d.jsxs)("div",{className:h.rs.shell,children:[(0,d.jsx)(j,{settingsHref:b,isSettingsActive:c,isWorkflowActive:e,showProductNavigation:f,enableHomeNavigation:g}),(0,d.jsx)("main",{className:h.NJ,children:a})]})}function l(){return(0,d.jsx)(k,{showProductNavigation:!1,enableHomeNavigation:!1,children:(0,d.jsxs)("div",{className:"mx-auto w-full max-w-3xl space-y-4 px-4 py-8",children:[(0,d.jsx)("div",{className:"h-8 w-56 animate-pulse rounded-md bg-muted"}),(0,d.jsx)("div",{className:"h-4 w-full animate-pulse rounded-md bg-muted/70"}),(0,d.jsx)("div",{className:"h-4 w-5/6 animate-pulse rounded-md bg-muted/70"}),(0,d.jsxs)("div",{className:"mt-6 space-y-3",children:[(0,d.jsx)("div",{className:"h-24 animate-pulse rounded-md border border-border bg-muted/30"}),(0,d.jsx)("div",{className:"h-24 animate-pulse rounded-md border border-border bg-muted/30"})]})]})})}c(48075)},85638:(a,b,c)=>{Promise.resolve().then(c.bind(c,81308))},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92059:(a,b,c)=>{"use strict";c.d(b,{NK:()=>e,_u:()=>d});let d=[{key:"backlog",name:"Backlog",category:"backlog",role:"transitional",creatable:!0,systemManaged:!1,automationTrigger:!1,actorRole:"human-gate",suggestedPosition:{x:0,y:0},graphGroup:"intake"},{key:"ready-for-planning",name:"Ready for Planning",category:"unstarted",role:"dispatch-trigger",creatable:!0,systemManaged:!1,automationTrigger:!0,actorRole:"planner-agent",agentPhaseKey:"planning",inProgressStatusKey:"planning",suggestedPosition:{x:280,y:0},graphGroup:"planning"},{key:"planning",name:"Planning",category:"started",role:"transitional",creatable:!0,systemManaged:!1,automationTrigger:!1,actorRole:"planner-agent",agentPhaseKey:"planning",suggestedPosition:{x:560,y:0},graphGroup:"planning"},{key:"ready-for-build",name:"Ready for Build",category:"unstarted",role:"dispatch-trigger",creatable:!0,systemManaged:!1,automationTrigger:!0,actorRole:"implementation-agent",agentPhaseKey:"implementation",inProgressStatusKey:"building",suggestedPosition:{x:840,y:0},graphGroup:"build"},{key:"building",name:"Building",category:"started",role:"transitional",creatable:!0,systemManaged:!1,automationTrigger:!1,actorRole:"implementation-agent",agentPhaseKey:"implementation",suggestedPosition:{x:1120,y:0},graphGroup:"build"},{key:"pr-open",name:"PR Open",category:"started",role:"dispatch-trigger",creatable:!0,systemManaged:!1,automationTrigger:!0,actorRole:"handoff-runner",suggestedPosition:{x:1400,y:0},graphGroup:"build"},{key:"pm-review",name:"PM Review",category:"started",role:"human-gate",creatable:!0,systemManaged:!1,automationTrigger:!1,actorRole:"human-gate",suggestedPosition:{x:1680,y:0},graphGroup:"review"},{key:"engineering-review",name:"Engineering Review",category:"started",role:"human-gate",creatable:!0,systemManaged:!1,automationTrigger:!1,actorRole:"human-gate",suggestedPosition:{x:1960,y:0},graphGroup:"review"},{key:"needs-revision",name:"Needs Revision",category:"unstarted",role:"dispatch-trigger",creatable:!0,systemManaged:!1,automationTrigger:!0,actorRole:"revision-agent",agentPhaseKey:"revision",inProgressStatusKey:"revising",suggestedPosition:{x:1680,y:200},graphGroup:"review"},{key:"revising",name:"Revising",category:"started",role:"transitional",creatable:!0,systemManaged:!1,automationTrigger:!1,actorRole:"revision-agent",agentPhaseKey:"revision",suggestedPosition:{x:1400,y:200},graphGroup:"review"},{key:"ready-to-merge",name:"Ready to Merge",category:"started",role:"dispatch-trigger",creatable:!0,systemManaged:!1,automationTrigger:!0,actorRole:"merge-runner",inProgressStatusKey:"merging",suggestedPosition:{x:2240,y:0},graphGroup:"merge"},{key:"merging",name:"Merging",category:"started",role:"transitional",creatable:!0,systemManaged:!1,automationTrigger:!1,actorRole:"merge-runner",suggestedPosition:{x:2520,y:0},graphGroup:"merge"},{key:"merged-to-dev",name:"Merged to Dev",category:"completed",role:"transitional",creatable:!0,systemManaged:!1,automationTrigger:!1,actorRole:"production-sync-runner",suggestedPosition:{x:2800,y:0},graphGroup:"merge"},{key:"merged-deployed",name:"Merged / Deployed",category:"completed",role:"transitional",creatable:!0,systemManaged:!1,automationTrigger:!1,actorRole:"none",suggestedPosition:{x:3080,y:0},graphGroup:"merge"},{key:"blocked",name:"Blocked",category:"started",role:"terminal",creatable:!0,systemManaged:!1,automationTrigger:!1,actorRole:"none",suggestedPosition:{x:1120,y:400},graphGroup:"terminal"},{key:"canceled",name:"Canceled",category:"canceled",role:"terminal",creatable:!0,systemManaged:!1,automationTrigger:!1,actorRole:"none",suggestedPosition:{x:1400,y:400},graphGroup:"terminal"},{key:"duplicate",name:"Duplicate",category:"duplicate",role:"system-managed",creatable:!1,systemManaged:!0,automationTrigger:!1,actorRole:"none",suggestedPosition:{x:1680,y:400},graphGroup:"terminal"}];function e(a){return d.find(b=>b.key===a)}},93886:(a,b,c)=>{Promise.resolve().then(c.bind(c,15930))},97491:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>v,dynamic:()=>t});var d=c(5939),e=c(22134),f=c(43621),g=c(51337);function h({summary:a,remoteSummary:b,linearSummary:c,vercelSummary:e,harnessProvisioningSummary:f,formDefaults:h,observabilityNonce:i,observabilityPreferences:j}){return(0,d.jsx)(g.ConfigureExperience,{initialSummary:a,initialRemoteSummary:b,initialLinearSummary:c,initialVercelSummary:e,initialHarnessProvisioningSummary:f,formDefaults:h,observabilityNonce:i,initialObservabilityPreferences:j})}var i=c(1304);let j="1"===process.env.P_DEV_CONFIGURE_TIMING,k=new Map;function l(a){j&&(k.set(a,performance.now()),console.info(`[configure-timing] mark ${a}`))}function m(a,b){if(!j)return;let c=k.get(b),d=void 0===c?void 0:Math.round(performance.now()-c);console.info(`[configure-timing] ${a}${void 0===d?"":` +${d}ms`}`)}var n=c(83954),o=c(2581),p=c(38854),q=c(52242),r=c(73833),s=c(52687);let t="force-dynamic";async function u(a,b){l(a);try{return await b()}finally{m(a,a)}}async function v(){l("configure_page_start");let a=(0,n.Vi)(),[b,c,g,j,k,t,v]=await Promise.all([u("configure_loader_setup_summary",i.al),u("configure_loader_form_defaults",i.CP),u("configure_loader_remote_summary",i.W8),u("configure_loader_linear_summary",i.VP),u("configure_loader_vercel_summary",i.bT),u("configure_loader_harness_provisioning",i.g1),u("configure_loader_observability",()=>(0,o.sJ)(a))]),w=await (0,q.V4)({cwd:a,setupSummary:b,remoteSummary:g})??await (0,r.oQ)(a);(0,q.Vt)(w)&&(0,e.redirect)(s.Qi),m("configure_page_ready","configure_page_start");let x=process.env[p.Lx]?.trim()??null;return(0,d.jsx)(f.G,{showProductNavigation:!1,enableHomeNavigation:!1,children:(0,d.jsx)(h,{summary:b,remoteSummary:g,linearSummary:j,vercelSummary:k,harnessProvisioningSummary:t,formDefaults:c,observabilityNonce:x,observabilityPreferences:{analyticsPreference:v.analyticsPreference,errorReportingPreference:v.errorReportingPreference,disclosureShown:v.disclosureShown}})})}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[8819,9148,6408,7332,9454,6890,1536,8764,521,553,641,105,1948,2581,7201,1304,8312,6801,6482],()=>b(b.s=22772));module.exports=c})();
|