@readmagic/workmate 0.0.27 → 0.0.28

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 (216) hide show
  1. package/dist/chunks/{AddWorkspaceDirectory-DqlPtsVK.js → AddWorkspaceDirectory-Bmgh8VS3.js} +1 -1
  2. package/dist/chunks/{AgentsMdExternalIncludesDialog-rJS5l6yk.js → AgentsMdExternalIncludesDialog-BJfHqScU.js} +1 -1
  3. package/dist/chunks/AgentsMdExternalIncludesDialog-BjbUilCE.js +1 -0
  4. package/dist/chunks/{App-DzRQpRKr.js → App-COdpsR2w.js} +1 -1
  5. package/dist/chunks/{BackgroundTasksDialog-CBhSmdz_.js → BackgroundTasksDialog-WkoL4g5Q.js} +1 -1
  6. package/dist/chunks/{BypassPermissionsModeDialog-zz-lnmJt.js → BypassPermissionsModeDialog-BT9yl0Qt.js} +1 -1
  7. package/dist/chunks/{CustomSelect-CYmc4vRh.js → CustomSelect-t4wXuXWH.js} +1 -1
  8. package/dist/chunks/{DiffDialog-CTUIAcEE.js → DiffDialog-CXZxnb7Y.js} +1 -1
  9. package/dist/chunks/Doctor-B6isid5K.js +1 -0
  10. package/dist/chunks/{Doctor-CLOYkPRR.js → Doctor-COj-tZBc.js} +1 -1
  11. package/dist/chunks/{ExitFlow-CATwJC4c.js → ExitFlow-CcMYH5iI.js} +1 -1
  12. package/dist/chunks/{InvalidConfigDialog-B-9Z58oD.js → InvalidConfigDialog-riLYEaUP.js} +1 -1
  13. package/dist/chunks/{InvalidSettingsDialog-B4EWjbp7.js → InvalidSettingsDialog-BGXl3V1A.js} +1 -1
  14. package/dist/chunks/{KeybindingProviderSetup-Dzg77_Xn.js → KeybindingProviderSetup-syiDgtpB.js} +1 -1
  15. package/dist/chunks/{MCPConnectionManager-CBY8nqdU.js → MCPConnectionManager-C7RmKzJh.js} +1 -1
  16. package/dist/chunks/{MCPToolListView-C7HT6rrl.js → MCPToolListView-CewNLJus.js} +1 -1
  17. package/dist/chunks/{McpParsingWarnings-Dj_Fu5o-.js → McpParsingWarnings-Czze2JPd.js} +1 -1
  18. package/dist/chunks/{MessageSelector-Dw_ERK_Z.js → MessageSelector-Kc6JlnDX.js} +1 -1
  19. package/dist/chunks/{Messages-RBfRELKn.js → Messages-BvFYO4Zn.js} +1 -1
  20. package/dist/chunks/{Onboarding-BRSXxc2E.js → Onboarding-CD_Uv5h9.js} +1 -1
  21. package/dist/chunks/{PromptInputFooterSuggestions-ChpyD9B7.js → PromptInputFooterSuggestions-CHXJsTtQ.js} +1 -1
  22. package/dist/chunks/{PromptInputHelpMenu-CrTT8MKE.js → PromptInputHelpMenu-BZIVCV7V.js} +1 -1
  23. package/dist/chunks/{ProviderSetup-BEV95bnz.js → ProviderSetup-CwMvjmjh.js} +1 -1
  24. package/dist/chunks/{QueryEngine-BBBkZWu2.js → QueryEngine-DAwfp_ht.js} +1 -1
  25. package/dist/chunks/{REPL-BDnZnm__.js → REPL-CtFtb35A.js} +4 -4
  26. package/dist/chunks/REPL-tFT1FGQF.js +1 -0
  27. package/dist/chunks/{ResumeConversation-BuSqBrm1.js → ResumeConversation-CERzSBvg.js} +1 -1
  28. package/dist/chunks/SearchExtraToolsTool-ndh4aEwQ.js +1 -0
  29. package/dist/chunks/{Settings-DYKmPdbd.js → Settings-CPaqWNdP.js} +2 -2
  30. package/dist/chunks/{Spinner-DOI8qqZi.js → Spinner-C0qHjfIY.js} +1 -1
  31. package/dist/chunks/{TextInput-ZKU-x_FD.js → TextInput-ou7ZhpVY.js} +1 -1
  32. package/dist/chunks/{ThemePicker-B69oDgXN.js → ThemePicker-CVFWqSc7.js} +1 -1
  33. package/dist/chunks/{TrustDialog-BSG8Ibh8.js → TrustDialog-CGXv_LF4.js} +1 -1
  34. package/dist/chunks/{ValidationErrorsList-BUYHEft4.js → ValidationErrorsList-CKeHoN2Z.js} +1 -1
  35. package/dist/chunks/{_baseEach-P0u1zIx6.js → _baseEach-BYhqv77g.js} +1 -1
  36. package/dist/chunks/{add-dir-C8RmmyQK.js → add-dir-BSizpuef.js} +1 -1
  37. package/dist/chunks/{agentDisplay-np7CH47m.js → agentDisplay-JKfYFD1m.js} +1 -1
  38. package/dist/chunks/{agents-DRQlR5M1.js → agents-BDTCH6YB.js} +1 -1
  39. package/dist/chunks/{agents-DedoH0Q4.js → agents-MEaV8P2G.js} +1 -1
  40. package/dist/chunks/{allErrors-DvcU0w0F.js → allErrors-Dhnf6rqg.js} +1 -1
  41. package/dist/chunks/{appleTerminalBackup-Bemd4RXh.js → appleTerminalBackup-CN8kS74J.js} +1 -1
  42. package/dist/chunks/backgroundHousekeeping-Bu-zRFCx.js +1 -0
  43. package/dist/chunks/{backgroundHousekeeping-BtEJ6TeC.js → backgroundHousekeeping-CsXlkIg3.js} +1 -1
  44. package/dist/chunks/{banner-CuoceXzz.js → banner-BKOzHotb.js} +1 -1
  45. package/dist/chunks/{branch-ClhlS7f8.js → branch-BllXcYwS.js} +1 -1
  46. package/dist/chunks/bridgeControl-aDnUrYZR.js +2 -0
  47. package/dist/chunks/{btw-B-FLxlx-.js → btw-DzaRBa6o.js} +1 -1
  48. package/dist/chunks/caches-CMF-MmR-.js +1 -0
  49. package/dist/chunks/{caches-Dn8yrJmL.js → caches-CW5YnYNS.js} +1 -1
  50. package/dist/chunks/channel-DVx21qde.js +1 -0
  51. package/dist/chunks/channel-Gw6skpUh.js +1 -0
  52. package/dist/chunks/{clear-BnWv0i65.js → clear-CDQs9_5P.js} +1 -1
  53. package/dist/chunks/commands-CfYMwgP7.js +1 -0
  54. package/dist/chunks/{compact-Banc-SNk.js → compact-6F2tuItE.js} +1 -1
  55. package/dist/chunks/config-BDkzWBnL.js +1 -0
  56. package/dist/chunks/{config-BDn2YIjC.js → config-Bio2EjUK.js} +1 -1
  57. package/dist/chunks/config-C_AEhZrn.js +1 -0
  58. package/dist/chunks/{context-BvDBAyJ9.js → context-TkdzCK3Y.js} +1 -1
  59. package/dist/chunks/{context-noninteractive-CuHHniJn.js → context-noninteractive-BcBo64vo.js} +1 -1
  60. package/dist/chunks/context-noninteractive-oFcnY1Er.js +1 -0
  61. package/dist/chunks/{conversation-Cjaftrrw.js → conversation-CYZyg1U1.js} +1 -1
  62. package/dist/chunks/conversation-DXzlRhNw.js +1 -0
  63. package/dist/chunks/{conversationRecovery-NL05oJb1.js → conversationRecovery-_hWC7JBO.js} +1 -1
  64. package/dist/chunks/{crossProjectResume-BzltC4NJ.js → crossProjectResume-CCo3iZrB.js} +1 -1
  65. package/dist/chunks/{diff--6gQCx_x.js → diff-BzVUPO4Z.js} +1 -1
  66. package/dist/chunks/doctor-B4jQbGQr.js +1 -0
  67. package/dist/chunks/{entry-DWYOrkFS.js → entry-333L52Lo.js} +1 -1
  68. package/dist/chunks/{exit-uKtXb5U3.js → exit-D5DYnRvR.js} +1 -1
  69. package/dist/chunks/{extraUsage-Dr0YXm1w.js → extraUsage-CmgRR-zH.js} +1 -1
  70. package/dist/chunks/extractMemories-CVUrBFMj.js +1 -0
  71. package/dist/chunks/fast-CRhW9zha.js +1 -0
  72. package/dist/chunks/{fast-C5-lNCQi.js → fast-D7oNjaZ3.js} +1 -1
  73. package/dist/chunks/{fetchModelList-9w1E4Ue8.js → fetchModelList-Cv1vWIpC.js} +1 -1
  74. package/dist/chunks/fetchModelList-DIa1HwAJ.js +1 -0
  75. package/dist/chunks/{fileSuggestions-BYD78vcF.js → fileSuggestions-DF3HTRKr.js} +1 -1
  76. package/dist/chunks/{gemini-BNBptTET.js → gemini-ou7_YyXc.js} +1 -1
  77. package/dist/chunks/{generateSessionName-CO2484aJ.js → generateSessionName-CeN9EZNY.js} +1 -1
  78. package/dist/chunks/{goal-j0wdadwM.js → goal-CCxo4Wyf.js} +1 -1
  79. package/dist/chunks/{grok-BpO1ZwK_.js → grok-BMmUcNbI.js} +1 -1
  80. package/dist/chunks/{help-DwhA0qQ6.js → help-CYtogTZk.js} +1 -1
  81. package/dist/chunks/{hooks-DG4_WdZ2.js → hooks-ByVkvodY.js} +1 -1
  82. package/dist/chunks/hooks-CBGUcyCs.js +1 -0
  83. package/dist/chunks/{install-BbmCNCuM.js → install-DIxyfdXG.js} +1 -1
  84. package/dist/chunks/{instrumentation-DpPmDyNF.js → instrumentation-BmHivmxs.js} +3 -3
  85. package/dist/chunks/{job-GcmX1ALd.js → job-D534P26R.js} +1 -1
  86. package/dist/chunks/{launchLocalMemory-CDgT5lst.js → launchLocalMemory-CWXLb3KF.js} +1 -1
  87. package/dist/chunks/{launchOnboarding-uQ_ux9sS.js → launchOnboarding-CocPmwzz.js} +1 -1
  88. package/dist/chunks/loadAgentsDir-Zw648oQO.js +1 -0
  89. package/dist/chunks/{loadAgentsDir-uuZYOgKn.js → loadAgentsDir-bmpKLPdG.js} +343 -343
  90. package/dist/chunks/{loadPluginHooks-QoVXsBjy.js → loadPluginHooks-BIfM53-_.js} +1 -1
  91. package/dist/chunks/{localSearch-yVCDrVrf.js → localSearch-Da8cVYoI.js} +1 -1
  92. package/dist/chunks/localSearch-Dbj8cXyO.js +1 -0
  93. package/dist/chunks/{logoUtils-B4wCDKs9.js → logoUtils-qNuBc2nI.js} +1 -1
  94. package/dist/chunks/{magicDocs-D53lV8b5.js → magicDocs-BsEiBLQl.js} +1 -1
  95. package/dist/chunks/{main-fy_XSXGj.js → main-B31aPMPP.js} +6 -6
  96. package/dist/chunks/managedEnv-DCGLDTP_.js +1 -0
  97. package/dist/chunks/{managedEnv-B8YWmM4A.js → managedEnv-EZ2IirNa.js} +1 -1
  98. package/dist/chunks/{mcp-DCl-Tz-C.js → mcp-BMeWtYCx.js} +1 -1
  99. package/dist/chunks/{mcp--LmEVBRg.js → mcp-CYbesbfl.js} +1 -1
  100. package/dist/chunks/{mcp-CZUVaPb3.js → mcp-Dd8TBfQQ.js} +1 -1
  101. package/dist/chunks/{memory-Bu5ku7y9.js → memory-DtQQGyPS.js} +1 -1
  102. package/dist/chunks/{mode-Bteqe2QG.js → mode-SM8doWgC.js} +1 -1
  103. package/dist/chunks/{model-CHDU5yqH.js → model-C2r-PaR4.js} +1 -1
  104. package/dist/chunks/{model-CcHyMyBv.js → model-Dd3x121y.js} +1 -1
  105. package/dist/chunks/{modelOptions-CJV1R3Jt.js → modelOptions-BQL4gbNk.js} +1 -1
  106. package/dist/chunks/{nativeInstaller-CIUYh1aD.js → nativeInstaller-DMkZdsof.js} +1 -1
  107. package/dist/chunks/{notifications-GLnjirCl.js → notifications-BwS1XsnZ.js} +1 -1
  108. package/dist/chunks/{onChangeAppState-CxGW2d-l.js → onChangeAppState-C9cYQJPF.js} +1 -1
  109. package/dist/chunks/{openai-BpGQT2Iv.js → openai-Bea4I2Od.js} +1 -1
  110. package/dist/chunks/{overlayContext-7wgLio1O.js → overlayContext-C5WPACKC.js} +1 -1
  111. package/dist/chunks/{partition-djFY9gGI.js → partition-CKgWl7p4.js} +1 -1
  112. package/dist/chunks/{permissions-DNedQyLg.js → permissions-Dv_PCfY0.js} +1 -1
  113. package/dist/chunks/{pidLock-CFUBtZck.js → pidLock-CqkC3-nD.js} +2 -2
  114. package/dist/chunks/{plan-DI0n7LIV.js → plan-Ce6wfjjI.js} +1 -1
  115. package/dist/chunks/{plugin-BQ8gRVYF.js → plugin-aK4tDrVg.js} +1 -1
  116. package/dist/chunks/{pluginAutoupdate-CNrHb4RJ.js → pluginAutoupdate-ByokIVEs.js} +1 -1
  117. package/dist/chunks/{pluginBlocklist-CKCsgWdY.js → pluginBlocklist-ByRQaVPu.js} +1 -1
  118. package/dist/chunks/{pluginCliCommands-CACeyIwz.js → pluginCliCommands-Dyk4HYHs.js} +1 -1
  119. package/dist/chunks/{pluginFlagging-CUvkKGOB.js → pluginFlagging-B2ZX5_oB.js} +1 -1
  120. package/dist/chunks/{pluginOperations-Ca_T-HYn.js → pluginOperations-BCvJvfOC.js} +1 -1
  121. package/dist/chunks/{pluginStartupCheck-DftTiXct.js → pluginStartupCheck-QG0d95dE.js} +1 -1
  122. package/dist/chunks/pluginStartupCheck-o_TC7wIt.js +1 -0
  123. package/dist/chunks/{plugins-Divl-P-X.js → plugins-DzsTDNWJ.js} +1 -1
  124. package/dist/chunks/{print-DSHypGJa.js → print-dUT7E1g9.js} +2 -2
  125. package/dist/chunks/{processBashCommand-BLcFmbyG.js → processBashCommand-DtGCgTkF.js} +1 -1
  126. package/dist/chunks/{processSlashCommand-Caif46Gi.js → processSlashCommand-wXblpK2C.js} +1 -1
  127. package/dist/chunks/{projectOnboardingState-nTCycGCD.js → projectOnboardingState-D-_ijZnG.js} +1 -1
  128. package/dist/chunks/prompt-BdH2zk0S.js +1 -0
  129. package/dist/chunks/{prompt-BfXryFt-.js → prompt-BnDapYGL.js} +1 -1
  130. package/dist/chunks/prompt-D0TFER0A.js +1 -0
  131. package/dist/chunks/{protocolHandler-VigBkAQQ.js → protocolHandler-CJO3CRYW.js} +1 -1
  132. package/dist/chunks/{reconciler-B9XFdL4f.js → reconciler-C_HKsocm.js} +1 -1
  133. package/dist/chunks/{refresh-CBHbWTGg.js → refresh-Cm4jZzLa.js} +1 -1
  134. package/dist/chunks/{reject-CBxnwckZ.js → reject-Tug1RmkE.js} +1 -1
  135. package/dist/chunks/{reload-plugins-5eFWrQlL.js → reload-plugins-CL9LWzpq.js} +1 -1
  136. package/dist/chunks/{rename-Cw7cMerG.js → rename-OfKJSazJ.js} +1 -1
  137. package/dist/chunks/{resume-U2D0ybfU.js → resume-BZ42SpS2.js} +1 -1
  138. package/dist/chunks/{runtimeObserver-DOYlxx9H.js → runtimeObserver-BLq2guVy.js} +1 -1
  139. package/dist/chunks/{runtimeObserver-CWaYMJG8.js → runtimeObserver-DT5P2_XL.js} +2 -2
  140. package/dist/chunks/sandbox-adapter-982rx2cm.js +1 -0
  141. package/dist/chunks/{sandbox-toggle-BtiPyjT3.js → sandbox-toggle-DghmaJhK.js} +1 -1
  142. package/dist/chunks/searchExtraTools-B4N1bpy0.js +1 -0
  143. package/dist/chunks/{select-BuTJbu_Q.js → select-CaxQ-BVq.js} +1 -1
  144. package/dist/chunks/sessionFileAccessHooks-BqQ58T7e.js +1 -0
  145. package/dist/chunks/{sessionObserver-cfwD8pV8.js → sessionObserver-DBoZUvWL.js} +1 -1
  146. package/dist/chunks/sessionObserver-qYpA90El.js +1 -0
  147. package/dist/chunks/sessionStorage-CC0v4zMs.js +1 -0
  148. package/dist/chunks/{sessionTracing-DsdcOqvc.js → sessionTracing-5a7HDF4e.js} +1 -1
  149. package/dist/chunks/{setup-DR-KEmxL.js → setup-DVLnIlse.js} +2 -2
  150. package/dist/chunks/{shadowedRuleDetection-DiZUDzxU.js → shadowedRuleDetection-L3tnySui.js} +1 -1
  151. package/dist/chunks/{sideQuestion-CdgUarC2.js → sideQuestion-BJTVma-5.js} +1 -1
  152. package/dist/chunks/sinks-C9NdbjLo.js +1 -0
  153. package/dist/chunks/{sinks-Cy3NqVbk.js → sinks-CV0SWuZW.js} +1 -1
  154. package/dist/chunks/{skillChangeDetector-CVFCJcG7.js → skillChangeDetector-DlodgOyC.js} +1 -1
  155. package/dist/chunks/{skillGapStore-BJV8ZIB1.js → skillGapStore-Cposc03e.js} +2 -2
  156. package/dist/chunks/{skillLifecycle-iO_3s9Ff.js → skillLifecycle-RXQp0JU7.js} +2 -2
  157. package/dist/chunks/{skillSearchPanel-BL5gXTHU.js → skillSearchPanel-B2pjskqk.js} +2 -2
  158. package/dist/chunks/{skills-BEp3_RyT.js → skills-D2ZjMtv4.js} +1 -1
  159. package/dist/chunks/status-BcSkj9nE.js +1 -0
  160. package/dist/chunks/{statusNoticeHelpers-BoloSeXY.js → statusNoticeHelpers-DsrqBOQt.js} +1 -1
  161. package/dist/chunks/switcher-BietN6il.js +1 -0
  162. package/dist/chunks/{switcher-DSt2cVjA.js → switcher-rep86o4_.js} +1 -1
  163. package/dist/chunks/{tasks-DyBUXnQb.js → tasks-B4coTfrq.js} +1 -1
  164. package/dist/chunks/{templateJobs-BBnReWWj.js → templateJobs-C5ukh6H3.js} +1 -1
  165. package/dist/chunks/{terminalSetup-CDpFfqqV.js → terminalSetup-CaGbEVjB.js} +1 -1
  166. package/dist/chunks/{terminalSetup-DedaY1P7.js → terminalSetup-xe_P98fY.js} +1 -1
  167. package/dist/chunks/{theme-BZOy9Iqh.js → theme-7RmvErYJ.js} +1 -1
  168. package/dist/chunks/{tipRegistry-Cl5sdLRX.js → tipRegistry-BYpJZIjR.js} +1 -1
  169. package/dist/chunks/{toolEventObserver-ClwWmVbH.js → toolEventObserver-Dzwzi5Vi.js} +1 -1
  170. package/dist/chunks/{toolPool-DSTbgGmX.js → toolPool-BGfiNj6h.js} +1 -1
  171. package/dist/chunks/{useExitOnCtrlCDWithKeybindings-ClN4NJnB.js → useExitOnCtrlCDWithKeybindings-BT0nexZw.js} +1 -1
  172. package/dist/chunks/useMainLoopModel-QuE7VkgX.js +1 -0
  173. package/dist/chunks/{useManagePlugins-CxHz-gUP.js → useManagePlugins-pGaGzsEg.js} +1 -1
  174. package/dist/chunks/{useMergedTools-BUuWew0-.js → useMergedTools-BLsIT3R_.js} +1 -1
  175. package/dist/chunks/{useSearchInput-BIQN_-Hm.js → useSearchInput-j12K4wEo.js} +1 -1
  176. package/dist/chunks/{useSettingsErrors-BDJCLei_.js → useSettingsErrors-C8VIzdws.js} +1 -1
  177. package/dist/chunks/{util-BHr5l6Bx.js → util-CCEK8oze.js} +1 -1
  178. package/dist/chunks/{validatePlugin-fx1Y8vam.js → validatePlugin-CTVnWx9H.js} +1 -1
  179. package/dist/chunks/{vim-CYjMtnwH.js → vim-BlO9V5_5.js} +1 -1
  180. package/dist/chunks/worktree-BWL0vR4o.js +1 -0
  181. package/dist/chunks/wrapper-B-Q3Illb.js +1 -0
  182. package/dist/chunks/{wrapper-K8ZapJVu.js → wrapper-DVKxC5fR.js} +1 -1
  183. package/dist/cli.js +1 -1
  184. package/package.json +2 -1
  185. package/dist/chunks/AgentsMdExternalIncludesDialog-CgSethgo.js +0 -1
  186. package/dist/chunks/Doctor-CiZNe_qx.js +0 -1
  187. package/dist/chunks/REPL-BHk0vZDf.js +0 -1
  188. package/dist/chunks/SearchExtraToolsTool-CdWB9sO8.js +0 -1
  189. package/dist/chunks/backgroundHousekeeping-B56nFTzq.js +0 -1
  190. package/dist/chunks/caches-D7arwhaa.js +0 -1
  191. package/dist/chunks/commands-AcfFLgl5.js +0 -1
  192. package/dist/chunks/config-BhBcadjZ.js +0 -1
  193. package/dist/chunks/config-Bm5pVdCq.js +0 -1
  194. package/dist/chunks/context-noninteractive-BK2IDLSS.js +0 -1
  195. package/dist/chunks/conversation-B2dX3X4Z.js +0 -1
  196. package/dist/chunks/doctor-CQf8xPZH.js +0 -1
  197. package/dist/chunks/extractMemories-8yvMGZ1J.js +0 -1
  198. package/dist/chunks/fast-aNkj6WvB.js +0 -1
  199. package/dist/chunks/fetchModelList-D2quBF6M.js +0 -1
  200. package/dist/chunks/hooks-B5Wq-KxE.js +0 -1
  201. package/dist/chunks/loadAgentsDir-BBbIAiay.js +0 -1
  202. package/dist/chunks/localSearch-D6MhwvnR.js +0 -1
  203. package/dist/chunks/managedEnv-ulQBH73B.js +0 -1
  204. package/dist/chunks/pluginStartupCheck-Du9yx2P8.js +0 -1
  205. package/dist/chunks/prompt-BZmu5CeK.js +0 -1
  206. package/dist/chunks/prompt-Cogr_WZr.js +0 -1
  207. package/dist/chunks/sandbox-adapter-Df7Wpt77.js +0 -1
  208. package/dist/chunks/searchExtraTools-CbJVb_Zk.js +0 -1
  209. package/dist/chunks/sessionFileAccessHooks-_mxyfQmn.js +0 -1
  210. package/dist/chunks/sessionObserver-BZVgzp3W.js +0 -1
  211. package/dist/chunks/sessionStorage-SC5RfnUP.js +0 -1
  212. package/dist/chunks/sinks-D41OiGE4.js +0 -1
  213. package/dist/chunks/status-6JMz8jmM.js +0 -1
  214. package/dist/chunks/switcher-95d4TrQH.js +0 -1
  215. package/dist/chunks/useMainLoopModel-Bgxpmn2Q.js +0 -1
  216. package/dist/chunks/worktree-CGu_58ue.js +0 -1
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{i as t,o as n}from"./envUtils-QyzA_cFM.js";import{Ci as r,Lp as i,Mi as a,Rp as o}from"./loadAgentsDir-uuZYOgKn.js";import{n as s,t as c}from"./featureCheck-D6FjD-nt.js";import{a as l,s as u}from"./projectContext-BFfHgAMh.js";import{a as d,c as ee,i as f,l as p,n as m,o as h,r as te,s as ne,u as g}from"./instinctParser-Dt-lqnDe.js";import{a as re,i as ie,n as _,o as v,r as y,t as ae}from"./observationStore-pnSSxec_.js";import{a as oe,i as se,o as ce,r as le}from"./sessionObserver-cfwD8pV8.js";import{a as ue,d as b,i as de,l as x,n as S,r as fe,s as C,t as pe,u as w}from"./skillLifecycle-iO_3s9Ff.js";import{join as T}from"node:path";import{existsSync as E}from"node:fs";import{randomBytes as me}from"node:crypto";import{mkdir as D,readFile as he,readdir as O,rename as ge,unlink as _e,writeFile as k}from"node:fs/promises";function A(e){let t=_(e),n=e?.project;return(e?.scope??n?.scope??`project`)===`global`||!n||n.projectId===`global`?T(t,`global`,`instincts`,`personal`):T(t,`projects`,n.projectId,`instincts`,`personal`)}async function j(e,t){let n=h(e);await D(A(t),{recursive:!0});let r=N(n.id,t),i=`${r}.${me(6).toString(`hex`)}.tmp`;return await k(i,ee(n)),await ge(i,r),n}async function M(e){let t=A(e),n=[];try{n=await O(t)}catch(e){if(e.code===`ENOENT`)return[];throw e}let r=[];for(let e of n.filter(e=>e.endsWith(`.json`))){let n=await he(T(t,e),`utf8`);r.push(ne(n))}return r.sort((e,t)=>e.id.localeCompare(t.id))}function ve(e,t){let n=P.then(()=>ye(e,t));return P=n.catch(()=>{}),n}async function ye(e,t){let n=await M(t),r=n.find(t=>t.id===e.id)??n.find(t=>t.trigger.toLowerCase()===e.trigger.toLowerCase()&&d(t,e)),i=new Date().toISOString();if(!r)return j(e,t);let a=d(r,e),o=a?-.1:Se(e.evidenceOutcome),s=m(r.confidence+o),c=be(r.status,s,a);return j(h({...r,confidence:s,evidence:[...r.evidence,...e.evidence],evidenceOutcome:e.evidenceOutcome??r.evidenceOutcome,observationIds:[...r.observationIds??[],...e.observationIds??[]],updatedAt:i,status:c}),t)}function be(e,t,n){return n&&t<.3?`conflict-hold`:e===`conflict-hold`&&t>=.5||e===`pending`&&t>=.8?`active`:e}async function xe(e){let t=await M(e),n=Date.now(),r=0;for(let i of t){if(i.status!==`pending`&&i.status!==`active`)continue;let t=Date.parse(i.updatedAt);if(Number.isNaN(t))continue;let a=Math.floor((n-t)/F);if(a<1)continue;let o=-.02*a,s=m(i.confidence+o);s!==i.confidence&&(await j(h({...i,confidence:s,updatedAt:new Date(n).toISOString()}),e),r+=1)}return r}function Se(e){return e===`failure`?-.05:.05}async function Ce(e,t){let n=await M(t),r=Date.now()-e*24*60*60*1e3,i=[];for(let e of n)e.status===`pending`&&Date.parse(e.updatedAt)<r&&(await _e(N(e.id,t)),i.push(e));return i}function N(e,t){return T(A(t),`${e}.json`)}var P,F,I=e((()=>{y(),f(),P=Promise.resolve(),F=10080*60*1e3}));function we(e,t){if(e.length===0)throw Error(`Cannot generate a command draft without instincts`);let n=t?.scope??e[0]?.scope??`project`,r=w(t?.name??De(e)),i=Ae(e),a=t?.description??Oe(e),o=Ee(r,n,t),s=ke({name:r,description:a,confidence:i,instincts:e});return{name:r,description:a,scope:n,sourceInstinctIds:e.map(e=>e.id),confidence:Number(i.toFixed(2)),content:s,outputPath:o}}async function Te(e){await D(e.outputPath,{recursive:!0});let t=T(e.outputPath,`${e.name}.md`);return E(t)?t:(await k(t,e.content,`utf8`),r(),t)}function Ee(e,n,r){return r?.outputRoot?r.outputRoot:n===`project`?T(r?.cwd??process.cwd(),`.workmate`,`commands`):r?.globalCommandsDir??T(t(),`commands`)}function De(e){return w([`learned`,...je(e,4)].join(`-`))||`learned-command`}function Oe(e){return(e[0]?.trigger??`Reuse the learned workflow`).replace(/\s+/g,` `).slice(0,120)}function ke(e){let{name:t,description:n,confidence:r,instincts:i}=e;return[`---`,`name: ${t}`,`description: ${JSON.stringify(n)}`,`origin: skill-learning`,`confidence: ${Number(r.toFixed(2))}`,`evolved_from: [${i.map(e=>JSON.stringify(e.id)).join(`, `)}]`,`---`,``,`# /${t}`,``,`## When to use`,``,i.map(e=>`- ${e.trigger}`).join(`
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{i as t,o as n}from"./envUtils-QyzA_cFM.js";import{Ci as r,Lp as i,Mi as a,Rp as o}from"./loadAgentsDir-bmpKLPdG.js";import{n as s,t as c}from"./featureCheck-D6FjD-nt.js";import{a as l,s as u}from"./projectContext-BFfHgAMh.js";import{a as d,c as ee,i as f,l as p,n as m,o as h,r as te,s as ne,u as g}from"./instinctParser-Dt-lqnDe.js";import{a as re,i as ie,n as _,o as v,r as y,t as ae}from"./observationStore-pnSSxec_.js";import{a as oe,i as se,o as ce,r as le}from"./sessionObserver-DBoZUvWL.js";import{a as ue,d as b,i as de,l as x,n as S,r as fe,s as C,t as pe,u as w}from"./skillLifecycle-RXQp0JU7.js";import{join as T}from"node:path";import{existsSync as E}from"node:fs";import{randomBytes as me}from"node:crypto";import{mkdir as D,readFile as he,readdir as O,rename as ge,unlink as _e,writeFile as k}from"node:fs/promises";function A(e){let t=_(e),n=e?.project;return(e?.scope??n?.scope??`project`)===`global`||!n||n.projectId===`global`?T(t,`global`,`instincts`,`personal`):T(t,`projects`,n.projectId,`instincts`,`personal`)}async function j(e,t){let n=h(e);await D(A(t),{recursive:!0});let r=N(n.id,t),i=`${r}.${me(6).toString(`hex`)}.tmp`;return await k(i,ee(n)),await ge(i,r),n}async function M(e){let t=A(e),n=[];try{n=await O(t)}catch(e){if(e.code===`ENOENT`)return[];throw e}let r=[];for(let e of n.filter(e=>e.endsWith(`.json`))){let n=await he(T(t,e),`utf8`);r.push(ne(n))}return r.sort((e,t)=>e.id.localeCompare(t.id))}function ve(e,t){let n=P.then(()=>ye(e,t));return P=n.catch(()=>{}),n}async function ye(e,t){let n=await M(t),r=n.find(t=>t.id===e.id)??n.find(t=>t.trigger.toLowerCase()===e.trigger.toLowerCase()&&d(t,e)),i=new Date().toISOString();if(!r)return j(e,t);let a=d(r,e),o=a?-.1:Se(e.evidenceOutcome),s=m(r.confidence+o),c=be(r.status,s,a);return j(h({...r,confidence:s,evidence:[...r.evidence,...e.evidence],evidenceOutcome:e.evidenceOutcome??r.evidenceOutcome,observationIds:[...r.observationIds??[],...e.observationIds??[]],updatedAt:i,status:c}),t)}function be(e,t,n){return n&&t<.3?`conflict-hold`:e===`conflict-hold`&&t>=.5||e===`pending`&&t>=.8?`active`:e}async function xe(e){let t=await M(e),n=Date.now(),r=0;for(let i of t){if(i.status!==`pending`&&i.status!==`active`)continue;let t=Date.parse(i.updatedAt);if(Number.isNaN(t))continue;let a=Math.floor((n-t)/F);if(a<1)continue;let o=-.02*a,s=m(i.confidence+o);s!==i.confidence&&(await j(h({...i,confidence:s,updatedAt:new Date(n).toISOString()}),e),r+=1)}return r}function Se(e){return e===`failure`?-.05:.05}async function Ce(e,t){let n=await M(t),r=Date.now()-e*24*60*60*1e3,i=[];for(let e of n)e.status===`pending`&&Date.parse(e.updatedAt)<r&&(await _e(N(e.id,t)),i.push(e));return i}function N(e,t){return T(A(t),`${e}.json`)}var P,F,I=e((()=>{y(),f(),P=Promise.resolve(),F=10080*60*1e3}));function we(e,t){if(e.length===0)throw Error(`Cannot generate a command draft without instincts`);let n=t?.scope??e[0]?.scope??`project`,r=w(t?.name??De(e)),i=Ae(e),a=t?.description??Oe(e),o=Ee(r,n,t),s=ke({name:r,description:a,confidence:i,instincts:e});return{name:r,description:a,scope:n,sourceInstinctIds:e.map(e=>e.id),confidence:Number(i.toFixed(2)),content:s,outputPath:o}}async function Te(e){await D(e.outputPath,{recursive:!0});let t=T(e.outputPath,`${e.name}.md`);return E(t)?t:(await k(t,e.content,`utf8`),r(),t)}function Ee(e,n,r){return r?.outputRoot?r.outputRoot:n===`project`?T(r?.cwd??process.cwd(),`.workmate`,`commands`):r?.globalCommandsDir??T(t(),`commands`)}function De(e){return w([`learned`,...je(e,4)].join(`-`))||`learned-command`}function Oe(e){return(e[0]?.trigger??`Reuse the learned workflow`).replace(/\s+/g,` `).slice(0,120)}function ke(e){let{name:t,description:n,confidence:r,instincts:i}=e;return[`---`,`name: ${t}`,`description: ${JSON.stringify(n)}`,`origin: skill-learning`,`confidence: ${Number(r.toFixed(2))}`,`evolved_from: [${i.map(e=>JSON.stringify(e.id)).join(`, `)}]`,`---`,``,`# /${t}`,``,`## When to use`,``,i.map(e=>`- ${e.trigger}`).join(`
2
2
  `),``,`## Steps`,``,i.map(e=>`- ${e.action}`).join(`
3
3
  `),``,`## Evidence`,``,i.flatMap(e=>e.evidence.map(e=>`- ${e}`)).join(`
4
4
  `),``].join(`
@@ -6,5 +6,5 @@ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{i as t,o as n}from"./e
6
6
  `),``,`## Playbook`,``,i.map(e=>`- ${e.action}`).join(`
7
7
  `),``,`## Evidence`,``,i.flatMap(e=>e.evidence.map(e=>`- ${e}`)).slice(0,20).join(`
8
8
  `),``].join(`
9
- `)}function Re(e){return e.reduce((e,t)=>e+t.confidence,0)/e.length}function ze(e,t){let n=new Set([`when`,`with`,`this`,`that`,`user`,`asks`,`for`,`the`,`and`,`debug`,`investigate`,`research`]),r=[];for(let i of e)for(let e of`${i.trigger} ${i.action}`.toLowerCase().split(/[^a-z0-9]+/))if(e.length>2&&!n.has(e)&&!r.includes(e)&&r.push(e),r.length>=t)return r;return r}var R=e((()=>{n(),a(),x()}));function z(e){let t=new Map;for(let n of e){if(n.status!==`active`&&n.status!==`pending`)continue;let e=`${n.domain}:${Ue(n.trigger)}`,r=t.get(e)??[];r.push(n),t.set(e,r)}return Array.from(t.values()).filter(e=>e.length>=p().minClusterSize).map(e=>{let t=e.reduce((e,t)=>e+t.confidence,0)/e.length;return{target:Be(e),trigger:e[0]?.trigger??`learned pattern`,domain:e[0]?.domain??`project`,instincts:e,averageConfidence:Number(t.toFixed(2))}}).sort((e,t)=>t.averageConfidence-e.averageConfidence)}function Be(e){let t=Array.isArray(e)?e:e.instincts,n=t.map(e=>`${e.trigger} ${e.action}`).join(` `).toLowerCase();return/user asks|explicitly request|command|run /.test(n)?`command`:t.length>=4&&/(debug|investigate|research|multi-step)/.test(n)?`agent`:`skill`}function Ve(e,t){return z(e).filter(e=>e.target===`command`&&b(e.instincts)).map(e=>we(e.instincts,{...t,scope:e.instincts[0]?.scope??`project`}))}function He(e,t){return z(e).filter(e=>e.target===`agent`&&b(e.instincts)).map(e=>Me(e.instincts,{...t,scope:e.instincts[0]?.scope??`project`}))}function Ue(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,` `).split(/\s+/).filter(Boolean).slice(0,6).join(` `)}var We=e((()=>{x(),C(),L(),R(),g()}));function Ge(e){if(H.add(e),H.size>B){let e=H.size-V,t=H.values();for(let n=0;n<e;n++){let e=t.next();if(e.done)break;H.delete(e.value)}}}function Ke(e,t=2,n=.8){let r=new Map;for(let t of e){if(t.scope!==`project`)continue;let e=r.get(t.id)??[];e.push(t),r.set(t.id,e)}return Array.from(r.entries()).flatMap(([e,r])=>{let i=Array.from(new Set(r.map(e=>e.projectId).filter(Boolean))),a=r.reduce((e,t)=>e+t.confidence,0)/r.length;return i.length>=t&&a>=n?[{instinctId:e,projectIds:i,averageConfidence:Number(a.toFixed(2))}]:[]})}async function qe(e={}){let t=e.minProjects??2,n=e.minConfidence??.8,r=await Je(e.rootDir),i=Ke(r,t,n),a=[];for(let t of i){if(H.has(t.instinctId))continue;let n=r.find(e=>e.id===t.instinctId);n&&(await j({...n,scope:`global`,projectId:void 0,projectName:void 0,confidence:t.averageConfidence,updatedAt:new Date().toISOString()},{rootDir:e.rootDir,scope:`global`,project:Ye(e.rootDir)}),Ge(t.instinctId),a.push(t))}return a}async function Je(e){let t=T(_(e?{rootDir:e}:void 0),`projects`);if(!E(t))return[];let n=await O(t,{withFileTypes:!0}),r=[];for(let i of n){if(!i.isDirectory())continue;let n=await M({rootDir:e,project:{projectId:i.name,projectName:i.name,scope:`project`,source:`git_root`,cwd:t,storageDir:T(t,i.name)},scope:`project`});r.push(...n)}return r}function Ye(e){let t=_(e?{rootDir:e}:void 0);return{projectId:`global`,projectName:`Global`,scope:`global`,source:`global`,cwd:t,storageDir:T(t,`global`)}}var B,V,H,Xe=e((()=>{I(),y(),B=256,V=192,H=new Set}));function U(){X=0,Z=0,Q.clear()}function Ze(){return J}function Qe(){if(!q){q=!0;try{ce()}catch{}o(W),$e().catch(()=>{})}}async function $e(){if(!s()||process.env.WORKMATE_SKILL_LEARNING_DISABLE)return;let e={project:u(process.cwd())};await Promise.allSettled([xe(e),ie(e),Ce(30,e)])}function et(e){try{let t=_();return e.startsWith(t)}catch{return!1}}async function W(e){if(!s()||process.env.WORKMATE_SKILL_LEARNING_DISABLE||!e.querySource?.startsWith(`repl_main_thread`)||e.toolUseContext.agentId)return;let t=process.cwd();if(et(t))return;let n=u(t),r={project:n};++J;let i=[];for(let t of rt(e.messages,n))i.push(await ae(t,r));let a=(await re(r)).filter(e=>e.source===`tool-hook`&&e.sessionId===`runtime-session`&&typeof e.timestamp==`string`&&e.timestamp>Y);i.push(...a);for(let e of a)e.timestamp>Y&&(Y=e.timestamp);if(i.length===0)return;let o=Date.now(),{llm:c}=p(),l=i.length>=5&&X<c.maxCallsPerSession&&o-Z>=c.cooldownMs,d;if(l)X++,Z=o,d=await se(i,{project:n});else{let{heuristicObserverBackend:e}=await import(`./sessionObserver-BZVgzp3W.js`),t=e.analyze(i,{project:n});d=Array.isArray(t)?t:await t}for(let e of d)await ve(te(e),r);await nt(r)}function tt(){J=0,Y=``,U()}async function nt(e){let n=await M(e),r=process.cwd(),i=[T(r,`.workmate`,`skills`),T(t(),`skills`)],a=z(n).filter(e=>e.target===`skill`&&b(e.instincts));for(let e of a){let t=await ue(e.instincts,{cwd:r,scope:e.instincts[0]?.scope??`project`},i);if(t.action===`append-evidence`)continue;let n=t.draft;E(T(n.outputPath,`SKILL.md`))||await pe(fe(n,await S(`skill`,n,i)))}let o=Ve(n,{cwd:r});for(let e of o)(await S(`command`,e,[T(r,`.workmate`,`commands`),T(t(),`commands`)])).length>0||await Te(e);let s=He(n,{cwd:r});for(let e of s)(await S(`agent`,e,[T(r,`.workmate`,`agents`),T(t(),`agents`)])).length>0||await Ne(e);await qe()}function rt(e,t){let n=K,r={sessionId:n,projectId:t.projectId,projectName:t.projectName,cwd:t.cwd,timestamp:new Date().toISOString(),source:`hook`};return e.flatMap(e=>{let t=`${n}:${String(e.uuid)}`;if(Q.has(t))return[];if(Q.add(t),Q.size>$){let e=Q.size-ot,t=Q.values();for(let n=0;n<e;n++){let e=t.next();if(e.done)break;Q.delete(e.value)}}if(e.type===`user`){let t=at(e.message?.content);if(t.length>0)return t.map(e=>({...r,id:crypto.randomUUID(),event:`tool_complete`,toolName:e.toolName,toolOutput:e.output,outcome:e.isError?`failure`:`success`}));let n=G(e.message?.content);return n.trim()?[{...r,id:crypto.randomUUID(),event:`user_message`,messageText:n}]:[]}if(e.type===`assistant`){let t=it(e.message?.content),n=G(e.message?.content);return[...t.map(e=>({...r,id:crypto.randomUUID(),event:`tool_start`,toolName:e.toolName,toolInput:e.input})),...n.trim()?[{...r,id:crypto.randomUUID(),event:`assistant_message`,messageText:n}]:[]]}return[]})}function G(e){return typeof e==`string`?e:Array.isArray(e)?e.map(e=>{if(!e||typeof e!=`object`)return``;let t=e;return typeof t.text==`string`?t.text:``}).filter(Boolean).join(`
9
+ `)}function Re(e){return e.reduce((e,t)=>e+t.confidence,0)/e.length}function ze(e,t){let n=new Set([`when`,`with`,`this`,`that`,`user`,`asks`,`for`,`the`,`and`,`debug`,`investigate`,`research`]),r=[];for(let i of e)for(let e of`${i.trigger} ${i.action}`.toLowerCase().split(/[^a-z0-9]+/))if(e.length>2&&!n.has(e)&&!r.includes(e)&&r.push(e),r.length>=t)return r;return r}var R=e((()=>{n(),a(),x()}));function z(e){let t=new Map;for(let n of e){if(n.status!==`active`&&n.status!==`pending`)continue;let e=`${n.domain}:${Ue(n.trigger)}`,r=t.get(e)??[];r.push(n),t.set(e,r)}return Array.from(t.values()).filter(e=>e.length>=p().minClusterSize).map(e=>{let t=e.reduce((e,t)=>e+t.confidence,0)/e.length;return{target:Be(e),trigger:e[0]?.trigger??`learned pattern`,domain:e[0]?.domain??`project`,instincts:e,averageConfidence:Number(t.toFixed(2))}}).sort((e,t)=>t.averageConfidence-e.averageConfidence)}function Be(e){let t=Array.isArray(e)?e:e.instincts,n=t.map(e=>`${e.trigger} ${e.action}`).join(` `).toLowerCase();return/user asks|explicitly request|command|run /.test(n)?`command`:t.length>=4&&/(debug|investigate|research|multi-step)/.test(n)?`agent`:`skill`}function Ve(e,t){return z(e).filter(e=>e.target===`command`&&b(e.instincts)).map(e=>we(e.instincts,{...t,scope:e.instincts[0]?.scope??`project`}))}function He(e,t){return z(e).filter(e=>e.target===`agent`&&b(e.instincts)).map(e=>Me(e.instincts,{...t,scope:e.instincts[0]?.scope??`project`}))}function Ue(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,` `).split(/\s+/).filter(Boolean).slice(0,6).join(` `)}var We=e((()=>{x(),C(),L(),R(),g()}));function Ge(e){if(H.add(e),H.size>B){let e=H.size-V,t=H.values();for(let n=0;n<e;n++){let e=t.next();if(e.done)break;H.delete(e.value)}}}function Ke(e,t=2,n=.8){let r=new Map;for(let t of e){if(t.scope!==`project`)continue;let e=r.get(t.id)??[];e.push(t),r.set(t.id,e)}return Array.from(r.entries()).flatMap(([e,r])=>{let i=Array.from(new Set(r.map(e=>e.projectId).filter(Boolean))),a=r.reduce((e,t)=>e+t.confidence,0)/r.length;return i.length>=t&&a>=n?[{instinctId:e,projectIds:i,averageConfidence:Number(a.toFixed(2))}]:[]})}async function qe(e={}){let t=e.minProjects??2,n=e.minConfidence??.8,r=await Je(e.rootDir),i=Ke(r,t,n),a=[];for(let t of i){if(H.has(t.instinctId))continue;let n=r.find(e=>e.id===t.instinctId);n&&(await j({...n,scope:`global`,projectId:void 0,projectName:void 0,confidence:t.averageConfidence,updatedAt:new Date().toISOString()},{rootDir:e.rootDir,scope:`global`,project:Ye(e.rootDir)}),Ge(t.instinctId),a.push(t))}return a}async function Je(e){let t=T(_(e?{rootDir:e}:void 0),`projects`);if(!E(t))return[];let n=await O(t,{withFileTypes:!0}),r=[];for(let i of n){if(!i.isDirectory())continue;let n=await M({rootDir:e,project:{projectId:i.name,projectName:i.name,scope:`project`,source:`git_root`,cwd:t,storageDir:T(t,i.name)},scope:`project`});r.push(...n)}return r}function Ye(e){let t=_(e?{rootDir:e}:void 0);return{projectId:`global`,projectName:`Global`,scope:`global`,source:`global`,cwd:t,storageDir:T(t,`global`)}}var B,V,H,Xe=e((()=>{I(),y(),B=256,V=192,H=new Set}));function U(){X=0,Z=0,Q.clear()}function Ze(){return J}function Qe(){if(!q){q=!0;try{ce()}catch{}o(W),$e().catch(()=>{})}}async function $e(){if(!s()||process.env.WORKMATE_SKILL_LEARNING_DISABLE)return;let e={project:u(process.cwd())};await Promise.allSettled([xe(e),ie(e),Ce(30,e)])}function et(e){try{let t=_();return e.startsWith(t)}catch{return!1}}async function W(e){if(!s()||process.env.WORKMATE_SKILL_LEARNING_DISABLE||!e.querySource?.startsWith(`repl_main_thread`)||e.toolUseContext.agentId)return;let t=process.cwd();if(et(t))return;let n=u(t),r={project:n};++J;let i=[];for(let t of rt(e.messages,n))i.push(await ae(t,r));let a=(await re(r)).filter(e=>e.source===`tool-hook`&&e.sessionId===`runtime-session`&&typeof e.timestamp==`string`&&e.timestamp>Y);i.push(...a);for(let e of a)e.timestamp>Y&&(Y=e.timestamp);if(i.length===0)return;let o=Date.now(),{llm:c}=p(),l=i.length>=5&&X<c.maxCallsPerSession&&o-Z>=c.cooldownMs,d;if(l)X++,Z=o,d=await se(i,{project:n});else{let{heuristicObserverBackend:e}=await import(`./sessionObserver-qYpA90El.js`),t=e.analyze(i,{project:n});d=Array.isArray(t)?t:await t}for(let e of d)await ve(te(e),r);await nt(r)}function tt(){J=0,Y=``,U()}async function nt(e){let n=await M(e),r=process.cwd(),i=[T(r,`.workmate`,`skills`),T(t(),`skills`)],a=z(n).filter(e=>e.target===`skill`&&b(e.instincts));for(let e of a){let t=await ue(e.instincts,{cwd:r,scope:e.instincts[0]?.scope??`project`},i);if(t.action===`append-evidence`)continue;let n=t.draft;E(T(n.outputPath,`SKILL.md`))||await pe(fe(n,await S(`skill`,n,i)))}let o=Ve(n,{cwd:r});for(let e of o)(await S(`command`,e,[T(r,`.workmate`,`commands`),T(t(),`commands`)])).length>0||await Te(e);let s=He(n,{cwd:r});for(let e of s)(await S(`agent`,e,[T(r,`.workmate`,`agents`),T(t(),`agents`)])).length>0||await Ne(e);await qe()}function rt(e,t){let n=K,r={sessionId:n,projectId:t.projectId,projectName:t.projectName,cwd:t.cwd,timestamp:new Date().toISOString(),source:`hook`};return e.flatMap(e=>{let t=`${n}:${String(e.uuid)}`;if(Q.has(t))return[];if(Q.add(t),Q.size>$){let e=Q.size-ot,t=Q.values();for(let n=0;n<e;n++){let e=t.next();if(e.done)break;Q.delete(e.value)}}if(e.type===`user`){let t=at(e.message?.content);if(t.length>0)return t.map(e=>({...r,id:crypto.randomUUID(),event:`tool_complete`,toolName:e.toolName,toolOutput:e.output,outcome:e.isError?`failure`:`success`}));let n=G(e.message?.content);return n.trim()?[{...r,id:crypto.randomUUID(),event:`user_message`,messageText:n}]:[]}if(e.type===`assistant`){let t=it(e.message?.content),n=G(e.message?.content);return[...t.map(e=>({...r,id:crypto.randomUUID(),event:`tool_start`,toolName:e.toolName,toolInput:e.input})),...n.trim()?[{...r,id:crypto.randomUUID(),event:`assistant_message`,messageText:n}]:[]]}return[]})}function G(e){return typeof e==`string`?e:Array.isArray(e)?e.map(e=>{if(!e||typeof e!=`object`)return``;let t=e;return typeof t.text==`string`?t.text:``}).filter(Boolean).join(`
10
10
  `):``}function it(e){return Array.isArray(e)?e.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return t.type===`tool_use`?[{toolName:String(t.name??`unknown_tool`),input:v(t.input)}]:[]}):[]}function at(e){return Array.isArray(e)?e.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return t.type===`tool_result`?[{toolName:String(t.name??t.tool_name??`unknown_tool`),output:v(t.content),isError:t.is_error===!0}]:[]}):[]}var K,q,J,Y,X,Z,Q,$,ot,st=e((()=>{i(),g(),c(),y(),l(),le(),f(),oe(),I(),de(),We(),C(),x(),L(),R(),Xe(),n(),K=`runtime-session`,q=!1,J=0,Y=``,X=0,Z=0,Q=new Set,$=1e3,ot=500}));export{U as a,st as i,Ze as n,tt as o,Qe as r,W as s,K as t};
@@ -0,0 +1 @@
1
+ import{aC as e,sC as t}from"./loadAgentsDir-bmpKLPdG.js";t();export{e as SandboxManager};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{Gt as t,H as n,I as r,Lt as i,P as a,a as o,j as s,n as c,r as l,t as u,x as d}from"./src-BX54x08P.js";import{t as f}from"./jsx-runtime-Bb4Xn-E0.js";import{d as p,m,o as h}from"./settings-D4M13toi.js";import{Pt as g,T as _}from"./state-CXY-q5gr.js";import{aC as v,cC as y,oC as b,sC as x,tb as S}from"./loadAgentsDir-uuZYOgKn.js";import{i as C,o as w}from"./bundledMode-D9omqD3L.js";import{n as T,t as E}from"./select-BuTJbu_Q.js";import{relative as D}from"path";function O(){let e=v.isSandboxingEnabled(),t=v.checkDependencies(),n=t.warnings.length>0?(0,k.jsx)(r,{marginTop:1,flexDirection:`column`,children:t.warnings.map((e,t)=>(0,k.jsx)(a,{dimColor:!0,children:e},t))}):null;if(!e)return(0,k.jsxs)(r,{flexDirection:`column`,paddingY:1,children:[(0,k.jsx)(a,{color:`subtle`,children:`Sandbox is not enabled`}),n]});let i=v.getFsReadConfig(),o=v.getFsWriteConfig(),s=v.getNetworkRestrictionConfig(),c=v.getAllowUnixSockets(),l=v.getExcludedCommands(),u=v.getLinuxGlobPatternWarnings();return(0,k.jsxs)(r,{flexDirection:`column`,paddingY:1,children:[(0,k.jsxs)(r,{flexDirection:`column`,children:[(0,k.jsx)(a,{bold:!0,color:`permission`,children:`Excluded Commands:`}),(0,k.jsx)(a,{dimColor:!0,children:l.length>0?l.join(`, `):`None`})]}),i.denyOnly.length>0&&(0,k.jsxs)(r,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(a,{bold:!0,color:`permission`,children:`Filesystem Read Restrictions:`}),(0,k.jsxs)(a,{dimColor:!0,children:[`Denied: `,i.denyOnly.join(`, `)]}),i.allowWithinDeny&&i.allowWithinDeny.length>0&&(0,k.jsxs)(a,{dimColor:!0,children:[`Allowed within denied: `,i.allowWithinDeny.join(`, `)]})]}),o.allowOnly.length>0&&(0,k.jsxs)(r,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(a,{bold:!0,color:`permission`,children:`Filesystem Write Restrictions:`}),(0,k.jsxs)(a,{dimColor:!0,children:[`Allowed: `,o.allowOnly.join(`, `)]}),o.denyWithinAllow.length>0&&(0,k.jsxs)(a,{dimColor:!0,children:[`Denied within allowed: `,o.denyWithinAllow.join(`, `)]})]}),(s.allowedHosts&&s.allowedHosts.length>0||s.deniedHosts&&s.deniedHosts.length>0)&&(0,k.jsxs)(r,{marginTop:1,flexDirection:`column`,children:[(0,k.jsxs)(a,{bold:!0,color:`permission`,children:[`Network Restrictions`,y()?` (Managed)`:``,`:`]}),s.allowedHosts&&s.allowedHosts.length>0&&(0,k.jsxs)(a,{dimColor:!0,children:[`Allowed: `,s.allowedHosts.join(`, `)]}),s.deniedHosts&&s.deniedHosts.length>0&&(0,k.jsxs)(a,{dimColor:!0,children:[`Denied: `,s.deniedHosts.join(`, `)]})]}),c&&c.length>0&&(0,k.jsxs)(r,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(a,{bold:!0,color:`permission`,children:`Allowed Unix Sockets:`}),(0,k.jsx)(a,{dimColor:!0,children:c.join(`, `)})]}),u.length>0&&(0,k.jsxs)(r,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(a,{bold:!0,color:`warning`,children:`⚠ Warning: Glob patterns not fully supported on Linux`}),(0,k.jsxs)(a,{dimColor:!0,children:[`The following patterns will be ignored: `,u.slice(0,3).join(`, `),u.length>3&&` (${u.length-3} more)`]})]}),n]})}var k,A=e((()=>{u(),x(),k=f()}));function j({depCheck:e}){let t=C()===`macos`,n=e.errors.some(e=>e.includes(`ripgrep`)),i=e.errors.some(e=>e.includes(`bwrap`)),o=e.errors.some(e=>e.includes(`socat`)),s=e.warnings.length>0,c=e.errors.filter(e=>!e.includes(`ripgrep`)&&!e.includes(`bwrap`)&&!e.includes(`socat`));return(0,M.jsxs)(r,{flexDirection:`column`,paddingY:1,gap:1,children:[t&&(0,M.jsx)(r,{flexDirection:`column`,children:(0,M.jsxs)(a,{children:[`seatbelt: `,(0,M.jsx)(a,{color:`success`,children:`built-in (macOS)`})]})}),(0,M.jsxs)(r,{flexDirection:`column`,children:[(0,M.jsxs)(a,{children:[`ripgrep (rg): `,n?(0,M.jsx)(a,{color:`error`,children:`not found`}):(0,M.jsx)(a,{color:`success`,children:`found`})]}),n&&(0,M.jsxs)(a,{dimColor:!0,children:[` `,`· `,t?`brew install ripgrep`:`apt install ripgrep`]})]}),!t&&(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(r,{flexDirection:`column`,children:[(0,M.jsxs)(a,{children:[`bubblewrap (bwrap):`,` `,i?(0,M.jsx)(a,{color:`error`,children:`not installed`}):(0,M.jsx)(a,{color:`success`,children:`installed`})]}),i&&(0,M.jsxs)(a,{dimColor:!0,children:[` `,`· apt install bubblewrap`]})]}),(0,M.jsxs)(r,{flexDirection:`column`,children:[(0,M.jsxs)(a,{children:[`socat: `,o?(0,M.jsx)(a,{color:`error`,children:`not installed`}):(0,M.jsx)(a,{color:`success`,children:`installed`})]}),o&&(0,M.jsxs)(a,{dimColor:!0,children:[` `,`· apt install socat`]})]}),(0,M.jsxs)(r,{flexDirection:`column`,children:[(0,M.jsxs)(a,{children:[`seccomp filter:`,` `,s?(0,M.jsx)(a,{color:`warning`,children:`not installed`}):(0,M.jsx)(a,{color:`success`,children:`installed`}),s&&(0,M.jsx)(a,{dimColor:!0,children:` (required to block unix domain sockets)`})]}),s&&(0,M.jsxs)(r,{flexDirection:`column`,children:[(0,M.jsxs)(a,{dimColor:!0,children:[` `,`· npm install -g @anthropic-ai/sandbox-runtime`]}),(0,M.jsxs)(a,{dimColor:!0,children:[` `,`· or copy vendor/seccomp/* from sandbox-runtime and set`]}),(0,M.jsxs)(a,{dimColor:!0,children:[` `,`sandbox.seccomp.bpfPath and applyPath in settings.json`]})]})]})]}),c.map(e=>(0,M.jsx)(a,{color:`error`,children:e},e))]})}var M,N=e((()=>{u(),w(),M=f()}));function P({onComplete:e}){let t=v.isSandboxingEnabled(),n=v.areSandboxSettingsLockedByPolicy(),i=v.areUnsandboxedCommandsAllowed();return t?n?(0,I.jsxs)(r,{flexDirection:`column`,paddingY:1,children:[(0,I.jsx)(a,{color:`subtle`,children:`Override settings are managed by a higher-priority configuration and cannot be changed locally.`}),(0,I.jsx)(r,{marginTop:1,children:(0,I.jsxs)(a,{dimColor:!0,children:[`Current setting: `,i?`Allow unsandboxed fallback`:`Strict sandbox mode`]})})]}):(0,I.jsx)(F,{onComplete:e,currentMode:i?`open`:`closed`}):(0,I.jsx)(r,{flexDirection:`column`,paddingY:1,children:(0,I.jsx)(a,{color:`subtle`,children:`Sandbox is not enabled. Enable sandbox to configure override settings.`})})}function F({onComplete:e,currentMode:t}){let[c]=n(),{headerFocused:l,focusHeader:u}=o(),d=s(`success`,c)(`(current)`),f=[{label:t===`open`?`Allow unsandboxed fallback ${d}`:`Allow unsandboxed fallback`,value:`open`},{label:t===`closed`?`Strict sandbox mode ${d}`:`Strict sandbox mode`,value:`closed`}];async function p(t){let n=t;await v.setSandboxSettings({allowUnsandboxedCommands:n===`open`}),e(n===`open`?`✓ Unsandboxed fallback allowed - commands can run outside sandbox when necessary`:"✓ Strict sandbox mode - all commands must run in sandbox or be excluded via the `excludedCommands` option")}return(0,I.jsxs)(r,{flexDirection:`column`,paddingY:1,children:[(0,I.jsx)(r,{marginBottom:1,children:(0,I.jsx)(a,{bold:!0,children:`Configure Overrides:`})}),(0,I.jsx)(E,{options:f,onChange:p,onCancel:()=>e(void 0,{display:`skip`}),onUpFromFirstItem:u,isDisabled:l}),(0,I.jsxs)(r,{flexDirection:`column`,marginTop:1,gap:1,children:[(0,I.jsxs)(a,{dimColor:!0,children:[(0,I.jsx)(a,{bold:!0,dimColor:!0,children:`Allow unsandboxed fallback:`}),` `,`When a command fails due to sandbox restrictions, Work Mate can retry with dangerouslyDisableSandbox to run outside the sandbox (falling back to default permissions).`]}),(0,I.jsxs)(a,{dimColor:!0,children:[(0,I.jsx)(a,{bold:!0,dimColor:!0,children:`Strict sandbox mode:`}),` `,`All bash commands invoked by the model must run in the sandbox unless they are explicitly listed in excludedCommands.`]}),(0,I.jsxs)(a,{dimColor:!0,children:[`Learn more:`,` `,(0,I.jsx)(i,{url:`https://code.workmate.com/docs/en/sandboxing#configure-sandboxing`,children:`code.workmate.com/docs/en/sandboxing#configure-sandboxing`})]})]})]})}var I,L=e((()=>{u(),x(),T(),I=f()}));function R({onComplete:e,depCheck:r}){let[i]=n(),a=v.isSandboxingEnabled(),o=v.isAutoAllowBashIfSandboxedEnabled(),u=r.warnings.length>0,f=p().sandbox?.network?.allowAllUnixSockets,m=u&&!f,h=a?o?`auto-allow`:`regular`:`disabled`,g=s(`success`,i)(`(current)`),_=[{label:h===`auto-allow`?`Sandbox BashTool, with auto-allow ${g}`:`Sandbox BashTool, with auto-allow`,value:`auto-allow`},{label:h===`regular`?`Sandbox BashTool, with regular permissions ${g}`:`Sandbox BashTool, with regular permissions`,value:`regular`},{label:h===`disabled`?`No Sandbox ${g}`:`No Sandbox`,value:`disabled`}];async function y(t){switch(t){case`auto-allow`:await v.setSandboxSettings({enabled:!0,autoAllowBashIfSandboxed:!0}),e(`✓ Sandbox enabled with auto-allow for bash commands`);break;case`regular`:await v.setSandboxSettings({enabled:!0,autoAllowBashIfSandboxed:!1}),e(`✓ Sandbox enabled with regular bash permissions`);break;case`disabled`:await v.setSandboxSettings({enabled:!1,autoAllowBashIfSandboxed:!1}),e(`○ Sandbox disabled`);break}}t({"confirm:no":()=>e(void 0,{display:`skip`})},{context:`Settings`});let b=(0,B.jsx)(c,{title:`Mode`,children:(0,B.jsx)(z,{showSocketWarning:m,options:_,onSelect:y,onComplete:e})},`mode`),x=(0,B.jsx)(c,{title:`Overrides`,children:(0,B.jsx)(P,{onComplete:e})},`overrides`),S=(0,B.jsx)(c,{title:`Config`,children:(0,B.jsx)(O,{})},`config`);return(0,B.jsx)(d,{color:`permission`,children:(0,B.jsx)(l,{title:`Sandbox:`,color:`permission`,defaultTab:`Mode`,children:r.errors.length>0?[(0,B.jsx)(c,{title:`Dependencies`,children:(0,B.jsx)(j,{depCheck:r})},`dependencies`)]:[b,...u?[(0,B.jsx)(c,{title:`Dependencies`,children:(0,B.jsx)(j,{depCheck:r})},`dependencies`)]:[],x,S]})})}function z({showSocketWarning:e,options:t,onSelect:n,onComplete:s}){let{headerFocused:c,focusHeader:l}=o();return(0,B.jsxs)(r,{flexDirection:`column`,paddingY:1,children:[e&&(0,B.jsx)(r,{marginBottom:1,children:(0,B.jsx)(a,{color:`warning`,children:`Cannot block unix domain sockets (see Dependencies tab)`})}),(0,B.jsx)(r,{marginBottom:1,children:(0,B.jsx)(a,{bold:!0,children:`Configure Mode:`})}),(0,B.jsx)(E,{options:t,onChange:n,onCancel:()=>s(void 0,{display:`skip`}),onUpFromFirstItem:l,isDisabled:c}),(0,B.jsxs)(r,{flexDirection:`column`,marginTop:1,gap:1,children:[(0,B.jsxs)(a,{dimColor:!0,children:[(0,B.jsx)(a,{bold:!0,dimColor:!0,children:`Auto-allow mode:`}),` `,`Commands will try to run in the sandbox automatically, and attempts to run outside of the sandbox fallback to regular permissions. Explicit ask/deny rules are always respected.`]}),(0,B.jsxs)(a,{dimColor:!0,children:[`Learn more:`,` `,(0,B.jsx)(i,{url:`https://code.workmate.com/docs/en/sandboxing`,children:`code.workmate.com/docs/en/sandboxing`})]})]})]})}var B,V=e((()=>{u(),S(),x(),m(),T(),A(),N(),L(),B=f()}));async function H(e,t,n){let r=p().theme||`light`,i=C();if(!v.isSupportedPlatform()){let t=i===`wsl`?`Error: Sandboxing requires WSL2. WSL1 is not supported.`:`Error: Sandboxing is currently only supported on macOS, Linux, and WSL2.`;return e(s(`error`,r)(t)),null}let a=v.checkDependencies();if(!v.isPlatformInEnabledList())return e(s(`error`,r)(`Error: Sandboxing is disabled for this platform (${i}) via the enabledPlatforms setting.`)),null;if(v.areSandboxSettingsLockedByPolicy())return e(s(`error`,r)(`Error: Sandbox settings are overridden by a higher-priority configuration and cannot be changed locally.`)),null;let o=n?.trim()||``;if(!o)return(0,U.jsx)(R,{onComplete:e,depCheck:a});if(o){let t=o.split(` `)[0];if(t===`exclude`){let t=o.slice(8).trim();if(!t)return e(s(`error`,r)(`Error: Please provide a command pattern to exclude (e.g., /sandbox exclude "npm run test:*")`)),null;let n=t.replace(/^["']|["']$/g,``);b(n);let i=h(`localSettings`),a=i?D(_(),i):`.workmate/settings.local.json`;return e(s(`success`,r)(`Added "${n}" to excluded commands in ${a}`)),null}else return e(s(`error`,r)(`Error: Unknown subcommand "${t}". Available subcommand: exclude`)),null}return null}var U;e((()=>{g(),V(),u(),w(),x(),m(),U=f()}))();export{H as call};
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{Gt as t,H as n,I as r,Lt as i,P as a,a as o,j as s,n as c,r as l,t as u,x as d}from"./src-BX54x08P.js";import{t as f}from"./jsx-runtime-Bb4Xn-E0.js";import{d as p,m,o as h}from"./settings-D4M13toi.js";import{Pt as g,T as _}from"./state-CXY-q5gr.js";import{aC as v,cC as y,oC as b,sC as x,tb as S}from"./loadAgentsDir-bmpKLPdG.js";import{i as C,o as w}from"./bundledMode-D9omqD3L.js";import{n as T,t as E}from"./select-CaxQ-BVq.js";import{relative as D}from"path";function O(){let e=v.isSandboxingEnabled(),t=v.checkDependencies(),n=t.warnings.length>0?(0,k.jsx)(r,{marginTop:1,flexDirection:`column`,children:t.warnings.map((e,t)=>(0,k.jsx)(a,{dimColor:!0,children:e},t))}):null;if(!e)return(0,k.jsxs)(r,{flexDirection:`column`,paddingY:1,children:[(0,k.jsx)(a,{color:`subtle`,children:`Sandbox is not enabled`}),n]});let i=v.getFsReadConfig(),o=v.getFsWriteConfig(),s=v.getNetworkRestrictionConfig(),c=v.getAllowUnixSockets(),l=v.getExcludedCommands(),u=v.getLinuxGlobPatternWarnings();return(0,k.jsxs)(r,{flexDirection:`column`,paddingY:1,children:[(0,k.jsxs)(r,{flexDirection:`column`,children:[(0,k.jsx)(a,{bold:!0,color:`permission`,children:`Excluded Commands:`}),(0,k.jsx)(a,{dimColor:!0,children:l.length>0?l.join(`, `):`None`})]}),i.denyOnly.length>0&&(0,k.jsxs)(r,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(a,{bold:!0,color:`permission`,children:`Filesystem Read Restrictions:`}),(0,k.jsxs)(a,{dimColor:!0,children:[`Denied: `,i.denyOnly.join(`, `)]}),i.allowWithinDeny&&i.allowWithinDeny.length>0&&(0,k.jsxs)(a,{dimColor:!0,children:[`Allowed within denied: `,i.allowWithinDeny.join(`, `)]})]}),o.allowOnly.length>0&&(0,k.jsxs)(r,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(a,{bold:!0,color:`permission`,children:`Filesystem Write Restrictions:`}),(0,k.jsxs)(a,{dimColor:!0,children:[`Allowed: `,o.allowOnly.join(`, `)]}),o.denyWithinAllow.length>0&&(0,k.jsxs)(a,{dimColor:!0,children:[`Denied within allowed: `,o.denyWithinAllow.join(`, `)]})]}),(s.allowedHosts&&s.allowedHosts.length>0||s.deniedHosts&&s.deniedHosts.length>0)&&(0,k.jsxs)(r,{marginTop:1,flexDirection:`column`,children:[(0,k.jsxs)(a,{bold:!0,color:`permission`,children:[`Network Restrictions`,y()?` (Managed)`:``,`:`]}),s.allowedHosts&&s.allowedHosts.length>0&&(0,k.jsxs)(a,{dimColor:!0,children:[`Allowed: `,s.allowedHosts.join(`, `)]}),s.deniedHosts&&s.deniedHosts.length>0&&(0,k.jsxs)(a,{dimColor:!0,children:[`Denied: `,s.deniedHosts.join(`, `)]})]}),c&&c.length>0&&(0,k.jsxs)(r,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(a,{bold:!0,color:`permission`,children:`Allowed Unix Sockets:`}),(0,k.jsx)(a,{dimColor:!0,children:c.join(`, `)})]}),u.length>0&&(0,k.jsxs)(r,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(a,{bold:!0,color:`warning`,children:`⚠ Warning: Glob patterns not fully supported on Linux`}),(0,k.jsxs)(a,{dimColor:!0,children:[`The following patterns will be ignored: `,u.slice(0,3).join(`, `),u.length>3&&` (${u.length-3} more)`]})]}),n]})}var k,A=e((()=>{u(),x(),k=f()}));function j({depCheck:e}){let t=C()===`macos`,n=e.errors.some(e=>e.includes(`ripgrep`)),i=e.errors.some(e=>e.includes(`bwrap`)),o=e.errors.some(e=>e.includes(`socat`)),s=e.warnings.length>0,c=e.errors.filter(e=>!e.includes(`ripgrep`)&&!e.includes(`bwrap`)&&!e.includes(`socat`));return(0,M.jsxs)(r,{flexDirection:`column`,paddingY:1,gap:1,children:[t&&(0,M.jsx)(r,{flexDirection:`column`,children:(0,M.jsxs)(a,{children:[`seatbelt: `,(0,M.jsx)(a,{color:`success`,children:`built-in (macOS)`})]})}),(0,M.jsxs)(r,{flexDirection:`column`,children:[(0,M.jsxs)(a,{children:[`ripgrep (rg): `,n?(0,M.jsx)(a,{color:`error`,children:`not found`}):(0,M.jsx)(a,{color:`success`,children:`found`})]}),n&&(0,M.jsxs)(a,{dimColor:!0,children:[` `,`· `,t?`brew install ripgrep`:`apt install ripgrep`]})]}),!t&&(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(r,{flexDirection:`column`,children:[(0,M.jsxs)(a,{children:[`bubblewrap (bwrap):`,` `,i?(0,M.jsx)(a,{color:`error`,children:`not installed`}):(0,M.jsx)(a,{color:`success`,children:`installed`})]}),i&&(0,M.jsxs)(a,{dimColor:!0,children:[` `,`· apt install bubblewrap`]})]}),(0,M.jsxs)(r,{flexDirection:`column`,children:[(0,M.jsxs)(a,{children:[`socat: `,o?(0,M.jsx)(a,{color:`error`,children:`not installed`}):(0,M.jsx)(a,{color:`success`,children:`installed`})]}),o&&(0,M.jsxs)(a,{dimColor:!0,children:[` `,`· apt install socat`]})]}),(0,M.jsxs)(r,{flexDirection:`column`,children:[(0,M.jsxs)(a,{children:[`seccomp filter:`,` `,s?(0,M.jsx)(a,{color:`warning`,children:`not installed`}):(0,M.jsx)(a,{color:`success`,children:`installed`}),s&&(0,M.jsx)(a,{dimColor:!0,children:` (required to block unix domain sockets)`})]}),s&&(0,M.jsxs)(r,{flexDirection:`column`,children:[(0,M.jsxs)(a,{dimColor:!0,children:[` `,`· npm install -g @anthropic-ai/sandbox-runtime`]}),(0,M.jsxs)(a,{dimColor:!0,children:[` `,`· or copy vendor/seccomp/* from sandbox-runtime and set`]}),(0,M.jsxs)(a,{dimColor:!0,children:[` `,`sandbox.seccomp.bpfPath and applyPath in settings.json`]})]})]})]}),c.map(e=>(0,M.jsx)(a,{color:`error`,children:e},e))]})}var M,N=e((()=>{u(),w(),M=f()}));function P({onComplete:e}){let t=v.isSandboxingEnabled(),n=v.areSandboxSettingsLockedByPolicy(),i=v.areUnsandboxedCommandsAllowed();return t?n?(0,I.jsxs)(r,{flexDirection:`column`,paddingY:1,children:[(0,I.jsx)(a,{color:`subtle`,children:`Override settings are managed by a higher-priority configuration and cannot be changed locally.`}),(0,I.jsx)(r,{marginTop:1,children:(0,I.jsxs)(a,{dimColor:!0,children:[`Current setting: `,i?`Allow unsandboxed fallback`:`Strict sandbox mode`]})})]}):(0,I.jsx)(F,{onComplete:e,currentMode:i?`open`:`closed`}):(0,I.jsx)(r,{flexDirection:`column`,paddingY:1,children:(0,I.jsx)(a,{color:`subtle`,children:`Sandbox is not enabled. Enable sandbox to configure override settings.`})})}function F({onComplete:e,currentMode:t}){let[c]=n(),{headerFocused:l,focusHeader:u}=o(),d=s(`success`,c)(`(current)`),f=[{label:t===`open`?`Allow unsandboxed fallback ${d}`:`Allow unsandboxed fallback`,value:`open`},{label:t===`closed`?`Strict sandbox mode ${d}`:`Strict sandbox mode`,value:`closed`}];async function p(t){let n=t;await v.setSandboxSettings({allowUnsandboxedCommands:n===`open`}),e(n===`open`?`✓ Unsandboxed fallback allowed - commands can run outside sandbox when necessary`:"✓ Strict sandbox mode - all commands must run in sandbox or be excluded via the `excludedCommands` option")}return(0,I.jsxs)(r,{flexDirection:`column`,paddingY:1,children:[(0,I.jsx)(r,{marginBottom:1,children:(0,I.jsx)(a,{bold:!0,children:`Configure Overrides:`})}),(0,I.jsx)(E,{options:f,onChange:p,onCancel:()=>e(void 0,{display:`skip`}),onUpFromFirstItem:u,isDisabled:l}),(0,I.jsxs)(r,{flexDirection:`column`,marginTop:1,gap:1,children:[(0,I.jsxs)(a,{dimColor:!0,children:[(0,I.jsx)(a,{bold:!0,dimColor:!0,children:`Allow unsandboxed fallback:`}),` `,`When a command fails due to sandbox restrictions, Work Mate can retry with dangerouslyDisableSandbox to run outside the sandbox (falling back to default permissions).`]}),(0,I.jsxs)(a,{dimColor:!0,children:[(0,I.jsx)(a,{bold:!0,dimColor:!0,children:`Strict sandbox mode:`}),` `,`All bash commands invoked by the model must run in the sandbox unless they are explicitly listed in excludedCommands.`]}),(0,I.jsxs)(a,{dimColor:!0,children:[`Learn more:`,` `,(0,I.jsx)(i,{url:`https://code.workmate.com/docs/en/sandboxing#configure-sandboxing`,children:`code.workmate.com/docs/en/sandboxing#configure-sandboxing`})]})]})]})}var I,L=e((()=>{u(),x(),T(),I=f()}));function R({onComplete:e,depCheck:r}){let[i]=n(),a=v.isSandboxingEnabled(),o=v.isAutoAllowBashIfSandboxedEnabled(),u=r.warnings.length>0,f=p().sandbox?.network?.allowAllUnixSockets,m=u&&!f,h=a?o?`auto-allow`:`regular`:`disabled`,g=s(`success`,i)(`(current)`),_=[{label:h===`auto-allow`?`Sandbox BashTool, with auto-allow ${g}`:`Sandbox BashTool, with auto-allow`,value:`auto-allow`},{label:h===`regular`?`Sandbox BashTool, with regular permissions ${g}`:`Sandbox BashTool, with regular permissions`,value:`regular`},{label:h===`disabled`?`No Sandbox ${g}`:`No Sandbox`,value:`disabled`}];async function y(t){switch(t){case`auto-allow`:await v.setSandboxSettings({enabled:!0,autoAllowBashIfSandboxed:!0}),e(`✓ Sandbox enabled with auto-allow for bash commands`);break;case`regular`:await v.setSandboxSettings({enabled:!0,autoAllowBashIfSandboxed:!1}),e(`✓ Sandbox enabled with regular bash permissions`);break;case`disabled`:await v.setSandboxSettings({enabled:!1,autoAllowBashIfSandboxed:!1}),e(`○ Sandbox disabled`);break}}t({"confirm:no":()=>e(void 0,{display:`skip`})},{context:`Settings`});let b=(0,B.jsx)(c,{title:`Mode`,children:(0,B.jsx)(z,{showSocketWarning:m,options:_,onSelect:y,onComplete:e})},`mode`),x=(0,B.jsx)(c,{title:`Overrides`,children:(0,B.jsx)(P,{onComplete:e})},`overrides`),S=(0,B.jsx)(c,{title:`Config`,children:(0,B.jsx)(O,{})},`config`);return(0,B.jsx)(d,{color:`permission`,children:(0,B.jsx)(l,{title:`Sandbox:`,color:`permission`,defaultTab:`Mode`,children:r.errors.length>0?[(0,B.jsx)(c,{title:`Dependencies`,children:(0,B.jsx)(j,{depCheck:r})},`dependencies`)]:[b,...u?[(0,B.jsx)(c,{title:`Dependencies`,children:(0,B.jsx)(j,{depCheck:r})},`dependencies`)]:[],x,S]})})}function z({showSocketWarning:e,options:t,onSelect:n,onComplete:s}){let{headerFocused:c,focusHeader:l}=o();return(0,B.jsxs)(r,{flexDirection:`column`,paddingY:1,children:[e&&(0,B.jsx)(r,{marginBottom:1,children:(0,B.jsx)(a,{color:`warning`,children:`Cannot block unix domain sockets (see Dependencies tab)`})}),(0,B.jsx)(r,{marginBottom:1,children:(0,B.jsx)(a,{bold:!0,children:`Configure Mode:`})}),(0,B.jsx)(E,{options:t,onChange:n,onCancel:()=>s(void 0,{display:`skip`}),onUpFromFirstItem:l,isDisabled:c}),(0,B.jsxs)(r,{flexDirection:`column`,marginTop:1,gap:1,children:[(0,B.jsxs)(a,{dimColor:!0,children:[(0,B.jsx)(a,{bold:!0,dimColor:!0,children:`Auto-allow mode:`}),` `,`Commands will try to run in the sandbox automatically, and attempts to run outside of the sandbox fallback to regular permissions. Explicit ask/deny rules are always respected.`]}),(0,B.jsxs)(a,{dimColor:!0,children:[`Learn more:`,` `,(0,B.jsx)(i,{url:`https://code.workmate.com/docs/en/sandboxing`,children:`code.workmate.com/docs/en/sandboxing`})]})]})]})}var B,V=e((()=>{u(),S(),x(),m(),T(),A(),N(),L(),B=f()}));async function H(e,t,n){let r=p().theme||`light`,i=C();if(!v.isSupportedPlatform()){let t=i===`wsl`?`Error: Sandboxing requires WSL2. WSL1 is not supported.`:`Error: Sandboxing is currently only supported on macOS, Linux, and WSL2.`;return e(s(`error`,r)(t)),null}let a=v.checkDependencies();if(!v.isPlatformInEnabledList())return e(s(`error`,r)(`Error: Sandboxing is disabled for this platform (${i}) via the enabledPlatforms setting.`)),null;if(v.areSandboxSettingsLockedByPolicy())return e(s(`error`,r)(`Error: Sandbox settings are overridden by a higher-priority configuration and cannot be changed locally.`)),null;let o=n?.trim()||``;if(!o)return(0,U.jsx)(R,{onComplete:e,depCheck:a});if(o){let t=o.split(` `)[0];if(t===`exclude`){let t=o.slice(8).trim();if(!t)return e(s(`error`,r)(`Error: Please provide a command pattern to exclude (e.g., /sandbox exclude "npm run test:*")`)),null;let n=t.replace(/^["']|["']$/g,``);b(n);let i=h(`localSettings`),a=i?D(_(),i):`.workmate/settings.local.json`;return e(s(`success`,r)(`Added "${n}" to excluded commands in ${a}`)),null}else return e(s(`error`,r)(`Error: Unknown subcommand "${t}". Available subcommand: exclude`)),null}return null}var U;e((()=>{g(),V(),u(),w(),x(),m(),U=f()}))();export{H as call};
@@ -0,0 +1 @@
1
+ import{S_ as e,b_ as t}from"./loadAgentsDir-bmpKLPdG.js";t();export{e as isSearchExtraToolsEnabled};
@@ -1 +1 @@
1
- import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{n,t as r}from"./defineProperty-C-QyHrDq.js";import{n as i,t as a}from"./figures-5ThXQEtq.js";import{Bt as o,Ft as s,G as c,Gr as l,Gt as u,I as d,Lt as f,P as p,T as m,Wt as h,_ as g,ai as _,hn as v,t as y}from"./src-BX54x08P.js";import{t as b}from"./jsx-runtime-Bb4Xn-E0.js";import{$n as x,Qn as S}from"./settings-D4M13toi.js";import{Lu as C,Ru as w,hd as T,md as E,tb as D}from"./loadAgentsDir-uuZYOgKn.js";import{c as O,o as k,s as A}from"./stringUtils-Cs6E5f-B.js";import{D as j,O as M,n as N,t as P}from"./TextInput-ZKU-x_FD.js";import{i as F,t as I}from"./overlayContext-7wgLio1O.js";import{isDeepStrictEqual as L}from"util";import{pathToFileURL as R}from"url";function ee({imageId:e,backgroundColor:t,isSelected:n=!1}){let r=C(e),i=`[Image #${e}]`;if(r&&o()){let e=R(r).href;return(0,z.jsx)(f,{url:e,fallback:(0,z.jsx)(p,{backgroundColor:t,inverse:n,children:i}),children:(0,z.jsx)(p,{backgroundColor:t,inverse:n,bold:n,children:i})})}return(0,z.jsx)(p,{backgroundColor:t,inverse:n,children:i})}var z,te=e((()=>{y(),w(),z=b()}));function B({isFocused:e,isSelected:t,children:n,description:r,shouldShowDownArrow:i,shouldShowUpArrow:a,declareCursor:o}){return(0,ne.jsx)(g,{isFocused:e,isSelected:t,description:r,showScrollDown:i,showScrollUp:a,styled:!1,declareCursor:o,children:n})}var ne,V=e((()=>{y(),ne=b()}));function H({option:e,isFocused:t,isSelected:n,shouldShowDownArrow:r,shouldShowUpArrow:i,maxIndexWidth:a,index:o,inputValue:s,onInputChange:c,onSubmit:l,onExit:f,layout:g,children:_,showLabel:y=!1,onOpenEditor:b,resetCursorOnUpdate:x=!1,onImagePaste:S,pastedContents:C,onRemoveImage:w,imagesSelected:T,selectedImageIndex:D=0,onImagesSelectedChange:O,onSelectedImageIndexChange:k}){let A=C?Object.values(C).filter(e=>e.type===`image`):[],M=y||e.showLabelWithValue===!0,[N,F]=(0,U.useState)(s.length),I=(0,U.useRef)(!1);(0,U.useEffect)(()=>{x&&t&&(I.current?I.current=!1:F(s.length))},[x,t,s]),h(`chat:externalEditor`,()=>{b?.(s,c)},{context:`Chat`,isActive:t&&!!b}),h(`chat:imagePaste`,()=>{S&&j().then(e=>{e&&S(e.base64,e.mediaType,void 0,e.dimensions)})},{context:`Chat`,isActive:t&&!!S}),h(`attachments:remove`,()=>{A.length>0&&w&&w(A.at(-1).id)},{context:`Attachments`,isActive:t&&!T&&s===``&&A.length>0&&!!w}),u({"attachments:next":()=>{A.length>1&&k?.((D+1)%A.length)},"attachments:previous":()=>{A.length>1&&k?.((D-1+A.length)%A.length)},"attachments:remove":()=>{let e=A[D];e&&w&&(w(e.id),A.length<=1?O?.(!1):k?.(Math.min(D,A.length-2)))},"attachments:exit":()=>{O?.(!1)}},{context:`Attachments`,isActive:t&&!!T}),v((e,t)=>{t.upArrow&&O?.(!1)},{isActive:t&&!!T}),(0,U.useEffect)(()=>{!t&&T&&O?.(!1)},[t,T,O]);let L=g===`expanded`?a+3:a+4;return(0,W.jsxs)(d,{flexDirection:`column`,flexShrink:0,children:[(0,W.jsx)(B,{isFocused:t,isSelected:n,shouldShowDownArrow:r,shouldShowUpArrow:i,declareCursor:!1,children:(0,W.jsxs)(d,{flexDirection:`row`,flexShrink:g===`compact`?0:void 0,children:[(0,W.jsx)(p,{dimColor:!0,children:`${o}.`.padEnd(a+2)}),_,M?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(p,{color:t?`suggestion`:void 0,children:e.label}),t?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(p,{color:`suggestion`,children:e.labelValueSeparator??`, `}),(0,W.jsx)(P,{value:s,onChange:t=>{I.current=!0,c(t),e.onChange(t)},onSubmit:l,onExit:f,placeholder:e.placeholder,focus:!T,showCursor:!0,multiline:!0,cursorOffset:N,onChangeCursorOffset:F,columns:80,onImagePaste:S,onPaste:t=>{I.current=!0;let n=s.slice(0,N),r=s.slice(N),i=n+t+r;c(i),e.onChange(i),F(n.length+t.length)}})]}):s&&(0,W.jsxs)(p,{children:[e.labelValueSeparator??`, `,s]})]}):t?(0,W.jsx)(P,{value:s,onChange:t=>{I.current=!0,c(t),e.onChange(t)},onSubmit:l,onExit:f,placeholder:e.placeholder||(typeof e.label==`string`?e.label:void 0),focus:!T,showCursor:!0,multiline:!0,cursorOffset:N,onChangeCursorOffset:F,columns:80,onImagePaste:S,onPaste:t=>{I.current=!0;let n=s.slice(0,N),r=s.slice(N),i=n+t+r;c(i),e.onChange(i),F(n.length+t.length)}}):(0,W.jsx)(p,{color:s?void 0:`inactive`,children:s||e.placeholder||e.label})]})}),e.description&&(0,W.jsx)(d,{paddingLeft:L,children:(0,W.jsx)(p,{dimColor:e.dimDescription!==!1,color:n?`success`:t?`suggestion`:void 0,children:e.description})}),A.length>0&&(0,W.jsxs)(d,{flexDirection:`row`,gap:1,paddingLeft:L,children:[A.map((e,t)=>(0,W.jsx)(ee,{imageId:e.id,isSelected:!!T&&t===D},e.id)),(0,W.jsx)(d,{flexGrow:1,justifyContent:`flex-start`,flexDirection:`row`,children:(0,W.jsx)(p,{dimColor:!0,children:T?(0,W.jsxs)(m,{children:[A.length>1&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(E,{action:`attachments:next`,context:`Attachments`,fallback:`→`,description:`next`}),(0,W.jsx)(E,{action:`attachments:previous`,context:`Attachments`,fallback:`←`,description:`prev`})]}),(0,W.jsx)(E,{action:`attachments:remove`,context:`Attachments`,fallback:`backspace`,description:`remove`}),(0,W.jsx)(E,{action:`attachments:exit`,context:`Attachments`,fallback:`esc`,description:`cancel`})]}):t?`(↓ to select)`:null})})]}),g===`expanded`&&(0,W.jsx)(p,{children:` `})]})}var U,W,G=e((()=>{U=t(_(),1),y(),D(),M(),te(),T(),N(),V(),W=b()})),K,q,re=e((()=>{K=t(_(),1),I(),y(),D(),k(),q=({isDisabled:e=!1,disableSelection:t=!1,state:n,options:r,isMultiSelect:i=!1,onUpFromFirstItem:a,onDownFromLastItem:o,onInputModeToggle:s,inputValues:c,imagesSelected:l=!1,onEnterImageSelection:d})=>{F(`select`,!!n.onCancel);let f=(0,K.useMemo)(()=>r.find(e=>e.value===n.focusedValue)?.type===`input`,[r,n.focusedValue]);u((0,K.useMemo)(()=>{let e={};return f||(e[`select:next`]=()=>{if(o){let e=r[r.length-1];if(e&&n.focusedValue===e.value){o();return}}n.focusNextOption()},e[`select:previous`]=()=>{if(a&&n.visibleFromIndex===0){let e=r[0];if(e&&n.focusedValue===e.value){a();return}}n.focusPreviousOption()},e[`select:accept`]=()=>{t!==!0&&n.focusedValue!==void 0&&r.find(e=>e.value===n.focusedValue)?.disabled!==!0&&(n.selectFocusedOption?.(),n.onChange?.(n.focusedValue))}),n.onCancel&&(e[`select:cancel`]=()=>{n.onCancel()}),e},[r,n,o,a,f,t]),{context:`Select`,isActive:!e}),v((e,u,f)=>{let p=A(e),m=r.find(e=>e.value===n.focusedValue),h=m?.type===`input`;if(u.tab&&s&&n.focusedValue!==void 0){s(n.focusedValue);return}if(h){if(l)return;if(u.downArrow&&d?.()){f.stopImmediatePropagation();return}if(u.downArrow||u.ctrl&&e===`n`){if(o){let e=r[r.length-1];if(e&&n.focusedValue===e.value){o(),f.stopImmediatePropagation();return}}n.focusNextOption(),f.stopImmediatePropagation();return}if(u.upArrow||u.ctrl&&e===`p`){if(a&&n.visibleFromIndex===0){let e=r[0];if(e&&n.focusedValue===e.value){a(),f.stopImmediatePropagation();return}}n.focusPreviousOption(),f.stopImmediatePropagation();return}return}if(u.pageDown&&n.focusNextPage(),u.pageUp&&n.focusPreviousPage(),t!==!0&&(i&&O(e)===` `&&n.focusedValue!==void 0&&m?.disabled!==!0&&(n.selectFocusedOption?.(),n.onChange?.(n.focusedValue)),t!==`numeric`&&/^[0-9]+$/.test(p))){let e=parseInt(p,10)-1;if(e>=0&&e<n.options.length){let t=n.options[e];if(t.disabled===!0)return;if(t.type===`input`){if((c?.get(t.value)??``).trim()){n.onChange?.(t.value);return}if(t.allowEmptySubmitToCancel){n.onChange?.(t.value);return}n.focusOption(t.value);return}n.onChange?.(t.value);return}}},{isActive:!e})}})),ie,ae=e((()=>{n(),ie=class extends Map{constructor(e){let t=[],n,i,a,o=0;for(let r of e){let e={label:r.label,value:r.value,description:r.description,previous:a,next:void 0,index:o};a&&(a.next=e),n||(n=e),i=e,t.push([r.value,e]),o++,a=e}super(t),r(this,`first`,void 0),r(this,`last`,void 0),this.first=n,this.last=i}}}));function oe({visibleOptionCount:e=5,options:t,initialFocusValue:n,onFocus:r,focusValue:i}){let[a,o]=(0,J.useReducer)(se,{visibleOptionCount:e,options:t,initialFocusValue:i||n},Y),s=(0,J.useRef)(r);s.current=r;let[c,l]=(0,J.useState)(t);t!==c&&!L(t,c)&&(o({type:`reset`,state:Y({visibleOptionCount:e,options:t,initialFocusValue:i??a.focusedValue??n,currentViewport:{visibleFromIndex:a.visibleFromIndex,visibleToIndex:a.visibleToIndex}})}),l(t));let u=(0,J.useCallback)(()=>{o({type:`focus-next-option`})},[]),d=(0,J.useCallback)(()=>{o({type:`focus-previous-option`})},[]),f=(0,J.useCallback)(()=>{o({type:`focus-next-page`})},[]),p=(0,J.useCallback)(()=>{o({type:`focus-previous-page`})},[]),m=(0,J.useCallback)(e=>{e!==void 0&&o({type:`set-focus`,value:e})},[]),h=(0,J.useMemo)(()=>t.map((e,t)=>({...e,index:t})).slice(a.visibleFromIndex,a.visibleToIndex),[t,a.visibleFromIndex,a.visibleToIndex]),g=(0,J.useMemo)(()=>{if(a.focusedValue!==void 0)return t.some(e=>e.value===a.focusedValue)?a.focusedValue:t[0]?.value},[a.focusedValue,t]),_=(0,J.useMemo)(()=>t.find(e=>e.value===g)?.type===`input`,[g,t]);return(0,J.useEffect)(()=>{g!==void 0&&s.current?.(g)},[g]),(0,J.useEffect)(()=>{i!==void 0&&o({type:`set-focus`,value:i})},[i]),{focusedValue:g,focusedIndex:(0,J.useMemo)(()=>{if(g===void 0)return 0;let e=t.findIndex(e=>e.value===g);return e>=0?e+1:0},[g,t]),visibleFromIndex:a.visibleFromIndex,visibleToIndex:a.visibleToIndex,visibleOptions:h,isInInput:_??!1,focusNextOption:u,focusPreviousOption:d,focusNextPage:f,focusPreviousPage:p,focusOption:m,options:t}}var J,se,Y,ce=e((()=>{J=t(_(),1),ae(),se=(e,t)=>{switch(t.type){case`focus-next-option`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=t.next||e.optionMap.first;if(!n)return e;if(!t.next&&n===e.optionMap.first)return{...e,focusedValue:n.value,visibleFromIndex:0,visibleToIndex:e.visibleOptionCount};if(!(n.index>=e.visibleToIndex))return{...e,focusedValue:n.value};let r=Math.min(e.optionMap.size,e.visibleToIndex+1),i=r-e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:i,visibleToIndex:r}}case`focus-previous-option`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=t.previous||e.optionMap.last;if(!n)return e;if(!t.previous&&n===e.optionMap.last){let t=e.optionMap.size,r=Math.max(0,t-e.visibleOptionCount);return{...e,focusedValue:n.value,visibleFromIndex:r,visibleToIndex:t}}if(!(n.index<=e.visibleFromIndex))return{...e,focusedValue:n.value};let r=Math.max(0,e.visibleFromIndex-1),i=r+e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:r,visibleToIndex:i}}case`focus-next-page`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=Math.min(e.optionMap.size-1,t.index+e.visibleOptionCount),r=e.optionMap.first;for(;r&&r.index<n&&r.next;)r=r.next;if(!r)return e;let i=Math.min(e.optionMap.size,r.index+1),a=Math.max(0,i-e.visibleOptionCount);return{...e,focusedValue:r.value,visibleFromIndex:a,visibleToIndex:i}}case`focus-previous-page`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=Math.max(0,t.index-e.visibleOptionCount),r=e.optionMap.first;for(;r&&r.index<n&&r.next;)r=r.next;if(!r)return e;let i=Math.max(0,r.index),a=Math.min(e.optionMap.size,i+e.visibleOptionCount);return{...e,focusedValue:r.value,visibleFromIndex:i,visibleToIndex:a}}case`reset`:return t.state;case`set-focus`:{if(e.focusedValue===t.value)return e;let n=e.optionMap.get(t.value);if(!n)return e;if(n.index>=e.visibleFromIndex&&n.index<e.visibleToIndex)return{...e,focusedValue:t.value};let r,i;return n.index<e.visibleFromIndex?(r=n.index,i=Math.min(e.optionMap.size,r+e.visibleOptionCount)):(i=Math.min(e.optionMap.size,n.index+1),r=Math.max(0,i-e.visibleOptionCount)),{...e,focusedValue:t.value,visibleFromIndex:r,visibleToIndex:i}}}},Y=({visibleOptionCount:e,options:t,initialFocusValue:n,currentViewport:r})=>{let i=typeof e==`number`?Math.min(e,t.length):t.length,a=new ie(t),o=n!==void 0&&a.get(n),s=o?n:a.first?.value,c=0,l=i;if(o){let e=o.index;r?e>=r.visibleFromIndex&&e<r.visibleToIndex?(c=r.visibleFromIndex,l=Math.min(a.size,r.visibleToIndex)):e<r.visibleFromIndex?(c=e,l=Math.min(a.size,c+i)):(l=Math.min(a.size,e+1),c=Math.max(0,l-i)):e>=i&&(l=Math.min(a.size,e+1),c=Math.max(0,l-i)),c=Math.max(0,Math.min(c,a.size-1)),l=Math.min(a.size,Math.max(i,l))}return{optionMap:a,visibleOptionCount:i,focusedValue:s,visibleFromIndex:c,visibleToIndex:l}}}));function le({visibleOptionCount:e=5,options:t,defaultValue:n,onChange:r,onCancel:i,onFocus:a,focusValue:o}){let[s,c]=(0,X.useState)(n),l=oe({visibleOptionCount:e,options:t,initialFocusValue:void 0,onFocus:a,focusValue:o}),u=(0,X.useCallback)(()=>{c(l.focusedValue)},[l.focusedValue]);return{...l,value:s,selectFocusedOption:u,onChange:r,onCancel:i}}var X,ue=e((()=>{X=t(_(),1),ce()}));function Z(e){return typeof e==`string`?e:typeof e==`number`?String(e):e?Array.isArray(e)?e.map(Z).join(``):Q.isValidElement(e)?Z(e.props.children):``:``}function de({isDisabled:e=!1,hideIndexes:t=!1,visibleOptionCount:n=5,highlightText:r,options:i,defaultValue:o,onCancel:c,onChange:u,onFocus:f,defaultFocusValue:m,layout:h=`compact`,disableSelection:g=!1,inlineDescriptions:_=!1,onUpFromFirstItem:v,onDownFromLastItem:y,onInputModeToggle:b,onOpenEditor:x,onImagePaste:C,pastedContents:w,onRemoveImage:T}){let[E,D]=(0,Q.useState)(!1),[O,k]=(0,Q.useState)(0),[A,j]=(0,Q.useState)(()=>{let e=new Map;return i.forEach(t=>{t.type===`input`&&t.initialValue&&e.set(t.value,t.initialValue)}),e}),M=(0,Q.useRef)(new Map);(0,Q.useEffect)(()=>{for(let e of i)if(e.type===`input`&&e.initialValue!==void 0){let t=M.current.get(e.value)??``,n=A.get(e.value)??``,r=e.initialValue;r!==t&&n===t&&j(t=>{let n=new Map(t);return n.set(e.value,r),n}),M.current.set(e.value,r)}},[i,A]);let N=le({visibleOptionCount:n,options:i,defaultValue:o,onChange:u,onCancel:c,onFocus:f,focusValue:m});q({isDisabled:e,disableSelection:g||(t?`numeric`:!1),state:N,options:i,isMultiSelect:!1,onUpFromFirstItem:v,onDownFromLastItem:y,onInputModeToggle:b,inputValues:A,imagesSelected:E,onEnterImageSelection:()=>{if(w&&Object.values(w).some(e=>e.type===`image`)){let e=S(Object.values(w),e=>e.type===`image`);return D(!0),k(e-1),!0}return!1}});let P={container:()=>({flexDirection:`column`}),highlightedText:()=>({bold:!0})};if(h===`expanded`){let t=N.options.length.toString().length;return(0,$.jsx)(d,{...P.container(),children:N.visibleOptions.map((n,a)=>{let o=n.index===N.visibleFromIndex,l=n.index===N.visibleToIndex-1,f=N.visibleToIndex<i.length,m=N.visibleFromIndex>0,h=N.visibleFromIndex+a+1,g=!e&&N.focusedValue===n.value,v=N.value===n.value;if(n.type===`input`){let e=A.has(n.value)?A.get(n.value):n.initialValue||``;return(0,$.jsx)(H,{option:n,isFocused:g,isSelected:v,shouldShowDownArrow:f&&l,shouldShowUpArrow:m&&o,maxIndexWidth:t,index:h,inputValue:e,onInputChange:e=>{j(t=>{let r=new Map(t);return r.set(n.value,e),r})},onSubmit:e=>{let t=w&&Object.values(w).some(e=>e.type===`image`);e.trim()||t||n.allowEmptySubmitToCancel?u?.(n.value):c?.()},onExit:c,layout:`expanded`,showLabel:_,onOpenEditor:x,resetCursorOnUpdate:n.resetCursorOnUpdate,onImagePaste:C,pastedContents:w,onRemoveImage:T,imagesSelected:E,selectedImageIndex:O,onImagesSelectedChange:D,onSelectedImageIndexChange:k},String(n.value))}let y=n.label;if(typeof n.label==`string`&&r&&n.label.includes(r)){let e=n.label,t=e.indexOf(r);y=(0,$.jsxs)($.Fragment,{children:[e.slice(0,t),(0,$.jsx)(p,{...P.highlightedText(),children:r}),e.slice(t+r.length)]})}let b=n.disabled===!0,S=b?void 0:v?`success`:g?`suggestion`:void 0;return(0,$.jsxs)(d,{flexDirection:`column`,flexShrink:0,children:[(0,$.jsx)(B,{isFocused:g,isSelected:v,shouldShowDownArrow:f&&l,shouldShowUpArrow:m&&o,children:(0,$.jsx)(p,{dimColor:b,color:S,children:y})}),n.description&&(0,$.jsx)(d,{paddingLeft:2,children:(0,$.jsx)(p,{dimColor:b||n.dimDescription!==!1,color:S,children:(0,$.jsx)(s,{children:n.description})})}),(0,$.jsx)(p,{children:` `})]},String(n.value))})})}if(h===`compact-vertical`){let n=t?0:N.options.length.toString().length;return(0,$.jsx)(d,{...P.container(),children:N.visibleOptions.map((a,o)=>{let l=a.index===N.visibleFromIndex,f=a.index===N.visibleToIndex-1,m=N.visibleToIndex<i.length,h=N.visibleFromIndex>0,g=N.visibleFromIndex+o+1,v=!e&&N.focusedValue===a.value,y=N.value===a.value;if(a.type===`input`){let e=A.has(a.value)?A.get(a.value):a.initialValue||``;return(0,$.jsx)(H,{option:a,isFocused:v,isSelected:y,shouldShowDownArrow:m&&f,shouldShowUpArrow:h&&l,maxIndexWidth:n,index:g,inputValue:e,onInputChange:e=>{j(t=>{let n=new Map(t);return n.set(a.value,e),n})},onSubmit:e=>{let t=w&&Object.values(w).some(e=>e.type===`image`);e.trim()||t||a.allowEmptySubmitToCancel?u?.(a.value):c?.()},onExit:c,layout:`compact`,showLabel:_,onOpenEditor:x,resetCursorOnUpdate:a.resetCursorOnUpdate,onImagePaste:C,pastedContents:w,onRemoveImage:T,imagesSelected:E,selectedImageIndex:O,onImagesSelectedChange:D,onSelectedImageIndexChange:k},String(a.value))}let b=a.label;if(typeof a.label==`string`&&r&&a.label.includes(r)){let e=a.label,t=e.indexOf(r);b=(0,$.jsxs)($.Fragment,{children:[e.slice(0,t),(0,$.jsx)(p,{...P.highlightedText(),children:r}),e.slice(t+r.length)]})}let S=a.disabled===!0;return(0,$.jsxs)(d,{flexDirection:`column`,flexShrink:0,children:[(0,$.jsxs)(B,{isFocused:v,isSelected:y,shouldShowDownArrow:m&&f,shouldShowUpArrow:h&&l,children:[!t&&(0,$.jsx)(p,{dimColor:!0,children:`${g}.`.padEnd(n+1)}),(0,$.jsx)(p,{dimColor:S,color:S?void 0:y?`success`:v?`suggestion`:void 0,children:b})]}),a.description&&(0,$.jsx)(d,{paddingLeft:t?4:n+4,children:(0,$.jsx)(p,{dimColor:S||a.dimDescription!==!1,color:S?void 0:y?`success`:v?`suggestion`:void 0,children:(0,$.jsx)(s,{children:a.description})})})]},String(a.value))})})}let F=t?0:N.options.length.toString().length,I=N.visibleOptions.some(e=>e.type===`input`),L=!_&&!I&&N.visibleOptions.some(e=>e.description),R=N.visibleOptions.map((t,n)=>{let a=t.index===N.visibleFromIndex,o=t.index===N.visibleToIndex-1,s=N.visibleToIndex<i.length,c=N.visibleFromIndex>0,l=N.visibleFromIndex+n+1,u=!e&&N.focusedValue===t.value,d=N.value===t.value,f=t.disabled===!0,m=t.label;if(typeof t.label==`string`&&r&&t.label.includes(r)){let e=t.label,n=e.indexOf(r);m=(0,$.jsxs)($.Fragment,{children:[e.slice(0,n),(0,$.jsx)(p,{...P.highlightedText(),children:r}),e.slice(n+r.length)]})}return{option:t,index:l,label:m,isFocused:u,isSelected:d,isOptionDisabled:f,shouldShowDownArrow:s&&o,shouldShowUpArrow:c&&a}});if(L){let e=Math.max(...R.map(e=>{if(e.option.type===`input`)return 0;let n=Z(e.option.label),r=t?0:F+2,i=e.isSelected?2:0;return 2+r+l(n)+i}));return(0,$.jsx)(d,{...P.container(),children:R.map(n=>{if(n.option.type===`input`)return null;let r=Z(n.option.label),i=t?0:F+2,o=n.isSelected?2:0,c=2+i+l(r)+o,u=e-c;return(0,$.jsxs)(fe,{isFocused:n.isFocused,children:[(0,$.jsxs)(d,{flexDirection:`row`,flexShrink:0,children:[n.isFocused?(0,$.jsx)(p,{color:`suggestion`,children:a.pointer}):n.shouldShowDownArrow?(0,$.jsx)(p,{dimColor:!0,children:a.arrowDown}):n.shouldShowUpArrow?(0,$.jsx)(p,{dimColor:!0,children:a.arrowUp}):(0,$.jsx)(p,{children:` `}),(0,$.jsx)(p,{children:` `}),(0,$.jsxs)(p,{dimColor:n.isOptionDisabled,color:n.isOptionDisabled?void 0:n.isSelected?`success`:n.isFocused?`suggestion`:void 0,children:[!t&&(0,$.jsx)(p,{dimColor:!0,children:`${n.index}.`.padEnd(F+2)}),n.label]}),n.isSelected&&(0,$.jsxs)(p,{color:`success`,children:[` `,a.tick]}),u>0&&(0,$.jsx)(p,{children:` `.repeat(u)})]}),(0,$.jsx)(d,{flexGrow:1,marginLeft:2,children:(0,$.jsx)(p,{wrap:`wrap`,dimColor:n.isOptionDisabled||n.option.dimDescription!==!1,color:n.isOptionDisabled?void 0:n.isSelected?`success`:n.isFocused?`suggestion`:void 0,children:(0,$.jsx)(s,{children:n.option.description||` `})})})]},String(n.option.value))})})}return(0,$.jsx)(d,{...P.container(),children:N.visibleOptions.map((n,a)=>{if(n.type===`input`){let t=A.has(n.value)?A.get(n.value):n.initialValue||``,r=n.index===N.visibleFromIndex,o=n.index===N.visibleToIndex-1,s=N.visibleToIndex<i.length,l=N.visibleFromIndex>0,d=N.visibleFromIndex+a+1;return(0,$.jsx)(H,{option:n,isFocused:!e&&N.focusedValue===n.value,isSelected:N.value===n.value,shouldShowDownArrow:s&&o,shouldShowUpArrow:l&&r,maxIndexWidth:F,index:d,inputValue:t,onInputChange:e=>{j(t=>{let r=new Map(t);return r.set(n.value,e),r})},onSubmit:e=>{let t=w&&Object.values(w).some(e=>e.type===`image`);e.trim()||t||n.allowEmptySubmitToCancel?u?.(n.value):c?.()},onExit:c,layout:`compact`,showLabel:_,onOpenEditor:x,resetCursorOnUpdate:n.resetCursorOnUpdate,onImagePaste:C,pastedContents:w,onRemoveImage:T,imagesSelected:E,selectedImageIndex:O,onImagesSelectedChange:D,onSelectedImageIndexChange:k},String(n.value))}let o=n.label;if(typeof n.label==`string`&&r&&n.label.includes(r)){let e=n.label,t=e.indexOf(r);o=(0,$.jsxs)($.Fragment,{children:[e.slice(0,t),(0,$.jsx)(p,{...P.highlightedText(),children:r}),e.slice(t+r.length)]})}let l=n.index===N.visibleFromIndex,f=n.index===N.visibleToIndex-1,m=N.visibleToIndex<i.length,h=N.visibleFromIndex>0,g=N.visibleFromIndex+a+1,v=!e&&N.focusedValue===n.value,y=N.value===n.value,b=n.disabled===!0;return(0,$.jsxs)(B,{isFocused:v,isSelected:y,shouldShowDownArrow:m&&f,shouldShowUpArrow:h&&l,children:[(0,$.jsxs)(d,{flexDirection:`row`,flexShrink:0,children:[!t&&(0,$.jsx)(p,{dimColor:!0,children:`${g}.`.padEnd(F+2)}),(0,$.jsxs)(p,{dimColor:b,color:b?void 0:y?`success`:v?`suggestion`:void 0,children:[o,_&&n.description&&(0,$.jsxs)(p,{dimColor:b||n.dimDescription!==!1,children:[` `,n.description]})]})]}),!_&&n.description&&(0,$.jsx)(d,{flexShrink:99,marginLeft:2,children:(0,$.jsx)(p,{wrap:`wrap-trim`,dimColor:b||n.dimDescription!==!1,color:b?void 0:y?`success`:v?`suggestion`:void 0,children:(0,$.jsx)(s,{children:n.description})})})]},String(n.value))})})}function fe({isFocused:e,children:t}){return(0,$.jsx)(d,{ref:c({line:0,column:0,active:e}),flexDirection:`row`,children:t})}var Q,$,pe=e((()=>{i(),Q=t(_(),1),y(),x(),G(),V(),re(),ue(),$=b()}));export{H as a,V as c,oe as i,pe as n,G as o,ce as r,B as s,de as t};
1
+ import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{n,t as r}from"./defineProperty-C-QyHrDq.js";import{n as i,t as a}from"./figures-5ThXQEtq.js";import{Bt as o,Ft as s,G as c,Gr as l,Gt as u,I as d,Lt as f,P as p,T as m,Wt as h,_ as g,ai as _,hn as v,t as y}from"./src-BX54x08P.js";import{t as b}from"./jsx-runtime-Bb4Xn-E0.js";import{$n as x,Qn as S}from"./settings-D4M13toi.js";import{Lu as C,Ru as w,hd as T,md as E,tb as D}from"./loadAgentsDir-bmpKLPdG.js";import{c as O,o as k,s as A}from"./stringUtils-Cs6E5f-B.js";import{D as j,O as M,n as N,t as P}from"./TextInput-ou7ZhpVY.js";import{i as F,t as I}from"./overlayContext-C5WPACKC.js";import{isDeepStrictEqual as L}from"util";import{pathToFileURL as R}from"url";function ee({imageId:e,backgroundColor:t,isSelected:n=!1}){let r=C(e),i=`[Image #${e}]`;if(r&&o()){let e=R(r).href;return(0,z.jsx)(f,{url:e,fallback:(0,z.jsx)(p,{backgroundColor:t,inverse:n,children:i}),children:(0,z.jsx)(p,{backgroundColor:t,inverse:n,bold:n,children:i})})}return(0,z.jsx)(p,{backgroundColor:t,inverse:n,children:i})}var z,te=e((()=>{y(),w(),z=b()}));function B({isFocused:e,isSelected:t,children:n,description:r,shouldShowDownArrow:i,shouldShowUpArrow:a,declareCursor:o}){return(0,ne.jsx)(g,{isFocused:e,isSelected:t,description:r,showScrollDown:i,showScrollUp:a,styled:!1,declareCursor:o,children:n})}var ne,V=e((()=>{y(),ne=b()}));function H({option:e,isFocused:t,isSelected:n,shouldShowDownArrow:r,shouldShowUpArrow:i,maxIndexWidth:a,index:o,inputValue:s,onInputChange:c,onSubmit:l,onExit:f,layout:g,children:_,showLabel:y=!1,onOpenEditor:b,resetCursorOnUpdate:x=!1,onImagePaste:S,pastedContents:C,onRemoveImage:w,imagesSelected:T,selectedImageIndex:D=0,onImagesSelectedChange:O,onSelectedImageIndexChange:k}){let A=C?Object.values(C).filter(e=>e.type===`image`):[],M=y||e.showLabelWithValue===!0,[N,F]=(0,U.useState)(s.length),I=(0,U.useRef)(!1);(0,U.useEffect)(()=>{x&&t&&(I.current?I.current=!1:F(s.length))},[x,t,s]),h(`chat:externalEditor`,()=>{b?.(s,c)},{context:`Chat`,isActive:t&&!!b}),h(`chat:imagePaste`,()=>{S&&j().then(e=>{e&&S(e.base64,e.mediaType,void 0,e.dimensions)})},{context:`Chat`,isActive:t&&!!S}),h(`attachments:remove`,()=>{A.length>0&&w&&w(A.at(-1).id)},{context:`Attachments`,isActive:t&&!T&&s===``&&A.length>0&&!!w}),u({"attachments:next":()=>{A.length>1&&k?.((D+1)%A.length)},"attachments:previous":()=>{A.length>1&&k?.((D-1+A.length)%A.length)},"attachments:remove":()=>{let e=A[D];e&&w&&(w(e.id),A.length<=1?O?.(!1):k?.(Math.min(D,A.length-2)))},"attachments:exit":()=>{O?.(!1)}},{context:`Attachments`,isActive:t&&!!T}),v((e,t)=>{t.upArrow&&O?.(!1)},{isActive:t&&!!T}),(0,U.useEffect)(()=>{!t&&T&&O?.(!1)},[t,T,O]);let L=g===`expanded`?a+3:a+4;return(0,W.jsxs)(d,{flexDirection:`column`,flexShrink:0,children:[(0,W.jsx)(B,{isFocused:t,isSelected:n,shouldShowDownArrow:r,shouldShowUpArrow:i,declareCursor:!1,children:(0,W.jsxs)(d,{flexDirection:`row`,flexShrink:g===`compact`?0:void 0,children:[(0,W.jsx)(p,{dimColor:!0,children:`${o}.`.padEnd(a+2)}),_,M?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(p,{color:t?`suggestion`:void 0,children:e.label}),t?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(p,{color:`suggestion`,children:e.labelValueSeparator??`, `}),(0,W.jsx)(P,{value:s,onChange:t=>{I.current=!0,c(t),e.onChange(t)},onSubmit:l,onExit:f,placeholder:e.placeholder,focus:!T,showCursor:!0,multiline:!0,cursorOffset:N,onChangeCursorOffset:F,columns:80,onImagePaste:S,onPaste:t=>{I.current=!0;let n=s.slice(0,N),r=s.slice(N),i=n+t+r;c(i),e.onChange(i),F(n.length+t.length)}})]}):s&&(0,W.jsxs)(p,{children:[e.labelValueSeparator??`, `,s]})]}):t?(0,W.jsx)(P,{value:s,onChange:t=>{I.current=!0,c(t),e.onChange(t)},onSubmit:l,onExit:f,placeholder:e.placeholder||(typeof e.label==`string`?e.label:void 0),focus:!T,showCursor:!0,multiline:!0,cursorOffset:N,onChangeCursorOffset:F,columns:80,onImagePaste:S,onPaste:t=>{I.current=!0;let n=s.slice(0,N),r=s.slice(N),i=n+t+r;c(i),e.onChange(i),F(n.length+t.length)}}):(0,W.jsx)(p,{color:s?void 0:`inactive`,children:s||e.placeholder||e.label})]})}),e.description&&(0,W.jsx)(d,{paddingLeft:L,children:(0,W.jsx)(p,{dimColor:e.dimDescription!==!1,color:n?`success`:t?`suggestion`:void 0,children:e.description})}),A.length>0&&(0,W.jsxs)(d,{flexDirection:`row`,gap:1,paddingLeft:L,children:[A.map((e,t)=>(0,W.jsx)(ee,{imageId:e.id,isSelected:!!T&&t===D},e.id)),(0,W.jsx)(d,{flexGrow:1,justifyContent:`flex-start`,flexDirection:`row`,children:(0,W.jsx)(p,{dimColor:!0,children:T?(0,W.jsxs)(m,{children:[A.length>1&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(E,{action:`attachments:next`,context:`Attachments`,fallback:`→`,description:`next`}),(0,W.jsx)(E,{action:`attachments:previous`,context:`Attachments`,fallback:`←`,description:`prev`})]}),(0,W.jsx)(E,{action:`attachments:remove`,context:`Attachments`,fallback:`backspace`,description:`remove`}),(0,W.jsx)(E,{action:`attachments:exit`,context:`Attachments`,fallback:`esc`,description:`cancel`})]}):t?`(↓ to select)`:null})})]}),g===`expanded`&&(0,W.jsx)(p,{children:` `})]})}var U,W,G=e((()=>{U=t(_(),1),y(),D(),M(),te(),T(),N(),V(),W=b()})),K,q,re=e((()=>{K=t(_(),1),I(),y(),D(),k(),q=({isDisabled:e=!1,disableSelection:t=!1,state:n,options:r,isMultiSelect:i=!1,onUpFromFirstItem:a,onDownFromLastItem:o,onInputModeToggle:s,inputValues:c,imagesSelected:l=!1,onEnterImageSelection:d})=>{F(`select`,!!n.onCancel);let f=(0,K.useMemo)(()=>r.find(e=>e.value===n.focusedValue)?.type===`input`,[r,n.focusedValue]);u((0,K.useMemo)(()=>{let e={};return f||(e[`select:next`]=()=>{if(o){let e=r[r.length-1];if(e&&n.focusedValue===e.value){o();return}}n.focusNextOption()},e[`select:previous`]=()=>{if(a&&n.visibleFromIndex===0){let e=r[0];if(e&&n.focusedValue===e.value){a();return}}n.focusPreviousOption()},e[`select:accept`]=()=>{t!==!0&&n.focusedValue!==void 0&&r.find(e=>e.value===n.focusedValue)?.disabled!==!0&&(n.selectFocusedOption?.(),n.onChange?.(n.focusedValue))}),n.onCancel&&(e[`select:cancel`]=()=>{n.onCancel()}),e},[r,n,o,a,f,t]),{context:`Select`,isActive:!e}),v((e,u,f)=>{let p=A(e),m=r.find(e=>e.value===n.focusedValue),h=m?.type===`input`;if(u.tab&&s&&n.focusedValue!==void 0){s(n.focusedValue);return}if(h){if(l)return;if(u.downArrow&&d?.()){f.stopImmediatePropagation();return}if(u.downArrow||u.ctrl&&e===`n`){if(o){let e=r[r.length-1];if(e&&n.focusedValue===e.value){o(),f.stopImmediatePropagation();return}}n.focusNextOption(),f.stopImmediatePropagation();return}if(u.upArrow||u.ctrl&&e===`p`){if(a&&n.visibleFromIndex===0){let e=r[0];if(e&&n.focusedValue===e.value){a(),f.stopImmediatePropagation();return}}n.focusPreviousOption(),f.stopImmediatePropagation();return}return}if(u.pageDown&&n.focusNextPage(),u.pageUp&&n.focusPreviousPage(),t!==!0&&(i&&O(e)===` `&&n.focusedValue!==void 0&&m?.disabled!==!0&&(n.selectFocusedOption?.(),n.onChange?.(n.focusedValue)),t!==`numeric`&&/^[0-9]+$/.test(p))){let e=parseInt(p,10)-1;if(e>=0&&e<n.options.length){let t=n.options[e];if(t.disabled===!0)return;if(t.type===`input`){if((c?.get(t.value)??``).trim()){n.onChange?.(t.value);return}if(t.allowEmptySubmitToCancel){n.onChange?.(t.value);return}n.focusOption(t.value);return}n.onChange?.(t.value);return}}},{isActive:!e})}})),ie,ae=e((()=>{n(),ie=class extends Map{constructor(e){let t=[],n,i,a,o=0;for(let r of e){let e={label:r.label,value:r.value,description:r.description,previous:a,next:void 0,index:o};a&&(a.next=e),n||(n=e),i=e,t.push([r.value,e]),o++,a=e}super(t),r(this,`first`,void 0),r(this,`last`,void 0),this.first=n,this.last=i}}}));function oe({visibleOptionCount:e=5,options:t,initialFocusValue:n,onFocus:r,focusValue:i}){let[a,o]=(0,J.useReducer)(se,{visibleOptionCount:e,options:t,initialFocusValue:i||n},Y),s=(0,J.useRef)(r);s.current=r;let[c,l]=(0,J.useState)(t);t!==c&&!L(t,c)&&(o({type:`reset`,state:Y({visibleOptionCount:e,options:t,initialFocusValue:i??a.focusedValue??n,currentViewport:{visibleFromIndex:a.visibleFromIndex,visibleToIndex:a.visibleToIndex}})}),l(t));let u=(0,J.useCallback)(()=>{o({type:`focus-next-option`})},[]),d=(0,J.useCallback)(()=>{o({type:`focus-previous-option`})},[]),f=(0,J.useCallback)(()=>{o({type:`focus-next-page`})},[]),p=(0,J.useCallback)(()=>{o({type:`focus-previous-page`})},[]),m=(0,J.useCallback)(e=>{e!==void 0&&o({type:`set-focus`,value:e})},[]),h=(0,J.useMemo)(()=>t.map((e,t)=>({...e,index:t})).slice(a.visibleFromIndex,a.visibleToIndex),[t,a.visibleFromIndex,a.visibleToIndex]),g=(0,J.useMemo)(()=>{if(a.focusedValue!==void 0)return t.some(e=>e.value===a.focusedValue)?a.focusedValue:t[0]?.value},[a.focusedValue,t]),_=(0,J.useMemo)(()=>t.find(e=>e.value===g)?.type===`input`,[g,t]);return(0,J.useEffect)(()=>{g!==void 0&&s.current?.(g)},[g]),(0,J.useEffect)(()=>{i!==void 0&&o({type:`set-focus`,value:i})},[i]),{focusedValue:g,focusedIndex:(0,J.useMemo)(()=>{if(g===void 0)return 0;let e=t.findIndex(e=>e.value===g);return e>=0?e+1:0},[g,t]),visibleFromIndex:a.visibleFromIndex,visibleToIndex:a.visibleToIndex,visibleOptions:h,isInInput:_??!1,focusNextOption:u,focusPreviousOption:d,focusNextPage:f,focusPreviousPage:p,focusOption:m,options:t}}var J,se,Y,ce=e((()=>{J=t(_(),1),ae(),se=(e,t)=>{switch(t.type){case`focus-next-option`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=t.next||e.optionMap.first;if(!n)return e;if(!t.next&&n===e.optionMap.first)return{...e,focusedValue:n.value,visibleFromIndex:0,visibleToIndex:e.visibleOptionCount};if(!(n.index>=e.visibleToIndex))return{...e,focusedValue:n.value};let r=Math.min(e.optionMap.size,e.visibleToIndex+1),i=r-e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:i,visibleToIndex:r}}case`focus-previous-option`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=t.previous||e.optionMap.last;if(!n)return e;if(!t.previous&&n===e.optionMap.last){let t=e.optionMap.size,r=Math.max(0,t-e.visibleOptionCount);return{...e,focusedValue:n.value,visibleFromIndex:r,visibleToIndex:t}}if(!(n.index<=e.visibleFromIndex))return{...e,focusedValue:n.value};let r=Math.max(0,e.visibleFromIndex-1),i=r+e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:r,visibleToIndex:i}}case`focus-next-page`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=Math.min(e.optionMap.size-1,t.index+e.visibleOptionCount),r=e.optionMap.first;for(;r&&r.index<n&&r.next;)r=r.next;if(!r)return e;let i=Math.min(e.optionMap.size,r.index+1),a=Math.max(0,i-e.visibleOptionCount);return{...e,focusedValue:r.value,visibleFromIndex:a,visibleToIndex:i}}case`focus-previous-page`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=Math.max(0,t.index-e.visibleOptionCount),r=e.optionMap.first;for(;r&&r.index<n&&r.next;)r=r.next;if(!r)return e;let i=Math.max(0,r.index),a=Math.min(e.optionMap.size,i+e.visibleOptionCount);return{...e,focusedValue:r.value,visibleFromIndex:i,visibleToIndex:a}}case`reset`:return t.state;case`set-focus`:{if(e.focusedValue===t.value)return e;let n=e.optionMap.get(t.value);if(!n)return e;if(n.index>=e.visibleFromIndex&&n.index<e.visibleToIndex)return{...e,focusedValue:t.value};let r,i;return n.index<e.visibleFromIndex?(r=n.index,i=Math.min(e.optionMap.size,r+e.visibleOptionCount)):(i=Math.min(e.optionMap.size,n.index+1),r=Math.max(0,i-e.visibleOptionCount)),{...e,focusedValue:t.value,visibleFromIndex:r,visibleToIndex:i}}}},Y=({visibleOptionCount:e,options:t,initialFocusValue:n,currentViewport:r})=>{let i=typeof e==`number`?Math.min(e,t.length):t.length,a=new ie(t),o=n!==void 0&&a.get(n),s=o?n:a.first?.value,c=0,l=i;if(o){let e=o.index;r?e>=r.visibleFromIndex&&e<r.visibleToIndex?(c=r.visibleFromIndex,l=Math.min(a.size,r.visibleToIndex)):e<r.visibleFromIndex?(c=e,l=Math.min(a.size,c+i)):(l=Math.min(a.size,e+1),c=Math.max(0,l-i)):e>=i&&(l=Math.min(a.size,e+1),c=Math.max(0,l-i)),c=Math.max(0,Math.min(c,a.size-1)),l=Math.min(a.size,Math.max(i,l))}return{optionMap:a,visibleOptionCount:i,focusedValue:s,visibleFromIndex:c,visibleToIndex:l}}}));function le({visibleOptionCount:e=5,options:t,defaultValue:n,onChange:r,onCancel:i,onFocus:a,focusValue:o}){let[s,c]=(0,X.useState)(n),l=oe({visibleOptionCount:e,options:t,initialFocusValue:void 0,onFocus:a,focusValue:o}),u=(0,X.useCallback)(()=>{c(l.focusedValue)},[l.focusedValue]);return{...l,value:s,selectFocusedOption:u,onChange:r,onCancel:i}}var X,ue=e((()=>{X=t(_(),1),ce()}));function Z(e){return typeof e==`string`?e:typeof e==`number`?String(e):e?Array.isArray(e)?e.map(Z).join(``):Q.isValidElement(e)?Z(e.props.children):``:``}function de({isDisabled:e=!1,hideIndexes:t=!1,visibleOptionCount:n=5,highlightText:r,options:i,defaultValue:o,onCancel:c,onChange:u,onFocus:f,defaultFocusValue:m,layout:h=`compact`,disableSelection:g=!1,inlineDescriptions:_=!1,onUpFromFirstItem:v,onDownFromLastItem:y,onInputModeToggle:b,onOpenEditor:x,onImagePaste:C,pastedContents:w,onRemoveImage:T}){let[E,D]=(0,Q.useState)(!1),[O,k]=(0,Q.useState)(0),[A,j]=(0,Q.useState)(()=>{let e=new Map;return i.forEach(t=>{t.type===`input`&&t.initialValue&&e.set(t.value,t.initialValue)}),e}),M=(0,Q.useRef)(new Map);(0,Q.useEffect)(()=>{for(let e of i)if(e.type===`input`&&e.initialValue!==void 0){let t=M.current.get(e.value)??``,n=A.get(e.value)??``,r=e.initialValue;r!==t&&n===t&&j(t=>{let n=new Map(t);return n.set(e.value,r),n}),M.current.set(e.value,r)}},[i,A]);let N=le({visibleOptionCount:n,options:i,defaultValue:o,onChange:u,onCancel:c,onFocus:f,focusValue:m});q({isDisabled:e,disableSelection:g||(t?`numeric`:!1),state:N,options:i,isMultiSelect:!1,onUpFromFirstItem:v,onDownFromLastItem:y,onInputModeToggle:b,inputValues:A,imagesSelected:E,onEnterImageSelection:()=>{if(w&&Object.values(w).some(e=>e.type===`image`)){let e=S(Object.values(w),e=>e.type===`image`);return D(!0),k(e-1),!0}return!1}});let P={container:()=>({flexDirection:`column`}),highlightedText:()=>({bold:!0})};if(h===`expanded`){let t=N.options.length.toString().length;return(0,$.jsx)(d,{...P.container(),children:N.visibleOptions.map((n,a)=>{let o=n.index===N.visibleFromIndex,l=n.index===N.visibleToIndex-1,f=N.visibleToIndex<i.length,m=N.visibleFromIndex>0,h=N.visibleFromIndex+a+1,g=!e&&N.focusedValue===n.value,v=N.value===n.value;if(n.type===`input`){let e=A.has(n.value)?A.get(n.value):n.initialValue||``;return(0,$.jsx)(H,{option:n,isFocused:g,isSelected:v,shouldShowDownArrow:f&&l,shouldShowUpArrow:m&&o,maxIndexWidth:t,index:h,inputValue:e,onInputChange:e=>{j(t=>{let r=new Map(t);return r.set(n.value,e),r})},onSubmit:e=>{let t=w&&Object.values(w).some(e=>e.type===`image`);e.trim()||t||n.allowEmptySubmitToCancel?u?.(n.value):c?.()},onExit:c,layout:`expanded`,showLabel:_,onOpenEditor:x,resetCursorOnUpdate:n.resetCursorOnUpdate,onImagePaste:C,pastedContents:w,onRemoveImage:T,imagesSelected:E,selectedImageIndex:O,onImagesSelectedChange:D,onSelectedImageIndexChange:k},String(n.value))}let y=n.label;if(typeof n.label==`string`&&r&&n.label.includes(r)){let e=n.label,t=e.indexOf(r);y=(0,$.jsxs)($.Fragment,{children:[e.slice(0,t),(0,$.jsx)(p,{...P.highlightedText(),children:r}),e.slice(t+r.length)]})}let b=n.disabled===!0,S=b?void 0:v?`success`:g?`suggestion`:void 0;return(0,$.jsxs)(d,{flexDirection:`column`,flexShrink:0,children:[(0,$.jsx)(B,{isFocused:g,isSelected:v,shouldShowDownArrow:f&&l,shouldShowUpArrow:m&&o,children:(0,$.jsx)(p,{dimColor:b,color:S,children:y})}),n.description&&(0,$.jsx)(d,{paddingLeft:2,children:(0,$.jsx)(p,{dimColor:b||n.dimDescription!==!1,color:S,children:(0,$.jsx)(s,{children:n.description})})}),(0,$.jsx)(p,{children:` `})]},String(n.value))})})}if(h===`compact-vertical`){let n=t?0:N.options.length.toString().length;return(0,$.jsx)(d,{...P.container(),children:N.visibleOptions.map((a,o)=>{let l=a.index===N.visibleFromIndex,f=a.index===N.visibleToIndex-1,m=N.visibleToIndex<i.length,h=N.visibleFromIndex>0,g=N.visibleFromIndex+o+1,v=!e&&N.focusedValue===a.value,y=N.value===a.value;if(a.type===`input`){let e=A.has(a.value)?A.get(a.value):a.initialValue||``;return(0,$.jsx)(H,{option:a,isFocused:v,isSelected:y,shouldShowDownArrow:m&&f,shouldShowUpArrow:h&&l,maxIndexWidth:n,index:g,inputValue:e,onInputChange:e=>{j(t=>{let n=new Map(t);return n.set(a.value,e),n})},onSubmit:e=>{let t=w&&Object.values(w).some(e=>e.type===`image`);e.trim()||t||a.allowEmptySubmitToCancel?u?.(a.value):c?.()},onExit:c,layout:`compact`,showLabel:_,onOpenEditor:x,resetCursorOnUpdate:a.resetCursorOnUpdate,onImagePaste:C,pastedContents:w,onRemoveImage:T,imagesSelected:E,selectedImageIndex:O,onImagesSelectedChange:D,onSelectedImageIndexChange:k},String(a.value))}let b=a.label;if(typeof a.label==`string`&&r&&a.label.includes(r)){let e=a.label,t=e.indexOf(r);b=(0,$.jsxs)($.Fragment,{children:[e.slice(0,t),(0,$.jsx)(p,{...P.highlightedText(),children:r}),e.slice(t+r.length)]})}let S=a.disabled===!0;return(0,$.jsxs)(d,{flexDirection:`column`,flexShrink:0,children:[(0,$.jsxs)(B,{isFocused:v,isSelected:y,shouldShowDownArrow:m&&f,shouldShowUpArrow:h&&l,children:[!t&&(0,$.jsx)(p,{dimColor:!0,children:`${g}.`.padEnd(n+1)}),(0,$.jsx)(p,{dimColor:S,color:S?void 0:y?`success`:v?`suggestion`:void 0,children:b})]}),a.description&&(0,$.jsx)(d,{paddingLeft:t?4:n+4,children:(0,$.jsx)(p,{dimColor:S||a.dimDescription!==!1,color:S?void 0:y?`success`:v?`suggestion`:void 0,children:(0,$.jsx)(s,{children:a.description})})})]},String(a.value))})})}let F=t?0:N.options.length.toString().length,I=N.visibleOptions.some(e=>e.type===`input`),L=!_&&!I&&N.visibleOptions.some(e=>e.description),R=N.visibleOptions.map((t,n)=>{let a=t.index===N.visibleFromIndex,o=t.index===N.visibleToIndex-1,s=N.visibleToIndex<i.length,c=N.visibleFromIndex>0,l=N.visibleFromIndex+n+1,u=!e&&N.focusedValue===t.value,d=N.value===t.value,f=t.disabled===!0,m=t.label;if(typeof t.label==`string`&&r&&t.label.includes(r)){let e=t.label,n=e.indexOf(r);m=(0,$.jsxs)($.Fragment,{children:[e.slice(0,n),(0,$.jsx)(p,{...P.highlightedText(),children:r}),e.slice(n+r.length)]})}return{option:t,index:l,label:m,isFocused:u,isSelected:d,isOptionDisabled:f,shouldShowDownArrow:s&&o,shouldShowUpArrow:c&&a}});if(L){let e=Math.max(...R.map(e=>{if(e.option.type===`input`)return 0;let n=Z(e.option.label),r=t?0:F+2,i=e.isSelected?2:0;return 2+r+l(n)+i}));return(0,$.jsx)(d,{...P.container(),children:R.map(n=>{if(n.option.type===`input`)return null;let r=Z(n.option.label),i=t?0:F+2,o=n.isSelected?2:0,c=2+i+l(r)+o,u=e-c;return(0,$.jsxs)(fe,{isFocused:n.isFocused,children:[(0,$.jsxs)(d,{flexDirection:`row`,flexShrink:0,children:[n.isFocused?(0,$.jsx)(p,{color:`suggestion`,children:a.pointer}):n.shouldShowDownArrow?(0,$.jsx)(p,{dimColor:!0,children:a.arrowDown}):n.shouldShowUpArrow?(0,$.jsx)(p,{dimColor:!0,children:a.arrowUp}):(0,$.jsx)(p,{children:` `}),(0,$.jsx)(p,{children:` `}),(0,$.jsxs)(p,{dimColor:n.isOptionDisabled,color:n.isOptionDisabled?void 0:n.isSelected?`success`:n.isFocused?`suggestion`:void 0,children:[!t&&(0,$.jsx)(p,{dimColor:!0,children:`${n.index}.`.padEnd(F+2)}),n.label]}),n.isSelected&&(0,$.jsxs)(p,{color:`success`,children:[` `,a.tick]}),u>0&&(0,$.jsx)(p,{children:` `.repeat(u)})]}),(0,$.jsx)(d,{flexGrow:1,marginLeft:2,children:(0,$.jsx)(p,{wrap:`wrap`,dimColor:n.isOptionDisabled||n.option.dimDescription!==!1,color:n.isOptionDisabled?void 0:n.isSelected?`success`:n.isFocused?`suggestion`:void 0,children:(0,$.jsx)(s,{children:n.option.description||` `})})})]},String(n.option.value))})})}return(0,$.jsx)(d,{...P.container(),children:N.visibleOptions.map((n,a)=>{if(n.type===`input`){let t=A.has(n.value)?A.get(n.value):n.initialValue||``,r=n.index===N.visibleFromIndex,o=n.index===N.visibleToIndex-1,s=N.visibleToIndex<i.length,l=N.visibleFromIndex>0,d=N.visibleFromIndex+a+1;return(0,$.jsx)(H,{option:n,isFocused:!e&&N.focusedValue===n.value,isSelected:N.value===n.value,shouldShowDownArrow:s&&o,shouldShowUpArrow:l&&r,maxIndexWidth:F,index:d,inputValue:t,onInputChange:e=>{j(t=>{let r=new Map(t);return r.set(n.value,e),r})},onSubmit:e=>{let t=w&&Object.values(w).some(e=>e.type===`image`);e.trim()||t||n.allowEmptySubmitToCancel?u?.(n.value):c?.()},onExit:c,layout:`compact`,showLabel:_,onOpenEditor:x,resetCursorOnUpdate:n.resetCursorOnUpdate,onImagePaste:C,pastedContents:w,onRemoveImage:T,imagesSelected:E,selectedImageIndex:O,onImagesSelectedChange:D,onSelectedImageIndexChange:k},String(n.value))}let o=n.label;if(typeof n.label==`string`&&r&&n.label.includes(r)){let e=n.label,t=e.indexOf(r);o=(0,$.jsxs)($.Fragment,{children:[e.slice(0,t),(0,$.jsx)(p,{...P.highlightedText(),children:r}),e.slice(t+r.length)]})}let l=n.index===N.visibleFromIndex,f=n.index===N.visibleToIndex-1,m=N.visibleToIndex<i.length,h=N.visibleFromIndex>0,g=N.visibleFromIndex+a+1,v=!e&&N.focusedValue===n.value,y=N.value===n.value,b=n.disabled===!0;return(0,$.jsxs)(B,{isFocused:v,isSelected:y,shouldShowDownArrow:m&&f,shouldShowUpArrow:h&&l,children:[(0,$.jsxs)(d,{flexDirection:`row`,flexShrink:0,children:[!t&&(0,$.jsx)(p,{dimColor:!0,children:`${g}.`.padEnd(F+2)}),(0,$.jsxs)(p,{dimColor:b,color:b?void 0:y?`success`:v?`suggestion`:void 0,children:[o,_&&n.description&&(0,$.jsxs)(p,{dimColor:b||n.dimDescription!==!1,children:[` `,n.description]})]})]}),!_&&n.description&&(0,$.jsx)(d,{flexShrink:99,marginLeft:2,children:(0,$.jsx)(p,{wrap:`wrap-trim`,dimColor:b||n.dimDescription!==!1,color:b?void 0:y?`success`:v?`suggestion`:void 0,children:(0,$.jsx)(s,{children:n.description})})})]},String(n.value))})})}function fe({isFocused:e,children:t}){return(0,$.jsx)(d,{ref:c({line:0,column:0,active:e}),flexDirection:`row`,children:t})}var Q,$,pe=e((()=>{i(),Q=t(_(),1),y(),x(),G(),V(),re(),ue(),$=b()}));export{H as a,V as c,oe as i,pe as n,G as o,ce as r,B as s,de as t};
@@ -0,0 +1 @@
1
+ import{Am as e,km as t}from"./loadAgentsDir-bmpKLPdG.js";t();export{e as registerSessionFileAccessHooks};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{GS as t,X as n,Z as r,ty as i}from"./loadAgentsDir-uuZYOgKn.js";import{i as a,l as o,t as s,u as c}from"./instinctParser-Dt-lqnDe.js";function l(e){h.set(e.name,e),g||(g=e.name)}function u(e){if(!h.has(e))throw Error(`Observer backend "${e}" is not registered`);g=e}function d(){let e=g?h.get(g):void 0;if(!e)throw Error(`No observer backend is active — register one before analyzing observations`);return e}async function f(e,t){return Promise.resolve(d().analyze(e,t))}function p(){let e=process.env.SKILL_LEARNING_OBSERVER_BACKEND?.trim();return e&&h.has(e)?e:void 0}function m(){let e=p();return e&&u(e),d()}var h,g,_=e((()=>{h=new Map})),v,y=e((()=>{v=[`workflow`,`testing`,`debugging`,`code-style`,`security`,`git`,`project`]}));async function b(e,n){if(e.length===0)return[];if(Date.now()<L)return x(e,n);let i=e.slice(-30),a=S(i),s=P(o().llm.timeoutMs),c;try{let e=await r({systemPrompt:t([R]),userPrompt:a,signal:s,options:{querySource:`skill_learning_observer`,enablePromptCaching:!0,agents:[],isNonInteractiveSession:!0,hasAppendSystemPrompt:!1,mcpTools:[]}});I=0,c=T(e.message?.content)}catch{return I++,I>=o().llm.failureThreshold&&(L=Date.now()+o().llm.circuitCooldownMs),x(e,n)}let l=E(c,n,i);return l.length===0?(I++,I>=o().llm.failureThreshold&&(L=Date.now()+o().llm.circuitCooldownMs),x(e,n)):l}async function x(e,t){try{let{heuristicObserverBackend:n}=await import(`./sessionObserver-BZVgzp3W.js`),r=n.analyze(e,t);return Array.isArray(r)?r:await r}catch{return[]}}function S(e){return`Observations (chronological, newest last):\n${e.map((e,t)=>C(e,t)).join(`
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{GS as t,X as n,Z as r,ty as i}from"./loadAgentsDir-bmpKLPdG.js";import{i as a,l as o,t as s,u as c}from"./instinctParser-Dt-lqnDe.js";function l(e){h.set(e.name,e),g||(g=e.name)}function u(e){if(!h.has(e))throw Error(`Observer backend "${e}" is not registered`);g=e}function d(){let e=g?h.get(g):void 0;if(!e)throw Error(`No observer backend is active — register one before analyzing observations`);return e}async function f(e,t){return Promise.resolve(d().analyze(e,t))}function p(){let e=process.env.SKILL_LEARNING_OBSERVER_BACKEND?.trim();return e&&h.has(e)?e:void 0}function m(){let e=p();return e&&u(e),d()}var h,g,_=e((()=>{h=new Map})),v,y=e((()=>{v=[`workflow`,`testing`,`debugging`,`code-style`,`security`,`git`,`project`]}));async function b(e,n){if(e.length===0)return[];if(Date.now()<L)return x(e,n);let i=e.slice(-30),a=S(i),s=P(o().llm.timeoutMs),c;try{let e=await r({systemPrompt:t([R]),userPrompt:a,signal:s,options:{querySource:`skill_learning_observer`,enablePromptCaching:!0,agents:[],isNonInteractiveSession:!0,hasAppendSystemPrompt:!1,mcpTools:[]}});I=0,c=T(e.message?.content)}catch{return I++,I>=o().llm.failureThreshold&&(L=Date.now()+o().llm.circuitCooldownMs),x(e,n)}let l=E(c,n,i);return l.length===0?(I++,I>=o().llm.failureThreshold&&(L=Date.now()+o().llm.circuitCooldownMs),x(e,n)):l}async function x(e,t){try{let{heuristicObserverBackend:n}=await import(`./sessionObserver-qYpA90El.js`),r=n.analyze(e,t);return Array.isArray(r)?r:await r}catch{return[]}}function S(e){return`Observations (chronological, newest last):\n${e.map((e,t)=>C(e,t)).join(`
2
2
  `)}\n\nExtract up to ${F} atomic instincts. JSON array only.`}function C(e,t){let n=[`#${t+1}`,`event=${e.event}`];return e.toolName&&n.push(`tool=${e.toolName}`),e.outcome&&n.push(`outcome=${e.outcome}`),e.messageText&&n.push(`text=${JSON.stringify(w(e.messageText,200))}`),e.toolInput&&n.push(`in=${JSON.stringify(w(e.toolInput,120))}`),e.toolOutput&&n.push(`out=${JSON.stringify(w(e.toolOutput,120))}`),n.join(` | `)}function w(e,t){return e.length<=t?e:`${e.slice(0,t)}…`}function T(e){if(!Array.isArray(e))return``;let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;e.type===`text`&&typeof e.text==`string`&&t.push(e.text)}return t.join(``).trim()}function E(e,t,n){let r=D(e);if(!r)return[];let i;try{i=JSON.parse(r)}catch{return[]}if(!Array.isArray(i))return[];let a=n.map(e=>e.id),o=[];for(let e of i.slice(0,F)){let n=O(e,t,a);n&&o.push(n)}return o}function D(e){if(!e)return;let t=e.indexOf(`[`),n=e.lastIndexOf(`]`);if(!(t<0||n<=t))return e.slice(t,n+1)}function O(e,t,n){if(!e||typeof e!=`object`)return;let r=e,i=k(r.trigger,80),a=k(r.action,120);if(!i||!a)return;let o=N(r.evidence);if(o.length!==0)return{trigger:i,action:a,confidence:A(r.confidence),domain:j(r.domain),source:`session-observation`,scope:M(r.scope),projectId:t?.project?.projectId,projectName:t?.project?.projectName,evidence:o,observationIds:n}}function k(e,t){if(typeof e!=`string`)return;let n=e.trim();if(n)return n.length>t?n.slice(0,t):n}function A(e){return typeof e!=`number`||!Number.isFinite(e)?.5:e<0?0:e>1?1:e}function j(e){return typeof e==`string`&&v.includes(e)?e:`project`}function M(e){return e===`global`?`global`:`project`}function N(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(typeof n!=`string`)continue;let e=n.trim();if(e&&(t.push(e.length>200?`${e.slice(0,200)}…`:e),t.length===3))break}return t}function P(e){return AbortSignal.timeout(e)}var F,I,L,R,z,B=e((()=>{n(),i(),c(),y(),F=3,I=0,L=0,R=`You analyse a short sequence of observations from a coding-assistant session (user messages, tool invocations with outcomes, assistant messages) and extract atomic, reusable "instincts" — behavioural patterns that would help the assistant act correctly in future similar situations.
3
3
 
4
4
  Respond with ONLY a JSON array (no prose, no code fences, no commentary). Each item must match this schema:
@@ -0,0 +1 @@
1
+ import{n as e,r as t}from"./sessionObserver-DBoZUvWL.js";t();export{e as heuristicObserverBackend};
@@ -0,0 +1 @@
1
+ import{Cr as e,Wr as t,gr as n}from"./loadAgentsDir-bmpKLPdG.js";n();export{e as linkSessionToPR,t as recordTranscript};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t,t as n}from"./memoize-BK3gG5ob.js";import{l as r,o as i}from"./envUtils-QyzA_cFM.js";import{i as a,l as o,n as s}from"./esm-lWlUmoUA.js";import{Kt as c,Xt as l,qt as u}from"./settings-D4M13toi.js";import{$ as d,E as f,F as p,Pt as m,at as ee}from"./state-CXY-q5gr.js";import{C as h,I as te,S as ne,c as re,i as ie,x as g}from"./debug-2pVES-2G.js";import{d as ae,l as oe}from"./config-BDn2YIjC.js";import{i as se,t as ce}from"./execFileNoThrow-DXSEj8ZO.js";import{r as le,t as ue}from"./genericProcessUtils-GqURdVAv.js";import{extname as de}from"path";import"fs";import{createHash as fe}from"crypto";import{stat as pe}from"fs/promises";import{AsyncLocalStorage as _}from"async_hooks";function me(e){return!1}var he=e((()=>{}));function ge(e){return e.startsWith(`mcp__`)?`mcp_tool`:e}function v(){return r(process.env.OTEL_LOG_TOOL_DETAILS)}function _e(e,t){return!!(process.env.WORKMATE_ENTRYPOINT===`local-agent`||e===`claudeai-proxy`||t&&me(t))}function ve(e,t,n){let r=ye(e);return!r||!x.has(r.serverName)&&!_e(t,n)?{}:{mcpServerName:r.serverName,mcpToolName:r.mcpToolName}}function ye(e){if(!e.startsWith(`mcp__`))return;let t=e.split(`__`);if(t.length<3)return;let n=t[1],r=t.slice(2).join(`__`);if(!(!n||!r))return{serverName:n,mcpToolName:r}}function be(e,t){if(e===`Skill`&&typeof t==`object`&&t&&`skill`in t&&typeof t.skill==`string`)return t.skill}function y(e,t=0){if(typeof e==`string`)return e.length>Ce?`${e.slice(0,we)}…[${e.length} chars]`:e;if(typeof e==`number`||typeof e==`boolean`||e==null)return e;if(t>=Te)return`<nested>`;if(Array.isArray(e)){let n=e.slice(0,C).map(e=>y(e,t+1));return e.length>C&&n.push(`…[${e.length} items]`),n}if(typeof e==`object`){let n=Object.entries(e).filter(([e])=>!e.startsWith(`_`)),r=n.slice(0,C).map(([e,n])=>[e,y(n,t+1)]);return n.length>C&&r.push([`…`,`${n.length} keys`]),Object.fromEntries(r)}return String(e)}function xe(e){if(!v())return;let t=h(y(e));return t.length>S&&(t=`${t.slice(0,S)}…[truncated]`),t}function b(e){let t=de(e).toLowerCase();if(!t||t===`.`)return;let n=t.slice(1);return n.length>Ee?`other`:n}function Se(e,t){if(!e.includes(`.`)&&!t)return;let n,r=new Set;if(t){let e=b(t);e&&(r.add(e),n=e)}for(let t of e.split(Oe)){if(!t)continue;let e=t.split(ke);if(e.length<2)continue;let i=e[0],a=i.lastIndexOf(`/`),o=a>=0?i.slice(a+1):i;if(De.has(o))for(let t=1;t<e.length;t++){let i=e[t];if(i.charCodeAt(0)===45)continue;let a=b(i);a&&!r.has(a)&&(r.add(a),n=n?`${n},${a}`:a)}}if(n)return n}var x,Ce,we,S,C,Te,Ee,De,Oe,ke,Ae=e((()=>{i(),he(),g(),x=new Set,Ce=512,we=128,S=4*1024,C=20,Te=2,Ee=10,De=new Set([`rm`,`mv`,`cp`,`touch`,`mkdir`,`chmod`,`chown`,`cat`,`head`,`tail`,`sort`,`stat`,`diff`,`wc`,`grep`,`rg`,`sed`]),Oe=/\s*(?:&&|\|\||[;|])\s*/,ke=/\s+/}));function je(){return process.platform===`linux`&&r(process.env.WORKMATE_BUBBLEWRAP)}function Me(){return process.platform===`linux`?D??!1:!1}async function w(){if(O!==void 0)return O;if(process.platform===`darwin`)return O=null,null;try{let e=await ue(process.pid,10);for(let t of e){let e=t.toLowerCase();for(let t of c)if(e.includes(t))return O=t,t}}catch{}return O=null,null}async function Ne(){return process.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`&&u.platform!==`darwin`?await w()||`pycharm`:u.terminal}function Pe(){return process.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`&&u.platform!==`darwin`?O===void 0?`pycharm`:O||`pycharm`:u.terminal}async function T(){process.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`&&await w()}var E,D,O,k,A=e((()=>{n(),l(),i(),se(),le(),E=t(async()=>{if(process.platform!==`linux`)return!1;let{code:e}=await ce(`test`,[`-f`,`/.dockerenv`]);return e===0}),D=null,process.platform===`linux`&&pe(`/lib/libc.musl-${process.arch===`x64`?`x86_64`:`aarch64`}.so.1`).then(()=>{D=!0},()=>{D=!1}),k={...u,terminal:Pe(),getIsDocker:E,getIsBubblewrapSandbox:je,isMuslEnvironment:Me,getTerminalWithJetBrainsDetectionAsync:Ne,initJetBrainsDetection:T}}));function j(e){let t=Fe[e],n=process.env[e];return n===void 0?t:r(n)}function M(){let e=oe(),t=ee(),n={"user.id":e};return j(`OTEL_METRICS_INCLUDE_SESSION_ID`)&&(n[`session.id`]=t),j(`OTEL_METRICS_INCLUDE_VERSION`)&&(n[`app.version`]=`0.0.27`),k.terminal&&(n[`terminal.type`]=k.terminal),n}var Fe,N=e((()=>{m(),ae(),A(),i(),Fe={OTEL_METRICS_INCLUDE_SESSION_ID:!0,OTEL_METRICS_INCLUDE_VERSION:!1,OTEL_METRICS_INCLUDE_ACCOUNT_UUID:!0}}));function Ie(){return r(process.env.OTEL_LOG_USER_PROMPTS)}function Le(e){return Ie()?e:`<REDACTED>`}async function P(e,t={}){let n=f();if(!n){F||(F=!0,re(`[3P telemetry] Event dropped (no event logger initialized): ${e}`,{level:`warn`}));return}let r={...M(),"event.name":e,"event.timestamp":new Date().toISOString(),"event.sequence":Re++},i=d();i&&(r[`prompt.id`]=i);let a=process.env.WORKMATE_WORKSPACE_HOST_PATHS;a&&(r[`workspace.host_paths`]=a.split(`|`));for(let[e,n]of Object.entries(t))n!==void 0&&(r[e]=n);n.emit({body:`workmate.${e}`,attributes:r})}var Re,F,ze=e((()=>{m(),ie(),i(),N(),Re=0,F=!1}));function Be(){B.clear(),V.clear()}function I(){return r(process.env.ENABLE_BETA_TRACING_DETAILED)&&process.env.BETA_TRACING_ENDPOINT&&p()||!1}function L(e,t=Ye){return e.length<=t?{content:e,truncated:!1}:{content:e.slice(0,t)+`
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t,t as n}from"./memoize-BK3gG5ob.js";import{l as r,o as i}from"./envUtils-QyzA_cFM.js";import{i as a,l as o,n as s}from"./esm-lWlUmoUA.js";import{Kt as c,Xt as l,qt as u}from"./settings-D4M13toi.js";import{$ as d,E as f,F as p,Pt as m,at as ee}from"./state-CXY-q5gr.js";import{C as h,I as te,S as ne,c as re,i as ie,x as g}from"./debug-2pVES-2G.js";import{d as ae,l as oe}from"./config-Bio2EjUK.js";import{i as se,t as ce}from"./execFileNoThrow-DXSEj8ZO.js";import{r as le,t as ue}from"./genericProcessUtils-GqURdVAv.js";import{extname as de}from"path";import"fs";import{createHash as fe}from"crypto";import{stat as pe}from"fs/promises";import{AsyncLocalStorage as _}from"async_hooks";function me(e){return!1}var he=e((()=>{}));function ge(e){return e.startsWith(`mcp__`)?`mcp_tool`:e}function v(){return r(process.env.OTEL_LOG_TOOL_DETAILS)}function _e(e,t){return!!(process.env.WORKMATE_ENTRYPOINT===`local-agent`||e===`claudeai-proxy`||t&&me(t))}function ve(e,t,n){let r=ye(e);return!r||!x.has(r.serverName)&&!_e(t,n)?{}:{mcpServerName:r.serverName,mcpToolName:r.mcpToolName}}function ye(e){if(!e.startsWith(`mcp__`))return;let t=e.split(`__`);if(t.length<3)return;let n=t[1],r=t.slice(2).join(`__`);if(!(!n||!r))return{serverName:n,mcpToolName:r}}function be(e,t){if(e===`Skill`&&typeof t==`object`&&t&&`skill`in t&&typeof t.skill==`string`)return t.skill}function y(e,t=0){if(typeof e==`string`)return e.length>Ce?`${e.slice(0,we)}…[${e.length} chars]`:e;if(typeof e==`number`||typeof e==`boolean`||e==null)return e;if(t>=Te)return`<nested>`;if(Array.isArray(e)){let n=e.slice(0,C).map(e=>y(e,t+1));return e.length>C&&n.push(`…[${e.length} items]`),n}if(typeof e==`object`){let n=Object.entries(e).filter(([e])=>!e.startsWith(`_`)),r=n.slice(0,C).map(([e,n])=>[e,y(n,t+1)]);return n.length>C&&r.push([`…`,`${n.length} keys`]),Object.fromEntries(r)}return String(e)}function xe(e){if(!v())return;let t=h(y(e));return t.length>S&&(t=`${t.slice(0,S)}…[truncated]`),t}function b(e){let t=de(e).toLowerCase();if(!t||t===`.`)return;let n=t.slice(1);return n.length>Ee?`other`:n}function Se(e,t){if(!e.includes(`.`)&&!t)return;let n,r=new Set;if(t){let e=b(t);e&&(r.add(e),n=e)}for(let t of e.split(Oe)){if(!t)continue;let e=t.split(ke);if(e.length<2)continue;let i=e[0],a=i.lastIndexOf(`/`),o=a>=0?i.slice(a+1):i;if(De.has(o))for(let t=1;t<e.length;t++){let i=e[t];if(i.charCodeAt(0)===45)continue;let a=b(i);a&&!r.has(a)&&(r.add(a),n=n?`${n},${a}`:a)}}if(n)return n}var x,Ce,we,S,C,Te,Ee,De,Oe,ke,Ae=e((()=>{i(),he(),g(),x=new Set,Ce=512,we=128,S=4*1024,C=20,Te=2,Ee=10,De=new Set([`rm`,`mv`,`cp`,`touch`,`mkdir`,`chmod`,`chown`,`cat`,`head`,`tail`,`sort`,`stat`,`diff`,`wc`,`grep`,`rg`,`sed`]),Oe=/\s*(?:&&|\|\||[;|])\s*/,ke=/\s+/}));function je(){return process.platform===`linux`&&r(process.env.WORKMATE_BUBBLEWRAP)}function Me(){return process.platform===`linux`?D??!1:!1}async function w(){if(O!==void 0)return O;if(process.platform===`darwin`)return O=null,null;try{let e=await ue(process.pid,10);for(let t of e){let e=t.toLowerCase();for(let t of c)if(e.includes(t))return O=t,t}}catch{}return O=null,null}async function Ne(){return process.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`&&u.platform!==`darwin`?await w()||`pycharm`:u.terminal}function Pe(){return process.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`&&u.platform!==`darwin`?O===void 0?`pycharm`:O||`pycharm`:u.terminal}async function T(){process.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`&&await w()}var E,D,O,k,A=e((()=>{n(),l(),i(),se(),le(),E=t(async()=>{if(process.platform!==`linux`)return!1;let{code:e}=await ce(`test`,[`-f`,`/.dockerenv`]);return e===0}),D=null,process.platform===`linux`&&pe(`/lib/libc.musl-${process.arch===`x64`?`x86_64`:`aarch64`}.so.1`).then(()=>{D=!0},()=>{D=!1}),k={...u,terminal:Pe(),getIsDocker:E,getIsBubblewrapSandbox:je,isMuslEnvironment:Me,getTerminalWithJetBrainsDetectionAsync:Ne,initJetBrainsDetection:T}}));function j(e){let t=Fe[e],n=process.env[e];return n===void 0?t:r(n)}function M(){let e=oe(),t=ee(),n={"user.id":e};return j(`OTEL_METRICS_INCLUDE_SESSION_ID`)&&(n[`session.id`]=t),j(`OTEL_METRICS_INCLUDE_VERSION`)&&(n[`app.version`]=`0.0.28`),k.terminal&&(n[`terminal.type`]=k.terminal),n}var Fe,N=e((()=>{m(),ae(),A(),i(),Fe={OTEL_METRICS_INCLUDE_SESSION_ID:!0,OTEL_METRICS_INCLUDE_VERSION:!1,OTEL_METRICS_INCLUDE_ACCOUNT_UUID:!0}}));function Ie(){return r(process.env.OTEL_LOG_USER_PROMPTS)}function Le(e){return Ie()?e:`<REDACTED>`}async function P(e,t={}){let n=f();if(!n){F||(F=!0,re(`[3P telemetry] Event dropped (no event logger initialized): ${e}`,{level:`warn`}));return}let r={...M(),"event.name":e,"event.timestamp":new Date().toISOString(),"event.sequence":Re++},i=d();i&&(r[`prompt.id`]=i);let a=process.env.WORKMATE_WORKSPACE_HOST_PATHS;a&&(r[`workspace.host_paths`]=a.split(`|`));for(let[e,n]of Object.entries(t))n!==void 0&&(r[e]=n);n.emit({body:`workmate.${e}`,attributes:r})}var Re,F,ze=e((()=>{m(),ie(),i(),N(),Re=0,F=!1}));function Be(){B.clear(),V.clear()}function I(){return r(process.env.ENABLE_BETA_TRACING_DETAILED)&&process.env.BETA_TRACING_ENDPOINT&&p()||!1}function L(e,t=Ye){return e.length<=t?{content:e,truncated:!1}:{content:e.slice(0,t)+`
2
2
 
3
3
  [TRUNCATED - Content exceeds 60KB limit]`,truncated:!0}}function R(e){return fe(`sha256`).update(e).digest(`hex`).slice(0,12)}function Ve(e){return`sp_${R(e)}`}function He(e){return`msg_${R(h(e.message.content))}`}function z(e){let t=e.trim().match(Xe);return t?.[1]?t[1].trim():null}function Ue(e){let t=[],n=[];for(let r of e){let e=r.message.content;if(typeof e==`string`){let r=z(e);r?n.push(r):t.push(`[USER]\n${e}`)}else if(Array.isArray(e)){for(let r of e)if(r.type===`text`){let e=z(r.text);e?n.push(e):t.push(`[USER]\n${r.text}`)}else if(r.type===`tool_result`){let e=typeof r.content==`string`?r.content:h(r.content),i=z(e);i?n.push(i):t.push(`[TOOL RESULT: ${r.tool_use_id}]\n${e}`)}}}return{contextParts:t,systemReminders:n}}function We(e,t){if(!I())return;let{content:n,truncated:r}=L(`[USER PROMPT]\n${t}`);e.setAttributes({new_context:n,...r&&{new_context_truncated:!0,new_context_original_length:t.length}})}function Ge(e,t,n){if(I()){if(t?.systemPrompt){let n=Ve(t.systemPrompt),r=t.systemPrompt.slice(0,500);if(e.setAttribute(`system_prompt_hash`,n),e.setAttribute(`system_prompt_preview`,r),e.setAttribute(`system_prompt_length`,t.systemPrompt.length),!B.has(n)){B.add(n);let{content:e,truncated:r}=L(t.systemPrompt);P(`system_prompt`,{system_prompt_hash:n,system_prompt:e,system_prompt_length:String(t.systemPrompt.length),...r&&{system_prompt_truncated:`true`}})}}if(t?.tools)try{let n=ne(t.tools).map(e=>{let t=h(e),n=R(t);return{name:typeof e.name==`string`?e.name:`unknown`,hash:n,json:t}});e.setAttribute(`tools`,h(n.map(({name:e,hash:t})=>({name:e,hash:t})))),e.setAttribute(`tools_count`,n.length);for(let{name:e,hash:t,json:r}of n)if(!B.has(`tool_${t}`)){B.add(`tool_${t}`);let{content:n,truncated:i}=L(r);P(`tool`,{tool_name:ge(e),tool_hash:t,tool:n,...i&&{tool_truncated:`true`}})}}catch{e.setAttribute(`tools_parse_error`,!0)}if(n&&n.length>0&&t?.querySource){let r=t.querySource,i=V.get(r),a=0;if(i)for(let e=0;e<n.length;e++){let t=n[e];if(t&&He(t)===i){a=e+1;break}}let o=n.slice(a).filter(e=>e.type===`user`);if(o.length>0){let{contextParts:t,systemReminders:i}=Ue(o);if(t.length>0){let n=t.join(`
4
4
 
@@ -1,3 +1,3 @@
1
- import{n as e,t}from"./memoize-BK3gG5ob.js";import{l as n,o as r,s as i}from"./envUtils-QyzA_cFM.js";import{di as a,fi as o}from"./src-BX54x08P.js";import{$n as s,Qn as c,Rr as l,Ur as ee,Xt as u,di as d,qr as f,qt as te,ui as p,zr as ne}from"./settings-D4M13toi.js";import{Dn as re,F as m,Hn as h,Pt as g,Tn as ie,X as ae,at as oe}from"./state-CXY-q5gr.js";import{$_ as _,$x as v,Ab as se,An as ce,At as y,Bs as le,By as ue,Cg as de,Db as fe,Di as pe,J_ as b,Ji as x,Ks as S,Lp as C,Mb as w,Mi as T,Ob as E,Q_ as D,Rp as O,St as k,Vs as A,Ws as j,X_ as M,Y_ as N,Z_ as P,ai as F,am as I,av as L,bb as R,cw as z,dv as B,em as me,ev as he,gr as ge,gt as _e,ht as ve,im as ye,iv as be,jb as xe,jn as Se,kn as Ce,ky as we,mn as Te,nv as Ee,om as De,ov as Oe,ow as ke,pn as Ae,pv as V,rv as je,tm as Me,tv as Ne,uv as Pe,vt as H,wg as Fe,wy as Ie,xb as U,ya as W,zy as Le}from"./loadAgentsDir-uuZYOgKn.js";import{n as Re,t as G}from"./cwd-DrEEb4f5.js";import{I as K,M as ze,N as Be,f as Ve,u as He}from"./debug-2pVES-2G.js";import{a as Ue,d as We}from"./config-BDn2YIjC.js";import{o as Ge,s as Ke}from"./log-L1kqxa_P.js";import{n as q}from"./analytics-COpjZpvd.js";import{n as qe,r as J}from"./startupProfiler-B9Qv2QGH.js";import{X as Je,Y as Ye}from"./model-CcHyMyBv.js";import{ln as Y,pn as Xe}from"./prompt-BfXryFt-.js";import{a as Ze,r as Qe}from"./projectOnboardingState-nTCycGCD.js";import{j as $e,k as X}from"./sessionTracing-DsdcOqvc.js";import{i as et,n as tt}from"./appleTerminalBackup-Bemd4RXh.js";import{c as nt,t as rt}from"./nativeInstaller-CIUYh1aD.js";import{l as Z,s as it}from"./logoUtils-B4wCDKs9.js";import{i as at,r as ot}from"./runtimeObserver-CWaYMJG8.js";import{t as st}from"./sinks-Cy3NqVbk.js";import{writeFile as Q}from"fs/promises";r(),o(),g(),Re(),p(),Ge(),f(),u(),We(),z(),xe(),fe(),R(),Fe(),T(),ge(),Te(),t(),Xe(),ue(),s(),j(),Ve(),C(),x(),Se(),Ye(),B(),q(),me(),I(),_(),K();function ct(){return!1}function lt(){return{}}var $;function ut(e,t){let n=0,r=t==null;for(let i of e){if(!r){i.uuid===t&&(r=!0);continue}if(i.type===`assistant`){let e=i.message.content;Array.isArray(e)&&(n+=c(e,e=>e.type===`tool_use`))}}return n}function dt(e){let t=V(e);if(!he()){if(!P(t))return!1;je()}let n=D(t),r=ut(e,$)>=M(),i=W(e);if(n&&r||n&&!i){let t=e[e.length-1];return t?.uuid&&($=t.uuid),!0}return!1}async function ft(e){let t=He(),n=Ce();await t.mkdir(n,{mode:448});let r=ce();try{await Q(r,``,{encoding:`utf-8`,mode:384,flag:`wx`}),await Q(r,await De(),{encoding:`utf-8`,mode:384})}catch(e){if(Be(e)!==`EEXIST`)throw e}e.readFileState.delete(r);let i=await Le.call({file_path:r},e),a=``,o=i.data;return o.type===`text`&&(a=o.file.content),a.length,{memoryPath:r,currentMemory:a}}var pt=e(()=>{let e=lt();Oe({minimumMessageTokensToInit:e.minimumMessageTokensToInit&&e.minimumMessageTokensToInit>0?e.minimumMessageTokensToInit:b.minimumMessageTokensToInit,minimumTokensBetweenUpdate:e.minimumTokensBetweenUpdate&&e.minimumTokensBetweenUpdate>0?e.minimumTokensBetweenUpdate:b.minimumTokensBetweenUpdate,toolCallsBetweenUpdates:e.toolCallsBetweenUpdates&&e.toolCallsBetweenUpdates>0?e.toolCallsBetweenUpdates:b.toolCallsBetweenUpdates})}),mt=Je(async e=>{let{messages:t,toolUseContext:n,querySource:r}=e;if(r!==`repl_main_thread`||!ct()||(pt(),!dt(t)))return;Ee();let i=A(n),{memoryPath:a,currentMemory:o}=await ft(i);await S({promptMessages:[v({content:await ye(o,a)})],cacheSafeParams:le(e),canUseTool:gt(a),querySource:`session_memory`,forkLabel:`session_memory`,overrides:{readFileState:i.readFileState}});let s=t[t.length-1],c=s?Pe(s):void 0,l=N();c?.input_tokens,c?.output_tokens,c?.cache_read_input_tokens,c?.cache_creation_input_tokens,l.minimumMessageTokensToInit,l.minimumTokensBetweenUpdate,l.toolCallsBetweenUpdates,be(V(t)),_t(t),Ne()});function ht(){Me()&&O(mt)}function gt(e){return async(t,n)=>{if(t.name===`Edit`&&typeof n==`object`&&n&&`file_path`in n){let t=n.file_path;if(typeof t==`string`&&t===e)return{behavior:`allow`,updatedInput:n}}return{behavior:`deny`,message:`only ${Y} on ${e} is allowed`,decisionReason:{type:`other`,reason:`only ${Y} on ${e} is allowed`}}}}function _t(e){if(!W(e)){let t=e[e.length-1];t?.uuid&&L(t.uuid)}}q(),at(),et(),we(),$e(),K(),Z(),rt(),Qe(),qe(),k();async function vt(e,t,r,o,s,c,u,f){d(`info`,`setup_started`);let p=process.version.match(/^v(\d+)\./)?.[1];if((!p||parseInt(p,10)<18)&&(console.error(a.bold.red(`Error: Work Mate requires Node.js version 18 or higher.`)),process.exit(1)),u&&h(de(u)),!m())try{let e=await tt();e.status===`restored`?console.log(a.yellow(`Detected an interrupted Terminal.app setup. Your original settings have been restored. You may need to restart Terminal.app for the changes to take effect.`)):e.status===`failed`&&console.error(a.red(`Failed to restore Terminal.app settings. Please manually restore your original settings with: defaults import com.apple.Terminal ${e.backupPath}.`))}catch(e){Ke(e)}U(e);let g=Date.now();if(se(),d(`info`,`setup_hooks_captured`,{duration_ms:Date.now()-g}),E(e),o){let t=Ae(),n=await ee();!t&&!n&&(process.stderr.write(a.red(`Error: Can only use --worktree in a git repository, but ${a.bold(e)} is not a git repository. Configure a WorktreeCreate hook in settings.json to use --worktree with other VCS systems.\n`)),process.exit(1));let r=f?`pr-${f}`:s??ke(),i;if(n){let e=l(G());e||(process.stderr.write(a.red(`Error: Could not determine the main git repository root.
2
- `)),process.exit(1)),e!==(ne(G())??G())&&(d(`info`,`worktree_resolved_to_main_repo`),process.chdir(e),U(e)),i=c?H(e,y(r)):void 0}else i=c?H(G(),y(r)):void 0;let o;try{o=await _e(oe(),r,i,f?{prNumber:f}:void 0)}catch(e){process.stderr.write(a.red(`Error creating worktree: ${ze(e)}\n`)),process.exit(1)}if(c&&i){let e=await ve(i,o.worktreePath);e.created?console.log(a.green(`Created tmux session: ${a.bold(i)}\nTo attach: ${a.bold(`tmux attach -t ${i}`)}`)):console.error(a.yellow(`Warning: Failed to create tmux session: ${e.error}`))}process.chdir(o.worktreePath),U(o.worktreePath),ie(G()),re(G()),F(o),Ie(),w()}d(`info`,`setup_background_jobs_starting`),i()||(ht(),ot()),nt(),d(`info`,`setup_background_jobs_launched`),J(`setup_before_prefetch`),d(`info`,`setup_prefetch_starting`);let _=m()&&n(process.env.WORKMATE_SYNC_PLUGIN_INSTALL)||i();if(_||pe(ae()),import(`./loadPluginHooks-QoVXsBjy.js`).then(e=>{_||(e.loadPluginHooks(),e.setupPluginHookHotReload())}),i()||import(`./sessionFileAccessHooks-_mxyfQmn.js`).then(e=>e.registerSessionFileAccessHooks()),st(),J(`setup_after_prefetch`),!i()&&Ze()&&await it(),t===`bypassPermissions`||r){if(process.platform!==`win32`&&typeof process.getuid==`function`&&process.getuid()===0&&process.env.IS_SANDBOX!==`1`&&!n(process.env.WORKMATE_BUBBLEWRAP))if(process.stdin.isTTY){console.error(a.bold.red(`WARNING: Running as root/sudo with bypass permissions mode is dangerous.`)),console.error(a.yellow(`Bypass mode skips ALL permission checks. Combined with root, any command (rm -rf /, chmod, dd) executes without review.`));let e=(await import(`readline`)).createInterface({input:process.stdin,output:process.stdout}),t=await new Promise(t=>{e.question(`
1
+ import{n as e,t}from"./memoize-BK3gG5ob.js";import{l as n,o as r,s as i}from"./envUtils-QyzA_cFM.js";import{di as a,fi as o}from"./src-BX54x08P.js";import{$n as s,Qn as c,Rr as l,Ur as ee,Xt as u,di as d,qr as f,qt as te,ui as p,zr as ne}from"./settings-D4M13toi.js";import{Dn as re,F as m,Hn as h,Pt as g,Tn as ie,X as ae,at as oe}from"./state-CXY-q5gr.js";import{$_ as _,$x as v,Ab as se,An as ce,At as y,Bs as le,By as ue,Cg as de,Db as fe,Di as pe,J_ as b,Ji as x,Ks as S,Lp as C,Mb as w,Mi as T,Ob as E,Q_ as D,Rp as O,St as k,Vs as A,Ws as j,X_ as M,Y_ as N,Z_ as P,ai as F,am as I,av as L,bb as R,cw as z,dv as B,em as me,ev as he,gr as ge,gt as _e,ht as ve,im as ye,iv as be,jb as xe,jn as Se,kn as Ce,ky as we,mn as Te,nv as Ee,om as De,ov as Oe,ow as ke,pn as Ae,pv as V,rv as je,tm as Me,tv as Ne,uv as Pe,vt as H,wg as Fe,wy as Ie,xb as U,ya as W,zy as Le}from"./loadAgentsDir-bmpKLPdG.js";import{n as Re,t as G}from"./cwd-DrEEb4f5.js";import{I as K,M as ze,N as Be,f as Ve,u as He}from"./debug-2pVES-2G.js";import{a as Ue,d as We}from"./config-Bio2EjUK.js";import{o as Ge,s as Ke}from"./log-L1kqxa_P.js";import{n as q}from"./analytics-COpjZpvd.js";import{n as qe,r as J}from"./startupProfiler-B9Qv2QGH.js";import{X as Je,Y as Ye}from"./model-Dd3x121y.js";import{ln as Y,pn as Xe}from"./prompt-BnDapYGL.js";import{a as Ze,r as Qe}from"./projectOnboardingState-D-_ijZnG.js";import{j as $e,k as X}from"./sessionTracing-5a7HDF4e.js";import{i as et,n as tt}from"./appleTerminalBackup-CN8kS74J.js";import{c as nt,t as rt}from"./nativeInstaller-DMkZdsof.js";import{l as Z,s as it}from"./logoUtils-qNuBc2nI.js";import{i as at,r as ot}from"./runtimeObserver-DT5P2_XL.js";import{t as st}from"./sinks-CV0SWuZW.js";import{writeFile as Q}from"fs/promises";r(),o(),g(),Re(),p(),Ge(),f(),u(),We(),z(),xe(),fe(),R(),Fe(),T(),ge(),Te(),t(),Xe(),ue(),s(),j(),Ve(),C(),x(),Se(),Ye(),B(),q(),me(),I(),_(),K();function ct(){return!1}function lt(){return{}}var $;function ut(e,t){let n=0,r=t==null;for(let i of e){if(!r){i.uuid===t&&(r=!0);continue}if(i.type===`assistant`){let e=i.message.content;Array.isArray(e)&&(n+=c(e,e=>e.type===`tool_use`))}}return n}function dt(e){let t=V(e);if(!he()){if(!P(t))return!1;je()}let n=D(t),r=ut(e,$)>=M(),i=W(e);if(n&&r||n&&!i){let t=e[e.length-1];return t?.uuid&&($=t.uuid),!0}return!1}async function ft(e){let t=He(),n=Ce();await t.mkdir(n,{mode:448});let r=ce();try{await Q(r,``,{encoding:`utf-8`,mode:384,flag:`wx`}),await Q(r,await De(),{encoding:`utf-8`,mode:384})}catch(e){if(Be(e)!==`EEXIST`)throw e}e.readFileState.delete(r);let i=await Le.call({file_path:r},e),a=``,o=i.data;return o.type===`text`&&(a=o.file.content),a.length,{memoryPath:r,currentMemory:a}}var pt=e(()=>{let e=lt();Oe({minimumMessageTokensToInit:e.minimumMessageTokensToInit&&e.minimumMessageTokensToInit>0?e.minimumMessageTokensToInit:b.minimumMessageTokensToInit,minimumTokensBetweenUpdate:e.minimumTokensBetweenUpdate&&e.minimumTokensBetweenUpdate>0?e.minimumTokensBetweenUpdate:b.minimumTokensBetweenUpdate,toolCallsBetweenUpdates:e.toolCallsBetweenUpdates&&e.toolCallsBetweenUpdates>0?e.toolCallsBetweenUpdates:b.toolCallsBetweenUpdates})}),mt=Je(async e=>{let{messages:t,toolUseContext:n,querySource:r}=e;if(r!==`repl_main_thread`||!ct()||(pt(),!dt(t)))return;Ee();let i=A(n),{memoryPath:a,currentMemory:o}=await ft(i);await S({promptMessages:[v({content:await ye(o,a)})],cacheSafeParams:le(e),canUseTool:gt(a),querySource:`session_memory`,forkLabel:`session_memory`,overrides:{readFileState:i.readFileState}});let s=t[t.length-1],c=s?Pe(s):void 0,l=N();c?.input_tokens,c?.output_tokens,c?.cache_read_input_tokens,c?.cache_creation_input_tokens,l.minimumMessageTokensToInit,l.minimumTokensBetweenUpdate,l.toolCallsBetweenUpdates,be(V(t)),_t(t),Ne()});function ht(){Me()&&O(mt)}function gt(e){return async(t,n)=>{if(t.name===`Edit`&&typeof n==`object`&&n&&`file_path`in n){let t=n.file_path;if(typeof t==`string`&&t===e)return{behavior:`allow`,updatedInput:n}}return{behavior:`deny`,message:`only ${Y} on ${e} is allowed`,decisionReason:{type:`other`,reason:`only ${Y} on ${e} is allowed`}}}}function _t(e){if(!W(e)){let t=e[e.length-1];t?.uuid&&L(t.uuid)}}q(),at(),et(),we(),$e(),K(),Z(),rt(),Qe(),qe(),k();async function vt(e,t,r,o,s,c,u,f){d(`info`,`setup_started`);let p=process.version.match(/^v(\d+)\./)?.[1];if((!p||parseInt(p,10)<18)&&(console.error(a.bold.red(`Error: Work Mate requires Node.js version 18 or higher.`)),process.exit(1)),u&&h(de(u)),!m())try{let e=await tt();e.status===`restored`?console.log(a.yellow(`Detected an interrupted Terminal.app setup. Your original settings have been restored. You may need to restart Terminal.app for the changes to take effect.`)):e.status===`failed`&&console.error(a.red(`Failed to restore Terminal.app settings. Please manually restore your original settings with: defaults import com.apple.Terminal ${e.backupPath}.`))}catch(e){Ke(e)}U(e);let g=Date.now();if(se(),d(`info`,`setup_hooks_captured`,{duration_ms:Date.now()-g}),E(e),o){let t=Ae(),n=await ee();!t&&!n&&(process.stderr.write(a.red(`Error: Can only use --worktree in a git repository, but ${a.bold(e)} is not a git repository. Configure a WorktreeCreate hook in settings.json to use --worktree with other VCS systems.\n`)),process.exit(1));let r=f?`pr-${f}`:s??ke(),i;if(n){let e=l(G());e||(process.stderr.write(a.red(`Error: Could not determine the main git repository root.
2
+ `)),process.exit(1)),e!==(ne(G())??G())&&(d(`info`,`worktree_resolved_to_main_repo`),process.chdir(e),U(e)),i=c?H(e,y(r)):void 0}else i=c?H(G(),y(r)):void 0;let o;try{o=await _e(oe(),r,i,f?{prNumber:f}:void 0)}catch(e){process.stderr.write(a.red(`Error creating worktree: ${ze(e)}\n`)),process.exit(1)}if(c&&i){let e=await ve(i,o.worktreePath);e.created?console.log(a.green(`Created tmux session: ${a.bold(i)}\nTo attach: ${a.bold(`tmux attach -t ${i}`)}`)):console.error(a.yellow(`Warning: Failed to create tmux session: ${e.error}`))}process.chdir(o.worktreePath),U(o.worktreePath),ie(G()),re(G()),F(o),Ie(),w()}d(`info`,`setup_background_jobs_starting`),i()||(ht(),ot()),nt(),d(`info`,`setup_background_jobs_launched`),J(`setup_before_prefetch`),d(`info`,`setup_prefetch_starting`);let _=m()&&n(process.env.WORKMATE_SYNC_PLUGIN_INSTALL)||i();if(_||pe(ae()),import(`./loadPluginHooks-BIfM53-_.js`).then(e=>{_||(e.loadPluginHooks(),e.setupPluginHookHotReload())}),i()||import(`./sessionFileAccessHooks-BqQ58T7e.js`).then(e=>e.registerSessionFileAccessHooks()),st(),J(`setup_after_prefetch`),!i()&&Ze()&&await it(),t===`bypassPermissions`||r){if(process.platform!==`win32`&&typeof process.getuid==`function`&&process.getuid()===0&&process.env.IS_SANDBOX!==`1`&&!n(process.env.WORKMATE_BUBBLEWRAP))if(process.stdin.isTTY){console.error(a.bold.red(`WARNING: Running as root/sudo with bypass permissions mode is dangerous.`)),console.error(a.yellow(`Bypass mode skips ALL permission checks. Combined with root, any command (rm -rf /, chmod, dd) executes without review.`));let e=(await import(`readline`)).createInterface({input:process.stdin,output:process.stdout}),t=await new Promise(t=>{e.question(`
3
3
  I understand the risks. Continue? [y/N] `,t)});e.close(),t.trim().toLowerCase()!==`y`&&(console.error(`Aborted.`),process.exit(1))}else console.error(`--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons`),process.exit(1);if(process.env.WORKMATE_ENTRYPOINT!==`local-agent`&&process.env.WORKMATE_ENTRYPOINT!==`claude-desktop`){let[e,t]=await Promise.all([X.getIsDocker(),te.hasInternetAccess()]),n=X.getIsBubblewrapSandbox(),r=process.env.IS_SANDBOX===`1`;(!(e||n||r)||t)&&(console.error(`--dangerously-skip-permissions can only be used in Docker/sandbox containers with no internet access but got Docker: ${e}, Bubblewrap: ${n}, IS_SANDBOX: ${r}, hasInternet: ${t}`),process.exit(1))}}let v=Ue();v.lastCost!==void 0&&v.lastDuration!==void 0&&(v.lastCost,v.lastAPIDuration,v.lastToolDuration,v.lastDuration,v.lastLinesAdded,v.lastLinesRemoved,v.lastTotalInputTokens,v.lastTotalOutputTokens,v.lastTotalCacheCreationInputTokens,v.lastTotalCacheReadInputTokens,v.lastFpsAverage,v.lastFpsLow1Pct,v.lastSessionId,{...v.lastSessionMetrics})}export{vt as setup};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{H as t,L as n,R as r,V as i,z as a}from"./loadAgentsDir-uuZYOgKn.js";import{in as o}from"./prompt-BfXryFt-.js";function s(e){return e===`projectSettings`||e===`policySettings`||e===`command`}function c(e){return t(e)}function l(e,t,n){let r=c(t.source),i=c(n.source),a=t.ruleValue.toolName;return e===`deny`?`Remove the "${a}" deny rule from ${r}, or remove the specific allow rule from ${i}`:`Remove the "${a}" ask rule from ${r}, or remove the specific allow rule from ${i}`}function u(e,t,n){let{toolName:r,ruleContent:i}=e.ruleValue;if(i===void 0)return{shadowed:!1};let a=t.find(e=>e.ruleValue.toolName===r&&e.ruleValue.ruleContent===void 0);return!a||r===`Bash`&&n.sandboxAutoAllowEnabled&&!s(a.source)?{shadowed:!1}:{shadowed:!0,shadowedBy:a,shadowType:`ask`}}function d(e,t){let{toolName:n,ruleContent:r}=e.ruleValue;if(r===void 0)return{shadowed:!1};let i=t.find(e=>e.ruleValue.toolName===n&&e.ruleValue.ruleContent===void 0);return i?{shadowed:!0,shadowedBy:i,shadowType:`deny`}:{shadowed:!1}}function f(e,t){let i=[],o=n(e),s=r(e),f=a(e);for(let e of o){let n=d(e,f);if(n.shadowed){let t=c(n.shadowedBy.source);i.push({rule:e,reason:`Blocked by "${n.shadowedBy.ruleValue.toolName}" deny rule (from ${t})`,shadowedBy:n.shadowedBy,shadowType:`deny`,fix:l(`deny`,n.shadowedBy,e)});continue}let r=u(e,s,t);if(r.shadowed){let t=c(r.shadowedBy.source);i.push({rule:e,reason:`Shadowed by "${r.shadowedBy.ruleValue.toolName}" ask rule (from ${t})`,shadowedBy:r.shadowedBy,shadowType:`ask`,fix:l(`ask`,r.shadowedBy,e)})}}return i}var p=e((()=>{o(),i()}));export{p as n,f as t};
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{H as t,L as n,R as r,V as i,z as a}from"./loadAgentsDir-bmpKLPdG.js";import{in as o}from"./prompt-BnDapYGL.js";function s(e){return e===`projectSettings`||e===`policySettings`||e===`command`}function c(e){return t(e)}function l(e,t,n){let r=c(t.source),i=c(n.source),a=t.ruleValue.toolName;return e===`deny`?`Remove the "${a}" deny rule from ${r}, or remove the specific allow rule from ${i}`:`Remove the "${a}" ask rule from ${r}, or remove the specific allow rule from ${i}`}function u(e,t,n){let{toolName:r,ruleContent:i}=e.ruleValue;if(i===void 0)return{shadowed:!1};let a=t.find(e=>e.ruleValue.toolName===r&&e.ruleValue.ruleContent===void 0);return!a||r===`Bash`&&n.sandboxAutoAllowEnabled&&!s(a.source)?{shadowed:!1}:{shadowed:!0,shadowedBy:a,shadowType:`ask`}}function d(e,t){let{toolName:n,ruleContent:r}=e.ruleValue;if(r===void 0)return{shadowed:!1};let i=t.find(e=>e.ruleValue.toolName===n&&e.ruleValue.ruleContent===void 0);return i?{shadowed:!0,shadowedBy:i,shadowType:`deny`}:{shadowed:!1}}function f(e,t){let i=[],o=n(e),s=r(e),f=a(e);for(let e of o){let n=d(e,f);if(n.shadowed){let t=c(n.shadowedBy.source);i.push({rule:e,reason:`Blocked by "${n.shadowedBy.ruleValue.toolName}" deny rule (from ${t})`,shadowedBy:n.shadowedBy,shadowType:`deny`,fix:l(`deny`,n.shadowedBy,e)});continue}let r=u(e,s,t);if(r.shadowed){let t=c(r.shadowedBy.source);i.push({rule:e,reason:`Shadowed by "${r.shadowedBy.ruleValue.toolName}" ask rule (from ${t})`,shadowedBy:r.shadowedBy,shadowType:`ask`,fix:l(`ask`,r.shadowedBy,e)})}}return i}var p=e((()=>{o(),i()}));export{p as n,f as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{$x as t,Fx as n,Ji as r,Ks as i,OS as a,Ws as o,bS as s}from"./loadAgentsDir-uuZYOgKn.js";function c(e){let t=[],n=e.matchAll(d);for(let e of n)e.index!==void 0&&t.push({word:e[0],start:e.index,end:e.index+e[0].length});return t}async function l({question:e,cacheSafeParams:n}){let r=await i({promptMessages:[t({content:`<system-reminder>This is a side question from the user. You must answer this question directly in a single response.
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{$x as t,Fx as n,Ji as r,Ks as i,OS as a,Ws as o,bS as s}from"./loadAgentsDir-bmpKLPdG.js";function c(e){let t=[],n=e.matchAll(d);for(let e of n)e.index!==void 0&&t.push({word:e[0],start:e.index,end:e.index+e[0].length});return t}async function l({question:e,cacheSafeParams:n}){let r=await i({promptMessages:[t({content:`<system-reminder>This is a side question from the user. You must answer this question directly in a single response.
2
2
 
3
3
  IMPORTANT CONTEXT:
4
4
  - You are a separate, lightweight agent spawned to answer this one question
@@ -0,0 +1 @@
1
+ import{t as e}from"./sinks-CV0SWuZW.js";export{e as initSinks};
@@ -1 +1 @@
1
- import{n as e,t}from"./axios-DaWTGg7G.js";import{Pt as n,at as r}from"./state-CXY-q5gr.js";import{$ as i,C as a,c as o,et as s,f as c,i as l,nt as u,rt as d,u as f,x as p}from"./debug-2pVES-2G.js";import{_ as m,o as h,r as g,t as _,v}from"./log-L1kqxa_P.js";import{n as y}from"./analytics-COpjZpvd.js";import{dirname as b,join as x}from"path";t(),n(),d(),v(),i(),l(),c(),h(),p();var S=g(new Date);function C(){return x(m.errors(),`${S}.jsonl`)}function w(e){return x(m.mcpLogs(e),`${S}.jsonl`)}function T(e){let t=u(e);return{write(e){t.write(`${a(e)}\n`)},flush:t.flush,dispose:t.dispose}}var E=new Map;function D(e){let t=E.get(e);if(!t){let n=b(e);t=T({writeFn:t=>{try{f().appendFileSync(e,t)}catch{f().mkdirSync(n),f().appendFileSync(e,t)}},flushIntervalMs:1e3,maxBufferSize:50}),E.set(e,t),s(async()=>t?.dispose())}return t}function O(e,t){let n={timestamp:new Date().toISOString(),...t,cwd:f().cwd(),userType:process.env.USER_TYPE,sessionId:r(),version:`0.0.27`};D(e).write(n)}function k(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`){let t=e;if(typeof t.message==`string`)return t.message;if(typeof t.error==`object`&&t.error&&`message`in t.error&&typeof t.error.message==`string`)return t.error.message}}function A(t){let n=t.stack||t.message,r=``;if(e.isAxiosError(t)&&t.config?.url){let e=[`url=${t.config.url}`];t.response?.status!==void 0&&e.push(`status=${t.response.status}`);let n=k(t.response?.data);n&&e.push(`body=${n}`),r=`[${e.join(`,`)}] `}o(`${t.name}: ${r}${n}`,{level:`error`}),O(C(),{error:`${r}${n}`})}function j(e,t){o(`MCP server "${e}" ${t}`,{level:`error`});let n=w(e),i={error:t instanceof Error?t.stack||t.message:String(t),timestamp:new Date().toISOString(),sessionId:r(),cwd:f().cwd()};D(n).write(i)}function M(e,t){o(`MCP server "${e}": ${t}`);let n=w(e),i={debug:t,timestamp:new Date().toISOString(),sessionId:r(),cwd:f().cwd()};D(n).write(i)}function N(){_({logError:A,logMCPError:j,logMCPDebug:M,getErrorsPath:C,getMCPLogsPath:w}),o(`Error log sink initialized`)}y();function P(){N()}export{P as t};
1
+ import{n as e,t}from"./axios-DaWTGg7G.js";import{Pt as n,at as r}from"./state-CXY-q5gr.js";import{$ as i,C as a,c as o,et as s,f as c,i as l,nt as u,rt as d,u as f,x as p}from"./debug-2pVES-2G.js";import{_ as m,o as h,r as g,t as _,v}from"./log-L1kqxa_P.js";import{n as y}from"./analytics-COpjZpvd.js";import{dirname as b,join as x}from"path";t(),n(),d(),v(),i(),l(),c(),h(),p();var S=g(new Date);function C(){return x(m.errors(),`${S}.jsonl`)}function w(e){return x(m.mcpLogs(e),`${S}.jsonl`)}function T(e){let t=u(e);return{write(e){t.write(`${a(e)}\n`)},flush:t.flush,dispose:t.dispose}}var E=new Map;function D(e){let t=E.get(e);if(!t){let n=b(e);t=T({writeFn:t=>{try{f().appendFileSync(e,t)}catch{f().mkdirSync(n),f().appendFileSync(e,t)}},flushIntervalMs:1e3,maxBufferSize:50}),E.set(e,t),s(async()=>t?.dispose())}return t}function O(e,t){let n={timestamp:new Date().toISOString(),...t,cwd:f().cwd(),userType:process.env.USER_TYPE,sessionId:r(),version:`0.0.28`};D(e).write(n)}function k(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`){let t=e;if(typeof t.message==`string`)return t.message;if(typeof t.error==`object`&&t.error&&`message`in t.error&&typeof t.error.message==`string`)return t.error.message}}function A(t){let n=t.stack||t.message,r=``;if(e.isAxiosError(t)&&t.config?.url){let e=[`url=${t.config.url}`];t.response?.status!==void 0&&e.push(`status=${t.response.status}`);let n=k(t.response?.data);n&&e.push(`body=${n}`),r=`[${e.join(`,`)}] `}o(`${t.name}: ${r}${n}`,{level:`error`}),O(C(),{error:`${r}${n}`})}function j(e,t){o(`MCP server "${e}" ${t}`,{level:`error`});let n=w(e),i={error:t instanceof Error?t.stack||t.message:String(t),timestamp:new Date().toISOString(),sessionId:r(),cwd:f().cwd()};D(n).write(i)}function M(e,t){o(`MCP server "${e}": ${t}`);let n=w(e),i={debug:t,timestamp:new Date().toISOString(),sessionId:r(),cwd:f().cwd()};D(n).write(i)}function N(){_({logError:A,logMCPError:j,logMCPDebug:M,getErrorsPath:C,getMCPLogsPath:w}),o(`Error log sink initialized`)}y();function P(){N()}export{P as t};
@@ -1 +1 @@
1
- import{Gn as e,Hn as t,Kn as n,Pt as r,Tn as i,U as a,at as o,h as s,vn as c,yn as l}from"./state-CXY-q5gr.js";import{Cg as ee,Ci as te,Dm as ne,Fy as re,Gg as u,Gi as ie,In as ae,Kg as oe,Mi as se,Nt as ce,Om as le,Ot as d,Py as f,Rr as p,Si as m,St as h,Ui as g,Vi as ue,Wi as de,Xr as fe,Xs as pe,Yr as me,ag as he,ai as _,bb as ge,cw as _e,dn as v,dy as y,ec as b,fy as x,gr as S,ky as C,mn as w,ni as T,ns as E,ph as D,rg as O,sw as k,ts as A,wg as j,wy as M,xb as N,yt as P}from"./loadAgentsDir-uuZYOgKn.js";import{n as F,t as I}from"./cwd-DrEEb4f5.js";import{$ as ve,c as L,et as ye,f as be,i as R,u as xe}from"./debug-2pVES-2G.js";import{n as z}from"./analytics-COpjZpvd.js";import{f as Se,v as Ce}from"./model-CcHyMyBv.js";import{Gt as we}from"./prompt-BfXryFt-.js";import{S as Te,x as Ee}from"./sleep-xKMbXTJe.js";import*as B from"path";import{dirname as De}from"path";r(),oe(),y(),we(),j(),C(),D(),pe(),F(),R(),he(),Se(),_e(),ge(),S(),f(),le(),h();function Oe(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.type!==`assistant`)continue;let r=n.message.content.find(e=>e.type===`tool_use`&&e.name===`TodoWrite`);if(r?.type!==`tool_use`)continue;let i=r.input;if(typeof i!=`object`||!i)return[];let a=ne().safeParse(i.todos);return a.success?a.data:[]}return[]}function ke(e,t){if(e.fileHistorySnapshots&&e.fileHistorySnapshots.length>0&&O(e.fileHistorySnapshots,e=>{t(t=>({...t,fileHistory:e}))}),!re()&&e.messages&&e.messages.length>0){let n=Oe(e.messages);if(n.length>0){let e=o();t(t=>({...t,todos:{...t.todos,[e]:n}}))}}}function V(e,t){if(!(!e&&!t))return{name:e??``,color:t==="default"?void 0:t}}function H(e,t,n){if(t)return{agentDefinition:t,agentType:void 0};if(!e)return l(void 0),{agentDefinition:void 0,agentType:void 0};let r=n.activeAgents.find(t=>t.agentType===e);return r?(l(r.agentType),!a()&&r.model&&r.model!==`inherit`&&c(Ce(r.model)),{agentDefinition:r,agentType:r.agentType}):(L(`Resumed session had agent "${e}" but it is no longer available. Using default behavior.`),l(void 0),{agentDefinition:void 0,agentType:void 0})}function U(e){let t=P();if(t){_(t);return}if(e){try{process.chdir(e.worktreePath)}catch{_(null);return}N(e.worktreePath),i(I()),d(e),M(),u(),k.cache.clear?.()}}function Ae(){let e=P();if(e){d(null),M(),u(),k.cache.clear?.();try{process.chdir(e.originalCwd)}catch{return}N(e.originalCwd),i(I())}}async function je(e,n,r){if(n.forkSession)e.contentReplacements?.length&&await p(e.contentReplacements);else{let r=n.sessionIdOverride??e.sessionId;r&&(t(ee(r),n.transcriptPath?De(n.transcriptPath):null),await me(),x(r))}fe(n.forkSession?{...e,worktreeSession:void 0}:e),n.forkSession||(U(e.worktreeSession),ae());let{agentDefinition:i,agentType:a}=H(e.agentSetting,r.mainThreadAgentDefinition,r.agentDefinitions);T(`normal`),n.includeAttribution;let o=V(e.agentName,e.agentColor);b(e.agentName);let s=r.agentDefinitions;return{messages:e.messages,fileHistorySnapshots:e.fileHistorySnapshots,contentReplacements:e.contentReplacements,agentName:e.agentName,agentColor:e.agentColor==="default"?void 0:e.agentColor,restoredAgentDef:i,initialState:{...r.initialState,...a&&{agent:a},...o&&{standaloneAgentContext:o},agentDefinitions:s}}}Te(),r(),se(),z(),de(),A(),ve(),R(),be(),w(),n();var Me=1e3,Ne=500,Pe=300,Fe=2e3,Ie=typeof Bun<`u`,W=null,G=null,K=new Set,q=!1,J=!1,Y=!1,X=null,Z=e();async function Le(){if(q||J)return;q=!0,Y||(Y=!0,ie(()=>{m(),Z.emit()}));let e=await ze();e.length!==0&&(L(`Watching for changes in skill/command directories: ${e.join(`, `)}...`),W=Ee.watch(e,{persistent:!0,ignoreInitial:!0,depth:2,awaitWriteFinish:{stabilityThreshold:Me,pollInterval:Ne},ignored:(e,t)=>t&&!t.isFile()&&!t.isDirectory()?!0:e.split(B.sep).some(e=>e===`.git`),ignorePermissionErrors:!0,usePolling:Ie,interval:Fe,atomic:!0}),W.on(`add`,$),W.on(`change`,$),W.on(`unlink`,$),X=ye(async()=>{await Q()}))}function Q(){J=!0,X&&(X(),X=null);let e=Promise.resolve();return W&&(e=W.close(),W=null),G&&(clearTimeout(G),G=null),K.clear(),Z.clear(),e}var Re=Z.subscribe;async function ze(){let e=xe(),t=[],n=g(`userSettings`,`skills`);if(n)try{await e.stat(n),t.push(n)}catch{}let r=g(`userSettings`,`commands`);if(r)try{await e.stat(r),t.push(r)}catch{}let i=g(`projectSettings`,`skills`);if(i)try{let n=B.resolve(i);await e.stat(n),t.push(n)}catch{}let a=g(`projectSettings`,`commands`);if(a)try{let n=B.resolve(a);await e.stat(n),t.push(n)}catch{}for(let n of s()){let r=B.join(n,`.workmate`,`skills`);try{await e.stat(r),t.push(r)}catch{}}return t}function $(e){L(`Detected skill change: ${e}`),Be(e)}function Be(e){K.add(e),G&&clearTimeout(G),G=setTimeout(async()=>{G=null;let e=[...K];if(K.clear(),v(await ce(`skills`,e[0]))){L(`ConfigChange hook blocked skill reload (${e.length} paths)`);return}ue(),te(),E(),Z.emit()},Pe)}var Ve={initialize:Le,dispose:Q,subscribe:Re};export{H as a,je as i,V as n,ke as o,Ae as r,U as s,Ve as t};
1
+ import{Gn as e,Hn as t,Kn as n,Pt as r,Tn as i,U as a,at as o,h as s,vn as c,yn as l}from"./state-CXY-q5gr.js";import{Cg as ee,Ci as te,Dm as ne,Fy as re,Gg as u,Gi as ie,In as ae,Kg as oe,Mi as se,Nt as ce,Om as le,Ot as d,Py as f,Rr as p,Si as m,St as h,Ui as g,Vi as ue,Wi as de,Xr as fe,Xs as pe,Yr as me,ag as he,ai as _,bb as ge,cw as _e,dn as v,dy as y,ec as b,fy as x,gr as S,ky as C,mn as w,ni as T,ns as E,ph as D,rg as O,sw as k,ts as A,wg as j,wy as M,xb as N,yt as P}from"./loadAgentsDir-bmpKLPdG.js";import{n as F,t as I}from"./cwd-DrEEb4f5.js";import{$ as ve,c as L,et as ye,f as be,i as R,u as xe}from"./debug-2pVES-2G.js";import{n as z}from"./analytics-COpjZpvd.js";import{f as Se,v as Ce}from"./model-Dd3x121y.js";import{Gt as we}from"./prompt-BnDapYGL.js";import{S as Te,x as Ee}from"./sleep-xKMbXTJe.js";import*as B from"path";import{dirname as De}from"path";r(),oe(),y(),we(),j(),C(),D(),pe(),F(),R(),he(),Se(),_e(),ge(),S(),f(),le(),h();function Oe(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.type!==`assistant`)continue;let r=n.message.content.find(e=>e.type===`tool_use`&&e.name===`TodoWrite`);if(r?.type!==`tool_use`)continue;let i=r.input;if(typeof i!=`object`||!i)return[];let a=ne().safeParse(i.todos);return a.success?a.data:[]}return[]}function ke(e,t){if(e.fileHistorySnapshots&&e.fileHistorySnapshots.length>0&&O(e.fileHistorySnapshots,e=>{t(t=>({...t,fileHistory:e}))}),!re()&&e.messages&&e.messages.length>0){let n=Oe(e.messages);if(n.length>0){let e=o();t(t=>({...t,todos:{...t.todos,[e]:n}}))}}}function V(e,t){if(!(!e&&!t))return{name:e??``,color:t==="default"?void 0:t}}function H(e,t,n){if(t)return{agentDefinition:t,agentType:void 0};if(!e)return l(void 0),{agentDefinition:void 0,agentType:void 0};let r=n.activeAgents.find(t=>t.agentType===e);return r?(l(r.agentType),!a()&&r.model&&r.model!==`inherit`&&c(Ce(r.model)),{agentDefinition:r,agentType:r.agentType}):(L(`Resumed session had agent "${e}" but it is no longer available. Using default behavior.`),l(void 0),{agentDefinition:void 0,agentType:void 0})}function U(e){let t=P();if(t){_(t);return}if(e){try{process.chdir(e.worktreePath)}catch{_(null);return}N(e.worktreePath),i(I()),d(e),M(),u(),k.cache.clear?.()}}function Ae(){let e=P();if(e){d(null),M(),u(),k.cache.clear?.();try{process.chdir(e.originalCwd)}catch{return}N(e.originalCwd),i(I())}}async function je(e,n,r){if(n.forkSession)e.contentReplacements?.length&&await p(e.contentReplacements);else{let r=n.sessionIdOverride??e.sessionId;r&&(t(ee(r),n.transcriptPath?De(n.transcriptPath):null),await me(),x(r))}fe(n.forkSession?{...e,worktreeSession:void 0}:e),n.forkSession||(U(e.worktreeSession),ae());let{agentDefinition:i,agentType:a}=H(e.agentSetting,r.mainThreadAgentDefinition,r.agentDefinitions);T(`normal`),n.includeAttribution;let o=V(e.agentName,e.agentColor);b(e.agentName);let s=r.agentDefinitions;return{messages:e.messages,fileHistorySnapshots:e.fileHistorySnapshots,contentReplacements:e.contentReplacements,agentName:e.agentName,agentColor:e.agentColor==="default"?void 0:e.agentColor,restoredAgentDef:i,initialState:{...r.initialState,...a&&{agent:a},...o&&{standaloneAgentContext:o},agentDefinitions:s}}}Te(),r(),se(),z(),de(),A(),ve(),R(),be(),w(),n();var Me=1e3,Ne=500,Pe=300,Fe=2e3,Ie=typeof Bun<`u`,W=null,G=null,K=new Set,q=!1,J=!1,Y=!1,X=null,Z=e();async function Le(){if(q||J)return;q=!0,Y||(Y=!0,ie(()=>{m(),Z.emit()}));let e=await ze();e.length!==0&&(L(`Watching for changes in skill/command directories: ${e.join(`, `)}...`),W=Ee.watch(e,{persistent:!0,ignoreInitial:!0,depth:2,awaitWriteFinish:{stabilityThreshold:Me,pollInterval:Ne},ignored:(e,t)=>t&&!t.isFile()&&!t.isDirectory()?!0:e.split(B.sep).some(e=>e===`.git`),ignorePermissionErrors:!0,usePolling:Ie,interval:Fe,atomic:!0}),W.on(`add`,$),W.on(`change`,$),W.on(`unlink`,$),X=ye(async()=>{await Q()}))}function Q(){J=!0,X&&(X(),X=null);let e=Promise.resolve();return W&&(e=W.close(),W=null),G&&(clearTimeout(G),G=null),K.clear(),Z.clear(),e}var Re=Z.subscribe;async function ze(){let e=xe(),t=[],n=g(`userSettings`,`skills`);if(n)try{await e.stat(n),t.push(n)}catch{}let r=g(`userSettings`,`commands`);if(r)try{await e.stat(r),t.push(r)}catch{}let i=g(`projectSettings`,`skills`);if(i)try{let n=B.resolve(i);await e.stat(n),t.push(n)}catch{}let a=g(`projectSettings`,`commands`);if(a)try{let n=B.resolve(a);await e.stat(n),t.push(n)}catch{}for(let n of s()){let r=B.join(n,`.workmate`,`skills`);try{await e.stat(r),t.push(r)}catch{}}return t}function $(e){L(`Detected skill change: ${e}`),Be(e)}function Be(e){K.add(e),G&&clearTimeout(G),G=setTimeout(async()=>{G=null;let e=[...K];if(K.clear(),v(await ce(`skills`,e[0]))){L(`ConfigChange hook blocked skill reload (${e.length} paths)`);return}ue(),te(),E(),Z.emit()},Pe)}var Ve={initialize:Le,dispose:Q,subscribe:Re};export{H as a,je as i,V as n,ke as o,Ae as r,U as s,Ve as t};
@@ -1,5 +1,5 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{a as t,n,s as r}from"./projectContext-BFfHgAMh.js";import{i,r as a}from"./instinctParser-Dt-lqnDe.js";import{c as o,o as s,s as c}from"./skillLifecycle-iO_3s9Ff.js";import{dirname as l,join as u}from"node:path";import{existsSync as d}from"node:fs";import{createHash as f}from"node:crypto";import{mkdir as p,readFile as m,rename as h,writeFile as g}from"node:fs/promises";async function _(e){let t=e.prompt.trim();if(!t)throw Error(`Cannot record an empty skill gap`);let n=e.project??r(e.cwd),i=await A(n,e.rootDir),a=F(t),o=new Date().toISOString(),s=i.gaps[a],c={key:a,prompt:t,count:(s?.count??0)+1,draftHits:s?.draftHits??0,draftHitSessions:s?.draftHitSessions??[],status:s?.status??`pending`,sessionId:e.sessionId??`unknown-session`,cwd:e.cwd??n.cwd,projectId:n.projectId,projectName:n.projectName,recommendations:(e.recommendations??[]).slice(0,5).map(e=>({name:e.name,description:e.description,score:e.score})),createdAt:s?.createdAt??o,updatedAt:o,draft:s?.draft,active:s?.active};return c.status===`rejected`?(i.gaps[a]=c,await N(n,i,e.rootDir),c):(!c.draft&&C(c)&&(c.draft=await T(c,n),c.status=`draft`,await z()),c.draft&&!c.active&&w(c)&&(c.active=await E(c,n),c.status=`active`,await z()),i.gaps[a]=c,await N(n,i,e.rootDir),c)}async function v(e=r(),t){let n=await A(e,t);return Object.values(n.gaps).sort((e,t)=>e.key.localeCompare(t.key))}async function y(e,t=r(),n){let i=await A(t,n);for(let t of Object.values(i.gaps))if(t.draft?.skillPath===e)return t.key}async function b(e,t=r(),n,i=`unknown-session`){let a=await A(t,n),o=a.gaps[e];if(!o?.draft||o.active)return o;let s=o.draftHitSessions??[];if(s.includes(i))return o;let c=new Date().toISOString(),l={...o,draftHits:o.draftHits+1,draftHitSessions:[...s,i],updatedAt:c};return w(l)&&(l.active=await E(l,t),l.status=`active`,await z()),a.gaps[e]=l,await N(t,a,n),l}async function x(e,t=r(),n){let i=await A(t,n),a=i.gaps[e];if(!a)return;if(a.status===`rejected`||a.draft)return a;let o={...a,draft:await T(a,t),status:`draft`,updatedAt:new Date().toISOString()};return i.gaps[e]=o,await N(t,i,n),await z(),o}async function S(e,t=r(),n){let i=await A(t,n),a=i.gaps[e];if(!a)return;let o={...a,status:`rejected`,updatedAt:new Date().toISOString()};return i.gaps[e]=o,await N(t,i,n),o}function C(e){return e.count>=B}function w(e){return e.draft?e.count>=V||e.draftHits>=H:!1}async function T(e,t){let n=D(e,`pending`),r=u(t.projectRoot??t.cwd,`.workmate`,`skills`,`.drafts`),i=s([n],{cwd:t.projectRoot??t.cwd,outputRoot:r,scope:`project`,name:`draft-${I(e.prompt)}`,description:`Draft learned skill candidate. Promote after repeated evidence or explicit user correction.`}),a=u(i.outputPath,`SKILL.md`);return d(a)||await o({...i,content:i.content+`
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{a as t,n,s as r}from"./projectContext-BFfHgAMh.js";import{i,r as a}from"./instinctParser-Dt-lqnDe.js";import{c as o,o as s,s as c}from"./skillLifecycle-RXQp0JU7.js";import{dirname as l,join as u}from"node:path";import{existsSync as d}from"node:fs";import{createHash as f}from"node:crypto";import{mkdir as p,readFile as m,rename as h,writeFile as g}from"node:fs/promises";async function _(e){let t=e.prompt.trim();if(!t)throw Error(`Cannot record an empty skill gap`);let n=e.project??r(e.cwd),i=await A(n,e.rootDir),a=F(t),o=new Date().toISOString(),s=i.gaps[a],c={key:a,prompt:t,count:(s?.count??0)+1,draftHits:s?.draftHits??0,draftHitSessions:s?.draftHitSessions??[],status:s?.status??`pending`,sessionId:e.sessionId??`unknown-session`,cwd:e.cwd??n.cwd,projectId:n.projectId,projectName:n.projectName,recommendations:(e.recommendations??[]).slice(0,5).map(e=>({name:e.name,description:e.description,score:e.score})),createdAt:s?.createdAt??o,updatedAt:o,draft:s?.draft,active:s?.active};return c.status===`rejected`?(i.gaps[a]=c,await N(n,i,e.rootDir),c):(!c.draft&&C(c)&&(c.draft=await T(c,n),c.status=`draft`,await z()),c.draft&&!c.active&&w(c)&&(c.active=await E(c,n),c.status=`active`,await z()),i.gaps[a]=c,await N(n,i,e.rootDir),c)}async function v(e=r(),t){let n=await A(e,t);return Object.values(n.gaps).sort((e,t)=>e.key.localeCompare(t.key))}async function y(e,t=r(),n){let i=await A(t,n);for(let t of Object.values(i.gaps))if(t.draft?.skillPath===e)return t.key}async function b(e,t=r(),n,i=`unknown-session`){let a=await A(t,n),o=a.gaps[e];if(!o?.draft||o.active)return o;let s=o.draftHitSessions??[];if(s.includes(i))return o;let c=new Date().toISOString(),l={...o,draftHits:o.draftHits+1,draftHitSessions:[...s,i],updatedAt:c};return w(l)&&(l.active=await E(l,t),l.status=`active`,await z()),a.gaps[e]=l,await N(t,a,n),l}async function x(e,t=r(),n){let i=await A(t,n),a=i.gaps[e];if(!a)return;if(a.status===`rejected`||a.draft)return a;let o={...a,draft:await T(a,t),status:`draft`,updatedAt:new Date().toISOString()};return i.gaps[e]=o,await N(t,i,n),await z(),o}async function S(e,t=r(),n){let i=await A(t,n),a=i.gaps[e];if(!a)return;let o={...a,status:`rejected`,updatedAt:new Date().toISOString()};return i.gaps[e]=o,await N(t,i,n),o}function C(e){return e.count>=B}function w(e){return e.draft?e.count>=V||e.draftHits>=H:!1}async function T(e,t){let n=D(e,`pending`),r=u(t.projectRoot??t.cwd,`.workmate`,`skills`,`.drafts`),i=s([n],{cwd:t.projectRoot??t.cwd,outputRoot:r,scope:`project`,name:`draft-${I(e.prompt)}`,description:`Draft learned skill candidate. Promote after repeated evidence or explicit user correction.`}),a=u(i.outputPath,`SKILL.md`);return d(a)||await o({...i,content:i.content+`
2
2
  ## Promotion Rule
3
3
 
4
4
  Do not move this draft into active skills until the same gap repeats or the user explicitly confirms this should become reusable.
5
- `}),{type:`draft`,name:i.name,skillPath:a}}async function E(e,t){let n=s([D(e,`active`)],{cwd:t.projectRoot??t.cwd,scope:`project`,name:I(e.prompt),description:O(e.prompt)}),r=u(n.outputPath,`SKILL.md`);return d(r)||await o(n),{type:`active`,name:n.name,skillPath:r}}function D(e,t){return a({trigger:`When the user asks for ${L(e.prompt,120)}`,action:O(e.prompt),confidence:t===`active`?.82:.55,domain:k(e.prompt),source:`session-observation`,scope:`project`,projectId:e.projectId,projectName:e.projectName,evidence:[`Skill gap prompt: ${L(e.prompt,180)}`,`No high-confidence active skill was auto-loaded.`,`Observed ${e.count} time(s).`],status:t})}function O(e){return/feature\s*\(|feature flag|flag_name|stub|no-op|noop|最小实现/i.test(e)?`Audit feature flags by scanning feature() call sites, excluding generated/dependency noise, classifying each candidate as stub, shell, MVP, or thin-toggle, and writing an evidence-backed document.`:/skill|技能|学习|进化|evolve|learning/i.test(e)?`Run skill discovery first; auto-load only high-confidence matching skills; record a skill gap when none match; promote repeated or corrected gaps into learned skills.`:/test|测试|stub|调用链|参数/i.test(e)?`Infer tests from existing files, parameters, exports, and call chains before simplifying mocks or inventing behavior.`:`Reuse the workflow learned from this prompt: ${L(e,180)}.`}function k(e){let t=e.toLowerCase();return/test|测试|stub|fixture|断言/.test(t)?`testing`:/error|bug|fix|失败|错误|修复|debug/.test(t)?`debugging`:/security|安全|漏洞|secret|token/.test(t)?`security`:/git|commit|branch|pr\b/.test(t)?`git`:/style|lint|format|命名|规范/.test(t)?`code-style`:`workflow`}async function A(e,t){let n=P(e,t),r;try{r=await m(n,`utf8`)}catch(e){if(e.code===`ENOENT`)return{version:1,gaps:{}};throw e}try{return j(JSON.parse(r))}catch{let e=`${n}.corrupt-${Date.now()}`;try{await g(e,r,`utf8`)}catch{}return{version:1,gaps:{}}}}function j(e){let t={};for(let[n,r]of Object.entries(e.gaps??{})){let e=r,i=typeof e.draftHits==`number`&&Number.isFinite(e.draftHits)?e.draftHits:0,a=typeof e.count==`number`?e.count:1,o=M(e.status),s=!!e.draft,c=!!e.active,l=o;l===`draft`&&a<B&&!s&&(l=`pending`),l===`active`&&!c&&(l=s?`draft`:`pending`);let u=Array.isArray(e.draftHitSessions)?e.draftHitSessions.filter(e=>typeof e==`string`):[];t[n]={...r,count:a,draftHits:i,draftHitSessions:u,status:l}}return{version:1,gaps:t}}function M(e){return e===`pending`||e===`draft`||e===`active`||e===`rejected`?e:`pending`}async function N(e,t,n){let r=P(e,n);await p(l(r),{recursive:!0});let i=`${r}.tmp-${process.pid}-${Date.now()}`;await g(i,`${JSON.stringify(t,null,2)}\n`,`utf8`),await h(i,r)}function P(e,t){return u(t?e.projectId===`global`?u(t,`global`):u(t,`projects`,e.projectId):n(e.projectId),`skill-gaps.json`)}function F(e){return`${I(e)}-${R(e).slice(0,8)}`}function I(e){let t=e.replaceAll(`技能`,` skill `).replaceAll(`学习`,` learning `).replaceAll(`进化`,` evolution `).replaceAll(`测试`,` testing `).replaceAll(`最小实现`,` minimal implementation `).toLowerCase(),n=new Set([`the`,`and`,`for`,`with`,`this`,`that`,`user`,`about`,`feature`,`flag`,`name`]);return((t.match(/[a-z0-9][a-z0-9_-]{2,}/g)??[]).filter(e=>!n.has(e)).slice(0,5).join(`-`)||`learned-gap`).slice(0,54).replace(/-+$/g,``)}function L(e,t){return e.replace(/\s+/g,` `).trim().slice(0,t)}function R(e){return f(`sha1`).update(e).digest(`hex`)}async function z(){try{let{clearCommandsCache:e}=await import(`./commands-AcfFLgl5.js`);e()}catch{}}var B,V,H;e((()=>{i(),t(),c(),B=2,V=4,H=2}))();export{y as findGapKeyByDraftPath,x as promoteGapToDraft,v as readSkillGaps,b as recordDraftHit,_ as recordSkillGap,S as rejectSkillGap,w as shouldPromoteToActive,C as shouldPromoteToDraft};
5
+ `}),{type:`draft`,name:i.name,skillPath:a}}async function E(e,t){let n=s([D(e,`active`)],{cwd:t.projectRoot??t.cwd,scope:`project`,name:I(e.prompt),description:O(e.prompt)}),r=u(n.outputPath,`SKILL.md`);return d(r)||await o(n),{type:`active`,name:n.name,skillPath:r}}function D(e,t){return a({trigger:`When the user asks for ${L(e.prompt,120)}`,action:O(e.prompt),confidence:t===`active`?.82:.55,domain:k(e.prompt),source:`session-observation`,scope:`project`,projectId:e.projectId,projectName:e.projectName,evidence:[`Skill gap prompt: ${L(e.prompt,180)}`,`No high-confidence active skill was auto-loaded.`,`Observed ${e.count} time(s).`],status:t})}function O(e){return/feature\s*\(|feature flag|flag_name|stub|no-op|noop|最小实现/i.test(e)?`Audit feature flags by scanning feature() call sites, excluding generated/dependency noise, classifying each candidate as stub, shell, MVP, or thin-toggle, and writing an evidence-backed document.`:/skill|技能|学习|进化|evolve|learning/i.test(e)?`Run skill discovery first; auto-load only high-confidence matching skills; record a skill gap when none match; promote repeated or corrected gaps into learned skills.`:/test|测试|stub|调用链|参数/i.test(e)?`Infer tests from existing files, parameters, exports, and call chains before simplifying mocks or inventing behavior.`:`Reuse the workflow learned from this prompt: ${L(e,180)}.`}function k(e){let t=e.toLowerCase();return/test|测试|stub|fixture|断言/.test(t)?`testing`:/error|bug|fix|失败|错误|修复|debug/.test(t)?`debugging`:/security|安全|漏洞|secret|token/.test(t)?`security`:/git|commit|branch|pr\b/.test(t)?`git`:/style|lint|format|命名|规范/.test(t)?`code-style`:`workflow`}async function A(e,t){let n=P(e,t),r;try{r=await m(n,`utf8`)}catch(e){if(e.code===`ENOENT`)return{version:1,gaps:{}};throw e}try{return j(JSON.parse(r))}catch{let e=`${n}.corrupt-${Date.now()}`;try{await g(e,r,`utf8`)}catch{}return{version:1,gaps:{}}}}function j(e){let t={};for(let[n,r]of Object.entries(e.gaps??{})){let e=r,i=typeof e.draftHits==`number`&&Number.isFinite(e.draftHits)?e.draftHits:0,a=typeof e.count==`number`?e.count:1,o=M(e.status),s=!!e.draft,c=!!e.active,l=o;l===`draft`&&a<B&&!s&&(l=`pending`),l===`active`&&!c&&(l=s?`draft`:`pending`);let u=Array.isArray(e.draftHitSessions)?e.draftHitSessions.filter(e=>typeof e==`string`):[];t[n]={...r,count:a,draftHits:i,draftHitSessions:u,status:l}}return{version:1,gaps:t}}function M(e){return e===`pending`||e===`draft`||e===`active`||e===`rejected`?e:`pending`}async function N(e,t,n){let r=P(e,n);await p(l(r),{recursive:!0});let i=`${r}.tmp-${process.pid}-${Date.now()}`;await g(i,`${JSON.stringify(t,null,2)}\n`,`utf8`),await h(i,r)}function P(e,t){return u(t?e.projectId===`global`?u(t,`global`):u(t,`projects`,e.projectId):n(e.projectId),`skill-gaps.json`)}function F(e){return`${I(e)}-${R(e).slice(0,8)}`}function I(e){let t=e.replaceAll(`技能`,` skill `).replaceAll(`学习`,` learning `).replaceAll(`进化`,` evolution `).replaceAll(`测试`,` testing `).replaceAll(`最小实现`,` minimal implementation `).toLowerCase(),n=new Set([`the`,`and`,`for`,`with`,`this`,`that`,`user`,`about`,`feature`,`flag`,`name`]);return((t.match(/[a-z0-9][a-z0-9_-]{2,}/g)??[]).filter(e=>!n.has(e)).slice(0,5).join(`-`)||`learned-gap`).slice(0,54).replace(/-+$/g,``)}function L(e,t){return e.replace(/\s+/g,` `).trim().slice(0,t)}function R(e){return f(`sha1`).update(e).digest(`hex`)}async function z(){try{let{clearCommandsCache:e}=await import(`./commands-CfYMwgP7.js`);e()}catch{}}var B,V,H;e((()=>{i(),t(),c(),B=2,V=4,H=2}))();export{y as findGapKeyByDraftPath,x as promoteGapToDraft,v as readSkillGaps,b as recordDraftHit,_ as recordSkillGap,S as rejectSkillGap,w as shouldPromoteToActive,C as shouldPromoteToDraft};
@@ -1,6 +1,6 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{i as t,o as n}from"./envUtils-QyzA_cFM.js";import{o as r,t as i}from"./localSearch-yVCDrVrf.js";import{l as a,u as o}from"./instinctParser-Dt-lqnDe.js";import{basename as s,dirname as c,join as l}from"node:path";import{existsSync as u}from"node:fs";import{mkdir as d,readFile as f,readdir as p,rename as m,rm as ee,writeFile as h}from"node:fs/promises";function g(e){return e.length!==0&&e.reduce((e,t)=>e+t.confidence,0)/e.length>=a().minConfidence}function te(e){let t=e[0]?.domain??`project`,n=b[t],r=new Set;for(let t of e){for(let e of`${t.trigger} ${t.action}`.toLowerCase().split(/[^a-z0-9]+/))if(y(e)&&r.add(e),r.size>=5)break;if(r.size>=5)break}let i=_([n,...r].join(`-`));return v(i)?`${n}-learned-pattern`:i}function _(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``).slice(0,64).replace(/-$/g,``)||`learned-skill`}function v(e){return x.has(e)}function y(e){return e.length>2&&![`when`,`with`,`this`,`that`,`user`,`project`,`prefer`,`avoid`,`use`,`using`,`the`,`and`,`for`].includes(e)}var b,x,S=e((()=>{o(),b={workflow:`workflow`,testing:`testing`,debugging:`debugging`,"code-style":`style`,security:`security`,git:`git`,project:`project`},x=new Set([`learned-skill`,`better-skill`,`new-skill`,`project-skill`,`workflow-skill`])}));function C(e,t){if(e.length===0)throw Error(`Cannot generate a skill draft without instincts`);let n=t?.scope??e[0]?.scope??`project`,r=t?.name?_(t.name):E(e),i=e.reduce((e,t)=>e+t.confidence,0)/e.length,a=t?.description??D(e),o=re(r,n,t),s=O({name:r,description:a,confidence:i,instincts:e});return{name:r,description:a,scope:n,sourceInstinctIds:e.map(e=>e.id),confidence:Number(i.toFixed(2)),content:s,outputPath:o}}async function w(e,t,n){let r=C(e,t),i=await P(`skill`,r,n);for(let t of i){let n=ie(r,t);if(n>=.8)return{action:`append-evidence`,target:t,overlap:n,appendedPath:await ne(t,e)}}return{action:`create`,draft:r}}async function ne(e,t){let n=await f(e.path,`utf8`).catch(()=>e.content);if(Buffer.byteLength(n,`utf8`)>=M)return e.path;let r=t.flatMap(e=>e.evidence.map(e=>`- ${e}`)),a=r.slice(0,A);a.length<r.length&&a.push(`- [... ${r.length-a.length} more evidence entries omitted]`);let o=[``,`## Learned evidence (${new Date().toISOString()})`,``,...a,``].join(`
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{i as t,o as n}from"./envUtils-QyzA_cFM.js";import{o as r,t as i}from"./localSearch-Da8cVYoI.js";import{l as a,u as o}from"./instinctParser-Dt-lqnDe.js";import{basename as s,dirname as c,join as l}from"node:path";import{existsSync as u}from"node:fs";import{mkdir as d,readFile as f,readdir as p,rename as m,rm as ee,writeFile as h}from"node:fs/promises";function g(e){return e.length!==0&&e.reduce((e,t)=>e+t.confidence,0)/e.length>=a().minConfidence}function te(e){let t=e[0]?.domain??`project`,n=b[t],r=new Set;for(let t of e){for(let e of`${t.trigger} ${t.action}`.toLowerCase().split(/[^a-z0-9]+/))if(y(e)&&r.add(e),r.size>=5)break;if(r.size>=5)break}let i=_([n,...r].join(`-`));return v(i)?`${n}-learned-pattern`:i}function _(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``).slice(0,64).replace(/-$/g,``)||`learned-skill`}function v(e){return x.has(e)}function y(e){return e.length>2&&![`when`,`with`,`this`,`that`,`user`,`project`,`prefer`,`avoid`,`use`,`using`,`the`,`and`,`for`].includes(e)}var b,x,S=e((()=>{o(),b={workflow:`workflow`,testing:`testing`,debugging:`debugging`,"code-style":`style`,security:`security`,git:`git`,project:`project`},x=new Set([`learned-skill`,`better-skill`,`new-skill`,`project-skill`,`workflow-skill`])}));function C(e,t){if(e.length===0)throw Error(`Cannot generate a skill draft without instincts`);let n=t?.scope??e[0]?.scope??`project`,r=t?.name?_(t.name):E(e),i=e.reduce((e,t)=>e+t.confidence,0)/e.length,a=t?.description??D(e),o=re(r,n,t),s=O({name:r,description:a,confidence:i,instincts:e});return{name:r,description:a,scope:n,sourceInstinctIds:e.map(e=>e.id),confidence:Number(i.toFixed(2)),content:s,outputPath:o}}async function w(e,t,n){let r=C(e,t),i=await P(`skill`,r,n);for(let t of i){let n=ie(r,t);if(n>=.8)return{action:`append-evidence`,target:t,overlap:n,appendedPath:await ne(t,e)}}return{action:`create`,draft:r}}async function ne(e,t){let n=await f(e.path,`utf8`).catch(()=>e.content);if(Buffer.byteLength(n,`utf8`)>=M)return e.path;let r=t.flatMap(e=>e.evidence.map(e=>`- ${e}`)),a=r.slice(0,A);a.length<r.length&&a.push(`- [... ${r.length-a.length} more evidence entries omitted]`);let o=[``,`## Learned evidence (${new Date().toISOString()})`,``,...a,``].join(`
2
2
  `),s=n.endsWith(`
3
- `)?n+o:`${n}\n${o}`,c=Buffer.byteLength(s,`utf8`)>M?s.slice(0,M):s;return await h(e.path,c,`utf8`),i(),e.path}async function T(e){await d(e.outputPath,{recursive:!0});let t=l(e.outputPath,`SKILL.md`);await h(t,e.content,`utf8`),i();try{let{clearCommandsCache:e}=await import(`./commands-AcfFLgl5.js`);e()}catch{}return t}function re(e,n,r){return r?.outputRoot?l(r.outputRoot,e):n===`project`?l(r?.cwd??process.cwd(),`.workmate`,`skills`,e):l(r?.globalSkillsDir??l(t(),`skills`),e)}function E(e){return te(e)}function D(e){let t=(e[0]?.action??`Apply a learned project pattern`).replace(/\s+/g,` `).slice(0,120);return t.length>0?t:`Apply learned project patterns`}function O(e){let{name:t,description:n,confidence:r,instincts:i}=e;return[`---`,`name: ${t}`,`description: ${JSON.stringify(n)}`,`origin: skill-learning`,`confidence: ${Number(r.toFixed(2))}`,`evolved_from: [${i.map(e=>JSON.stringify(e.id)).join(`, `)}]`,`---`,``,`# ${k(t)}`,``,`## Trigger`,``,i.map(e=>`- ${e.trigger}`).join(`
3
+ `)?n+o:`${n}\n${o}`,c=Buffer.byteLength(s,`utf8`)>M?s.slice(0,M):s;return await h(e.path,c,`utf8`),i(),e.path}async function T(e){await d(e.outputPath,{recursive:!0});let t=l(e.outputPath,`SKILL.md`);await h(t,e.content,`utf8`),i();try{let{clearCommandsCache:e}=await import(`./commands-CfYMwgP7.js`);e()}catch{}return t}function re(e,n,r){return r?.outputRoot?l(r.outputRoot,e):n===`project`?l(r?.cwd??process.cwd(),`.workmate`,`skills`,e):l(r?.globalSkillsDir??l(t(),`skills`),e)}function E(e){return te(e)}function D(e){let t=(e[0]?.action??`Apply a learned project pattern`).replace(/\s+/g,` `).slice(0,120);return t.length>0?t:`Apply learned project patterns`}function O(e){let{name:t,description:n,confidence:r,instincts:i}=e;return[`---`,`name: ${t}`,`description: ${JSON.stringify(n)}`,`origin: skill-learning`,`confidence: ${Number(r.toFixed(2))}`,`evolved_from: [${i.map(e=>JSON.stringify(e.id)).join(`, `)}]`,`---`,``,`# ${k(t)}`,``,`## Trigger`,``,i.map(e=>`- ${e.trigger}`).join(`
4
4
  `),``,`## Action`,``,i.map(e=>`- ${e.action}`).join(`
5
5
  `),``,`## Evidence`,``,i.flatMap(e=>e.evidence.map(e=>`- ${e}`)).slice(0,j).join(`
6
6
  `),``].join(`
@@ -1,5 +1,5 @@
1
- import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{I as n,P as r,ai as i,hn as a,t as o,y as s}from"./src-BX54x08P.js";import{t as c}from"./jsx-runtime-Bb4Xn-E0.js";import{SC as l,xC as u}from"./loadAgentsDir-uuZYOgKn.js";import{i as d,t as f}from"./overlayContext-7wgLio1O.js";function p(){return[`Skill Search (自动技能匹配)`,`Status: ${l()?`enabled`:`disabled`}`,``,`When enabled, relevant skills are automatically matched and`,`injected into conversation context each turn.`].join(`
2
- `)}async function m(){if(l()&&process.env.SKILL_SEARCH_ENABLED!==`0`)return`Skill Search: already enabled`;process.env.SKILL_SEARCH_ENABLED=`1`;let e=[`Skill Search: enabled (SKILL_SEARCH_ENABLED=1)`];try{let{clearSkillIndexCache:t}=await import(`./localSearch-D6MhwvnR.js`);t(),e.push(`Skill index cache: cleared (will rebuild on next search)`)}catch{e.push(`Skill index cache: clear skipped`)}return e.join(`
1
+ import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{I as n,P as r,ai as i,hn as a,t as o,y as s}from"./src-BX54x08P.js";import{t as c}from"./jsx-runtime-Bb4Xn-E0.js";import{SC as l,xC as u}from"./loadAgentsDir-bmpKLPdG.js";import{i as d,t as f}from"./overlayContext-C5WPACKC.js";function p(){return[`Skill Search (自动技能匹配)`,`Status: ${l()?`enabled`:`disabled`}`,``,`When enabled, relevant skills are automatically matched and`,`injected into conversation context each turn.`].join(`
2
+ `)}async function m(){if(l()&&process.env.SKILL_SEARCH_ENABLED!==`0`)return`Skill Search: already enabled`;process.env.SKILL_SEARCH_ENABLED=`1`;let e=[`Skill Search: enabled (SKILL_SEARCH_ENABLED=1)`];try{let{clearSkillIndexCache:t}=await import(`./localSearch-Dbj8cXyO.js`);t(),e.push(`Skill index cache: cleared (will rebuild on next search)`)}catch{e.push(`Skill index cache: clear skipped`)}return e.join(`
3
3
  `)}async function h(){return l()?(process.env.SKILL_SEARCH_ENABLED=`0`,`Skill Search: disabled (SKILL_SEARCH_ENABLED=0)`):`Skill Search: already disabled`}function g({onDone:e}){d(`skill-search-panel`);let[t,i]=(0,v.useState)(0),o=(0,v.useMemo)(()=>[{label:`Status`,description:`显示自动 skill 匹配是否已启用`,run:()=>Promise.resolve(p())},{label:`Start`,description:`为本次会话启用自动 skill 匹配`,run:m},{label:`Stop`,description:`为本次会话禁用自动 skill 匹配`,run:h},{label:`About`,description:`自动 skill 匹配的工作原理`,run:()=>Promise.resolve(x)}],[]),c=()=>{let n=o[t];n&&n.run().then(t=>{e(t,{display:`system`})})};return a((e,t)=>{if(t.upArrow){i(e=>Math.max(0,e-1));return}if(t.downArrow){i(e=>Math.min(o.length-1,e+1));return}t.return&&c()}),(0,y.jsx)(s,{title:`Skill Search`,subtitle:`${o.length} actions`,onCancel:()=>e(`Skill search panel dismissed`,{display:`system`}),color:`background`,hideInputGuide:!0,children:(0,y.jsxs)(n,{flexDirection:`column`,children:[o.map((e,i)=>(0,y.jsxs)(n,{flexDirection:`row`,children:[(0,y.jsx)(r,{children:`${i===t?`›`:` `} ${e.label}`.padEnd(b)}),(0,y.jsx)(r,{dimColor:!0,children:e.description})]},e.label)),(0,y.jsx)(n,{marginTop:1,children:(0,y.jsx)(r,{dimColor:!0,children:`↑/↓ select · Enter run · Esc close`})})]})})}async function _(e,t,n){let r=n?.trim()??``;return r===`start`?(e(await m(),{display:`system`}),null):r===`stop`?(e(await h(),{display:`system`}),null):r===`about`?(e(x,{display:`system`}),null):r===`status`?(e(p(),{display:`system`}),null):(0,y.jsx)(g,{onDone:e})}var v,y,b,x;e((()=>{v=t(i(),1),o(),f(),u(),y=c(),b=28,x=`# Skill Search (自动技能匹配)
4
4
 
5
5
  Skill Search 控制对话中的自动技能匹配功能。
@@ -1 +1 @@
1
- import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{I as n,P as r,ai as i,h as a,t as o,y as s}from"./src-BX54x08P.js";import{t as c}from"./jsx-runtime-Bb4Xn-E0.js";import{fn as l,mn as u}from"./settings-D4M13toi.js";import{Hi as d,Mi as f,Ni as p,Wi as m,hd as h,md as g}from"./loadAgentsDir-uuZYOgKn.js";import{_,g as v}from"./startupProfiler-B9Qv2QGH.js";import{l as y,o as b}from"./stringUtils-Cs6E5f-B.js";function x(e,t){let n=t.trim();if(n===``)return e.slice();let r=n.toLowerCase().split(/\s+/);return e.filter(e=>{let t=`${e.name} ${e.description}`.toLowerCase();return r.every(e=>t.includes(e))})}var S=e((()=>{}));function C(e){return e===`plugin`?`plugin`:e===`mcp`?`mcp`:l(e)}function w({onExit:e,commands:t}){let[i,o]=(0,T.useState)(``),c=(0,T.useMemo)(()=>t.filter(e=>e.type===`prompt`&&(e.loadedFrom===`skills`||e.loadedFrom===`commands_DEPRECATED`||e.loadedFrom===`plugin`||e.loadedFrom===`mcp`)),[t]),l=(0,T.useMemo)(()=>x(c.map(e=>({...e,name:p(e),description:e.description??``})),i),[c,i]),u=(0,T.useMemo)(()=>{let e={policySettings:[],userSettings:[],projectSettings:[],localSettings:[],flagSettings:[],plugin:[],mcp:[]};for(let t of l){let n=t.source;n in e&&e[n].push(t)}for(let t of Object.values(e))t.sort((e,t)=>p(e).localeCompare(p(t)));return e},[l]),f=()=>{e(`Skills dialog dismissed`,{display:`system`})};if(c.length===0)return(0,E.jsxs)(s,{title:`Skills`,subtitle:`No skills found`,onCancel:f,hideInputGuide:!0,children:[(0,E.jsx)(r,{dimColor:!0,children:`Create skills in .workmate/skills/ or ~/.workmate/skills/`}),(0,E.jsx)(r,{dimColor:!0,italic:!0,children:(0,E.jsx)(g,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`close`})})]});let m=e=>{switch(e){case`projectSettings`:case`localSettings`:return{label:`local`,color:`yellow`};case`userSettings`:return{label:`global`,color:`cyan`};case`policySettings`:return{label:`managed`,color:`magenta`};default:return}},h=(e,t)=>{let i=`~${v(d(e))}`,a=e.source===`plugin`?e.pluginInfo?.pluginManifest.name:void 0,o=m(e.source);return(0,E.jsxs)(n,{children:[(0,E.jsx)(r,{color:t?`suggestion`:void 0,children:p(e)}),o&&(0,E.jsxs)(r,{color:o.color,children:[` [`,o.label,`]`]}),(0,E.jsxs)(r,{dimColor:!0,children:[a?` · ${a}`:``,` · `,C(e.source),` · `,i,` tokens`]})]})};return(0,E.jsx)(a,{title:`Skills`,placeholder:`Type to filter skills…`,items:(0,T.useMemo)(()=>D.flatMap(e=>u[e]),[u]),getKey:e=>`${e.name}-${e.source}`,visibleCount:12,direction:`down`,onQueryChange:o,onSelect:t=>{e(`/${p(t)}`,{display:`user`})},onCancel:f,emptyMessage:e=>e.trim()?`No skills matching "${e.trim()}"`:`No skills found`,matchLabel:i.trim()===``?`${c.length} ${y(c.length,`skill`)}`:`${l.length}/${c.length} ${y(c.length,`skill`)}`,selectAction:`invoke skill`,renderItem:(e,t)=>h(e,t)})}var T,E,D,O=e((()=>{T=t(i(),1),f(),o(),m(),_(),u(),b(),h(),S(),E=c(),D=[`projectSettings`,`localSettings`,`userSettings`,`flagSettings`,`policySettings`,`plugin`,`mcp`]}));async function k(e,t){return(0,A.jsx)(w,{onExit:e,commands:t.options.commands})}var A;e((()=>{O(),A=c()}))();export{k as call};
1
+ import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{I as n,P as r,ai as i,h as a,t as o,y as s}from"./src-BX54x08P.js";import{t as c}from"./jsx-runtime-Bb4Xn-E0.js";import{fn as l,mn as u}from"./settings-D4M13toi.js";import{Hi as d,Mi as f,Ni as p,Wi as m,hd as h,md as g}from"./loadAgentsDir-bmpKLPdG.js";import{_,g as v}from"./startupProfiler-B9Qv2QGH.js";import{l as y,o as b}from"./stringUtils-Cs6E5f-B.js";function x(e,t){let n=t.trim();if(n===``)return e.slice();let r=n.toLowerCase().split(/\s+/);return e.filter(e=>{let t=`${e.name} ${e.description}`.toLowerCase();return r.every(e=>t.includes(e))})}var S=e((()=>{}));function C(e){return e===`plugin`?`plugin`:e===`mcp`?`mcp`:l(e)}function w({onExit:e,commands:t}){let[i,o]=(0,T.useState)(``),c=(0,T.useMemo)(()=>t.filter(e=>e.type===`prompt`&&(e.loadedFrom===`skills`||e.loadedFrom===`commands_DEPRECATED`||e.loadedFrom===`plugin`||e.loadedFrom===`mcp`)),[t]),l=(0,T.useMemo)(()=>x(c.map(e=>({...e,name:p(e),description:e.description??``})),i),[c,i]),u=(0,T.useMemo)(()=>{let e={policySettings:[],userSettings:[],projectSettings:[],localSettings:[],flagSettings:[],plugin:[],mcp:[]};for(let t of l){let n=t.source;n in e&&e[n].push(t)}for(let t of Object.values(e))t.sort((e,t)=>p(e).localeCompare(p(t)));return e},[l]),f=()=>{e(`Skills dialog dismissed`,{display:`system`})};if(c.length===0)return(0,E.jsxs)(s,{title:`Skills`,subtitle:`No skills found`,onCancel:f,hideInputGuide:!0,children:[(0,E.jsx)(r,{dimColor:!0,children:`Create skills in .workmate/skills/ or ~/.workmate/skills/`}),(0,E.jsx)(r,{dimColor:!0,italic:!0,children:(0,E.jsx)(g,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`close`})})]});let m=e=>{switch(e){case`projectSettings`:case`localSettings`:return{label:`local`,color:`yellow`};case`userSettings`:return{label:`global`,color:`cyan`};case`policySettings`:return{label:`managed`,color:`magenta`};default:return}},h=(e,t)=>{let i=`~${v(d(e))}`,a=e.source===`plugin`?e.pluginInfo?.pluginManifest.name:void 0,o=m(e.source);return(0,E.jsxs)(n,{children:[(0,E.jsx)(r,{color:t?`suggestion`:void 0,children:p(e)}),o&&(0,E.jsxs)(r,{color:o.color,children:[` [`,o.label,`]`]}),(0,E.jsxs)(r,{dimColor:!0,children:[a?` · ${a}`:``,` · `,C(e.source),` · `,i,` tokens`]})]})};return(0,E.jsx)(a,{title:`Skills`,placeholder:`Type to filter skills…`,items:(0,T.useMemo)(()=>D.flatMap(e=>u[e]),[u]),getKey:e=>`${e.name}-${e.source}`,visibleCount:12,direction:`down`,onQueryChange:o,onSelect:t=>{e(`/${p(t)}`,{display:`user`})},onCancel:f,emptyMessage:e=>e.trim()?`No skills matching "${e.trim()}"`:`No skills found`,matchLabel:i.trim()===``?`${c.length} ${y(c.length,`skill`)}`:`${l.length}/${c.length} ${y(c.length,`skill`)}`,selectAction:`invoke skill`,renderItem:(e,t)=>h(e,t)})}var T,E,D,O=e((()=>{T=t(i(),1),f(),o(),m(),_(),u(),b(),h(),S(),E=c(),D=[`projectSettings`,`localSettings`,`userSettings`,`flagSettings`,`policySettings`,`plugin`,`mcp`]}));async function k(e,t){return(0,A.jsx)(w,{onExit:e,commands:t.options.commands})}var A;e((()=>{O(),A=c()}))();export{k as call};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{t}from"./jsx-runtime-Bb4Xn-E0.js";import{n,t as r}from"./Settings-CPaqWNdP.js";async function i(e,t){return(0,a.jsx)(r,{onClose:e,context:t,defaultTab:`Status`})}var a;e((()=>{n(),a=t()}))();export{i as call};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{Ki as t,qi as n}from"./loadAgentsDir-uuZYOgKn.js";function r(e){return e?e.activeAgents.filter(e=>e.source!==`built-in`).reduce((e,t)=>e+n(`${t.agentType}: ${t.whenToUse}`),0):0}var i,a=e((()=>{t(),i=15e3}));export{r as n,a as r,i as t};
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{Ki as t,qi as n}from"./loadAgentsDir-bmpKLPdG.js";function r(e){return e?e.activeAgents.filter(e=>e.source!==`built-in`).reduce((e,t)=>e+n(`${t.agentType}: ${t.whenToUse}`),0):0}var i,a=e((()=>{t(),i=15e3}));export{r as n,a as r,i as t};
@@ -0,0 +1 @@
1
+ import{a as e,r as t}from"./switcher-rep86o4_.js";t();export{e as restoreActiveProvider};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{m as t,s as n}from"./settings-D4M13toi.js";import{i as r,n as i,r as a,t as o}from"./loader-BMAtuwRa.js";function s(e=a()){let t=n(`userSettings`)?.activeProviderId;if(t&&e.some(e=>e.id===t))return t;let r=process.env.OPENAI_BASE_URL,i=process.env.ANTHROPIC_BASE_URL;for(let t of e)if(t.kind===`anthropic-compat`&&i===t.baseUrl||t.kind===`openai-compat`&&r===t.baseUrl)return t.id}function c(e){if(e.apiKey)return e.apiKey;if(e.apiKeyEnv)return process.env[e.apiKeyEnv]}function l(e,t){let n=t??a(),r=o(e,n);if(!r){let t=n.map(e=>e.id).join(`, `);throw Error(`switchProvider: provider "${e}" not found. Available: ${t}`)}let i=r.kind===`anthropic-compat`?{ANTHROPIC_BASE_URL:r.baseUrl,ANTHROPIC_MODEL:r.defaultModel}:{WORKMATE_USE_OPENAI:`1`,OPENAI_BASE_URL:r.baseUrl,OPENAI_MODEL:r.defaultModel},s=[];if(r.kind===`openai-compat`){let e=process.env.WORKMATE_USE_OPENAI===`1`||!!process.env.OPENAI_API_KEY,t=!!process.env.ANTHROPIC_API_KEY;e&&t&&s.push(`Both ANTHROPIC_API_KEY and OpenAI-compat mode are set. ANTHROPIC_API_KEY is for workspace endpoints (/v1/agents, /v1/vaults). OpenAI-compat mode routes /v1/messages to a third-party provider. These are separate planes — verify this is intentional.`)}return!r.apiKey&&!r.apiKeyEnv?s.push(`Provider "${r.id}" has neither apiKey nor apiKeyEnv configured. Edit ~/.workmate/providers.json to add one.`):!r.apiKey&&r.apiKeyEnv&&!process.env[r.apiKeyEnv]&&s.push(`${r.apiKeyEnv} is not set in the current environment. Set it before starting Work Mate: export ${r.apiKeyEnv}=<your-api-key>`),{env:i,warnings:s,provider:r}}function u(e){return e.kind===`anthropic-compat`?`ANTHROPIC_API_KEY`:`OPENAI_API_KEY`}async function d(e,t){delete process.env.WORKMATE_USE_BEDROCK,delete process.env.WORKMATE_USE_VERTEX,delete process.env.WORKMATE_USE_FOUNDRY,delete process.env.WORKMATE_USE_GEMINI,delete process.env.WORKMATE_USE_GROK,e.kind===`anthropic-compat`?(delete process.env.WORKMATE_USE_OPENAI,delete process.env.OPENAI_BASE_URL,delete process.env.OPENAI_API_KEY,delete process.env.OPENAI_MODEL):(delete process.env.ANTHROPIC_BASE_URL,delete process.env.ANTHROPIC_API_KEY,delete process.env.ANTHROPIC_MODEL);let n=e.kind===`anthropic-compat`?{ANTHROPIC_BASE_URL:e.baseUrl,ANTHROPIC_API_KEY:t??``,ANTHROPIC_MODEL:e.defaultModel}:{WORKMATE_USE_OPENAI:`1`,OPENAI_BASE_URL:e.baseUrl,OPENAI_API_KEY:t??``,OPENAI_MODEL:e.defaultModel},{clearOpenAIClientCache:r}=await import(`./client-BP4DOH3K.js`);r();let{fetchAvailableModels:i}=await import(`./fetchModelList-D2quBF6M.js`);i.cache.clear();let{applyConfigEnvironmentVariables:a}=await import(`./managedEnv-ulQBH73B.js`);a(),Object.assign(process.env,n)}async function f(e,t){let{provider:n,warnings:r}=l(e,t),i=c(n),a=u(n);i||r.push(`No API key available for provider "${n.id}" — ${a} will be empty. Set ${n.apiKeyEnv??`an env var`} or add an apiKey field in ~/.workmate/providers.json.`),await d(n,i);let{updateSettingsForSource:o}=await import(`./settings-Dfit5gGT.js`);return o(`userSettings`,{activeProviderId:n.id,modelType:n.kind===`anthropic-compat`?`anthropic`:`openai`}),{provider:n,warnings:r}}async function p(e){let{getSettingsForSource:t}=await import(`./settings-Dfit5gGT.js`),n=t(`userSettings`)?.activeProviderId;if(!n)return{kind:`no-active-provider`};let i=a(),s=o(n,i);if(!s)return{kind:`provider-not-found`,id:n};if(s.defaultModel===e)return{kind:`unchanged`,providerId:n,model:e};let c=s.defaultModel;return r(i.map(t=>t.id===n?{...t,defaultModel:e}:t)),{kind:`updated`,providerId:n,previousModel:c,newModel:e}}async function m(){let{getSettingsForSource:e}=await import(`./settings-Dfit5gGT.js`),t=e(`userSettings`)?.activeProviderId;if(!t)return null;let n=o(t);if(!n)return null;let r=[],i=c(n);if(!i){let e=u(n);r.push(`No API key available for provider "${n.id}" — ${e} will be empty. Set ${n.apiKeyEnv??`an env var`} or add an apiKey field in ~/.workmate/providers.json.`)}return await d(n,i),{provider:n,warnings:r}}var h=e((()=>{t(),i()}));export{m as a,p as i,s as n,l as o,h as r,f as t};
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{m as t,s as n}from"./settings-D4M13toi.js";import{i as r,n as i,r as a,t as o}from"./loader-BMAtuwRa.js";function s(e=a()){let t=n(`userSettings`)?.activeProviderId;if(t&&e.some(e=>e.id===t))return t;let r=process.env.OPENAI_BASE_URL,i=process.env.ANTHROPIC_BASE_URL;for(let t of e)if(t.kind===`anthropic-compat`&&i===t.baseUrl||t.kind===`openai-compat`&&r===t.baseUrl)return t.id}function c(e){if(e.apiKey)return e.apiKey;if(e.apiKeyEnv)return process.env[e.apiKeyEnv]}function l(e,t){let n=t??a(),r=o(e,n);if(!r){let t=n.map(e=>e.id).join(`, `);throw Error(`switchProvider: provider "${e}" not found. Available: ${t}`)}let i=r.kind===`anthropic-compat`?{ANTHROPIC_BASE_URL:r.baseUrl,ANTHROPIC_MODEL:r.defaultModel}:{WORKMATE_USE_OPENAI:`1`,OPENAI_BASE_URL:r.baseUrl,OPENAI_MODEL:r.defaultModel},s=[];if(r.kind===`openai-compat`){let e=process.env.WORKMATE_USE_OPENAI===`1`||!!process.env.OPENAI_API_KEY,t=!!process.env.ANTHROPIC_API_KEY;e&&t&&s.push(`Both ANTHROPIC_API_KEY and OpenAI-compat mode are set. ANTHROPIC_API_KEY is for workspace endpoints (/v1/agents, /v1/vaults). OpenAI-compat mode routes /v1/messages to a third-party provider. These are separate planes — verify this is intentional.`)}return!r.apiKey&&!r.apiKeyEnv?s.push(`Provider "${r.id}" has neither apiKey nor apiKeyEnv configured. Edit ~/.workmate/providers.json to add one.`):!r.apiKey&&r.apiKeyEnv&&!process.env[r.apiKeyEnv]&&s.push(`${r.apiKeyEnv} is not set in the current environment. Set it before starting Work Mate: export ${r.apiKeyEnv}=<your-api-key>`),{env:i,warnings:s,provider:r}}function u(e){return e.kind===`anthropic-compat`?`ANTHROPIC_API_KEY`:`OPENAI_API_KEY`}async function d(e,t){delete process.env.WORKMATE_USE_BEDROCK,delete process.env.WORKMATE_USE_VERTEX,delete process.env.WORKMATE_USE_FOUNDRY,delete process.env.WORKMATE_USE_GEMINI,delete process.env.WORKMATE_USE_GROK,e.kind===`anthropic-compat`?(delete process.env.WORKMATE_USE_OPENAI,delete process.env.OPENAI_BASE_URL,delete process.env.OPENAI_API_KEY,delete process.env.OPENAI_MODEL):(delete process.env.ANTHROPIC_BASE_URL,delete process.env.ANTHROPIC_API_KEY,delete process.env.ANTHROPIC_MODEL);let n=e.kind===`anthropic-compat`?{ANTHROPIC_BASE_URL:e.baseUrl,ANTHROPIC_API_KEY:t??``,ANTHROPIC_MODEL:e.defaultModel}:{WORKMATE_USE_OPENAI:`1`,OPENAI_BASE_URL:e.baseUrl,OPENAI_API_KEY:t??``,OPENAI_MODEL:e.defaultModel},{clearOpenAIClientCache:r}=await import(`./client-BP4DOH3K.js`);r();let{fetchAvailableModels:i}=await import(`./fetchModelList-DIa1HwAJ.js`);i.cache.clear();let{applyConfigEnvironmentVariables:a}=await import(`./managedEnv-DCGLDTP_.js`);a(),Object.assign(process.env,n)}async function f(e,t){let{provider:n,warnings:r}=l(e,t),i=c(n),a=u(n);i||r.push(`No API key available for provider "${n.id}" — ${a} will be empty. Set ${n.apiKeyEnv??`an env var`} or add an apiKey field in ~/.workmate/providers.json.`),await d(n,i);let{updateSettingsForSource:o}=await import(`./settings-Dfit5gGT.js`);return o(`userSettings`,{activeProviderId:n.id,modelType:n.kind===`anthropic-compat`?`anthropic`:`openai`}),{provider:n,warnings:r}}async function p(e){let{getSettingsForSource:t}=await import(`./settings-Dfit5gGT.js`),n=t(`userSettings`)?.activeProviderId;if(!n)return{kind:`no-active-provider`};let i=a(),s=o(n,i);if(!s)return{kind:`provider-not-found`,id:n};if(s.defaultModel===e)return{kind:`unchanged`,providerId:n,model:e};let c=s.defaultModel;return r(i.map(t=>t.id===n?{...t,defaultModel:e}:t)),{kind:`updated`,providerId:n,previousModel:c,newModel:e}}async function m(){let{getSettingsForSource:e}=await import(`./settings-Dfit5gGT.js`),t=e(`userSettings`)?.activeProviderId;if(!t)return null;let n=o(t);if(!n)return null;let r=[],i=c(n);if(!i){let e=u(n);r.push(`No API key available for provider "${n.id}" — ${e} will be empty. Set ${n.apiKeyEnv??`an env var`} or add an apiKey field in ~/.workmate/providers.json.`)}return await d(n,i),{provider:n,warnings:r}}var h=e((()=>{t(),i()}));export{m as a,p as i,s as n,l as o,h as r,f as t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{t}from"./jsx-runtime-Bb4Xn-E0.js";import{n,t as r}from"./BackgroundTasksDialog-CBhSmdz_.js";async function i(e,t){return(0,a.jsx)(r,{toolUseContext:t,onDone:e})}var a;e((()=>{n(),a=t()}))();export{i as call};
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{t}from"./jsx-runtime-Bb4Xn-E0.js";import{n,t as r}from"./BackgroundTasksDialog-WkoL4g5Q.js";async function i(e,t){return(0,a.jsx)(r,{toolUseContext:t,onDone:e})}var a;e((()=>{n(),a=t()}))();export{i as call};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{i as t,o as n}from"./envUtils-QyzA_cFM.js";import{g as r,h as i,m as a,vw as o,yw as s}from"./loadAgentsDir-uuZYOgKn.js";import{basename as c,join as l}from"path";import{appendFileSync as u,mkdirSync as d,readFileSync as f,readdirSync as p,writeFileSync as m}from"fs";import{randomUUID as h}from"crypto";function g(){let e=i(`templates`,process.cwd()),n=l(t(),`templates`);try{return p(n),[...e,n]}catch{return e}}function _(){let e=[],t=new Set;for(let n of g()){let r;try{r=p(n)}catch{continue}for(let i of r){if(!i.endsWith(`.md`))continue;let r=c(i,`.md`);if(t.has(r))continue;t.add(r);let o=l(n,i);try{let{frontmatter:t,content:n}=s(f(o,`utf-8`),o),i=(typeof t.description==`string`?t.description:``)||a(n,`No description`);e.push({name:r,description:i,filePath:o,frontmatter:t,content:n})}catch{}}}return e}function v(e){return _().find(t=>t.name===e)??null}var y=e((()=>{o(),n(),r()}));function b(){return l(t(),`jobs`)}function x(e){return l(b(),e)}function S(e,t,n,r,i){let a=x(e);d(a,{recursive:!0});let o=new Date().toISOString(),s={jobId:e,templateName:t,createdAt:o,updatedAt:o,status:`created`,args:i};return m(l(a,`state.json`),JSON.stringify(s,null,2),`utf-8`),m(l(a,`template.md`),n,`utf-8`),m(l(a,`input.txt`),r,`utf-8`),a}function C(e){try{let t=f(l(x(e),`state.json`),`utf-8`),n=JSON.parse(t);if(typeof n!=`object`||!n)return null;let r=n;return typeof r.jobId!=`string`||typeof r.status!=`string`?null:r}catch{return null}}function w(e,t){let n=x(e),r=C(e);if(!r)return!1;let i=l(n,`replies.jsonl`),a=JSON.stringify({text:t,timestamp:new Date().toISOString()});try{u(i,`${a}\n`,`utf-8`)}catch{m(i,`${a}\n`,`utf-8`)}let o={...r,updatedAt:new Date().toISOString()};return m(l(n,`state.json`),JSON.stringify(o,null,2),`utf-8`),!0}var T=e((()=>{n()}));async function E(e){let t=e[0];switch(t){case`list`:k();break;case`new`:A(e.slice(1));break;case`reply`:j(e.slice(1));break;case`status`:O(e.slice(1));break;default:console.error(`Unknown template command: ${t}`),D(),process.exitCode=1}}function D(){console.log(`
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{i as t,o as n}from"./envUtils-QyzA_cFM.js";import{g as r,h as i,m as a,vw as o,yw as s}from"./loadAgentsDir-bmpKLPdG.js";import{basename as c,join as l}from"path";import{appendFileSync as u,mkdirSync as d,readFileSync as f,readdirSync as p,writeFileSync as m}from"fs";import{randomUUID as h}from"crypto";function g(){let e=i(`templates`,process.cwd()),n=l(t(),`templates`);try{return p(n),[...e,n]}catch{return e}}function _(){let e=[],t=new Set;for(let n of g()){let r;try{r=p(n)}catch{continue}for(let i of r){if(!i.endsWith(`.md`))continue;let r=c(i,`.md`);if(t.has(r))continue;t.add(r);let o=l(n,i);try{let{frontmatter:t,content:n}=s(f(o,`utf-8`),o),i=(typeof t.description==`string`?t.description:``)||a(n,`No description`);e.push({name:r,description:i,filePath:o,frontmatter:t,content:n})}catch{}}}return e}function v(e){return _().find(t=>t.name===e)??null}var y=e((()=>{o(),n(),r()}));function b(){return l(t(),`jobs`)}function x(e){return l(b(),e)}function S(e,t,n,r,i){let a=x(e);d(a,{recursive:!0});let o=new Date().toISOString(),s={jobId:e,templateName:t,createdAt:o,updatedAt:o,status:`created`,args:i};return m(l(a,`state.json`),JSON.stringify(s,null,2),`utf-8`),m(l(a,`template.md`),n,`utf-8`),m(l(a,`input.txt`),r,`utf-8`),a}function C(e){try{let t=f(l(x(e),`state.json`),`utf-8`),n=JSON.parse(t);if(typeof n!=`object`||!n)return null;let r=n;return typeof r.jobId!=`string`||typeof r.status!=`string`?null:r}catch{return null}}function w(e,t){let n=x(e),r=C(e);if(!r)return!1;let i=l(n,`replies.jsonl`),a=JSON.stringify({text:t,timestamp:new Date().toISOString()});try{u(i,`${a}\n`,`utf-8`)}catch{m(i,`${a}\n`,`utf-8`)}let o={...r,updatedAt:new Date().toISOString()};return m(l(n,`state.json`),JSON.stringify(o,null,2),`utf-8`),!0}var T=e((()=>{n()}));async function E(e){let t=e[0];switch(t){case`list`:k();break;case`new`:A(e.slice(1));break;case`reply`:j(e.slice(1));break;case`status`:O(e.slice(1));break;default:console.error(`Unknown template command: ${t}`),D(),process.exitCode=1}}function D(){console.log(`
2
2
  Template Job Commands:
3
3
 
4
4
  wm job list List available templates
@@ -1 +1 @@
1
- import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"./terminalSetup-DedaY1P7.js";n();export{s as call,r as getNativeCSIuTerminalDisplayName,a as hasUsedBackslashReturn,e as isShiftEnterKeyBindingInstalled,i as markBackslashReturnUsed,o as setupTerminal,t as shouldOfferTerminalSetup};
1
+ import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"./terminalSetup-xe_P98fY.js";n();export{s as call,r as getNativeCSIuTerminalDisplayName,a as hasUsedBackslashReturn,e as isShiftEnterKeyBindingInstalled,i as markBackslashReturnUsed,o as setupTerminal,t as shouldOfferTerminalSetup};