panopticon-cli 0.6.5 → 0.6.6

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 (311) hide show
  1. package/README.md +2 -2
  2. package/dist/{agents-DfYify9s.js → agents-CfFDs52G.js} +14 -14
  3. package/dist/{agents-DfYify9s.js.map → agents-CfFDs52G.js.map} +1 -1
  4. package/dist/{agents-BKsVoIc9.js → agents-D_2oRFVf.js} +1 -1
  5. package/dist/{archive-planning-BJrZ3tmN.js → archive-planning-D97ziGec.js} +3 -3
  6. package/dist/{archive-planning-BJrZ3tmN.js.map → archive-planning-D97ziGec.js.map} +1 -1
  7. package/dist/{archive-planning-C3m3hfa5.js → archive-planning-DK90wn9Q.js} +1 -1
  8. package/dist/{browser-Cvdznzc0.js → browser-CX7jXfXX.js} +1 -1
  9. package/dist/{browser-Cvdznzc0.js.map → browser-CX7jXfXX.js.map} +1 -1
  10. package/dist/{clean-planning-DvhZAUv4.js → clean-planning-D_lz4aQq.js} +2 -2
  11. package/dist/{clean-planning-DvhZAUv4.js.map → clean-planning-D_lz4aQq.js.map} +1 -1
  12. package/dist/clean-planning-x1S-JdmO.js +2 -0
  13. package/dist/cli/index.js +291 -760
  14. package/dist/cli/index.js.map +1 -1
  15. package/dist/{close-issue-Dr7yZmrr.js → close-issue-CaFE0stN.js} +11 -7
  16. package/dist/close-issue-CaFE0stN.js.map +1 -0
  17. package/dist/close-issue-CjcfZI9s.js +2 -0
  18. package/dist/compact-beads-B0_qE1w3.js +2 -0
  19. package/dist/{compact-beads-BCOtIIRl.js → compact-beads-CjFkteSU.js} +2 -2
  20. package/dist/{compact-beads-BCOtIIRl.js.map → compact-beads-CjFkteSU.js.map} +1 -1
  21. package/dist/{config-CRzMQRgA.js → config-BQNKsi9G.js} +2 -2
  22. package/dist/{config-CRzMQRgA.js.map → config-BQNKsi9G.js.map} +1 -1
  23. package/dist/{config-BYgUzQ21.js → config-agyKgF5C.js} +1 -1
  24. package/dist/{config-yaml-BgOACZAB.js → config-yaml-DGbLSMCa.js} +1 -1
  25. package/dist/{config-yaml-BgOACZAB.js.map → config-yaml-DGbLSMCa.js.map} +1 -1
  26. package/dist/{config-yaml-fdyvyL0S.js → config-yaml-Dqt4FWQH.js} +1 -1
  27. package/dist/dashboard/{acceptance-criteria-e5iiHlRx.js → acceptance-criteria-Dk9hhiYj.js} +1 -1
  28. package/dist/dashboard/{acceptance-criteria-e5iiHlRx.js.map → acceptance-criteria-Dk9hhiYj.js.map} +1 -1
  29. package/dist/dashboard/{agent-enrichment-C67LJBgD.js → agent-enrichment-DdO7ZqjI.js} +11 -7
  30. package/dist/dashboard/agent-enrichment-DdO7ZqjI.js.map +1 -0
  31. package/dist/dashboard/{agent-enrichment-Cq0P1cNZ.js → agent-enrichment-dLeGE1fX.js} +1 -1
  32. package/dist/dashboard/{agents-YyO6t5Xa.js → agents-DCpQQ_W5.js} +14 -14
  33. package/dist/dashboard/{agents-YyO6t5Xa.js.map → agents-DCpQQ_W5.js.map} +1 -1
  34. package/dist/dashboard/{agents-BVBVCyat.js → agents-Dgh2TjSp.js} +1 -1
  35. package/dist/dashboard/{archive-planning-h-hAjk0P.js → archive-planning-BmW9UDTr.js} +3 -3
  36. package/dist/dashboard/{archive-planning-h-hAjk0P.js.map → archive-planning-BmW9UDTr.js.map} +1 -1
  37. package/dist/dashboard/{archive-planning-CScs1MOC.js → archive-planning-C3Ebf9yC.js} +1 -1
  38. package/dist/dashboard/{beads-qNB0yAHV.js → beads-Bv-AdX7G.js} +3 -3
  39. package/dist/dashboard/{beads-qNB0yAHV.js.map → beads-Bv-AdX7G.js.map} +1 -1
  40. package/dist/dashboard/{beads-D_FRedEJ.js → beads-By6-X07V.js} +1 -1
  41. package/dist/dashboard/clean-planning-D60L8rPY.js +2 -0
  42. package/dist/dashboard/{clean-planning-qafw99vY.js → clean-planning-VEJu5suh.js} +2 -2
  43. package/dist/dashboard/{clean-planning-qafw99vY.js.map → clean-planning-VEJu5suh.js.map} +1 -1
  44. package/dist/dashboard/close-issue-C2KeSKKJ.js +2 -0
  45. package/dist/dashboard/{close-issue-DfIggeZD.js → close-issue-DtKdsSTm.js} +11 -7
  46. package/dist/dashboard/close-issue-DtKdsSTm.js.map +1 -0
  47. package/dist/dashboard/compact-beads-C7BN5N11.js +2 -0
  48. package/dist/dashboard/{compact-beads-Dt0qTqsC.js → compact-beads-D8Vt3qyv.js} +2 -2
  49. package/dist/dashboard/{compact-beads-Dt0qTqsC.js.map → compact-beads-D8Vt3qyv.js.map} +1 -1
  50. package/dist/dashboard/{config-CUREjHP7.js → config-CDkGjnwy.js} +2 -2
  51. package/dist/dashboard/{config-CUREjHP7.js.map → config-CDkGjnwy.js.map} +1 -1
  52. package/dist/dashboard/{config-BeI3uy-8.js → config-CTXkBATQ.js} +1 -1
  53. package/dist/dashboard/{database-CozA13Wy.js → database-DhqASALP.js} +1 -1
  54. package/dist/dashboard/{database-C0y0hXBx.js → database-cxmQryoh.js} +2 -2
  55. package/dist/dashboard/{database-C0y0hXBx.js.map → database-cxmQryoh.js.map} +1 -1
  56. package/dist/dashboard/{dist-src-oG2iHzgI.js → dist-src-DTm11oQr.js} +1 -1
  57. package/dist/dashboard/{dist-src-oG2iHzgI.js.map → dist-src-DTm11oQr.js.map} +1 -1
  58. package/dist/dashboard/{event-store-D7kLBd07.js → event-store-VWWUmOfn.js} +1 -1
  59. package/dist/dashboard/{event-store-O9q0Gweh.js → event-store-vSmAA3Zp.js} +9 -4
  60. package/dist/dashboard/event-store-vSmAA3Zp.js.map +1 -0
  61. package/dist/dashboard/{factory-BnLdiQW-.js → factory-C8nhLGHB.js} +3 -3
  62. package/dist/dashboard/{factory-BnLdiQW-.js.map → factory-C8nhLGHB.js.map} +1 -1
  63. package/dist/dashboard/{feedback-writer-DyovUANg.js → feedback-writer-CudSe1WK.js} +2 -2
  64. package/dist/dashboard/{feedback-writer-DyovUANg.js.map → feedback-writer-CudSe1WK.js.map} +1 -1
  65. package/dist/dashboard/{feedback-writer-gSUv_W0h.js → feedback-writer-Wgv1cd1r.js} +1 -1
  66. package/dist/dashboard/{git-utils-BJRioREj.js → git-utils-C1m4SwAe.js} +1 -1
  67. package/dist/dashboard/{git-utils-BJRioREj.js.map → git-utils-C1m4SwAe.js.map} +1 -1
  68. package/dist/dashboard/{git-utils-BtCRddq3.js → git-utils-DQI8EYoj.js} +1 -1
  69. package/dist/dashboard/{github-app-XO-LBUGk.js → github-app-DClWjjHr.js} +1 -1
  70. package/dist/dashboard/{github-app-XO-LBUGk.js.map → github-app-DClWjjHr.js.map} +1 -1
  71. package/dist/dashboard/{health-events-db-584nYgJB.js → health-events-db-BMXQfInV.js} +1 -1
  72. package/dist/dashboard/{health-events-db-B3ChzN65.js → health-events-db-Do4NrOhC.js} +2 -2
  73. package/dist/dashboard/{health-events-db-B3ChzN65.js.map → health-events-db-Do4NrOhC.js.map} +1 -1
  74. package/dist/dashboard/{hooks-CKhs3N68.js → hooks-CB4T47NC.js} +1 -1
  75. package/dist/dashboard/{hooks-CErbP8Oq.js → hooks-CjqXOlNb.js} +2 -2
  76. package/dist/dashboard/{hooks-CErbP8Oq.js.map → hooks-CjqXOlNb.js.map} +1 -1
  77. package/dist/dashboard/hume-CA2pftu_.js +3 -0
  78. package/dist/dashboard/{hume-CX_U3Qha.js → hume-JsAlMOJC.js} +2 -2
  79. package/dist/dashboard/{hume-CX_U3Qha.js.map → hume-JsAlMOJC.js.map} +1 -1
  80. package/dist/dashboard/{inspect-agent-B57kGDUV.js → inspect-agent-7eour7EA.js} +3 -3
  81. package/dist/dashboard/{inspect-agent-B57kGDUV.js.map → inspect-agent-7eour7EA.js.map} +1 -1
  82. package/dist/dashboard/{io-yGovuG4U.js → io-CWlFW78i.js} +1 -1
  83. package/dist/dashboard/{io-AJg-mzFi.js → io-DKS6359z.js} +1 -1
  84. package/dist/dashboard/{io-AJg-mzFi.js.map → io-DKS6359z.js.map} +1 -1
  85. package/dist/dashboard/issue-id-vwYJdsf8.js +62 -0
  86. package/dist/dashboard/issue-id-vwYJdsf8.js.map +1 -0
  87. package/dist/dashboard/{issue-service-singleton-DQK42EqH.js → issue-service-singleton-Co__-6kL.js} +1 -1
  88. package/dist/dashboard/{issue-service-singleton-sb2HkB9f.js → issue-service-singleton-Wv4xBm3y.js} +7 -7
  89. package/dist/dashboard/{issue-service-singleton-sb2HkB9f.js.map → issue-service-singleton-Wv4xBm3y.js.map} +1 -1
  90. package/dist/dashboard/{label-cleanup-CZEsbtq9.js → label-cleanup-nVKTmIIW.js} +7 -4
  91. package/dist/dashboard/label-cleanup-nVKTmIIW.js.map +1 -0
  92. package/dist/dashboard/lifecycle-BcUmtkR4.js +7 -0
  93. package/dist/dashboard/{merge-agent-GLtMEsTu.js → merge-agent-CGN3TT0a.js} +1 -1
  94. package/dist/dashboard/{merge-agent-twroFuAh.js → merge-agent-yudQOPZc.js} +148 -46
  95. package/dist/dashboard/merge-agent-yudQOPZc.js.map +1 -0
  96. package/dist/dashboard/{paths-COdEvoXR.js → paths-BDyJ7BiV.js} +19 -2
  97. package/dist/dashboard/{paths-COdEvoXR.js.map → paths-BDyJ7BiV.js.map} +1 -1
  98. package/dist/dashboard/{pipeline-notifier-DM5AHG5Q.js → pipeline-notifier-CCSN-jar.js} +1 -1
  99. package/dist/dashboard/{pipeline-notifier-DM5AHG5Q.js.map → pipeline-notifier-CCSN-jar.js.map} +1 -1
  100. package/dist/dashboard/{plan-utils-BkCIhn3B.js → plan-utils-Bkcsqr_s.js} +3 -3
  101. package/dist/dashboard/{plan-utils-BkCIhn3B.js.map → plan-utils-Bkcsqr_s.js.map} +1 -1
  102. package/dist/dashboard/{prd-draft-D09Afalc.js → prd-draft-BD8oMkZ1.js} +2 -2
  103. package/dist/dashboard/{prd-draft-D09Afalc.js.map → prd-draft-BD8oMkZ1.js.map} +1 -1
  104. package/dist/dashboard/{projection-cache-DQ9zegkK.js → projection-cache-C0EL8s8h.js} +1 -1
  105. package/dist/dashboard/{projection-cache-DQ9zegkK.js.map → projection-cache-C0EL8s8h.js.map} +1 -1
  106. package/dist/dashboard/{projects-DyT3vSy-.js → projects-C5ozxjwP.js} +1 -1
  107. package/dist/dashboard/{projects-Cq3TWdPS.js → projects-CFVl4oHn.js} +25 -13
  108. package/dist/dashboard/projects-CFVl4oHn.js.map +1 -0
  109. package/dist/dashboard/{providers-Ck2sQd_F.js → providers-B5Y4H2Mg.js} +4 -4
  110. package/dist/dashboard/providers-B5Y4H2Mg.js.map +1 -0
  111. package/dist/dashboard/{providers-DVQnDekG.js → providers-csVZVPkE.js} +1 -1
  112. package/dist/dashboard/public/assets/{dist-CCJbQrSB.js → dist-BaQPC-c6.js} +1 -1
  113. package/dist/dashboard/public/assets/index-ByLmYGhW.js +212 -0
  114. package/dist/dashboard/public/assets/index-OEEbThNN.css +1 -0
  115. package/dist/dashboard/public/index.html +2 -2
  116. package/dist/dashboard/rally-6McpKKRa.js +3 -0
  117. package/dist/dashboard/{rally-Cwuae-4C.js → rally-YjFRxIiC.js} +2 -2
  118. package/dist/dashboard/{rally-Cwuae-4C.js.map → rally-YjFRxIiC.js.map} +1 -1
  119. package/dist/dashboard/{rally-api-DSUxm7EO.js → rally-api-C0WqCSkT.js} +1 -1
  120. package/dist/dashboard/{rally-api-DSUxm7EO.js.map → rally-api-C0WqCSkT.js.map} +1 -1
  121. package/dist/dashboard/{rally-api-CEH5KZi4.js → rally-api-DNttdCW4.js} +1 -1
  122. package/dist/dashboard/{remote-BHTTMpJJ.js → remote-Cigqjj3f.js} +2 -2
  123. package/dist/dashboard/{remote-BXo_iIku.js → remote-ObpNZ7hF.js} +2 -2
  124. package/dist/dashboard/{remote-BXo_iIku.js.map → remote-ObpNZ7hF.js.map} +1 -1
  125. package/dist/dashboard/{remote-agents-CTKVhFFY.js → remote-agents-Bf3GuM7t.js} +1 -1
  126. package/dist/dashboard/{remote-agents-C0_0LLNd.js → remote-agents-DFyjT1Le.js} +1 -1
  127. package/dist/dashboard/{remote-agents-C0_0LLNd.js.map → remote-agents-DFyjT1Le.js.map} +1 -1
  128. package/dist/dashboard/{review-status-CK3eBGyb.js → review-status-BtXqWBhS.js} +1 -1
  129. package/dist/dashboard/{review-status-CV55Tl-n.js → review-status-Bymwzh2i.js} +44 -4
  130. package/dist/dashboard/{review-status-CV55Tl-n.js.map → review-status-Bymwzh2i.js.map} +1 -1
  131. package/dist/dashboard/server.js +559 -253
  132. package/dist/dashboard/server.js.map +1 -1
  133. package/dist/dashboard/{settings-CuHV-wcv.js → settings-BHlDG7TK.js} +2 -2
  134. package/dist/dashboard/settings-BHlDG7TK.js.map +1 -0
  135. package/dist/dashboard/settings-XWvDcj-D.js +2 -0
  136. package/dist/dashboard/{shadow-engineering-BUeZunaE.js → shadow-engineering-lIn1W_95.js} +1 -1
  137. package/dist/dashboard/{shadow-engineering-BUeZunaE.js.map → shadow-engineering-lIn1W_95.js.map} +1 -1
  138. package/dist/dashboard/{shadow-state-DHQ-kASN.js → shadow-state-BIexcxkv.js} +1 -1
  139. package/dist/dashboard/{shadow-state-DHQ-kASN.js.map → shadow-state-BIexcxkv.js.map} +1 -1
  140. package/dist/dashboard/{spawn-planning-session-8FFAqLdK.js → spawn-planning-session-33Jf-d5T.js} +6 -6
  141. package/dist/dashboard/{spawn-planning-session-8FFAqLdK.js.map → spawn-planning-session-33Jf-d5T.js.map} +1 -1
  142. package/dist/dashboard/{spawn-planning-session-U0Lqpjen.js → spawn-planning-session-D5hrVdWM.js} +1 -1
  143. package/dist/dashboard/{specialist-context-ColzlmGE.js → specialist-context-DGukHSn8.js} +6 -6
  144. package/dist/dashboard/{specialist-context-ColzlmGE.js.map → specialist-context-DGukHSn8.js.map} +1 -1
  145. package/dist/dashboard/{specialist-logs-BhmDpFIq.js → specialist-logs-CIw4qfTy.js} +1 -1
  146. package/dist/dashboard/{specialists-C6s3U6tX.js → specialists-B_zrayaP.js} +37 -36
  147. package/dist/dashboard/specialists-B_zrayaP.js.map +1 -0
  148. package/dist/dashboard/{specialists-Cny632-T.js → specialists-Cp-PgspS.js} +1 -1
  149. package/dist/dashboard/{test-agent-queue-tqI4VDsu.js → test-agent-queue-ypF_ecHo.js} +4 -4
  150. package/dist/dashboard/{test-agent-queue-tqI4VDsu.js.map → test-agent-queue-ypF_ecHo.js.map} +1 -1
  151. package/dist/dashboard/{tldr-daemon-BNFyS7W_.js → tldr-daemon-B_oLRD8z.js} +2 -2
  152. package/dist/dashboard/{tldr-daemon-BNFyS7W_.js.map → tldr-daemon-B_oLRD8z.js.map} +1 -1
  153. package/dist/dashboard/{tldr-daemon-A6JqC59u.js → tldr-daemon-Cfs0bXTi.js} +1 -1
  154. package/dist/dashboard/{tmux-DYGAVJfb.js → tmux-BzxdKItf.js} +1 -1
  155. package/dist/dashboard/{tmux-IlN1Slv-.js → tmux-LwG0tHhU.js} +2 -2
  156. package/dist/dashboard/{tmux-IlN1Slv-.js.map → tmux-LwG0tHhU.js.map} +1 -1
  157. package/dist/dashboard/{tracker-config-BzNLnmcE.js → tracker-config-BP59uH4V.js} +1 -1
  158. package/dist/dashboard/{tracker-config-CNM_5rEf.js → tracker-config-e7ph1QqT.js} +2 -2
  159. package/dist/dashboard/{tracker-config-CNM_5rEf.js.map → tracker-config-e7ph1QqT.js.map} +1 -1
  160. package/dist/dashboard/{tunnel-D2BkwU7k.js → tunnel-0RzzuXPf.js} +1 -1
  161. package/dist/dashboard/{tunnel-Dub2hiAA.js → tunnel-DldbBPWL.js} +2 -2
  162. package/dist/dashboard/{tunnel-Dub2hiAA.js.map → tunnel-DldbBPWL.js.map} +1 -1
  163. package/dist/dashboard/{types-CWA-o4UN.js → types-RKZjGE5N.js} +1 -1
  164. package/dist/dashboard/{types-CWA-o4UN.js.map → types-RKZjGE5N.js.map} +1 -1
  165. package/dist/dashboard/{vtt-parser-BAXygRf0.js → vtt-parser-99vFekRQ.js} +1 -1
  166. package/dist/dashboard/{vtt-parser-BAXygRf0.js.map → vtt-parser-99vFekRQ.js.map} +1 -1
  167. package/dist/dashboard/{work-agent-prompt-JYq_OugP.js → work-agent-prompt-fCg67nyo.js} +65 -10
  168. package/dist/dashboard/{work-agent-prompt-JYq_OugP.js.map → work-agent-prompt-fCg67nyo.js.map} +1 -1
  169. package/dist/dashboard/{work-type-router-Cxp8_ur2.js → work-type-router-CWVW2Wk_.js} +1 -1
  170. package/dist/dashboard/{work-type-router-Cxp8_ur2.js.map → work-type-router-CWVW2Wk_.js.map} +1 -1
  171. package/dist/dashboard/{work-type-router-Com2amST.js → work-type-router-Di5gCQwh.js} +1 -1
  172. package/dist/dashboard/{workflows-N1UTipYl.js → workflows-BSMipN07.js} +35 -17
  173. package/dist/dashboard/workflows-BSMipN07.js.map +1 -0
  174. package/dist/dashboard/workflows-DaYWQIS2.js +2 -0
  175. package/dist/dashboard/{workspace-config-cmp5_ipD.js → workspace-config-DVDR-Ukh.js} +1 -1
  176. package/dist/dashboard/workspace-config-DVDR-Ukh.js.map +1 -0
  177. package/dist/dashboard/{workspace-manager-CjpWPgzL.js → workspace-manager-BYfzs_t2.js} +1 -1
  178. package/dist/dashboard/{workspace-manager-D_y9ZmW_.js → workspace-manager-C7OfT62A.js} +44 -24
  179. package/dist/dashboard/workspace-manager-C7OfT62A.js.map +1 -0
  180. package/dist/{dns-BKzHm-2q.js → dns-D_aKQJjb.js} +1 -1
  181. package/dist/{dns-DZwOWvVO.js → dns-Yxq4NNS7.js} +1 -1
  182. package/dist/{dns-DZwOWvVO.js.map → dns-Yxq4NNS7.js.map} +1 -1
  183. package/dist/{factory-DFu3IT4r.js → factory-BRBGw6OB.js} +1 -1
  184. package/dist/{factory-DfzczxN1.js → factory-DzsOiZVc.js} +3 -3
  185. package/dist/{factory-DfzczxN1.js.map → factory-DzsOiZVc.js.map} +1 -1
  186. package/dist/{feedback-writer-CwdnOkPO.js → feedback-writer-ygXN5F9N.js} +2 -2
  187. package/dist/{feedback-writer-CwdnOkPO.js.map → feedback-writer-ygXN5F9N.js.map} +1 -1
  188. package/dist/{github-app-CHKwxOeQ.js → github-app-DykduJ0X.js} +1 -1
  189. package/dist/{github-app-CHKwxOeQ.js.map → github-app-DykduJ0X.js.map} +1 -1
  190. package/dist/hume-9nv1VmMV.js +3 -0
  191. package/dist/{hume-DnV-tDsh.js → hume-DoCbph2h.js} +2 -2
  192. package/dist/{hume-DnV-tDsh.js.map → hume-DoCbph2h.js.map} +1 -1
  193. package/dist/index.d.ts +17 -2
  194. package/dist/index.d.ts.map +1 -1
  195. package/dist/index.js +8 -7
  196. package/dist/issue-id-CAcekoIw.js +62 -0
  197. package/dist/issue-id-CAcekoIw.js.map +1 -0
  198. package/dist/{label-cleanup-31ElPqqv.js → label-cleanup-C8R9Rspn.js} +7 -4
  199. package/dist/label-cleanup-C8R9Rspn.js.map +1 -0
  200. package/dist/{manifest-DL0oDbpv.js → manifest-B4ghOD-V.js} +1 -1
  201. package/dist/{manifest-DL0oDbpv.js.map → manifest-B4ghOD-V.js.map} +1 -1
  202. package/dist/{merge-agent-VQH9z9t8.js → merge-agent-DlUiUanN.js} +86 -33
  203. package/dist/merge-agent-DlUiUanN.js.map +1 -0
  204. package/dist/{paths-lMaxrYtT.js → paths-CDJ_HsbN.js} +19 -2
  205. package/dist/{paths-lMaxrYtT.js.map → paths-CDJ_HsbN.js.map} +1 -1
  206. package/dist/{pipeline-notifier-OJ-d3Y60.js → pipeline-notifier-XgDdCdvT.js} +1 -1
  207. package/dist/{pipeline-notifier-OJ-d3Y60.js.map → pipeline-notifier-XgDdCdvT.js.map} +1 -1
  208. package/dist/{projects-CvLepaxC.js → projects-Bk-5QhFQ.js} +25 -13
  209. package/dist/projects-Bk-5QhFQ.js.map +1 -0
  210. package/dist/{projects-DMWmPeIU.js → projects-DhU7rAVN.js} +1 -1
  211. package/dist/{providers-DcCPZ5K4.js → providers-DSU1vfQF.js} +4 -4
  212. package/dist/providers-DSU1vfQF.js.map +1 -0
  213. package/dist/rally-DdPvGa-w.js +3 -0
  214. package/dist/{rally-uUUZXp1h.js → rally-Dy00NElU.js} +1 -1
  215. package/dist/{rally-uUUZXp1h.js.map → rally-Dy00NElU.js.map} +1 -1
  216. package/dist/{remote-CkLBqLJc.js → remote-CYiOJg0q.js} +2 -2
  217. package/dist/{remote-CkLBqLJc.js.map → remote-CYiOJg0q.js.map} +1 -1
  218. package/dist/{remote-agents-C5Bd2fgt.js → remote-agents-CZXrUF4f.js} +1 -1
  219. package/dist/{remote-agents-C5Bd2fgt.js.map → remote-agents-CZXrUF4f.js.map} +1 -1
  220. package/dist/{remote-agents-BTzD-wMQ.js → remote-agents-ycHHVsgf.js} +1 -1
  221. package/dist/{remote-workspace-Dxghqiti.js → remote-workspace-CA33UuVI.js} +4 -4
  222. package/dist/{remote-workspace-Dxghqiti.js.map → remote-workspace-CA33UuVI.js.map} +1 -1
  223. package/dist/{review-status-2TdtHNcs.js → review-status-D6H2WOw8.js} +1 -1
  224. package/dist/{review-status-Bm1bWNEa.js → review-status-DEDvCKMP.js} +44 -4
  225. package/dist/{review-status-Bm1bWNEa.js.map → review-status-DEDvCKMP.js.map} +1 -1
  226. package/dist/{tracker-C_62ukEq.js → settings-BcWPTrua.js} +7 -199
  227. package/dist/settings-BcWPTrua.js.map +1 -0
  228. package/dist/shadow-state-BZzxfEGw.js +2 -0
  229. package/dist/{shadow-state-CFFHf05M.js → shadow-state-CE3dQfll.js} +1 -1
  230. package/dist/{shadow-state-CFFHf05M.js.map → shadow-state-CE3dQfll.js.map} +1 -1
  231. package/dist/{specialist-context-BdNFsfMG.js → specialist-context-BAUWL1Fl.js} +6 -6
  232. package/dist/{specialist-context-BdNFsfMG.js.map → specialist-context-BAUWL1Fl.js.map} +1 -1
  233. package/dist/{specialist-logs-CLztE_bE.js → specialist-logs-DQKKQV9B.js} +1 -1
  234. package/dist/{specialists-aUoUVWsN.js → specialists-Bfb9ATzw.js} +1 -1
  235. package/dist/{specialists-DEKqgkxp.js → specialists-D7Kj5o6s.js} +35 -34
  236. package/dist/specialists-D7Kj5o6s.js.map +1 -0
  237. package/dist/sync-DMfgd389.js +693 -0
  238. package/dist/sync-DMfgd389.js.map +1 -0
  239. package/dist/sync-TL6y-8K6.js +2 -0
  240. package/dist/{tldr-daemon-BCEFPItr.js → tldr-daemon-CFx4LXAl.js} +2 -2
  241. package/dist/{tldr-daemon-BCEFPItr.js.map → tldr-daemon-CFx4LXAl.js.map} +1 -1
  242. package/dist/{tldr-daemon-xBAx4cBE.js → tldr-daemon-D_EooADG.js} +1 -1
  243. package/dist/{tmux-DN6H886Y.js → tmux-CBtui_Cl.js} +1 -1
  244. package/dist/{tmux-CKdNxxJx.js → tmux-D6Ah4I8z.js} +2 -2
  245. package/dist/{tmux-CKdNxxJx.js.map → tmux-D6Ah4I8z.js.map} +1 -1
  246. package/dist/tracker-BhYYvU3p.js +198 -0
  247. package/dist/tracker-BhYYvU3p.js.map +1 -0
  248. package/dist/{tracker-utils-CVU2W1sX.js → tracker-utils-ChQyut8w.js} +34 -12
  249. package/dist/tracker-utils-ChQyut8w.js.map +1 -0
  250. package/dist/{traefik-DHgBoWXX.js → traefik-C80EbDu_.js} +4 -4
  251. package/dist/{traefik-DHgBoWXX.js.map → traefik-C80EbDu_.js.map} +1 -1
  252. package/dist/{traefik-BR-edbZv.js → traefik-CgHl7Bge.js} +1 -1
  253. package/dist/{tunnel-BZO9Q5oe.js → tunnel-DXOJ1wMM.js} +1 -1
  254. package/dist/{tunnel-Bl1qNSyQ.js → tunnel-DzXEPwIc.js} +2 -2
  255. package/dist/{tunnel-Bl1qNSyQ.js.map → tunnel-DzXEPwIc.js.map} +1 -1
  256. package/dist/{types-DewGdaIP.js → types-BhJj1SP1.js} +1 -1
  257. package/dist/{types-DewGdaIP.js.map → types-BhJj1SP1.js.map} +1 -1
  258. package/dist/{work-type-router-CS2BB1vS.js → work-type-router-CHjciPyS.js} +3 -3
  259. package/dist/{work-type-router-CS2BB1vS.js.map → work-type-router-CHjciPyS.js.map} +1 -1
  260. package/dist/{workspace-config-CNXOpKuj.js → workspace-config-fUafvYMp.js} +1 -1
  261. package/dist/workspace-config-fUafvYMp.js.map +1 -0
  262. package/dist/workspace-manager-B9jS4Dsq.js +3 -0
  263. package/dist/{workspace-manager-CncdZkIy.js → workspace-manager-DuLhnzJV.js} +112 -27
  264. package/dist/workspace-manager-DuLhnzJV.js.map +1 -0
  265. package/package.json +2 -1
  266. package/scripts/post-merge-deploy.sh +25 -5
  267. package/scripts/record-cost-event.js +57 -7
  268. package/scripts/record-cost-event.js.map +1 -1
  269. package/skills/pan-help/SKILL.md +1 -1
  270. package/skills/pan-sync/SKILL.md +6 -6
  271. package/skills/workspace-add-repo/skill.md +46 -0
  272. package/templates/claude-md/sections/warnings.md +15 -2
  273. package/dist/clean-planning-sZXvy3Y5.js +0 -2
  274. package/dist/close-issue-Dml437qV.js +0 -2
  275. package/dist/close-issue-Dr7yZmrr.js.map +0 -1
  276. package/dist/compact-beads-iu218JcO.js +0 -2
  277. package/dist/dashboard/agent-enrichment-C67LJBgD.js.map +0 -1
  278. package/dist/dashboard/clean-planning-DCu3cOTu.js +0 -2
  279. package/dist/dashboard/close-issue-DfIggeZD.js.map +0 -1
  280. package/dist/dashboard/close-issue-DwdwYtar.js +0 -2
  281. package/dist/dashboard/compact-beads-DXY2fK2s.js +0 -2
  282. package/dist/dashboard/event-store-O9q0Gweh.js.map +0 -1
  283. package/dist/dashboard/hume-MZndNDVU.js +0 -3
  284. package/dist/dashboard/label-cleanup-CZEsbtq9.js.map +0 -1
  285. package/dist/dashboard/lifecycle-ZTYdrr2O.js +0 -7
  286. package/dist/dashboard/merge-agent-twroFuAh.js.map +0 -1
  287. package/dist/dashboard/projects-Cq3TWdPS.js.map +0 -1
  288. package/dist/dashboard/providers-Ck2sQd_F.js.map +0 -1
  289. package/dist/dashboard/public/assets/index-CpSmB2ts.css +0 -1
  290. package/dist/dashboard/public/assets/index-yarWhi0M.js +0 -214
  291. package/dist/dashboard/rally-CQ1OBJrJ.js +0 -3
  292. package/dist/dashboard/settings-CuHV-wcv.js.map +0 -1
  293. package/dist/dashboard/settings-DMeGBRsk.js +0 -2
  294. package/dist/dashboard/specialists-C6s3U6tX.js.map +0 -1
  295. package/dist/dashboard/workflows-B2ARUpOa.js +0 -2
  296. package/dist/dashboard/workflows-N1UTipYl.js.map +0 -1
  297. package/dist/dashboard/workspace-config-cmp5_ipD.js.map +0 -1
  298. package/dist/dashboard/workspace-manager-D_y9ZmW_.js.map +0 -1
  299. package/dist/hume-BjmwmJ9E.js +0 -3
  300. package/dist/label-cleanup-31ElPqqv.js.map +0 -1
  301. package/dist/merge-agent-VQH9z9t8.js.map +0 -1
  302. package/dist/projects-CvLepaxC.js.map +0 -1
  303. package/dist/providers-DcCPZ5K4.js.map +0 -1
  304. package/dist/rally-DR9x8--6.js +0 -3
  305. package/dist/shadow-state-p3jpGRPJ.js +0 -2
  306. package/dist/specialists-DEKqgkxp.js.map +0 -1
  307. package/dist/tracker-C_62ukEq.js.map +0 -1
  308. package/dist/tracker-utils-CVU2W1sX.js.map +0 -1
  309. package/dist/workspace-config-CNXOpKuj.js.map +0 -1
  310. package/dist/workspace-manager-CncdZkIy.js.map +0 -1
  311. package/dist/workspace-manager-Cx0r2Jnv.js +0 -3
@@ -1,14 +1,17 @@
1
- import { g as init_paths, s as PANOPTICON_HOME } from "./paths-COdEvoXR.js";
2
- import { g as loadProjectsConfig, p as init_projects, s as getIssuePrefix, y as resolveProjectFromIssue } from "./projects-Cq3TWdPS.js";
3
- import { H as recordWake, I as isRunning, O as getTmuxSessionName, Y as spawnEphemeralSpecialist, j as init_specialists, rt as wakeSpecialist } from "./specialists-C6s3U6tX.js";
4
- import { n as init_workspace_config, r as replacePlaceholders } from "./workspace-config-cmp5_ipD.js";
5
- import { l as sendKeysAsync, o as init_tmux, u as sessionExists } from "./tmux-IlN1Slv-.js";
6
- import { a as init_config, o as loadConfig } from "./config-CUREjHP7.js";
7
- import { t as cleanupStaleLocks } from "./git-utils-BJRioREj.js";
1
+ import { _ as init_paths, s as PANOPTICON_HOME } from "./paths-BDyJ7BiV.js";
2
+ import { n as getEventStore } from "./event-store-vSmAA3Zp.js";
3
+ import { i as parseIssueId, n as extractPrefix, r as init_issue_id, t as extractNumber } from "./issue-id-vwYJdsf8.js";
4
+ import { g as loadProjectsConfig, p as init_projects, s as getIssuePrefix, y as resolveProjectFromIssue } from "./projects-CFVl4oHn.js";
5
+ import { H as recordWake, I as isRunning, O as getTmuxSessionName, Y as spawnEphemeralSpecialist, j as init_specialists, rt as wakeSpecialist } from "./specialists-B_zrayaP.js";
6
+ import { n as init_workspace_config, r as replacePlaceholders } from "./workspace-config-DVDR-Ukh.js";
7
+ import { l as sendKeysAsync, o as init_tmux, u as sessionExists } from "./tmux-LwG0tHhU.js";
8
+ import { a as init_config, o as loadConfig } from "./config-CDkGjnwy.js";
9
+ import { t as cleanupStaleLocks } from "./git-utils-C1m4SwAe.js";
8
10
  import { appendFileSync, existsSync, mkdirSync, readFileSync } from "fs";
9
11
  import { basename, dirname, join, relative } from "path";
10
12
  import { homedir } from "os";
11
13
  import { fileURLToPath } from "url";
14
+ import { randomUUID } from "crypto";
12
15
  import { exec, spawn } from "child_process";
13
16
  import { promisify } from "util";
14
17
  import { writeFile } from "fs/promises";
@@ -20,6 +23,7 @@ import { writeFile } from "fs/promises";
20
23
  * Eliminates hardcoded prefix checks like `issueId.startsWith('PAN-')`.
21
24
  */
22
25
  init_projects();
26
+ init_issue_id();
23
27
  /**
24
28
  * Parse GitHub repos from GITHUB_REPOS env var and projects.yaml.
25
29
  * Priority: GITHUB_REPOS env var first, then auto-derive from projects.yaml.
@@ -55,10 +59,12 @@ function parseGitHubRepos() {
55
59
  return repos;
56
60
  }
57
61
  /**
58
- * Extract the prefix from an issue ID (e.g., "CLI" from "CLI-1", "PAN" from "PAN-42").
62
+ * Extract the prefix from an issue ID (e.g., "CLI" from "CLI-1", "PAN" from "PAN-42", "F" from "F29698").
63
+ * Uses unified parser to support standard, Rally, and custom formats.
64
+ * @deprecated Use extractPrefix from issue-id.ts for unified parsing
59
65
  */
60
66
  function extractIssuePrefix(issueId) {
61
- return issueId.split("-")[0].toUpperCase();
67
+ return extractPrefix(issueId) ?? issueId.split("-")[0].toUpperCase();
62
68
  }
63
69
  /**
64
70
  * Resolve an issue ID to its GitHub repo config, or determine it's not a GitHub issue.
@@ -70,8 +76,8 @@ function resolveGitHubIssue(issueId) {
70
76
  const prefix = extractIssuePrefix(issueId);
71
77
  const repos = parseGitHubRepos();
72
78
  for (const repoConfig of repos) if (repoConfig.prefix === prefix) {
73
- const number = parseInt(issueId.split("-")[1], 10);
74
- if (!isNaN(number)) return {
79
+ const number = extractNumber(issueId);
80
+ if (number !== null) return {
75
81
  isGitHub: true,
76
82
  ...repoConfig,
77
83
  number
@@ -84,23 +90,120 @@ function resolveGitHubIssue(issueId) {
84
90
  *
85
91
  * Resolution order:
86
92
  * 1. GitHub — prefix matches a configured github_repo project
87
- * 2. Rally — prefix matches a project with rally_project but no linear_team / github_repo
93
+ * 2. Rally — prefix matches a project with rally_project or tracker: 'rally'
88
94
  * 3. Linear — fallback (matches linear_team or unknown prefix)
89
95
  */
90
96
  function resolveTrackerType(issueId) {
91
97
  if (resolveGitHubIssue(issueId).isGitHub) return "github";
92
- const prefix = extractIssuePrefix(issueId);
98
+ const parsed = parseIssueId(issueId);
99
+ if (!parsed) return "linear";
93
100
  try {
94
101
  const { projects } = loadProjectsConfig();
95
- for (const [key, project] of Object.entries(projects)) if ((getIssuePrefix(project) || key.toUpperCase().replace(/-/g, ""))?.toUpperCase() === prefix) {
96
- if (project.github_repo) return "github";
97
- if (project.rally_project) return "rally";
98
- return "linear";
102
+ for (const [key, project] of Object.entries(projects)) {
103
+ const singlePrefix = getIssuePrefix(project);
104
+ if (singlePrefix?.toUpperCase() === parsed.prefix) {
105
+ if (project.tracker) return project.tracker;
106
+ if (project.github_repo) return "github";
107
+ if (project.rally_project) return "rally";
108
+ return "linear";
109
+ }
110
+ if (project.issue_prefixes?.some((p) => p.toUpperCase() === parsed.prefix)) {
111
+ if (project.tracker) return project.tracker;
112
+ if (project.rally_project) return "rally";
113
+ return "linear";
114
+ }
115
+ if (!singlePrefix && !project.issue_prefixes) {
116
+ if (key.toUpperCase().replace(/-/g, "") === parsed.prefix) {
117
+ if (project.tracker) return project.tracker;
118
+ if (project.github_repo) return "github";
119
+ if (project.rally_project) return "rally";
120
+ return "linear";
121
+ }
122
+ }
99
123
  }
100
124
  } catch {}
101
125
  return "linear";
102
126
  }
103
127
  //#endregion
128
+ //#region ../../lib/activity-logger.ts
129
+ /**
130
+ * Shared activity logger — emits activity.entry events to the SQLite event store.
131
+ *
132
+ * Replaces flat-file logActivity() in merge-agent.ts and provides a unified
133
+ * activity logging API for all Panopticon components (merge-agent, cloister,
134
+ * specialists, dashboard).
135
+ *
136
+ * Activity entries are persisted to the event store and flow through:
137
+ * event store → PubSub → WebSocket → EventRouter → Zustand store → ActivityPanel
138
+ *
139
+ * Usage:
140
+ * import { emitActivityEntry } from '../lib/activity-logger.js';
141
+ * emitActivityEntry({ source: 'merge-agent', level: 'info', message: '...', issueId: 'PAN-123' });
142
+ */
143
+ /**
144
+ * Emit an activity.entry domain event to the SQLite event store.
145
+ * Non-blocking — throws silently if event store is not yet initialized.
146
+ *
147
+ * The event is persisted to SQLite immediately and PubSub notifies all
148
+ * WebSocket subscribers so the ActivityPanel updates in real-time.
149
+ */
150
+ function emitActivityEntry(options) {
151
+ try {
152
+ const store = getEventStore();
153
+ const entry = {
154
+ type: "activity.entry",
155
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
156
+ payload: {
157
+ id: randomUUID(),
158
+ source: options.source,
159
+ level: options.level,
160
+ message: options.message,
161
+ details: options.details ?? null,
162
+ issueId: options.issueId ?? null
163
+ }
164
+ };
165
+ store.append(entry);
166
+ } catch {}
167
+ }
168
+ /**
169
+ * Emit a dashboard lifecycle event (started, completed, failed).
170
+ * Used by pending-lifecycle.ts and merge-agent.ts.
171
+ */
172
+ function emitDashboardLifecycle(status, options) {
173
+ try {
174
+ const store = getEventStore();
175
+ let event;
176
+ if (status === "started") event = {
177
+ type: "dashboard.lifecycle_started",
178
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
179
+ payload: {
180
+ reason: options.reason,
181
+ issueId: options.issueId ?? null,
182
+ trigger: options.trigger ?? "unknown"
183
+ }
184
+ };
185
+ else if (status === "completed") event = {
186
+ type: "dashboard.lifecycle_completed",
187
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
188
+ payload: {
189
+ reason: options.reason,
190
+ issueId: options.issueId ?? null,
191
+ durationMs: options.durationMs ?? 0
192
+ }
193
+ };
194
+ else event = {
195
+ type: "dashboard.lifecycle_failed",
196
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
197
+ payload: {
198
+ reason: options.reason,
199
+ issueId: options.issueId ?? null,
200
+ error: options.error ?? "unknown error"
201
+ }
202
+ };
203
+ store.append(event);
204
+ } catch {}
205
+ }
206
+ //#endregion
104
207
  //#region ../../lib/cloister/validation.ts
105
208
  /**
106
209
  * Merge Validation - Validation utilities for merge completeness
@@ -469,7 +572,7 @@ async function notifyTldrDaemon(projectPath, sourceBranch) {
469
572
  return;
470
573
  }
471
574
  console.log(`[merge-agent] Found ${changedFiles.length} changed source files to reindex`);
472
- const { getTldrDaemonService } = await import("./tldr-daemon-A6JqC59u.js");
575
+ const { getTldrDaemonService } = await import("./tldr-daemon-Cfs0bXTi.js");
473
576
  const tldrService = getTldrDaemonService(projectPath, venvPath);
474
577
  if (!(await tldrService.getStatus()).running) {
475
578
  console.log(`[merge-agent] TLDR daemon not running, skipping notification`);
@@ -512,14 +615,17 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
512
615
  issueId,
513
616
  projectPath,
514
617
  sourceBranch: sourceBranch ?? "",
515
- timestamp: Date.now()
618
+ timestamp: Date.now(),
619
+ reason: "post-merge",
620
+ trigger: "merge-agent"
516
621
  }), "utf-8");
517
622
  console.log(`[merge-agent] Wrote pending lifecycle file: ${pendingFile}`);
518
623
  const child = spawn(deployScript, [
519
624
  repoRoot,
520
625
  issueId,
521
626
  projectPath,
522
- sourceBranch ?? ""
627
+ sourceBranch ?? "",
628
+ "post-merge"
523
629
  ], {
524
630
  detached: true,
525
631
  stdio: "ignore"
@@ -533,7 +639,7 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
533
639
  }
534
640
  console.log(`[merge-agent] Running post-merge cleanup for ${issueId}`);
535
641
  try {
536
- const { movePrd } = await import("./archive-planning-CScs1MOC.js");
642
+ const { movePrd } = await import("./archive-planning-C3Ebf9yC.js");
537
643
  const prdResult = await movePrd({
538
644
  issueId,
539
645
  projectPath
@@ -547,7 +653,7 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
547
653
  console.warn(`[merge-agent] Could not move PRD: ${err}`);
548
654
  }
549
655
  try {
550
- const { cleanPlanningArtifacts } = await import("./clean-planning-DCu3cOTu.js");
656
+ const { cleanPlanningArtifacts } = await import("./clean-planning-D60L8rPY.js");
551
657
  const cleanResult = await cleanPlanningArtifacts({
552
658
  issueId,
553
659
  projectPath
@@ -561,7 +667,7 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
561
667
  console.warn(`[merge-agent] Could not clean planning artifacts: ${err}`);
562
668
  }
563
669
  try {
564
- const { cleanupMergedLabels } = await import("./label-cleanup-CZEsbtq9.js");
670
+ const { cleanupMergedLabels } = await import("./label-cleanup-nVKTmIIW.js");
565
671
  const ghResolved = resolveGitHubIssue(issueId);
566
672
  const labelResult = await cleanupMergedLabels(ghResolved.isGitHub ? {
567
673
  issueId,
@@ -585,7 +691,7 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
585
691
  }
586
692
  closeIssueWithCircuitBreaker(issueId, projectPath);
587
693
  try {
588
- const { compactBeads } = await import("./compact-beads-DXY2fK2s.js");
694
+ const { compactBeads } = await import("./compact-beads-C7BN5N11.js");
589
695
  const beadsResult = await compactBeads({
590
696
  issueId,
591
697
  projectPath
@@ -598,8 +704,8 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
598
704
  console.warn(`[merge-agent] Beads compaction failed: ${err}`);
599
705
  }
600
706
  try {
601
- const { getAgentState, saveAgentState } = await import("./agents-BVBVCyat.js");
602
- const { killSession, sessionExists } = await import("./tmux-DYGAVJfb.js");
707
+ const { getAgentState, saveAgentState } = await import("./agents-Dgh2TjSp.js");
708
+ const { killSession, sessionExists } = await import("./tmux-BzxdKItf.js");
603
709
  const agentId = `agent-${issueId.toLowerCase()}`;
604
710
  const agentState = getAgentState(agentId);
605
711
  if (agentState && sessionExists(agentId)) {
@@ -618,8 +724,8 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
618
724
  console.warn(`[merge-agent] Could not kill agent sessions: ${err}`);
619
725
  }
620
726
  try {
621
- const { findWorkspacePath } = await import("./archive-planning-CScs1MOC.js");
622
- const { stopWorkspaceDocker } = await import("./workspace-manager-CjpWPgzL.js");
727
+ const { findWorkspacePath } = await import("./archive-planning-C3Ebf9yC.js");
728
+ const { stopWorkspaceDocker } = await import("./workspace-manager-BYfzs_t2.js");
623
729
  const issueLower = issueId.toLowerCase();
624
730
  const workspacePath = findWorkspacePath(projectPath, issueLower);
625
731
  if (workspacePath) {
@@ -649,7 +755,7 @@ function closeIssueWithCircuitBreaker(issueId, projectPath) {
649
755
  }
650
756
  (async () => {
651
757
  try {
652
- const { closeIssue } = await import("./close-issue-DwdwYtar.js");
758
+ const { closeIssue } = await import("./close-issue-C2KeSKKJ.js");
653
759
  const ghResolved = resolveGitHubIssue(issueId);
654
760
  const results = await closeIssue(ghResolved.isGitHub ? {
655
761
  issueId,
@@ -822,19 +928,15 @@ function logMergeHistory(context, result, sessionId) {
822
928
  appendFileSync(MERGE_HISTORY_FILE, JSON.stringify(entry) + "\n", "utf-8");
823
929
  }
824
930
  /**
825
- * Log activity to the dashboard activity log
931
+ * Log activity to the dashboard activity log (event-sourced via emitActivityEntry)
826
932
  */
827
- function logActivity(action, details) {
828
- const ACTIVITY_LOG = "/tmp/panopticon-activity.log";
829
- try {
830
- const entry = {
831
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
832
- source: "merge-agent",
833
- action,
834
- details
835
- };
836
- appendFileSync(ACTIVITY_LOG, JSON.stringify(entry) + "\n");
837
- } catch {}
933
+ function logActivity(action, details, issueId) {
934
+ emitActivityEntry({
935
+ source: "merge-agent",
936
+ level: action.includes("fail") || action.includes("error") ? "error" : action.includes("warn") ? "warn" : "success",
937
+ message: `[merge-agent] ${action}: ${details}`,
938
+ issueId
939
+ });
838
940
  }
839
941
  /**
840
942
  * Capture tmux output and look for result markers (async)
@@ -1049,7 +1151,7 @@ async function spawnMergeAgentForBranches(projectPath, sourceBranch, targetBranc
1049
1151
  const message = `Branch ${sourceBranch} is not pushed to remote.`;
1050
1152
  console.error(`[merge-agent] ${message}`);
1051
1153
  logActivity("merge_blocked", message);
1052
- const { writeFeedbackFile } = await import("./feedback-writer-gSUv_W0h.js");
1154
+ const { writeFeedbackFile } = await import("./feedback-writer-Wgv1cd1r.js");
1053
1155
  const blockMsg = `# Merge Blocked\n\nBranch "${sourceBranch}" is not pushed to remote.\n\n## Required Action\n\nRun: \`git push -u origin ${sourceBranch}\``;
1054
1156
  const fileResult = await writeFeedbackFile({
1055
1157
  issueId,
@@ -1228,7 +1330,7 @@ Report any issues or conflicts you encountered.`;
1228
1330
  const mergeSession = getTmuxSessionName("merge-agent", mergeProjectKey ?? void 0);
1229
1331
  if (!resolvedProject) console.warn(`[merge-agent] Could not resolve project for ${issueId} — falling back to global specialist. Check projects.yaml configuration.`);
1230
1332
  if (mergeProjectKey) {
1231
- const { getAgentRuntimeState, saveAgentRuntimeState } = await import("./agents-BVBVCyat.js");
1333
+ const { getAgentRuntimeState, saveAgentRuntimeState } = await import("./agents-Dgh2TjSp.js");
1232
1334
  const IDLE_POLL_INTERVAL = 3e3;
1233
1335
  const IDLE_MAX_WAIT = 36e4;
1234
1336
  const idleStart = Date.now();
@@ -1528,7 +1630,7 @@ CRITICAL: Success means the PR is MERGED on GitHub. Rebase alone is NOT success.
1528
1630
  const mergeSession = getTmuxSessionName("merge-agent", mergeProjectKey ?? void 0);
1529
1631
  if (!resolvedProject) console.warn(`[merge-agent] Could not resolve project for ${issueId} — using global specialist`);
1530
1632
  if (mergeProjectKey) {
1531
- const { getAgentRuntimeState, saveAgentRuntimeState } = await import("./agents-BVBVCyat.js");
1633
+ const { getAgentRuntimeState, saveAgentRuntimeState } = await import("./agents-Dgh2TjSp.js");
1532
1634
  const IDLE_POLL_INTERVAL = 3e3;
1533
1635
  const IDLE_MAX_WAIT = 36e4;
1534
1636
  const idleStart = Date.now();
@@ -1989,6 +2091,6 @@ async function runProjectQualityGates(projectPath, phase) {
1989
2091
  }
1990
2092
  }
1991
2093
  //#endregion
1992
- export { scanForConflictMarkers as a, spawnRebaseAgentForBranch as c, runQualityGates as d, resolveGitHubIssue as f, runProjectQualityGates as i, syncMainIntoWorkspace as l, postMergeLifecycle as n, spawnMergeAgent as o, resolveTrackerType as p, resetPostMergeState as r, spawnMergeAgentForBranches as s, notifyTldrDaemon as t, DEFAULT_GATES as u };
2094
+ export { scanForConflictMarkers as a, spawnRebaseAgentForBranch as c, runQualityGates as d, emitDashboardLifecycle as f, runProjectQualityGates as i, syncMainIntoWorkspace as l, resolveTrackerType as m, postMergeLifecycle as n, spawnMergeAgent as o, resolveGitHubIssue as p, resetPostMergeState as r, spawnMergeAgentForBranches as s, notifyTldrDaemon as t, DEFAULT_GATES as u };
1993
2095
 
1994
- //# sourceMappingURL=merge-agent-twroFuAh.js.map
2096
+ //# sourceMappingURL=merge-agent-yudQOPZc.js.map