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.
Files changed (1862) hide show
  1. package/README.md +12 -4
  2. package/dist/agents/cursor-provider.d.ts.map +1 -1
  3. package/dist/agents/cursor-provider.js +9 -8
  4. package/dist/agents/cursor-provider.js.map +1 -1
  5. package/dist/agents/index.d.ts +3 -4
  6. package/dist/agents/index.d.ts.map +1 -1
  7. package/dist/agents/index.js +2 -5
  8. package/dist/agents/index.js.map +1 -1
  9. package/dist/agents/types.d.ts +36 -2
  10. package/dist/agents/types.d.ts.map +1 -1
  11. package/dist/artifacts/redact.d.ts +2 -0
  12. package/dist/artifacts/redact.d.ts.map +1 -1
  13. package/dist/artifacts/redact.js +15 -1
  14. package/dist/artifacts/redact.js.map +1 -1
  15. package/dist/artifacts/write-json-out-manifest.d.ts +17 -0
  16. package/dist/artifacts/write-json-out-manifest.d.ts.map +1 -0
  17. package/dist/artifacts/write-json-out-manifest.js +68 -0
  18. package/dist/artifacts/write-json-out-manifest.js.map +1 -0
  19. package/dist/cli/commands/canary-runner-config.d.ts +2 -0
  20. package/dist/cli/commands/canary-runner-config.d.ts.map +1 -0
  21. package/dist/cli/commands/canary-runner-config.js +6 -0
  22. package/dist/cli/commands/canary-runner-config.js.map +1 -0
  23. package/dist/cli/commands/doctor.d.ts.map +1 -1
  24. package/dist/cli/commands/doctor.js +129 -0
  25. package/dist/cli/commands/doctor.js.map +1 -1
  26. package/dist/cli/commands/resolve-route.d.ts.map +1 -1
  27. package/dist/cli/commands/resolve-route.js +5 -0
  28. package/dist/cli/commands/resolve-route.js.map +1 -1
  29. package/dist/cli/commands/run.d.ts +1 -0
  30. package/dist/cli/commands/run.d.ts.map +1 -1
  31. package/dist/cli/commands/run.js +54 -12
  32. package/dist/cli/commands/run.js.map +1 -1
  33. package/dist/cli/commands/sync-managed-runner.d.ts +7 -0
  34. package/dist/cli/commands/sync-managed-runner.d.ts.map +1 -0
  35. package/dist/cli/commands/sync-managed-runner.js +89 -0
  36. package/dist/cli/commands/sync-managed-runner.js.map +1 -0
  37. package/dist/cli/program.d.ts.map +1 -1
  38. package/dist/cli/program.js +27 -0
  39. package/dist/cli/program.js.map +1 -1
  40. package/dist/config/assert-cloud-config-fingerprint.d.ts +10 -0
  41. package/dist/config/assert-cloud-config-fingerprint.d.ts.map +1 -0
  42. package/dist/config/assert-cloud-config-fingerprint.js +26 -0
  43. package/dist/config/assert-cloud-config-fingerprint.js.map +1 -0
  44. package/dist/config/cloud-config-fingerprint.d.ts +26 -0
  45. package/dist/config/cloud-config-fingerprint.d.ts.map +1 -0
  46. package/dist/config/cloud-config-fingerprint.js +64 -0
  47. package/dist/config/cloud-config-fingerprint.js.map +1 -0
  48. package/dist/config/legacy-linear-top-level.d.ts +16 -0
  49. package/dist/config/legacy-linear-top-level.d.ts.map +1 -0
  50. package/dist/config/legacy-linear-top-level.js +42 -0
  51. package/dist/config/legacy-linear-top-level.js.map +1 -0
  52. package/dist/config/linear-association-gate.d.ts +26 -0
  53. package/dist/config/linear-association-gate.d.ts.map +1 -0
  54. package/dist/config/linear-association-gate.js +46 -0
  55. package/dist/config/linear-association-gate.js.map +1 -0
  56. package/dist/config/resolve-linear-team.d.ts +10 -0
  57. package/dist/config/resolve-linear-team.d.ts.map +1 -0
  58. package/dist/config/resolve-linear-team.js +24 -0
  59. package/dist/config/resolve-linear-team.js.map +1 -0
  60. package/dist/config/resolve-linear-workspace.d.ts +83 -0
  61. package/dist/config/resolve-linear-workspace.d.ts.map +1 -0
  62. package/dist/config/resolve-linear-workspace.js +244 -0
  63. package/dist/config/resolve-linear-workspace.js.map +1 -0
  64. package/dist/config/role-models.d.ts +160 -0
  65. package/dist/config/role-models.d.ts.map +1 -0
  66. package/dist/config/role-models.js +31 -0
  67. package/dist/config/role-models.js.map +1 -0
  68. package/dist/config/runner-upgrade-sync-gate.d.ts +10 -0
  69. package/dist/config/runner-upgrade-sync-gate.d.ts.map +1 -0
  70. package/dist/config/runner-upgrade-sync-gate.js +24 -0
  71. package/dist/config/runner-upgrade-sync-gate.js.map +1 -0
  72. package/dist/config/schema.d.ts +266 -0
  73. package/dist/config/schema.d.ts.map +1 -1
  74. package/dist/config/schema.js +14 -0
  75. package/dist/config/schema.js.map +1 -1
  76. package/dist/config/types.d.ts +1 -1
  77. package/dist/config/types.d.ts.map +1 -1
  78. package/dist/config/workspace-root.d.ts +7 -0
  79. package/dist/config/workspace-root.d.ts.map +1 -0
  80. package/dist/config/workspace-root.js +21 -0
  81. package/dist/config/workspace-root.js.map +1 -0
  82. package/dist/cursor/agent-factory.d.ts +8 -0
  83. package/dist/cursor/agent-factory.d.ts.map +1 -1
  84. package/dist/cursor/agent-factory.js +34 -5
  85. package/dist/cursor/agent-factory.js.map +1 -1
  86. package/dist/cursor/builder-resume-errors.d.ts +3 -0
  87. package/dist/cursor/builder-resume-errors.d.ts.map +1 -0
  88. package/dist/cursor/builder-resume-errors.js +32 -0
  89. package/dist/cursor/builder-resume-errors.js.map +1 -0
  90. package/dist/cursor/model.d.ts +18 -22
  91. package/dist/cursor/model.d.ts.map +1 -1
  92. package/dist/cursor/model.js +73 -25
  93. package/dist/cursor/model.js.map +1 -1
  94. package/dist/cursor/run-observer.d.ts +8 -1
  95. package/dist/cursor/run-observer.d.ts.map +1 -1
  96. package/dist/cursor/run-observer.js +9 -1
  97. package/dist/cursor/run-observer.js.map +1 -1
  98. package/dist/github/auth-verification-retry.d.ts +12 -0
  99. package/dist/github/auth-verification-retry.d.ts.map +1 -0
  100. package/dist/github/auth-verification-retry.js +47 -0
  101. package/dist/github/auth-verification-retry.js.map +1 -0
  102. package/dist/github/client.d.ts +53 -4
  103. package/dist/github/client.d.ts.map +1 -1
  104. package/dist/github/client.js +108 -7
  105. package/dist/github/client.js.map +1 -1
  106. package/dist/gui/configure-health.js +2 -2
  107. package/dist/gui/configure-health.js.map +1 -1
  108. package/dist/gui/repo-root.d.ts +3 -0
  109. package/dist/gui/repo-root.d.ts.map +1 -1
  110. package/dist/gui/repo-root.js +16 -1
  111. package/dist/gui/repo-root.js.map +1 -1
  112. package/dist/gui/start-configure-stable.js +6 -2
  113. package/dist/gui/start-configure-stable.js.map +1 -1
  114. package/dist/gui/start-gui.js +7 -3
  115. package/dist/gui/start-gui.js.map +1 -1
  116. package/dist/linear/client.d.ts +4 -0
  117. package/dist/linear/client.d.ts.map +1 -1
  118. package/dist/linear/client.js +7 -0
  119. package/dist/linear/client.js.map +1 -1
  120. package/dist/linear/comments.d.ts +9 -0
  121. package/dist/linear/comments.d.ts.map +1 -1
  122. package/dist/linear/comments.js +34 -0
  123. package/dist/linear/comments.js.map +1 -1
  124. package/dist/linear/issue-query.d.ts +1 -0
  125. package/dist/linear/issue-query.d.ts.map +1 -1
  126. package/dist/linear/issue-query.js +3 -0
  127. package/dist/linear/issue-query.js.map +1 -1
  128. package/dist/linear/markers.d.ts +7 -0
  129. package/dist/linear/markers.d.ts.map +1 -1
  130. package/dist/linear/markers.js +21 -0
  131. package/dist/linear/markers.js.map +1 -1
  132. package/dist/linear/parser.d.ts +2 -1
  133. package/dist/linear/parser.d.ts.map +1 -1
  134. package/dist/linear/parser.js +46 -0
  135. package/dist/linear/parser.js.map +1 -1
  136. package/dist/linear/project-harness-metadata.d.ts +10 -0
  137. package/dist/linear/project-harness-metadata.d.ts.map +1 -0
  138. package/dist/linear/project-harness-metadata.js +109 -0
  139. package/dist/linear/project-harness-metadata.js.map +1 -0
  140. package/dist/linear/project-metadata-sync.d.ts +29 -0
  141. package/dist/linear/project-metadata-sync.d.ts.map +1 -0
  142. package/dist/linear/project-metadata-sync.js +64 -0
  143. package/dist/linear/project-metadata-sync.js.map +1 -0
  144. package/dist/linear/run-status-comment.d.ts +49 -0
  145. package/dist/linear/run-status-comment.d.ts.map +1 -0
  146. package/dist/linear/run-status-comment.js +118 -0
  147. package/dist/linear/run-status-comment.js.map +1 -0
  148. package/dist/linear/writer.d.ts +8 -0
  149. package/dist/linear/writer.d.ts.map +1 -1
  150. package/dist/linear/writer.js +13 -0
  151. package/dist/linear/writer.js.map +1 -1
  152. package/dist/observability/adapters/fake.d.ts +17 -0
  153. package/dist/observability/adapters/fake.d.ts.map +1 -0
  154. package/dist/observability/adapters/fake.js +205 -0
  155. package/dist/observability/adapters/fake.js.map +1 -0
  156. package/dist/observability/adapters/noop.d.ts +5 -0
  157. package/dist/observability/adapters/noop.d.ts.map +1 -0
  158. package/dist/observability/adapters/noop.js +51 -0
  159. package/dist/observability/adapters/noop.js.map +1 -0
  160. package/dist/observability/adapters/posthog.d.ts +12 -0
  161. package/dist/observability/adapters/posthog.d.ts.map +1 -0
  162. package/dist/observability/adapters/posthog.js +142 -0
  163. package/dist/observability/adapters/posthog.js.map +1 -0
  164. package/dist/observability/adapters/sentry.d.ts +12 -0
  165. package/dist/observability/adapters/sentry.d.ts.map +1 -0
  166. package/dist/observability/adapters/sentry.js +217 -0
  167. package/dist/observability/adapters/sentry.js.map +1 -0
  168. package/dist/observability/analytics-schemas.d.ts +59 -0
  169. package/dist/observability/analytics-schemas.d.ts.map +1 -0
  170. package/dist/observability/analytics-schemas.js +119 -0
  171. package/dist/observability/analytics-schemas.js.map +1 -0
  172. package/dist/observability/consent.d.ts +14 -0
  173. package/dist/observability/consent.d.ts.map +1 -0
  174. package/dist/observability/consent.js +35 -0
  175. package/dist/observability/consent.js.map +1 -0
  176. package/dist/observability/constants.d.ts +18 -0
  177. package/dist/observability/constants.d.ts.map +1 -0
  178. package/dist/observability/constants.js +18 -0
  179. package/dist/observability/constants.js.map +1 -0
  180. package/dist/observability/context.d.ts +21 -0
  181. package/dist/observability/context.d.ts.map +1 -0
  182. package/dist/observability/context.js +105 -0
  183. package/dist/observability/context.js.map +1 -0
  184. package/dist/observability/facade-runtime-state.d.ts +17 -0
  185. package/dist/observability/facade-runtime-state.d.ts.map +1 -0
  186. package/dist/observability/facade-runtime-state.js +23 -0
  187. package/dist/observability/facade-runtime-state.js.map +1 -0
  188. package/dist/observability/facade.d.ts +44 -0
  189. package/dist/observability/facade.d.ts.map +1 -0
  190. package/dist/observability/facade.js +432 -0
  191. package/dist/observability/facade.js.map +1 -0
  192. package/dist/observability/fatal-handlers.d.ts +4 -0
  193. package/dist/observability/fatal-handlers.d.ts.map +1 -0
  194. package/dist/observability/fatal-handlers.js +54 -0
  195. package/dist/observability/fatal-handlers.js.map +1 -0
  196. package/dist/observability/identity.d.ts +4 -0
  197. package/dist/observability/identity.d.ts.map +1 -0
  198. package/dist/observability/identity.js +11 -0
  199. package/dist/observability/identity.js.map +1 -0
  200. package/dist/observability/index.d.ts +9 -0
  201. package/dist/observability/index.d.ts.map +1 -0
  202. package/dist/observability/index.js +6 -0
  203. package/dist/observability/index.js.map +1 -0
  204. package/dist/observability/local-state.d.ts +14 -0
  205. package/dist/observability/local-state.d.ts.map +1 -0
  206. package/dist/observability/local-state.js +107 -0
  207. package/dist/observability/local-state.js.map +1 -0
  208. package/dist/observability/package-config.d.ts +11 -0
  209. package/dist/observability/package-config.d.ts.map +1 -0
  210. package/dist/observability/package-config.js +117 -0
  211. package/dist/observability/package-config.js.map +1 -0
  212. package/dist/observability/posthog-dashboard-contract.d.ts +46 -0
  213. package/dist/observability/posthog-dashboard-contract.d.ts.map +1 -0
  214. package/dist/observability/posthog-dashboard-contract.js +200 -0
  215. package/dist/observability/posthog-dashboard-contract.js.map +1 -0
  216. package/dist/observability/privacy-schema.d.ts +13 -0
  217. package/dist/observability/privacy-schema.d.ts.map +1 -0
  218. package/dist/observability/privacy-schema.js +204 -0
  219. package/dist/observability/privacy-schema.js.map +1 -0
  220. package/dist/observability/product-error-messages.d.ts +2 -0
  221. package/dist/observability/product-error-messages.d.ts.map +1 -0
  222. package/dist/observability/product-error-messages.js +15 -0
  223. package/dist/observability/product-error-messages.js.map +1 -0
  224. package/dist/observability/product-errors.d.ts +12 -0
  225. package/dist/observability/product-errors.d.ts.map +1 -0
  226. package/dist/observability/product-errors.js +109 -0
  227. package/dist/observability/product-errors.js.map +1 -0
  228. package/dist/observability/provisioning-analytics.d.ts +12 -0
  229. package/dist/observability/provisioning-analytics.d.ts.map +1 -0
  230. package/dist/observability/provisioning-analytics.js +11 -0
  231. package/dist/observability/provisioning-analytics.js.map +1 -0
  232. package/dist/observability/redaction.d.ts +10 -0
  233. package/dist/observability/redaction.d.ts.map +1 -0
  234. package/dist/observability/redaction.js +72 -0
  235. package/dist/observability/redaction.js.map +1 -0
  236. package/dist/observability/runtime-eligibility.d.ts +6 -0
  237. package/dist/observability/runtime-eligibility.d.ts.map +1 -0
  238. package/dist/observability/runtime-eligibility.js +33 -0
  239. package/dist/observability/runtime-eligibility.js.map +1 -0
  240. package/dist/observability/sentry-outbound-privacy.d.ts +12 -0
  241. package/dist/observability/sentry-outbound-privacy.d.ts.map +1 -0
  242. package/dist/observability/sentry-outbound-privacy.js +168 -0
  243. package/dist/observability/sentry-outbound-privacy.js.map +1 -0
  244. package/dist/observability/session-dedupe.d.ts +8 -0
  245. package/dist/observability/session-dedupe.d.ts.map +1 -0
  246. package/dist/observability/session-dedupe.js +42 -0
  247. package/dist/observability/session-dedupe.js.map +1 -0
  248. package/dist/observability/session-handoff.d.ts +10 -0
  249. package/dist/observability/session-handoff.d.ts.map +1 -0
  250. package/dist/observability/session-handoff.js +25 -0
  251. package/dist/observability/session-handoff.js.map +1 -0
  252. package/dist/observability/transport-lifecycle.d.ts +20 -0
  253. package/dist/observability/transport-lifecycle.d.ts.map +1 -0
  254. package/dist/observability/transport-lifecycle.js +69 -0
  255. package/dist/observability/transport-lifecycle.js.map +1 -0
  256. package/dist/observability/types.d.ts +189 -0
  257. package/dist/observability/types.d.ts.map +1 -0
  258. package/dist/observability/types.js +2 -0
  259. package/dist/observability/types.js.map +1 -0
  260. package/dist/p-dev/cli.d.ts +1 -1
  261. package/dist/p-dev/cli.d.ts.map +1 -1
  262. package/dist/p-dev/cli.js +1 -1
  263. package/dist/p-dev/cli.js.map +1 -1
  264. package/dist/p-dev/git-object-plumbing.d.ts +20 -0
  265. package/dist/p-dev/git-object-plumbing.d.ts.map +1 -1
  266. package/dist/p-dev/git-object-plumbing.js +106 -13
  267. package/dist/p-dev/git-object-plumbing.js.map +1 -1
  268. package/dist/p-dev/launch.d.ts.map +1 -1
  269. package/dist/p-dev/launch.js +77 -15
  270. package/dist/p-dev/launch.js.map +1 -1
  271. package/dist/p-dev/main.js +9 -1
  272. package/dist/p-dev/main.js.map +1 -1
  273. package/dist/p-dev/package-paths.d.ts +12 -0
  274. package/dist/p-dev/package-paths.d.ts.map +1 -1
  275. package/dist/p-dev/package-paths.js +48 -2
  276. package/dist/p-dev/package-paths.js.map +1 -1
  277. package/dist/p-dev/workspace-snapshot-generator.d.ts.map +1 -1
  278. package/dist/p-dev/workspace-snapshot-generator.js +18 -0
  279. package/dist/p-dev/workspace-snapshot-generator.js.map +1 -1
  280. package/dist/p-dev/workspace-snapshot-manifest.d.ts.map +1 -1
  281. package/dist/p-dev/workspace-snapshot-manifest.js +48 -0
  282. package/dist/p-dev/workspace-snapshot-manifest.js.map +1 -1
  283. package/dist/p-dev/workspace-snapshot-types.d.ts +8 -0
  284. package/dist/p-dev/workspace-snapshot-types.d.ts.map +1 -1
  285. package/dist/preview/preview-capability.d.ts +9 -0
  286. package/dist/preview/preview-capability.d.ts.map +1 -0
  287. package/dist/preview/preview-capability.js +15 -0
  288. package/dist/preview/preview-capability.js.map +1 -0
  289. package/dist/product/initialization-state.d.ts +15 -0
  290. package/dist/product/initialization-state.d.ts.map +1 -0
  291. package/dist/product/initialization-state.js +37 -0
  292. package/dist/product/initialization-state.js.map +1 -0
  293. package/dist/product/product-marker.d.ts +77 -0
  294. package/dist/product/product-marker.d.ts.map +1 -0
  295. package/dist/product/product-marker.js +62 -0
  296. package/dist/product/product-marker.js.map +1 -0
  297. package/dist/product/read-product-marker.d.ts +15 -0
  298. package/dist/product/read-product-marker.d.ts.map +1 -0
  299. package/dist/product/read-product-marker.js +28 -0
  300. package/dist/product/read-product-marker.js.map +1 -0
  301. package/dist/prompts/builder.d.ts +10 -1
  302. package/dist/prompts/builder.d.ts.map +1 -1
  303. package/dist/prompts/builder.js +16 -2
  304. package/dist/prompts/builder.js.map +1 -1
  305. package/dist/resolver/errors.d.ts +1 -1
  306. package/dist/resolver/errors.d.ts.map +1 -1
  307. package/dist/resolver/errors.js.map +1 -1
  308. package/dist/resolver/target-repo.d.ts +4 -1
  309. package/dist/resolver/target-repo.d.ts.map +1 -1
  310. package/dist/resolver/target-repo.js +40 -0
  311. package/dist/resolver/target-repo.js.map +1 -1
  312. package/dist/runner/builder-thread-acquire.d.ts +41 -0
  313. package/dist/runner/builder-thread-acquire.d.ts.map +1 -0
  314. package/dist/runner/builder-thread-acquire.js +224 -0
  315. package/dist/runner/builder-thread-acquire.js.map +1 -0
  316. package/dist/runner/builder-thread-evidence.d.ts +13 -0
  317. package/dist/runner/builder-thread-evidence.d.ts.map +1 -0
  318. package/dist/runner/builder-thread-evidence.js +23 -0
  319. package/dist/runner/builder-thread-evidence.js.map +1 -0
  320. package/dist/runner/builder-thread-idempotency.d.ts +17 -0
  321. package/dist/runner/builder-thread-idempotency.d.ts.map +1 -0
  322. package/dist/runner/builder-thread-idempotency.js +12 -0
  323. package/dist/runner/builder-thread-idempotency.js.map +1 -0
  324. package/dist/runner/builder-thread-lineage-errors.d.ts +7 -0
  325. package/dist/runner/builder-thread-lineage-errors.d.ts.map +1 -0
  326. package/dist/runner/builder-thread-lineage-errors.js +11 -0
  327. package/dist/runner/builder-thread-lineage-errors.js.map +1 -0
  328. package/dist/runner/builder-thread-lineage.d.ts +18 -0
  329. package/dist/runner/builder-thread-lineage.d.ts.map +1 -0
  330. package/dist/runner/builder-thread-lineage.js +342 -0
  331. package/dist/runner/builder-thread-lineage.js.map +1 -0
  332. package/dist/runner/builder-thread-types.d.ts +30 -0
  333. package/dist/runner/builder-thread-types.d.ts.map +1 -0
  334. package/dist/runner/builder-thread-types.js +2 -0
  335. package/dist/runner/builder-thread-types.js.map +1 -0
  336. package/dist/runner/delivery-dedup.d.ts +26 -0
  337. package/dist/runner/delivery-dedup.d.ts.map +1 -0
  338. package/dist/runner/delivery-dedup.js +44 -0
  339. package/dist/runner/delivery-dedup.js.map +1 -0
  340. package/dist/runner/failure-finalization.d.ts +34 -0
  341. package/dist/runner/failure-finalization.d.ts.map +1 -0
  342. package/dist/runner/failure-finalization.js +154 -0
  343. package/dist/runner/failure-finalization.js.map +1 -0
  344. package/dist/runner/fixture.d.ts +1 -1
  345. package/dist/runner/fixture.d.ts.map +1 -1
  346. package/dist/runner/fixture.js +3 -0
  347. package/dist/runner/fixture.js.map +1 -1
  348. package/dist/runner/phases/handoff.d.ts.map +1 -1
  349. package/dist/runner/phases/handoff.js +59 -32
  350. package/dist/runner/phases/handoff.js.map +1 -1
  351. package/dist/runner/phases/implementation.d.ts.map +1 -1
  352. package/dist/runner/phases/implementation.js +147 -24
  353. package/dist/runner/phases/implementation.js.map +1 -1
  354. package/dist/runner/phases/integration-repair.d.ts +18 -0
  355. package/dist/runner/phases/integration-repair.d.ts.map +1 -1
  356. package/dist/runner/phases/integration-repair.js +93 -7
  357. package/dist/runner/phases/integration-repair.js.map +1 -1
  358. package/dist/runner/phases/merge.d.ts.map +1 -1
  359. package/dist/runner/phases/merge.js +129 -51
  360. package/dist/runner/phases/merge.js.map +1 -1
  361. package/dist/runner/phases/planning.d.ts.map +1 -1
  362. package/dist/runner/phases/planning.js +46 -8
  363. package/dist/runner/phases/planning.js.map +1 -1
  364. package/dist/runner/phases/production-sync.d.ts.map +1 -1
  365. package/dist/runner/phases/production-sync.js +28 -4
  366. package/dist/runner/phases/production-sync.js.map +1 -1
  367. package/dist/runner/phases/revision.d.ts.map +1 -1
  368. package/dist/runner/phases/revision.js +112 -32
  369. package/dist/runner/phases/revision.js.map +1 -1
  370. package/dist/runner/preflight.d.ts +2 -0
  371. package/dist/runner/preflight.d.ts.map +1 -1
  372. package/dist/runner/preflight.js +112 -3
  373. package/dist/runner/preflight.js.map +1 -1
  374. package/dist/runner/resolve-route.d.ts +1 -0
  375. package/dist/runner/resolve-route.d.ts.map +1 -1
  376. package/dist/runner/resolve-route.js +26 -0
  377. package/dist/runner/resolve-route.js.map +1 -1
  378. package/dist/runner/run-generation.d.ts +2 -0
  379. package/dist/runner/run-generation.d.ts.map +1 -0
  380. package/dist/runner/run-generation.js +19 -0
  381. package/dist/runner/run-generation.js.map +1 -0
  382. package/dist/runner/uninitialized-product-routing.d.ts +24 -0
  383. package/dist/runner/uninitialized-product-routing.d.ts.map +1 -0
  384. package/dist/runner/uninitialized-product-routing.js +70 -0
  385. package/dist/runner/uninitialized-product-routing.js.map +1 -0
  386. package/dist/setup/config-builder.d.ts.map +1 -1
  387. package/dist/setup/config-builder.js +12 -0
  388. package/dist/setup/config-builder.js.map +1 -1
  389. package/dist/setup/control-plane-readiness.d.ts +8 -1
  390. package/dist/setup/control-plane-readiness.d.ts.map +1 -1
  391. package/dist/setup/control-plane-readiness.js +63 -19
  392. package/dist/setup/control-plane-readiness.js.map +1 -1
  393. package/dist/setup/control-plane-setup-state.d.ts +13 -3
  394. package/dist/setup/control-plane-setup-state.d.ts.map +1 -1
  395. package/dist/setup/control-plane-setup-state.js +30 -3
  396. package/dist/setup/control-plane-setup-state.js.map +1 -1
  397. package/dist/setup/control-plane-state-lock.d.ts +12 -0
  398. package/dist/setup/control-plane-state-lock.d.ts.map +1 -0
  399. package/dist/setup/control-plane-state-lock.js +79 -0
  400. package/dist/setup/control-plane-state-lock.js.map +1 -0
  401. package/dist/setup/control-plane-types.d.ts +72 -1
  402. package/dist/setup/control-plane-types.d.ts.map +1 -1
  403. package/dist/setup/first-run-readiness.d.ts +4 -0
  404. package/dist/setup/first-run-readiness.d.ts.map +1 -1
  405. package/dist/setup/first-run-readiness.js +2 -2
  406. package/dist/setup/first-run-readiness.js.map +1 -1
  407. package/dist/setup/git-askpass-credentials.d.ts +19 -0
  408. package/dist/setup/git-askpass-credentials.d.ts.map +1 -0
  409. package/dist/setup/git-askpass-credentials.js +60 -0
  410. package/dist/setup/git-askpass-credentials.js.map +1 -0
  411. package/dist/setup/github-dispatch-token.d.ts +4 -0
  412. package/dist/setup/github-dispatch-token.d.ts.map +1 -1
  413. package/dist/setup/github-dispatch-token.js +23 -3
  414. package/dist/setup/github-dispatch-token.js.map +1 -1
  415. package/dist/setup/github-remote-provider.d.ts +44 -0
  416. package/dist/setup/github-remote-provider.d.ts.map +1 -1
  417. package/dist/setup/github-remote-provider.js +22 -2
  418. package/dist/setup/github-remote-provider.js.map +1 -1
  419. package/dist/setup/github-remote-setup-live.d.ts +30 -1
  420. package/dist/setup/github-remote-setup-live.d.ts.map +1 -1
  421. package/dist/setup/github-remote-setup-live.js +68 -11
  422. package/dist/setup/github-remote-setup-live.js.map +1 -1
  423. package/dist/setup/github-repository-name.d.ts +15 -0
  424. package/dist/setup/github-repository-name.d.ts.map +1 -0
  425. package/dist/setup/github-repository-name.js +54 -0
  426. package/dist/setup/github-repository-name.js.map +1 -0
  427. package/dist/setup/github-target-repository-provider-live.d.ts +35 -0
  428. package/dist/setup/github-target-repository-provider-live.d.ts.map +1 -0
  429. package/dist/setup/github-target-repository-provider-live.js +236 -0
  430. package/dist/setup/github-target-repository-provider-live.js.map +1 -0
  431. package/dist/setup/github-target-repository-provider-mock.d.ts +47 -0
  432. package/dist/setup/github-target-repository-provider-mock.d.ts.map +1 -0
  433. package/dist/setup/github-target-repository-provider-mock.js +189 -0
  434. package/dist/setup/github-target-repository-provider-mock.js.map +1 -0
  435. package/dist/setup/github-target-repository-provider.d.ts +44 -0
  436. package/dist/setup/github-target-repository-provider.d.ts.map +1 -0
  437. package/dist/setup/github-target-repository-provider.js +7 -0
  438. package/dist/setup/github-target-repository-provider.js.map +1 -0
  439. package/dist/setup/github-workflow-permissions.d.ts +1 -1
  440. package/dist/setup/github-workflow-permissions.d.ts.map +1 -1
  441. package/dist/setup/github-workflow-permissions.js +1 -1
  442. package/dist/setup/github-workflow-permissions.js.map +1 -1
  443. package/dist/setup/gui-view-model.d.ts +5 -0
  444. package/dist/setup/gui-view-model.d.ts.map +1 -1
  445. package/dist/setup/gui-view-model.js +5 -0
  446. package/dist/setup/gui-view-model.js.map +1 -1
  447. package/dist/setup/harness-dispatch-repo.d.ts +16 -2
  448. package/dist/setup/harness-dispatch-repo.d.ts.map +1 -1
  449. package/dist/setup/harness-dispatch-repo.js +113 -22
  450. package/dist/setup/harness-dispatch-repo.js.map +1 -1
  451. package/dist/setup/harness-managed-repo-marker.d.ts +1 -0
  452. package/dist/setup/harness-managed-repo-marker.d.ts.map +1 -1
  453. package/dist/setup/harness-managed-repo-marker.js +18 -0
  454. package/dist/setup/harness-managed-repo-marker.js.map +1 -1
  455. package/dist/setup/harness-provisioning-last-run.d.ts +27 -0
  456. package/dist/setup/harness-provisioning-last-run.d.ts.map +1 -0
  457. package/dist/setup/harness-provisioning-last-run.js +94 -0
  458. package/dist/setup/harness-provisioning-last-run.js.map +1 -0
  459. package/dist/setup/harness-provisioning-pending-state.d.ts +1 -1
  460. package/dist/setup/harness-provisioning-pending-state.d.ts.map +1 -1
  461. package/dist/setup/harness-provisioning-pending-state.js.map +1 -1
  462. package/dist/setup/harness-provisioning-progress.d.ts +58 -0
  463. package/dist/setup/harness-provisioning-progress.d.ts.map +1 -0
  464. package/dist/setup/harness-provisioning-progress.js +134 -0
  465. package/dist/setup/harness-provisioning-progress.js.map +1 -0
  466. package/dist/setup/harness-repo-provisioning.d.ts +11 -0
  467. package/dist/setup/harness-repo-provisioning.d.ts.map +1 -1
  468. package/dist/setup/harness-repo-provisioning.js +98 -6
  469. package/dist/setup/harness-repo-provisioning.js.map +1 -1
  470. package/dist/setup/harness-snapshot-git-transport.d.ts +92 -0
  471. package/dist/setup/harness-snapshot-git-transport.d.ts.map +1 -0
  472. package/dist/setup/harness-snapshot-git-transport.js +544 -0
  473. package/dist/setup/harness-snapshot-git-transport.js.map +1 -0
  474. package/dist/setup/harness-snapshot-provisioning-helpers.d.ts +1 -1
  475. package/dist/setup/harness-snapshot-provisioning-helpers.d.ts.map +1 -1
  476. package/dist/setup/harness-snapshot-provisioning-helpers.js.map +1 -1
  477. package/dist/setup/harness-snapshot-provisioning.d.ts +12 -1
  478. package/dist/setup/harness-snapshot-provisioning.d.ts.map +1 -1
  479. package/dist/setup/harness-snapshot-provisioning.js +298 -73
  480. package/dist/setup/harness-snapshot-provisioning.js.map +1 -1
  481. package/dist/setup/harness-step-readiness-server.d.ts +11 -0
  482. package/dist/setup/harness-step-readiness-server.d.ts.map +1 -0
  483. package/dist/setup/harness-step-readiness-server.js +24 -0
  484. package/dist/setup/harness-step-readiness-server.js.map +1 -0
  485. package/dist/setup/harness-step-readiness.d.ts +21 -0
  486. package/dist/setup/harness-step-readiness.d.ts.map +1 -0
  487. package/dist/setup/harness-step-readiness.js +40 -0
  488. package/dist/setup/harness-step-readiness.js.map +1 -0
  489. package/dist/setup/harness-workspace-snapshot-loader.d.ts +6 -1
  490. package/dist/setup/harness-workspace-snapshot-loader.d.ts.map +1 -1
  491. package/dist/setup/harness-workspace-snapshot-loader.js +45 -12
  492. package/dist/setup/harness-workspace-snapshot-loader.js.map +1 -1
  493. package/dist/setup/initial-setup-lifecycle.d.ts +51 -0
  494. package/dist/setup/initial-setup-lifecycle.d.ts.map +1 -0
  495. package/dist/setup/initial-setup-lifecycle.js +93 -0
  496. package/dist/setup/initial-setup-lifecycle.js.map +1 -0
  497. package/dist/setup/linear-category-labels.d.ts +2 -0
  498. package/dist/setup/linear-category-labels.d.ts.map +1 -0
  499. package/dist/setup/linear-category-labels.js +19 -0
  500. package/dist/setup/linear-category-labels.js.map +1 -0
  501. package/dist/setup/linear-setup-apply.d.ts +1 -0
  502. package/dist/setup/linear-setup-apply.d.ts.map +1 -1
  503. package/dist/setup/linear-setup-apply.js +67 -16
  504. package/dist/setup/linear-setup-apply.js.map +1 -1
  505. package/dist/setup/linear-setup-client.d.ts +24 -0
  506. package/dist/setup/linear-setup-client.d.ts.map +1 -1
  507. package/dist/setup/linear-setup-client.js +61 -0
  508. package/dist/setup/linear-setup-client.js.map +1 -1
  509. package/dist/setup/linear-setup-plan.d.ts +22 -1
  510. package/dist/setup/linear-setup-plan.d.ts.map +1 -1
  511. package/dist/setup/linear-setup-plan.js +69 -6
  512. package/dist/setup/linear-setup-plan.js.map +1 -1
  513. package/dist/setup/linear-setup-progress.d.ts +30 -0
  514. package/dist/setup/linear-setup-progress.d.ts.map +1 -0
  515. package/dist/setup/linear-setup-progress.js +71 -0
  516. package/dist/setup/linear-setup-progress.js.map +1 -0
  517. package/dist/setup/linear-status-contract.d.ts +2 -1
  518. package/dist/setup/linear-status-contract.d.ts.map +1 -1
  519. package/dist/setup/linear-status-contract.js +26 -67
  520. package/dist/setup/linear-status-contract.js.map +1 -1
  521. package/dist/setup/linear-workflow-status-repair.d.ts +36 -0
  522. package/dist/setup/linear-workflow-status-repair.d.ts.map +1 -0
  523. package/dist/setup/linear-workflow-status-repair.js +187 -0
  524. package/dist/setup/linear-workflow-status-repair.js.map +1 -0
  525. package/dist/setup/linear-workspace-apply.d.ts +25 -0
  526. package/dist/setup/linear-workspace-apply.d.ts.map +1 -0
  527. package/dist/setup/linear-workspace-apply.js +212 -0
  528. package/dist/setup/linear-workspace-apply.js.map +1 -0
  529. package/dist/setup/linear-workspace-drift.d.ts +2 -0
  530. package/dist/setup/linear-workspace-drift.d.ts.map +1 -0
  531. package/dist/setup/linear-workspace-drift.js +2 -0
  532. package/dist/setup/linear-workspace-drift.js.map +1 -0
  533. package/dist/setup/linear-workspace-migration.d.ts +43 -0
  534. package/dist/setup/linear-workspace-migration.d.ts.map +1 -0
  535. package/dist/setup/linear-workspace-migration.js +212 -0
  536. package/dist/setup/linear-workspace-migration.js.map +1 -0
  537. package/dist/setup/linear-workspace-plan.d.ts +92 -0
  538. package/dist/setup/linear-workspace-plan.d.ts.map +1 -0
  539. package/dist/setup/linear-workspace-plan.js +283 -0
  540. package/dist/setup/linear-workspace-plan.js.map +1 -0
  541. package/dist/setup/local-readiness-checks.d.ts +17 -0
  542. package/dist/setup/local-readiness-checks.d.ts.map +1 -1
  543. package/dist/setup/local-readiness-checks.js +86 -23
  544. package/dist/setup/local-readiness-checks.js.map +1 -1
  545. package/dist/setup/mock-target-workflow-finalization.d.ts.map +1 -1
  546. package/dist/setup/mock-target-workflow-finalization.js +27 -4
  547. package/dist/setup/mock-target-workflow-finalization.js.map +1 -1
  548. package/dist/setup/packaged-default-route.d.ts +15 -0
  549. package/dist/setup/packaged-default-route.d.ts.map +1 -0
  550. package/dist/setup/packaged-default-route.js +17 -0
  551. package/dist/setup/packaged-default-route.js.map +1 -0
  552. package/dist/setup/release-sync-managed-runner.d.ts +61 -0
  553. package/dist/setup/release-sync-managed-runner.d.ts.map +1 -0
  554. package/dist/setup/release-sync-managed-runner.js +364 -0
  555. package/dist/setup/release-sync-managed-runner.js.map +1 -0
  556. package/dist/setup/remote-apply-actions.d.ts.map +1 -1
  557. package/dist/setup/remote-apply-actions.js +23 -0
  558. package/dist/setup/remote-apply-actions.js.map +1 -1
  559. package/dist/setup/runner-upgrade-canary-dispatch.d.ts +19 -0
  560. package/dist/setup/runner-upgrade-canary-dispatch.d.ts.map +1 -0
  561. package/dist/setup/runner-upgrade-canary-dispatch.js +38 -0
  562. package/dist/setup/runner-upgrade-canary-dispatch.js.map +1 -0
  563. package/dist/setup/runner-upgrade-canary.d.ts +23 -0
  564. package/dist/setup/runner-upgrade-canary.d.ts.map +1 -0
  565. package/dist/setup/runner-upgrade-canary.js +146 -0
  566. package/dist/setup/runner-upgrade-canary.js.map +1 -0
  567. package/dist/setup/runner-upgrade-evidence.d.ts +14 -0
  568. package/dist/setup/runner-upgrade-evidence.d.ts.map +1 -0
  569. package/dist/setup/runner-upgrade-evidence.js +9 -0
  570. package/dist/setup/runner-upgrade-evidence.js.map +1 -0
  571. package/dist/setup/runner-upgrade-pending-state.d.ts +30 -0
  572. package/dist/setup/runner-upgrade-pending-state.d.ts.map +1 -0
  573. package/dist/setup/runner-upgrade-pending-state.js +75 -0
  574. package/dist/setup/runner-upgrade-pending-state.js.map +1 -0
  575. package/dist/setup/runner-upgrade-progress.d.ts +38 -0
  576. package/dist/setup/runner-upgrade-progress.d.ts.map +1 -0
  577. package/dist/setup/runner-upgrade-progress.js +95 -0
  578. package/dist/setup/runner-upgrade-progress.js.map +1 -0
  579. package/dist/setup/runner-upgrade-provider-live.d.ts +5 -0
  580. package/dist/setup/runner-upgrade-provider-live.d.ts.map +1 -0
  581. package/dist/setup/runner-upgrade-provider-live.js +338 -0
  582. package/dist/setup/runner-upgrade-provider-live.js.map +1 -0
  583. package/dist/setup/runner-upgrade-provider.d.ts +231 -0
  584. package/dist/setup/runner-upgrade-provider.d.ts.map +1 -0
  585. package/dist/setup/runner-upgrade-provider.js +466 -0
  586. package/dist/setup/runner-upgrade-provider.js.map +1 -0
  587. package/dist/setup/runner-upgrade-status-cache.d.ts +13 -0
  588. package/dist/setup/runner-upgrade-status-cache.d.ts.map +1 -0
  589. package/dist/setup/runner-upgrade-status-cache.js +39 -0
  590. package/dist/setup/runner-upgrade-status-cache.js.map +1 -0
  591. package/dist/setup/runner-upgrade-three-way.d.ts +28 -0
  592. package/dist/setup/runner-upgrade-three-way.d.ts.map +1 -0
  593. package/dist/setup/runner-upgrade-three-way.js +102 -0
  594. package/dist/setup/runner-upgrade-three-way.js.map +1 -0
  595. package/dist/setup/runner-upgrade-timeouts.d.ts +72 -0
  596. package/dist/setup/runner-upgrade-timeouts.d.ts.map +1 -0
  597. package/dist/setup/runner-upgrade-timeouts.js +261 -0
  598. package/dist/setup/runner-upgrade-timeouts.js.map +1 -0
  599. package/dist/setup/runner-upgrade-types.d.ts +84 -0
  600. package/dist/setup/runner-upgrade-types.d.ts.map +1 -0
  601. package/dist/setup/runner-upgrade-types.js +64 -0
  602. package/dist/setup/runner-upgrade-types.js.map +1 -0
  603. package/dist/setup/runner-upgrade-worker.d.ts +17 -0
  604. package/dist/setup/runner-upgrade-worker.d.ts.map +1 -0
  605. package/dist/setup/runner-upgrade-worker.js +115 -0
  606. package/dist/setup/runner-upgrade-worker.js.map +1 -0
  607. package/dist/setup/runner-upgrade.d.ts +57 -0
  608. package/dist/setup/runner-upgrade.d.ts.map +1 -0
  609. package/dist/setup/runner-upgrade.js +1311 -0
  610. package/dist/setup/runner-upgrade.js.map +1 -0
  611. package/dist/setup/service-verification.d.ts +18 -1
  612. package/dist/setup/service-verification.d.ts.map +1 -1
  613. package/dist/setup/service-verification.js +110 -19
  614. package/dist/setup/service-verification.js.map +1 -1
  615. package/dist/setup/settings-config-patch.d.ts +69 -0
  616. package/dist/setup/settings-config-patch.d.ts.map +1 -0
  617. package/dist/setup/settings-config-patch.js +312 -0
  618. package/dist/setup/settings-config-patch.js.map +1 -0
  619. package/dist/setup/setup-state.d.ts +1 -0
  620. package/dist/setup/setup-state.d.ts.map +1 -1
  621. package/dist/setup/setup-state.js +11 -1
  622. package/dist/setup/setup-state.js.map +1 -1
  623. package/dist/setup/step6-automatic-control-state.d.ts +21 -0
  624. package/dist/setup/step6-automatic-control-state.d.ts.map +1 -0
  625. package/dist/setup/step6-automatic-control-state.js +28 -0
  626. package/dist/setup/step6-automatic-control-state.js.map +1 -0
  627. package/dist/setup/sync-harness-config-cloud.d.ts +23 -0
  628. package/dist/setup/sync-harness-config-cloud.d.ts.map +1 -0
  629. package/dist/setup/sync-harness-config-cloud.js +91 -0
  630. package/dist/setup/sync-harness-config-cloud.js.map +1 -0
  631. package/dist/setup/target-repo-provisioning-pending-state.d.ts +42 -0
  632. package/dist/setup/target-repo-provisioning-pending-state.d.ts.map +1 -0
  633. package/dist/setup/target-repo-provisioning-pending-state.js +95 -0
  634. package/dist/setup/target-repo-provisioning-pending-state.js.map +1 -0
  635. package/dist/setup/target-repo-provisioning.d.ts +67 -0
  636. package/dist/setup/target-repo-provisioning.d.ts.map +1 -0
  637. package/dist/setup/target-repo-provisioning.js +473 -0
  638. package/dist/setup/target-repo-provisioning.js.map +1 -0
  639. package/dist/setup/target-workflow-finalization-progress.d.ts +43 -0
  640. package/dist/setup/target-workflow-finalization-progress.d.ts.map +1 -0
  641. package/dist/setup/target-workflow-finalization-progress.js +83 -0
  642. package/dist/setup/target-workflow-finalization-progress.js.map +1 -0
  643. package/dist/setup/target-workflow-finalization-types.d.ts +21 -1
  644. package/dist/setup/target-workflow-finalization-types.d.ts.map +1 -1
  645. package/dist/setup/target-workflow-finalization-types.js +75 -0
  646. package/dist/setup/target-workflow-finalization-types.js.map +1 -1
  647. package/dist/setup/target-workflow-finalization.d.ts.map +1 -1
  648. package/dist/setup/target-workflow-finalization.js +618 -15
  649. package/dist/setup/target-workflow-finalization.js.map +1 -1
  650. package/dist/setup/target-workflow-setup.d.ts.map +1 -1
  651. package/dist/setup/target-workflow-setup.js +2 -0
  652. package/dist/setup/target-workflow-setup.js.map +1 -1
  653. package/dist/setup/test-only-runner-upgrade-provider.d.ts +11 -0
  654. package/dist/setup/test-only-runner-upgrade-provider.d.ts.map +1 -0
  655. package/dist/setup/test-only-runner-upgrade-provider.js +37 -0
  656. package/dist/setup/test-only-runner-upgrade-provider.js.map +1 -0
  657. package/dist/setup/test-only-target-repo-provisioning-provider.d.ts +7 -0
  658. package/dist/setup/test-only-target-repo-provisioning-provider.d.ts.map +1 -0
  659. package/dist/setup/test-only-target-repo-provisioning-provider.js +33 -0
  660. package/dist/setup/test-only-target-repo-provisioning-provider.js.map +1 -0
  661. package/dist/setup/vercel-bridge-artifact.d.ts +7 -0
  662. package/dist/setup/vercel-bridge-artifact.d.ts.map +1 -0
  663. package/dist/setup/vercel-bridge-artifact.js +164 -0
  664. package/dist/setup/vercel-bridge-artifact.js.map +1 -0
  665. package/dist/setup/vercel-bridge-deploy.d.ts +42 -0
  666. package/dist/setup/vercel-bridge-deploy.d.ts.map +1 -0
  667. package/dist/setup/vercel-bridge-deploy.js +138 -0
  668. package/dist/setup/vercel-bridge-deploy.js.map +1 -0
  669. package/dist/setup/vercel-bridge-diagnostics.js +1 -1
  670. package/dist/setup/vercel-bridge-diagnostics.js.map +1 -1
  671. package/dist/setup/vercel-bridge-options.d.ts +2 -0
  672. package/dist/setup/vercel-bridge-options.d.ts.map +1 -1
  673. package/dist/setup/vercel-bridge-options.js +2 -0
  674. package/dist/setup/vercel-bridge-options.js.map +1 -1
  675. package/dist/setup/vercel-bridge-orchestration-summary.d.ts +13 -0
  676. package/dist/setup/vercel-bridge-orchestration-summary.d.ts.map +1 -0
  677. package/dist/setup/vercel-bridge-orchestration-summary.js +22 -0
  678. package/dist/setup/vercel-bridge-orchestration-summary.js.map +1 -0
  679. package/dist/setup/vercel-bridge-project-marker.d.ts +5 -0
  680. package/dist/setup/vercel-bridge-project-marker.d.ts.map +1 -0
  681. package/dist/setup/vercel-bridge-project-marker.js +6 -0
  682. package/dist/setup/vercel-bridge-project-marker.js.map +1 -0
  683. package/dist/setup/vercel-bridge-readiness.d.ts +1 -0
  684. package/dist/setup/vercel-bridge-readiness.d.ts.map +1 -1
  685. package/dist/setup/vercel-bridge-readiness.js +1 -1
  686. package/dist/setup/vercel-bridge-readiness.js.map +1 -1
  687. package/dist/setup/vercel-bridge-redeploy-normalize.d.ts +18 -0
  688. package/dist/setup/vercel-bridge-redeploy-normalize.d.ts.map +1 -0
  689. package/dist/setup/vercel-bridge-redeploy-normalize.js +175 -0
  690. package/dist/setup/vercel-bridge-redeploy-normalize.js.map +1 -0
  691. package/dist/setup/vercel-bridge-redeploy-poll.d.ts +7 -1
  692. package/dist/setup/vercel-bridge-redeploy-poll.d.ts.map +1 -1
  693. package/dist/setup/vercel-bridge-redeploy-poll.js +329 -166
  694. package/dist/setup/vercel-bridge-redeploy-poll.js.map +1 -1
  695. package/dist/setup/vercel-bridge-redeploy-state.d.ts.map +1 -1
  696. package/dist/setup/vercel-bridge-redeploy-state.js +3 -0
  697. package/dist/setup/vercel-bridge-redeploy-state.js.map +1 -1
  698. package/dist/setup/vercel-bridge-structured-log.d.ts +5 -0
  699. package/dist/setup/vercel-bridge-structured-log.d.ts.map +1 -1
  700. package/dist/setup/vercel-bridge-structured-log.js.map +1 -1
  701. package/dist/setup/vercel-project-name.d.ts +7 -0
  702. package/dist/setup/vercel-project-name.d.ts.map +1 -0
  703. package/dist/setup/vercel-project-name.js +26 -0
  704. package/dist/setup/vercel-project-name.js.map +1 -0
  705. package/dist/setup/vercel-setup-apply.d.ts +7 -2
  706. package/dist/setup/vercel-setup-apply.d.ts.map +1 -1
  707. package/dist/setup/vercel-setup-apply.js +315 -38
  708. package/dist/setup/vercel-setup-apply.js.map +1 -1
  709. package/dist/setup/vercel-setup-client.d.ts +26 -1
  710. package/dist/setup/vercel-setup-client.d.ts.map +1 -1
  711. package/dist/setup/vercel-setup-client.js +50 -1
  712. package/dist/setup/vercel-setup-client.js.map +1 -1
  713. package/dist/setup/vercel-setup-plan.d.ts +5 -0
  714. package/dist/setup/vercel-setup-plan.d.ts.map +1 -1
  715. package/dist/setup/vercel-setup-plan.js +65 -13
  716. package/dist/setup/vercel-setup-plan.js.map +1 -1
  717. package/dist/setup/vercel-setup-summary.d.ts +3 -0
  718. package/dist/setup/vercel-setup-summary.d.ts.map +1 -1
  719. package/dist/setup/vercel-setup-summary.js +4 -0
  720. package/dist/setup/vercel-setup-summary.js.map +1 -1
  721. package/dist/setup/workflow-config-snapshot.d.ts +8 -0
  722. package/dist/setup/workflow-config-snapshot.d.ts.map +1 -0
  723. package/dist/setup/workflow-config-snapshot.js +13 -0
  724. package/dist/setup/workflow-config-snapshot.js.map +1 -0
  725. package/dist/setup/workflow-install-branch-recovery.d.ts +116 -0
  726. package/dist/setup/workflow-install-branch-recovery.d.ts.map +1 -0
  727. package/dist/setup/workflow-install-branch-recovery.js +385 -0
  728. package/dist/setup/workflow-install-branch-recovery.js.map +1 -0
  729. package/dist/setup/workflow-install-merge-errors.d.ts +5 -2
  730. package/dist/setup/workflow-install-merge-errors.d.ts.map +1 -1
  731. package/dist/setup/workflow-install-merge-errors.js +51 -17
  732. package/dist/setup/workflow-install-merge-errors.js.map +1 -1
  733. package/dist/setup/workflow-install-merge-gate.d.ts +10 -0
  734. package/dist/setup/workflow-install-merge-gate.d.ts.map +1 -0
  735. package/dist/setup/workflow-install-merge-gate.js +21 -0
  736. package/dist/setup/workflow-install-merge-gate.js.map +1 -0
  737. package/dist/setup/workflow-model-save-queue.d.ts +16 -0
  738. package/dist/setup/workflow-model-save-queue.d.ts.map +1 -0
  739. package/dist/setup/workflow-model-save-queue.js +174 -0
  740. package/dist/setup/workflow-model-save-queue.js.map +1 -0
  741. package/dist/setup/workflow-model-sync-lock.d.ts +12 -0
  742. package/dist/setup/workflow-model-sync-lock.d.ts.map +1 -0
  743. package/dist/setup/workflow-model-sync-lock.js +79 -0
  744. package/dist/setup/workflow-model-sync-lock.js.map +1 -0
  745. package/dist/setup/workflow-model-sync.d.ts +34 -0
  746. package/dist/setup/workflow-model-sync.d.ts.map +1 -0
  747. package/dist/setup/workflow-model-sync.js +163 -0
  748. package/dist/setup/workflow-model-sync.js.map +1 -0
  749. package/dist/setup/workflow-models-sync-evidence.d.ts +12 -0
  750. package/dist/setup/workflow-models-sync-evidence.d.ts.map +1 -0
  751. package/dist/setup/workflow-models-sync-evidence.js +15 -0
  752. package/dist/setup/workflow-models-sync-evidence.js.map +1 -0
  753. package/dist/types/parsed-issue.d.ts +8 -0
  754. package/dist/types/parsed-issue.d.ts.map +1 -1
  755. package/dist/types/run.d.ts +18 -3
  756. package/dist/types/run.d.ts.map +1 -1
  757. package/dist/validate/issue.d.ts +5 -0
  758. package/dist/validate/issue.d.ts.map +1 -1
  759. package/dist/validate/issue.js +23 -3
  760. package/dist/validate/issue.js.map +1 -1
  761. package/dist/validate/types.d.ts +3 -0
  762. package/dist/validate/types.d.ts.map +1 -1
  763. package/dist/webhook/dispatch-statuses.d.ts +1 -1
  764. package/dist/webhook/dispatch-statuses.d.ts.map +1 -1
  765. package/dist/webhook/dispatch-statuses.js +4 -13
  766. package/dist/webhook/dispatch-statuses.js.map +1 -1
  767. package/dist/webhook/filter.d.ts +5 -2
  768. package/dist/webhook/filter.d.ts.map +1 -1
  769. package/dist/webhook/filter.js +15 -1
  770. package/dist/webhook/filter.js.map +1 -1
  771. package/dist/webhook/handle-linear-webhook.d.ts.map +1 -1
  772. package/dist/webhook/handle-linear-webhook.js +15 -1
  773. package/dist/webhook/handle-linear-webhook.js.map +1 -1
  774. package/dist/webhook/parse-linear-issue-event.d.ts +6 -0
  775. package/dist/webhook/parse-linear-issue-event.d.ts.map +1 -1
  776. package/dist/webhook/parse-linear-issue-event.js +2 -0
  777. package/dist/webhook/parse-linear-issue-event.js.map +1 -1
  778. package/dist/webhook/types.d.ts +3 -1
  779. package/dist/webhook/types.d.ts.map +1 -1
  780. package/dist/workflow/canonical-product-development-workflow.d.ts +106 -0
  781. package/dist/workflow/canonical-product-development-workflow.d.ts.map +1 -0
  782. package/dist/workflow/canonical-product-development-workflow.js +425 -0
  783. package/dist/workflow/canonical-product-development-workflow.js.map +1 -0
  784. package/dist/workflow/canonical-workflow-gate.d.ts +33 -0
  785. package/dist/workflow/canonical-workflow-gate.d.ts.map +1 -0
  786. package/dist/workflow/canonical-workflow-gate.js +164 -0
  787. package/dist/workflow/canonical-workflow-gate.js.map +1 -0
  788. package/dist/workflow/canonical-workflow-validation.d.ts +44 -0
  789. package/dist/workflow/canonical-workflow-validation.d.ts.map +1 -0
  790. package/dist/workflow/canonical-workflow-validation.js +193 -0
  791. package/dist/workflow/canonical-workflow-validation.js.map +1 -0
  792. package/dist/workflow/finalize-harness-run.d.ts +2 -0
  793. package/dist/workflow/finalize-harness-run.d.ts.map +1 -0
  794. package/dist/workflow/finalize-harness-run.js +62 -0
  795. package/dist/workflow/finalize-harness-run.js.map +1 -0
  796. package/dist/workflow/preflight-canonical.d.ts +11 -0
  797. package/dist/workflow/preflight-canonical.d.ts.map +1 -0
  798. package/dist/workflow/preflight-canonical.js +20 -0
  799. package/dist/workflow/preflight-canonical.js.map +1 -0
  800. package/dist/workflow/write-fallback-manifest.d.ts +2 -0
  801. package/dist/workflow/write-fallback-manifest.d.ts.map +1 -0
  802. package/dist/workflow/write-fallback-manifest.js +30 -0
  803. package/dist/workflow/write-fallback-manifest.js.map +1 -0
  804. package/dist/workflow-page/bootstrap.d.ts +21 -0
  805. package/dist/workflow-page/bootstrap.d.ts.map +1 -0
  806. package/dist/workflow-page/bootstrap.js +185 -0
  807. package/dist/workflow-page/bootstrap.js.map +1 -0
  808. package/dist/workflow-page/catalog-validation.d.ts +33 -0
  809. package/dist/workflow-page/catalog-validation.d.ts.map +1 -0
  810. package/dist/workflow-page/catalog-validation.js +105 -0
  811. package/dist/workflow-page/catalog-validation.js.map +1 -0
  812. package/dist/workflow-page/constants.d.ts +7 -0
  813. package/dist/workflow-page/constants.d.ts.map +1 -0
  814. package/dist/workflow-page/constants.js +18 -0
  815. package/dist/workflow-page/constants.js.map +1 -0
  816. package/dist/workflow-page/current-workflow.d.ts +18 -0
  817. package/dist/workflow-page/current-workflow.d.ts.map +1 -0
  818. package/dist/workflow-page/current-workflow.js +142 -0
  819. package/dist/workflow-page/current-workflow.js.map +1 -0
  820. package/dist/workflow-page/fingerprint.d.ts +3 -0
  821. package/dist/workflow-page/fingerprint.d.ts.map +1 -0
  822. package/dist/workflow-page/fingerprint.js +8 -0
  823. package/dist/workflow-page/fingerprint.js.map +1 -0
  824. package/dist/workflow-page/fixture-definition.d.ts +13 -0
  825. package/dist/workflow-page/fixture-definition.d.ts.map +1 -0
  826. package/dist/workflow-page/fixture-definition.js +2 -0
  827. package/dist/workflow-page/fixture-definition.js.map +1 -0
  828. package/dist/workflow-page/fixture-role-models.d.ts +19 -0
  829. package/dist/workflow-page/fixture-role-models.d.ts.map +1 -0
  830. package/dist/workflow-page/fixture-role-models.js +32 -0
  831. package/dist/workflow-page/fixture-role-models.js.map +1 -0
  832. package/dist/workflow-page/fixtures/basic-current-workflow.d.ts +5 -0
  833. package/dist/workflow-page/fixtures/basic-current-workflow.d.ts.map +1 -0
  834. package/dist/workflow-page/fixtures/basic-current-workflow.js +36 -0
  835. package/dist/workflow-page/fixtures/basic-current-workflow.js.map +1 -0
  836. package/dist/workflow-page/fixtures/branching-pr-review.d.ts +3 -0
  837. package/dist/workflow-page/fixtures/branching-pr-review.d.ts.map +1 -0
  838. package/dist/workflow-page/fixtures/branching-pr-review.js +10 -0
  839. package/dist/workflow-page/fixtures/branching-pr-review.js.map +1 -0
  840. package/dist/workflow-page/fixtures/canonical-violations.d.ts +6 -0
  841. package/dist/workflow-page/fixtures/canonical-violations.d.ts.map +1 -0
  842. package/dist/workflow-page/fixtures/canonical-violations.js +19 -0
  843. package/dist/workflow-page/fixtures/canonical-violations.js.map +1 -0
  844. package/dist/workflow-page/fixtures/credential-errors.d.ts +3 -0
  845. package/dist/workflow-page/fixtures/credential-errors.d.ts.map +1 -0
  846. package/dist/workflow-page/fixtures/credential-errors.js +12 -0
  847. package/dist/workflow-page/fixtures/credential-errors.js.map +1 -0
  848. package/dist/workflow-page/fixtures/empty-linear-statuses.d.ts +3 -0
  849. package/dist/workflow-page/fixtures/empty-linear-statuses.d.ts.map +1 -0
  850. package/dist/workflow-page/fixtures/empty-linear-statuses.js +9 -0
  851. package/dist/workflow-page/fixtures/empty-linear-statuses.js.map +1 -0
  852. package/dist/workflow-page/fixtures/hundred-node-performance.d.ts +3 -0
  853. package/dist/workflow-page/fixtures/hundred-node-performance.d.ts.map +1 -0
  854. package/dist/workflow-page/fixtures/hundred-node-performance.js +21 -0
  855. package/dist/workflow-page/fixtures/hundred-node-performance.js.map +1 -0
  856. package/dist/workflow-page/fixtures/index.d.ts +6 -0
  857. package/dist/workflow-page/fixtures/index.d.ts.map +1 -0
  858. package/dist/workflow-page/fixtures/index.js +24 -0
  859. package/dist/workflow-page/fixtures/index.js.map +1 -0
  860. package/dist/workflow-page/fixtures/model-catalog-snapshot.d.ts +10 -0
  861. package/dist/workflow-page/fixtures/model-catalog-snapshot.d.ts.map +1 -0
  862. package/dist/workflow-page/fixtures/model-catalog-snapshot.js +29 -0
  863. package/dist/workflow-page/fixtures/model-catalog-snapshot.js.map +1 -0
  864. package/dist/workflow-page/fixtures/workflow-scopes.d.ts +4 -0
  865. package/dist/workflow-page/fixtures/workflow-scopes.d.ts.map +1 -0
  866. package/dist/workflow-page/fixtures/workflow-scopes.js +16 -0
  867. package/dist/workflow-page/fixtures/workflow-scopes.js.map +1 -0
  868. package/dist/workflow-page/linear-status-source.d.ts +15 -0
  869. package/dist/workflow-page/linear-status-source.d.ts.map +1 -0
  870. package/dist/workflow-page/linear-status-source.js +44 -0
  871. package/dist/workflow-page/linear-status-source.js.map +1 -0
  872. package/dist/workflow-page/model-catalog-lookup.d.ts +3 -0
  873. package/dist/workflow-page/model-catalog-lookup.d.ts.map +1 -0
  874. package/dist/workflow-page/model-catalog-lookup.js +4 -0
  875. package/dist/workflow-page/model-catalog-lookup.js.map +1 -0
  876. package/dist/workflow-page/model-catalog-utils.d.ts +19 -0
  877. package/dist/workflow-page/model-catalog-utils.d.ts.map +1 -0
  878. package/dist/workflow-page/model-catalog-utils.js +46 -0
  879. package/dist/workflow-page/model-catalog-utils.js.map +1 -0
  880. package/dist/workflow-page/model-catalog.d.ts +12 -0
  881. package/dist/workflow-page/model-catalog.d.ts.map +1 -0
  882. package/dist/workflow-page/model-catalog.js +40 -0
  883. package/dist/workflow-page/model-catalog.js.map +1 -0
  884. package/dist/workflow-page/scope-branches.d.ts +11 -0
  885. package/dist/workflow-page/scope-branches.d.ts.map +1 -0
  886. package/dist/workflow-page/scope-branches.js +18 -0
  887. package/dist/workflow-page/scope-branches.js.map +1 -0
  888. package/dist/workflow-page/source-context.d.ts +13 -0
  889. package/dist/workflow-page/source-context.d.ts.map +1 -0
  890. package/dist/workflow-page/source-context.js +61 -0
  891. package/dist/workflow-page/source-context.js.map +1 -0
  892. package/dist/workflow-page/types.d.ts +108 -0
  893. package/dist/workflow-page/types.d.ts.map +1 -0
  894. package/dist/workflow-page/types.js +2 -0
  895. package/dist/workflow-page/types.js.map +1 -0
  896. package/dist/workflow-page/workflow-scopes.d.ts +16 -0
  897. package/dist/workflow-page/workflow-scopes.d.ts.map +1 -0
  898. package/dist/workflow-page/workflow-scopes.js +55 -0
  899. package/dist/workflow-page/workflow-scopes.js.map +1 -0
  900. package/gui/.next/BUILD_ID +1 -1
  901. package/gui/.next/app-build-manifest.json +376 -115
  902. package/gui/.next/app-path-routes-manifest.json +44 -15
  903. package/gui/.next/build-manifest.json +12 -12
  904. package/gui/.next/next-minimal-server.js.nft.json +1 -1
  905. package/gui/.next/next-server.js.nft.json +1 -1
  906. package/gui/.next/prerender-manifest.json +0 -24
  907. package/gui/.next/required-server-files.json +4 -3
  908. package/gui/.next/routes-manifest.json +54 -0
  909. package/gui/.next/server/app/_not-found/page.js +2 -2
  910. package/gui/.next/server/app/_not-found/page.js.nft.json +1 -1
  911. package/gui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  912. package/gui/.next/server/app/_not-found.html +1 -1
  913. package/gui/.next/server/app/_not-found.rsc +3 -3
  914. package/gui/.next/server/app/api/observability/event/route.js +1 -0
  915. package/gui/.next/server/app/api/observability/event/route.js.nft.json +1 -0
  916. package/gui/.next/server/app/api/observability/event/route_client-reference-manifest.js +1 -0
  917. package/gui/.next/server/app/api/observability/preferences/route.js +1 -0
  918. package/gui/.next/server/app/api/observability/preferences/route.js.nft.json +1 -0
  919. package/gui/.next/server/app/api/observability/preferences/route_client-reference-manifest.js +1 -0
  920. package/gui/.next/server/app/api/operations/bootstrap/route.js +1 -0
  921. package/gui/.next/server/app/api/operations/bootstrap/route.js.nft.json +1 -0
  922. package/gui/.next/server/app/api/operations/bootstrap/route_client-reference-manifest.js +1 -0
  923. package/gui/.next/server/app/api/operations/draft/route.js +1 -0
  924. package/gui/.next/server/app/api/operations/draft/route.js.nft.json +1 -0
  925. package/gui/.next/server/app/api/operations/draft/route_client-reference-manifest.js +1 -0
  926. package/gui/.next/server/app/api/settings/apply-config-patch/route.js +8 -0
  927. package/gui/.next/server/app/api/settings/apply-config-patch/route.js.nft.json +1 -0
  928. package/gui/.next/server/app/api/settings/apply-config-patch/route_client-reference-manifest.js +1 -0
  929. package/gui/.next/server/app/api/settings/preview-config-patch/route.js +8 -0
  930. package/gui/.next/server/app/api/settings/preview-config-patch/route.js.nft.json +1 -0
  931. package/gui/.next/server/app/api/settings/preview-config-patch/route_client-reference-manifest.js +1 -0
  932. package/gui/.next/server/app/api/setup/apply-connect-services/route.js +1 -1
  933. package/gui/.next/server/app/api/setup/apply-connect-services/route.js.nft.json +1 -1
  934. package/gui/.next/server/app/api/setup/apply-connect-services/route_client-reference-manifest.js +1 -1
  935. package/gui/.next/server/app/api/setup/apply-harness-repo-provisioning/route.js +1 -1
  936. package/gui/.next/server/app/api/setup/apply-harness-repo-provisioning/route.js.nft.json +1 -1
  937. package/gui/.next/server/app/api/setup/apply-harness-repo-provisioning/route_client-reference-manifest.js +1 -1
  938. package/gui/.next/server/app/api/setup/apply-harness-secrets/route.js +1 -1
  939. package/gui/.next/server/app/api/setup/apply-harness-secrets/route.js.nft.json +1 -1
  940. package/gui/.next/server/app/api/setup/apply-harness-secrets/route_client-reference-manifest.js +1 -1
  941. package/gui/.next/server/app/api/setup/apply-linear-setup/route.js +1 -1
  942. package/gui/.next/server/app/api/setup/apply-linear-setup/route.js.nft.json +1 -1
  943. package/gui/.next/server/app/api/setup/apply-linear-setup/route_client-reference-manifest.js +1 -1
  944. package/gui/.next/server/app/api/setup/apply-linear-workspace/route.js +1 -0
  945. package/gui/.next/server/app/api/setup/apply-linear-workspace/route.js.nft.json +1 -0
  946. package/gui/.next/server/app/api/setup/apply-linear-workspace/route_client-reference-manifest.js +1 -0
  947. package/gui/.next/server/app/api/setup/apply-local-files/route.js +1 -1
  948. package/gui/.next/server/app/api/setup/apply-local-files/route.js.nft.json +1 -1
  949. package/gui/.next/server/app/api/setup/apply-local-files/route_client-reference-manifest.js +1 -1
  950. package/gui/.next/server/app/api/setup/apply-runner-upgrade/route.js +1 -0
  951. package/gui/.next/server/app/api/setup/apply-runner-upgrade/route.js.nft.json +1 -0
  952. package/gui/.next/server/app/api/setup/apply-runner-upgrade/route_client-reference-manifest.js +1 -0
  953. package/gui/.next/server/app/api/setup/apply-target-repo-provisioning/route.js +1 -0
  954. package/gui/.next/server/app/api/setup/apply-target-repo-provisioning/route.js.nft.json +1 -0
  955. package/gui/.next/server/app/api/setup/apply-target-repo-provisioning/route_client-reference-manifest.js +1 -0
  956. package/gui/.next/server/app/api/setup/apply-target-workflow/route.js +1 -1
  957. package/gui/.next/server/app/api/setup/apply-target-workflow/route.js.nft.json +1 -1
  958. package/gui/.next/server/app/api/setup/apply-target-workflow/route_client-reference-manifest.js +1 -1
  959. package/gui/.next/server/app/api/setup/apply-vercel-bridge/route.js +1 -1
  960. package/gui/.next/server/app/api/setup/apply-vercel-bridge/route.js.nft.json +1 -1
  961. package/gui/.next/server/app/api/setup/apply-vercel-bridge/route_client-reference-manifest.js +1 -1
  962. package/gui/.next/server/app/api/setup/complete-initial-setup/route.js +1 -0
  963. package/gui/.next/server/app/api/setup/complete-initial-setup/route.js.nft.json +1 -0
  964. package/gui/.next/server/app/api/setup/complete-initial-setup/route_client-reference-manifest.js +1 -0
  965. package/gui/.next/server/app/api/setup/finalize-target-workflow/route.js +1 -1
  966. package/gui/.next/server/app/api/setup/finalize-target-workflow/route.js.nft.json +1 -1
  967. package/gui/.next/server/app/api/setup/finalize-target-workflow/route_client-reference-manifest.js +1 -1
  968. package/gui/.next/server/app/api/setup/harness-provisioning-progress/route.js +1 -0
  969. package/gui/.next/server/app/api/setup/harness-provisioning-progress/route.js.nft.json +1 -0
  970. package/gui/.next/server/app/api/setup/harness-provisioning-progress/route_client-reference-manifest.js +1 -0
  971. package/gui/.next/server/app/api/setup/harness-provisioning-summary/route.js +1 -1
  972. package/gui/.next/server/app/api/setup/harness-provisioning-summary/route.js.nft.json +1 -1
  973. package/gui/.next/server/app/api/setup/harness-provisioning-summary/route_client-reference-manifest.js +1 -1
  974. package/gui/.next/server/app/api/setup/linear-options/route.js +1 -1
  975. package/gui/.next/server/app/api/setup/linear-options/route.js.nft.json +1 -1
  976. package/gui/.next/server/app/api/setup/linear-options/route_client-reference-manifest.js +1 -1
  977. package/gui/.next/server/app/api/setup/linear-setup-progress/route.js +1 -0
  978. package/gui/.next/server/app/api/setup/linear-setup-progress/route.js.nft.json +1 -0
  979. package/gui/.next/server/app/api/setup/linear-setup-progress/route_client-reference-manifest.js +1 -0
  980. package/gui/.next/server/app/api/setup/linear-summary/route.js +1 -1
  981. package/gui/.next/server/app/api/setup/linear-summary/route.js.nft.json +1 -1
  982. package/gui/.next/server/app/api/setup/linear-summary/route_client-reference-manifest.js +1 -1
  983. package/gui/.next/server/app/api/setup/linear-workspace-editor-state/route.js +1 -0
  984. package/gui/.next/server/app/api/setup/linear-workspace-editor-state/route.js.nft.json +1 -0
  985. package/gui/.next/server/app/api/setup/linear-workspace-editor-state/route_client-reference-manifest.js +1 -0
  986. package/gui/.next/server/app/api/setup/local-readiness/route.js +3 -1
  987. package/gui/.next/server/app/api/setup/local-readiness/route.js.nft.json +1 -1
  988. package/gui/.next/server/app/api/setup/local-readiness/route_client-reference-manifest.js +1 -1
  989. package/gui/.next/server/app/api/setup/manual-harness-secret-values/route.js +1 -1
  990. package/gui/.next/server/app/api/setup/manual-harness-secret-values/route.js.nft.json +1 -1
  991. package/gui/.next/server/app/api/setup/manual-harness-secret-values/route_client-reference-manifest.js +1 -1
  992. package/gui/.next/server/app/api/setup/preview-connect-services/route.js +1 -1
  993. package/gui/.next/server/app/api/setup/preview-connect-services/route.js.nft.json +1 -1
  994. package/gui/.next/server/app/api/setup/preview-connect-services/route_client-reference-manifest.js +1 -1
  995. package/gui/.next/server/app/api/setup/preview-harness-repo-provisioning/route.js +1 -1
  996. package/gui/.next/server/app/api/setup/preview-harness-repo-provisioning/route.js.nft.json +1 -1
  997. package/gui/.next/server/app/api/setup/preview-harness-repo-provisioning/route_client-reference-manifest.js +1 -1
  998. package/gui/.next/server/app/api/setup/preview-harness-secrets/route.js +1 -1
  999. package/gui/.next/server/app/api/setup/preview-harness-secrets/route.js.nft.json +1 -1
  1000. package/gui/.next/server/app/api/setup/preview-harness-secrets/route_client-reference-manifest.js +1 -1
  1001. package/gui/.next/server/app/api/setup/preview-linear-setup/route.js +1 -1
  1002. package/gui/.next/server/app/api/setup/preview-linear-setup/route.js.nft.json +1 -1
  1003. package/gui/.next/server/app/api/setup/preview-linear-setup/route_client-reference-manifest.js +1 -1
  1004. package/gui/.next/server/app/api/setup/preview-linear-workspace/route.js +1 -0
  1005. package/gui/.next/server/app/api/setup/preview-linear-workspace/route.js.nft.json +1 -0
  1006. package/gui/.next/server/app/api/setup/preview-linear-workspace/route_client-reference-manifest.js +1 -0
  1007. package/gui/.next/server/app/api/setup/preview-local-files/route.js +1 -1
  1008. package/gui/.next/server/app/api/setup/preview-local-files/route.js.nft.json +1 -1
  1009. package/gui/.next/server/app/api/setup/preview-local-files/route_client-reference-manifest.js +1 -1
  1010. package/gui/.next/server/app/api/setup/preview-runner-upgrade/route.js +1 -0
  1011. package/gui/.next/server/app/api/setup/preview-runner-upgrade/route.js.nft.json +1 -0
  1012. package/gui/.next/server/app/api/setup/preview-runner-upgrade/route_client-reference-manifest.js +1 -0
  1013. package/gui/.next/server/app/api/setup/preview-target-repo-provisioning/route.js +1 -0
  1014. package/gui/.next/server/app/api/setup/preview-target-repo-provisioning/route.js.nft.json +1 -0
  1015. package/gui/.next/server/app/api/setup/preview-target-repo-provisioning/route_client-reference-manifest.js +1 -0
  1016. package/gui/.next/server/app/api/setup/preview-target-workflow/route.js +1 -1
  1017. package/gui/.next/server/app/api/setup/preview-target-workflow/route.js.nft.json +1 -1
  1018. package/gui/.next/server/app/api/setup/preview-target-workflow/route_client-reference-manifest.js +1 -1
  1019. package/gui/.next/server/app/api/setup/preview-vercel-bridge/route.js +1 -1
  1020. package/gui/.next/server/app/api/setup/preview-vercel-bridge/route.js.nft.json +1 -1
  1021. package/gui/.next/server/app/api/setup/preview-vercel-bridge/route_client-reference-manifest.js +1 -1
  1022. package/gui/.next/server/app/api/setup/remote-summary/route.js +1 -1
  1023. package/gui/.next/server/app/api/setup/remote-summary/route.js.nft.json +1 -1
  1024. package/gui/.next/server/app/api/setup/remote-summary/route_client-reference-manifest.js +1 -1
  1025. package/gui/.next/server/app/api/setup/runner-upgrade-progress/route.js +1 -0
  1026. package/gui/.next/server/app/api/setup/runner-upgrade-progress/route.js.nft.json +1 -0
  1027. package/gui/.next/server/app/api/setup/runner-upgrade-progress/route_client-reference-manifest.js +1 -0
  1028. package/gui/.next/server/app/api/setup/runner-upgrade-status/route.js +1 -0
  1029. package/gui/.next/server/app/api/setup/runner-upgrade-status/route.js.nft.json +1 -0
  1030. package/gui/.next/server/app/api/setup/runner-upgrade-status/route_client-reference-manifest.js +1 -0
  1031. package/gui/.next/server/app/api/setup/summary/route.js +1 -1
  1032. package/gui/.next/server/app/api/setup/summary/route.js.nft.json +1 -1
  1033. package/gui/.next/server/app/api/setup/summary/route_client-reference-manifest.js +1 -1
  1034. package/gui/.next/server/app/api/setup/vercel-bridge-options/route.js +1 -1
  1035. package/gui/.next/server/app/api/setup/vercel-bridge-options/route.js.nft.json +1 -1
  1036. package/gui/.next/server/app/api/setup/vercel-bridge-options/route_client-reference-manifest.js +1 -1
  1037. package/gui/.next/server/app/api/setup/vercel-bridge-redeploy-status/route.js +1 -1
  1038. package/gui/.next/server/app/api/setup/vercel-bridge-redeploy-status/route.js.nft.json +1 -1
  1039. package/gui/.next/server/app/api/setup/vercel-bridge-redeploy-status/route_client-reference-manifest.js +1 -1
  1040. package/gui/.next/server/app/api/setup/vercel-summary/route.js +1 -1
  1041. package/gui/.next/server/app/api/setup/vercel-summary/route.js.nft.json +1 -1
  1042. package/gui/.next/server/app/api/setup/vercel-summary/route_client-reference-manifest.js +1 -1
  1043. package/gui/.next/server/app/api/setup/verify-harness-repo/route.js +1 -1
  1044. package/gui/.next/server/app/api/setup/verify-harness-repo/route.js.nft.json +1 -1
  1045. package/gui/.next/server/app/api/setup/verify-harness-repo/route_client-reference-manifest.js +1 -1
  1046. package/gui/.next/server/app/api/setup/verify-service/route.js +1 -1
  1047. package/gui/.next/server/app/api/setup/verify-service/route.js.nft.json +1 -1
  1048. package/gui/.next/server/app/api/setup/verify-service/route_client-reference-manifest.js +1 -1
  1049. package/gui/.next/server/app/api/setup/verify-target-repo/route.js +1 -1
  1050. package/gui/.next/server/app/api/setup/verify-target-repo/route.js.nft.json +1 -1
  1051. package/gui/.next/server/app/api/setup/verify-target-repo/route_client-reference-manifest.js +1 -1
  1052. package/gui/.next/server/app/api/workflow/bootstrap/route.js +1 -0
  1053. package/gui/.next/server/app/api/workflow/bootstrap/route.js.nft.json +1 -0
  1054. package/gui/.next/server/app/api/workflow/bootstrap/route_client-reference-manifest.js +1 -0
  1055. package/gui/.next/server/app/api/workflow/models/route.js +1 -0
  1056. package/gui/.next/server/app/api/workflow/models/route.js.nft.json +1 -0
  1057. package/gui/.next/server/app/api/workflow/models/route_client-reference-manifest.js +1 -0
  1058. package/gui/.next/server/app/operations/page.js +2 -0
  1059. package/gui/.next/server/app/operations/page.js.nft.json +1 -0
  1060. package/gui/.next/server/app/operations/page_client-reference-manifest.js +1 -0
  1061. package/gui/.next/server/app/page.js +3 -2
  1062. package/gui/.next/server/app/page.js.nft.json +1 -1
  1063. package/gui/.next/server/app/page_client-reference-manifest.js +1 -1
  1064. package/gui/.next/server/app/settings/(console)/connections/page.js +2 -0
  1065. package/gui/.next/server/app/settings/(console)/connections/page.js.nft.json +1 -0
  1066. package/gui/.next/server/app/settings/(console)/connections/page_client-reference-manifest.js +1 -0
  1067. package/gui/.next/server/app/settings/(console)/data-sharing/page.js +2 -0
  1068. package/gui/.next/server/app/settings/(console)/data-sharing/page.js.nft.json +1 -0
  1069. package/gui/.next/server/app/settings/(console)/data-sharing/page_client-reference-manifest.js +1 -0
  1070. package/gui/.next/server/app/settings/(console)/deployments/page.js +2 -0
  1071. package/gui/.next/server/app/settings/(console)/deployments/page.js.nft.json +1 -0
  1072. package/gui/.next/server/app/settings/(console)/deployments/page_client-reference-manifest.js +1 -0
  1073. package/gui/.next/server/app/settings/(console)/linear/page.js +10 -0
  1074. package/gui/.next/server/app/settings/(console)/linear/page.js.nft.json +1 -0
  1075. package/gui/.next/server/app/settings/(console)/linear/page_client-reference-manifest.js +1 -0
  1076. package/gui/.next/server/app/settings/(console)/models/page.js +2 -0
  1077. package/gui/.next/server/app/settings/(console)/models/page.js.nft.json +1 -0
  1078. package/gui/.next/server/app/settings/(console)/models/page_client-reference-manifest.js +1 -0
  1079. package/gui/.next/server/app/settings/(console)/page.js +2 -0
  1080. package/gui/.next/server/app/settings/(console)/page.js.nft.json +1 -0
  1081. package/gui/.next/server/app/settings/(console)/page_client-reference-manifest.js +1 -0
  1082. package/gui/.next/server/app/settings/(console)/repositories/page.js +6 -0
  1083. package/gui/.next/server/app/settings/(console)/repositories/page.js.nft.json +1 -0
  1084. package/gui/.next/server/app/settings/(console)/repositories/page_client-reference-manifest.js +1 -0
  1085. package/gui/.next/server/app/settings/configure/page.js +4 -4
  1086. package/gui/.next/server/app/settings/configure/page.js.nft.json +1 -1
  1087. package/gui/.next/server/app/settings/configure/page_client-reference-manifest.js +1 -1
  1088. package/gui/.next/server/app/workflow/page.js +2 -0
  1089. package/gui/.next/server/app/workflow/page.js.nft.json +1 -0
  1090. package/gui/.next/server/app/workflow/page_client-reference-manifest.js +1 -0
  1091. package/gui/.next/server/app-paths-manifest.json +44 -15
  1092. package/gui/.next/server/chunks/105.js +2 -0
  1093. package/gui/.next/server/chunks/1304.js +200 -0
  1094. package/gui/.next/server/chunks/1536.js +1 -0
  1095. package/gui/.next/server/chunks/1948.js +59 -0
  1096. package/gui/.next/server/chunks/2470.js +3 -0
  1097. package/gui/.next/server/chunks/2581.js +2 -0
  1098. package/gui/.next/server/chunks/383.js +1 -1
  1099. package/gui/.next/server/chunks/521.js +1 -0
  1100. package/gui/.next/server/chunks/553.js +1 -0
  1101. package/gui/.next/server/chunks/5827.js +1 -0
  1102. package/gui/.next/server/chunks/6408.js +1 -0
  1103. package/gui/.next/server/chunks/641.js +1 -0
  1104. package/gui/.next/server/chunks/6482.js +1 -0
  1105. package/gui/.next/server/chunks/6801.js +1 -0
  1106. package/gui/.next/server/chunks/6890.js +1 -0
  1107. package/gui/.next/server/chunks/7201.js +1 -0
  1108. package/gui/.next/server/chunks/7221.js +1 -0
  1109. package/gui/.next/server/chunks/{332.js → 7332.js} +1 -1
  1110. package/gui/.next/server/chunks/7527.js +1 -0
  1111. package/gui/.next/server/chunks/8312.js +1 -0
  1112. package/gui/.next/server/chunks/8476.js +8 -0
  1113. package/gui/.next/server/chunks/8764.js +16 -0
  1114. package/gui/.next/server/chunks/8819.js +22 -0
  1115. package/gui/.next/server/chunks/8825.js +1 -0
  1116. package/gui/.next/server/chunks/9148.js +1 -0
  1117. package/gui/.next/server/chunks/9454.js +1 -0
  1118. package/gui/.next/server/instrumentation.js +1 -0
  1119. package/gui/.next/server/instrumentation.js.nft.json +1 -0
  1120. package/gui/.next/server/middleware-build-manifest.js +1 -1
  1121. package/gui/.next/server/pages/404.html +1 -1
  1122. package/gui/.next/server/pages/500.html +1 -1
  1123. package/gui/.next/server/pages/_document.js +1 -1
  1124. package/gui/.next/server/pages/_document.js.nft.json +1 -1
  1125. package/gui/.next/server/pages/_error.js +2 -2
  1126. package/gui/.next/server/pages/_error.js.nft.json +1 -1
  1127. package/gui/.next/server/pages-manifest.json +1 -1
  1128. package/gui/.next/server/webpack-runtime.js +1 -1
  1129. package/gui/.next/static/chunks/3800-379a4b854a7eb1dc.js +1 -0
  1130. package/gui/.next/static/chunks/464-7503c96bb839c213.js +1 -0
  1131. package/gui/.next/static/chunks/5567-672d065d2668f1ea.js +1 -0
  1132. package/gui/.next/static/chunks/6240-d3f8028539091853.js +1 -0
  1133. package/gui/.next/static/chunks/7420-cb03f2f94db611c4.js +1 -0
  1134. package/gui/.next/static/chunks/8002-528c2e589bc54111.js +1 -0
  1135. package/gui/.next/static/chunks/9188-540635591aa2baf5.js +1 -0
  1136. package/gui/.next/static/chunks/9289-00509b3e0c520cce.js +1 -0
  1137. package/gui/.next/static/chunks/9576-6d94e3d152f876e7.js +1 -0
  1138. package/gui/.next/static/chunks/app/_not-found/page-89865576110e31f0.js +1 -0
  1139. package/gui/.next/static/chunks/app/api/observability/event/route-08ffe80f6f4603f6.js +1 -0
  1140. package/gui/.next/static/chunks/app/api/observability/preferences/route-08ffe80f6f4603f6.js +1 -0
  1141. package/gui/.next/static/chunks/app/api/operations/bootstrap/route-08ffe80f6f4603f6.js +1 -0
  1142. package/gui/.next/static/chunks/app/api/operations/draft/route-08ffe80f6f4603f6.js +1 -0
  1143. package/gui/.next/static/chunks/app/api/settings/apply-config-patch/route-08ffe80f6f4603f6.js +1 -0
  1144. package/gui/.next/static/chunks/app/api/settings/preview-config-patch/route-08ffe80f6f4603f6.js +1 -0
  1145. package/gui/.next/static/chunks/app/api/setup/apply-connect-services/route-08ffe80f6f4603f6.js +1 -0
  1146. package/gui/.next/static/chunks/app/api/setup/apply-harness-repo-provisioning/route-08ffe80f6f4603f6.js +1 -0
  1147. package/gui/.next/static/chunks/app/api/setup/apply-harness-secrets/route-08ffe80f6f4603f6.js +1 -0
  1148. package/gui/.next/static/chunks/app/api/setup/apply-linear-setup/route-08ffe80f6f4603f6.js +1 -0
  1149. package/gui/.next/static/chunks/app/api/setup/apply-linear-workspace/route-08ffe80f6f4603f6.js +1 -0
  1150. package/gui/.next/static/chunks/app/api/setup/apply-local-files/route-08ffe80f6f4603f6.js +1 -0
  1151. package/gui/.next/static/chunks/app/api/setup/apply-runner-upgrade/route-08ffe80f6f4603f6.js +1 -0
  1152. package/gui/.next/static/chunks/app/api/setup/apply-target-repo-provisioning/route-08ffe80f6f4603f6.js +1 -0
  1153. package/gui/.next/static/chunks/app/api/setup/apply-target-workflow/route-08ffe80f6f4603f6.js +1 -0
  1154. package/gui/.next/static/chunks/app/api/setup/apply-vercel-bridge/route-08ffe80f6f4603f6.js +1 -0
  1155. package/gui/.next/static/chunks/app/api/setup/complete-initial-setup/route-08ffe80f6f4603f6.js +1 -0
  1156. package/gui/.next/static/chunks/app/api/setup/finalize-target-workflow/route-08ffe80f6f4603f6.js +1 -0
  1157. package/gui/.next/static/chunks/app/api/setup/harness-provisioning-progress/route-08ffe80f6f4603f6.js +1 -0
  1158. package/gui/.next/static/chunks/app/api/setup/harness-provisioning-summary/route-08ffe80f6f4603f6.js +1 -0
  1159. package/gui/.next/static/chunks/app/api/setup/linear-options/route-08ffe80f6f4603f6.js +1 -0
  1160. package/gui/.next/static/chunks/app/api/setup/linear-setup-progress/route-08ffe80f6f4603f6.js +1 -0
  1161. package/gui/.next/static/chunks/app/api/setup/linear-summary/route-08ffe80f6f4603f6.js +1 -0
  1162. package/gui/.next/static/chunks/app/api/setup/linear-workspace-editor-state/route-08ffe80f6f4603f6.js +1 -0
  1163. package/gui/.next/static/chunks/app/api/setup/local-readiness/route-08ffe80f6f4603f6.js +1 -0
  1164. package/gui/.next/static/chunks/app/api/setup/manual-harness-secret-values/route-08ffe80f6f4603f6.js +1 -0
  1165. package/gui/.next/static/chunks/app/api/setup/preview-connect-services/route-08ffe80f6f4603f6.js +1 -0
  1166. package/gui/.next/static/chunks/app/api/setup/preview-harness-repo-provisioning/route-08ffe80f6f4603f6.js +1 -0
  1167. package/gui/.next/static/chunks/app/api/setup/preview-harness-secrets/route-08ffe80f6f4603f6.js +1 -0
  1168. package/gui/.next/static/chunks/app/api/setup/preview-linear-setup/route-08ffe80f6f4603f6.js +1 -0
  1169. package/gui/.next/static/chunks/app/api/setup/preview-linear-workspace/route-08ffe80f6f4603f6.js +1 -0
  1170. package/gui/.next/static/chunks/app/api/setup/preview-local-files/route-08ffe80f6f4603f6.js +1 -0
  1171. package/gui/.next/static/chunks/app/api/setup/preview-runner-upgrade/route-08ffe80f6f4603f6.js +1 -0
  1172. package/gui/.next/static/chunks/app/api/setup/preview-target-repo-provisioning/route-08ffe80f6f4603f6.js +1 -0
  1173. package/gui/.next/static/chunks/app/api/setup/preview-target-workflow/route-08ffe80f6f4603f6.js +1 -0
  1174. package/gui/.next/static/chunks/app/api/setup/preview-vercel-bridge/route-08ffe80f6f4603f6.js +1 -0
  1175. package/gui/.next/static/chunks/app/api/setup/remote-summary/route-08ffe80f6f4603f6.js +1 -0
  1176. package/gui/.next/static/chunks/app/api/setup/runner-upgrade-progress/route-08ffe80f6f4603f6.js +1 -0
  1177. package/gui/.next/static/chunks/app/api/setup/runner-upgrade-status/route-08ffe80f6f4603f6.js +1 -0
  1178. package/gui/.next/static/chunks/app/api/setup/summary/route-08ffe80f6f4603f6.js +1 -0
  1179. package/gui/.next/static/chunks/app/api/setup/vercel-bridge-options/route-08ffe80f6f4603f6.js +1 -0
  1180. package/gui/.next/static/chunks/app/api/setup/vercel-bridge-redeploy-status/route-08ffe80f6f4603f6.js +1 -0
  1181. package/gui/.next/static/chunks/app/api/setup/vercel-summary/route-08ffe80f6f4603f6.js +1 -0
  1182. package/gui/.next/static/chunks/app/api/setup/verify-harness-repo/route-08ffe80f6f4603f6.js +1 -0
  1183. package/gui/.next/static/chunks/app/api/setup/verify-service/route-08ffe80f6f4603f6.js +1 -0
  1184. package/gui/.next/static/chunks/app/api/setup/verify-target-repo/route-08ffe80f6f4603f6.js +1 -0
  1185. package/gui/.next/static/chunks/app/api/workflow/bootstrap/route-08ffe80f6f4603f6.js +1 -0
  1186. package/gui/.next/static/chunks/app/api/workflow/models/route-08ffe80f6f4603f6.js +1 -0
  1187. package/gui/.next/static/chunks/app/layout-ec756afb9686f579.js +1 -0
  1188. package/gui/.next/static/chunks/app/operations/page-08ffe80f6f4603f6.js +1 -0
  1189. package/gui/.next/static/chunks/app/page-08ffe80f6f4603f6.js +1 -0
  1190. package/gui/.next/static/chunks/app/settings/(console)/connections/page-95847d89fc70089a.js +1 -0
  1191. package/gui/.next/static/chunks/app/settings/(console)/data-sharing/page-3e0d8fe941c7334e.js +1 -0
  1192. package/gui/.next/static/chunks/app/settings/(console)/deployments/page-e3aaff205f09b567.js +1 -0
  1193. package/gui/.next/static/chunks/app/settings/(console)/layout-74ce539ae02dc765.js +1 -0
  1194. package/gui/.next/static/chunks/app/settings/(console)/linear/page-0a1e73b5ec66af90.js +1 -0
  1195. package/gui/.next/static/chunks/app/settings/(console)/models/page-336406c2905983c9.js +1 -0
  1196. package/gui/.next/static/chunks/app/settings/(console)/page-08ffe80f6f4603f6.js +1 -0
  1197. package/gui/.next/static/chunks/app/settings/(console)/repositories/page-b1f7159c7771b16a.js +1 -0
  1198. package/gui/.next/static/chunks/app/settings/configure/loading-5f1e73b910fbd9da.js +1 -0
  1199. package/gui/.next/static/chunks/app/settings/configure/page-54b7572655b9f60f.js +1 -0
  1200. package/gui/.next/static/chunks/app/workflow/page-8087b342a6ece93c.js +1 -0
  1201. package/gui/.next/static/chunks/framework-dc88dc15d5e043e1.js +1 -0
  1202. package/gui/.next/static/chunks/main-5b390d9aaa7199a5.js +1 -0
  1203. package/gui/.next/static/chunks/main-app-7fbf1b54aaed0242.js +1 -0
  1204. package/gui/.next/static/chunks/pages/{_app-2e239ff05bfdf6d6.js → _app-50fa07b56b2d29ac.js} +1 -1
  1205. package/gui/.next/static/chunks/pages/_error-fed8688bdd23f211.js +1 -0
  1206. package/gui/.next/static/chunks/{webpack-1e50074b7e886e1b.js → webpack-b27d2f88ec3d35a4.js} +1 -1
  1207. package/gui/.next/static/css/b7b323a34ac09e0b.css +3 -0
  1208. package/gui/.next/static/wM7YWpWgyTcGc7H5h1u7U/_buildManifest.js +1 -0
  1209. package/gui/.next/trace +6 -4
  1210. package/gui/.next/types/app/api/observability/event/route.ts +347 -0
  1211. package/gui/.next/types/app/api/observability/preferences/route.ts +347 -0
  1212. package/gui/.next/types/app/api/operations/bootstrap/route.ts +347 -0
  1213. package/gui/.next/types/app/api/operations/draft/route.ts +347 -0
  1214. package/gui/.next/types/app/api/settings/apply-config-patch/route.ts +347 -0
  1215. package/gui/.next/types/app/api/settings/preview-config-patch/route.ts +347 -0
  1216. package/gui/.next/types/app/api/setup/apply-linear-workspace/route.ts +347 -0
  1217. package/gui/.next/types/app/api/setup/apply-runner-upgrade/route.ts +347 -0
  1218. package/gui/.next/types/app/api/setup/apply-target-repo-provisioning/route.ts +347 -0
  1219. package/gui/.next/types/app/api/setup/complete-initial-setup/route.ts +347 -0
  1220. package/gui/.next/types/app/api/setup/harness-provisioning-progress/route.ts +347 -0
  1221. package/gui/.next/types/app/api/setup/linear-setup-progress/route.ts +347 -0
  1222. package/gui/.next/types/app/api/setup/linear-workspace-editor-state/route.ts +347 -0
  1223. package/gui/.next/types/app/api/setup/preview-linear-workspace/route.ts +347 -0
  1224. package/gui/.next/types/app/api/setup/preview-runner-upgrade/route.ts +347 -0
  1225. package/gui/.next/types/app/api/setup/preview-target-repo-provisioning/route.ts +347 -0
  1226. package/gui/.next/types/app/api/setup/runner-upgrade-progress/route.ts +347 -0
  1227. package/gui/.next/types/app/api/setup/runner-upgrade-status/route.ts +347 -0
  1228. package/gui/.next/types/app/api/workflow/bootstrap/route.ts +347 -0
  1229. package/gui/.next/types/app/api/workflow/models/route.ts +347 -0
  1230. package/gui/.next/types/app/operations/page.ts +84 -0
  1231. package/gui/.next/types/app/settings/(console)/connections/page.ts +84 -0
  1232. package/gui/.next/types/app/settings/(console)/data-sharing/page.ts +84 -0
  1233. package/gui/.next/types/app/settings/(console)/deployments/page.ts +84 -0
  1234. package/gui/.next/types/app/settings/(console)/layout.ts +84 -0
  1235. package/gui/.next/types/app/settings/(console)/linear/page.ts +84 -0
  1236. package/gui/.next/types/app/settings/(console)/models/page.ts +84 -0
  1237. package/gui/.next/types/app/settings/(console)/page.ts +84 -0
  1238. package/gui/.next/types/app/settings/(console)/repositories/page.ts +84 -0
  1239. package/gui/.next/types/app/workflow/page.ts +84 -0
  1240. package/gui/.next/types/routes.d.ts +33 -3
  1241. package/gui/.next/types/validator.ts +270 -0
  1242. package/observability.public.json +6 -0
  1243. package/package.json +5 -1
  1244. package/templates/.harness/config.example.json +1 -0
  1245. package/workspace-snapshot/files/.agents/skills/implementation/SKILL.md +4 -0
  1246. package/workspace-snapshot/files/.agents/skills/issue-intake/SKILL.md +13 -1
  1247. package/workspace-snapshot/files/.agents/skills/planner/SKILL.md +10 -0
  1248. package/workspace-snapshot/files/.github/workflows/harness-auto-runner.yml +38 -11
  1249. package/workspace-snapshot/files/.github/workflows/p-dev-runner-config-canary.yml +24 -0
  1250. package/workspace-snapshot/files/.harness/config.example.json +1 -0
  1251. package/workspace-snapshot/files/AGENTS.md +13 -2
  1252. package/workspace-snapshot/files/ARCHITECTURE.md +23 -6
  1253. package/workspace-snapshot/files/CHANGELOG.md +50 -5
  1254. package/workspace-snapshot/files/README.md +10 -4
  1255. package/workspace-snapshot/files/ROADMAP.md +10 -1
  1256. package/workspace-snapshot/files/apps/gui/app/api/observability/event/route.ts +36 -0
  1257. package/workspace-snapshot/files/apps/gui/app/api/observability/preferences/route.ts +88 -0
  1258. package/workspace-snapshot/files/apps/gui/app/api/operations/bootstrap/route.ts +8 -0
  1259. package/workspace-snapshot/files/apps/gui/app/api/operations/draft/route.ts +15 -0
  1260. package/workspace-snapshot/files/apps/gui/app/api/settings/apply-config-patch/route.ts +52 -0
  1261. package/workspace-snapshot/files/apps/gui/app/api/settings/preview-config-patch/route.ts +40 -0
  1262. package/workspace-snapshot/files/apps/gui/app/api/setup/apply-harness-repo-provisioning/route.ts +6 -5
  1263. package/workspace-snapshot/files/apps/gui/app/api/setup/apply-linear-workspace/route.ts +23 -0
  1264. package/workspace-snapshot/files/apps/gui/app/api/setup/apply-runner-upgrade/route.ts +33 -0
  1265. package/workspace-snapshot/files/apps/gui/app/api/setup/apply-target-repo-provisioning/route.ts +38 -0
  1266. package/workspace-snapshot/files/apps/gui/app/api/setup/apply-vercel-bridge/route.ts +7 -1
  1267. package/workspace-snapshot/files/apps/gui/app/api/setup/complete-initial-setup/route.ts +49 -0
  1268. package/workspace-snapshot/files/apps/gui/app/api/setup/harness-provisioning-progress/route.ts +21 -0
  1269. package/workspace-snapshot/files/apps/gui/app/api/setup/linear-setup-progress/route.ts +17 -0
  1270. package/workspace-snapshot/files/apps/gui/app/api/setup/linear-workspace-editor-state/route.ts +17 -0
  1271. package/workspace-snapshot/files/apps/gui/app/api/setup/local-readiness/route.ts +52 -13
  1272. package/workspace-snapshot/files/apps/gui/app/api/setup/preview-linear-workspace/route.ts +22 -0
  1273. package/workspace-snapshot/files/apps/gui/app/api/setup/preview-runner-upgrade/route.ts +17 -0
  1274. package/workspace-snapshot/files/apps/gui/app/api/setup/preview-target-repo-provisioning/route.ts +34 -0
  1275. package/workspace-snapshot/files/apps/gui/app/api/setup/runner-upgrade-progress/route.ts +17 -0
  1276. package/workspace-snapshot/files/apps/gui/app/api/setup/runner-upgrade-status/route.ts +72 -0
  1277. package/workspace-snapshot/files/apps/gui/app/api/setup/verify-service/route.ts +2 -2
  1278. package/workspace-snapshot/files/apps/gui/app/api/setup/verify-target-repo/route.ts +9 -2
  1279. package/workspace-snapshot/files/apps/gui/app/api/workflow/bootstrap/route.ts +24 -0
  1280. package/workspace-snapshot/files/apps/gui/app/api/workflow/models/route.ts +86 -0
  1281. package/workspace-snapshot/files/apps/gui/app/operations/page.tsx +23 -0
  1282. package/workspace-snapshot/files/apps/gui/app/page.tsx +8 -2
  1283. package/workspace-snapshot/files/apps/gui/app/settings/(console)/connections/page.tsx +27 -0
  1284. package/workspace-snapshot/files/apps/gui/app/settings/(console)/data-sharing/page.tsx +25 -0
  1285. package/workspace-snapshot/files/apps/gui/app/settings/(console)/deployments/page.tsx +28 -0
  1286. package/workspace-snapshot/files/apps/gui/app/settings/(console)/layout.tsx +45 -0
  1287. package/workspace-snapshot/files/apps/gui/app/settings/(console)/linear/page.tsx +20 -0
  1288. package/workspace-snapshot/files/apps/gui/app/settings/(console)/models/page.tsx +14 -0
  1289. package/workspace-snapshot/files/apps/gui/app/settings/(console)/page.tsx +7 -0
  1290. package/workspace-snapshot/files/apps/gui/app/settings/(console)/repositories/page.tsx +29 -0
  1291. package/workspace-snapshot/files/apps/gui/app/settings/configure/loading.tsx +25 -0
  1292. package/workspace-snapshot/files/apps/gui/app/settings/configure/page.tsx +76 -7
  1293. package/workspace-snapshot/files/apps/gui/app/workflow/page.tsx +24 -0
  1294. package/workspace-snapshot/files/apps/gui/components/custom/app-shell.tsx +26 -32
  1295. package/workspace-snapshot/files/apps/gui/components/custom/application-header.tsx +64 -0
  1296. package/workspace-snapshot/files/apps/gui/components/custom/configure-experience.tsx +347 -85
  1297. package/workspace-snapshot/files/apps/gui/components/custom/configure-page-content.tsx +15 -0
  1298. package/workspace-snapshot/files/apps/gui/components/custom/configure-workflow.tsx +675 -112
  1299. package/workspace-snapshot/files/apps/gui/components/custom/data-sharing-preferences.tsx +159 -0
  1300. package/workspace-snapshot/files/apps/gui/components/custom/environment-config-form.tsx +31 -13
  1301. package/workspace-snapshot/files/apps/gui/components/custom/guided-cloud-secrets-card.tsx +99 -46
  1302. package/workspace-snapshot/files/apps/gui/components/custom/guided-linear-workspace-card.tsx +974 -148
  1303. package/workspace-snapshot/files/apps/gui/components/custom/guided-local-readiness-card.tsx +153 -35
  1304. package/workspace-snapshot/files/apps/gui/components/custom/guided-operation-panel.tsx +102 -0
  1305. package/workspace-snapshot/files/apps/gui/components/custom/guided-progress-check.tsx +37 -0
  1306. package/workspace-snapshot/files/apps/gui/components/custom/guided-setup-progress.tsx +114 -0
  1307. package/workspace-snapshot/files/apps/gui/components/custom/guided-step-success-panel.tsx +50 -0
  1308. package/workspace-snapshot/files/apps/gui/components/custom/guided-step-transition.tsx +81 -27
  1309. package/workspace-snapshot/files/apps/gui/components/custom/guided-target-workflow-card.tsx +267 -60
  1310. package/workspace-snapshot/files/apps/gui/components/custom/guided-vercel-bridge-card.tsx +341 -179
  1311. package/workspace-snapshot/files/apps/gui/components/custom/observability-settings-card.tsx +23 -0
  1312. package/workspace-snapshot/files/apps/gui/components/custom/remote-action-confirmation.tsx +13 -11
  1313. package/workspace-snapshot/files/apps/gui/components/custom/review-workflow-changes-disclosure.tsx +59 -0
  1314. package/workspace-snapshot/files/apps/gui/components/custom/settings-menu.tsx +109 -0
  1315. package/workspace-snapshot/files/apps/gui/components/custom/setup-checklist.tsx +47 -29
  1316. package/workspace-snapshot/files/apps/gui/components/custom/target-repo-config-form.tsx +22 -2
  1317. package/workspace-snapshot/files/apps/gui/components/custom/target-repo-create-connect.tsx +419 -0
  1318. package/workspace-snapshot/files/apps/gui/components/custom/target-workflow-pr-card.tsx +105 -43
  1319. package/workspace-snapshot/files/apps/gui/components/custom/theme-toggle.tsx +3 -11
  1320. package/workspace-snapshot/files/apps/gui/components/custom/vercel-bridge-orchestration-status.tsx +65 -0
  1321. package/workspace-snapshot/files/apps/gui/components/custom/workflow-install-pending-panel.tsx +125 -53
  1322. package/workspace-snapshot/files/apps/gui/components/settings/editors/connections-settings-editor.tsx +261 -0
  1323. package/workspace-snapshot/files/apps/gui/components/settings/editors/deployments-settings-editor.tsx +397 -0
  1324. package/workspace-snapshot/files/apps/gui/components/settings/editors/linear-settings-editor.tsx +512 -0
  1325. package/workspace-snapshot/files/apps/gui/components/settings/editors/repositories-settings-editor.tsx +749 -0
  1326. package/workspace-snapshot/files/apps/gui/components/settings/editors/runner-upgrade-settings-card.tsx +533 -0
  1327. package/workspace-snapshot/files/apps/gui/components/settings/settings-models-client.tsx +102 -0
  1328. package/workspace-snapshot/files/apps/gui/components/settings/settings-mutation-panel.tsx +125 -0
  1329. package/workspace-snapshot/files/apps/gui/components/settings/settings-shell.tsx +46 -0
  1330. package/workspace-snapshot/files/apps/gui/components/ui/dropdown-menu.tsx +257 -0
  1331. package/workspace-snapshot/files/apps/gui/components/ui/guided-select.tsx +22 -0
  1332. package/workspace-snapshot/files/apps/gui/components/workflow/workflow-cards-section.tsx +206 -0
  1333. package/workspace-snapshot/files/apps/gui/components/workflow/workflow-health-panel.tsx +43 -0
  1334. package/workspace-snapshot/files/apps/gui/components/workflow/workflow-model-control.tsx +111 -0
  1335. package/workspace-snapshot/files/apps/gui/components/workflow/workflow-page-client.tsx +161 -0
  1336. package/workspace-snapshot/files/apps/gui/components/workflow/workflow-scope-selector.tsx +41 -0
  1337. package/workspace-snapshot/files/apps/gui/instrumentation.ts +136 -0
  1338. package/workspace-snapshot/files/apps/gui/lib/configure-navigation-timing.ts +53 -0
  1339. package/workspace-snapshot/files/apps/gui/lib/constants/form.ts +5 -0
  1340. package/workspace-snapshot/files/apps/gui/lib/constants/layout.ts +10 -3
  1341. package/workspace-snapshot/files/apps/gui/lib/guided-setup.ts +222 -0
  1342. package/workspace-snapshot/files/apps/gui/lib/linear-association-draft.ts +93 -0
  1343. package/workspace-snapshot/files/apps/gui/lib/local-readiness-visual-queue.ts +61 -0
  1344. package/workspace-snapshot/files/apps/gui/lib/observability-client.ts +21 -0
  1345. package/workspace-snapshot/files/apps/gui/lib/observability-preferences.ts +19 -0
  1346. package/workspace-snapshot/files/apps/gui/lib/observability-request-guard.ts +136 -0
  1347. package/workspace-snapshot/files/apps/gui/lib/observability-route.ts +75 -0
  1348. package/workspace-snapshot/files/apps/gui/lib/settings/load-harness-config-summary.ts +20 -0
  1349. package/workspace-snapshot/files/apps/gui/lib/settings/load-repositories-overview.ts +37 -0
  1350. package/workspace-snapshot/files/apps/gui/lib/settings/load-settings-editor-data.ts +51 -0
  1351. package/workspace-snapshot/files/apps/gui/lib/settings/load-target-repo-overview-fields.ts +124 -0
  1352. package/workspace-snapshot/files/apps/gui/lib/settings/runner-upgrade-feature-flag.ts +9 -0
  1353. package/workspace-snapshot/files/apps/gui/lib/settings/runner-upgrade-ssr.ts +13 -0
  1354. package/workspace-snapshot/files/apps/gui/lib/settings/runner-upgrade-ui-gates.ts +87 -0
  1355. package/workspace-snapshot/files/apps/gui/lib/settings/settings-mutation.ts +49 -0
  1356. package/workspace-snapshot/files/apps/gui/lib/settings/settings-navigation.ts +10 -0
  1357. package/workspace-snapshot/files/apps/gui/lib/settings/settings-setup-client.ts +312 -0
  1358. package/workspace-snapshot/files/apps/gui/lib/setup-server.ts +608 -17
  1359. package/workspace-snapshot/files/apps/gui/lib/use-theme-toggle.ts +26 -0
  1360. package/workspace-snapshot/files/apps/gui/lib/vercel-bridge-polling-ui.ts +88 -1
  1361. package/workspace-snapshot/files/apps/gui/lib/verification-state.ts +97 -1
  1362. package/workspace-snapshot/files/apps/gui/lib/workflow/api-client.ts +84 -0
  1363. package/workspace-snapshot/files/apps/gui/lib/workflow/use-model-autosave.ts +90 -0
  1364. package/workspace-snapshot/files/apps/gui/lib/workflow/use-workflow-model-save.ts +265 -0
  1365. package/workspace-snapshot/files/apps/gui/lib/workflow/workflow-health.ts +53 -0
  1366. package/workspace-snapshot/files/apps/gui/lib/workflow/workflow-ownership.ts +47 -0
  1367. package/workspace-snapshot/files/apps/gui/lib/workflow/workflow-status-content.ts +149 -0
  1368. package/workspace-snapshot/files/apps/gui/lib/workflow/workflow-violation-messages.ts +49 -0
  1369. package/workspace-snapshot/files/apps/gui/lib/workflow-server.ts +307 -0
  1370. package/workspace-snapshot/files/apps/gui/next.config.ts +8 -3
  1371. package/workspace-snapshot/files/docs/architecture/canonical-product-development-workflow.md +70 -0
  1372. package/workspace-snapshot/files/docs/architecture/linear-automation-state-machine.md +26 -10
  1373. package/workspace-snapshot/files/docs/design/product-development-harness-gui.md +0 -1
  1374. package/workspace-snapshot/files/docs/getting-started.md +2 -2
  1375. package/workspace-snapshot/files/docs/gui-local.md +3 -3
  1376. package/workspace-snapshot/files/docs/gui-remote-setup.md +2 -2
  1377. package/workspace-snapshot/files/docs/issue-intake.md +12 -0
  1378. package/workspace-snapshot/files/docs/observability-and-privacy.md +247 -0
  1379. package/workspace-snapshot/files/docs/operator-config.md +16 -1
  1380. package/workspace-snapshot/files/docs/p-dev.md +43 -9
  1381. package/workspace-snapshot/files/docs/releases/release-process.md +135 -7
  1382. package/workspace-snapshot/files/docs/releases/v0.3.1.md +42 -6
  1383. package/workspace-snapshot/files/docs/releases/v0.4.0.md +93 -0
  1384. package/workspace-snapshot/files/docs/security.md +8 -0
  1385. package/workspace-snapshot/files/docs/settings-console.md +44 -0
  1386. package/workspace-snapshot/files/harness.config.schema.json +114 -0
  1387. package/workspace-snapshot/files/package-lock.json +1881 -95
  1388. package/workspace-snapshot/files/package.json +10 -2
  1389. package/workspace-snapshot/files/packages/p-dev/README.md +12 -4
  1390. package/workspace-snapshot/files/packages/p-dev/observability.public.json +6 -0
  1391. package/workspace-snapshot/files/packages/p-dev/package.json +5 -1
  1392. package/workspace-snapshot/files/prompts/issue-intake-chatgpt.md +4 -0
  1393. package/workspace-snapshot/files/scripts/configure-browser-matrix.config.ts +40 -0
  1394. package/workspace-snapshot/files/scripts/configure-browser-matrix.spec.ts +294 -0
  1395. package/workspace-snapshot/files/scripts/configure-step4-harness-readiness.config.ts +118 -0
  1396. package/workspace-snapshot/files/scripts/configure-step4-harness-readiness.spec.ts +80 -0
  1397. package/workspace-snapshot/files/scripts/prepare-configure-browser-workspace.ts +138 -0
  1398. package/workspace-snapshot/files/scripts/prepare-p-dev-package.ts +9 -0
  1399. package/workspace-snapshot/files/scripts/workflow-browser-matrix.config.ts +27 -0
  1400. package/workspace-snapshot/files/scripts/workflow-browser-matrix.spec.ts +151 -0
  1401. package/workspace-snapshot/files/src/agents/cursor-provider.ts +12 -14
  1402. package/workspace-snapshot/files/src/agents/index.ts +8 -12
  1403. package/workspace-snapshot/files/src/agents/types.ts +40 -4
  1404. package/workspace-snapshot/files/src/artifacts/redact.ts +18 -2
  1405. package/workspace-snapshot/files/src/artifacts/write-json-out-manifest.ts +90 -0
  1406. package/workspace-snapshot/files/src/cli/commands/canary-runner-config.ts +6 -0
  1407. package/workspace-snapshot/files/src/cli/commands/doctor.ts +148 -0
  1408. package/workspace-snapshot/files/src/cli/commands/resolve-route.ts +5 -0
  1409. package/workspace-snapshot/files/src/cli/commands/run.ts +65 -17
  1410. package/workspace-snapshot/files/src/cli/commands/sync-managed-runner.ts +126 -0
  1411. package/workspace-snapshot/files/src/cli/program.ts +47 -0
  1412. package/workspace-snapshot/files/src/config/assert-cloud-config-fingerprint.ts +36 -0
  1413. package/workspace-snapshot/files/src/config/cloud-config-fingerprint.ts +90 -0
  1414. package/workspace-snapshot/files/src/config/legacy-linear-top-level.ts +69 -0
  1415. package/workspace-snapshot/files/src/config/linear-association-gate.ts +80 -0
  1416. package/workspace-snapshot/files/src/config/resolve-linear-team.ts +41 -0
  1417. package/workspace-snapshot/files/src/config/resolve-linear-workspace.ts +391 -0
  1418. package/workspace-snapshot/files/src/config/role-models.ts +39 -0
  1419. package/workspace-snapshot/files/src/config/runner-upgrade-sync-gate.ts +26 -0
  1420. package/workspace-snapshot/files/src/config/schema.ts +17 -0
  1421. package/workspace-snapshot/files/src/config/types.ts +5 -1
  1422. package/workspace-snapshot/files/src/config/workspace-root.ts +28 -0
  1423. package/workspace-snapshot/files/src/cursor/agent-factory.ts +51 -5
  1424. package/workspace-snapshot/files/src/cursor/builder-resume-errors.ts +41 -0
  1425. package/workspace-snapshot/files/src/cursor/model.ts +106 -25
  1426. package/workspace-snapshot/files/src/cursor/run-observer.ts +15 -2
  1427. package/workspace-snapshot/files/src/github/auth-verification-retry.ts +63 -0
  1428. package/workspace-snapshot/files/src/github/client.ts +204 -5
  1429. package/workspace-snapshot/files/src/gui/configure-health.ts +2 -2
  1430. package/workspace-snapshot/files/src/gui/repo-root.ts +20 -1
  1431. package/workspace-snapshot/files/src/gui/start-configure-stable.ts +6 -2
  1432. package/workspace-snapshot/files/src/gui/start-gui.ts +8 -3
  1433. package/workspace-snapshot/files/src/linear/client.ts +10 -0
  1434. package/workspace-snapshot/files/src/linear/comments.ts +52 -0
  1435. package/workspace-snapshot/files/src/linear/issue-query.ts +4 -0
  1436. package/workspace-snapshot/files/src/linear/markers.ts +28 -0
  1437. package/workspace-snapshot/files/src/linear/parser.ts +61 -1
  1438. package/workspace-snapshot/files/src/linear/project-harness-metadata.ts +147 -0
  1439. package/workspace-snapshot/files/src/linear/project-metadata-sync.ts +115 -0
  1440. package/workspace-snapshot/files/src/linear/run-status-comment.ts +197 -0
  1441. package/workspace-snapshot/files/src/linear/writer.ts +25 -0
  1442. package/workspace-snapshot/files/src/observability/adapters/fake.ts +267 -0
  1443. package/workspace-snapshot/files/src/observability/adapters/noop.ts +62 -0
  1444. package/workspace-snapshot/files/src/observability/adapters/posthog.ts +165 -0
  1445. package/workspace-snapshot/files/src/observability/adapters/sentry.ts +276 -0
  1446. package/workspace-snapshot/files/src/observability/analytics-schemas.ts +150 -0
  1447. package/workspace-snapshot/files/src/observability/consent.ts +70 -0
  1448. package/workspace-snapshot/files/src/observability/constants.ts +25 -0
  1449. package/workspace-snapshot/files/src/observability/context.ts +152 -0
  1450. package/workspace-snapshot/files/src/observability/facade-runtime-state.ts +47 -0
  1451. package/workspace-snapshot/files/src/observability/facade.ts +628 -0
  1452. package/workspace-snapshot/files/src/observability/fatal-handlers.ts +60 -0
  1453. package/workspace-snapshot/files/src/observability/identity.ts +13 -0
  1454. package/workspace-snapshot/files/src/observability/index.ts +47 -0
  1455. package/workspace-snapshot/files/src/observability/local-state.ts +142 -0
  1456. package/workspace-snapshot/files/src/observability/package-config.ts +180 -0
  1457. package/workspace-snapshot/files/src/observability/posthog-dashboard-contract.ts +277 -0
  1458. package/workspace-snapshot/files/src/observability/privacy-schema.ts +229 -0
  1459. package/workspace-snapshot/files/src/observability/product-error-messages.ts +19 -0
  1460. package/workspace-snapshot/files/src/observability/product-errors.ts +139 -0
  1461. package/workspace-snapshot/files/src/observability/provisioning-analytics.ts +28 -0
  1462. package/workspace-snapshot/files/src/observability/redaction.ts +85 -0
  1463. package/workspace-snapshot/files/src/observability/runtime-eligibility.ts +50 -0
  1464. package/workspace-snapshot/files/src/observability/sentry-outbound-privacy.ts +216 -0
  1465. package/workspace-snapshot/files/src/observability/session-dedupe.ts +73 -0
  1466. package/workspace-snapshot/files/src/observability/session-handoff.ts +47 -0
  1467. package/workspace-snapshot/files/src/observability/transport-lifecycle.ts +93 -0
  1468. package/workspace-snapshot/files/src/observability/types.ts +265 -0
  1469. package/workspace-snapshot/files/src/p-dev/cli.ts +1 -1
  1470. package/workspace-snapshot/files/src/p-dev/git-object-plumbing.ts +139 -14
  1471. package/workspace-snapshot/files/src/p-dev/launch.ts +93 -14
  1472. package/workspace-snapshot/files/src/p-dev/main.ts +12 -1
  1473. package/workspace-snapshot/files/src/p-dev/package-paths.ts +72 -2
  1474. package/workspace-snapshot/files/src/p-dev/workspace-snapshot-generator.ts +21 -0
  1475. package/workspace-snapshot/files/src/p-dev/workspace-snapshot-manifest.ts +53 -0
  1476. package/workspace-snapshot/files/src/p-dev/workspace-snapshot-types.ts +8 -0
  1477. package/workspace-snapshot/files/src/preview/preview-capability.ts +21 -0
  1478. package/workspace-snapshot/files/src/product/initialization-state.ts +65 -0
  1479. package/workspace-snapshot/files/src/product/product-marker.ts +76 -0
  1480. package/workspace-snapshot/files/src/product/read-product-marker.ts +63 -0
  1481. package/workspace-snapshot/files/src/prompts/builder.ts +31 -1
  1482. package/workspace-snapshot/files/src/prompts/implementation.md +6 -0
  1483. package/workspace-snapshot/files/src/prompts/integration-repair.md +6 -0
  1484. package/workspace-snapshot/files/src/prompts/planning.md +8 -0
  1485. package/workspace-snapshot/files/src/prompts/revision.md +7 -0
  1486. package/workspace-snapshot/files/src/resolver/errors.ts +3 -1
  1487. package/workspace-snapshot/files/src/resolver/target-repo.ts +60 -1
  1488. package/workspace-snapshot/files/src/runner/builder-thread-acquire.ts +321 -0
  1489. package/workspace-snapshot/files/src/runner/builder-thread-evidence.ts +40 -0
  1490. package/workspace-snapshot/files/src/runner/builder-thread-idempotency.ts +27 -0
  1491. package/workspace-snapshot/files/src/runner/builder-thread-lineage-errors.ts +23 -0
  1492. package/workspace-snapshot/files/src/runner/builder-thread-lineage.ts +555 -0
  1493. package/workspace-snapshot/files/src/runner/builder-thread-types.ts +41 -0
  1494. package/workspace-snapshot/files/src/runner/delivery-dedup.ts +78 -0
  1495. package/workspace-snapshot/files/src/runner/failure-finalization.ts +234 -0
  1496. package/workspace-snapshot/files/src/runner/fixture.ts +6 -1
  1497. package/workspace-snapshot/files/src/runner/phases/handoff.ts +74 -46
  1498. package/workspace-snapshot/files/src/runner/phases/implementation.ts +174 -28
  1499. package/workspace-snapshot/files/src/runner/phases/integration-repair.ts +123 -7
  1500. package/workspace-snapshot/files/src/runner/phases/merge.ts +145 -67
  1501. package/workspace-snapshot/files/src/runner/phases/planning.ts +50 -7
  1502. package/workspace-snapshot/files/src/runner/phases/production-sync.ts +37 -4
  1503. package/workspace-snapshot/files/src/runner/phases/revision.ts +130 -44
  1504. package/workspace-snapshot/files/src/runner/preflight.ts +134 -7
  1505. package/workspace-snapshot/files/src/runner/resolve-route.ts +29 -0
  1506. package/workspace-snapshot/files/src/runner/run-generation.ts +21 -0
  1507. package/workspace-snapshot/files/src/runner/uninitialized-product-routing.ts +121 -0
  1508. package/workspace-snapshot/files/src/setup/config-builder.ts +14 -0
  1509. package/workspace-snapshot/files/src/setup/control-plane-readiness.ts +92 -18
  1510. package/workspace-snapshot/files/src/setup/control-plane-setup-state.ts +61 -5
  1511. package/workspace-snapshot/files/src/setup/control-plane-state-lock.ts +103 -0
  1512. package/workspace-snapshot/files/src/setup/control-plane-types.ts +100 -1
  1513. package/workspace-snapshot/files/src/setup/first-run-readiness.ts +9 -2
  1514. package/workspace-snapshot/files/src/setup/git-askpass-credentials.ts +80 -0
  1515. package/workspace-snapshot/files/src/setup/github-dispatch-token.ts +34 -3
  1516. package/workspace-snapshot/files/src/setup/github-remote-provider.ts +78 -2
  1517. package/workspace-snapshot/files/src/setup/github-remote-setup-live.ts +113 -11
  1518. package/workspace-snapshot/files/src/setup/github-repository-name.ts +63 -0
  1519. package/workspace-snapshot/files/src/setup/github-target-repository-provider-live.ts +323 -0
  1520. package/workspace-snapshot/files/src/setup/github-target-repository-provider-mock.ts +284 -0
  1521. package/workspace-snapshot/files/src/setup/github-target-repository-provider.ts +86 -0
  1522. package/workspace-snapshot/files/src/setup/github-workflow-permissions.ts +2 -1
  1523. package/workspace-snapshot/files/src/setup/gui-view-model.ts +10 -0
  1524. package/workspace-snapshot/files/src/setup/harness-dispatch-repo.ts +157 -25
  1525. package/workspace-snapshot/files/src/setup/harness-managed-repo-marker.ts +24 -0
  1526. package/workspace-snapshot/files/src/setup/harness-provisioning-last-run.ts +152 -0
  1527. package/workspace-snapshot/files/src/setup/harness-provisioning-pending-state.ts +3 -0
  1528. package/workspace-snapshot/files/src/setup/harness-provisioning-progress.ts +213 -0
  1529. package/workspace-snapshot/files/src/setup/harness-repo-provisioning.ts +135 -6
  1530. package/workspace-snapshot/files/src/setup/harness-snapshot-git-transport.ts +846 -0
  1531. package/workspace-snapshot/files/src/setup/harness-snapshot-provisioning-helpers.ts +4 -1
  1532. package/workspace-snapshot/files/src/setup/harness-snapshot-provisioning.ts +352 -81
  1533. package/workspace-snapshot/files/src/setup/harness-step-readiness-server.ts +39 -0
  1534. package/workspace-snapshot/files/src/setup/harness-step-readiness.ts +72 -0
  1535. package/workspace-snapshot/files/src/setup/harness-workspace-snapshot-loader.ts +59 -12
  1536. package/workspace-snapshot/files/src/setup/initial-setup-lifecycle.ts +181 -0
  1537. package/workspace-snapshot/files/src/setup/linear-category-labels.ts +18 -0
  1538. package/workspace-snapshot/files/src/setup/linear-setup-apply.ts +97 -17
  1539. package/workspace-snapshot/files/src/setup/linear-setup-client.ts +96 -0
  1540. package/workspace-snapshot/files/src/setup/linear-setup-plan.ts +105 -11
  1541. package/workspace-snapshot/files/src/setup/linear-setup-progress.ts +113 -0
  1542. package/workspace-snapshot/files/src/setup/linear-status-contract.ts +36 -77
  1543. package/workspace-snapshot/files/src/setup/linear-workflow-status-repair.ts +278 -0
  1544. package/workspace-snapshot/files/src/setup/linear-workspace-apply.ts +309 -0
  1545. package/workspace-snapshot/files/src/setup/linear-workspace-drift.ts +4 -0
  1546. package/workspace-snapshot/files/src/setup/linear-workspace-migration.ts +314 -0
  1547. package/workspace-snapshot/files/src/setup/linear-workspace-plan.ts +407 -0
  1548. package/workspace-snapshot/files/src/setup/local-readiness-checks.ts +163 -31
  1549. package/workspace-snapshot/files/src/setup/mock-target-workflow-finalization.ts +30 -4
  1550. package/workspace-snapshot/files/src/setup/packaged-default-route.ts +29 -0
  1551. package/workspace-snapshot/files/src/setup/release-sync-managed-runner.ts +604 -0
  1552. package/workspace-snapshot/files/src/setup/remote-apply-actions.ts +33 -0
  1553. package/workspace-snapshot/files/src/setup/runner-upgrade-canary-dispatch.ts +69 -0
  1554. package/workspace-snapshot/files/src/setup/runner-upgrade-canary.ts +213 -0
  1555. package/workspace-snapshot/files/src/setup/runner-upgrade-evidence.ts +30 -0
  1556. package/workspace-snapshot/files/src/setup/runner-upgrade-pending-state.ts +116 -0
  1557. package/workspace-snapshot/files/src/setup/runner-upgrade-progress.ts +150 -0
  1558. package/workspace-snapshot/files/src/setup/runner-upgrade-provider-live.ts +520 -0
  1559. package/workspace-snapshot/files/src/setup/runner-upgrade-provider.ts +852 -0
  1560. package/workspace-snapshot/files/src/setup/runner-upgrade-status-cache.ts +61 -0
  1561. package/workspace-snapshot/files/src/setup/runner-upgrade-three-way.ts +162 -0
  1562. package/workspace-snapshot/files/src/setup/runner-upgrade-timeouts.ts +386 -0
  1563. package/workspace-snapshot/files/src/setup/runner-upgrade-types.ts +176 -0
  1564. package/workspace-snapshot/files/src/setup/runner-upgrade-worker.ts +149 -0
  1565. package/workspace-snapshot/files/src/setup/runner-upgrade.ts +1926 -0
  1566. package/workspace-snapshot/files/src/setup/service-verification.ts +160 -20
  1567. package/workspace-snapshot/files/src/setup/settings-config-patch.ts +461 -0
  1568. package/workspace-snapshot/files/src/setup/setup-state.ts +12 -1
  1569. package/workspace-snapshot/files/src/setup/step6-automatic-control-state.ts +59 -0
  1570. package/workspace-snapshot/files/src/setup/sync-harness-config-cloud.ts +128 -0
  1571. package/workspace-snapshot/files/src/setup/target-repo-provisioning-pending-state.ts +160 -0
  1572. package/workspace-snapshot/files/src/setup/target-repo-provisioning.ts +704 -0
  1573. package/workspace-snapshot/files/src/setup/target-workflow-finalization-progress.ts +166 -0
  1574. package/workspace-snapshot/files/src/setup/target-workflow-finalization-types.ts +128 -1
  1575. package/workspace-snapshot/files/src/setup/target-workflow-finalization.ts +806 -15
  1576. package/workspace-snapshot/files/src/setup/target-workflow-setup.ts +2 -0
  1577. package/workspace-snapshot/files/src/setup/test-only-runner-upgrade-provider.ts +51 -0
  1578. package/workspace-snapshot/files/src/setup/test-only-target-repo-provisioning-provider.ts +47 -0
  1579. package/workspace-snapshot/files/src/setup/vercel-bridge-artifact.ts +174 -0
  1580. package/workspace-snapshot/files/src/setup/vercel-bridge-deploy.ts +217 -0
  1581. package/workspace-snapshot/files/src/setup/vercel-bridge-diagnostics.ts +1 -1
  1582. package/workspace-snapshot/files/src/setup/vercel-bridge-options.ts +4 -0
  1583. package/workspace-snapshot/files/src/setup/vercel-bridge-orchestration-summary.ts +46 -0
  1584. package/workspace-snapshot/files/src/setup/vercel-bridge-project-marker.ts +8 -0
  1585. package/workspace-snapshot/files/src/setup/vercel-bridge-readiness.ts +2 -1
  1586. package/workspace-snapshot/files/src/setup/vercel-bridge-redeploy-normalize.ts +244 -0
  1587. package/workspace-snapshot/files/src/setup/vercel-bridge-redeploy-poll.ts +406 -190
  1588. package/workspace-snapshot/files/src/setup/vercel-bridge-redeploy-state.ts +3 -0
  1589. package/workspace-snapshot/files/src/setup/vercel-bridge-structured-log.ts +5 -0
  1590. package/workspace-snapshot/files/src/setup/vercel-project-name.ts +38 -0
  1591. package/workspace-snapshot/files/src/setup/vercel-setup-apply.ts +386 -40
  1592. package/workspace-snapshot/files/src/setup/vercel-setup-client.ts +97 -3
  1593. package/workspace-snapshot/files/src/setup/vercel-setup-plan.ts +84 -14
  1594. package/workspace-snapshot/files/src/setup/vercel-setup-summary.ts +10 -0
  1595. package/workspace-snapshot/files/src/setup/workflow-config-snapshot.ts +22 -0
  1596. package/workspace-snapshot/files/src/setup/workflow-install-branch-recovery.ts +660 -0
  1597. package/workspace-snapshot/files/src/setup/workflow-install-merge-errors.ts +70 -20
  1598. package/workspace-snapshot/files/src/setup/workflow-install-merge-gate.ts +25 -0
  1599. package/workspace-snapshot/files/src/setup/workflow-model-save-queue.ts +251 -0
  1600. package/workspace-snapshot/files/src/setup/workflow-model-sync-lock.ts +103 -0
  1601. package/workspace-snapshot/files/src/setup/workflow-model-sync.ts +259 -0
  1602. package/workspace-snapshot/files/src/setup/workflow-models-sync-evidence.ts +34 -0
  1603. package/workspace-snapshot/files/src/types/parsed-issue.ts +9 -0
  1604. package/workspace-snapshot/files/src/types/run.ts +44 -1
  1605. package/workspace-snapshot/files/src/validate/issue.ts +52 -6
  1606. package/workspace-snapshot/files/src/validate/types.ts +3 -0
  1607. package/workspace-snapshot/files/src/webhook/dispatch-statuses.ts +8 -16
  1608. package/workspace-snapshot/files/src/webhook/filter.ts +24 -1
  1609. package/workspace-snapshot/files/src/webhook/handle-linear-webhook.ts +15 -1
  1610. package/workspace-snapshot/files/src/webhook/parse-linear-issue-event.ts +4 -0
  1611. package/workspace-snapshot/files/src/webhook/types.ts +4 -1
  1612. package/workspace-snapshot/files/src/workflow/canonical-product-development-workflow.ts +584 -0
  1613. package/workspace-snapshot/files/src/workflow/canonical-workflow-gate.ts +255 -0
  1614. package/workspace-snapshot/files/src/workflow/canonical-workflow-validation.ts +297 -0
  1615. package/workspace-snapshot/files/src/workflow/finalize-harness-run.ts +83 -0
  1616. package/workspace-snapshot/files/src/workflow/preflight-canonical.ts +40 -0
  1617. package/workspace-snapshot/files/src/workflow/write-fallback-manifest.ts +39 -0
  1618. package/workspace-snapshot/files/src/workflow-page/bootstrap.ts +277 -0
  1619. package/workspace-snapshot/files/src/workflow-page/catalog-validation.ts +158 -0
  1620. package/workspace-snapshot/files/src/workflow-page/constants.ts +22 -0
  1621. package/workspace-snapshot/files/src/workflow-page/current-workflow.ts +225 -0
  1622. package/workspace-snapshot/files/src/workflow-page/fingerprint.ts +9 -0
  1623. package/workspace-snapshot/files/src/workflow-page/fixture-definition.ts +16 -0
  1624. package/workspace-snapshot/files/src/workflow-page/fixture-role-models.ts +50 -0
  1625. package/workspace-snapshot/files/src/workflow-page/fixtures/basic-current-workflow.ts +39 -0
  1626. package/workspace-snapshot/files/src/workflow-page/fixtures/branching-pr-review.ts +11 -0
  1627. package/workspace-snapshot/files/src/workflow-page/fixtures/canonical-violations.ts +50 -0
  1628. package/workspace-snapshot/files/src/workflow-page/fixtures/credential-errors.ts +13 -0
  1629. package/workspace-snapshot/files/src/workflow-page/fixtures/empty-linear-statuses.ts +10 -0
  1630. package/workspace-snapshot/files/src/workflow-page/fixtures/hundred-node-performance.ts +23 -0
  1631. package/workspace-snapshot/files/src/workflow-page/fixtures/index.ts +37 -0
  1632. package/workspace-snapshot/files/src/workflow-page/fixtures/model-catalog-snapshot.ts +34 -0
  1633. package/workspace-snapshot/files/src/workflow-page/fixtures/workflow-scopes.ts +18 -0
  1634. package/workspace-snapshot/files/src/workflow-page/linear-status-source.ts +65 -0
  1635. package/workspace-snapshot/files/src/workflow-page/model-catalog-lookup.ts +8 -0
  1636. package/workspace-snapshot/files/src/workflow-page/model-catalog-utils.ts +83 -0
  1637. package/workspace-snapshot/files/src/workflow-page/model-catalog.ts +60 -0
  1638. package/workspace-snapshot/files/src/workflow-page/scope-branches.ts +27 -0
  1639. package/workspace-snapshot/files/src/workflow-page/source-context.ts +91 -0
  1640. package/workspace-snapshot/files/src/workflow-page/types.ts +134 -0
  1641. package/workspace-snapshot/files/src/workflow-page/workflow-scopes.ts +73 -0
  1642. package/workspace-snapshot/files/tests/agents/cursor-provider.test.ts +41 -29
  1643. package/workspace-snapshot/files/tests/artifacts/redact.test.ts +11 -0
  1644. package/workspace-snapshot/files/tests/cli/json-out-manifest.test.ts +96 -0
  1645. package/workspace-snapshot/files/tests/config/cloud-config-fingerprint.test.ts +62 -0
  1646. package/workspace-snapshot/files/tests/config/legacy-linear-top-level.test.ts +86 -0
  1647. package/workspace-snapshot/files/tests/config/onboarding-cloud-runner-contract.test.ts +139 -0
  1648. package/workspace-snapshot/files/tests/config/resolve-linear-workspace.test.ts +314 -0
  1649. package/workspace-snapshot/files/tests/config/role-models.test.ts +35 -0
  1650. package/workspace-snapshot/files/tests/cursor/agent-factory.test.ts +124 -0
  1651. package/workspace-snapshot/files/tests/cursor/role-models.test.ts +52 -0
  1652. package/workspace-snapshot/files/tests/cursor/run-observer.test.ts +36 -0
  1653. package/workspace-snapshot/files/tests/fixtures/workflows/harness-auto-runner-with-production-sync.yml +36 -11
  1654. package/workspace-snapshot/files/tests/github/auth-verification-retry.test.ts +141 -0
  1655. package/workspace-snapshot/files/tests/gui/app-shell-settings-menu.test.ts +115 -0
  1656. package/workspace-snapshot/files/tests/gui/configure-fix-loop.test.ts +50 -37
  1657. package/workspace-snapshot/files/tests/gui/configure-navigation-contract.test.ts +107 -0
  1658. package/workspace-snapshot/files/tests/gui/configure-target-repo-create.test.ts +103 -0
  1659. package/workspace-snapshot/files/tests/gui/configure-workflow-readiness.test.ts +117 -0
  1660. package/workspace-snapshot/files/tests/gui/data-sharing-preferences.test.ts +43 -0
  1661. package/workspace-snapshot/files/tests/gui/design-system.test.ts +65 -5
  1662. package/workspace-snapshot/files/tests/gui/guided-linear-workspace-card.test.ts +168 -0
  1663. package/workspace-snapshot/files/tests/gui/guided-operation-ux.test.ts +100 -0
  1664. package/workspace-snapshot/files/tests/gui/guided-setup-progress.test.ts +267 -0
  1665. package/workspace-snapshot/files/tests/gui/guided-setup.test.ts +60 -0
  1666. package/workspace-snapshot/files/tests/gui/guided-target-workflow-polling.test.ts +38 -0
  1667. package/workspace-snapshot/files/tests/gui/linear-association-draft.test.ts +93 -0
  1668. package/workspace-snapshot/files/tests/gui/local-readiness-stream.test.ts +154 -0
  1669. package/workspace-snapshot/files/tests/gui/local-readiness-visual-queue.test.ts +69 -0
  1670. package/workspace-snapshot/files/tests/gui/local-readiness-workspace.test.ts +299 -0
  1671. package/workspace-snapshot/files/tests/gui/m6-configure-boundaries.test.ts +177 -35
  1672. package/workspace-snapshot/files/tests/gui/observability-preferences-route.test.ts +343 -0
  1673. package/workspace-snapshot/files/tests/gui/observability-request-guard.test.ts +177 -0
  1674. package/workspace-snapshot/files/tests/gui/packaged-harness-cloud-secrets-routes.test.ts +16 -0
  1675. package/workspace-snapshot/files/tests/gui/packaged-runner-upgrade-routes.test.ts +532 -0
  1676. package/workspace-snapshot/files/tests/gui/packaged-target-repo-provisioning-routes.test.ts +108 -0
  1677. package/workspace-snapshot/files/tests/gui/repo-root.test.ts +55 -0
  1678. package/workspace-snapshot/files/tests/gui/runner-upgrade-settings-card.test.ts +97 -0
  1679. package/workspace-snapshot/files/tests/gui/settings-cursor.test.ts +39 -0
  1680. package/workspace-snapshot/files/tests/gui/settings-deployments-autoload.test.ts +57 -0
  1681. package/workspace-snapshot/files/tests/gui/settings-mutation-editors.test.ts +154 -0
  1682. package/workspace-snapshot/files/tests/gui/settings-navigation.test.ts +95 -0
  1683. package/workspace-snapshot/files/tests/gui/settings-repositories-page.test.ts +54 -0
  1684. package/workspace-snapshot/files/tests/gui/step7-settings-polish.test.ts +180 -0
  1685. package/workspace-snapshot/files/tests/gui/target-workflow-pr-card.test.ts +68 -0
  1686. package/workspace-snapshot/files/tests/gui/vercel-bridge-polling-ui.test.ts +50 -1
  1687. package/workspace-snapshot/files/tests/gui/verification-state.test.ts +45 -0
  1688. package/workspace-snapshot/files/tests/gui/workflow-bootstrap-route.test.ts +78 -0
  1689. package/workspace-snapshot/files/tests/gui/workflow-model-autosave.test.ts +36 -0
  1690. package/workspace-snapshot/files/tests/gui/workflow-source-ui.test.ts +22 -0
  1691. package/workspace-snapshot/files/tests/gui/workflow-violation-messages.test.ts +39 -0
  1692. package/workspace-snapshot/files/tests/gui/workflow-workspace.test.ts +188 -0
  1693. package/workspace-snapshot/files/tests/linear/markers.test.ts +29 -0
  1694. package/workspace-snapshot/files/tests/linear/run-status-comment.test.ts +143 -0
  1695. package/workspace-snapshot/files/tests/observability/analytics-schemas.test.ts +74 -0
  1696. package/workspace-snapshot/files/tests/observability/context.test.ts +132 -0
  1697. package/workspace-snapshot/files/tests/observability/fatal-process.test.ts +106 -0
  1698. package/workspace-snapshot/files/tests/observability/foundation.test.ts +229 -0
  1699. package/workspace-snapshot/files/tests/observability/instrumentation-dev-startup.test.ts +79 -0
  1700. package/workspace-snapshot/files/tests/observability/lifecycle.test.ts +348 -0
  1701. package/workspace-snapshot/files/tests/observability/package-config.test.ts +66 -0
  1702. package/workspace-snapshot/files/tests/observability/packaged-config.test.ts +47 -0
  1703. package/workspace-snapshot/files/tests/observability/posthog-dashboard-contract.test.ts +133 -0
  1704. package/workspace-snapshot/files/tests/observability/posthog-envelope.test.ts +167 -0
  1705. package/workspace-snapshot/files/tests/observability/posthog-shutdown.test.ts +68 -0
  1706. package/workspace-snapshot/files/tests/observability/privacy-schema.test.ts +83 -0
  1707. package/workspace-snapshot/files/tests/observability/provisioning-analytics.test.ts +54 -0
  1708. package/workspace-snapshot/files/tests/observability/public-config-enablement.test.ts +48 -0
  1709. package/workspace-snapshot/files/tests/observability/sentry-envelope.test.ts +289 -0
  1710. package/workspace-snapshot/files/tests/observability/sentry-outbound-privacy.test.ts +141 -0
  1711. package/workspace-snapshot/files/tests/observability/sentry-privacy-assertions.ts +52 -0
  1712. package/workspace-snapshot/files/tests/observability/sentry-server-only.test.ts +68 -0
  1713. package/workspace-snapshot/files/tests/observability/sentry-transport.test.ts +88 -0
  1714. package/workspace-snapshot/files/tests/observability/session-dedupe.test.ts +117 -0
  1715. package/workspace-snapshot/files/tests/observability/snapshot-exclusion.test.ts +9 -0
  1716. package/workspace-snapshot/files/tests/p-dev/cli.test.ts +2 -2
  1717. package/workspace-snapshot/files/tests/p-dev/git-object-plumbing.test.ts +49 -0
  1718. package/workspace-snapshot/files/tests/p-dev/installed-tarball-gui.test.ts +475 -0
  1719. package/workspace-snapshot/files/tests/p-dev/installed-tarball-loopback.test.ts +986 -0
  1720. package/workspace-snapshot/files/tests/p-dev/installed-tarball-snapshot-provisioning.test.ts +361 -0
  1721. package/workspace-snapshot/files/tests/p-dev/launch.test.ts +55 -3
  1722. package/workspace-snapshot/files/tests/p-dev/package-manifest.test.ts +3 -1
  1723. package/workspace-snapshot/files/tests/p-dev/package-packed-artifact.test.ts +115 -10
  1724. package/workspace-snapshot/files/tests/p-dev/package-paths.test.ts +51 -0
  1725. package/workspace-snapshot/files/tests/p-dev/package-version.test.ts +1 -1
  1726. package/workspace-snapshot/files/tests/p-dev/packaged-workspace-setup.test.ts +1 -1
  1727. package/workspace-snapshot/files/tests/p-dev/workspace-snapshot-policy.test.ts +6 -0
  1728. package/workspace-snapshot/files/tests/product/initialization-state.test.ts +78 -0
  1729. package/workspace-snapshot/files/tests/product/read-product-marker.test.ts +46 -0
  1730. package/workspace-snapshot/files/tests/prompts/builder.test.ts +1 -0
  1731. package/workspace-snapshot/files/tests/prompts/implementation-builder.test.ts +1 -0
  1732. package/workspace-snapshot/files/tests/prompts/issue-intake-chatgpt.test.ts +1 -0
  1733. package/workspace-snapshot/files/tests/resolver/target-repo.test.ts +66 -0
  1734. package/workspace-snapshot/files/tests/runner/builder-thread-acquire.test.ts +288 -0
  1735. package/workspace-snapshot/files/tests/runner/builder-thread-idempotency.test.ts +42 -0
  1736. package/workspace-snapshot/files/tests/runner/builder-thread-lineage.test.ts +206 -0
  1737. package/workspace-snapshot/files/tests/runner/delivery-dedup.test.ts +53 -0
  1738. package/workspace-snapshot/files/tests/runner/failure-finalization-runner-upgrade.test.ts +112 -0
  1739. package/workspace-snapshot/files/tests/runner/failure-finalization.test.ts +203 -0
  1740. package/workspace-snapshot/files/tests/runner/handoff.test.ts +66 -0
  1741. package/workspace-snapshot/files/tests/runner/idempotency-handoff.test.ts +1 -0
  1742. package/workspace-snapshot/files/tests/runner/idempotency-implementation.test.ts +1 -0
  1743. package/workspace-snapshot/files/tests/runner/idempotency-revision.test.ts +1 -0
  1744. package/workspace-snapshot/files/tests/runner/idempotency.test.ts +1 -0
  1745. package/workspace-snapshot/files/tests/runner/implementation.test.ts +24 -5
  1746. package/workspace-snapshot/files/tests/runner/integration-repair.test.ts +21 -6
  1747. package/workspace-snapshot/files/tests/runner/merge-linear-metadata.test.ts +90 -0
  1748. package/workspace-snapshot/files/tests/runner/merge.test.ts +79 -0
  1749. package/workspace-snapshot/files/tests/runner/planning.test.ts +9 -0
  1750. package/workspace-snapshot/files/tests/runner/preflight-canonical.test.ts +73 -0
  1751. package/workspace-snapshot/files/tests/runner/preflight-fail-closed.integration.test.ts +418 -0
  1752. package/workspace-snapshot/files/tests/runner/preview-capability.test.ts +46 -0
  1753. package/workspace-snapshot/files/tests/runner/resolve-route.test.ts +6 -0
  1754. package/workspace-snapshot/files/tests/runner/revision.test.ts +117 -9
  1755. package/workspace-snapshot/files/tests/runner/uninitialized-product-routing.test.ts +120 -0
  1756. package/workspace-snapshot/files/tests/setup/control-plane-readiness.test.ts +86 -0
  1757. package/workspace-snapshot/files/tests/setup/control-plane-state-lock.test.ts +67 -0
  1758. package/workspace-snapshot/files/tests/setup/first-run-readiness.test.ts +134 -2
  1759. package/workspace-snapshot/files/tests/setup/github-dispatch-token.test.ts +49 -1
  1760. package/workspace-snapshot/files/tests/setup/github-repository-name.test.ts +28 -0
  1761. package/workspace-snapshot/files/tests/setup/gui-remote-storage.test.ts +0 -2
  1762. package/workspace-snapshot/files/tests/setup/harness-dispatch-repo.test.ts +292 -3
  1763. package/workspace-snapshot/files/tests/setup/harness-snapshot-bulk-fixture.ts +72 -0
  1764. package/workspace-snapshot/files/tests/setup/harness-snapshot-bulk-installed.test.ts +93 -0
  1765. package/workspace-snapshot/files/tests/setup/harness-snapshot-git-transport.test.ts +518 -0
  1766. package/workspace-snapshot/files/tests/setup/harness-step-readiness.test.ts +145 -0
  1767. package/workspace-snapshot/files/tests/setup/harness-workspace-snapshot-loader.test.ts +142 -0
  1768. package/workspace-snapshot/files/tests/setup/initial-setup-lifecycle.test.ts +220 -0
  1769. package/workspace-snapshot/files/tests/setup/linear-setup-apply.test.ts +7 -4
  1770. package/workspace-snapshot/files/tests/setup/linear-setup-plan.test.ts +46 -3
  1771. package/workspace-snapshot/files/tests/setup/linear-workflow-status-repair.test.ts +314 -0
  1772. package/workspace-snapshot/files/tests/setup/linear-workspace-migration.test.ts +173 -0
  1773. package/workspace-snapshot/files/tests/setup/linear-workspace-plan.test.ts +247 -0
  1774. package/workspace-snapshot/files/tests/setup/local-apply-actions.test.ts +13 -0
  1775. package/workspace-snapshot/files/tests/setup/local-readiness-checks.test.ts +25 -1
  1776. package/workspace-snapshot/files/tests/setup/mock-canonical-preflight.ts +14 -0
  1777. package/workspace-snapshot/files/tests/setup/packaged-default-route.test.ts +85 -0
  1778. package/workspace-snapshot/files/tests/setup/release-sync-managed-runner.test.ts +385 -0
  1779. package/workspace-snapshot/files/tests/setup/runner-upgrade-canary.test.ts +201 -0
  1780. package/workspace-snapshot/files/tests/setup/runner-upgrade-three-way.test.ts +226 -0
  1781. package/workspace-snapshot/files/tests/setup/runner-upgrade.test.ts +702 -0
  1782. package/workspace-snapshot/files/tests/setup/service-verification.test.ts +197 -18
  1783. package/workspace-snapshot/files/tests/setup/settings-config-patch.test.ts +280 -0
  1784. package/workspace-snapshot/files/tests/setup/setup-state.test.ts +47 -0
  1785. package/workspace-snapshot/files/tests/setup/step6-automatic-apply-outcome.test.ts +1 -0
  1786. package/workspace-snapshot/files/tests/setup/step6-automatic-control-state.test.ts +73 -0
  1787. package/workspace-snapshot/files/tests/setup/target-repo-provisioning.test.ts +307 -0
  1788. package/workspace-snapshot/files/tests/setup/target-workflow-finalization-progress.test.ts +71 -0
  1789. package/workspace-snapshot/files/tests/setup/target-workflow-finalization-step-github.test.ts +240 -0
  1790. package/workspace-snapshot/files/tests/setup/vercel-bridge-redeploy-normalize.test.ts +106 -0
  1791. package/workspace-snapshot/files/tests/setup/vercel-bridge-redeploy-poll.test.ts +78 -4
  1792. package/workspace-snapshot/files/tests/setup/vercel-setup-apply.test.ts +278 -3
  1793. package/workspace-snapshot/files/tests/setup/vercel-setup-client.test.ts +76 -0
  1794. package/workspace-snapshot/files/tests/setup/vercel-setup-plan.test.ts +58 -0
  1795. package/workspace-snapshot/files/tests/setup/workflow-install-branch-recovery-commit.test.ts +144 -0
  1796. package/workspace-snapshot/files/tests/setup/workflow-install-branch-recovery.test.ts +133 -0
  1797. package/workspace-snapshot/files/tests/setup/workflow-install-merge-errors.test.ts +66 -1
  1798. package/workspace-snapshot/files/tests/setup/workflow-install-merge-gate.test.ts +58 -0
  1799. package/workspace-snapshot/files/tests/setup/workflow-model-save-queue.test.ts +139 -0
  1800. package/workspace-snapshot/files/tests/setup/workflow-model-sync.test.ts +141 -0
  1801. package/workspace-snapshot/files/tests/validate-issue/uninitialized-product.test.ts +108 -0
  1802. package/workspace-snapshot/files/tests/webhook/filter.test.ts +55 -0
  1803. package/workspace-snapshot/files/tests/webhook/harness-auto-runner-workflow.test.ts +7 -0
  1804. package/workspace-snapshot/files/tests/workflow/canonical-product-development-workflow.test.ts +193 -0
  1805. package/workspace-snapshot/files/tests/workflow/canonical-workflow-validation.test.ts +202 -0
  1806. package/workspace-snapshot/files/tests/workflow/workflow-shell-safety.test.ts +5 -2
  1807. package/workspace-snapshot/files/vitest.config.ts +5 -0
  1808. package/workspace-snapshot/manifest.json +3604 -836
  1809. package/workspace-snapshot/object-pack/snapshot-2735d42c938e514f27a9b2aaf5fa2fcc68019075.idx +0 -0
  1810. package/workspace-snapshot/object-pack/snapshot-2735d42c938e514f27a9b2aaf5fa2fcc68019075.pack +0 -0
  1811. package/gui/.next/server/app/index.html +0 -1
  1812. package/gui/.next/server/app/index.meta +0 -9
  1813. package/gui/.next/server/app/index.rsc +0 -18
  1814. package/gui/.next/server/chunks/200.js +0 -1
  1815. package/gui/.next/server/chunks/477.js +0 -16
  1816. package/gui/.next/server/chunks/585.js +0 -1
  1817. package/gui/.next/server/chunks/647.js +0 -82
  1818. package/gui/.next/server/chunks/711.js +0 -1
  1819. package/gui/.next/server/chunks/900.js +0 -1
  1820. package/gui/.next/server/chunks/901.js +0 -22
  1821. package/gui/.next/static/ZGJuemeaiW4yT7CTlmjdG/_buildManifest.js +0 -1
  1822. package/gui/.next/static/chunks/661-5fc9351358e2f084.js +0 -1
  1823. package/gui/.next/static/chunks/app/_not-found/page-f15332c94524c284.js +0 -1
  1824. package/gui/.next/static/chunks/app/api/setup/apply-connect-services/route-979ec1702bd9938a.js +0 -1
  1825. package/gui/.next/static/chunks/app/api/setup/apply-harness-repo-provisioning/route-979ec1702bd9938a.js +0 -1
  1826. package/gui/.next/static/chunks/app/api/setup/apply-harness-secrets/route-979ec1702bd9938a.js +0 -1
  1827. package/gui/.next/static/chunks/app/api/setup/apply-linear-setup/route-979ec1702bd9938a.js +0 -1
  1828. package/gui/.next/static/chunks/app/api/setup/apply-local-files/route-979ec1702bd9938a.js +0 -1
  1829. package/gui/.next/static/chunks/app/api/setup/apply-target-workflow/route-979ec1702bd9938a.js +0 -1
  1830. package/gui/.next/static/chunks/app/api/setup/apply-vercel-bridge/route-979ec1702bd9938a.js +0 -1
  1831. package/gui/.next/static/chunks/app/api/setup/finalize-target-workflow/route-979ec1702bd9938a.js +0 -1
  1832. package/gui/.next/static/chunks/app/api/setup/harness-provisioning-summary/route-979ec1702bd9938a.js +0 -1
  1833. package/gui/.next/static/chunks/app/api/setup/linear-options/route-979ec1702bd9938a.js +0 -1
  1834. package/gui/.next/static/chunks/app/api/setup/linear-summary/route-979ec1702bd9938a.js +0 -1
  1835. package/gui/.next/static/chunks/app/api/setup/local-readiness/route-979ec1702bd9938a.js +0 -1
  1836. package/gui/.next/static/chunks/app/api/setup/manual-harness-secret-values/route-979ec1702bd9938a.js +0 -1
  1837. package/gui/.next/static/chunks/app/api/setup/preview-connect-services/route-979ec1702bd9938a.js +0 -1
  1838. package/gui/.next/static/chunks/app/api/setup/preview-harness-repo-provisioning/route-979ec1702bd9938a.js +0 -1
  1839. package/gui/.next/static/chunks/app/api/setup/preview-harness-secrets/route-979ec1702bd9938a.js +0 -1
  1840. package/gui/.next/static/chunks/app/api/setup/preview-linear-setup/route-979ec1702bd9938a.js +0 -1
  1841. package/gui/.next/static/chunks/app/api/setup/preview-local-files/route-979ec1702bd9938a.js +0 -1
  1842. package/gui/.next/static/chunks/app/api/setup/preview-target-workflow/route-979ec1702bd9938a.js +0 -1
  1843. package/gui/.next/static/chunks/app/api/setup/preview-vercel-bridge/route-979ec1702bd9938a.js +0 -1
  1844. package/gui/.next/static/chunks/app/api/setup/remote-summary/route-979ec1702bd9938a.js +0 -1
  1845. package/gui/.next/static/chunks/app/api/setup/summary/route-979ec1702bd9938a.js +0 -1
  1846. package/gui/.next/static/chunks/app/api/setup/vercel-bridge-options/route-979ec1702bd9938a.js +0 -1
  1847. package/gui/.next/static/chunks/app/api/setup/vercel-bridge-redeploy-status/route-979ec1702bd9938a.js +0 -1
  1848. package/gui/.next/static/chunks/app/api/setup/vercel-summary/route-979ec1702bd9938a.js +0 -1
  1849. package/gui/.next/static/chunks/app/api/setup/verify-harness-repo/route-979ec1702bd9938a.js +0 -1
  1850. package/gui/.next/static/chunks/app/api/setup/verify-service/route-979ec1702bd9938a.js +0 -1
  1851. package/gui/.next/static/chunks/app/api/setup/verify-target-repo/route-979ec1702bd9938a.js +0 -1
  1852. package/gui/.next/static/chunks/app/layout-10445a363bff6a38.js +0 -1
  1853. package/gui/.next/static/chunks/app/page-979ec1702bd9938a.js +0 -1
  1854. package/gui/.next/static/chunks/app/settings/configure/page-25b2288ace2949a1.js +0 -1
  1855. package/gui/.next/static/chunks/framework-7318ce553e854ad6.js +0 -1
  1856. package/gui/.next/static/chunks/main-app-732547e2b1a794b6.js +0 -1
  1857. package/gui/.next/static/chunks/main-f7a784f5852cbbd1.js +0 -1
  1858. package/gui/.next/static/chunks/pages/_error-bda15e7831eec981.js +0 -1
  1859. package/gui/.next/static/css/781f3c93b6d7425a.css +0 -3
  1860. package/workspace-snapshot/files/apps/gui/components/custom/setup-dashboard.tsx +0 -124
  1861. package/workspace-snapshot/files/apps/gui/components/custom/setup-readonly-sections.tsx +0 -210
  1862. /package/gui/.next/static/{ZGJuemeaiW4yT7CTlmjdG → wM7YWpWgyTcGc7H5h1u7U}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";exports.id=1536,exports.ids=[1536],exports.modules={8553:(a,b,c)=>{c.d(b,{G:()=>d});let d=a=>"object"==typeof a&&null!==a},15337:(a,b,c)=>{c.d(b,{s:()=>e});var d=c(8553);function e(a){return(0,d.G)(a)&&"offsetHeight"in a&&!("ownerSVGElement"in a)}},27239:(a,b,c)=>{c.d(b,{L:()=>d});let d=(0,c(31768).createContext)({})},56549:(a,b,c)=>{c.d(b,{t:()=>d});let d=(0,c(31768).createContext)(null)},60185:(a,b,c)=>{let d,e,f;c.d(b,{P:()=>fH});let g=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],h=new Set([...g,"pathRotation"]),i=(a,b,c)=>c>b?b:c<a?a:c,j={test:a=>"number"==typeof a,parse:parseFloat,transform:a=>a},k={...j,transform:a=>i(0,1,a)},l={...j,default:1},m=a=>Math.round(1e5*a)/1e5,n=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu,o=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,p=(a,b)=>c=>!!("string"==typeof c&&o.test(c)&&c.startsWith(a)||b&&null!=c&&Object.prototype.hasOwnProperty.call(c,b)),q=(a,b,c)=>d=>{if("string"!=typeof d)return d;let[e,f,g,h]=d.match(n);return{[a]:parseFloat(e),[b]:parseFloat(f),[c]:parseFloat(g),alpha:void 0!==h?parseFloat(h):1}},r={...j,transform:a=>Math.round(i(0,255,a))},s={test:p("rgb","red"),parse:q("red","green","blue"),transform:({red:a,green:b,blue:c,alpha:d=1})=>"rgba("+r.transform(a)+", "+r.transform(b)+", "+r.transform(c)+", "+m(k.transform(d))+")"},t={test:p("#"),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:s.transform},u=a=>({test:b=>"string"==typeof b&&b.endsWith(a)&&1===b.split(" ").length,parse:parseFloat,transform:b=>`${b}${a}`}),v=u("deg"),w=u("%"),x=u("px"),y=u("vh"),z=u("vw"),A={...w,parse:a=>w.parse(a)/100,transform:a=>w.transform(100*a)},B={test:p("hsl","hue"),parse:q("hue","saturation","lightness"),transform:({hue:a,saturation:b,lightness:c,alpha:d=1})=>"hsla("+Math.round(a)+", "+w.transform(m(b))+", "+w.transform(m(c))+", "+m(k.transform(d))+")"},C={test:a=>s.test(a)||t.test(a)||B.test(a),parse:a=>s.test(a)?s.parse(a):B.test(a)?B.parse(a):t.parse(a),transform:a=>"string"==typeof a?a:a.hasOwnProperty("red")?s.transform(a):B.transform(a),getAnimatableNone:a=>{let b=C.parse(a);return b.alpha=0,C.transform(b)}},D=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu,E="number",F="color",G=/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 H(a){let b=a.toString(),c=[],d={color:[],number:[],var:[]},e=[],f=0,g=b.replace(G,a=>(C.test(a)?(d.color.push(f),e.push(F),c.push(C.parse(a))):a.startsWith("var(")?(d.var.push(f),e.push("var"),c.push(a)):(d.number.push(f),e.push(E),c.push(parseFloat(a))),++f,"${}")).split("${}");return{values:c,split:g,indexes:d,types:e}}function I({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===E?e+=m(d[f]):a===F?e+=C.transform(d[f]):e+=d[f]}return e}}let J={test:function(a){return isNaN(a)&&"string"==typeof a&&(a.match(n)?.length||0)+(a.match(D)?.length||0)>0},parse:function(a){return H(a).values},createTransformer:function(a){return I(H(a))},getAnimatableNone:function(a){let b=H(a);return I(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:C.test(e)?C.getAnimatableNone(e):e}))}},K=new Set(["brightness","contrast","saturate","opacity"]);function L(a){let[b,c]=a.slice(0,-1).split("(");if("drop-shadow"===b)return a;let[d]=c.match(n)||[];if(!d)return a;let e=c.replace(d,""),f=+!!K.has(b);return d!==c&&(f*=100),b+"("+f+e+")"}let M=/\b([a-z-]*)\(.*?\)/gu,N={...J,getAnimatableNone:a=>{let b=a.match(M);return b?b.map(L).join(" "):a}},O={...J,getAnimatableNone:a=>{let b=J.parse(a);return J.createTransformer(a)(b.map(a=>"number"==typeof a?0:"object"==typeof a?{...a,alpha:1}:a))}},P={...j,transform:Math.round},Q={borderWidth:x,borderTopWidth:x,borderRightWidth:x,borderBottomWidth:x,borderLeftWidth:x,borderRadius:x,borderTopLeftRadius:x,borderTopRightRadius:x,borderBottomRightRadius:x,borderBottomLeftRadius:x,width:x,maxWidth:x,height:x,maxHeight:x,top:x,right:x,bottom:x,left:x,inset:x,insetBlock:x,insetBlockStart:x,insetBlockEnd:x,insetInline:x,insetInlineStart:x,insetInlineEnd:x,padding:x,paddingTop:x,paddingRight:x,paddingBottom:x,paddingLeft:x,paddingBlock:x,paddingBlockStart:x,paddingBlockEnd:x,paddingInline:x,paddingInlineStart:x,paddingInlineEnd:x,margin:x,marginTop:x,marginRight:x,marginBottom:x,marginLeft:x,marginBlock:x,marginBlockStart:x,marginBlockEnd:x,marginInline:x,marginInlineStart:x,marginInlineEnd:x,fontSize:x,backgroundPositionX:x,backgroundPositionY:x,rotate:v,pathRotation:v,rotateX:v,rotateY:v,rotateZ:v,scale:l,scaleX:l,scaleY:l,scaleZ:l,skew:v,skewX:v,skewY:v,distance:x,translateX:x,translateY:x,translateZ:x,x:x,y:x,z:x,perspective:x,transformPerspective:x,opacity:k,originX:A,originY:A,originZ:x,zIndex:P,fillOpacity:k,strokeOpacity:k,numOctaves:P},R={...Q,color:C,backgroundColor:C,outlineColor:C,fill:C,stroke:C,borderColor:C,borderTopColor:C,borderRightColor:C,borderBottomColor:C,borderLeftColor:C,filter:N,WebkitFilter:N,mask:O,WebkitMask:O},S=a=>R[a],T=()=>({translate:0,scale:1,origin:0,originPoint:0}),U=()=>({x:T(),y:T()}),V=()=>({min:0,max:0}),W=()=>({x:V(),y:V()}),X=a=>!!(a&&a.getVelocity),Y=new Set(["width","height","top","left","right","bottom",...g]),Z=a=>b=>b.test(a),$=[j,x,w,v,z,y,{test:a=>"auto"===a,parse:a=>a}],_=a=>$.find(Z(a)),aa=()=>{},ab=()=>{},ac=a=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(a),ad=a=>b=>"string"==typeof b&&b.startsWith(a),ae=ad("--"),af=ad("var(--"),ag=a=>!!af(a)&&ah.test(a.split("/*")[0].trim()),ah=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function ai(a){return"string"==typeof a&&a.split("/*")[0].includes("var(--")}let aj=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u,ak=a=>180*a/Math.PI,al=a=>an(ak(Math.atan2(a[1],a[0]))),am={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:a=>(Math.abs(a[0])+Math.abs(a[3]))/2,rotate:al,rotateZ:al,skewX:a=>ak(Math.atan(a[1])),skewY:a=>ak(Math.atan(a[2])),skew:a=>(Math.abs(a[1])+Math.abs(a[2]))/2},an=a=>((a%=360)<0&&(a+=360),a),ao=a=>Math.sqrt(a[0]*a[0]+a[1]*a[1]),ap=a=>Math.sqrt(a[4]*a[4]+a[5]*a[5]),aq={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:ao,scaleY:ap,scale:a=>(ao(a)+ap(a))/2,rotateX:a=>an(ak(Math.atan2(a[6],a[5]))),rotateY:a=>an(ak(Math.atan2(-a[2],a[0]))),rotateZ:al,rotate:al,skewX:a=>ak(Math.atan(a[4])),skewY:a=>ak(Math.atan(a[1])),skew:a=>(Math.abs(a[1])+Math.abs(a[4]))/2};function ar(a){return+!!a.includes("scale")}function as(a,b){let c,d;if(!a||"none"===a)return ar(b);let e=a.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);if(e)c=aq,d=e;else{let b=a.match(/^matrix\(([-\d.e\s,]+)\)$/u);c=am,d=b}if(!d)return ar(b);let f=c[b],g=d[1].split(",").map(at);return"function"==typeof f?f(g):g[f]}function at(a){return parseFloat(a.trim())}let au=a=>a===j||a===x,av=new Set(["x","y","z"]),aw=g.filter(a=>!av.has(a)),ax={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})=>as(b,"x"),y:(a,{transform:b})=>as(b,"y")};ax.translateX=ax.x,ax.translateY=ax.y;let ay=a=>a,az={},aA=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function aB(a,b){let c=!1,d=!0,e={delta:0,timestamp:0,isProcessing:!1},f=()=>c=!0,g=aA.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=az.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:aA.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<aA.length;b++)g[aA[b]].cancel(a)},state:e,steps:g}}let{schedule:aC,cancel:aD,state:aE,steps:aF}=aB("undefined"!=typeof requestAnimationFrame?requestAnimationFrame:ay,!0),aG=new Set,aH=!1,aI=!1,aJ=!1;function aK(){if(aI){let a=Array.from(aG).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 aw.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)})}aI=!1,aH=!1,aG.forEach(a=>a.complete(aJ)),aG.clear()}function aL(){aG.forEach(a=>{a.readKeyframes(),a.needsMeasurement&&(aI=!0)})}class aM{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?(aG.add(this),aH||(aH=!0,aC.read(aL),aC.resolveKeyframes(aK))):(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),aG.delete(this)}cancel(){"scheduled"===this.state&&(aG.delete(this),this.state="pending")}resume(){"pending"===this.state&&this.scheduleResolve()}}let aN=a=>/^0[^.\s]+$/u.test(a),aO=new Set([N,O]);function aP(a,b){let c=S(a);return aO.has(c)||(c=J),c.getAnimatableNone?c.getAnimatableNone(b):void 0}let aQ=new Set(["auto","none","0"]);class aR extends aM{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&&ag(d=d.trim())){let e=function a(b,c,d=1){ab(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=aj.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 ac(a)?parseFloat(a):a}return ag(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(),!Y.has(c)||2!==a.length)return;let[d,e]=a,f=_(d),g=_(e);if(ai(d)!==ai(e)&&ax[c]){this.needsMeasurement=!0;return}if(f!==g)if(au(f)&&au(g))for(let b=0;b<a.length;b++){let c=a[b];"string"==typeof c&&(a[b]=parseFloat(c))}else ax[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||aN(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&&!aQ.has(b)&&H(b).values.length&&(d=a[e]),e++}if(d&&c)for(let e of b)a[e]=aP(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=ax[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]=ax[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 aS=a=>1e3*a;function aT(a,b){-1===a.indexOf(b)&&a.push(b)}function aU(a,b){let c=a.indexOf(b);c>-1&&a.splice(c,1)}class aV{constructor(){this.subscriptions=[]}add(a){return aT(this.subscriptions,a),()=>aU(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 aW(a,b,c){b.startsWith("--")?a.style.setProperty(b,c):a.style[b]=c}function aX(a){let b;return()=>(void 0===b&&(b=a()),b)}let aY={};function aZ(a,b){let c=aX(a);return()=>aY[b]??c()}let a$=aZ(()=>void 0!==window.ScrollTimeline,"scrollTimeline"),a_=a=>null!==a;function a0(a,{repeat:b,repeatType:c="loop"},d,e=1){let f=a.filter(a_),g=e<0||b&&"loop"!==c&&b%2==1?0:f.length-1;return g&&void 0!==d?d:f[g]}class a1{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 a2=a=>Array.isArray(a)&&"number"==typeof a[0],a3=aZ(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch(a){return!1}return!0},"linearEasing"),a4=(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)})`},a5=([a,b,c,d])=>`cubic-bezier(${a}, ${b}, ${c}, ${d})`,a6={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:a5([0,.65,.55,1]),circOut:a5([.55,0,1,.45]),backIn:a5([.31,.01,.66,-.59]),backOut:a5([.33,1.53,.69,.99])};function a7(a){return"function"==typeof a&&"applyToOptions"in a}class a8 extends a1{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,ab("string"!=typeof a.type,'Mini animate() doesn\'t support "type" as a string.',"mini-spring");let i=function({type:a,...b}){return a7(a)&&a3()?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?a3()?a4(b,c):"ease-out":a2(b)?a5(b):Array.isArray(b)?b.map(b=>a(b,c)||a6.easeOut):a6[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=a0(d,this.options,g,this.speed);this.updateMotionValue&&this.updateMotionValue(a),aW(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=aS(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&&a$())?(this.animation.timeline=a,b&&(this.animation.rangeStart=b),c&&(this.animation.rangeEnd=c),ay):d(this)}}let a9=new Set(["opacity","clipPath","filter","transform"]),{schedule:ba}=aB(queueMicrotask,!1);function bb(){d=void 0}let bc={now:()=>(void 0===d&&bc.set(aE.isProcessing||az.useManualTiming?aE.timestamp:performance.now()),d),set:a=>{d=a,queueMicrotask(bb)}},bd=(a,b)=>b?1e3/b*a:0,be={current:void 0};class bf{constructor(a,b={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=a=>{let b=bc.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=bc.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 aV);let c=this.events[a].add(b);return"change"===a?()=>{c(),aC.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 be.current&&be.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){let a=bc.now();if(!this.canTrackVelocity||void 0===this.prevFrameValue||a-this.updatedAt>30)return 0;let b=Math.min(this.updatedAt-this.prevUpdatedAt,30);return bd(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 bg(a,b){return new bf(a,b)}let bh=[...$,C,J],bi=new WeakMap;function bj(a){return null!==a&&"object"==typeof a&&"function"==typeof a.start}function bk(a){return"string"==typeof a||Array.isArray(a)}let bl=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],bm=["initial",...bl];function bn(a){return bj(a.animate)||bm.some(b=>bk(a[b]))}function bo(a){return!!(bn(a)||a.variants)}var bp=c(79335);function bq(a){let b=[{},{}];return a?.values.forEach((a,c)=>{b[0][c]=a.get(),b[1][c]=a.getVelocity()}),b}function br(a,b,c,d){if("function"==typeof b){let[e,f]=bq(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]=bq(d);b=b(void 0!==c?c:a.custom,e,f)}return b}var bs=c(82384);let bt=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],bu={};class bv{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=aM,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=bc.now();this.renderScheduledAt<a&&(this.renderScheduledAt=a,aC.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=bn(b),this.isVariantNode=bo(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]&&X(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,bi.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:(bs.r.current||(0,bp.Uu)(),this.shouldReduceMotion=bs.O.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(),aD(this.notifyUpdate),aD(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&&a9.has(a)&&this.current instanceof HTMLElement){let{factory:c,keyframes:d,times:e,ease:f,duration:g}=b.accelerate,h=new a8({element:this.current,name:a,keyframes:d,times:e,ease:f,duration:aS(g)}),i=c(h);this.valueSubscriptions.set(a,()=>{i(),h.cancel()});return}let d=h.has(a);d&&this.onBindTransform&&this.onBindTransform();let e=b.on("change",b=>{this.latestValues[a]=b,this.props.onUpdate&&aC.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 bu){let b=bu[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):W()}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<bt.length;b++){let c=bt[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(X(e))a.addValue(d,e);else if(X(f))a.addValue(d,bg(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,bg(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=bg(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&&(ac(c)||aN(c)))c=parseFloat(c);else{let d;d=c,!bh.find(Z(d))&&J.test(b)&&(c=aP(a,b))}this.setBaseTarget(a,X(c)?c.get():c)}return X(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=br(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||X(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 aV),this.events[a].add(b)}notify(a,...b){this.events[a]&&this.events[a].notify(...b)}scheduleRenderMicrotask(){ba.render(this.render)}}class bw extends bv{constructor(){super(...arguments),this.KeyframeResolver=aR}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;X(a)&&(this.childSubscription=a.on("change",a=>{this.current&&(this.current.textContent=`${a}`)}))}}function bx(a){return a.replace(/([A-Z])/g,a=>`-${a.toLowerCase()}`)}let by=(a,b)=>b&&"number"==typeof a?b.transform(a):a,bz={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},bA=g.length;function bB(a,b,c){let{style:d,vars:e,transformOrigin:f}=a,i=!1,j=!1;for(let a in b){let c=b[a];if(h.has(a)){i=!0;continue}if(ae(a)){e[a]=c;continue}{let b=by(c,Q[a]);a.startsWith("origin")?(j=!0,f[a]=b):d[a]=b}}if(!b.transform&&(i||c?d.transform=function(a,b,c){let d="",e=!0;for(let f=0;f<bA;f++){let h=g[f],i=a[h];if(void 0===i)continue;let j=!0;if("number"==typeof i)j=i===+!!h.startsWith("scale");else{let a=parseFloat(i);j=h.startsWith("scale")?1===a:0===a}if(!j||c){let a=by(i,Q[h]);if(!j){e=!1;let b=bz[h]||h;d+=`${b}(${a}) `}c&&(b[h]=a)}}let f=a.pathRotation;return f&&(e=!1,d+=`rotate(${by(f,Q.pathRotation)}) `),d=d.trim(),c?d=c(b,e?"":d):e&&(d="none"),d}(b,a.transform,c):d.transform&&(d.transform="none")),j){let{originX:a="50%",originY:b="50%",originZ:c=0}=f;d.transformOrigin=`${a} ${b} ${c}`}}let bC={offset:"stroke-dashoffset",array:"stroke-dasharray"},bD={offset:"strokeDashoffset",array:"strokeDasharray"},bE=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function bF(a,{attrX:b,attrY:c,attrScale:d,pathLength:e,pathSpacing:f=1,pathOffset:g=0,...h},i,j,k){if(bB(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),bE))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?bC:bD;a[f.offset]=`${-d}`,a[f.array]=`${b} ${c}`}(l,e,f,g,!1)}let bG=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"]),bH=a=>"string"==typeof a&&"svg"===a.toLowerCase();function bI(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 bJ=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"];function bK(a,b){return b.max===b.min?0:a/(b.max-b.min)*100}let bL={correct:(a,b)=>{if(!b.target)return a;if("string"==typeof a)if(!x.test(a))return a;else a=parseFloat(a);let c=bK(a,b.target.x),d=bK(a,b.target.y);return`${c}% ${d}%`}},bM=(a,b,c)=>a+(b-a)*c,bN={borderRadius:{...bL,applyTo:[...bJ]},borderTopLeftRadius:bL,borderTopRightRadius:bL,borderBottomLeftRadius:bL,borderBottomRightRadius:bL,boxShadow:{correct:(a,{treeScale:b,projectionDelta:c})=>{let d=J.parse(a);if(d.length>5)return a;let e=J.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=bM(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 bO(a,{layout:b,layoutId:c}){return h.has(a)||a.startsWith("origin")||(b||void 0!==c)&&(!!bN[a]||"opacity"===a)}function bP(a,b,c){let d=a.style,e=b?.style,f={};if(!d)return f;for(let b in d)(X(d[b])||e&&X(e[b])||bO(b,a)||c?.getValue(b)?.liveStyle!==void 0)&&(f[b]=d[b]);return f}function bQ(a,b,c){let d=bP(a,b,c);for(let c in a)(X(a[c])||X(b[c]))&&(d[-1!==g.indexOf(c)?"attr"+c.charAt(0).toUpperCase()+c.substring(1):c]=a[c]);return d}class bR extends bw{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=W}getBaseTargetFromProps(a,b){return a[b]}readValueFromInstance(a,b){if(h.has(b)){let a=S(b);return a&&a.default||0}return b=bG.has(b)?b:bx(b),a.getAttribute(b)}scrapeMotionValuesFromProps(a,b,c){return bQ(a,b,c)}build(a,b,c){bF(a,b,this.isSVGTag,c.transformTemplate,c.style)}renderInstance(a,b,c,d){for(let c in bI(a,b,void 0,d),b.attrs)a.setAttribute(bG.has(c)?c:bx(c),b.attrs[c])}mount(a){this.isSVGTag=bH(a.tagName),super.mount(a)}}function bS({top:a,left:b,right:c,bottom:d}){return{x:{min:b,max:c},y:{min:a,max:d}}}function bT(a){return void 0===a||1===a}function bU({scale:a,scaleX:b,scaleY:c}){return!bT(a)||!bT(b)||!bT(c)}function bV(a){return bU(a)||bW(a)||a.z||a.rotate||a.rotateX||a.rotateY||a.skewX||a.skewY}function bW(a){var b,c;return(b=a.x)&&"0%"!==b||(c=a.y)&&"0%"!==c}function bX(a,b,c,d,e){return void 0!==e&&(a=d+e*(a-d)),d+c*(a-d)+b}function bY(a,b=0,c=1,d,e){a.min=bX(a.min,b,c,d,e),a.max=bX(a.max,b,c,d,e)}function bZ(a,{x:b,y:c}){bY(a.x,b.translate,b.scale,b.originPoint),bY(a.y,c.translate,c.scale,c.originPoint)}function b$(a,b){a.min+=b,a.max+=b}function b_(a,b,c,d,e=.5){let f=bM(a.min,a.max,e);bY(a,b,c,f,d)}function b0(a,b){return"string"==typeof a?parseFloat(a)/100*(b.max-b.min):a}function b1(a,b,c){let d=c??a;b_(a.x,b0(b.x,d.x),b.scaleX,b.scale,b.originX),b_(a.y,b0(b.y,d.y),b.scaleY,b.scale,b.originY)}function b2(a,b){return bS(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 b3 extends bw{constructor(){super(...arguments),this.type="html",this.renderInstance=bI}readValueFromInstance(a,b){if(h.has(b))return this.projection?.isProjecting?ar(b):((a,b)=>{let{transform:c="none"}=getComputedStyle(a);return as(c,b)})(a,b);{let c=window.getComputedStyle(a),d=(ae(b)?c.getPropertyValue(b):c[b])||0;return"string"==typeof d?d.trim():d}}measureInstanceViewportBox(a,{transformPagePoint:b}){return b2(a,b)}build(a,b,c){bB(a,b,c.transformTemplate)}scrapeMotionValuesFromProps(a,b,c){return bP(a,b,c)}}var b4=c(31768);let b5=["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 b6(a){if("string"!=typeof a||a.includes("-"));else if(b5.indexOf(a)>-1||/[A-Z]/u.test(a))return!0;return!1}var b7=c(78157),b8=c(27239),b9=c(75444);let ca=(0,b4.createContext)({});function cb(a){return Array.isArray(a)?a.join(" "):a}let cc=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function cd(a,b,c){for(let d in b)X(b[d])||bO(d,c)||(a[d]=b[d])}let ce=()=>({...cc(),attrs:{}}),cf=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 cg(a){return a.startsWith("while")||a.startsWith("drag")&&"draggable"!==a||a.startsWith("layout")||a.startsWith("onTap")||a.startsWith("onPan")||a.startsWith("onLayout")||cf.has(a)}let ch=a=>!cg(a);try{!function(a){"function"==typeof a&&(ch=b=>b.startsWith("on")?!cg(b):a(b))}(require("@emotion/is-prop-valid").default)}catch{}function ci(a){return X(a)?a.get():a}var cj=c(56549),ck=c(60283);let cl=a=>(b,c)=>{let d=(0,b4.useContext)(ca),e=(0,b4.useContext)(cj.t),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]=ci(f[a]);let{initial:g,animate:h}=a,i=bn(a),j=bo(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&&!bj(l)){let b=Array.isArray(l)?l:[l];for(let c=0;c<b.length;c++){let d=br(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():(0,ck.M)(f)},cm=cl({scrapeMotionValuesFromProps:bP,createRenderState:cc}),cn=cl({scrapeMotionValuesFromProps:bQ,createRenderState:ce}),co={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"]},cp=!1,cq=Symbol.for("motionComponentSymbol");function cr(a,{forwardMotionProps:b=!1,type:c}={},d,e){d&&function(a){let b=(!function(){if(cp)return;let a={};for(let b in co)a[b]={isEnabled:a=>co[b].some(b=>!!a[b])};bu=a,cp=!0}(),bu);for(let c in a)b[c]={...b[c],...a[c]};bu=b}(d);let f=c?"svg"===c:b6(a),g=f?cn:cm;function h(c,d){let e,h={...(0,b4.useContext)(b9.Q),...c,layoutId:function({layoutId:a}){let b=(0,b4.useContext)(b8.L).id;return b&&void 0!==a?b+"-"+a:a}(c)},{isStatic:i}=h,j=function(a){let{initial:b,animate:c}=function(a,b){if(bn(a)){let{initial:b,animate:c}=a;return{initial:!1===b||bk(b)?b:void 0,animate:bk(c)?c:void 0}}return!1!==a.inherit?b:{}}(a,(0,b4.useContext)(ca));return(0,b4.useMemo)(()=>({initial:b,animate:c}),[cb(b),cb(c)])}(c),k=g(c,i);return(0,b7.jsxs)(ca.Provider,{value:j,children:[e&&j.visualElement?(0,b7.jsx)(e,{visualElement:j.visualElement,...h}):null,function(a,b,c,{latestValues:d},e,f=!1,g){let h=(g??b6(a)?function(a,b,c,d){let e=(0,b4.useMemo)(()=>{let c=ce();return bF(c,b,bH(d),a.transformTemplate,a.style),{...c.attrs,style:{...c.style}}},[b]);if(a.style){let b={};cd(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 cd(d,c,a),Object.assign(d,function({transformTemplate:a},b){return(0,b4.useMemo)(()=>{let c=cc();return bB(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),i=function(a,b,c){let d={};for(let e in a)("values"!==e||"object"!=typeof a.values)&&!X(a[e])&&(ch(e)||!0===c&&cg(e)||!b&&!cg(e)||a.draggable&&e.startsWith("onDrag"))&&(d[e]=a[e]);return d}(b,"string"==typeof a,f),j=a!==b4.Fragment?{...i,...h,ref:c}:{},{children:k}=b,l=(0,b4.useMemo)(()=>X(k)?k.get():k,[k]);return(0,b4.createElement)(a,{...j,children:l})}(a,c,function(a,b,c){let d=(0,b4.useRef)(c);(0,b4.useInsertionEffect)(()=>{d.current=c});let e=(0,b4.useRef)(null);return(0,b4.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])}(k,j.visualElement,d),k,i,b,f)]})}h.displayName=`motion.${"string"==typeof a?a:`create(${a.displayName??a.name??""})`}`;let i=(0,b4.forwardRef)(h);return i[cq]=a,i}class cs{constructor(a){this.isMounted=!1,this.node=a}update(){}}function ct(a,b,c){let d=a.getProps();return br(d,b,void 0!==c?c:d.custom,a)}function cu(a,b){if(a?.inherit&&b){let{inherit:c,...d}=a;return{...b,...d}}return a}function cv(a,b){let c=a?.[b]??a?.default??a;return c!==a?cu(c,a):c}let cw=a=>Array.isArray(a);function cx(a,b){let c=a.getValue("willChange");if(X(c)&&c.add)return c.add(b);if(!c&&az.WillChange){let c=new az.WillChange("auto");a.addValue("willChange",c),c.add(b)}}let cy="data-"+bx("framerAppearId"),cz=(...a)=>a.reduce((a,b)=>c=>b(a(c)));function cA(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 cB(a,b){return c=>c>0?b:a}let cC=(a,b,c)=>{let d=a*a,e=c*(b*b-d)+d;return e<0?0:Math.sqrt(e)},cD=[t,s,B];function cE(a){let b=cD.find(b=>b.test(a));if(aa(!!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===B&&(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=cA(h,d,a+1/3),f=cA(h,d,a),g=cA(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 cF=(a,b)=>{let c=cE(a),d=cE(b);if(!c||!d)return cB(a,b);let e={...c};return a=>(e.red=cC(c.red,d.red,a),e.green=cC(c.green,d.green,a),e.blue=cC(c.blue,d.blue,a),e.alpha=bM(c.alpha,d.alpha,a),s.transform(e))},cG=new Set(["none","hidden"]);function cH(a,b){return c=>bM(a,b,c)}function cI(a){return"number"==typeof a?cH:"string"==typeof a?ag(a)?cB:C.test(a)?cF:cL:Array.isArray(a)?cJ:"object"==typeof a?C.test(a)?cF:cK:cB}function cJ(a,b){let c=[...a],d=c.length,e=a.map((a,c)=>cI(a)(a,b[c]));return a=>{for(let b=0;b<d;b++)c[b]=e[b](a);return c}}function cK(a,b){let c={...a,...b},d={};for(let e in c)void 0!==a[e]&&void 0!==b[e]&&(d[e]=cI(a[e])(a[e],b[e]));return a=>{for(let b in d)c[b]=d[b](a);return c}}let cL=(a,b)=>{let c=J.createTransformer(b),d=H(a),e=H(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?cG.has(a)&&!e.values.length||cG.has(b)&&!d.values.length?function(a,b){return cG.has(a)?c=>c<=0?a:b:c=>c>=1?b:a}(a,b):cz(cJ(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):(aa(!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"),cB(a,b))};function cM(a,b,c){return"number"==typeof a&&"number"==typeof b&&"number"==typeof c?bM(a,b,c):cI(a)(a,b)}let cN=a=>{let b=({timestamp:b})=>a(b);return{start:(a=!0)=>aC.update(b,a),stop:()=>aD(b),now:()=>aE.isProcessing?aE.timestamp:bc.now()}};function cO(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 cP={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 cQ(a,b){return a*Math.sqrt(1-b*b)}let cR=["duration","bounce"],cS=["stiffness","damping","mass"];function cT(a,b){return b.some(b=>void 0!==a[b])}function cU(a=cP.visualDuration,b=cP.bounce){let c,d,e,f,g,h,j="object"!=typeof a?{visualDuration:a,keyframes:[0,1],bounce:b}:a,{restSpeed:k,restDelta:l}=j,m=j.keyframes[0],n=j.keyframes[j.keyframes.length-1],o={done:!1,value:m},{stiffness:p,damping:q,mass:r,duration:s,velocity:t,isResolvedFromDuration:u}=function(a){let b={velocity:cP.velocity,stiffness:cP.stiffness,damping:cP.damping,mass:cP.mass,isResolvedFromDuration:!1,...a};if(!cT(a,cS)&&cT(a,cR))if(b.velocity=0,a.visualDuration){let c=2*Math.PI/(1.2*a.visualDuration),d=c*c,e=2*i(.05,1,1-(a.bounce||0))*Math.sqrt(d);b={...b,mass:cP.mass,stiffness:d,damping:e}}else{let c=function({duration:a=cP.duration,bounce:b=cP.bounce,velocity:c=cP.velocity,mass:d=cP.mass}){let e,f;aa(a<=aS(cP.maxDuration),"Spring duration must be 10 seconds or less","spring-duration-limit");let g=1-b;g=i(cP.minDamping,cP.maxDamping,g),a=i(cP.minDuration,cP.maxDuration,a/1e3),g<1?(e=b=>{let d=b*g,e=d*a;return .001-(d-c)/cQ(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=cQ(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=aS(a),isNaN(h))return{stiffness:cP.stiffness,damping:cP.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:cP.mass}).isResolvedFromDuration=!0}return b}({...j,velocity:-((j.velocity||0)/1e3)}),v=t||0,w=q/(2*Math.sqrt(p*r)),x=n-m,y=Math.sqrt(p/r)/1e3,z=5>Math.abs(x);if(k||(k=z?cP.restSpeed.granular:cP.restSpeed.default),l||(l=z?cP.restDelta.granular:cP.restDelta.default),w<1)e=cQ(y,w),f=(v+w*y*x)/e,c=a=>n-Math.exp(-w*y*a)*(f*Math.sin(e*a)+x*Math.cos(e*a)),g=w*y*f+x*e,h=w*y*x-f*e,d=a=>Math.exp(-w*y*a)*(g*Math.sin(e*a)+h*Math.cos(e*a));else if(1===w){c=a=>n-Math.exp(-y*a)*(x+(v+y*x)*a);let a=v+y*x;d=b=>Math.exp(-y*b)*(y*a*b-v)}else{let a=y*Math.sqrt(w*w-1);c=b=>{let c=Math.exp(-w*y*b),d=Math.min(a*b,300);return n-c*((v+w*y*x)*Math.sinh(d)+a*x*Math.cosh(d))/a};let b=(v+w*y*x)/a,e=w*y*b-x*a,f=w*y*x-b*a;d=b=>{let c=Math.exp(-w*y*b),d=Math.min(a*b,300);return c*(e*Math.sinh(d)+f*Math.cosh(d))}}let A={calculatedDuration:u&&s||null,velocity:a=>aS(d(a)),next:a=>{if(!u&&w<1){let b=Math.exp(-w*y*a),c=Math.sin(e*a),d=Math.cos(e*a),i=n-b*(f*c+x*d);return o.done=Math.abs(aS(b*(g*c+h*d)))<=k&&Math.abs(n-i)<=l,o.value=o.done?n:i,o}let b=c(a);return u?o.done=a>=s:o.done=Math.abs(aS(d(a)))<=k&&Math.abs(n-b)<=l,o.value=o.done?n:b,o},toString:()=>{let a=Math.min(cO(A),2e4),b=a4(b=>A.next(a*b).value,a,30);return a+"ms "+b},toTransition:()=>{}};return A}function cV(a,b,c){let d=Math.max(b-5,0);return bd(c-a(d),b-d)}function cW({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=cU({keyframes:[o.value,(c=o.value,void 0===h?i:void 0===i||Math.abs(h-c)<Math.abs(i-c)?h:i)],velocity:cV(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)}}}cU.applyToOptions=a=>{let b=function(a,b=100,c){let d=c({...a,keyframes:[0,b]}),e=Math.min(cO(d),2e4);return{type:"keyframes",ease:a=>d.next(e*a).value/b,duration:e/1e3}}(a,100,cU);return a.ease=b.ease,a.duration=aS(b.duration),a.type="keyframes",a};let cX=(a,b,c)=>(((1-3*c+3*b)*a+(3*c-6*b))*a+3*b)*a;function cY(a,b,c,d){return a===b&&c===d?ay:e=>0===e||1===e?e:cX(function(a,b,c,d,e){let f,g,h=0;do(f=cX(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 cZ=cY(.42,0,1,1),c$=cY(0,0,.58,1),c_=cY(.42,0,.58,1),c0=a=>b=>b<=.5?a(2*b)/2:(2-a(2*(1-b)))/2,c1=a=>b=>1-a(1-b),c2=cY(.33,1.53,.69,.99),c3=c1(c2),c4=c0(c3),c5=a=>a>=1?1:(a*=2)<1?.5*c3(a):.5*(2-Math.pow(2,-10*(a-1))),c6=a=>1-Math.sin(Math.acos(a)),c7=c1(c6),c8=c0(c6),c9={linear:ay,easeIn:cZ,easeInOut:c_,easeOut:c$,circIn:c6,circInOut:c8,circOut:c7,backIn:c3,backInOut:c4,backOut:c2,anticipate:c5},da=a=>{if(a2(a)){ab(4===a.length,"Cubic bezier arrays must contain four numerical values.","cubic-bezier-length");let[b,c,d,e]=a;return cY(b,c,d,e)}return"string"==typeof a?(ab(void 0!==c9[a],`Invalid easing type '${a}'`,"invalid-easing-type"),c9[a]):a},db=(a,b,c)=>{let d=b-a;return d?(c-a)/d:1};function dc({duration:a=300,keyframes:b,times:c,ease:d="easeInOut"}){var e;let f=Array.isArray(d)&&"number"!=typeof d[0]?d.map(da):da(d),g={done:!1,value:b[0]},h=function(a,b,{clamp:c=!0,ease:d,mixer:e}={}){let f=a.length;if(ab(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||az.mix||cM,f=a.length-1;for(let c=0;c<f;c++){let f=e(a[c],a[c+1]);b&&(f=cz(Array.isArray(b)?b[c]||ay:b,f)),d.push(f)}return d}(b,d,e),j=h.length,k=c=>{if(g&&c<a[0])return b[0];let d=0;if(j>1)for(;d<a.length-2&&!(c<a[d+1]);d++);let e=db(a[d],a[d+1],c);return h[d](e)};return c?b=>k(i(a[0],a[f-1],b)):k}((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=db(0,b,d);a.push(bM(c,1,e))}}(b,a.length-1),b}(b),e.map(b=>b*a)),b,{ease:Array.isArray(f)?f:b.map(()=>f||c_).splice(0,b.length-1)});return{calculatedDuration:a,next:b=>(g.value=h(b),g.done=b>=a,g)}}let dd={decay:cW,inertia:cW,tween:dc,keyframes:dc,spring:cU};function de(a){"string"==typeof a.type&&(a.type=dd[a.type])}let df=a=>a/100;class dg extends a1{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!==bc.now()&&this.tick(bc.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;de(a);let{type:b=dc,repeat:c=0,repeatDelay:d=0,repeatType:e,velocity:f=0}=a,{keyframes:g}=a,h=b||dc;h!==dc&&"number"!=typeof g[0]&&(this.mixKeyframes=cz(df,cM(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=cO(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:j}=this;if(null===this.startTime)return d.next(0);let{delay:k=0,keyframes:l,repeat:m,repeatType:n,repeatDelay:o,type:p,onUpdate:q,finalKeyframe:r}=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 s=this.currentTime-k*(this.playbackSpeed>=0?1:-1),t=this.playbackSpeed>=0?s<0:s>e;this.currentTime=Math.max(s,0),"finished"===this.state&&null===this.holdTime&&(this.currentTime=e);let u=this.currentTime,v=d;if(m){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,m+1))%2&&("reverse"===n?(c=1-c,o&&(c-=o/h)):"mirror"===n&&(v=g)),u=i(0,1,c)*h}t?(this.delayState.value=l[0],c=this.delayState):c=v.next(u),f&&!t&&(c.value=f(c.value));let{done:w}=c;t||null===j||(w=this.playbackSpeed>=0?this.currentTime>=e:this.currentTime<=0);let x=null===this.holdTime&&("finished"===this.state||"running"===this.state&&w);return x&&p!==cW&&(c.value=a0(l,this.options,r,this.speed)),q&&q(c.value),x&&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=aS(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 cV(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(bc.now()),this.playbackSpeed=a,b&&this.driver&&(this.time=this.currentTime/1e3)}play(){if(this.isStopped)return;let{driver:a=cN,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(bc.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 dh={anticipate:c5,backInOut:c4,circInOut:c8};class di extends a8{constructor(a){!function(a){"string"==typeof a.ease&&a.ease in dh&&(a.ease=dh[a.ease])}(a),de(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 dg({...f,autoplay:!1}),h=Math.max(10,bc.now()-this.startTime),j=i(0,10,h-10),k=g.sample(h).value,{name:l}=this.options;e&&l&&aW(e,l,k),b.setWithVelocity(g.sample(Math.max(0,h-j)).value,k,j),g.stop()}}let dj=(a,b)=>"zIndex"!==b&&!!("number"==typeof a||Array.isArray(a)||"string"==typeof a&&(J.test(a)||"0"===a)&&!a.startsWith("url("));function dk(a){a.duration=0,a.type="keyframes"}let dl=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/,dm=new Set(["color","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"]),dn=aX(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));class dp extends a1{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=bc.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||aM;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=bc.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=dj(e,b),h=dj(f,b);return aa(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||a7(c))&&d)}(a,f,g,h)&&(l=!1,(az.instantAnimations||!i)&&k?.(a0(a,c,b)),a[0]=a[a.length-1],dk(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 dn()&&c&&(a9.has(c)||dm.has(c)&&function(a){for(let b=0;b<a.length;b++)if("string"==typeof a[b]&&dl.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 di({...m,element:o})}catch{e=new dg(m)}else e=new dg(m);e.finished.then(()=>{this.notifyFinished()}).catch(ay),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(),aJ=!0,aL(),aK(),aJ=!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 dq={type:"spring",stiffness:500,damping:25,restSpeed:10},dr={type:"keyframes",duration:.8},ds={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},dt=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]),du=(a,b,c,d={},e,f)=>g=>{let i=cv(d,a)||{},j=i.delay||d.delay||0,{elapsed:k=0}=d;k-=aS(j);let l={keyframes:Array.isArray(c)?c:[null,c],ease:"easeOut",velocity:b.getVelocity(),...i,delay:-k,onUpdate:a=>{b.set(a),i.onUpdate&&i.onUpdate(a)},onComplete:()=>{g(),i.onComplete&&i.onComplete()},name:a,motionValue:b,element:f?void 0:e};!function(a){for(let b in a)if(!dt.has(b))return!0;return!1}(i)&&Object.assign(l,((a,{keyframes:b})=>b.length>2?dr:h.has(a)?a.startsWith("scale")?{type:"spring",stiffness:550,damping:0===b[1]?2*Math.sqrt(550):30,restSpeed:10}:dq:ds)(a,l)),l.duration&&(l.duration=aS(l.duration)),l.repeatDelay&&(l.repeatDelay=aS(l.repeatDelay)),void 0!==l.from&&(l.keyframes[0]=l.from);let m=!1;if(!1!==l.type&&(0!==l.duration||l.repeatDelay)||(dk(l),0===l.delay&&(m=!0)),(az.instantAnimations||az.skipAnimations||e?.shouldSkipAnimations||i.skipAnimations)&&(m=!0,dk(l),l.delay=0),l.allowFlatten=!i.type&&!i.ease,m&&!f&&void 0!==b.get()){let a=a0(l.keyframes,i);if(void 0!==a)return void aC.update(()=>{l.onUpdate(a),l.onComplete()})}return i.isSync?new dg(l):new dp(l)};function dv(a,b,{delay:c=0,transitionOverride:d,type:e}={}){let{transition:f,transitionEnd:g,...h}=b,i=a.getDefaultTransition();f=f?cu(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,...cv(f||{},b)};k&&(g.skipAnimations=!0);let i=d.get();if(void 0!==i&&!d.isAnimating()&&!Array.isArray(e)&&e===i&&!g.velocity){aC.update(()=>d.set(e));continue}let n=!1;if(window.MotionHandoffAnimation){let c=a.props[cy];if(c){let a=window.MotionHandoffAnimation(c,b,aC);null!==a&&(g.startTime=a,n=!0)}}cx(a,b);let o=j??a.shouldReduceMotion;d.start(du(b,d,e,o&&Y.has(b)?{type:!1}:g,a,n));let p=d.animation;p&&l.push(p)}if(g){let b=()=>aC.update(()=>{g&&function(a,b){let{transitionEnd:c={},transition:d={},...e}=ct(a,b)||{};for(let b in e={...e,...c}){var f;let c=cw(f=e[b])?f[f.length-1]||0:f;a.hasValue(b)?a.getValue(b).set(c):a.addValue(b,bg(c))}}(a,g)});l.length?Promise.all(l).then(b):b()}return l}function dw(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 dx(a,b,c={}){let d=ct(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(dv(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(dx(i,b,{...g,delay:c+("function"==typeof d?0:d)+dw(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 dy=bm.length;function dz(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 dA=[...bl].reverse(),dB=bl.length;function dC(a=!1){return{isActive:a,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function dD(){return{animate:dC(!0),whileInView:dC(),whileHover:dC(),whileTap:dC(),whileDrag:dC(),whileFocus:dC(),exit:dC()}}class dE extends cs{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=>dx(a,b,c)));else if("string"==typeof b)d=dx(a,b,c);else{let e="function"==typeof b?ct(a,b,c.custom):b;d=Promise.all(dv(a,e,c))}return d.then(()=>{a.notify("AnimationComplete",b)})})(a,b,c))),c=dD(),d=!0,e=!1,f=b=>(c,d)=>{let e=ct(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<dy;a++){let d=bm[a],e=b.props[d];(bk(e)||!1===e)&&(c[d]=e)}return c}(a.parent)||{},j=[],k=new Set,l={},m=1/0;for(let b=0;b<dB;b++){var n,o;let p=dA[b],q=c[p],r=void 0!==h[p]?h[p]:i[p],s=bk(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||bj(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)&&!dz(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))(cw(b)&&cw(c)?!dz(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=ct(d,b);if(d.enteringChildren&&e){let{delayChildren:b}=e.transition||{};c.delay=dw(d.enteringChildren,a,b)}}return{animation:b,options:c}}))}if(k.size){let b={};if("boolean"!=typeof h.initial){let c=ct(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=dD(),e=!0}}}(a))}updateAnimationControlsSubscription(){let{animate:a}=this.node.getProps();bj(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 dF=0;class dG extends cs{constructor(){super(...arguments),this.id=dF++,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=ct(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 dH={x:!1,y:!1};function dI(a){return[a("x"),a("y")]}function dJ(a){return a.max-a.min}function dK(a,b,c,d=.5){a.origin=d,a.originPoint=bM(b.min,b.max,a.origin),a.scale=dJ(c)/dJ(b),a.translate=bM(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 dL(a,b,c,d){dK(a.x,b.x,c.x,d?d.originX:void 0),dK(a.y,b.y,c.y,d?d.originY:void 0)}function dM(a,b,c,d=0){a.min=(d?bM(c.min,c.max,d):c.min)+b.min,a.max=a.min+dJ(b)}function dN(a,b,c,d=0){let e=d?bM(c.min,c.max,d):c.min;a.min=b.min-e,a.max=a.min+dJ(b)}function dO(a,b,c,d){dN(a.x,b.x,c.x,d?.x),dN(a.y,b.y,c.y,d?.y)}let dP=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]),dQ=new Set(["INPUT","SELECT","TEXTAREA"]);function dR(a,b,c,d={passive:!0}){return a.addEventListener(b,c,d),()=>a.removeEventListener(b,c,d)}var dS=c(8553);function dT(a){return(0,dS.G)(a)&&"ownerSVGElement"in a}function dU(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 dV=new WeakMap,dW=(a,b,c)=>(d,e)=>e&&e[0]?e[0][a+"Size"]:dT(d)&&"getBBox"in d?d.getBBox()[b]:d[c],dX=dW("inline","width","offsetWidth"),dY=dW("block","height","offsetHeight");function dZ({target:a,borderBoxSize:b}){dV.get(a)?.forEach(c=>{c(a,{get width(){return dX(a,b)},get height(){return dY(a,b)}})})}function d$(a){a.forEach(dZ)}let d_=new Set;function d0(a,b){return"function"==typeof a?(d_.add(a),f||(f=()=>{let a={get width(){return window.innerWidth},get height(){return window.innerHeight}};d_.forEach(b=>b(a))},window.addEventListener("resize",f)),()=>{d_.delete(a),d_.size||"function"!=typeof f||(window.removeEventListener("resize",f),f=void 0)}):function(a,b){e||"undefined"!=typeof ResizeObserver&&(e=new ResizeObserver(d$));let c=dU(a);return c.forEach(a=>{let c=dV.get(a);c||(c=new Set,dV.set(a,c)),c.add(b),e?.observe(a)}),()=>{c.forEach(a=>{let c=dV.get(a);c?.delete(b),c?.size||e?.unobserve(a)})}}(a,b)}let d1=a=>"mouse"===a.pointerType?"number"!=typeof a.button||a.button<=0:!1!==a.isPrimary;function d2(a){return{point:{x:a.pageX,y:a.pageY}}}function d3(a,b,c,d){return dR(a,b,a=>d1(a)&&c(a,d2(a)),d)}let d4=({current:a})=>a?a.ownerDocument.defaultView:null;function d5(a){return a&&"object"==typeof a&&Object.prototype.hasOwnProperty.call(a,"current")}let d6=(a,b)=>Math.abs(a-b),d7=new Set(["auto","scroll"]);class d8{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=d9(this.lastRawMoveEventInfo,this.transformPagePoint));let a=eb(this.lastMoveEventInfo,this.history),b=null!==this.startEvent,c=function(a,b){return Math.sqrt(d6(a.x,b.x)**2+d6(a.y,b.y)**2)}(a.offset,{x:0,y:0})>=this.distanceThreshold;if(!b&&!c)return;let{point:d}=a,{timestamp:e}=aE;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=d9(b,this.transformPagePoint),aC.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=eb("pointercancel"===a.type?this.lastMoveEventInfo:d9(b,this.transformPagePoint),this.history);this.startEvent&&c&&c(a,f),d&&d(a,f)},!d1(a))return;this.dragSnapToOrigin=e,this.handlers=b,this.transformPagePoint=c,this.distanceThreshold=f,this.contextWindow=d||window;let h=d9(d2(a),this.transformPagePoint),{point:i}=h,{timestamp:j}=aE;this.history=[{...i,timestamp:j}];let{onSessionStart:k}=b;k&&k(a,eb(h,this.history));let l={passive:!0,capture:!0};this.removeListeners=cz(d3(this.contextWindow,"pointermove",this.handlePointerMove,l),d3(this.contextWindow,"pointerup",this.handlePointerUp,l),d3(this.contextWindow,"pointercancel",this.handlePointerUp,l)),g&&this.startScrollTracking(g)}startScrollTracking(a){let b=a.parentElement;for(;b;){let a=getComputedStyle(b);(d7.has(a.overflowX)||d7.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),aC.update(this.updatePoint,!0))}updateHandlers(a){this.handlers=a}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),aD(this.updatePoint)}}function d9(a,b){return b?{point:b(a.point)}:a}function ea(a,b){return{x:a.x-b.x,y:a.y-b.y}}function eb({point:a},b){return{point:a,delta:ea(a,ec(b)),offset:ea(a,b[0]),velocity:function(a,b){if(a.length<2)return{x:0,y:0};let c=a.length-1,d=null,e=ec(a);for(;c>=0&&(d=a[c],!(e.timestamp-d.timestamp>aS(.1)));)c--;if(!d)return{x:0,y:0};d===a[0]&&a.length>2&&e.timestamp-d.timestamp>2*aS(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 ec(a){return a[a.length-1]}function ed(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 ee(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 ef(a,b,c){return{min:eg(a,b),max:eg(a,c)}}function eg(a,b){return"number"==typeof a?a:a[b]||0}let eh=new WeakMap;class ei{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=W(),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(d2(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(dH[a])return null;else return dH[a]=!0,()=>{dH[a]=!1};return dH.x||dH.y?null:(dH.x=dH.y=!0,()=>{dH.x=dH.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),dI(a=>{let b=this.getAxisMotionValue(a).get()||0;if(w.test(b)){let{projection:c}=this.visualElement;if(c&&c.layout){let d=c.layout.layoutBox[a];d&&(b=dJ(d)*(parseFloat(b)/100))}}this.originPoint[a]=b}),e&&aC.update(()=>e(a,b),!1,!0),cx(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&&aC.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 d8(a,{onSessionStart:e,onStart:f,onMove:g,onSessionEnd:h,resumeAnimation:i},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:j,distanceThreshold:c,contextWindow:d4(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&&aC.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||!ek(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?bM(b,a,d.min):Math.max(a,b):void 0!==c&&a>c&&(a=d?bM(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&&d5(a)?this.constraints||(this.constraints=this.resolveRefConstraints()):a&&c?this.constraints=function(a,{top:b,left:c,bottom:d,right:e}){return{x:ed(a.x,c,e),y:ed(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:ef(a,"left","right"),y:ef(a,"top","bottom")}}(b),d!==this.constraints&&!d5(a)&&c&&this.constraints&&!this.hasMutatedConstraints&&dI(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||!d5(b))return!1;let d=b.current;ab(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=b2(a,c),{scroll:e}=b;return e&&(b$(d.x,e.offset.x),b$(d.y,e.offset.y)),d}(d,e.root,this.visualElement.getTransformPagePoint()),g=(a=e.layout.layoutBox,{x:ee(a.x,f.x),y:ee(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=bS(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(dI(g=>{if(!ek(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 cx(this.visualElement,a),c.start(du(a,c,0,b,this.visualElement,!1))}stopAnimation(){dI(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){dI(b=>{let{drag:c}=this.getProps();if(!ek(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]-bM(c,f,.5)+g)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:a,dragConstraints:b}=this.getProps(),{projection:c}=this.visualElement;if(!d5(b)||!c||!this.constraints)return;this.stopAnimation();let d={x:0,y:0};dI(a=>{let b=this.getAxisMotionValue(a);if(b&&!1!==this.constraints){let c=b.get();d[a]=function(a,b){let c=.5,d=dJ(a),e=dJ(b);return e>d?c=db(b.min,b.max-d,a.min):d>e&&(c=db(a.min,a.max-e,b.min)),i(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(),dI(b=>{if(!ek(b,a,null))return;let c=this.getAxisMotionValue(b),{min:e,max:f}=this.constraints[b];c.set(bM(e,f,d[b]))}),this.visualElement.render()}addListeners(){let a;if(!this.visualElement.current)return;eh.set(this.visualElement,this);let b=this.visualElement.current,c=d3(b,"pointerdown",a=>{let{drag:c,dragListener:d=!0}=this.getProps(),e=a.target,f=e!==b&&(dQ.has(e.tagName)||!0===e.isContentEditable);c&&d&&!f&&this.start(a)}),d=()=>{let{dragConstraints:c}=this.getProps();d5(c)&&c.current&&(this.constraints=this.resolveRefConstraints(),a||(a=function(a,b,c){let d=d0(a,ej(c)),e=d0(b,ej(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()),aC.read(d);let g=dR(window,"resize",()=>this.scalePositionWithinConstraints()),h=e.addEventListener("didUpdate",({delta:a,hasLayoutChanged:b})=>{this.isDragging&&b&&(dI(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 ej(a){let b=!0;return()=>{if(b){b=!1;return}a()}}function ek(a,b,c){return(!0===b||b===a)&&(null===c||c===a)}class el extends cs{constructor(a){super(a),this.removeGroupControls=ay,this.removeListeners=ay,this.controls=new ei(a)}mount(){let{dragControls:a}=this.node.getProps();a&&(this.removeGroupControls=a.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ay}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 em=a=>(b,c)=>{a&&aC.update(()=>a(b,c),!1,!0)};class en extends cs{constructor(){super(...arguments),this.removePointerDownListener=ay}onPointerDown(a){this.session=new d8(a,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:d4(this.node)})}createPanHandlers(){let{onPanSessionStart:a,onPanStart:b,onPan:c,onPanEnd:d}=this.node.getProps();return{onSessionStart:em(a),onStart:em(b),onMove:em(c),onEnd:(a,b)=>{delete this.session,d&&aC.postRender(()=>d(a,b))}}}mount(){this.removePointerDownListener=d3(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 eo={hasAnimatedSinceResize:!0,hasEverUpdated:!1};var ep=c(85862);let eq=(0,b4.createContext)({}),er=!1;class es extends b4.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),er&&e.root.didUpdate(),e.addEventListener("animationComplete",()=>{this.safeToRemove()}),e.setOptions({...e.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),eo.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}),er=!0,d||a.layoutDependency!==b||void 0===b||a.isPresent!==e?f.willUpdate():this.safeToRemove(),a.isPresent!==e&&(e?f.promote():f.relegate()||aC.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(),ba.postRender(()=>{!c.currentAnimation&&c.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:a,layoutGroup:b,switchLayoutGroup:c}=this.props,{projection:d}=a;er=!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 et(a){let[b,c]=(0,ep.xQ)(),d=(0,b4.useContext)(b8.L);return(0,b7.jsx)(es,{...a,layoutGroup:d,switchLayoutGroup:(0,b4.useContext)(eq),isPresent:b,safeToRemove:c})}let eu={value:null,addProjectionMetrics:null},ev=bJ.length,ew=a=>"string"==typeof a?parseFloat(a):a,ex=a=>"number"==typeof a||x.test(a);function ey(a,b){return void 0!==a[b]?a[b]:a.borderRadius}let ez=eB(0,.5,c7),eA=eB(.5,.95,ay);function eB(a,b,c){return d=>d<a?0:d>b?1:c(db(a,b,d))}function eC(a,b){a.min=b.min,a.max=b.max}function eD(a,b){eC(a.x,b.x),eC(a.y,b.y)}function eE(a,b){a.translate=b.translate,a.scale=b.scale,a.originPoint=b.originPoint,a.origin=b.origin}function eF(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 eG(a,b,[c,d,e],f,g){!function(a,b=0,c=1,d=.5,e,f=a,g=a){if(w.test(b)&&(b=parseFloat(b),b=bM(g.min,g.max,b/100)-g.min),"number"!=typeof b)return;let h=bM(f.min,f.max,d);a===f&&(h-=b),a.min=eF(a.min,b,c,h,e),a.max=eF(a.max,b,c,h,e)}(a,b[c],b[d],b[e],b.scale,f,g)}let eH=["x","scaleX","originX"],eI=["y","scaleY","originY"];function eJ(a,b,c,d){eG(a.x,b,eH,c?c.x:void 0,d?d.x:void 0),eG(a.y,b,eI,c?c.y:void 0,d?d.y:void 0)}function eK(a){return 0===a.translate&&1===a.scale}function eL(a){return eK(a.x)&&eK(a.y)}function eM(a,b){return a.min===b.min&&a.max===b.max}function eN(a,b){return Math.round(a.min)===Math.round(b.min)&&Math.round(a.max)===Math.round(b.max)}function eO(a,b){return eN(a.x,b.x)&&eN(a.y,b.y)}function eP(a){return dJ(a.x)/dJ(a.y)}function eQ(a,b){return a.translate===b.translate&&a.scale===b.scale&&a.originPoint===b.originPoint}class eR{constructor(){this.members=[]}add(a){aT(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||(aU(this.members,c),c.unmount())}a.scheduleRender()}remove(a){if(aU(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 eS=(a,b)=>a.depth-b.depth;class eT{constructor(){this.children=[],this.isDirty=!1}add(a){aT(this.children,a),this.isDirty=!0}remove(a){aU(this.children,a),this.isDirty=!0}forEach(a){this.isDirty&&this.children.sort(eS),this.isDirty=!1,this.children.forEach(a)}}let eU={nodes:0,calculatedTargetDeltas:0,calculatedProjections:0},eV=["","X","Y","Z"],eW=0;function eX(a,b,c,d){let{latestValues:e}=b;e[a]&&(c[a]=e[a],b.setStaticValue(a,0),d&&(d[a]=0))}function eY({attachResizeListener:a,defaultParent:b,measureScroll:c,checkIsScrollRoot:d,resetTransform:e}){return class{constructor(a={},c=b?.()){this.id=eW++,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,eu.value&&(eU.nodes=eU.calculatedTargetDeltas=eU.calculatedProjections=0),this.nodes.forEach(e_),this.nodes.forEach(e8),this.nodes.forEach(e9),this.nodes.forEach(e0),eu.addProjectionMetrics&&eu.addProjectionMetrics(eU)},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 eT)}addEventListener(a,b){return this.eventHandlers.has(a)||this.eventHandlers.set(a,new aV),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=dT(b)&&!(dT(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;aC.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=bc.now(),d=({timestamp:b})=>{let e=b-c;e>=250&&(aD(d),a(e-250))};return aC.setup(d,!0),()=>aD(d)}(e,250),eo.hasAnimatedSinceResize&&(eo.hasAnimatedSinceResize=!1,this.nodes.forEach(e7)))})}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()||ff,{onLayoutAnimationStart:g,onLayoutAnimationComplete:h}=e.getProps(),i=!this.targetLayout||!eO(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={...cv(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||e7(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(),aD(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(fa),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[cy];if(window.MotionHasOptimisedAnimation(d,"transform")){let{layout:a,layoutId:c}=b.options;window.MotionCancelOptimisedAnimation(d,"transform",aC,!(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(e3),this.nodes.forEach(e2);return}if(this.animationId<=this.animationCommitId)return void this.nodes.forEach(e4);this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(e5),this.nodes.forEach(e6),this.nodes.forEach(eZ),this.nodes.forEach(e$)):this.nodes.forEach(e4),this.clearAllSnapshots();let a=bc.now();aE.delta=i(0,1e3/60,a-aE.timestamp),aE.timestamp=a,aE.isProcessing=!0,aF.update.process(aE),aF.preRender.process(aE),aF.render.process(aE),aE.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,ba.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(e1),this.sharedNodes.forEach(fb)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,aC.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){aC.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){!this.snapshot&&this.instance&&(this.snapshot=this.measure(),!this.snapshot||dJ(this.snapshot.measuredBox.x)||dJ(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=W()),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&&!eL(this.projectionDelta),c=this.getTransformTemplate(),d=c?c(this.latestValues,""):void 0,f=d!==this.prevTransformTemplateValue;a&&this.instance&&(b||bV(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)),fi((b=d).x),fi(b.y),{animationId:this.root.animationId,measuredBox:c,layoutBox:d,latestValues:{},source:this.id}}measurePageBox(){let{visualElement:a}=this.options;if(!a)return W();let b=a.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(fk))){let{scroll:a}=this.root;a&&(b$(b.x,a.offset.x),b$(b.y,a.offset.y))}return b}removeElementScroll(a){let b=W();if(eD(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&&eD(b,a),b$(b.x,e.offset.x),b$(b.y,e.offset.y))}return b}applyTransform(a,b=!1,c){let d=c||W();eD(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&&(b$(d.x,-c.scroll.offset.x),b$(d.y,-c.scroll.offset.y)),bV(c.latestValues)&&b1(d,c.latestValues,c.layout?.layoutBox)}return bV(this.latestValues)&&b1(d,this.latestValues,this.layout?.layoutBox),d}removeTransform(a){let b=W();eD(b,a);for(let a=0;a<this.path.length;a++){let c,d=this.path[a];bV(d.latestValues)&&(d.instance&&(bU(d.latestValues)&&d.updateSnapshot(),eD(c=W(),d.measurePageBox())),eJ(b,d.latestValues,d.snapshot?.layoutBox,c))}return bV(this.latestValues)&&eJ(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!==aE.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=aE.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=W(),this.targetWithTransforms=W()),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,dM(g.x,h.x,i.x,j?.x),dM(g.y,h.y,i.y,j?.y)}else this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):eD(this.target,this.layout.layoutBox),bZ(this.target,this.targetDelta)):eD(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),eu.value&&eU.calculatedTargetDeltas++}}getClosestProjectingParent(){if(!(!this.parent||bU(this.parent.latestValues)||bW(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=W(),this.relativeTargetOrigin=W(),dO(this.relativeTargetOrigin,b,c,this.options.layoutAnchor||void 0),eD(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===aE.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;eD(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&&(b$(a.x,-e.scroll.offset.x),b$(a.y,-e.scroll.offset.y)),f&&(b.x*=f.x.scale,b.y*=f.y.scale,bZ(a,f)),d&&bV(e.latestValues)&&b1(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=W());let{target:h}=a;if(!h){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}this.projectionDelta&&this.prevProjectionDelta?(eE(this.prevProjectionDelta.x,this.projectionDelta.x),eE(this.prevProjectionDelta.y,this.projectionDelta.y)):this.createProjectionDeltas(),dL(this.projectionDelta,this.layoutCorrected,h,this.latestValues),this.treeScale.x===f&&this.treeScale.y===g&&eQ(this.projectionDelta.x,this.prevProjectionDelta.x)&&eQ(this.projectionDelta.y,this.prevProjectionDelta.y)||(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",h)),eu.value&&eU.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=U(),this.projectionDelta=U(),this.projectionDeltaWithTransform=U()}setAnimationOrigin(a,b=!1,c){let d,e=this.snapshot,f=e?e.latestValues:{},g={...this.latestValues},h=U();this.relativeParent&&this.relativeParent.options.layoutRoot||(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!b;let i=W(),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(fe));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=bM(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=bM(a.y.scale,1,c),h.y.origin=a.y.origin,h.y.originPoint=a.y.originPoint):(fc(h.x,a.x,c),fc(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;dO(i,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),p=this.relativeTarget,q=this.relativeTargetOrigin,r=i,s=c,fd(p.x,q.x,r.x,s),fd(p.y,q.y,r.y,s),d&&(k=this.relativeTarget,o=d,eM(k.x,o.x)&&eM(k.y,o.y))&&(this.isProjectionDirty=!1),d||(d=W()),eD(d,this.relativeTarget)}j&&(this.animationValues=g,function(a,b,c,d,e,f){e?(a.opacity=bM(0,c.opacity??1,ez(d)),a.opacityExit=bM(b.opacity??1,0,eA(d))):f&&(a.opacity=bM(b.opacity??1,c.opacity??1,d));for(let e=0;e<ev;e++){let f=bJ[e],g=ey(b,f),h=ey(c,f);(void 0!==g||void 0!==h)&&(g||(g=0),h||(h=0),0===g||0===h||ex(g)===ex(h)?(a[f]=Math.max(bM(ew(g),ew(h),d),0),(w.test(h)||w.test(g))&&(a[f]+="%")):a[f]=h)}(b.rotate||c.rotate)&&(a.rotate=bM(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&&(aD(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=aC.update(()=>{eo.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=bg(0)),this.motionValue.jump(0,!1),this.currentAnimation=function(a,b,c){let d=X(a)?a:bg(a);return d.start(du("",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&&fj(this.options.animationType,this.layout.layoutBox,d.layoutBox)){c=this.target||W();let b=dJ(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+b;let d=dJ(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+d}eD(b,c),b1(b,e),dL(this.projectionDeltaWithTransform,this.layoutCorrected,b,e)}}registerSharedNode(a,b){this.sharedNodes.has(a)||this.sharedNodes.set(a,new eR),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&&eX("z",a,d,this.animationValues);for(let b=0;b<eV.length;b++)eX(`rotate${eV[b]}`,a,d,this.animationValues),eX(`skew${eV[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=ci(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=ci(b?.pointerEvents)||""),this.hasProjected&&!bV(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,bN){if(void 0===e[b])continue;let{correct:c,applyTo:g,isCSSVariable:h}=bN[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?ci(b?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(a=>a.currentAnimation?.stop()),this.root.nodes.forEach(e2),this.root.sharedNodes.clear()}}}function eZ(a){a.updateLayout()}function e$(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)dI(a=>{let d=f?b.measuredBox[a]:b.layoutBox[a],e=dJ(d);d.min=c[a].min,d.max=d.min+e});else if("x"===e||"y"===e){let a="x"===e?"y":"x";eC(f?b.measuredBox[a]:b.layoutBox[a],c[a])}else fj(e,b.layoutBox,c)&&dI(d=>{let e=f?b.measuredBox[d]:b.layoutBox[d],g=dJ(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=U();dL(g,c,b.layoutBox);let h=U();f?dL(h,a.applyTransform(d,!0),b.measuredBox):dL(h,c,b.layoutBox);let i=!eL(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=W();dO(h,b.layoutBox,e.layoutBox,g);let i=W();dO(i,c,f.layoutBox,g),eO(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 e_(a){eu.value&&eU.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 e0(a){a.isProjectionDirty=a.isSharedProjectionDirty=a.isTransformDirty=!1}function e1(a){a.clearSnapshot()}function e2(a){a.clearMeasurements()}function e3(a){a.isLayoutDirty=!0,a.updateLayout()}function e4(a){a.isLayoutDirty=!1}function e5(a){a.isAnimationBlocked&&a.layout&&!a.isLayoutDirty&&(a.snapshot=a.layout,a.isLayoutDirty=!0)}function e6(a){let{visualElement:b}=a.options;b&&b.getProps().onBeforeLayoutMeasure&&b.notify("BeforeLayoutMeasure"),a.resetTransform()}function e7(a){a.finishAnimation(),a.targetDelta=a.relativeTarget=a.target=void 0,a.isProjectionDirty=!0}function e8(a){a.resolveTargetDelta()}function e9(a){a.calcProjection()}function fa(a){a.resetSkewAndRotation()}function fb(a){a.removeLeadSnapshot()}function fc(a,b,c){a.translate=bM(b.translate,0,c),a.scale=bM(b.scale,1,c),a.origin=b.origin,a.originPoint=b.originPoint}function fd(a,b,c,d){a.min=bM(b.min,c.min,d),a.max=bM(b.max,c.max,d)}function fe(a){return a.animationValues&&void 0!==a.animationValues.opacityExit}let ff={duration:.45,ease:[.4,0,.1,1]},fg=a=>"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(a),fh=fg("applewebkit/")&&!fg("chrome/")?Math.round:ay;function fi(a){a.min=fh(a.min),a.max=fh(a.max)}function fj(a,b,c){return"position"===a||"preserve-aspect"===a&&!(.2>=Math.abs(eP(b)-eP(c)))}function fk(a){return a!==a.root&&a.scroll?.wasRoot}let fl=eY({attachResizeListener:(a,b)=>dR(a,"resize",b),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),fm={current:void 0},fn=eY({measureScroll:a=>({x:a.scrollLeft,y:a.scrollTop}),defaultParent:()=>{if(!fm.current){let a=new fl({});a.mount(window),a.setOptions({layoutScroll:!0}),fm.current=a}return fm.current},resetTransform:(a,b)=>{a.style.transform=void 0!==b?b:"none"},checkIsScrollRoot:a=>"fixed"===window.getComputedStyle(a).position});function fo(a,b){let c=dU(a),d=new AbortController;return[c,{passive:!0,...b,signal:d.signal},()=>d.abort()]}function fp(a,b,c){let{props:d}=a;a.animationState&&d.whileHover&&a.animationState.setActive("whileHover","Start"===c);let e=d["onHover"+c];e&&aC.postRender(()=>e(b,d2(b)))}class fq extends cs{mount(){let{current:a}=this.node;a&&(this.unmount=function(a,b,c={}){let[d,e,f]=fo(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||dH.x||dH.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)=>(fp(this.node,b,"Start"),a=>fp(this.node,a,"End"))))}unmount(){}}class fr extends cs{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=cz(dR(this.node.current,"focus",()=>this.onFocus()),dR(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}var fs=c(15337);let ft=(a,b)=>!!b&&(a===b||ft(a,b.parentElement)),fu=new WeakSet;function fv(a){return b=>{"Enter"===b.key&&a(b)}}function fw(a,b){a.dispatchEvent(new PointerEvent("pointer"+b,{isPrimary:!0,bubbles:!0}))}function fx(a){return d1(a)&&!(dH.x||dH.y)}let fy=new WeakSet;function fz(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&&aC.postRender(()=>e(b,d2(b)))}class fA extends cs{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]=fo(a,c),g=a=>{let d=a.currentTarget;if(!fx(a)||fy.has(a))return;fu.add(d),c.stopPropagation&&fy.add(a);let f=b(d,a),g={...e,capture:!0},h=(a,b)=>{window.removeEventListener("pointerup",i,g),window.removeEventListener("pointercancel",j,g),fu.has(d)&&fu.delete(d),fx(a)&&"function"==typeof f&&f(a,{success:b})},i=a=>{h(a,d===window||d===document||c.useGlobalTarget||ft(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),(0,fs.s)(a))&&(a.addEventListener("focus",a=>((a,b)=>{let c=a.currentTarget;if(!c)return;let d=fv(()=>{if(fu.has(c))return;fw(c,"down");let a=fv(()=>{fw(c,"up")});c.addEventListener("keyup",a,b),c.addEventListener("blur",()=>fw(c,"cancel"),b)});c.addEventListener("keydown",d,b),c.addEventListener("blur",()=>c.removeEventListener("keydown",d),b)})(a,e)),dP.has(a.tagName)||!0===a.isContentEditable||a.hasAttribute("tabindex")||(a.tabIndex=0))}),f}(a,(a,b)=>(fz(this.node,b,"Start"),(a,{success:b})=>fz(this.node,a,b?"End":"Cancel")),{useGlobalTarget:b,stopPropagation:c?.tap===!1})}unmount(){}}let fB=new WeakMap,fC=new WeakMap,fD=a=>{let b=fB.get(a.target);b&&b(a)},fE=a=>{a.forEach(fD)},fF={some:0,all:1};class fG extends cs{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:fF[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;fC.has(c)||fC.set(c,{});let d=fC.get(c),e=JSON.stringify(b);return d[e]||(d[e]=new IntersectionObserver(fE,{root:a,...b})),d[e]}(b);return fB.set(a,c),d.observe(a),()=>{fB.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 fH=function(a,b){if("undefined"==typeof Proxy)return cr;let c=new Map,d=(c,d)=>cr(c,d,a,b);return new Proxy((a,b)=>d(a,b),{get:(e,f)=>"create"===f?d:(c.has(f)||c.set(f,cr(f,void 0,a,b)),c.get(f))})}({animation:{Feature:dE},exit:{Feature:dG},inView:{Feature:fG},tap:{Feature:fA},focus:{Feature:fr},hover:{Feature:fq},pan:{Feature:en},drag:{Feature:el,ProjectionNode:fn,MeasureLayout:et},layout:{ProjectionNode:fn,MeasureLayout:et}},(a,b)=>b.isSVG??b6(a)?new bR(b):new b3(b,{allowProjection:a!==b4.Fragment}))},60283:(a,b,c)=>{c.d(b,{M:()=>e});var d=c(31768);function e(a){let b=(0,d.useRef)(null);return null===b.current&&(b.current=a()),b.current}},62792:(a,b,c)=>{c.d(b,{I:()=>g});var d=c(82384),e=c(79335),f=c(31768);function g(){d.r.current||(0,e.Uu)();let[a]=(0,f.useState)(d.O.current);return a}},75444:(a,b,c)=>{c.d(b,{Q:()=>d});let d=(0,c(31768).createContext)({transformPagePoint:a=>a,isStatic:!1,reducedMotion:"never"})},79335:(a,b,c)=>{c.d(b,{Uu:()=>f});var d=c(82384);let e="undefined"!=typeof window;function f(){if(d.r.current=!0,e)if(window.matchMedia){let a=window.matchMedia("(prefers-reduced-motion)"),b=()=>d.O.current=a.matches;a.addEventListener("change",b),b()}else d.O.current=!1}},82384:(a,b,c)=>{c.d(b,{O:()=>d,r:()=>e});let d={current:null},e={current:!1}},85862:(a,b,c)=>{c.d(b,{xQ:()=>f});var d=c(31768),e=c(56549);function f(a=!0){let b=(0,d.useContext)(e.t);if(null===b)return[!0,null];let{isPresent:c,onExitComplete:g,register:h}=b,i=(0,d.useId)(),j=(0,d.useCallback)(()=>a&&g&&g(i),[i,g,a]);return!c&&g?[!1,j]:[!0]}}};
@@ -0,0 +1,59 @@
1
+ "use strict";exports.id=1948,exports.ids=[1948],exports.modules={4907:(a,b,c)=>{c.d(b,{W8:()=>t,iB:()=>r,Jj:()=>l,jq:()=>o,s7:()=>n,tE:()=>p});var d=c(92116),e=c(67470);let{seal:f}=c(11900);var g=c(86143),h=c(4631),i=c(15115),j=c(1913),k=c(71992);function l(a){let[b,c]=a.split("/");if(!b||!c)throw Error(`Invalid GitHub repo slug: ${a}`);return{owner:b,repo:c}}function m(a,b,c){let e=(0,d.MR)(b),f=function(a){let b=a.trim();if(!b.startsWith("{"))return null;try{let a=JSON.parse(b);return"string"==typeof a.message?a:null}catch{return null}}(e),g=f?.message??e;return 403===a&&/workflow/i.test(g)&&(/scope/i.test(g)||/OAuth App/i.test(g))?j.aR:c?.workflowFileOperation&&404===a&&"Not Found"===g&&f?.documentation_url?.includes("create-or-update-file-contents")===!0?`${j.aR} (GitHub returned HTTP ${a}: Not Found.)`:f?.message?`GitHub API ${a}: ${f.message}`:e&&!e.startsWith("{")?`GitHub API ${a}: ${e}`:`GitHub API ${a}: request failed`}function n(a){return a instanceof e.OS?m(a.status,a.message):a instanceof Error?(0,d.MR)(a.message):(0,d.MR)(String(a))}function o(a){return a instanceof e.OS?new e.OS(a.status,m(a.status,a.message),{retryAfterSeconds:a.retryAfterSeconds,rateLimitRemaining:a.rateLimitRemaining,rateLimitResetEpochSeconds:a.rateLimitResetEpochSeconds,requestId:a.requestId}):a&&"object"==typeof a&&"code"in a&&"recoverable"in a&&a instanceof Error?a:Error(n(a))}function p(a){if(a instanceof e.OS){let b=m(a.status,a.message,{workflowFileOperation:!0});return b===j.aR||b.startsWith(`${j.aR} `)?`${j.ge}${b}`:b}return n(a)}class q{constructor(a){this.client=a instanceof e.jh?a:new e.jh(a)}async checkHarnessRepoAccess(a){try{let{owner:b,repo:c}=l(a),d=await this.client.getRepository(b,c);if(d.permissions?.admin===!0||d.permissions?.maintain===!0)return"available";return"denied"}catch(a){if(a instanceof e.OS)return(0,i.t_)(a.status);return"unknown"}}async listHarnessSecretStatuses(a){try{let{owner:b,repo:c}=l(a),d=await this.client.listActionsSecrets(b,c);return(0,i.qu)(d.secrets.map(a=>a.name),h.LY)}catch(a){if(a instanceof e.OS&&(401===a.status||403===a.status||404===a.status))return h.LY.map(a=>({name:a,status:"unknown"}));throw Error(n(a))}}async writeHarnessSecrets(a,b){let{owner:c,repo:d}=l(a),e=await this.client.getActionsPublicKey(c,d),g=new Set((await this.listHarnessSecretStatuses(a)).filter(a=>"present"===a.status).map(a=>a.name)),h=[];for(let a of b){let b=function(a,b){let c=f(Buffer.from(a,"utf8"),Buffer.from(b,"base64"));return Buffer.from(c).toString("base64")}(a.value,e.key);await this.client.upsertActionsSecret(c,d,a.name,b,e.key_id),h.push({name:a.name,status:g.has(a.name)?"updated":"created"})}return h}async writeHarnessVariables(a,b){let{owner:c,repo:d}=l(a),e=[];for(let a of b){let b=await this.client.upsertActionsVariable(c,d,a.name,a.value);e.push({name:a.name,status:b})}return e}async checkTargetWorkflowStatus(a){try{let{owner:b,repo:c}=l(a.targetRepoSlug),d=await this.client.getRepository(b,c),e=d.permissions?.push===!0||d.permissions?.admin===!0?"available":"denied",f=(await this.client.getBranchRef(b,c,a.productionBranch)).object.sha,h=await this.client.getRepositoryContent(b,c,a.workflowPath,a.productionBranch),i=h?this.client.decodeRepositoryContent(h):null,j=(0,g.DR)(i,a.intendedWorkflowContent);return{repoAccess:e,workflowStatus:j,productionBranchSha:f}}catch(a){if(a instanceof e.OS){if(404===a.status)return{repoAccess:"denied",workflowStatus:"unknown"};return{repoAccess:(0,i.t_)(a.status),workflowStatus:"unknown"}}throw Error(n(a))}}async applyTargetWorkflowPr(a){if(a.branchName===a.productionBranch)throw Error("Direct production branch writes are not allowed");let{owner:b,repo:c}=l(a.targetRepoSlug),d=await this.client.getRepositoryContent(b,c,a.workflowPath,a.productionBranch);if(d){let b=this.client.decodeRepositoryContent(d);if((0,g.nj)(b)===(0,g.nj)(a.workflowContent))return{outcome:"already-installed",branchName:a.branchName,directProductionBranchWrite:!1}}let f=(await this.client.getBranchRef(b,c,a.productionBranch)).object.sha,h=!0;try{await this.client.getBranchRef(b,c,a.branchName)}catch(a){if(a instanceof e.OS&&404===a.status)h=!1;else throw a}h||await this.client.createGitRef(b,c,a.branchName,f);let i=await this.client.getRepositoryContent(b,c,a.workflowPath,a.branchName),j=i?.sha,k=i?this.client.decodeRepositoryContent(i):null;return k&&(0,g.nj)(k)===(0,g.nj)(a.workflowContent)||await this.client.createOrUpdateRepositoryFile({owner:b,repo:c,path:a.workflowPath,branch:a.branchName,message:a.prTitle,content:a.workflowContent,sha:j}),this.resolveInstallPullRequestOutcome(a)}async resolveInstallPullRequestOutcome(a){let b=await this.findOpenInstallPullRequest(a);if(b)return{outcome:"pr-updated",branchName:a.branchName,prUrl:b.html_url,directProductionBranchWrite:!1};let{owner:c,repo:d}=l(a.targetRepoSlug),e=await this.client.createPullRequest({owner:c,repo:d,title:a.prTitle,head:a.branchName,base:a.productionBranch,body:a.prBody});return{outcome:"pr-created",branchName:a.branchName,prUrl:e.html_url,directProductionBranchWrite:!1}}async findOpenInstallPullRequest(a){let{owner:b,repo:c}=l(a.targetRepoSlug);return(await this.client.listPullRequests(b,c,{state:"open",base:a.productionBranch,head:`${b}:${a.branchName}`}))[0]}}function r(a){return new q({token:a})}class s{constructor(a){a instanceof e.jh?(this.client=a,this.token=""):(this.client=new e.jh(a),this.token=a.token)}mapRepositoryToMetadata(a,b,c){if("number"!=typeof c.id||!Number.isInteger(c.id)||c.id<=0)throw Error(`GitHub repository metadata for ${a}/${b} is missing a valid numeric repository ID.`);return{repositoryId:c.id,owner:a,repo:b,description:c.description??null,private:!0===c.private,visibility:c.visibility??(c.private?"private":"public"),isTemplate:!0===c.is_template,defaultBranch:c.default_branch??"main",permissions:{admin:c.permissions?.admin===!0,maintain:c.permissions?.maintain===!0,push:c.permissions?.push===!0}}}async resolveAuthenticatedUser(){let a=await this.client.getAuthenticatedUser();return{id:a.id,login:a.login}}async inspectTokenCapabilities(){let a=await this.client.inspectAuthenticatedUser(),b=(0,j.dI)(a.tokenType,a.oauthScopes),c="classic"===b&&0===a.oauthScopes.length;return{login:a.login,tokenType:b,hasRepoScope:(0,j.YN)(a.oauthScopes),hasWorkflowScope:(0,j.Rd)(a.oauthScopes),scopeAmbiguous:c}}async getRepositoryMetadata(a,b){try{let c=await this.client.getRepository(a,b);return this.mapRepositoryToMetadata(a,b,c)}catch(a){if(a instanceof e.OS&&404===a.status)return null;throw o(a)}}async getRepositoryMetadataById(a){try{let b=await this.client.getRepositoryById(a),c=b.full_name;if(!c||!c.includes("/"))throw Error(`GitHub repository ID ${a} returned invalid full_name metadata.`);let[d,e]=c.split("/");if(!d||!e)throw Error(`GitHub repository ID ${a} returned invalid full_name metadata.`);return this.mapRepositoryToMetadata(d,e,b)}catch(a){if(a instanceof e.OS&&404===a.status)return null;throw o(a)}}async getRepositoryDefaultBranchHead(a,b,c){return(await this.client.getBranchRef(a,b,c)).object.sha}async readRepositoryFileContent(a,b,c,d){let e=await this.client.getRepositoryContent(a,b,c,d);return e?this.client.decodeRepositoryContent(e):null}async createRepositoryFromTemplate(a){try{let b=await this.client.createRepositoryFromTemplate({templateOwner:a.templateOwner,templateRepo:a.templateRepo,owner:a.owner,name:a.name,description:a.description,private:a.private,includeAllBranches:a.includeAllBranches});return{repositoryId:b.id,fullName:b.full_name,defaultBranch:b.default_branch}}catch(a){throw o(a)}}async createUserRepository(a){try{let b=await this.client.createUserRepository({name:a.name,description:a.description,private:a.private,autoInit:a.autoInit});return{repositoryId:b.id,fullName:b.full_name,defaultBranch:b.default_branch}}catch(a){throw o(a)}}async createGitBlob(a){try{return await this.client.createGitBlob(a)}catch(a){throw o(a)}}async createGitTree(a){try{return{sha:(await this.client.createGitTree(a)).sha}}catch(a){throw o(a)}}async createGitCommit(a){try{let b=await this.client.createGitCommit(a);return{sha:b.sha,tree:b.tree,parents:b.parents}}catch(a){throw o(a)}}async getGitCommit(a,b,c){try{let d=await this.client.getGitCommit(a,b,c);return{sha:d.sha,tree:d.tree,parents:d.parents}}catch(a){throw o(a)}}async getGitRef(a,b,c){try{let d=await this.client.getGitRef(a,b,c);return{ref:d.ref,object:{sha:d.object.sha}}}catch(a){throw o(a)}}async updateGitRef(a){try{if(a.expectedSha){let b=await this.client.getGitRef(a.owner,a.repo,a.ref);if(b.object.sha===a.sha)return{ref:b.ref,object:{sha:a.sha}};if(b.object.sha!==a.expectedSha)throw Error(`Ref update rejected: expected parent HEAD ${a.expectedSha}, found ${b.object.sha}.`)}let b=await this.client.updateGitRef(a);return{ref:b.ref,object:{sha:b.object.sha}}}catch(a){throw o(a)}}async updateUserRepositoryDescription(a){try{await this.client.updateUserRepository(a)}catch(a){throw o(a)}}async writeRepositoryFile(a){try{return await this.client.createOrUpdateRepositoryFile({owner:a.owner,repo:a.repo,path:a.path,branch:a.branch,message:a.message,content:a.content,sha:a.sha})}catch(a){throw o(a)}}async pushHarnessSnapshotCommits(a){if(!this.token)throw Error("Live GitHub provisioning provider is missing a token for authenticated git push.");try{let b=await (0,k.T8)({auth:{remoteUrl:(0,k.MN)(a.owner,a.repo),token:this.token},owner:a.owner,repo:a.repo,defaultBranch:a.defaultBranch,expectedHeadSha:a.expectedHeadSha,initializedCommitSha:a.initializedCommitSha,snapshotRoot:a.snapshotRoot,manifest:a.manifest,operationId:a.operationId,buildMarkerContent:a.buildMarkerContent,existingSnapshotCommitSha:a.existingSnapshotCommitSha,timeoutMs:a.timeoutMs,onProgress:a.onProgress});return{snapshotCommitSha:b.snapshotCommitSha,markerCommitSha:b.markerCommitSha,snapshotGitTreeSha1:b.snapshotGitTreeSha1,pushCount:b.pushCount,timings:b.timings}}catch(a){throw o(a)}}}function t(a){return new s({token:a})}},7285:(a,b,c)=>{c.d(b,{Au:()=>h,Bt:()=>j,HF:()=>k,QX:()=>m,ro:()=>l});var d=c(73024),e=c(76760),f=c.n(e),g=c(73136);let h="p-dev-harness",i="P_DEV_PACKAGE_ROOT";function j(a){return a.startsWith("file://")?(0,g.fileURLToPath)(a):f().resolve(a)}function k(a){let b=f().resolve(f().dirname(j(a)));for(;;){let a=f().join(b,"package.json");if((0,d.existsSync)(a))try{if(JSON.parse((0,d.readFileSync)(a,"utf8")).name===h)return b}catch{}let c=f().dirname(b);if(c===b)break;b=c}throw Error(`Could not resolve ${h} package root from ${a}.`)}function l(a){return f().join(a,"workspace-snapshot")}function m(a=process.env){let b=a[i]?.trim();if(!b)throw Error(`${i} is required in packaged p-dev runtime.`);return function(a){let b,c=f().resolve(a),e=f().join(c,"package.json");if(!(0,d.existsSync)(e))throw Error(`${i} is not a valid ${h} package root (missing package.json): ${c}`);try{let a=JSON.parse((0,d.readFileSync)(e,"utf8"));b=a.name?.trim()}catch{throw Error(`${i} is not a valid ${h} package root (unreadable package.json): ${c}`)}if(b!==h)throw Error(`${i} must point to package name ${h}, found ${b??"(missing)"} at ${c}`);let g=l(c);if(!(0,d.existsSync)(g)||!(0,d.statSync)(g).isDirectory())throw Error(`${i} is missing the workspace-snapshot directory at ${g}`);return c}(b)}},8334:(a,b,c)=>{c.d(b,{Al:()=>d,Ig:()=>i,Q$:()=>h,bS:()=>e,i2:()=>f,ll:()=>g});let d=1,e="p-dev",f="workspace-snapshot",g="p-dev-workspace-snapshot",h=1,i="weston-uribe/agentic-product-development-harness"},13369:(a,b,c)=>{c.d(b,{C:()=>d,Gk:()=>h,H8:()=>e,TK:()=>j,UB:()=>l,_u:()=>g,dx:()=>i,y6:()=>k});let d={linearGuarantee:"optional-system-terminal",requiredForPreflight:!1,creatable:!1,systemManaged:!0,validateWhenPresent:!0},e=["Plan Review"],f=["Ready for Planning","Ready for Build","PR Open","Needs Revision","Ready to Merge"],g=[{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 h(a){return g.find(b=>b.name===a)}function i(a){let b=a.trim().toLowerCase();return g.find(a=>a.name.toLowerCase()===b)}function j(){return f}function k(a){let b=a.trim().toLowerCase();return f.some(a=>a.toLowerCase()===b)}function l(){return g.filter(a=>a.creatable)}},15115:(a,b,c)=>{c.d(b,{Ig:()=>l,t_:()=>n,qu:()=>m});var d=c(4631),e=c(86143),f=c(76263),g=c(55565),h=c(44297);let i=new Map;function j(a,b){return`${a}:${b}`}function k(a){let b=a.canRetry??!1;return{repoConfigId:a.input.repoConfigId,targetRepo:a.input.targetRepo,targetRepoSlug:a.targetRepoSlug,productionBranch:a.input.productionBranch,branchName:a.branchName,lifecycle:a.lifecycle,phase:"complete"===a.lifecycle?"verifying-production-workflow":"waiting-for-checks"===a.lifecycle?"waiting-for-github-checks":"updating-branch"===a.lifecycle?"creating-or-refreshing-install-branch":"merging"===a.lifecycle?"merging-workflow-installation":"verifying"===a.lifecycle?"verifying-production-workflow":"preparing-workflow-installation",operationId:a.input.operationId??"mock-workflow-install",blockedCategory:a.blockedCategory,message:a.message,prUrl:a.prUrl,prNumber:a.prNumber,validatedHeadSha:a.validatedHeadSha,workflowStatus:a.workflowStatus,canRetry:b,retryable:b||"blocked"!==a.lifecycle,retryAfterMs:b?2e3:void 0,lastSafeCheckpoint:a.lifecycle,errorCode:"none",requiresGitHubIntervention:a.requiresGitHubIntervention??!1,advancedThisRequest:a.advancedThisRequest??!0,lockContended:!1,updatedAt:new Date().toISOString()}}c(80641),c(67470);class l{constructor(a={}){this.state=a,this.calls=[],this.encryptedWrites=[],this.mutableWorkflowContent=a.existingWorkflowContent}advanceTargetWorkflowFinalization(a){this.calls.push({method:"advanceTargetWorkflowFinalization",args:[a]});let b=this.state.harnessDispatchRepo??{resolved:!0,repo:"owner/harness-repo",source:"explicit-config"},c=(0,e.g1)({repoConfigId:a.repoConfigId,targetRepo:a.targetRepo,productionBranch:a.productionBranch,harnessDispatchRepo:b});return function(a){let b=(0,f.KO)(a.finalizeInput.targetRepo);if(!b)return k({input:a.finalizeInput,targetRepoSlug:"<invalid>",branchName:(0,e.Yh)(a.finalizeInput.repoConfigId),lifecycle:"blocked",workflowStatus:"unknown",message:"Invalid target repo URL.",blockedCategory:"unexpected-pr-content",requiresGitHubIntervention:!0});let c=a.finalizeInput.branchName??(0,e.Yh)(a.finalizeInput.repoConfigId),d=a.scenario??{},l=function(a){let b=i.get(a);if(b)return b;let c={checksPollCount:0,verificationPollCount:0,mergeAttempts:0,branchUpdateAttempts:0};return i.set(a,c),c}(j(b,a.finalizeInput.repoConfigId)),m=a.existingWorkflowContent,n="unknown";if("present"==(n=null==m?"missing":m===a.intendedWorkflowContent?"present":"differs"))return i.delete(j(b,a.finalizeInput.repoConfigId)),k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"complete",workflowStatus:"present",message:"Workflow installed on the production branch."});let o=a.finalizeInput.prUrl??d.prUrl??`https://github.com/${b}/pull/${d.prNumber??1}`,p=d.prNumber??1,q=d.headSha??"mock-head-sha";if(d.unexpectedExtraFile||d.workflowContentMismatch)return k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"blocked",workflowStatus:n,message:(0,g.e)("unexpected-pr-content"),prUrl:o,prNumber:p,validatedHeadSha:q,blockedCategory:"unexpected-pr-content",requiresGitHubIntervention:!0});if(d.alreadyMerged){l.verificationPollCount+=1;let e=d.verificationLagSteps??0;return l.verificationPollCount>e?(a.onProductionWorkflowUpdate?.(a.intendedWorkflowContent),i.delete(j(b,a.finalizeInput.repoConfigId)),k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"complete",workflowStatus:"present",message:"Workflow installed on the production branch.",prUrl:o,prNumber:p})):k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"verifying",workflowStatus:n,message:"Verifying workflow on the production branch.",prUrl:o,prNumber:p,canRetry:!0})}if("failing"===d.checks)return k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"blocked",workflowStatus:n,message:(0,g.e)("checks-failing"),prUrl:o,prNumber:p,validatedHeadSha:q,blockedCategory:"checks-failing",requiresGitHubIntervention:!0});if("pending"===d.checks&&(l.checksPollCount+=1,l.checksPollCount<2))return k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"waiting-for-checks",workflowStatus:n,message:(0,g.e)("checks-pending"),prUrl:o,prNumber:p,validatedHeadSha:q,blockedCategory:"checks-pending"});if("unknown"===d.mergeableState)return k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"waiting-for-checks",workflowStatus:n,message:(0,g.e)("mergeability-pending"),prUrl:o,prNumber:p,validatedHeadSha:q,blockedCategory:"mergeability-pending"});if("behind"===d.mergeableState){if(0===l.branchUpdateAttempts)return l.branchUpdateAttempts+=1,k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"updating-branch",workflowStatus:n,message:(0,g.e)("branch-behind"),prUrl:o,prNumber:p,validatedHeadSha:q});d.mergeableState="clean"}if("dirty"===d.mergeableState||!(0,h.f)({mergeableState:d.mergeableState??"clean",mergeable:!0}))return k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"blocked",workflowStatus:n,message:(0,g.e)("merge-conflict"),prUrl:o,prNumber:p,validatedHeadSha:q,blockedCategory:"merge-conflict",requiresGitHubIntervention:!0});l.lastValidatedHeadSha=q;let r=d.headShaChangesAfterValidation?"changed-head-sha":q;if(0===l.mergeAttempts){if(l.mergeAttempts+=1,"permission-denied"===d.mergeResult)return k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"blocked",workflowStatus:n,message:(0,g.e)("permission-denied"),prUrl:o,prNumber:p,validatedHeadSha:q,blockedCategory:"permission-denied",requiresGitHubIntervention:!0});if("review-required"===d.mergeResult)return k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"blocked",workflowStatus:n,message:(0,g.e)("review-required"),prUrl:o,prNumber:p,validatedHeadSha:q,blockedCategory:"review-required",requiresGitHubIntervention:!0});if("conflict"===d.mergeResult)return k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"blocked",workflowStatus:n,message:(0,g.e)("merge-conflict"),prUrl:o,prNumber:p,validatedHeadSha:q,blockedCategory:"merge-conflict",requiresGitHubIntervention:!0});if(d.headShaChangesAfterValidation&&r!==q)return k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"waiting-for-checks",workflowStatus:n,message:(0,g.e)("mergeability-pending"),prUrl:o,prNumber:p,validatedHeadSha:r,blockedCategory:"mergeability-pending"});l.verificationPollCount+=1;let e=d.verificationLagSteps??0;if(l.verificationPollCount>e){let e=d.productionWorkflowAfterMerge??a.intendedWorkflowContent;return(a.onProductionWorkflowUpdate?.(e),e===a.intendedWorkflowContent)?(i.delete(j(b,a.finalizeInput.repoConfigId)),k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"complete",workflowStatus:"present",message:"Workflow installed on the production branch.",prUrl:o,prNumber:p,validatedHeadSha:q})):k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"blocked",workflowStatus:"differs",message:(0,g.e)("verification-failed"),prUrl:o,prNumber:p,validatedHeadSha:q,blockedCategory:"verification-failed",canRetry:!0,requiresGitHubIntervention:!0})}return k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"verifying",workflowStatus:n,message:"Verifying workflow on the production branch.",prUrl:o,prNumber:p,validatedHeadSha:q,canRetry:!0})}return k({input:a.finalizeInput,targetRepoSlug:b,branchName:c,lifecycle:"merging",workflowStatus:n,message:"Waiting for workflow install PR merge to complete.",prUrl:o,prNumber:p,validatedHeadSha:q,advancedThisRequest:!1})}({finalizeInput:a,intendedWorkflowContent:c.workflowContent,existingWorkflowContent:this.mutableWorkflowContent,scenario:this.state.finalizationScenario,onProductionWorkflowUpdate:a=>{this.mutableWorkflowContent=a}})}setExistingWorkflowContent(a){this.mutableWorkflowContent=a}async checkHarnessRepoAccess(a){return this.calls.push({method:"checkHarnessRepoAccess",args:[a]}),this.state.harnessRepoAccess??"unknown"}async listHarnessSecretStatuses(a){return this.calls.push({method:"listHarnessSecretStatuses",args:[a]}),d.LY.map(a=>({name:a,status:this.state.harnessSecretStatuses?.[a]??"unknown"}))}async checkTargetWorkflowStatus(a){this.calls.push({method:"checkTargetWorkflowStatus",args:[a]});let b=this.mutableWorkflowContent??this.state.existingWorkflowContent,c="unknown";return c=null==b?"missing":b===a.intendedWorkflowContent?"present":"differs",{repoAccess:this.state.targetRepoAccess??"unknown",workflowStatus:c,productionBranchSha:this.state.productionBranchSha}}async writeHarnessSecrets(a,b){for(let c of(this.calls.push({method:"writeHarnessSecrets",args:[a,b.map(a=>a.name)]}),b))this.encryptedWrites.push({harnessDispatchRepo:a,secretName:c.name,encryptedValue:`encrypted:${c.value.length}`});return this.state.writeHarnessSecretsResult??b.map(a=>({name:a.name,status:this.state.harnessSecretStatuses?.[a.name]==="present"?"updated":"created"}))}async writeHarnessVariables(a,b){return this.calls.push({method:"writeHarnessVariables",args:[a,b.map(a=>a.name)]}),this.state.writeHarnessVariablesResult??b.map(a=>({name:a.name,status:"created"}))}async applyTargetWorkflowPr(a){if(this.calls.push({method:"applyTargetWorkflowPr",args:[{...a,workflowContent:`<redacted:${a.workflowContent.length}>`}]}),a.branchName===a.productionBranch)throw Error("Direct production branch writes are not allowed");return this.state.applyTargetWorkflowResult?this.state.applyTargetWorkflowResult:this.state.existingWorkflowContent===a.workflowContent?{outcome:"already-installed",branchName:a.branchName,directProductionBranchWrite:!1}:{outcome:this.state.existingOpenPrUrl?"pr-updated":"pr-created",branchName:a.branchName,prUrl:this.state.existingOpenPrUrl??`https://github.com/${a.targetRepoSlug}/pull/1`,directProductionBranchWrite:!1}}}function m(a,b){let c=new Set(a);return b.map(a=>({name:a,status:c.has(a)?"present":"missing"}))}function n(a){return 401===a||403===a||404===a?"denied":"unknown"}},16051:(a,b,c)=>{c.d(b,{bY:()=>h});var d=c(51455);c(76760),c(97631);var e=c(87509),f=c(31421);(0,c(57975).promisify)(f.execFile),c(88414);var g=c(45191);async function h(a){let b=(0,e.L3)(a.snapshotRoot,a.path),c=await (0,d.readFile)(b),f=(0,g.bo)(c);if(f!==a.expectedSha256)throw Error(`Workspace snapshot file ${a.path} failed integrity check (expected ${a.expectedSha256}, got ${f}).`);return c}},22043:(a,b,c)=>{c.d(b,{Dr:()=>i,E5:()=>n,G0:()=>l,a:()=>k,ok:()=>m,qD:()=>j,wJ:()=>d.wJ});var d=c(23465),e=c(8334),f=c(7285);function g(a,b,c){let d=a[b];return"string"==typeof d&&d.trim()?{ok:!0,value:d.trim()}:{ok:!1,reason:`Managed marker is missing ${c}.`}}function h(a,b,c){let d=a[b];return"number"==typeof d&&Number.isFinite(d)?{ok:!0,value:d}:{ok:!1,reason:`Managed marker is missing ${c}.`}}function i(a){let b,c;try{b=JSON.parse(a)}catch{return{ok:!1,reason:"Managed marker JSON is malformed."}}if(!b||"object"!=typeof b)return{ok:!1,reason:"Managed marker JSON is malformed."};let i=b;if(i.schemaVersion!==d.gb)return{ok:!1,reason:`Unsupported managed marker schema version ${String(i.schemaVersion)}.`};if(i.product!==d.FN)return{ok:!1,reason:`Unexpected managed marker product ${String(i.product)}.`};if(i.role!==d.Yo)return{ok:!1,reason:`Unexpected managed marker role ${String(i.role)}.`};if("p-dev"!==i.managedBy)return{ok:!1,reason:`Unexpected managedBy value ${String(i.managedBy)}.`};let j=g(i,"repository","a valid repository slug");if(!j.ok)return{ok:!1,reason:j.reason};if(!j.value.includes("/"))return{ok:!1,reason:"Managed marker is missing a valid repository slug."};let k=h(i,"markerVersion","markerVersion");if(!k.ok)return{ok:!1,reason:k.reason};if(1!==k.value&&2!==k.value&&3!==k.value)return{ok:!1,reason:`Unsupported managed marker version ${String(k.value)}.`};if(2===k.value||3===k.value){let a=h(i,"repositoryId","repositoryId");if(!a.ok)return{ok:!1,reason:a.reason};if(!Number.isInteger(a.value)||a.value<=0)return{ok:!1,reason:"Managed marker repositoryId must be a positive integer."};c=a.value}else if(void 0!==i.repositoryId){let a=h(i,"repositoryId","repositoryId");if(!a.ok)return{ok:!1,reason:a.reason};c=a.value}let l=i.createdFromPackageSnapshot;if(3===k.value){let a;if(!l||"object"!=typeof l)return{ok:!1,reason:"Managed marker is missing createdFromPackageSnapshot metadata."};let b=g(l,"packageName","packageName");if(!b.ok)return{ok:!1,reason:b.reason};if(b.value!==f.Au)return{ok:!1,reason:`Unexpected package name ${b.value}.`};let m=g(l,"packageVersion","packageVersion");if(!m.ok)return{ok:!1,reason:m.reason};let n=g(l,"sourceRepository","sourceRepository");if(!n.ok)return{ok:!1,reason:n.reason};if(n.value!==e.Ig)return{ok:!1,reason:`Unexpected source repository ${n.value}.`};let o=g(l,"sourceCommit","sourceCommit");if(!o.ok)return{ok:!1,reason:o.reason};let p=h(l,"manifestSchemaVersion","manifestSchemaVersion");if(!p.ok)return{ok:!1,reason:p.reason};if(p.value!==e.Al)return{ok:!1,reason:`Unsupported manifest schema version ${String(p.value)}.`};let q=g(l,"snapshotContentId","snapshotContentId");if(!q.ok)return{ok:!1,reason:q.reason};let r=g(l,"snapshotSha256","snapshotSha256");if(!r.ok)return{ok:!1,reason:r.reason};let s=g(l,"snapshotGitTreeSha1","snapshotGitTreeSha1");if(!s.ok)return{ok:!1,reason:s.reason};let t=g(l,"snapshotCommitSha","snapshotCommitSha");if(!t.ok)return{ok:!1,reason:t.reason};let u=h(l,"generationFormatVersion","generationFormatVersion");if(!u.ok)return{ok:!1,reason:u.reason};if(u.value!==e.Q$)return{ok:!1,reason:`Unsupported generation format version ${String(u.value)}.`};let v=l.fileHashes;if(v&&"object"==typeof v){let b={};for(let[a,c]of Object.entries(v))"string"==typeof a&&a.length>0&&"string"==typeof c&&c.length>0&&(b[a]=c);Object.keys(b).length>0&&(a=b)}return{ok:!0,marker:{schemaVersion:d.gb,product:d.FN,role:d.Yo,managedBy:"p-dev",repository:j.value,repositoryId:c,markerVersion:k.value,operationId:"string"==typeof i.operationId?i.operationId:void 0,createdByGithubUserId:"number"==typeof i.createdByGithubUserId?i.createdByGithubUserId:void 0,createdByLogin:"string"==typeof i.createdByLogin?i.createdByLogin:void 0,pDevVersion:"string"==typeof i.pDevVersion?i.pDevVersion:void 0,createdFromPackageSnapshot:{packageName:b.value,packageVersion:m.value,sourceRepository:n.value,sourceCommit:o.value,manifestSchemaVersion:p.value,snapshotContentId:q.value,snapshotSha256:r.value,snapshotGitTreeSha1:s.value,snapshotCommitSha:t.value,generationFormatVersion:u.value,...a?{fileHashes:a}:{}}}}}let m=i.createdFromTemplate;if(!m||"object"!=typeof m)return{ok:!1,reason:"Managed marker is missing createdFromTemplate metadata."};let n=g(m,"templateRepository","createdFromTemplate.templateRepository");if(!n.ok)return{ok:!1,reason:n.reason};if(n.value!==d.qs)return{ok:!1,reason:`Unexpected template repository ${n.value}.`};let o=g(m,"defaultBranch","createdFromTemplate.defaultBranch");if(!o.ok)return{ok:!1,reason:o.reason};let p=g(m,"templateIdentity","createdFromTemplate.templateIdentity");if(!p.ok)return{ok:!1,reason:p.reason};if(p.value!==d.b1)return{ok:!1,reason:`Unexpected template identity ${p.value}.`};let q=h(m,"templateVersion","createdFromTemplate.templateVersion");if(!q.ok)return{ok:!1,reason:q.reason};if(q.value!==d.Zc)return{ok:!1,reason:`Unsupported template version ${String(q.value)}.`};let r=h(m,"compatibilityVersion","createdFromTemplate.compatibilityVersion");if(!r.ok)return{ok:!1,reason:r.reason};if(r.value!==d.Jj)return{ok:!1,reason:`Incompatible managed marker compatibility version ${String(r.value)}.`};let s=g(m,"templateContentId","createdFromTemplate.templateContentId");if(!s.ok)return{ok:!1,reason:s.reason};let t=g(m,"sourceHeadSha","createdFromTemplate.sourceHeadSha");return t.ok?{ok:!0,marker:{schemaVersion:d.gb,product:d.FN,role:d.Yo,managedBy:"p-dev",repository:j.value,repositoryId:c,markerVersion:k.value,operationId:"string"==typeof i.operationId?i.operationId:void 0,createdByGithubUserId:"number"==typeof i.createdByGithubUserId?i.createdByGithubUserId:void 0,createdByLogin:"string"==typeof i.createdByLogin?i.createdByLogin:void 0,pDevVersion:"string"==typeof i.pDevVersion?i.pDevVersion:void 0,createdFromTemplate:{templateRepository:n.value,defaultBranch:o.value,templateIdentity:p.value,templateVersion:q.value,compatibilityVersion:r.value,templateContentId:s.value,sourceHeadSha:t.value}}}:{ok:!1,reason:t.reason}}function j(a,b,c){if(a.markerVersion<2||void 0===a.repositoryId||!Number.isInteger(a.repositoryId)||a.repositoryId<=0)return{ok:!1,reason:"Managed marker is missing a stable repository ID. Use advanced recovery to reconnect this workspace."};if(c&&c.repositoryId!==a.repositoryId)return{ok:!1,reason:`Managed marker repository ID does not match GitHub metadata for ${b}.`};if(a.repository!==b){if(c&&a.repositoryId===c.repositoryId){let[c]=a.repository.split("/"),[d]=b.split("/");if(c&&d&&c===d)return{ok:!0,renamedFrom:a.repository}}return{ok:!1,reason:`Managed marker repository mismatch for ${b}.`}}return a.createdFromPackageSnapshot?{ok:!0}:a.createdFromTemplate?a.createdFromTemplate.templateRepository!==d.qs?{ok:!1,reason:`Managed marker template repository must be ${d.qs}.`}:a.createdFromTemplate.templateIdentity!==d.b1?{ok:!1,reason:`Unexpected managed marker template identity ${a.createdFromTemplate.templateIdentity}.`}:a.createdFromTemplate.templateVersion!==d.Zc?{ok:!1,reason:`Unsupported managed marker template version ${a.createdFromTemplate.templateVersion}.`}:a.createdFromTemplate.compatibilityVersion!==d.Jj?{ok:!1,reason:`Incompatible managed marker compatibility version ${a.createdFromTemplate.compatibilityVersion}.`}:{ok:!0}:{ok:!1,reason:"Managed marker is missing workspace provenance metadata."}}function k(a){if(!Number.isInteger(a.repositoryId)||a.repositoryId<=0)throw Error("Managed marker requires a positive integer repositoryId.");return{schemaVersion:d.gb,product:d.FN,role:d.Yo,managedBy:"p-dev",repository:a.repository,repositoryId:a.repositoryId,markerVersion:3,operationId:a.operationId,createdByGithubUserId:a.createdByGithubUserId,createdByLogin:a.createdByLogin,pDevVersion:a.pDevVersion,createdFromPackageSnapshot:{packageName:a.manifest.packageName,packageVersion:a.manifest.packageVersion,sourceRepository:a.manifest.sourceRepository,sourceCommit:a.manifest.sourceCommit,manifestSchemaVersion:a.manifest.schemaVersion,snapshotContentId:a.manifest.snapshotContentId,snapshotSha256:a.manifest.snapshotSha256,snapshotGitTreeSha1:a.manifest.gitRootTreeSha1,snapshotCommitSha:a.snapshotCommitSha,generationFormatVersion:a.manifest.generation.version,defaultBranch:a.defaultBranch,fileHashes:Object.fromEntries(a.manifest.files.map(a=>[a.path,a.sha256]))}}}function l(a){if(!Number.isInteger(a.repositoryId)||a.repositoryId<=0)throw Error("Managed marker requires a positive integer repositoryId.");return{schemaVersion:d.gb,product:d.FN,role:d.Yo,managedBy:"p-dev",repository:a.repository,repositoryId:a.repositoryId,markerVersion:2,operationId:a.operationId,createdByGithubUserId:a.createdByGithubUserId,createdByLogin:a.createdByLogin,pDevVersion:a.pDevVersion,createdFromTemplate:{templateRepository:d.qs,defaultBranch:a.defaultBranch,templateIdentity:a.templateIdentity.templateIdentity,templateVersion:a.templateIdentity.templateVersion,compatibilityVersion:a.templateIdentity.compatibilityVersion,templateContentId:a.templateIdentity.templateContentId,sourceHeadSha:a.sourceHeadSha}}}function m(a,b){return a.createdFromPackageSnapshot&&b.createdFromPackageSnapshot?a.repository===b.repository&&a.repositoryId===b.repositoryId&&a.operationId===b.operationId&&a.createdFromPackageSnapshot.snapshotContentId===b.createdFromPackageSnapshot.snapshotContentId&&a.createdFromPackageSnapshot.snapshotSha256===b.createdFromPackageSnapshot.snapshotSha256&&a.createdFromPackageSnapshot.snapshotCommitSha===b.createdFromPackageSnapshot.snapshotCommitSha:!!a.createdFromTemplate&&!!b.createdFromTemplate&&a.repository===b.repository&&a.repositoryId===b.repositoryId&&a.operationId===b.operationId&&a.createdFromTemplate.templateIdentity===b.createdFromTemplate.templateIdentity&&a.createdFromTemplate.compatibilityVersion===b.createdFromTemplate.compatibilityVersion&&a.createdFromTemplate.templateContentId===b.createdFromTemplate.templateContentId&&a.createdFromTemplate.sourceHeadSha===b.createdFromTemplate.sourceHeadSha}function n(a,b,c){return j(a,b,c).ok}},23465:(a,b,c)=>{c.d(b,{FN:()=>j,JJ:()=>f,Jj:()=>n,Oq:()=>g,Yo:()=>l,Zc:()=>o,Zl:()=>e,b1:()=>i,eJ:()=>q,gb:()=>m,mg:()=>p,qs:()=>d,wJ:()=>h});let d="weston-uribe/p-dev-harness-template",e="p-dev-harness",f="Private p-dev Product Development Harness workspace",g=".harness/p-dev-template.json",h=".harness/p-dev-managed-repo.json",i="p-dev-harness-template",j="p-dev",k="harness-template",l="harness-workspace",m=1,n=1,o=1,p="weston-uribe/agentic-product-development-harness";function q(a){let b;try{b=JSON.parse(a)}catch{return{ok:!1,reason:"Template identity JSON is malformed."}}if(!b||"object"!=typeof b)return{ok:!1,reason:"Template identity JSON is malformed."};let c=b,d=c.schemaVersion,e=c.product,f=c.role,g=c.templateIdentity,h=c.templateVersion,l=c.compatibilityVersion,p=c.templateContentId;if(d!==m)return{ok:!1,reason:`Unsupported template schema version ${String(d)}.`};if(e!==j)return{ok:!1,reason:`Unexpected template product ${String(e)}.`};if(f!==k)return{ok:!1,reason:`Unexpected template role ${String(f)}.`};if(g!==i)return{ok:!1,reason:`Unexpected template identity ${String(g)}.`};if(h!==o)return{ok:!1,reason:`Unsupported template version ${String(h)}.`};if(l!==n)return{ok:!1,reason:`Incompatible template compatibility version ${String(l)}.`};if("string"!=typeof p||!p.trim())return{ok:!1,reason:"Template identity is missing templateContentId."};let q=c.source&&"object"==typeof c.source?c.source:void 0;return{ok:!0,identity:{schemaVersion:m,product:j,role:k,templateIdentity:i,templateVersion:o,compatibilityVersion:n,templateContentId:p.trim(),source:q}}}},33776:(a,b,c)=>{c.d(b,{J:()=>l});var d=c(67289),e=c(96105),f=c(50615),g=c(76263),h=c(84107),i=c(4907);async function j(a){let{bytes:b}=await (0,g.bD)(a),c=e.k.parse(JSON.parse(b.toString("utf8"))),h=Buffer.from((0,f.Wx)(c),"utf8"),i=(0,d.kQ)(h),j=(0,g.Uw)(h);return{bytes:h,encodedValue:j,fingerprint:i}}async function k(a){let b;for(let c=1;c<=3;c+=1)try{await a.write();return}catch(a){if(b=a,function(a){if(!(a instanceof Error))return!1;let b=a.message.toLowerCase();return b.includes("401")||b.includes("403")||b.includes("404")||b.includes("422")||b.includes("bad credentials")||b.includes("required for remote")}(a))throw a;c<3&&await new Promise(a=>setTimeout(a,500*c))}throw b instanceof Error?Error((0,i.s7)(b)):Error("Remote harness config sync result is uncertain after retries.")}async function l(a){let{encodedValue:b,fingerprint:c}=await j(a.cwd),e=a.harnessRepository;if(!e){let b=await (0,h.z8)({cwd:a.cwd});if(!b.resolved||!b.repo)throw Error("Harness dispatch repository is not configured.");e=(0,h.OW)(b)}if(!a.provider.writeHarnessVariables)throw Error("GitHub provider must support repository variable writes for HARNESS_CONFIG_FINGERPRINT");return await k({provider:a.provider,harnessRepository:e,write:async()=>{await a.provider.writeHarnessSecrets(e,[{name:"HARNESS_CONFIG_JSON_B64",value:b}])}}),await k({provider:a.provider,harnessRepository:e,write:async()=>{await a.provider.writeHarnessVariables(e,[{name:d.HARNESS_CONFIG_FINGERPRINT_VARIABLE,value:c}])}}),{fingerprint:c,harnessRepository:e}}},44297:(a,b,c)=>{c.d(b,{f:()=>d});function d(a){let b=a.mergeableState?.toLowerCase()??null;return!1!==a.mergeable&&"dirty"!==b&&null!==a.mergeable&&"unknown"!==b&&"behind"!==b}},45191:(a,b,c)=>{c.d(b,{Aw:()=>i,bo:()=>f,dV:()=>e.dV,dq:()=>h,lp:()=>g});var d=c(77598),e=c(97631);function f(a){return(0,d.createHash)("sha256").update(a).digest("hex")}function g(a){return[...a].sort((a,b)=>(0,e.XT)(a.path,b.path))}function h(a){let b=g(a),c=(0,d.createHash)("sha256");for(let a of b)c.update(a.path),c.update("\0"),c.update(a.mode),c.update("\0"),c.update(String(a.size)),c.update("\0"),c.update(a.sha256),c.update("\n");return c.digest("hex")}function i(a){return(0,d.createHash)("sha256").update(a.packageVersion).update("\0").update(a.sourceCommit).update("\0").update(a.snapshotSha256).digest("hex")}},55565:(a,b,c)=>{c.d(b,{e:()=>g,y:()=>f});var d=c(67470),e=c(95203);function f(a){let b=(a.message??(a.error instanceof Error?a.error.message:String(a.error))).toLowerCase();if(a.checkPolicy?.decision==="block")return"checks_failing"===a.checkPolicy.classification?{category:"checks-failing",waiting:!1,message:a.checkPolicy.reason}:{category:"checks-pending",waiting:!0,message:a.checkPolicy.reason};if(a.error instanceof d.OS){if(401===a.error.status||403===a.error.status)return b.includes("review")||b.includes("approval")||b.includes("required reviewers")?{category:"review-required",waiting:!1,message:"GitHub requires human review before this workflow install PR can merge."}:b.includes("bypass")||b.includes("not permitted")||b.includes("insufficient")?{category:"permission-denied",waiting:!1,message:"The setup token cannot bypass repository rules to merge this workflow install PR."}:{category:"permission-denied",waiting:!1,message:"The setup token does not have permission to merge this workflow install PR."};if(405===a.error.status&&"pr_already_merged"===(0,e.N)(a.error))return{category:"merge-api-failure",waiting:!1,message:"Workflow install PR was already merged."};if(409===a.error.status)return{category:"merge-conflict",waiting:!1,message:"The workflow install PR has merge conflicts that require manual resolution."};if(422===a.error.status){if(b.includes("merge queue")||b.includes("queued for merge"))return{category:"merge-queue-required",waiting:!1,message:"This repository requires merge queue handling that onboarding does not support automatically."};if(b.includes("head sha")||b.includes("expected head"))return{category:"mergeability-pending",waiting:!0,message:"The workflow install PR head changed during finalization. Revalidating before merge."};if(b.includes("review")||b.includes("approval")||b.includes("required reviewers"))return{category:"review-required",waiting:!1,message:"GitHub requires human review before this workflow install PR can merge."};if(b.includes("bypass")||b.includes("not permitted")||b.includes("insufficient"))return{category:"permission-denied",waiting:!1,message:"The setup token cannot bypass repository rules to merge this workflow install PR."};if(b.includes("conversation")||b.includes("thread resolution")||b.includes("unresolved"))return{category:"merge-api-failure",waiting:!1,message:"GitHub requires unresolved review conversations to be resolved before merge."};if(b.includes("deployment"))return{category:"merge-api-failure",waiting:!1,message:"GitHub requires a deployment requirement before this workflow install PR can merge."}}}let c=a.mergeableState?.toLowerCase()??"";return"dirty"===c?{category:"merge-conflict",waiting:!1,message:"The workflow install PR has merge conflicts that require manual resolution."}:"behind"===c?{category:"branch-behind",waiting:!0,message:"The workflow install branch is behind the production branch."}:{category:"merge-api-failure",waiting:!1,message:"GitHub rejected the workflow install PR merge request."}}function g(a){switch(a){case"checks-pending":return"Waiting for GitHub checks on the workflow install PR.";case"checks-failing":return"Required checks failed on the workflow install PR.";case"mergeability-pending":return"GitHub is still computing mergeability for the workflow install PR.";case"branch-behind":return"Refreshing the workflow install branch…";case"review-required":return"Human review is required before the workflow install PR can merge.";case"permission-denied":return"The setup token cannot merge the workflow install PR.";case"merge-conflict":return"The workflow install PR has merge conflicts.";case"unexpected-pr-content":return"The workflow install PR contains unexpected changes.";case"merge-queue-required":return"This repository requires merge queue handling.";case"merge-api-failure":return"GitHub rejected the workflow install merge request.";case"verification-failed":return"The workflow was merged but production verification has not succeeded yet.";default:return"Workflow install finalization is blocked."}}},67289:(a,b,c)=>{c.d(b,{HARNESS_CONFIG_FINGERPRINT_VARIABLE:()=>e,kQ:()=>f});var d=c(77598);let e="HARNESS_CONFIG_FINGERPRINT";function f(a){return(0,d.createHash)("sha256").update(a).digest("hex")}},71740:(a,b,c)=>{c.d(b,{$l:()=>s,BE:()=>t,D3:()=>o,Db:()=>n,Iy:()=>p,P0:()=>x,P1:()=>y,Wx:()=>u,YC:()=>q,af:()=>m,e0:()=>v,gg:()=>i,lK:()=>w,np:()=>r,os:()=>e,uB:()=>h,vy:()=>l,x$:()=>j,ym:()=>k});var d=c(35966);function e(a){return new d.LinearClient({apiKey:a.trim()})}async function f(a){for(;a.pageInfo?.hasNextPage;)await a.fetchNext();return a.nodes??[]}async function g(a){try{return((await a.teams()).nodes??[]).map(a=>a.id)}catch{return[]}}async function h(a){let b=await a.teams();return(await f(b)).map(a=>({id:a.id,key:a.key??"",name:a.name??""}))}async function i(a){let b=await a.projects();return Promise.all((await f(b)).map(async a=>({id:a.id,name:a.name??"",description:a.description??null,teamIds:await g(a)})))}async function j(a,b){try{let c=await a.project(b);if(!c)return null;return{id:c.id,name:c.name??"",description:c.description??null,teamIds:await g(c)}}catch{return null}}async function k(a,b,c){await a.updateProject(b,{description:c})}async function l(a,b){let c=await a.workflowStates({filter:{team:{id:{eq:b}}}});return(await f(c)).map(a=>({id:a.id,name:a.name??"",type:a.type??""}))}async function m(a){let b=await a.webhooks();return(await f(b)).map(a=>({id:a.id,url:a.url??"",enabled:a.enabled??!1,resourceTypes:a.resourceTypes??[],teamId:a.teamId??void 0,secret:a.secret??void 0}))}async function n(a,b){let c=await a.createTeam({name:b.name,key:b.key,description:b.description}),d=await c.team;if(!d)throw Error("Linear team creation did not return a team");return{id:d.id,key:d.key??b.key,name:d.name??b.name}}async function o(a,b){let c=await a.createProject({name:b.name,teamIds:b.teamIds,description:b.description}),d=await c.project;if(!d)throw Error("Linear project creation did not return a project");return{id:d.id,name:d.name??b.name,teamIds:b.teamIds}}async function p(a,b){let c=await a.createWorkflowState({teamId:b.teamId,name:b.name,type:b.type,color:b.color??"#9CA3AF"}),d=await c.workflowState;if(!d)throw Error("Linear workflow state creation did not return a state");return{id:d.id,name:d.name??b.name,type:d.type??b.type}}function q(a){let b=a instanceof Error?a.message:"string"==typeof a?a:"";return/duplicate workflow state/i.test(b)}async function r(a,b){let c=await a.updateWorkflowState(b.id,{name:b.name,color:b.color,description:b.description,position:b.position}),d=await c.workflowState;if(!d)throw Error("Linear workflow state update did not return a state");return{id:d.id,name:d.name??b.name??"",type:d.type??""}}async function s(a){let b=await a.client.issues({filter:{team:{id:{eq:a.teamId}},state:{id:{eq:a.stateId}}}});return(await f(b)).map(a=>a.id)}async function t(a,b){await a.updateIssue(b.issueId,{stateId:b.stateId})}async function u(a,b){await a.archiveWorkflowState(b)}async function v(a,b){let c=await a.createWebhook({url:b.url,label:b.label??"Harness webhook bridge",resourceTypes:["Issue"],teamId:b.teamId,allPublicTeams:!b.teamId||void 0,...b.secret?{secret:b.secret}:{}}),d=await c.webhook;if(!d)throw Error("Linear webhook creation did not return a webhook");let e="string"==typeof d.secret?d.secret??void 0:b.secret;return{id:d.id,url:d.url??b.url,enabled:d.enabled??!0,resourceTypes:d.resourceTypes??["Issue"],teamId:d.teamId??b.teamId,secret:e}}async function w(a,b){let c=await a.updateWebhook(b.webhookId,{url:b.url,label:b.label??"Harness webhook bridge",resourceTypes:["Issue"],secret:b.secret,enabled:!0}),d=await c.webhook;if(!d)throw Error("Linear webhook update did not return a webhook");return{id:d.id,url:d.url??b.url,enabled:d.enabled??!0,resourceTypes:d.resourceTypes??["Issue"],teamId:d.teamId??void 0,secret:d.secret??b.secret}}async function x(a){let b=await a.organization;return{id:b.id,name:b.name?.trim()||"Linear workspace"}}function y(){return{teamCreate:!0,projectCreate:!0,workflowStateCreate:!0,webhookCreate:!0,webhookList:!0}}},71992:(a,b,c)=>{c.d(b,{MN:()=>u,T8:()=>A,CM:()=>B});var d=c(31421),e=c(51455),f=c(48161),g=c(76760),h=c.n(g),i=c(643),j=c(97631),k=c(16051),l=c(45191),m=c(22043),n=c(92116);async function o(a){let b=await (0,e.mkdtemp)(h().join((0,f.tmpdir)(),"p-dev-git-askpass-")),c=h().join(b,"token"),d=h().join(b,"askpass.sh");await (0,e.writeFile)(c,a,{encoding:"utf8",mode:384}),await (0,e.chmod)(c,384);let g=`#!/bin/sh
2
+ set -eu
3
+ case "$1" in
4
+ *Username*)
5
+ printf '%s\\n' "x-access-token"
6
+ ;;
7
+ *)
8
+ cat "$P_DEV_GIT_ASKPASS_TOKEN_FILE"
9
+ ;;
10
+ esac
11
+ `;await (0,e.writeFile)(d,g,{encoding:"utf8",mode:448}),await (0,e.chmod)(d,448);let i={...process.env,GIT_ASKPASS:d,GIT_TERMINAL_PROMPT:"0",P_DEV_GIT_ASKPASS_TOKEN_FILE:c};return delete i.GIT_CONFIG_PARAMETERS,{root:b,askpassPath:d,tokenPath:c,env:i,cleanup:async()=>{await (0,e.rm)(b,{recursive:!0,force:!0})}}}function p(a){return(0,n.MR)(a)}var q=c(80988);function r(a){return Math.round(i.performance.now()-a)}async function s(a,b,c){let d=i.performance.now();try{return await c()}finally{a[b]=r(d)}}function t(a,b){let c=h().resolve(a,b),d=h().resolve(a);if(!c.startsWith(`${d}${h().sep}`))throw Error(`Snapshot pack path escapes snapshot root: ${b}`);return c}function u(a,b){return`https://github.com/${a}/${b}.git`}async function v(){let a=await (0,e.mkdtemp)(h().join((0,f.tmpdir)(),"p-dev-harness-provision-git-")),b=(0,d.spawnSync)("git",["init"],{cwd:a});if(0!==b.status)throw await (0,e.rm)(a,{recursive:!0,force:!0}),Error(`git init failed: ${p(b.stderr?.toString("utf8")||"unknown error")}`);return{root:a,env:{...process.env,GIT_DIR:h().join(a,".git"),GIT_WORK_TREE:a}}}function w(a,b,c){c?.capture?.argv.push(["git",...b]);let e=(0,d.spawnSync)("git",b,{cwd:a.root,env:c?.env??a.env,input:c?.input,encoding:"utf8",maxBuffer:0x4000000}),f=e.stdout?.toString()??"",g=e.stderr?.toString()??"";if(c?.capture?.stdout.push(f),c?.capture?.stderr.push(g),0!==e.status)throw Error(`git ${b[0]} failed: ${p(g||f||"unknown error")}`);return{stdout:f,stderr:g}}async function x(a,b,c){return c.capture?.argv.push(["git",...b]),new Promise((e,f)=>{let g=!1,h=(0,d.spawn)("git",b,{cwd:a.root,env:c.env,stdio:["ignore","pipe","pipe"]}),i="",j="",k=setTimeout(()=>{g||(g=!0,h.kill("SIGTERM"),setTimeout(()=>{h.killed||h.kill("SIGKILL")},1e3).unref(),f(new q.gk("workspace-upload-timeout",`Git operation timed out after ${c.timeoutMs}ms during: git ${b[0]}.`,!0)))},c.timeoutMs);h.stdout?.on("data",a=>{i+=a.toString("utf8")}),h.stderr?.on("data",a=>{j+=a.toString("utf8")}),h.on("error",a=>{g||(g=!0,clearTimeout(k),f(a))}),h.on("close",a=>{if(!g){if(g=!0,clearTimeout(k),c.capture?.stdout.push(i),c.capture?.stderr.push(j),0!==a)return void f(Error(`git ${b[0]} failed: ${p(j||i||`exit ${a}`)}`));e({stdout:i,stderr:j})}})})}function y(a,b){let c=["commit-tree",b.treeSha,"-m",b.message];for(let a of b.parents)c.push("-p",a);let d={...a.env,GIT_AUTHOR_NAME:b.identity.name,GIT_AUTHOR_EMAIL:b.identity.email,GIT_AUTHOR_DATE:b.identity.date,GIT_COMMITTER_NAME:b.identity.name,GIT_COMMITTER_EMAIL:b.identity.email,GIT_COMMITTER_DATE:b.identity.date},{stdout:e}=w(a,c,{env:d,capture:b.capture});return e.trim()}async function z(a){if(a.onProgress?.({phase:"preparing-snapshot",completed:0,total:a.manifest.fileCount}),a.manifest.gitObjectPack){let b=a.manifest.gitObjectPack,c=t(a.snapshotRoot,b.packPath),d=t(a.snapshotRoot,b.indexPath),f=await (0,e.readFile)(c),g=(0,l.bo)(f);if(g!==b.packSha256)throw new q.gk("snapshot-tree-mismatch",`Snapshot object pack SHA mismatch (expected ${b.packSha256}, got ${g}).`,!1);let i=h().join(a.worktree.root,".git","objects","pack");return await (0,e.mkdir)(i,{recursive:!0}),await (0,e.copyFile)(c,h().join(i,`pack-${b.packSha1}.pack`)),await (0,e.copyFile)(d,h().join(i,`pack-${b.packSha1}.idx`)),w(a.worktree,["cat-file","-e",`${a.manifest.gitRootTreeSha1}^{tree}`]),a.onProgress?.({phase:"preparing-snapshot",completed:a.manifest.fileCount,total:a.manifest.fileCount}),a.manifest.gitRootTreeSha1}let b=new Map,c=0;for(let d of a.manifest.files){let e=await (0,k.bY)({snapshotRoot:a.snapshotRoot,path:d.path,expectedSha256:d.sha256}),f=(0,j.bq)(a.worktree,e);if(f!==d.gitBlobSha1)throw new q.gk("snapshot-tree-mismatch",`Snapshot blob SHA mismatch for ${d.path} (expected ${d.gitBlobSha1}, got ${f}).`,!1);b.set(d.gitBlobSha1,e),((c+=1)%50==0||c===a.manifest.fileCount)&&a.onProgress?.({phase:"preparing-snapshot",completed:c,total:a.manifest.fileCount})}let d=(0,j.Xo)(a.worktree,a.manifest.files,b);if(d!==a.manifest.gitRootTreeSha1)throw new q.gk("snapshot-tree-mismatch",`Snapshot tree SHA mismatch (expected ${a.manifest.gitRootTreeSha1}, got ${d}).`,!1);return d}async function A(a){let b=a.timeoutMs??B(),c=i.performance.now(),d={totalMs:0},f=null,g=null,h=!1,k=!1,l=null;try{let c=i.performance.now();f=await v(),g=await o(a.auth.token);let e={...f.env,...g.env,GIT_DIR:f.env.GIT_DIR,GIT_WORK_TREE:f.env.GIT_WORK_TREE};w(f,["remote","add","origin",a.auth.remoteUrl],{capture:a.capture}),d.temporaryGitPreparationMs=r(c),a.onProgress?.({phase:"preparing-snapshot"});let h=a.existingSnapshotCommitSha??a.initializedCommitSha;await s(d,"initialRemoteFetchMs",()=>x(f,["fetch","--depth=1","origin",h],{env:e,timeoutMs:b,capture:a.capture}));let k=(0,q.ig)({operationId:a.operationId,sourceCommit:a.manifest.sourceCommit}),n=a.existingSnapshotCommitSha,p=a.manifest.gitRootTreeSha1,t=await s(d,"objectTreePreparationMs",async()=>{n?(await x(f,["fetch","--depth=1","origin",n],{env:e,timeoutMs:b,capture:a.capture}),p=w(f,["rev-parse",`${n}^{tree}`],{capture:a.capture}).stdout.trim()):(p=await z({worktree:f,snapshotRoot:a.snapshotRoot,manifest:a.manifest,onProgress:a.onProgress}),n=y(f,{treeSha:p,parents:[a.initializedCommitSha],message:`Initialize p-dev harness workspace snapshot (${a.manifest.packageVersion})`,identity:k,capture:a.capture}));let c=a.buildMarkerContent(n),d=(0,j.bq)(f,Buffer.from(c,"utf8")),g=(0,j.Z8)(f,p,[{path:m.wJ,mode:"100644",sha:d}]);if(g===p)throw new q.gk("marker-commit-failed","Marker tree must overlay the snapshot tree rather than replace it.",!1);return y(f,{treeSha:g,parents:[n],message:"Initialize p-dev managed harness workspace marker",identity:k,capture:a.capture})});a.onProgress?.({phase:"workspace-uploading"});let u=(await s(d,"remoteVerificationMs",()=>x(f,["ls-remote","origin",`refs/heads/${a.defaultBranch}`],{env:e,timeoutMs:b,capture:a.capture}))).stdout.trim().split(/\s+/)[0]??"";if(u&&u!==a.expectedHeadSha){if(u===t)a.onProgress?.({phase:"verifying"}),l={snapshotCommitSha:n,markerCommitSha:t,snapshotGitTreeSha1:a.manifest.gitRootTreeSha1,pushCount:0,timings:d};else if(u!==n||a.expectedHeadSha!==n)throw new q.gk("ref-update-unexpected-head",`Remote branch changed unexpectedly (expected ${a.expectedHeadSha}, found ${u}). Retry after reconciling; force push is not allowed.`,!0)}if(!l){let c=await s(d,"gitPushMs",()=>{var c;return x(f,(c=a.defaultBranch,["-c","http.postBuffer=524288000","push","--atomic","origin",`${t}:refs/heads/${c}`]),{env:{...e,GIT_TRACE_PERFORMANCE:e.GIT_TRACE_PERFORMANCE??"1"},timeoutMs:b,capture:a.capture})});d.packCreationMs=function(a){let b=a.matchAll(/performance:\s+([0-9.]+)\s+s:\s+git command: .*?\bpack-objects\b/g),c=0;for(let a of b)c+=Number(a[1]);return c>0?Math.round(1e3*c):void 0}(c.stderr),a.onProgress?.({phase:"verifying"}),l={snapshotCommitSha:n,markerCommitSha:t,snapshotGitTreeSha1:a.manifest.gitRootTreeSha1,pushCount:1,timings:d}}}catch(b){if(b instanceof q.gk)throw b;let a=b instanceof Error?p(b.message):"Bulk git push failed.";throw new q.gk("workspace-upload-failed",a,!0)}finally{if(g){try{await g.cleanup(),k=!0}catch{k=!1}delete g.env.P_DEV_GIT_ASKPASS_TOKEN_FILE,delete g.env.GIT_ASKPASS}if(f)try{await (0,e.rm)(f.root,{recursive:!0,force:!0}),h=!0}catch{h=!1}}if(!l)throw new q.gk("workspace-upload-failed","Bulk git push completed without a result.",!0);return d.totalMs=r(c),{...l,timings:d,tempRootRemoved:h,askpassRemoved:k}}function B(a=process.env.HARNESS_SNAPSHOT_GIT_PUSH_TIMEOUT_MS){if(void 0===a||""===a.trim())return 12e4;let b=Number(a);if(!Number.isFinite(b)||b<1e3)throw Error("Invalid HARNESS_SNAPSHOT_GIT_PUSH_TIMEOUT_MS: must be an integer >= 1000.");return Math.floor(b)}},73833:(a,b,c)=>{c.d(b,{PY:()=>l,oQ:()=>k,xj:()=>m});var d=c(51455),e=c(77598),f=c(76760),g=c.n(f),h=c(84998);let i=g().join(".harness","control-plane-setup.json");function j(a){let b=(0,h.ym)(a);return g().join(b.cwd,i)}async function k(a){let b=j(a);try{await (0,d.access)(b);let a=await (0,d.readFile)(b,"utf8"),c=JSON.parse(a);if(1!==c.version)return null;return c}catch{return null}}async function l(a,b){let c=(0,h.ym)(b);await (0,d.mkdir)(c.harnessDir,{recursive:!0});let f=j(b),g=`${f}.tmp-${process.pid}-${(0,e.randomUUID)()}`;await (0,d.writeFile)(g,`${JSON.stringify(a,null,2)}
12
+ `,"utf8"),await (0,d.rename)(g,f)}async function m(a,b){let c=await k(b)??{version:1},d={...c,...a,version:1,linear:a.linear??c.linear,linearWorkspace:a.linearWorkspace??c.linearWorkspace,vercel:void 0!==a.vercel?c.vercel?function(a,b){if(!a){if(!b.projectId||!b.projectName)throw Error("Cannot merge vercel selection without base state.");return b}return{...a,...b,redeployVerification:void 0!==b.redeployVerification?b.redeployVerification:a.redeployVerification}}(c.vercel,a.vercel):a.vercel:c.vercel,workflowModels:a.workflowModels??c.workflowModels,runnerUpgrade:a.runnerUpgrade??c.runnerUpgrade,initialSetup:a.initialSetup??c.initialSetup};return await l(d,b),d}},79123:(a,b,c)=>{c.d(b,{V:()=>f,Vm:()=>g,a8:()=>e});var d=c(73833);async function e(a){let b=await (0,d.oQ)(a);return b?.workflowModels??null}async function f(a,b){await (0,d.xj)({workflowModels:a},b)}function g(a){return!!a.evidence&&a.evidence.configFingerprint===a.currentFingerprint}},80988:(a,b,c)=>{c.d(b,{DR:()=>f,gk:()=>h,ig:()=>g,qm:()=>e});var d=c(77598);function e(a,b){return`${a} [p-dev-provision:${b}]`}function f(a,b){return"string"==typeof a&&a.includes(`[p-dev-provision:${b}]`)}function g(a){return{name:"p-dev-harness",email:"p-dev-harness@users.noreply.github.com",date:new Date(Date.UTC(2020,0,1,0,0,(0,d.createHash)("sha256").update(a.operationId).update("\0").update(a.sourceCommit).digest().readUInt32BE(0)%31536e4)).toISOString()}}class h extends Error{constructor(a,b,c){super(b),this.code=a,this.recoverable=c}}},86143:(a,b,c)=>{c.d(b,{Yh:()=>i,rv:()=>k,Hh:()=>j,DR:()=>m,nj:()=>l,g1:()=>n});var d=c(77598),e=c(84107),f=c(5890),g=c(4631),h=c(76263);function i(a){return`harness/setup-production-sync-${a}`}function j(){return"Install harness production sync workflow"}function k(a){return`Install the harness production sync workflow via Product Development Harness setup.
13
+
14
+ - Repo config id: ${a.repoConfigId}
15
+ - Production branch watched: ${a.productionBranch}
16
+ - Harness dispatch repo: ${a.harnessDispatchRepo}
17
+
18
+ This workflow dispatches \`production_promoted\` to the harness repo after production branch pushes.
19
+ It does not run harness planning, implementation, handoff, revision, or merge phases.
20
+
21
+ Required target repo secret: \`HARNESS_DISPATCH_TOKEN\` (dispatch-only PAT scoped to the harness repo).
22
+
23
+ <!-- p-dev-workflow-install:${a.repoConfigId} -->`}function l(a){return(0,d.createHash)("sha256").update(a).digest("hex")}function m(a,b){return a?l(a)===l(b)?"present":"differs":"missing"}function n(a){var b,c,m;let n=function(a){let b=(0,h.KO)(a.targetRepo);if(!b)return{plan:{repoConfigId:a.repoConfigId,targetRepoSlug:"<invalid-target-repo>",harnessDispatchRepo:(0,e.OW)(a.harnessDispatchRepo),productionBranch:a.productionBranch,workflowPath:g.CH,branchName:i(a.repoConfigId),prTitle:j(),prBody:k({repoConfigId:a.repoConfigId,productionBranch:a.productionBranch,harnessDispatchRepo:(0,e.OW)(a.harnessDispatchRepo)}),workflowStatus:"unknown",directProductionBranchWrite:!1},workflowContent:"",validationError:`Invalid target repo URL: ${a.targetRepo}`};let c=(0,e.OW)(a.harnessDispatchRepo),d=function(a){var b;let c=(b=a.harnessDispatchRepo,`https://api.github.com/repos/${b}/dispatches`);return`name: Trigger harness production sync
24
+
25
+ on:
26
+ push:
27
+ branches: [${a.productionBranch}]
28
+
29
+ permissions:
30
+ contents: read
31
+
32
+ jobs:
33
+ dispatch:
34
+ runs-on: ubuntu-latest
35
+ steps:
36
+ - name: Dispatch production_promoted to harness
37
+ env:
38
+ HARNESS_DISPATCH_TOKEN: \${{ secrets.HARNESS_DISPATCH_TOKEN }}
39
+ run: |
40
+ curl -fsS -X POST \\
41
+ -H "Authorization: Bearer \${HARNESS_DISPATCH_TOKEN}" \\
42
+ -H "Accept: application/vnd.github+json" \\
43
+ -H "X-GitHub-Api-Version: 2022-11-28" \\
44
+ ${c} \\
45
+ -d "$(jq -n \\
46
+ --arg repo ${a.repoConfigId} \\
47
+ --arg branch ${a.productionBranch} \\
48
+ --arg source ${a.targetRepoSlug} \\
49
+ --arg after "\${{ github.sha }}" \\
50
+ --arg ref "\${{ github.ref }}" \\
51
+ --arg run_id "\${{ github.run_id }}" \\
52
+ --arg received "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \\
53
+ '{event_type:"production_promoted", client_payload:{repo:$repo, productionBranch:$branch, sourceRepo:$source, after:$after, ref:$ref, githubRunId:$run_id, receivedAt:$received}}')"
54
+ `}({harnessDispatchRepo:c,repoConfigId:a.repoConfigId,targetRepoSlug:b,productionBranch:a.productionBranch});return{plan:{repoConfigId:a.repoConfigId,targetRepoSlug:b,harnessDispatchRepo:c,productionBranch:a.productionBranch,workflowPath:g.CH,branchName:i(a.repoConfigId),prTitle:j(),prBody:k({repoConfigId:a.repoConfigId,productionBranch:a.productionBranch,harnessDispatchRepo:c}),workflowStatus:a.workflowStatus??"unknown",directProductionBranchWrite:!1},workflowContent:d}}(a),o=(0,f.vq)({harnessRepo:n.plan.harnessDispatchRepo,repoConfigId:n.plan.repoConfigId,targetRepoSlug:n.plan.targetRepoSlug,productionBranch:n.plan.productionBranch}).steps,p=(c=JSON.stringify({actionId:(b={actionId:g.PN.previewTargetWorkflowPr.id,permissionScope:g.PN.previewTargetWorkflowPr.permission.scope,repoConfigId:n.plan.repoConfigId,targetRepoSlug:n.plan.targetRepoSlug,harnessDispatchRepo:n.plan.harnessDispatchRepo,productionBranch:n.plan.productionBranch,workflowPath:n.plan.workflowPath,branchName:n.plan.branchName,workflowContentHash:l(n.workflowContent),productionBranchSha:a.productionBranchSha}).actionId,permissionScope:b.permissionScope,repoConfigId:b.repoConfigId,targetRepoSlug:b.targetRepoSlug,harnessDispatchRepo:b.harnessDispatchRepo,productionBranch:b.productionBranch,workflowPath:b.workflowPath,branchName:b.branchName,workflowContentHash:b.workflowContentHash,productionBranchSha:b.productionBranchSha??""}),(0,d.createHash)("sha256").update(c).digest("hex").slice(0,16));return{plan:n.plan,workflowContent:n.workflowContent,workflowPreviewSummary:(m=n.plan,`Workflow path: ${m.workflowPath}
55
+ Install branch: ${m.branchName}
56
+ PR base branch: ${m.productionBranch}
57
+ Harness dispatch repo: ${m.harnessDispatchRepo}
58
+ Workflow status: ${m.workflowStatus}
59
+ Direct production branch write: never`),fingerprint:p,manualInstructions:o,validationError:n.validationError}}},86359:(a,b,c)=>{c.d(b,{TO:()=>i});var d=c(13369);let e="Duplicate",f={planningInProgress:"Planning",buildingInProgress:"Building",prOpen:"PR Open",pmReview:"PM Review",blocked:"Blocked",readyForBuild:"Ready for Build",needsRevision:"Needs Revision",revisingInProgress:"Revising",readyToMerge:"Ready to Merge",mergingInProgress:"Merging",mergedToDev:"Merged to Dev",mergedDeployed:"Merged / Deployed"},g={planning:["Ready for Planning"],implementation:["Ready for Build"],handoff:["PR Open"],revision:["Needs Revision"],merge:["Ready to Merge"]};function h(a,b){return a.filter(a=>a.name===b)}function i(a){let b=[],c=[],i={};if(a.expectedTeamId&&a.teamId&&a.teamId!==a.expectedTeamId&&b.push({kind:"wrong-team",message:`Linear team mismatch: expected ${a.expectedTeamId}, got ${a.teamId}.`}),a.config)for(let c of function(a){let b=[],c=a.linear?.eligibleStatuses??{};for(let[a,d]of Object.entries(g)){let e=c[a];if(!e)continue;let f=d[0];(1!==e.length||e[0]!==f)&&b.push({path:`linear.eligibleStatuses.${a}`,configuredValue:e.join(", "),canonicalValue:f,message:`Noncanonical workflow-status override at linear.eligibleStatuses.${a}: expected exactly "${f}".`})}let d=a.linear?.transitionalStatuses??{};for(let[a,c]of Object.entries(f)){let e=d[a];e&&e!==c&&b.push({path:`linear.transitionalStatuses.${a}`,configuredValue:e,canonicalValue:c,message:`Noncanonical workflow-status override at linear.transitionalStatuses.${a}: expected "${c}".`})}return b}(a.config))b.push({kind:"noncanonical-config-override",message:c.message,path:c.path});for(let f of(b.push(...function(a){let b=[];for(let c of a)c.name!==e&&c.name.toLowerCase()===e.toLowerCase()&&b.push({kind:"malformed-canonical-status-collision",statusName:c.name,linearStatusId:c.id,message:`Malformed canonical status collision: "${c.name}" is a case-only variant of "${e}".`});return b}(a.workflowStates)),d.H8)){let b=h(a.workflowStates,f);b.length>0&&c.push({kind:"deprecated-status-present",message:`Deprecated status "${f}" is present in the Linear workflow.`,statusName:f,linearStatusId:b[0]?.id})}for(let c of d._u){if("duplicate"===c.key&&!d.C.requiredForPreflight){let d=h(a.workflowStates,c.name);if(1===d.length){let a=d[0];a.category===c.category?i[c.key]=a:b.push({kind:"wrong-category",statusKey:c.key,statusName:c.name,linearStatusId:a.id,message:`Status "${c.name}" has wrong category: expected "${c.category}", got "${a.category}".`})}continue}let e=h(a.workflowStates,c.name);if(0===e.length){b.push({kind:"missing-status",statusKey:c.key,statusName:c.name,message:`Missing canonical status "${c.name}" (${c.category}).`});continue}if(e.length>1){b.push({kind:"duplicate-name",statusKey:c.key,statusName:c.name,message:`Duplicate canonical status name "${c.name}" in Linear workflow.`});continue}let f=e[0];if(f.category!==c.category){b.push({kind:"wrong-category",statusKey:c.key,statusName:c.name,linearStatusId:f.id,message:`Status "${c.name}" has wrong category: expected "${c.category}", got "${f.category}".`});continue}i[c.key]=f}for(let c of a.workflowStates){let a=(0,d.Gk)(c.name);a&&c.category!==a.category&&b.push({kind:"name-mismatch",statusKey:a.key,statusName:c.name,linearStatusId:c.id,message:`Status name "${c.name}" matches a canonical status but category "${c.category}" does not match expected "${a.category}".`})}return{valid:0===b.length,violations:b,informationalWarnings:c,resolvedStatuses:i}}},87509:(a,b,c)=>{c.d(b,{L3:()=>n,b6:()=>k,lw:()=>l,o8:()=>m});var d=c(76760),e=c.n(d);let f=[".agents/",".github/",".harness/","api/","apps/","docs/","evals/","examples/","gpt/","packages/","prompts/","scripts/","skills/","src/","templates/","tests/"],g=[".env.example","AGENTS.md","ARCHITECTURE.md","CHANGELOG.md","LICENSE","README.md","ROADMAP.md","harness.config.json","harness.config.schema.json","package.json","package-lock.json","tsconfig.json","vercel.json","vitest.config.ts"],h=[".vercel/","runs/","node_modules/","dist/",".next/","packages/p-dev/bin/","packages/p-dev/dist/","packages/p-dev/gui/","packages/p-dev/templates/","packages/p-dev/workspace-snapshot/"],i=[".env",".env.local",".harness/config.local.json",".DS_Store"],j=[/^\.env\..+\.local$/,/^\.harness\/.*\.local\.json$/,/\.tgz$/,/^docs\/releases\/v0\.3\.1-provisioning-evidence\.md$/];function k(a){let b=a.replace(/\\/g,"/").replace(/^\.\//,"");if(!b||b.includes(".."))throw Error(`Invalid snapshot path: ${a}`);return b}function l(a){let b=k(a);if(i.includes(b))return!0;for(let a of h)if(b===a.slice(0,-1)||b.startsWith(a))return!0;for(let a of j)if(a.test(b))return!0;return!1}function m(a){let b=k(a);if(l(b))return!1;if(g.includes(b))return!0;for(let a of f)if(b.startsWith(a))return!0;return!1}function n(a,b){let c=k(b),d=e().resolve(a,"files",c),f=e().resolve(a,"files");if(!d.startsWith(`${f}${e().sep}`)&&d!==f)throw Error(`Snapshot output path escapes files root: ${b}`);return d}[...f],[...g],[...h],[...i],j.map(a=>new RegExp(a))},88414:(a,b,c)=>{c.d(b,{Nk:()=>i,parseWorkspaceSnapshotManifestJson:()=>h});var d=c(8334),e=c(7285),f=c(87509),g=c(45191);function h(a){let b,c;try{b=JSON.parse(a)}catch{return{ok:!1,reason:"Workspace snapshot manifest JSON is malformed."}}if(!b||"object"!=typeof b)return{ok:!1,reason:"Workspace snapshot manifest JSON is malformed."};let h=b;if(h.schemaVersion!==d.Al)return{ok:!1,reason:`Unsupported workspace snapshot schema version ${String(h.schemaVersion)}.`};if(h.product!==d.bS)return{ok:!1,reason:`Unexpected workspace snapshot product ${String(h.product)}.`};if(h.role!==d.i2)return{ok:!1,reason:`Unexpected workspace snapshot role ${String(h.role)}.`};if(h.packageName!==e.Au)return{ok:!1,reason:`Unexpected workspace snapshot package name ${String(h.packageName)}.`};if("string"!=typeof h.packageVersion||!h.packageVersion.trim())return{ok:!1,reason:"Workspace snapshot manifest is missing packageVersion."};if(h.sourceRepository!==d.Ig)return{ok:!1,reason:`Unexpected workspace snapshot source repository ${String(h.sourceRepository)}.`};if("string"!=typeof h.sourceCommit||!/^[0-9a-f]{40}$/.test(h.sourceCommit))return{ok:!1,reason:"Workspace snapshot manifest is missing a valid sourceCommit."};if("string"!=typeof h.snapshotContentId||!/^[0-9a-f]{64}$/.test(h.snapshotContentId))return{ok:!1,reason:"Workspace snapshot manifest is missing snapshotContentId."};if("string"!=typeof h.snapshotSha256||!/^[0-9a-f]{64}$/.test(h.snapshotSha256))return{ok:!1,reason:"Workspace snapshot manifest is missing snapshotSha256."};if("string"!=typeof h.gitRootTreeSha1||!/^[0-9a-f]{40}$/.test(h.gitRootTreeSha1))return{ok:!1,reason:"Workspace snapshot manifest is missing gitRootTreeSha1."};if("number"!=typeof h.fileCount||!Number.isFinite(h.fileCount))return{ok:!1,reason:"Workspace snapshot manifest is missing fileCount."};if(!h.generation||"object"!=typeof h.generation)return{ok:!1,reason:"Workspace snapshot manifest is missing generation metadata."};let i=h.generation;if(i.format!==d.ll)return{ok:!1,reason:`Unsupported workspace snapshot generation format ${String(i.format)}.`};if(i.version!==d.Q$)return{ok:!1,reason:`Unsupported workspace snapshot generation version ${String(i.version)}.`};if("utf8-bytes"!==i.pathOrdering)return{ok:!1,reason:`Unsupported workspace snapshot path ordering ${String(i.pathOrdering)}.`};if("sha256"!==i.digestAlgorithm)return{ok:!1,reason:`Unsupported workspace snapshot digest algorithm ${String(i.digestAlgorithm)}.`};if(!Array.isArray(h.files))return{ok:!1,reason:"Workspace snapshot manifest is missing files."};let j=[],k=new Set;for(let a of h.files){let b;if(!a||"object"!=typeof a)return{ok:!1,reason:"Workspace snapshot manifest contains an invalid file entry."};if("string"!=typeof a.path||!a.path.trim())return{ok:!1,reason:"Workspace snapshot manifest contains a file without path."};if("file"!==a.type&&"symlink"!==a.type)return{ok:!1,reason:`Unsupported snapshot file type ${String(a.type)}.`};if("string"!=typeof a.mode||!a.mode.trim())return{ok:!1,reason:`Snapshot file ${a.path} is missing mode.`};if("number"!=typeof a.size||!Number.isFinite(a.size))return{ok:!1,reason:`Snapshot file ${a.path} is missing size.`};if("string"!=typeof a.sha256||!/^[0-9a-f]{64}$/.test(a.sha256))return{ok:!1,reason:`Snapshot file ${a.path} is missing sha256.`};if("string"!=typeof a.gitBlobSha1||!/^[0-9a-f]{40}$/.test(a.gitBlobSha1))return{ok:!1,reason:`Snapshot file ${a.path} is missing gitBlobSha1.`};try{b=(0,f.b6)(String(a.path))}catch{return{ok:!1,reason:`Snapshot file path is not canonical: ${String(a.path)}`}}if(b!==a.path)return{ok:!1,reason:`Snapshot file path is not canonical: ${String(a.path)}`};if(k.has(b))return{ok:!1,reason:`Duplicate snapshot path: ${b}`};if(k.add(b),(0,f.lw)(b))return{ok:!1,reason:`Forbidden snapshot path: ${b}`};let c={path:a.path,type:a.type,mode:a.mode,size:a.size,sha256:a.sha256,gitBlobSha1:a.gitBlobSha1};if("file"===c.type&&"100644"!==c.mode&&"100755"!==c.mode)return{ok:!1,reason:`Snapshot file ${c.path} has invalid file mode ${c.mode}.`};if("symlink"===c.type&&"120000"!==c.mode)return{ok:!1,reason:`Snapshot symlink ${c.path} must use mode 120000.`};if(!["100644","100755","120000"].includes(c.mode))return{ok:!1,reason:`Unsupported snapshot mode ${c.mode} for ${c.path}.`};j.push(c)}try{c=function(a){if(void 0!==a){if(!a||"object"!=typeof a)throw Error("Workspace snapshot gitObjectPack is invalid.");if("string"!=typeof a.packPath||"string"!=typeof a.indexPath||!a.packPath.startsWith("object-pack/")||!a.indexPath.startsWith("object-pack/")||!a.packPath.endsWith(".pack")||!a.indexPath.endsWith(".idx"))throw Error("Workspace snapshot gitObjectPack paths are invalid.");if("string"!=typeof a.packSha1||!/^[0-9a-f]{40}$/.test(a.packSha1))throw Error("Workspace snapshot gitObjectPack is missing packSha1.");if("string"!=typeof a.packSha256||!/^[0-9a-f]{64}$/.test(a.packSha256))throw Error("Workspace snapshot gitObjectPack is missing packSha256.");if("number"!=typeof a.objectCount||!Number.isFinite(a.objectCount))throw Error("Workspace snapshot gitObjectPack is missing objectCount.");if("number"!=typeof a.packSizeBytes||!Number.isFinite(a.packSizeBytes))throw Error("Workspace snapshot gitObjectPack is missing packSizeBytes.");return{packPath:a.packPath,indexPath:a.indexPath,packSha1:a.packSha1,packSha256:a.packSha256,objectCount:a.objectCount,packSizeBytes:a.packSizeBytes}}}(h.gitObjectPack)}catch(a){return{ok:!1,reason:a instanceof Error?a.message:"Workspace snapshot gitObjectPack is invalid."}}let l={schemaVersion:d.Al,product:d.bS,role:d.i2,packageName:e.Au,packageVersion:String(h.packageVersion).trim(),sourceRepository:d.Ig,sourceCommit:String(h.sourceCommit),snapshotContentId:String(h.snapshotContentId),snapshotSha256:String(h.snapshotSha256),gitRootTreeSha1:String(h.gitRootTreeSha1),fileCount:h.fileCount,generation:h.generation,gitObjectPack:c,files:(0,g.lp)(j)};if(l.fileCount!==l.files.length)return{ok:!1,reason:"Workspace snapshot manifest fileCount does not match files length."};let m=(0,g.dq)(l.files);if(l.snapshotSha256!==m)return{ok:!1,reason:"Workspace snapshot manifest snapshotSha256 does not match curated files."};let n=(0,g.Aw)({packageVersion:l.packageVersion,sourceCommit:l.sourceCommit,snapshotSha256:l.snapshotSha256});if(l.snapshotContentId!==n)return{ok:!1,reason:"Workspace snapshot manifest snapshotContentId does not match digest inputs."};let o=(0,g.dV)(l.files);return l.gitRootTreeSha1!==o?{ok:!1,reason:"Workspace snapshot manifest gitRootTreeSha1 does not match file tree."}:{ok:!0,manifest:l}}function i(a){return JSON.stringify({schemaVersion:a.schemaVersion,product:a.product,role:a.role,packageName:a.packageName,packageVersion:a.packageVersion,sourceRepository:a.sourceRepository,sourceCommit:a.sourceCommit,snapshotContentId:a.snapshotContentId,snapshotSha256:a.snapshotSha256,gitRootTreeSha1:a.gitRootTreeSha1,fileCount:a.fileCount})}},95203:(a,b,c)=>{c.d(b,{B:()=>f,N:()=>e});var d=c(67470);function e(a){if(a instanceof d.OS){if(401===a.status)return"github_auth_failure";if(409===a.status)return"pr_already_merged";if(405===a.status){let b=a.message.toLowerCase();if(b.includes("already been merged")||b.includes("already merged"))return"pr_already_merged"}}return"github_merge_failure"}function f(a){return"pr_already_merged"===e(a)}},95332:(a,b,c)=>{c.d(b,{GN:()=>i,Ht:()=>g,OI:()=>h,YP:()=>k,_e:()=>e,pB:()=>j});var d=c(13369);let e=d.H8,f=d._u.map(a=>({name:a.name,category:a.category,role:a.role,creatable:a.creatable}));function g(){return(0,d.TK)()}function h(a){return(0,d.y6)(a)}function i(){return f.map(a=>a.name)}function j(){return(0,d.UB)().map(a=>({name:a.name,category:a.category,role:a.role,creatable:a.creatable}))}function k(a){let b=(0,d.dx)(a);if(b)return{name:b.name,category:b.category,role:b.role,creatable:b.creatable}}}};