@overdeck/desktop 0.45.23 → 0.46.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 (549) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +34 -0
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-DOA0KgXx.js → acceptance-criteria-CCwFGICj.js} +2 -2
  4. package/server/activity-logger-CMthG6Vd.js +3 -0
  5. package/server/{activity-logger-DDlOIAML.js → activity-logger-CyteR4JO.js} +24 -13
  6. package/server/{advancing-selfheal-BBu6DSNm.js → advancing-selfheal-De1L-Sb4.js} +6 -6
  7. package/server/{agent-gc-BV1q_2EV.js → agent-gc-CBULruzm.js} +5 -5
  8. package/server/agent-state-VQk8fY9F.js +3 -0
  9. package/server/{agent-state-service-HoK8U4jW.js → agent-state-service-BlnSkRFA.js} +5 -5
  10. package/server/{agent-state-service-CnzFKSAQ.js → agent-state-service-hZpxIw1E.js} +1 -1
  11. package/server/agents-BKKkxKgK.js +3 -0
  12. package/server/{agents-B4Bjbkfv.js → agents-C5rWYhb6.js} +4 -4
  13. package/server/archive-planning-0FJ6Xd3b.js +2 -0
  14. package/server/{archive-planning-DYrYojxl.js → archive-planning-C0lAbNB_.js} +16 -24
  15. package/server/{artifact-index-jobs-C-xy7Z5v.js → artifact-index-jobs-ug6ZxIP5.js} +2 -2
  16. package/server/assemble-DnffNpOo.js +339 -0
  17. package/server/{backlog-auto-trigger-GtG71X8H.js → backlog-auto-trigger-Dh-i9PQf.js} +3 -3
  18. package/server/{behavior-B_-4EKF3.js → behavior-CfIg6pKp.js} +2 -2
  19. package/server/bridge-pool-patrol-CUFmjVDN.js +136 -0
  20. package/server/{briefing-freshness-DWdW7vUm.js → briefing-freshness-DHmCSLar.js} +2 -2
  21. package/server/{build-info-DgTqZkL5.js → build-info-BP160gU7.js} +1 -1
  22. package/server/{build-info-BT096lEl.js → build-info-CuFfxZxp.js} +5 -3
  23. package/server/{checkpoint-manager-DDqcGyu8.js → checkpoint-manager-DEWD82qK.js} +2 -2
  24. package/server/{checkpoint-manager-B7Bt29J0.js → checkpoint-manager-Dxh0FYsv.js} +1 -1
  25. package/server/checkpoint-worker.js +1 -1
  26. package/server/{checkpoints-C-AXLfYT.js → checkpoints-CZvbtLnr.js} +2 -2
  27. package/server/{checkpoints-CpgCjAlN.js → checkpoints-DMTgXuLG.js} +1 -1
  28. package/server/{claude-hooks-provision-C8wdRnN1.js → claude-hooks-provision-CN-xo-do.js} +1 -1
  29. package/server/{claude-hooks-provision-but-_qGY.js → claude-hooks-provision-fvy4RD2b.js} +13 -2
  30. package/server/{claude-permissions-H_5wHQZQ.js → claude-permissions-CN0cSCPp.js} +2 -2
  31. package/server/{claude-settings-overlay-CbSz0Dvb.js → claude-settings-overlay-CJn35FHQ.js} +2 -2
  32. package/server/{claude-settings-overlay-BTENVmYf.js → claude-settings-overlay-Dabi9slj.js} +1 -1
  33. package/server/cli-DmXETsw-.js +3 -0
  34. package/server/{cli-vBeXbPrq.js → cli-oCWYA1pE.js} +9 -9
  35. package/server/{cliproxy-Bgb2XCqi.js → cliproxy-C8mB3KuB.js} +2 -2
  36. package/server/{cliproxy-DW0V86F8.js → cliproxy-PGwTX_o8.js} +1 -1
  37. package/server/{close-issue-Dn_4c4G8.js → close-issue-D5MF5GqF.js} +5 -5
  38. package/server/{closed-issue-reaper-CWpY2uBw.js → closed-issue-reaper-CJ24u0Zt.js} +1 -1
  39. package/server/{closed-issue-reaper-hANY_ehE.js → closed-issue-reaper-Cltx86x5.js} +37 -16
  40. package/server/{codex-Dg7Is5yb.js → codex-BdEsUFWh.js} +1 -1
  41. package/server/{codex-TmSi-yTv.js → codex-Drlf5Xhf.js} +37 -8
  42. package/server/{codex-parser-C4gSH-IR.js → codex-parser-DpB89Vqa.js} +2 -2
  43. package/server/compaction-continuation-K2AxQX4H.js +200 -0
  44. package/server/{config-DjLOdbgT.js → config-B2IMcBxx.js} +4 -3
  45. package/server/{config-DUIhMN_T.js → config-DV-grfQc.js} +1 -1
  46. package/server/{config-CCvjQf27.js → config-Dr3pW6w6.js} +2 -2
  47. package/server/{config-yaml-DvyMuOle.js → config-yaml-CmOPzmBb.js} +290 -22
  48. package/server/{conflict-gate-CmrYpa47.js → conflict-gate-B9cN3SBi.js} +4 -4
  49. package/server/{conflict-gate-BSJkNTdp.js → conflict-gate-Dh754uyA.js} +1 -1
  50. package/server/context-layers-D6LZo3l1.js +4 -0
  51. package/server/context-layers-dR5YxHYB.js +37 -0
  52. package/server/{control-settings-aP1ANIlI.js → control-settings-C7DUehE1.js} +49 -19
  53. package/server/{conversation-compaction-CNbTLB86.js → conversation-compaction-BoqdDXWF.js} +8 -8
  54. package/server/{conversation-compaction-DiG5zWQq.js → conversation-compaction-Dj4FAKoZ.js} +1 -1
  55. package/server/{conversation-service-Du-MTNpJ.js → conversation-service-5aCnq1zR.js} +331 -20
  56. package/server/conversation-service-BCxl4f8Z.js +3 -0
  57. package/server/{conversations-DbOs1e9Q.js → conversations-BUpYsOZg.js} +5 -5
  58. package/server/{conversations-6mPANqvL.js → conversations-C34dyIb9.js} +1 -1
  59. package/server/{cost-Ca0YTWDw.js → cost-Bgcub5kW.js} +12 -2
  60. package/server/{cost-CW4WSe72.js → cost-CvxRrucd.js} +3 -3
  61. package/server/{cost-sync-C0VdGme1.js → cost-sync-Dv3LUaNW.js} +3 -3
  62. package/server/{dag-CdOjJVDT.js → dag-ombYYt4s.js} +2 -2
  63. package/server/{dangerous-git-ops-CT-IypG3.js → dangerous-git-ops-BcJPC5Rr.js} +1 -1
  64. package/server/dashboard-db-worker.js +7 -7
  65. package/server/deacon-DrXqT9LQ.js +4 -0
  66. package/server/{deacon-pRnyD5w9.js → deacon-hi9KLPLT.js} +2998 -2659
  67. package/server/{deacon-nudge-log-Bjg8U4Y9.js → deacon-nudge-log-BNBebzeL.js} +3 -3
  68. package/server/deacon-pending-lifecycle-Cpk0k7Hi.js +33 -0
  69. package/server/{deacon-swarm-DftYRDo8.js → deacon-swarm-DBxUaO-A.js} +13 -13
  70. package/server/deacon-swarm-I2JfX5Tg.js +2 -0
  71. package/server/deacon.js +14 -19
  72. package/server/dead-end-trip-CQcP70ND.js +13 -0
  73. package/server/delivery-Da0zEMY4.js +3 -0
  74. package/server/{deploy-patrol-Bjsho_ha.js → deploy-patrol-Df-Tmaq0.js} +69 -18
  75. package/server/deploy-queue-9SrhZR63.js +3 -0
  76. package/server/deploy-queue-UjKGYsDe.js +169 -0
  77. package/server/deploy-window-jOiPRHL0.js +3 -0
  78. package/server/{deploy-window-DeP_OIRk.js → deploy-window-rpqpWqHA.js} +40 -16
  79. package/server/{dev-supervisor-BpMoHlkR.js → dev-supervisor-CC46Ig8q.js} +2 -2
  80. package/server/{devcontainer-renderer-CtUgrVKW.js → devcontainer-renderer-68CSCRnu.js} +3 -3
  81. package/server/{dist-DyRx4cI7.js → dist-CJy72uEg.js} +1 -1
  82. package/server/dist-DSlxIU1H.js +3 -0
  83. package/server/{dist-src-BSoS7mkd.js → dist-src-Bik83hFi.js} +1 -1
  84. package/server/docker-BMVTSFL5.js +3 -0
  85. package/server/{docker-BK7HIcBj.js → docker-Dam7mbIB.js} +2 -2
  86. package/server/{dod-BrSfUHm0.js → dod-Dar-yheg.js} +8 -4
  87. package/server/durable-review-pipeline-CGZ5QBxh.js +17 -0
  88. package/server/durable-review-pipeline-jpgCJZFp.js +3 -0
  89. package/server/{ensure-devcontainer-DseivYEy.js → ensure-devcontainer-B057YA81.js} +4 -4
  90. package/server/{ensure-devcontainer-DRqaAkBR.js → ensure-devcontainer-C98V8yW-.js} +1 -1
  91. package/server/{esm-shims-CbI3BVkl.js → esm-shims-Br9BPdkR.js} +1 -1
  92. package/server/{event-store-Cr5PQwFC.js → event-store-ELqkVOn0.js} +1 -1
  93. package/server/{event-store-tdiY5eDZ.js → event-store-zY5MJHgF.js} +23 -4
  94. package/server/{events-CvvGK6LT.js → events-D6pyqhzM.js} +1 -1
  95. package/server/{events-CC1dgUpx.js → events-D9PR1IC0.js} +3 -3
  96. package/server/{factory-CynerjXO.js → factory-CRoOpGsF.js} +5 -5
  97. package/server/{feature-registry-population-B0pmAz0a.js → feature-registry-population--YUXU999.js} +4 -4
  98. package/server/{feature-registry-storage-_wUBRD3J.js → feature-registry-storage-BORBTo0y.js} +2 -2
  99. package/server/{features-Dhxz-wLc.js → features--nFkJY8v.js} +2 -2
  100. package/server/{feedback-target-iygZwmMc.js → feedback-target-C0ZzyHvU.js} +1 -1
  101. package/server/{feedback-target-CPS15Vte.js → feedback-target-Dt9BsapX.js} +8 -8
  102. package/server/{feedback-writer-C9b6ccN1.js → feedback-writer-BG0RUZiu.js} +5 -5
  103. package/server/{feedback-writer-qmiMbqTZ.js → feedback-writer-D1fm-5Z8.js} +1 -1
  104. package/server/flywheel-BekukH4i.js +2 -0
  105. package/server/flywheel-BiT3odRb.js +1092 -0
  106. package/server/flywheel-CLVB55Be.js +478 -0
  107. package/server/flywheel-merge-order-BJv1DZz1.js +462 -0
  108. package/server/flywheel-merge-order-BKw9o6ku.js +2 -0
  109. package/server/forge-CZbSg6Ds.js +383 -0
  110. package/server/forge-DK3blQb_.js +3 -0
  111. package/server/{from-CJ_aH5jD.js → from-D_4_dk7i.js} +1 -1
  112. package/server/{fts-db-CKgg0VKg.js → fts-db-BeOomFa-.js} +2 -2
  113. package/server/{fts-operations-BrL_VTRr.js → fts-operations-BdewJ_g9.js} +2 -2
  114. package/server/git-utils-CI6cwyyC.js +3 -0
  115. package/server/{git-utils-BVa07a4a.js → git-utils-ameCgDdy.js} +93 -3
  116. package/server/{github-app-CMBdIFBQ.js → github-app-CQ1Lo6LA.js} +19 -8
  117. package/server/{github-app-CPfoFAdV.js → github-app-DtAsvwzK.js} +1 -1
  118. package/server/{github-client--XVlDpwM.js → github-client-BfyDxuRN.js} +2 -2
  119. package/server/{github-client-B4QsdE-X.js → github-client-Cj0yl_07.js} +1 -1
  120. package/server/github-pr-lookup-BDq6Wznz.js +58 -0
  121. package/server/{harness-binary-CVio2m-u.js → harness-binary-DqkftwTb.js} +32 -6
  122. package/server/{harness-resolve-qHJBhy3Z.js → harness-resolve-CqMqM1Mb.js} +18 -9
  123. package/server/{health-events-C9B8y1Hm.js → health-events-CazRxJUS.js} +2 -2
  124. package/server/{health-events-CpfvuVmm.js → health-events-_xfTaOUs.js} +1 -1
  125. package/server/{hooks-DUXw8A0-.js → hooks-BO3QT1sn.js} +2 -2
  126. package/server/{hooks-ltecuFqZ.js → hooks-BnJsxlSq.js} +1 -1
  127. package/server/{hume-BEq0bUDg.js → hume-CDYJxqx-.js} +2 -2
  128. package/server/hume-Dq--7rOQ.js +3 -0
  129. package/server/{idle-stack-reaper-D7w9t3fE.js → idle-stack-reaper-BYqERdkE.js} +1 -1
  130. package/server/{idle-stack-reaper-w1ISSlhs.js → idle-stack-reaper-CnGx_PO_.js} +99 -6
  131. package/server/in-flight-guard-Bq3epG58.js +45 -0
  132. package/server/{infra-CzaSOgul.js → infra-BjuxvjdS.js} +80 -5
  133. package/server/{injection-oNZeoDhL.js → injection-DZxlV2al.js} +1 -1
  134. package/server/{injection-DZ0PfYa4.js → injection-UCf8EsjX.js} +191 -183
  135. package/server/{inspect-agent-DJKLWcVT.js → inspect-agent-6kylZnrm.js} +139 -82
  136. package/server/inspect-agent-BVwDrVrz.js +2 -0
  137. package/server/{internal-token-Bb4XeV2x.js → internal-token-DvMTQSOS.js} +2 -2
  138. package/server/{internal-token-DXdfprGr.js → internal-token-M9omeXM1.js} +1 -1
  139. package/server/{io-B3_AHDfr.js → io-VHvc0Ssp.js} +43 -26
  140. package/server/{issue-closed-zhdvQicO.js → issue-closed-B6KJkmHZ.js} +7 -7
  141. package/server/{issue-lifecycle-Dy4vd0Oa.js → issue-lifecycle-9gk3fnXN.js} +1 -1
  142. package/server/{issue-lifecycle-CreaCkjW.js → issue-lifecycle-C4Zj0WmE.js} +34 -28
  143. package/server/{issue-service-singleton-B5ushCvE.js → issue-service-singleton-DmCh7EHj.js} +10 -10
  144. package/server/{issue-service-singleton-DabvBWUp.js → issue-service-singleton-PMx8F1jr.js} +1 -1
  145. package/server/{issues-B6ToV6x1.js → issues-CgnQ1OGQ.js} +2 -2
  146. package/server/{jsonl-parser-Dhflo1SH.js → jsonl-parser-DJOH_O-w.js} +5 -4
  147. package/server/{label-cleanup-BKPJm4Hv.js → label-cleanup-Dv7AV_R1.js} +3 -3
  148. package/server/{label-reconciler-DdWbHEBu.js → label-reconciler--F85rufp.js} +4 -4
  149. package/server/{lifecycle-DfeyBDwA.js → lifecycle-CTdOWYMi.js} +2 -2
  150. package/server/{lifecycle-sycO16hj.js → lifecycle-DDN8ApVY.js} +6 -7
  151. package/server/{lifecycle-io-D8iNBcux.js → lifecycle-io-D-lGdzK3.js} +5 -5
  152. package/server/{lifecycle-io-Bsnr2K4F.js → lifecycle-io-D_zTLvP1.js} +1 -1
  153. package/server/{linear-client-D4zqMnX7.js → linear-client-BQU36QqE.js} +2 -2
  154. package/server/{linear-client-DqhDQO9k.js → linear-client-CY4O_Tu3.js} +1 -1
  155. package/server/linear-mcp-auth-BnU4TYfY.js +280 -0
  156. package/server/linear-mcp-auth-NYBq_oHZ.js +2 -0
  157. package/server/memory-fts-worker.js +1 -1
  158. package/server/{merge-C_ZEhbqI.js → merge-Bpx4jjht.js} +13 -11
  159. package/server/{merge-agent-XrB80vfT.js → merge-agent-DdMVSV2Y.js} +233 -83
  160. package/server/{merge-agent-BQM3a8z5.js → merge-agent-DrXa1CpW.js} +1 -1
  161. package/server/{merge-batch-Bwoyr8Je.js → merge-batch-C5q1c1GX.js} +1 -1
  162. package/server/merge-completeness-BMm8tMyZ.js +277 -0
  163. package/server/merge-completeness-D0ljXbk3.js +3 -0
  164. package/server/{merge-DK23JEdS.js → merge-idOG--29.js} +1 -1
  165. package/server/merge-ops-DdpTiEMt.js +2 -0
  166. package/server/merge-rebase-DGQpYJU3.js +2 -0
  167. package/server/{merge-rebase-C1KIVr0s.js → merge-rebase-xLnMlw5h.js} +3 -3
  168. package/server/merge-set-DH7ot3yz.js +89 -0
  169. package/server/merge-set-DzsOTBg5.js +3 -0
  170. package/server/{merge-sync-DZ9dojJn.js → merge-sync-CQ-LgZ1_.js} +406 -153
  171. package/server/merge-sync-Ca7F5JnQ.js +3 -0
  172. package/server/{merge-train-DxDfBTjr.js → merge-train-DTEMyIu4.js} +18 -8
  173. package/server/{merge-train-deps-CyYQUksx.js → merge-train-deps-CNPJzepw.js} +4 -4
  174. package/server/merge-verification-x3JO8Dtz.js +220 -0
  175. package/server/merged-docker-cleanup-worker-CTpC27Bs.js +107 -0
  176. package/server/merged-docker-cleanup-worker-Cdi9apm-.js +3 -0
  177. package/server/{multipart-parser-Dt8YPN5S.js → multipart-parser-IMSBfePV.js} +2 -2
  178. package/server/{no-resume-mode-Cx3K0hHi.js → no-resume-mode-C5ULAXwO.js} +1 -1
  179. package/server/node_modules/.package-lock.json +27 -27
  180. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  181. package/server/node_modules/@google-cloud/common/package.json +2 -2
  182. package/server/node_modules/gaxios/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  183. package/server/node_modules/gaxios/build/esm/tsconfig.tsbuildinfo +1 -1
  184. package/server/node_modules/gaxios/package.json +1 -1
  185. package/server/node_modules/google-auth-library/build/src/auth/googleauth.js +24 -19
  186. package/server/node_modules/google-auth-library/package.json +1 -1
  187. package/server/node_modules/google-gax/build/protos/google/api/auth.proto +2 -1
  188. package/server/node_modules/google-gax/build/protos/google/api/backend.proto +12 -1
  189. package/server/node_modules/google-gax/build/protos/google/api/billing.proto +1 -1
  190. package/server/node_modules/google-gax/build/protos/google/api/client.proto +165 -53
  191. package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1/resources.proto +1 -1
  192. package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/quota_adjuster_settings.proto +7 -3
  193. package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/resources.proto +1 -1
  194. package/server/node_modules/google-gax/build/protos/google/api/config_change.proto +1 -1
  195. package/server/node_modules/google-gax/build/protos/google/api/context.proto +1 -1
  196. package/server/node_modules/google-gax/build/protos/google/api/control.proto +3 -3
  197. package/server/node_modules/google-gax/build/protos/google/api/distribution.proto +1 -1
  198. package/server/node_modules/google-gax/build/protos/google/api/documentation.proto +1 -1
  199. package/server/node_modules/google-gax/build/protos/google/api/endpoint.proto +1 -1
  200. package/server/node_modules/google-gax/build/protos/google/api/error_reason.proto +186 -1
  201. package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/checked.proto +31 -3
  202. package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/eval.proto +8 -9
  203. package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/explain.proto +1 -2
  204. package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/syntax.proto +20 -22
  205. package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/value.proto +2 -3
  206. package/server/node_modules/google-gax/build/protos/google/api/field_behavior.proto +1 -1
  207. package/server/node_modules/google-gax/build/protos/google/api/field_info.proto +1 -1
  208. package/server/node_modules/google-gax/build/protos/google/api/http.proto +1 -1
  209. package/server/node_modules/google-gax/build/protos/google/api/httpbody.proto +1 -1
  210. package/server/node_modules/google-gax/build/protos/google/api/label.proto +1 -1
  211. package/server/node_modules/google-gax/build/protos/google/api/launch_stage.proto +1 -1
  212. package/server/node_modules/google-gax/build/protos/google/api/log.proto +1 -1
  213. package/server/node_modules/google-gax/build/protos/google/api/logging.proto +1 -1
  214. package/server/node_modules/google-gax/build/protos/google/api/metric.proto +1 -1
  215. package/server/node_modules/google-gax/build/protos/google/api/monitored_resource.proto +1 -1
  216. package/server/node_modules/google-gax/build/protos/google/api/monitoring.proto +1 -1
  217. package/server/node_modules/google-gax/build/protos/google/api/policy.proto +1 -1
  218. package/server/node_modules/google-gax/build/protos/google/api/quota.proto +1 -1
  219. package/server/node_modules/google-gax/build/protos/google/api/resource.proto +1 -1
  220. package/server/node_modules/google-gax/build/protos/google/api/routing.proto +8 -4
  221. package/server/node_modules/google-gax/build/protos/google/api/service.proto +2 -3
  222. package/server/node_modules/google-gax/build/protos/google/api/source_info.proto +1 -1
  223. package/server/node_modules/google-gax/build/protos/google/api/system_parameter.proto +1 -1
  224. package/server/node_modules/google-gax/build/protos/google/api/usage.proto +7 -27
  225. package/server/node_modules/google-gax/build/protos/google/api/visibility.proto +1 -1
  226. package/server/node_modules/google-gax/build/protos/google/longrunning/operations.proto +20 -1
  227. package/server/node_modules/google-gax/build/protos/google/protobuf/any.proto +52 -108
  228. package/server/node_modules/google-gax/build/protos/google/protobuf/compiler/ruby/ruby_generated_code.proto +2 -0
  229. package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_features.proto +21 -1
  230. package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_file_options.proto +24 -0
  231. package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_options.proto +15 -0
  232. package/server/node_modules/google-gax/build/protos/google/protobuf/descriptor.proto +118 -30
  233. package/server/node_modules/google-gax/build/protos/google/protobuf/field_mask.proto +16 -18
  234. package/server/node_modules/google-gax/build/protos/google/protobuf/internal_options.proto +8 -1
  235. package/server/node_modules/google-gax/build/protos/google/protobuf/json/json_enumval_custom_string.proto +26 -0
  236. package/server/node_modules/google-gax/build/protos/google/protobuf/json_enumvalue_options.proto +29 -0
  237. package/server/node_modules/google-gax/build/protos/google/protobuf/json_options.proto +14 -0
  238. package/server/node_modules/google-gax/build/protos/google/protobuf/struct.proto +38 -22
  239. package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/forced_micro_string.proto +3 -0
  240. package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/repeated_field_proxy_import_message.proto +14 -0
  241. package/server/node_modules/google-gax/build/protos/google/protobuf/timestamp.proto +9 -8
  242. package/server/node_modules/google-gax/build/protos/google/protobuf/util/json_format_proto3.proto +18 -0
  243. package/server/node_modules/google-gax/build/protos/google/rpc/code.proto +1 -1
  244. package/server/node_modules/google-gax/build/protos/google/rpc/context/attribute_context.proto +7 -2
  245. package/server/node_modules/google-gax/build/protos/google/rpc/context/audit_context.proto +1 -1
  246. package/server/node_modules/google-gax/build/protos/google/rpc/error_details.proto +5 -5
  247. package/server/node_modules/google-gax/build/protos/google/rpc/http.proto +1 -1
  248. package/server/node_modules/google-gax/build/protos/google/rpc/status.proto +1 -2
  249. package/server/node_modules/google-gax/build/protos/google/type/calendar_period.proto +1 -1
  250. package/server/node_modules/google-gax/build/protos/google/type/color.proto +9 -10
  251. package/server/node_modules/google-gax/build/protos/google/type/date.proto +11 -9
  252. package/server/node_modules/google-gax/build/protos/google/type/datetime.proto +17 -17
  253. package/server/node_modules/google-gax/build/protos/google/type/dayofweek.proto +1 -1
  254. package/server/node_modules/google-gax/build/protos/google/type/decimal.proto +11 -13
  255. package/server/node_modules/google-gax/build/protos/google/type/expr.proto +1 -1
  256. package/server/node_modules/google-gax/build/protos/google/type/fraction.proto +1 -1
  257. package/server/node_modules/google-gax/build/protos/google/type/interval.proto +1 -2
  258. package/server/node_modules/google-gax/build/protos/google/type/latlng.proto +4 -5
  259. package/server/node_modules/google-gax/build/protos/google/type/localized_text.proto +3 -3
  260. package/server/node_modules/google-gax/build/protos/google/type/money.proto +1 -2
  261. package/server/node_modules/google-gax/build/protos/google/type/month.proto +1 -1
  262. package/server/node_modules/google-gax/build/protos/google/type/phone_number.proto +20 -15
  263. package/server/node_modules/google-gax/build/protos/google/type/postal_address.proto +39 -39
  264. package/server/node_modules/google-gax/build/protos/google/type/quaternion.proto +4 -4
  265. package/server/node_modules/google-gax/build/protos/google/type/timeofday.proto +11 -8
  266. package/server/node_modules/google-gax/package.json +5 -5
  267. package/server/node_modules/retry-request/package.json +4 -4
  268. package/server/node_modules/teeny-request/package.json +5 -5
  269. package/server/node_modules/undici/README.md +5 -0
  270. package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
  271. package/server/node_modules/undici/docs/docs/api/Dispatcher.md +6 -0
  272. package/server/node_modules/undici/docs/docs/api/Interceptors.md +59 -0
  273. package/server/node_modules/undici/docs/docs/api/MockAgent.md +27 -0
  274. package/server/node_modules/undici/docs/docs/api/MockPool.md +28 -1
  275. package/server/node_modules/undici/docs/docs/index.md +5 -0
  276. package/server/node_modules/undici/lib/cache/memory-cache-store.js +54 -9
  277. package/server/node_modules/undici/lib/cache/sqlite-cache-store.js +7 -1
  278. package/server/node_modules/undici/lib/core/request.js +13 -2
  279. package/server/node_modules/undici/lib/core/util.js +6 -1
  280. package/server/node_modules/undici/lib/dispatcher/agent.js +3 -3
  281. package/server/node_modules/undici/lib/dispatcher/client-h1.js +42 -8
  282. package/server/node_modules/undici/lib/dispatcher/client-h2.js +34 -43
  283. package/server/node_modules/undici/lib/global.js +36 -16
  284. package/server/node_modules/undici/lib/handler/cache-handler.js +269 -61
  285. package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +13 -3
  286. package/server/node_modules/undici/lib/handler/redirect-handler.js +5 -2
  287. package/server/node_modules/undici/lib/handler/retry-handler.js +30 -4
  288. package/server/node_modules/undici/lib/interceptor/cache.js +159 -52
  289. package/server/node_modules/undici/lib/interceptor/decompress.js +9 -2
  290. package/server/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
  291. package/server/node_modules/undici/lib/mock/mock-utils.js +39 -10
  292. package/server/node_modules/undici/lib/util/cache.js +372 -68
  293. package/server/node_modules/undici/lib/util/date.js +23 -6
  294. package/server/node_modules/undici/lib/web/cookies/util.js +78 -8
  295. package/server/node_modules/undici/lib/web/fetch/body.js +2 -1
  296. package/server/node_modules/undici/lib/web/fetch/response.js +1 -3
  297. package/server/node_modules/undici/package.json +2 -2
  298. package/server/node_modules/undici/types/client.d.ts +2 -2
  299. package/server/node_modules/undici/types/dispatcher.d.ts +3 -3
  300. package/server/node_modules/undici/types/mock-interceptor.d.ts +5 -1
  301. package/server/{orphan-proposed-reconciler-BTkDrl4R.js → orphan-proposed-reconciler-CWmOdM9-.js} +1 -1
  302. package/server/{orphan-proposed-reconciler-neK8dHQk.js → orphan-proposed-reconciler-Dg6U4ADZ.js} +24 -15
  303. package/server/package-lock.json +28 -28
  304. package/server/package.json +1 -1
  305. package/server/{pan-dir-DeVUgwA7.js → pan-dir-ubraCiUg.js} +24 -10
  306. package/server/{paths-_zEts6wc.js → paths-cXmOwSbh.js} +2 -2
  307. package/server/pending-lifecycle-claim-DEteYdS9.js +110 -0
  308. package/server/{pickup-Dd0Znxxy.js → pickup-D8xtG1J2.js} +17 -16
  309. package/server/pipeline-membership-BGSvkT2M.js +3 -0
  310. package/server/pipeline-membership-CrAPLYtf.js +57 -0
  311. package/server/{pipeline-membership-0HaEGDlH.js → pipeline-membership-gather-CET40frr.js} +177 -109
  312. package/server/pipeline-membership-gather-DTfcgxLl.js +3 -0
  313. package/server/{pipeline-notifier-D0ykk59O.js → pipeline-notifier-BuQ0e4hF.js} +2 -2
  314. package/server/{pipeline-notifier-6iCJplFZ.js → pipeline-notifier-ImNXknf0.js} +1 -1
  315. package/server/post-merge-lifecycle-worker-DbO10pum.js +50 -0
  316. package/server/{project-pipelines-2sK1apsO.js → project-pipelines-Bim6bThI.js} +2 -2
  317. package/server/project-repos-C0nuoBGv.js +98 -0
  318. package/server/project-repos-CRE6Ykow.js +3 -0
  319. package/server/projects-B03Wr-xc.js +3 -0
  320. package/server/{prompts-Dp4Tpk39.js → prompts-BEx08AIu.js} +2 -2
  321. package/server/{providers-DKkBXhxU.js → providers-D7IluJe0.js} +1 -1
  322. package/server/{providers-DV7ec8l7.js → providers-evXhiQeg.js} +7 -7
  323. package/server/public/assets/{chunk-BO2N2NFS-CltymLRg.js → chunk-BO2N2NFS-D1s4-Sqp.js} +4 -4
  324. package/server/public/assets/{diagram-OG6HWLK6-D2f6pjgA.js → diagram-OG6HWLK6-1gdMoSF7.js} +1 -1
  325. package/server/public/assets/{dist-BWR4qFiV.js → dist-CxAOHbil.js} +1 -1
  326. package/server/public/assets/{dist-DEmlBBNQ.js → dist-DqDRYW6P.js} +3 -3
  327. package/server/public/assets/{ganttDiagram-6RSMTGT7-DnfiViPK.js → ganttDiagram-6RSMTGT7-BYex-Ec7.js} +1 -1
  328. package/server/public/assets/{highlighted-body-OFNGDK62-B8Wrmj9H.js → highlighted-body-OFNGDK62-DlVkiG0S.js} +1 -1
  329. package/server/public/assets/index-Cc7cnFC4.css +1 -0
  330. package/server/public/assets/index-K0hAYCgV.js +807 -0
  331. package/server/public/assets/{linear-C9zFQpkX.js → linear-B4cuEFmO.js} +1 -1
  332. package/server/public/assets/mermaid-GHXKKRXX-DyDHFXHV.js +1 -0
  333. package/server/public/assets/{pieDiagram-4H26LBE5-lR8H7Yjd.js → pieDiagram-4H26LBE5-CBHNBIJQ.js} +1 -1
  334. package/server/public/assets/{prod-B1jCQihw.js → prod-CN2nHBvX.js} +4 -4
  335. package/server/public/assets/{quadrantDiagram-W4KKPZXB-CVQ2guem.js → quadrantDiagram-W4KKPZXB-Bom87VOQ.js} +1 -1
  336. package/server/public/assets/{sankeyDiagram-5OEKKPKP-eD1RB4gm.js → sankeyDiagram-5OEKKPKP-UrBeyLxk.js} +1 -1
  337. package/server/public/assets/{xychartDiagram-2RQKCTM6-ChEC6dQn.js → xychartDiagram-2RQKCTM6-DhkbrIxR.js} +1 -1
  338. package/server/public/index.html +2 -2
  339. package/server/{pull-requests--Ib2jTgy.js → pull-requests-Cv7LxzUN.js} +1 -1
  340. package/server/{pull-requests-CXIhdCYD.js → pull-requests-DHWiKxo7.js} +19 -10
  341. package/server/{queries-6d7Cdtm7.js → queries-DHJm7bTd.js} +1134 -203
  342. package/server/{rally-B708-nZn.js → rally-B71M9f4o.js} +3 -3
  343. package/server/rally-YDjU513q.js +3 -0
  344. package/server/{rally-api-yjQ0TfHd.js → rally-api-D5uXN08-.js} +1 -1
  345. package/server/{rally-api-nY0ZANw3.js → rally-api-Dkqmok65.js} +2 -2
  346. package/server/{rally-client-B1EJhfV0.js → rally-client-Bfqm6XI4.js} +4 -4
  347. package/server/{rally-client-CULK2XAY.js → rally-client-CxsA6ExK.js} +1 -1
  348. package/server/{reap-terminal-sessions-MWnqdLCJ.js → reap-terminal-sessions-BQ23nriz.js} +2 -2
  349. package/server/{reap-terminal-sessions-N3BTkmX_.js → reap-terminal-sessions-CvmwaqKv.js} +2 -2
  350. package/server/{rebuild-stack-Dp4eLkt4.js → rebuild-stack-0EEYReVZ.js} +36 -36
  351. package/server/rebuild-stack-qeRqHZxH.js +4 -0
  352. package/server/{reconstruct-cache-uWbZfjms.js → reconstruct-cache-BbYFsqLa.js} +7 -6
  353. package/server/record-CtroO946.js +3 -0
  354. package/server/record-update-DH6dLJID.js +3 -0
  355. package/server/{record-update-Dq0t2uBG.js → record-update-Z0QCxmMp.js} +124 -34
  356. package/server/{recovery-trip-BJtIQuag.js → recovery-trip-eJe26h-f.js} +2 -2
  357. package/server/{release-engine-DZpmGGzb.js → release-engine-lPUp-MTd.js} +5 -5
  358. package/server/{release-set-hnXd_kga.js → release-set-BwGeyZKX.js} +3 -3
  359. package/server/{remote-Br-ZWVIP.js → remote-BCd02Es1.js} +3 -3
  360. package/server/{remote-4tiENDaI.js → remote-CVGUhXMV.js} +3 -3
  361. package/server/{remote-agents-CRCg1L4H.js → remote-agents-C1bssi41.js} +2 -2
  362. package/server/{remote-agents-nmty1mLu.js → remote-agents-C_VxssLU.js} +300 -46
  363. package/server/{remote-completion-BbWNd10K.js → remote-completion-DAB0P706.js} +12 -12
  364. package/server/resume-u9byntrq.js +3 -0
  365. package/server/{review-agent-DJRO8EG8.js → review-agent-CD4RCI0Y.js} +1 -1
  366. package/server/{review-agent-sKkE1FEL.js → review-agent-CHhI66UP.js} +61 -44
  367. package/server/{review-artifacts-BLbSC4ke.js → review-artifacts-DSMRIfuJ.js} +7 -6
  368. package/server/{review-context-BgX3lcCx.js → review-context-oFuBbiEE.js} +69 -25
  369. package/server/{in-flight-guard-aQ1IxeI3.js → review-convoy-liveness-CpzrcJ5F.js} +3 -44
  370. package/server/review-status-BZH8h-6W.js +3 -0
  371. package/server/review-status-emit-CUExtHd5.js +50 -0
  372. package/server/{review-status-enrichment-tbOn_A_u.js → review-status-enrichment-QV_hQkgS.js} +4 -4
  373. package/server/{review-status-source-CxuEjLGg.js → review-status-source-CpvJnvnQ.js} +24 -3
  374. package/server/review-status-source-ylw5QZUR.js +3 -0
  375. package/server/{review-status-sync-BhSQ0d0l.js → review-status-sync-483sujRo.js} +10 -5
  376. package/server/{review-status-sync-To3-iS-N.js → review-status-sync-NaWvI9Xf.js} +1 -1
  377. package/server/review-status-yljtTd-q.js +7521 -0
  378. package/server/{review-verdict-feedback-C1Kg8n7t.js → review-verdict-feedback-BPDn4li_.js} +1 -1
  379. package/server/{review-verdict-feedback-CTRNtzXO.js → review-verdict-feedback-CELeUinh.js} +48 -8
  380. package/server/{rollup-WA0VD-Rr.js → rollup-DTNvelz9.js} +8 -8
  381. package/server/{rollup-B53Y81xK.js → rollup-DYZfq1c4.js} +1 -1
  382. package/server/{scanner-D2743cp8.js → scanner-CV35oSn4.js} +42 -14
  383. package/server/{sequence-io-Cg0zYj_E.js → sequence-io-DF_8iuhV.js} +4 -4
  384. package/server/{sequencer-agent-BGY8gjg-.js → sequencer-agent-B2WeCtGi.js} +5 -5
  385. package/server/server.js +3899 -672
  386. package/server/{service-DCpB_SGd.js → service-Br9rpBNA.js} +83 -65
  387. package/server/{session-fork-BQ8_6H32.js → session-fork-D0LY152N.js} +2 -2
  388. package/server/{session-history-CVZDpS3c.js → session-history-BUyK29eq.js} +4 -4
  389. package/server/{settings-BZ5m1UCl.js → settings-Bse1Pdcj.js} +3 -3
  390. package/server/settings-CdvIF84R.js +2 -0
  391. package/server/{settings-ylxwqwQG.js → settings-CvVGqNEs.js} +3 -2
  392. package/server/{shadow-engineering-BlxG6Xye.js → shadow-engineering-BWLa8ODz.js} +2 -2
  393. package/server/{shadow-state-Dh-HzF2J.js → shadow-state-B4fpKxOO.js} +2 -2
  394. package/server/{shadow-state-C2_epgx2.js → shadow-state-FV6PHfEW.js} +1 -1
  395. package/server/{shadow-utils-4bvjn9b3.js → shadow-utils-D7asqxOZ.js} +2 -2
  396. package/server/{ship-log-ClSMIzZX.js → ship-log-xplJ8t75.js} +1 -1
  397. package/server/{smart-compaction-CHIxLr_d.js → smart-compaction-CPp2Ykf6.js} +1 -1
  398. package/server/{smart-compaction-r4pHQBIr.js → smart-compaction-D3U_79f-.js} +8 -7
  399. package/server/{spawn-planning-session-KC_UduxD.js → spawn-planning-session-1nFi3gfk.js} +1 -1
  400. package/server/{spawn-planning-session-DWAorh2B.js → spawn-planning-session-DGfZ5B8D.js} +30 -23
  401. package/server/{specialist-completion-BXhav38U.js → specialist-completion-Br48eiDP.js} +1 -1
  402. package/server/{specialist-context-DtrYvGJ-.js → specialist-context-cVbGnTa3.js} +5 -5
  403. package/server/{specialist-handoff-logger-C45ouoZ6.js → specialist-handoff-logger-DK-GTz4s.js} +2 -2
  404. package/server/{specialist-logs-DJ3RzKxW.js → specialist-logs-Cl5-hqT8.js} +3 -3
  405. package/server/{specialists-JVO00bs7.js → specialists-CNfYO3G2.js} +1634 -457
  406. package/server/{specialists-DyFeedjn.js → specialists-Cicieuzu.js} +21 -19
  407. package/server/{specialists-D5fRZXmN.js → specialists-JHsdU3pA.js} +1 -1
  408. package/server/{specialists-DVj0hvaL.js → specialists-Tdezg_6N.js} +1 -1
  409. package/server/specs-Bt7WJDoC.js +3 -0
  410. package/server/src-CRmCHlma.js +11408 -0
  411. package/server/{src-CG9mCkP6.js → src-Ck028hjO.js} +6 -6
  412. package/server/{src-CMTQGyCK.js → src-UWcGe0Ix.js} +5 -5
  413. package/server/stack-health-CJLMrLBl.js +3 -0
  414. package/server/{stack-health-puygdaMd.js → stack-health-DqSqx0zv.js} +68 -12
  415. package/server/{stale-task-claims-BbFwCTb0.js → stale-task-claims-CYFOUNlT.js} +4 -4
  416. package/server/{staleness-Cbl_w4Bw.js → staleness-BQ-0gMYK.js} +1 -1
  417. package/server/{staleness-Bpy41ngS.js → staleness-D47CUJok.js} +1 -1
  418. package/server/{state-home-CIGjwNfJ.js → state-home-BYV7qZTW.js} +2 -2
  419. package/server/{state-mapping-BL_-3Yt8.js → state-mapping-BVldLhBf.js} +1 -1
  420. package/server/{state-migrate-Dkzaxvny.js → state-migrate-CvvBtS0Y.js} +4 -4
  421. package/server/{stuck-remediation-sY_MHHgQ.js → stuck-remediation-Wt0UVvu1.js} +1 -1
  422. package/server/{stuck-remediation-CzEov_fq.js → stuck-remediation-mkLC6G_t.js} +360 -26
  423. package/server/{substrate-bug-weights-service-BH66lhm7.js → substrate-bug-weights-service-XfLAKnmK.js} +3 -3
  424. package/server/{summary-fork-D8bXjCr7.js → summary-fork-CD7GOts0.js} +2 -2
  425. package/server/{summary-fork-DHhJIsAL.js → summary-fork-xiXBnWG9.js} +78 -12
  426. package/server/supervisor/{injection-budget-C1iPirFS.js → injection-budget-B5SbvDx2.js} +2 -41
  427. package/server/supervisor/{paths-DehGY2Fj.js → paths-K3noE4N_.js} +1 -1
  428. package/server/supervisor/pty-supervisor.js +49 -2
  429. package/server/supervisor/pty-token-B7lp0ElT.js +43 -0
  430. package/server/{supervisor-BO-Zk_h-.js → supervisor-DL788vos.js} +3 -3
  431. package/server/supervisor-UWiQNK-y.js +2 -0
  432. package/server/{swarm-readiness-CQ_fwUWF.js → swarm-readiness-BV14DF5N.js} +3 -3
  433. package/server/{system-prerequisites-Bza0ffAh.js → system-prerequisites-pdWG6ZQs.js} +56 -29
  434. package/server/{teardown-workspace-CEgauF4U.js → teardown-workspace-l2F4_zim.js} +15 -16
  435. package/server/{test-agent-queue-DXDt0Xa-.js → test-agent-queue-qakFIIGz.js} +6 -6
  436. package/server/{test-verdict-CmUBK5cT.js → test-verdict-BJYDggMm.js} +1 -1
  437. package/server/{test-verdict-DFjjIHR5.js → test-verdict-Gw-btEfb.js} +1 -1
  438. package/server/{tldr-daemon-DL566HbH.js → tldr-daemon-BKOYB616.js} +1 -1
  439. package/server/{tldr-daemon-BDtLOIlO.js → tldr-daemon-CBaWkV9k.js} +2 -2
  440. package/server/{tmux-ftABRAmc.js → tmux-B1Wbxz5o.js} +3 -3
  441. package/server/{tmux-DoThH6aj.js → tmux-DQ6jB76i.js} +1 -1
  442. package/server/tmux-dedup-DbN6MGzM.js +892 -0
  443. package/server/{token-CsOhvw42.js → token-Cxbk023d.js} +2 -2
  444. package/server/{token-util-CTmczIfW.js → token-util-CLq2MmQt.js} +1 -1
  445. package/server/token-util-zlz9U0ki.js +3 -0
  446. package/server/{tracker-config-B4itFzDo.js → tracker-config-DZ8Zn2nQ.js} +2 -2
  447. package/server/{tracker-utils-tnxxqROg.js → tracker-utils-L0FKtjq2.js} +3 -3
  448. package/server/{traefik-connect-m73vGebA.js → traefik-connect-bNX6jKkb.js} +1 -1
  449. package/server/{tunnel-B2vxjx_b.js → tunnel-BAm1XgjG.js} +3 -3
  450. package/server/{tunnel-Cgj-IGIl.js → tunnel-CjSnHdTc.js} +1 -1
  451. package/server/{types-BBNjPcqU.js → types-q67TYYg5.js} +1 -1
  452. package/server/uat-promote-verification-CKB9ZrKC.js +92 -0
  453. package/server/uat-train-Cu-4nvbf.js +2 -0
  454. package/server/uat-train-D5UjcyAa.js +0 -0
  455. package/server/validate-Cxsx5Uz1.js +179 -0
  456. package/server/{validation-CIi6pnI2.js → validation-DEaTZafj.js} +1 -1
  457. package/server/{validation-B5JxoPUS.js → validation-VZgJxmqc.js} +4 -4
  458. package/server/{verification-artifact-C-lIHfUa.js → verification-artifact-C85cRTc_.js} +1 -1
  459. package/server/{verification-artifact-BcnIbigL.js → verification-artifact-g3yuxQDL.js} +1 -1
  460. package/server/{verification-runner-CDj4lD4t.js → verification-runner-DlZI8yhw.js} +1 -1
  461. package/server/{verification-runner-Br0S_Ous.js → verification-runner-KDZIsBj4.js} +114 -107
  462. package/server/{vtt-parser-DKpNNW5i.js → vtt-parser-Jr94BF3Y.js} +1 -1
  463. package/server/{work-agent-prompt-Yb2bd3Fq.js → work-agent-prompt-C-vuP3_J.js} +20 -9
  464. package/server/workflows-CHrx_hcW.js +2 -0
  465. package/server/{workflows-C9WmILql.js → workflows-D0oip4eV.js} +161 -78
  466. package/server/{workspace-DuUdndHe.js → workspace-BqFg__wH.js} +1 -1
  467. package/server/{workspace-BVl4rihN.js → workspace-C0fH3aek.js} +3 -3
  468. package/server/workspace-anchor-drift-B4gMRHl4.js +3 -0
  469. package/server/workspace-anchor-drift-CZKofakh.js +224 -0
  470. package/server/{workspace-config-cEGcO6UT.js → workspace-config-B123aZl-.js} +1 -1
  471. package/server/workspace-manager-CDTKjjdU.js +3 -0
  472. package/server/{workspace-manager-hLUv3ADC.js → workspace-manager-CwO-Hek7.js} +206 -116
  473. package/server/{workspace-metadata-CskwzzhL.js → workspace-metadata-CQv00QwK.js} +2 -2
  474. package/server/{workspace-metadata-DNpMixRq.js → workspace-metadata-D4M8BM4W.js} +1 -1
  475. package/server/{workspaces-hWvy9eKs.js → workspaces-j1e_6aAT.js} +736 -290
  476. package/sync-sources/dev-skills/pan-dashboard-restart/SKILL.md +34 -10
  477. package/sync-sources/hooks/linear-mcp-auth-hook +97 -0
  478. package/sync-sources/hooks/record-cost-event.js +6 -4
  479. package/sync-sources/rules/ask-user-question-self-contained.md +9 -0
  480. package/sync-sources/skills/okf/README.md +11 -3
  481. package/sync-sources/skills/okf/SKILL.md +12 -1
  482. package/sync-sources/skills/okf/docs/USAGE.md +15 -0
  483. package/sync-sources/skills/okf/references/overdeck.md +28 -0
  484. package/sync-sources/skills/pan-close/SKILL.md +5 -3
  485. package/sync-sources/skills/pan-flywheel/SKILL.md +18 -1
  486. package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
  487. package/sync-sources/skills/pan-orders/SKILL.md +33 -0
  488. package/sync-sources/skills/pan-peer-review/SKILL.md +195 -0
  489. package/sync-sources/skills/pan-reload/SKILL.md +3 -3
  490. package/sync-sources/skills/pan-restart/SKILL.md +5 -4
  491. package/sync-sources/skills/pan-review/SKILL.md +7 -1
  492. package/sync-sources/skills/pan-start/SKILL.md +4 -0
  493. package/sync-sources/skills/pan-sync-main/SKILL.md +9 -8
  494. package/sync-sources/skills/pipeline-status/SKILL.md +10 -1
  495. package/sync-sources/skills/workspace-add-repo/SKILL.md +16 -1
  496. package/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
  497. package/server/activity-logger-OEUBdfZ8.js +0 -3
  498. package/server/agent-state-Bg0lhqwj.js +0 -3
  499. package/server/agents-FlIgQ3ql.js +0 -3
  500. package/server/archive-planning-zkJb3BeM.js +0 -3
  501. package/server/cli-BsVIHwzC.js +0 -3
  502. package/server/context-layers-B3Nt58jl.js +0 -4
  503. package/server/context-layers-ZYFcWiyc.js +0 -165
  504. package/server/conversation-service-Up7FEzIC.js +0 -3
  505. package/server/deacon-DYSEJb48.js +0 -4
  506. package/server/deacon-swarm-9jRLS5Ke.js +0 -2
  507. package/server/deploy-window-CM6W1-c6.js +0 -3
  508. package/server/dist-Bd3vn0Hw.js +0 -3
  509. package/server/flywheel-DMCUzDWg.js +0 -2
  510. package/server/flywheel-DSSpWmqF.js +0 -522
  511. package/server/flywheel-DcBkQvgE.js +0 -207
  512. package/server/flywheel-merge-order-C-6zRLvM.js +0 -2
  513. package/server/flywheel-merge-order-DxbQKE1d.js +0 -244
  514. package/server/forge-B-ZWyTRm.js +0 -2
  515. package/server/forge-Ch9gCFod.js +0 -270
  516. package/server/git-utils-Dry_Ka_D.js +0 -3
  517. package/server/github-pr-lookup-BRbDW-qk.js +0 -44
  518. package/server/hume-B_DbflNM.js +0 -3
  519. package/server/inspect-agent-ch-F-5Ci.js +0 -2
  520. package/server/launcher-generator-CHVm7bGT.js +0 -379
  521. package/server/layers-DzxSTGNA.js +0 -93
  522. package/server/merge-blockers-BsFjGrQ8.js +0 -41
  523. package/server/merge-ops-DlB1IM0Y.js +0 -2
  524. package/server/merge-set-DLz0MkGT.js +0 -139
  525. package/server/merge-set-DnSYdBEp.js +0 -3
  526. package/server/merge-sync-SSv3E-pl.js +0 -3
  527. package/server/merge-verification-CSizH3HY.js +0 -124
  528. package/server/projects-9SkRpES9.js +0 -3
  529. package/server/public/assets/index-CUr1xv8w.css +0 -1
  530. package/server/public/assets/index-CsSuZQBI.js +0 -802
  531. package/server/public/assets/mermaid-GHXKKRXX-BUAB8hqt.js +0 -1
  532. package/server/rally-njs_mJrt.js +0 -3
  533. package/server/rebuild-stack-kA7XngID.js +0 -3
  534. package/server/record-t6V-3Dcj.js +0 -3
  535. package/server/record-update-DACtKh6_.js +0 -3
  536. package/server/resume-CcKqnTvE.js +0 -3
  537. package/server/review-status-A7quS5KJ.js +0 -1454
  538. package/server/review-status-C6n6-9f_.js +0 -3
  539. package/server/settings-D0OSwos5.js +0 -2
  540. package/server/specs-nN45DG2X.js +0 -3
  541. package/server/src-U7_kTPEE.js +0 -4733
  542. package/server/stack-health-Df0YEZKa.js +0 -3
  543. package/server/supervisor-BPy-o1A8.js +0 -2
  544. package/server/token-util-DrHg8abn.js +0 -3
  545. package/server/tracker-utils-BePq_oj-.js +0 -3
  546. package/server/uat-train-CuEn0t9M.js +0 -2152
  547. package/server/uat-train-cKfM-_WW.js +0 -2
  548. package/server/workflows-D90rMOya.js +0 -2
  549. package/server/workspace-manager-ZTdJAy9M.js +0 -3
@@ -1,379 +0,0 @@
1
- import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { H as init_providers, Ur as packageRoot, Vr as init_paths, W as qualifyPiModel } from "./config-yaml-DvyMuOle.js";
3
- import { J as init_ui_theme, K as colorFgBgForTheme, q as getUiThemeSync } from "./tmux-ftABRAmc.js";
4
- import { o as getHarnessBehavior } from "./src-U7_kTPEE.js";
5
- import { t as init_behavior } from "./behavior-B_-4EKF3.js";
6
- import { f as toCodexSandboxValue, l as init_codex } from "./codex-TmSi-yTv.js";
7
- import { dirname, join } from "node:path";
8
- import { Data } from "effect";
9
- //#region ../../lib/model-validation.ts
10
- function normalizeModelOverrideSync(value) {
11
- if (value === void 0 || value === null) return void 0;
12
- if (typeof value !== "string") throw new Error("model must be a string.");
13
- const trimmed = value.trim();
14
- if (trimmed.length === 0) return void 0;
15
- if (!MODEL_ID_PATTERN.test(trimmed)) throw new Error("model must match [A-Za-z0-9._:/@-] plus square brackets, with 1-128 characters and no whitespace or shell metacharacters.");
16
- return trimmed;
17
- }
18
- function requireModelOverrideSync(value) {
19
- const model = normalizeModelOverrideSync(value);
20
- if (!model) throw new Error("model is required");
21
- return model;
22
- }
23
- function shellQuoteModelIdSync(model) {
24
- return `'${requireModelOverrideSync(model).replace(/'/g, `'\\''`)}'`;
25
- }
26
- var MODEL_ID_PATTERN;
27
- var init_model_validation = __esmMin((() => {
28
- MODEL_ID_PATTERN = /^[A-Za-z0-9](?:[A-Za-z0-9._:/@-]|\[|\]){0,127}$/;
29
- Data.TaggedError("ModelValidationError");
30
- }));
31
- //#endregion
32
- //#region ../../lib/launcher-generator.ts
33
- /**
34
- * Quote a string for safe use as a shell literal in single quotes.
35
- * e.g. shellQuote("foo'bar") → "'foo'\\''bar'"
36
- */
37
- function shellQuote(value) {
38
- return `'${value.replace(/'/g, `'\\''`)}'`;
39
- }
40
- /**
41
- * Build the trailing `--mcp-config <path> --dangerously-load-development-channels server:<name>`
42
- * fragment when both channels-bridge fields are set. Returns an empty string when
43
- * channelsBridgeMcpConfig is unset so existing call sites stay byte-identical.
44
- *
45
- * Note: --mcp-config is intentionally additive (no --strict-mcp-config) so the
46
- * project's .mcp.json continues to load alongside the bridge.
47
- */
48
- function buildChannelsArgs(config) {
49
- if (!config.channelsBridgeMcpConfig) return "";
50
- const serverName = config.channelsBridgeServerName ?? "overdeck-bridge";
51
- return ` --mcp-config ${shellQuote(config.channelsBridgeMcpConfig)} --dangerously-load-development-channels server:${serverName}`;
52
- }
53
- function wrapWithSupervisor(config, cmd) {
54
- if (!config.useSupervisor) return cmd;
55
- if (!getHarnessBehavior(config.harness ?? "claude-code").supportsPtySupervisor || config.reviewSignal) return cmd;
56
- if (!config.supervisorScriptPath) throw new Error("LauncherConfig.supervisorScriptPath is required when useSupervisor=true");
57
- return `node ${shellQuote(config.supervisorScriptPath)} ${cmd}`;
58
- }
59
- /**
60
- * Canonical launcher script generator.
61
- *
62
- * Takes a typed LauncherConfig and returns a bash script string.
63
- * Callers are responsible for building providerExports, cavemanExports,
64
- * and baseCommand strings — the generator does NOT call helper functions
65
- * internally (keeps coupling low, tests simple).
66
- */
67
- function generateLauncherScriptSync(config) {
68
- const lines = [];
69
- lines.push("#!/bin/bash");
70
- lines.push("unset TMUX TMUX_PANE STY");
71
- if (config.setPipefail) lines.push("set -o pipefail");
72
- lines.push("command -v mkcert >/dev/null 2>&1 && export NODE_EXTRA_CA_CERTS=\"$(mkcert -CAROOT)/rootCA.pem\"");
73
- lines.push("export SKIP_DOCS_INDEX=1");
74
- if (config.setTerminalEnv) {
75
- lines.push("export TERM=xterm-256color");
76
- lines.push("export COLORTERM=truecolor");
77
- lines.push("export LANG=C.UTF-8");
78
- lines.push("export LC_ALL=C.UTF-8");
79
- lines.push(`export COLORFGBG='${colorFgBgForTheme(getUiThemeSync())}'`);
80
- }
81
- if (config.setRemotePath) lines.push("export PATH=\"/usr/local/bin:$PATH\"");
82
- const explicitlySetOverdeckKeys = /* @__PURE__ */ new Set();
83
- if (config.overdeckEnv) {
84
- if (config.overdeckEnv.agentId != null) {
85
- lines.push(`export OVERDECK_AGENT_ID=${shellQuote(config.overdeckEnv.agentId)}`);
86
- explicitlySetOverdeckKeys.add("OVERDECK_AGENT_ID");
87
- }
88
- if (config.overdeckEnv.issueId != null) {
89
- lines.push(`export OVERDECK_ISSUE_ID=${shellQuote(config.overdeckEnv.issueId)}`);
90
- explicitlySetOverdeckKeys.add("OVERDECK_ISSUE_ID");
91
- }
92
- if (config.overdeckEnv.sessionType != null) {
93
- lines.push(`export OVERDECK_SESSION_TYPE=${shellQuote(config.overdeckEnv.sessionType)}`);
94
- explicitlySetOverdeckKeys.add("OVERDECK_SESSION_TYPE");
95
- }
96
- }
97
- if (config.extraEnvExports) for (const expr of config.extraEnvExports) lines.push(expr);
98
- if (config.codexHome) lines.push(`export CODEX_HOME=${shellQuote(config.codexHome)}`);
99
- if (config.changeDir !== false) lines.push(`cd -- ${shellQuote(config.workingDir)}`);
100
- if (config.unsetProviderEnv) for (const key of PROVIDER_ENV_UNSETS) lines.push(`unset ${key}`);
101
- if (config.providerExports) {
102
- const trimmed = config.providerExports.trimEnd();
103
- if (trimmed) lines.push(trimmed);
104
- }
105
- if (config.cavemanExports) {
106
- const trimmed = config.cavemanExports.trimEnd();
107
- if (trimmed) lines.push(trimmed);
108
- }
109
- if (config.unsetOverdeckEnv) {
110
- const keysToUnset = [
111
- "OVERDECK_AGENT_ID",
112
- "OVERDECK_ISSUE_ID",
113
- "OVERDECK_SESSION_TYPE"
114
- ].filter((k) => !explicitlySetOverdeckKeys.has(k));
115
- if (keysToUnset.length > 0) lines.push(`unset ${keysToUnset.join(" ")}`);
116
- }
117
- if (config.trapHup) lines.push("trap '' HUP");
118
- if (config.promptFile && config.promptFileMode !== "stdin") lines.push(`prompt=$(cat ${shellQuote(config.promptFile)})`);
119
- if (config.debugLog) lines.push(`echo "[launcher] Claude starting at $(date)" >> ${shellQuote(config.debugLog)}`);
120
- const commandParts = buildCommand(config);
121
- if (commandParts.length > 0) lines.push(...commandParts);
122
- if (config.debugLog) {
123
- lines.push("CLAUDE_EXIT=$?");
124
- lines.push(`echo "[launcher] Claude exited with code $CLAUDE_EXIT at $(date)" >> ${shellQuote(config.debugLog)}`);
125
- }
126
- if (config.role === "plan") {
127
- lines.push("echo \"\"");
128
- lines.push("echo \"Planning agent has exited. Session kept alive for review.\"");
129
- lines.push("echo \"Click 'Done' in the dashboard when ready to hand off to implementation.\"");
130
- if (config.debugLog) lines.push(`echo "[launcher] Keep-alive loop starting at $(date)" >> ${shellQuote(config.debugLog)}`);
131
- }
132
- if (config.spawnMode === "conversation") {
133
- lines.push("echo \"\"");
134
- lines.push("echo \"Conversation session ended. Close this panel or click Resume to start a new session.\"");
135
- }
136
- if (config.keepAlive) lines.push("while true; do sleep 60; done");
137
- let script = lines.join("\n") + "\n";
138
- if (config.escapeForBase64) script = script.replace(/\$/g, "\\$");
139
- return script;
140
- }
141
- function buildCommand(config) {
142
- const parts = [];
143
- const behavior = getHarnessBehavior(config.harness ?? "claude-code");
144
- if (config.spawnMode === "conversation") {
145
- if (behavior.launchCommandKind === "ohmypi-rpc") return buildOhmypiCommand(config, false);
146
- if (behavior.launchCommandKind === "codex-work-tui") return buildCodexCommand(config, false);
147
- if (config.baseCommand) {
148
- let cmd = config.baseCommand;
149
- cmd += buildChannelsArgs(config);
150
- const args = [];
151
- if (config.resumeSessionId) args.push(`--resume ${shellQuote(config.resumeSessionId)}`);
152
- else if (config.sessionId) args.push(`--session-id ${shellQuote(config.sessionId)}`);
153
- if (config.extraArgs) args.push(config.extraArgs);
154
- parts.push(wrapWithSupervisor(config, `${cmd} ${args.join(" ")}`.trim()));
155
- }
156
- return parts;
157
- }
158
- if (config.role === "plan") return buildNonConversationCommand(config, false);
159
- if (config.reviewSignal) return buildReviewSubRoleCommand(config);
160
- return buildNonConversationCommand(config, true);
161
- }
162
- /**
163
- * Build the review sub-role command sequence (PAN-977).
164
- *
165
- * The reviewer runs under `timeout` as a child process; once it exits, the
166
- * launcher itself signals the synthesis agent deterministically — the agent
167
- * never has to remember to run `pan tell`, and the signal is tied to process
168
- * exit rather than agent good behavior or Deacon patrol timing.
169
- */
170
- function buildReviewSubRoleCommand(config) {
171
- const sig = config.reviewSignal;
172
- const inner = buildNonConversationCommand(config, false);
173
- if (inner.length === 0) return inner;
174
- const claudeCmd = `timeout ${sig.timeoutSeconds} ${inner[0]}`;
175
- const synth = shellQuote(sig.synthesisAgentId);
176
- const out = sig.outputPath;
177
- const role = sig.subRole;
178
- const pidFile = shellQuote(sig.launcherPidPath);
179
- return [
180
- `echo $$ > ${pidFile}`,
181
- claudeCmd,
182
- "CLAUDE_EXIT=$?",
183
- `if [ "$CLAUDE_EXIT" = "124" ]; then`,
184
- ` pan tell ${synth} "REVIEWER_TIMEOUT ${role} reviewer exceeded ${sig.timeoutSeconds}s deadline" || true`,
185
- `elif [ -s ${shellQuote(out)} ]; then`,
186
- ` pan tell ${synth} "REVIEWER_READY ${role} ${out}" || true`,
187
- `else`,
188
- ` pan tell ${synth} "REVIEWER_FAILED ${role} reviewer exited (code $CLAUDE_EXIT) without writing report" || true`,
189
- `fi`,
190
- `touch ${shellQuote(sig.signalMarkerPath)}`,
191
- `rm -f ${pidFile}`
192
- ];
193
- }
194
- /**
195
- * Shared command builder for planning and exec-based agent types.
196
- * Appends session args, extra args, and prompt references.
197
- *
198
- * PAN-982: When `baseCommand` contains `--agent` (i.e. an agent definition
199
- * is selecting permissions, model, and tools via `.claude/agents/pan-*.md`
200
- * frontmatter), permission flags are skipped — the frontmatter handles them.
201
- */
202
- function buildNonConversationCommand(config, useExec) {
203
- const behavior = getHarnessBehavior(config.harness ?? "claude-code");
204
- if (behavior.launchCommandKind === "ohmypi-rpc") return buildOhmypiCommand(config, useExec);
205
- if (behavior.launchCommandKind === "codex-work-tui") return buildCodexCommand(config, useExec);
206
- const parts = [];
207
- if (!config.baseCommand) return parts;
208
- let cmd = config.baseCommand;
209
- if (!cmd.includes("--agent ") && config.permissionFlags && config.permissionFlags.length > 0) {
210
- const cmdTokens = cmd.split(/\s+/);
211
- for (const flag of config.permissionFlags) if (!cmdTokens.includes(flag)) cmd += ` ${flag}`;
212
- }
213
- cmd += buildChannelsArgs(config);
214
- if (config.resumeSessionId) cmd += ` --resume ${shellQuote(config.resumeSessionId)}`;
215
- if (config.sessionId) cmd += ` --session-id ${shellQuote(config.sessionId)}`;
216
- if (config.model) cmd += ` --model ${shellQuoteModelIdSync(config.model)}`;
217
- if (config.extraArgs) cmd += ` ${config.extraArgs}`;
218
- for (const file of systemPromptFiles(config)) cmd += ` --append-system-prompt-file ${shellQuote(file)}`;
219
- if (config.promptFile) if (config.promptFileMode === "stdin") cmd += ` < ${shellQuote(config.promptFile)}`;
220
- else cmd += " \"$prompt\"";
221
- if (config.promptInline) cmd += ` ${shellQuote(config.promptInline)}`;
222
- const wrapped = wrapWithSupervisor(config, cmd.trim());
223
- parts.push(useExec ? `exec ${wrapped}` : wrapped);
224
- return parts;
225
- }
226
- /**
227
- * Build an oh-my-pi (omp) command line (PAN-1989).
228
- *
229
- * RPC mode (work-agents):
230
- * omp --mode rpc \
231
- * --model <model> \
232
- * --session-dir <piSessionDir> \
233
- * --extension <piExtensionPath> \
234
- * [--resume <resumeSessionId>] \
235
- * [--append-system-prompt "$prompt"] \
236
- * <> <piFifoPath> >> <agentDir>/output.log 2>&1
237
- *
238
- * TUI mode (conversations):
239
- * omp --model <model> \
240
- * --session-dir <piSessionDir> \
241
- * [--extension <piExtensionPath>] \
242
- * [--resume <resumeSessionId>] \
243
- * [--append-system-prompt "$prompt"]
244
- *
245
- * Contract differences from pi (docs/ohmypi-contract.md):
246
- * - Binary is `omp`, not `pi`
247
- * - `--no-context-files` is REMOVED (flag does not exist in omp)
248
- * - `--resume <id>` replaces `--session <id>`
249
- */
250
- function buildOhmypiCommand(config, useExec) {
251
- const piMode = config.piMode ?? "rpc";
252
- if (!config.piSessionDir) throw new Error("ohmypi launcher requires piSessionDir");
253
- if (piMode === "rpc") {
254
- if (!config.piExtensionPath) throw new Error("ohmypi launcher (rpc mode) requires piExtensionPath");
255
- if (!config.piFifoPath) throw new Error("ohmypi launcher (rpc mode) requires piFifoPath");
256
- }
257
- const tokens = ["omp"];
258
- if (piMode === "rpc") tokens.push("--mode", "rpc");
259
- if (config.model) tokens.push("--model", shellQuoteModelIdSync(qualifyPiModel(config.model)));
260
- tokens.push("--session-dir", shellQuote(config.piSessionDir));
261
- if (config.piExtensionPath) tokens.push("--extension", shellQuote(config.piExtensionPath));
262
- for (const file of systemPromptFiles(config)) tokens.push("--append-system-prompt", `"$(cat ${shellQuote(file)} 2>/dev/null)"`);
263
- if (config.resumeSessionId) tokens.push("--resume", shellQuote(config.resumeSessionId));
264
- if (config.extraArgs) tokens.push(config.extraArgs);
265
- if (config.promptFile) tokens.push("--append-system-prompt", "\"$prompt\"");
266
- else if (config.promptInline) tokens.push("--append-system-prompt", shellQuote(config.promptInline));
267
- let cmd = tokens.join(" ").replace(/\s+/g, " ").trim();
268
- if (piMode === "rpc") {
269
- const agentDir = dirname(config.piFifoPath);
270
- const outputLogPath = join(agentDir, "output.log");
271
- const exitStatusPath = join(agentDir, "exit-status");
272
- return [
273
- `${cmd} <> ${shellQuote(config.piFifoPath)} >> ${shellQuote(outputLogPath)} 2>&1`,
274
- "__omp_exit=$?",
275
- `printf '%s %s\\n' "$__omp_exit" "$(date -u +%Y-%m-%dT%H:%M:%SZ)" > ${shellQuote(exitStatusPath)}`,
276
- "exit $__omp_exit"
277
- ];
278
- }
279
- return [useExec ? `exec ${cmd}` : cmd];
280
- }
281
- /**
282
- * Build a Pi command line.
283
- *
284
- * RPC mode (work-agents):
285
- * pi --mode rpc \
286
- * --model <model> \
287
- * --session-dir <piSessionDir> \
288
- * --extension <piExtensionPath> \
289
- * --no-context-files \
290
- * [--session <resumeSessionId>] \
291
- * [--append-system-prompt "$prompt"] \
292
- * <> <piFifoPath>
293
- *
294
- * TUI mode (conversations):
295
- * pi --model <model> \
296
- * --session-dir <piSessionDir> \
297
- * [--extension <piExtensionPath>] \
298
- * --no-context-files \
299
- * [--session <resumeSessionId>] \
300
- * [--append-system-prompt "$prompt"]
301
- *
302
- * Pi has no permission system, so permissionFlags are intentionally
303
- * dropped (AC4). baseCommand is ignored — Pi launchers always start with
304
- * the literal `pi` so callers cannot accidentally smuggle in claude flags.
305
- */
306
- function systemPromptFiles(config) {
307
- return [...config.appendSystemPromptFile ? [config.appendSystemPromptFile] : [], ...config.appendSystemPromptFiles ?? []];
308
- }
309
- function buildCodexCommand(config, useExec) {
310
- const cmd = computeCodexCommandTokens(config, useExec);
311
- const flat = cmd.join(" ").replace(/\s+/g, " ");
312
- const applied = /(^|\s)resume(\s|$)/.test(flat) ? "YES" : "no";
313
- console.log(`[codex-launcher] agent=${config.overdeckEnv?.agentId ?? "?"} mode=${config.codexMode ?? "exec"} resumeSessionId=${config.resumeSessionId ?? "(none)"} resumeApplied=${applied} cmd=${flat.slice(0, 200)}`);
314
- return cmd;
315
- }
316
- function computeCodexCommandTokens(config, useExec) {
317
- const codexMode = config.codexMode ?? "exec";
318
- if (codexMode === "tui") {
319
- const tokens = ["codex"];
320
- if (config.resumeSessionId) tokens.push("resume");
321
- tokens.push("-c", "project_doc_max_bytes=0");
322
- if (config.resumeSessionId) tokens.push(shellQuote(config.resumeSessionId));
323
- const cmd = wrapWithSupervisor(config, tokens.join(" "));
324
- return [useExec ? `exec ${cmd}` : cmd];
325
- }
326
- if (codexMode === "work-tui") {
327
- const tokens = ["codex"];
328
- if (config.resumeSessionId) tokens.push("resume");
329
- if (config.model) tokens.push("-m", shellQuoteModelIdSync(config.model));
330
- if (config.resumeSessionId) tokens.push(shellQuote(config.resumeSessionId));
331
- const cmd = wrapWithSupervisor(config, tokens.join(" "));
332
- return [useExec ? `exec ${cmd}` : cmd];
333
- }
334
- if (codexMode === "app-server") {
335
- const tokens = ["node", shellQuote(join(packageRoot, "dist", "codex-app-server-host.js"))];
336
- if (config.model) tokens.push("--model", shellQuoteModelIdSync(config.model));
337
- if (config.resumeSessionId) tokens.push("--resume", shellQuote(config.resumeSessionId));
338
- const cmd = tokens.join(" ");
339
- return [useExec ? `exec ${cmd}` : cmd];
340
- }
341
- const isResume = Boolean(config.resumeSessionId);
342
- const tokens = ["codex", "exec"];
343
- if (isResume) tokens.push("resume");
344
- if (config.model) tokens.push("-m", shellQuoteModelIdSync(config.model));
345
- tokens.push("-c", "approval_policy=never");
346
- const sandbox = toCodexSandboxValue(config.codexSandboxMode);
347
- if (isResume) tokens.push("-c", `sandbox_mode=${sandbox}`);
348
- else tokens.push("-s", sandbox);
349
- tokens.push("--skip-git-repo-check");
350
- if (isResume) tokens.push(shellQuote(config.resumeSessionId));
351
- if (config.promptFile) tokens.push("\"$prompt\"");
352
- else if (config.promptInline) tokens.push(shellQuote(config.promptInline));
353
- let cmd = tokens.join(" ").replace(/\s+/g, " ").trim();
354
- return [useExec ? `exec ${cmd}` : cmd];
355
- }
356
- var PROVIDER_ENV_UNSETS;
357
- var init_launcher_generator = __esmMin((() => {
358
- init_codex();
359
- init_behavior();
360
- init_providers();
361
- init_model_validation();
362
- init_ui_theme();
363
- init_paths();
364
- PROVIDER_ENV_UNSETS = [
365
- "ANTHROPIC_API_KEY",
366
- "ANTHROPIC_BASE_URL",
367
- "ANTHROPIC_AUTH_TOKEN",
368
- "OPENAI_API_KEY",
369
- "GEMINI_API_KEY",
370
- "API_TIMEOUT_MS",
371
- "CLAUDE_CODE_API_KEY_HELPER_TTL_MS",
372
- "CLAUDE_CODE_AUTO_COMPACT_WINDOW",
373
- "CLAUDE_CODE_MAX_CONTEXT_TOKENS"
374
- ];
375
- }));
376
- //#endregion
377
- export { requireModelOverrideSync as a, normalizeModelOverrideSync as i, init_launcher_generator as n, shellQuoteModelIdSync as o, init_model_validation as r, generateLauncherScriptSync as t };
378
-
379
- //# sourceMappingURL=launcher-generator-CHVm7bGT.js.map
@@ -1,93 +0,0 @@
1
- import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DvyMuOle.js";
3
- import { existsSync, mkdirSync, writeFileSync } from "fs";
4
- import { join } from "path";
5
- //#region ../../lib/context-layers/layers.ts
6
- /**
7
- * Context layer model (PAN-1201).
8
- *
9
- * Three layers of context compose at sync time:
10
- *
11
- * global — ~/.overdeck/context/global.md (+ global/{skills,agents}/)
12
- * Applies to every harness invocation, everywhere.
13
- * project — <projectRoot>/.overdeck/context/project.md
14
- * Applies when CWD is under a registered project. Committed.
15
- * workspace — <workspace>/.overdeck/context/workspace.md
16
- * Auto-assembled by Overdeck at spawn time. Gitignored.
17
- *
18
- * The global layer lives under ~/.overdeck (per-machine). Project and
19
- * Project and workspace context live outside the permanent state plane under
20
- * `.overdeck/`. Reads retain a `.pan/context/` compatibility fallback.
21
- */
22
- /** `~/.overdeck/context` — the global layer directory. */
23
- function globalContextDir() {
24
- return join(getOverdeckHome(), "context");
25
- }
26
- /** `~/.overdeck/context/global.md` — the global layer's canonical source. */
27
- function globalContextFile() {
28
- return join(globalContextDir(), "global.md");
29
- }
30
- /** `<projectRoot>/.overdeck/context` — a registered project's layer directory. */
31
- function projectContextDir(projectRoot) {
32
- return join(projectRoot, ".overdeck", "context");
33
- }
34
- /** `<projectRoot>/.overdeck/context/project.md` — a project's canonical source. */
35
- function projectContextFile(projectRoot) {
36
- return join(projectContextDir(projectRoot), "project.md");
37
- }
38
- function legacyProjectContextFile(projectRoot) {
39
- return join(projectRoot, ".pan", "context", "project.md");
40
- }
41
- function resolveProjectContextFile(projectRoot) {
42
- const canonical = projectContextFile(projectRoot);
43
- return existsSync(canonical) ? canonical : legacyProjectContextFile(projectRoot);
44
- }
45
- /** `<workspace>/.overdeck/context` — a workspace's layer directory. */
46
- function workspaceContextDir(workspacePath) {
47
- return join(workspacePath, ".overdeck", "context");
48
- }
49
- /** `<workspace>/.pan/context/workspace.md` — the auto-assembled bundle. */
50
- function workspaceContextFile(workspacePath) {
51
- return join(workspaceContextDir(workspacePath), "workspace.md");
52
- }
53
- function legacyWorkspaceContextFile(workspacePath) {
54
- return join(workspacePath, ".pan", "context", "workspace.md");
55
- }
56
- function resolveWorkspaceContextFile(workspacePath) {
57
- const canonical = workspaceContextFile(workspacePath);
58
- return existsSync(canonical) ? canonical : legacyWorkspaceContextFile(workspacePath);
59
- }
60
- /** `~/.overdeck/context/pi-global.md` — the rendered global layer for Pi. */
61
- function piGlobalContextFile() {
62
- return join(getOverdeckHome(), "context", "pi-global.md");
63
- }
64
- /** `~/.overdeck/context/codex-global.md` — the rendered global layer for Codex. */
65
- function codexGlobalContextFile() {
66
- return join(getOverdeckHome(), "context", "codex-global.md");
67
- }
68
- /**
69
- * Ensure a project's layer dir exists with a stub `project.md`. Idempotent.
70
- * Returns true when a file was created. Called by `pan projects add`.
71
- */
72
- function ensureProjectLayer(projectRoot) {
73
- const file = projectContextFile(projectRoot);
74
- if (existsSync(file)) return false;
75
- mkdirSync(projectContextDir(projectRoot), { recursive: true });
76
- writeFileSync(file, PROJECT_STARTER, "utf-8");
77
- return true;
78
- }
79
- var PROJECT_STARTER;
80
- var init_layers = __esmMin((() => {
81
- init_paths();
82
- PROJECT_STARTER = `# Project Context
83
-
84
- Context for this project specifically. \`pan sync\` renders it into the
85
- project's CLAUDE.md (and equivalents) when CWD is under this project.
86
-
87
- This file is committed to the repo; \`workspace.md\` is not.
88
- `;
89
- }));
90
- //#endregion
91
- export { globalContextFile as a, legacyWorkspaceContextFile as c, projectContextFile as d, resolveProjectContextFile as f, workspaceContextFile as h, globalContextDir as i, piGlobalContextFile as l, workspaceContextDir as m, codexGlobalContextFile as n, init_layers as o, resolveWorkspaceContextFile as p, ensureProjectLayer as r, legacyProjectContextFile as s, PROJECT_STARTER as t, projectContextDir as u };
92
-
93
- //# sourceMappingURL=layers-DzxSTGNA.js.map
@@ -1,41 +0,0 @@
1
- import { c as init_review_status_sync, r as getAllReviewStatusesFromDb } from "./review-status-sync-BhSQ0d0l.js";
2
- //#region ../../lib/cloister/merge-blockers.ts
3
- init_review_status_sync();
4
- /**
5
- * PRs that passed review but cannot merge for a GitHub-native reason (PAN-1620):
6
- * merge_conflict / failing_checks / not_mergeable. These sit forever unless rebased.
7
- *
8
- * Reads `review_status` directly from SQLite — NO HTTP — so it works inside a
9
- * network-sandboxed harness (e.g. codex's bwrap sandbox) where a `curl` to the
10
- * dashboard's `/api/flywheel/merge-blockers` cannot reach `127.0.0.1:3011`.
11
- * Shared by the dashboard route and the `pan flywheel merge-blockers` CLI so the
12
- * two surfaces can never disagree.
13
- */
14
- const MERGE_BLOCKER_TYPES = new Set([
15
- "merge_conflict",
16
- "failing_checks",
17
- "not_mergeable"
18
- ]);
19
- function getMergeBlockersPayload() {
20
- const statuses = getAllReviewStatusesFromDb();
21
- const out = [];
22
- for (const [issueId, status] of Object.entries(statuses)) {
23
- if (status.reviewStatus !== "passed") continue;
24
- if (status.mergeStatus === "merged") continue;
25
- const reasons = (status.blockerReasons ?? []).filter((b) => MERGE_BLOCKER_TYPES.has(b.type));
26
- if (reasons.length === 0) continue;
27
- out.push({
28
- issueId,
29
- prUrl: status.prUrl,
30
- reasons: reasons.map((b) => ({
31
- type: b.type,
32
- summary: b.summary
33
- }))
34
- });
35
- }
36
- return out;
37
- }
38
- //#endregion
39
- export { getMergeBlockersPayload as t };
40
-
41
- //# sourceMappingURL=merge-blockers-BsFjGrQ8.js.map
@@ -1,2 +0,0 @@
1
- import { c as triggerMerge } from "./workspaces-hWvy9eKs.js";
2
- export { triggerMerge };
@@ -1,139 +0,0 @@
1
- import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $n as resolveIssueIdSync, Tn as init_projects, Yn as init_issue_id, yn as getProjectSync, zn as resolveProjectFromIssueSync } from "./config-yaml-DvyMuOle.js";
3
- import { T as upsertMergeSet, i as getMergeSetFromDb, o as init_merge_sync } from "./merge-sync-DZ9dojJn.js";
4
- import "effect";
5
- import { join } from "path";
6
- //#region ../../lib/project-repos.ts
7
- function normalizeForgeSync(value) {
8
- if (!value) return null;
9
- const normalized = value.trim().toLowerCase();
10
- if (normalized === "github" || normalized.includes("github.com")) return "github";
11
- if (normalized === "gitlab" || normalized.includes("gitlab.com")) return "gitlab";
12
- return null;
13
- }
14
- function inferProjectForgeSync(projectConfig) {
15
- if (projectConfig.github_repo && !projectConfig.gitlab_repo) return "github";
16
- if (projectConfig.gitlab_repo && !projectConfig.github_repo) return "gitlab";
17
- return null;
18
- }
19
- function getRepoSourceBranch(repo, issueId) {
20
- return `${repo?.branch_prefix || "feature/"}${issueId.toLowerCase()}`;
21
- }
22
- function getRepoTargetBranch(repo, projectConfig) {
23
- return repo?.pr_target || projectConfig.workspace?.pr_target || repo?.default_branch || projectConfig.workspace?.default_branch || "main";
24
- }
25
- function getRepoForge(repo, projectConfig) {
26
- return normalizeForgeSync(repo?.forge) || normalizeForgeSync(repo?.remote) || inferProjectForgeSync(projectConfig) || "github";
27
- }
28
- function resolveConfiguredReposSync(projectKey, projectPath, projectConfig, issueId) {
29
- const repos = projectConfig.workspace?.repos;
30
- if (!repos || repos.length === 0) return [{
31
- projectKey,
32
- projectPath,
33
- repoKey: projectKey,
34
- repoPath: projectPath,
35
- forge: inferProjectForgeSync(projectConfig) || "github",
36
- sourceBranch: `feature/${issueId.toLowerCase()}`,
37
- targetBranch: projectConfig.workspace?.pr_target || projectConfig.workspace?.default_branch || "main",
38
- mergeOrder: 0,
39
- required: true
40
- }];
41
- return repos.map((repo, index) => ({
42
- projectKey,
43
- projectPath,
44
- repoKey: repo.name,
45
- repoPath: join(projectPath, repo.path),
46
- forge: getRepoForge(repo, projectConfig),
47
- sourceBranch: getRepoSourceBranch(repo, issueId),
48
- targetBranch: getRepoTargetBranch(repo, projectConfig),
49
- mergeOrder: index,
50
- required: repo.readonly !== true
51
- }));
52
- }
53
- function resolveProjectReposFromResolvedIssueSync(issueId, resolvedProject) {
54
- const projectConfig = getProjectSync(resolvedProject.projectKey);
55
- if (!projectConfig) return null;
56
- return resolveConfiguredReposSync(resolvedProject.projectKey, resolvedProject.projectPath, projectConfig, issueId);
57
- }
58
- var init_project_repos = __esmMin((() => {
59
- init_projects();
60
- }));
61
- //#endregion
62
- //#region ../../lib/merge-set.ts
63
- function upsertMergeSetSync(mergeSet) {
64
- upsertMergeSet({
65
- ...mergeSet,
66
- issueId: resolveIssueIdSync(mergeSet.issueId)
67
- });
68
- }
69
- function getMergeSetSync(issueId) {
70
- return getMergeSetFromDb(resolveIssueIdSync(issueId));
71
- }
72
- function buildMergeSetForIssueSync(issueId, labels = []) {
73
- const resolved = resolveProjectFromIssueSync(issueId, labels);
74
- if (!resolved) return null;
75
- const repos = resolveProjectReposFromResolvedIssueSync(issueId, resolved);
76
- if (!repos) return null;
77
- const now = (/* @__PURE__ */ new Date()).toISOString();
78
- return {
79
- issueId,
80
- projectKey: resolved.projectKey,
81
- projectPath: resolved.projectPath,
82
- workspaceType: repos.length > 1 ? "polyrepo" : "monorepo",
83
- status: "draft",
84
- createdAt: now,
85
- updatedAt: now,
86
- repos: repos.map((repo) => ({
87
- repoKey: repo.repoKey,
88
- repoPath: repo.repoPath,
89
- forge: repo.forge,
90
- sourceBranch: repo.sourceBranch,
91
- targetBranch: repo.targetBranch,
92
- reviewStatus: "pending",
93
- testStatus: "pending",
94
- rebaseStatus: "pending",
95
- verificationStatus: "pending",
96
- mergeStatus: "pending",
97
- mergeOrder: repo.mergeOrder,
98
- required: repo.required
99
- }))
100
- };
101
- }
102
- function ensureMergeSetForIssueSync(issueId, labels = []) {
103
- const existing = getMergeSetSync(issueId);
104
- if (existing) return existing;
105
- const built = buildMergeSetForIssueSync(issueId, labels);
106
- if (built) upsertMergeSetSync(built);
107
- return built;
108
- }
109
- function withRepoArtifactUrlSync(mergeSet, repoKey, artifactUrl, artifactId) {
110
- return {
111
- ...mergeSet,
112
- updatedAt: (/* @__PURE__ */ new Date()).toISOString(),
113
- repos: mergeSet.repos.map((repo) => repo.repoKey === repoKey ? {
114
- ...repo,
115
- artifactUrl,
116
- artifactId
117
- } : repo)
118
- };
119
- }
120
- function withRepoStateSync(mergeSet, repoKey, patch) {
121
- return {
122
- ...mergeSet,
123
- updatedAt: (/* @__PURE__ */ new Date()).toISOString(),
124
- repos: mergeSet.repos.map((repo) => repo.repoKey === repoKey ? {
125
- ...repo,
126
- ...patch
127
- } : repo)
128
- };
129
- }
130
- var init_merge_set = __esmMin((() => {
131
- init_merge_sync();
132
- init_projects();
133
- init_project_repos();
134
- init_issue_id();
135
- }));
136
- //#endregion
137
- export { upsertMergeSetSync as a, init_merge_set as i, ensureMergeSetForIssueSync as n, withRepoArtifactUrlSync as o, getMergeSetSync as r, withRepoStateSync as s, buildMergeSetForIssueSync as t };
138
-
139
- //# sourceMappingURL=merge-set-DLz0MkGT.js.map
@@ -1,3 +0,0 @@
1
- import { a as upsertMergeSetSync, i as init_merge_set, n as ensureMergeSetForIssueSync, o as withRepoArtifactUrlSync, r as getMergeSetSync, s as withRepoStateSync } from "./merge-set-DLz0MkGT.js";
2
- init_merge_set();
3
- export { ensureMergeSetForIssueSync, getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync };
@@ -1,3 +0,0 @@
1
- import { b as resetProcessingToQueued, o as init_merge_sync } from "./merge-sync-DZ9dojJn.js";
2
- init_merge_sync();
3
- export { resetProcessingToQueued };