@inkeep/open-knowledge 0.68.13-beta.0 → 0.68.13-beta.1

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 (88) hide show
  1. package/dist/{acp-harness-probe-Dm_THeRI.mjs → acp-harness-probe-CVx48dtu.mjs} +2 -2
  2. package/dist/cli.mjs +6 -6
  3. package/dist/constants-BbhqHRjz.mjs +2 -0
  4. package/dist/index.mjs +1 -1
  5. package/dist/init-UoT_opG9.mjs +1 -0
  6. package/dist/{init-DgDmq69W.mjs → init-wvLzDpl_.mjs} +3 -3
  7. package/dist/{launch-json-removal-CP7Vp5YU.mjs → launch-json-removal-oSwdtFwi.mjs} +2 -2
  8. package/dist/{loader-CXM6dHCk.mjs → loader-Brh8lf3U.mjs} +2 -2
  9. package/dist/loader-xA5a7Ria.mjs +1 -0
  10. package/dist/{preview-BCNCafey.mjs → preview-Cv-UiNuJ.mjs} +2 -2
  11. package/dist/preview-KjLDvULT.mjs +1 -0
  12. package/dist/public/assets/{ActivityModeContent-DfrlyJ2K.js → ActivityModeContent-CL2P7fiV.js} +1 -1
  13. package/dist/public/assets/{AddPropertiesButton-D5dTbhb4.js → AddPropertiesButton-BX7pKWX-.js} +1 -1
  14. package/dist/public/assets/{AgentDiffPane-DG6ebLgM.js → AgentDiffPane-BPSE8vuP.js} +1 -1
  15. package/dist/public/assets/{CodeMirrorPropInput-DsNxdRyF.js → CodeMirrorPropInput-Bn-9crm9.js} +1 -1
  16. package/dist/public/assets/{DocumentContext-BCC0kz3b.js → DocumentContext-iNjtedMe.js} +1 -1
  17. package/dist/public/assets/{EditorModeToggle-BRWdIrYd.js → EditorModeToggle-CM3xQ6hm.js} +1 -1
  18. package/dist/public/assets/{EnableSyncConfirmDialog-D3G22qOW.js → EnableSyncConfirmDialog-BqbAHwpW.js} +1 -1
  19. package/dist/public/assets/{ExcalidrawDocEditor-DXUUOZtT.js → ExcalidrawDocEditor-GRowkewd.js} +1 -1
  20. package/dist/public/assets/FeedbackForm-B7n4TuDA.js +1 -0
  21. package/dist/public/assets/{ImportSkillDialog-Hhu6ixmS.js → ImportSkillDialog-DGSjVMT7.js} +1 -1
  22. package/dist/public/assets/{LintConfigEditor-FFa96xmX.js → LintConfigEditor-RR2mPUiJ.js} +1 -1
  23. package/dist/public/assets/{ManagedArtifactProperties-DXkL3yD-.js → ManagedArtifactProperties-BIm4JweH.js} +1 -1
  24. package/dist/public/assets/ManagedArtifactProperties-CbOsujxI.js +1 -0
  25. package/dist/public/assets/{MermaidDocEditor-DFiElzJg.js → MermaidDocEditor-BRtM6DaX.js} +1 -1
  26. package/dist/public/assets/{PropertyDisplayRow-Bzwg-FYb.js → PropertyDisplayRow-YAPW0Vzx.js} +1 -1
  27. package/dist/public/assets/{SchemaConfigEditor-Cc6eKkRx.js → SchemaConfigEditor-DZUg2i1P.js} +1 -1
  28. package/dist/public/assets/SessionsHost-BGvSOtWP.js +2 -0
  29. package/dist/public/assets/{SettingsDialogBody-DOeAY7nT.js → SettingsDialogBody-C3x7KE2j.js} +1 -1
  30. package/dist/public/assets/{ShareReceiveMissDialog-C2UuNbHB.js → ShareReceiveMissDialog-BjINjq7K.js} +1 -1
  31. package/dist/public/assets/{SkillInstallMenu-B4WOkKt4.js → SkillInstallMenu-4TJrzVfJ.js} +1 -1
  32. package/dist/public/assets/{SkillToolbarControls-Biyr3dZ7.js → SkillToolbarControls-Bx4NtTCN.js} +1 -1
  33. package/dist/public/assets/{SourceEditor-BWa73m_P.js → SourceEditor-BXOEYsQl.js} +1 -1
  34. package/dist/public/assets/{TerminalPanel-CdIGSrlk.js → TerminalPanel-DSGjeU7n.js} +1 -1
  35. package/dist/public/assets/TerminalStartingNotice-CJiACmLP.js +1 -0
  36. package/dist/public/assets/{TerminalWindowApp-DdPg5VKf.js → TerminalWindowApp-EE1C8Lq2.js} +1 -1
  37. package/dist/public/assets/{TextDocEditor-HPVF8732.js → TextDocEditor-Bm-s1Pt_.js} +1 -1
  38. package/dist/public/assets/{ThreadView-OvqDyN6T.js → ThreadView-D3ko96SF.js} +1 -1
  39. package/dist/public/assets/{TimelineDiffPane-Ckgl_coO.js → TimelineDiffPane-BH9B6DS-.js} +1 -1
  40. package/dist/public/assets/{agent-diff-store-BFmjtfYd.js → agent-diff-store-ByQtin6L.js} +1 -1
  41. package/dist/public/assets/{auth-state-cache-BnSVjch0.js → auth-state-cache-oUVJ8UV4.js} +1 -1
  42. package/dist/public/assets/{comment-chips-kygMXaeH.js → comment-chips-hjmzTew_.js} +1 -1
  43. package/dist/public/assets/{config-provider-D1PN7JoK.js → config-provider-BoALF9T-.js} +3 -3
  44. package/dist/public/assets/{doc-undo-manager-CARWltvq.js → doc-undo-manager-dMhYLETR.js} +1 -1
  45. package/dist/public/assets/i18n-DOPPOAve.js +1 -0
  46. package/dist/public/assets/{index-DQxHPKe1.js → index-C-F7kRGA.js} +7 -7
  47. package/dist/public/assets/{messages-BVrCMt9-.js → messages-2BedOy73.js} +1 -1
  48. package/dist/public/assets/{messages-Baom0hOY.js → messages-2nWfbASZ.js} +1 -1
  49. package/dist/public/assets/{messages-CmF2j2PB.js → messages-B6TTQykB.js} +1 -1
  50. package/dist/public/assets/{messages-B6TwkPF1.js → messages-B8opShc5.js} +1 -1
  51. package/dist/public/assets/{messages-B13vqusL.js → messages-CWOPfzkF.js} +1 -1
  52. package/dist/public/assets/{messages-AuL-SqIm.js → messages-Cglx3rLh.js} +1 -1
  53. package/dist/public/assets/{messages-CRQg60mG.js → messages-CoH0BQof.js} +1 -1
  54. package/dist/public/assets/{messages-DwrUkQ2i.js → messages-CynqJMTN.js} +1 -1
  55. package/dist/public/assets/{messages-CI_JW3Ka.js → messages-DLTrnn4g.js} +1 -1
  56. package/dist/public/assets/{messages-COzhvUrO.js → messages-OyDWtEXG.js} +1 -1
  57. package/dist/public/assets/{messages-gjJDNMOj.js → messages-gJJ1yZCM.js} +1 -1
  58. package/dist/public/assets/{messages-CHSE3ku3.js → messages-ljeH_RVY.js} +1 -1
  59. package/dist/public/assets/{pending-receive-nav-store-BKMjkN9D.js → pending-receive-nav-store-CF3kehqJ.js} +1 -1
  60. package/dist/public/assets/{progress-Dybg1uzH.js → progress-CbG1gg9D.js} +1 -1
  61. package/dist/public/assets/{selection-context-BgI77ZBR.js → selection-context-CAWSjEO6.js} +1 -1
  62. package/dist/public/assets/{src-R3X5ZnD8.js → src-Bmk2IPNX.js} +1 -1
  63. package/dist/public/assets/{typing-burst-detector-DNgXjh1Q.js → typing-burst-detector-fDIDiJUd.js} +1 -1
  64. package/dist/public/assets/{uninstall-C645M4Nr.js → uninstall-C98LMiPc.js} +1 -1
  65. package/dist/public/assets/{use-activity-panel-B6l8ra7s.js → use-activity-panel-CjJ4rBmF.js} +1 -1
  66. package/dist/public/assets/{use-open-skill-pJoKUm1m.js → use-open-skill-CFJtjUVg.js} +1 -1
  67. package/dist/public/assets/{use-terminal-enabled-CcQe5wVH.js → use-terminal-enabled-HzVfIKTz.js} +1 -1
  68. package/dist/public/assets/{use-timeline-entry-diff-BbLANpzM.js → use-timeline-entry-diff-Dk_gfqeh.js} +1 -1
  69. package/dist/public/index.html +20 -20
  70. package/dist/public/uninstall.html +3 -3
  71. package/dist/{repair-launch-json-B3SzfvXY.mjs → repair-launch-json-gSF8PkKt.mjs} +2 -2
  72. package/dist/{repair-mcp-configs-CmqkSZAL.mjs → repair-mcp-configs-OXivJwj_.mjs} +2 -2
  73. package/dist/{src-B7uACjJn.mjs → src--1Qk4uzV.mjs} +2 -2
  74. package/dist/src-DUJZKz3R.mjs +1 -0
  75. package/dist/{start-DL1V-xma.mjs → start-C7eu1p_t.mjs} +2 -2
  76. package/dist/start-VUj47av0.mjs +1 -0
  77. package/package.json +5 -5
  78. package/dist/constants-BPBuLtK3.mjs +0 -2
  79. package/dist/init-Sf5PEKUM.mjs +0 -1
  80. package/dist/loader-Bd0_GI6a.mjs +0 -1
  81. package/dist/preview-C1iLqNR1.mjs +0 -1
  82. package/dist/public/assets/FeedbackForm-wkLeP765.js +0 -1
  83. package/dist/public/assets/ManagedArtifactProperties-DmlBS3lr.js +0 -1
  84. package/dist/public/assets/SessionsHost-DVBk6EHJ.js +0 -2
  85. package/dist/public/assets/TerminalStartingNotice-DqoBhFu7.js +0 -1
  86. package/dist/public/assets/i18n-Bl2radzN.js +0 -1
  87. package/dist/src-BcFY45YY.mjs +0 -1
  88. package/dist/start-CyMKijRo.mjs +0 -1
@@ -94,7 +94,7 @@
94
94
  -->
95
95
  <script>(() => { try { const raw = localStorage.getItem('ok-language-v1'); if (!raw) return; const o = JSON.parse(raw); if (typeof o?.locale !== 'string' || !/^[a-zA-Z]{2,8}(-[a-zA-Z0-9]{2,8})*$/.test(o.locale)) return; document.documentElement.lang = o.locale; document.documentElement.dir = o.dir === 'rtl' ? 'rtl' : 'ltr'; } catch {} })();</script>
96
96
  <style>html { background-color: #fafafa } html.dark { background-color: #171717 }</style>
97
- <script type="module" crossorigin src="./assets/index-DQxHPKe1.js"></script>
97
+ <script type="module" crossorigin src="./assets/index-C-F7kRGA.js"></script>
98
98
  <link rel="modulepreload" crossorigin href="./assets/chunk-CYidjpOJ.js">
99
99
  <link rel="modulepreload" crossorigin href="./assets/react-f2sANaYj.js">
100
100
  <link rel="modulepreload" crossorigin href="./assets/react-dom-DPxgxlDT.js">
@@ -117,9 +117,9 @@
117
117
  <link rel="modulepreload" crossorigin href="./assets/client-version-n6bVKfXT.js">
118
118
  <link rel="modulepreload" crossorigin href="./assets/use-apply-config-theme-CBmHKD_B.js">
119
119
  <link rel="modulepreload" crossorigin href="./assets/use-apply-config-color-theme-D-13D2Xt.js">
120
- <link rel="modulepreload" crossorigin href="./assets/messages-DwrUkQ2i.js">
121
- <link rel="modulepreload" crossorigin href="./assets/i18n-Bl2radzN.js">
122
- <link rel="modulepreload" crossorigin href="./assets/config-provider-D1PN7JoK.js">
120
+ <link rel="modulepreload" crossorigin href="./assets/messages-CynqJMTN.js">
121
+ <link rel="modulepreload" crossorigin href="./assets/i18n-DOPPOAve.js">
122
+ <link rel="modulepreload" crossorigin href="./assets/config-provider-BoALF9T-.js">
123
123
  <link rel="modulepreload" crossorigin href="./assets/dist-Nvb76hAm.js">
124
124
  <link rel="modulepreload" crossorigin href="./assets/dist-BHv-mziD.js">
125
125
  <link rel="modulepreload" crossorigin href="./assets/dist-BcvirUWL.js">
@@ -170,7 +170,7 @@
170
170
  <link rel="modulepreload" crossorigin href="./assets/doc-hash-Dx9hwyex.js">
171
171
  <link rel="modulepreload" crossorigin href="./assets/documents-fetch-CM9yjwOc.js">
172
172
  <link rel="modulepreload" crossorigin href="./assets/note-window-mode-CsmLTxU_.js">
173
- <link rel="modulepreload" crossorigin href="./assets/CodeMirrorPropInput-DsNxdRyF.js">
173
+ <link rel="modulepreload" crossorigin href="./assets/CodeMirrorPropInput-Bn-9crm9.js">
174
174
  <link rel="modulepreload" crossorigin href="./assets/git-branch-980jD05X.js">
175
175
  <link rel="modulepreload" crossorigin href="./assets/maximize-2-DGaFLVum.js">
176
176
  <link rel="modulepreload" crossorigin href="./assets/triangle-alert-CnzPFn6V.js">
@@ -198,9 +198,9 @@
198
198
  <link rel="modulepreload" crossorigin href="./assets/skill-scope-D9dg7q4P.js">
199
199
  <link rel="modulepreload" crossorigin href="./assets/skills-api-BU5k9WYz.js">
200
200
  <link rel="modulepreload" crossorigin href="./assets/use-workspace-DAuqjfCS.js">
201
- <link rel="modulepreload" crossorigin href="./assets/DocumentContext-BCC0kz3b.js">
201
+ <link rel="modulepreload" crossorigin href="./assets/DocumentContext-iNjtedMe.js">
202
202
  <link rel="modulepreload" crossorigin href="./assets/workspace-paths-hw0bowEX.js">
203
- <link rel="modulepreload" crossorigin href="./assets/progress-Dybg1uzH.js">
203
+ <link rel="modulepreload" crossorigin href="./assets/progress-CbG1gg9D.js">
204
204
  <link rel="modulepreload" crossorigin href="./assets/dist-Dhtu02232.js">
205
205
  <link rel="modulepreload" crossorigin href="./assets/radio-group-npdxiS6E.js">
206
206
  <link rel="modulepreload" crossorigin href="./assets/toggle-group-C2_37kV5.js">
@@ -210,29 +210,29 @@
210
210
  <link rel="modulepreload" crossorigin href="./assets/dist-wcXwpuqG.js">
211
211
  <link rel="modulepreload" crossorigin href="./assets/dist-BjJaywqn.js">
212
212
  <link rel="modulepreload" crossorigin href="./assets/dropdown-menu-DYfdElMl.js">
213
- <link rel="modulepreload" crossorigin href="./assets/PropertyDisplayRow-Bzwg-FYb.js">
213
+ <link rel="modulepreload" crossorigin href="./assets/PropertyDisplayRow-YAPW0Vzx.js">
214
214
  <link rel="modulepreload" crossorigin href="./assets/folder-config-api-D4N0ED0-.js">
215
- <link rel="modulepreload" crossorigin href="./assets/comment-chips-kygMXaeH.js">
215
+ <link rel="modulepreload" crossorigin href="./assets/comment-chips-hjmzTew_.js">
216
216
  <link rel="modulepreload" crossorigin href="./assets/SkillCostValue-BMSdP6MA.js">
217
217
  <link rel="modulepreload" crossorigin href="./assets/textarea-BlVs71hx.js">
218
- <link rel="modulepreload" crossorigin href="./assets/selection-context-BgI77ZBR.js">
218
+ <link rel="modulepreload" crossorigin href="./assets/selection-context-CAWSjEO6.js">
219
219
  <link rel="modulepreload" crossorigin href="./assets/lint-config-client-DBF47lRL.js">
220
220
  <link rel="modulepreload" crossorigin href="./assets/use-skills-dKHpTH68.js">
221
- <link rel="modulepreload" crossorigin href="./assets/ManagedArtifactProperties-DXkL3yD-.js">
222
- <link rel="modulepreload" crossorigin href="./assets/EnableSyncConfirmDialog-D3G22qOW.js">
221
+ <link rel="modulepreload" crossorigin href="./assets/ManagedArtifactProperties-BIm4JweH.js">
222
+ <link rel="modulepreload" crossorigin href="./assets/EnableSyncConfirmDialog-BqbAHwpW.js">
223
223
  <link rel="modulepreload" crossorigin href="./assets/arrow-up-right-BaKj0sfV.js">
224
224
  <link rel="modulepreload" crossorigin href="./assets/cursor-BZjrNgR6.js">
225
225
  <link rel="modulepreload" crossorigin href="./assets/RegisteredAgentIcon-5StNVeMK.js">
226
- <link rel="modulepreload" crossorigin href="./assets/use-open-skill-pJoKUm1m.js">
226
+ <link rel="modulepreload" crossorigin href="./assets/use-open-skill-CFJtjUVg.js">
227
227
  <link rel="modulepreload" crossorigin href="./assets/dist-DBMXz-r_.js">
228
228
  <link rel="modulepreload" crossorigin href="./assets/copilot-DLy2Kvlv.js">
229
229
  <link rel="modulepreload" crossorigin href="./assets/terminal-cli-display-XU6hL6_q.js">
230
230
  <link rel="modulepreload" crossorigin href="./assets/clipboard-adapter-815RzzoI.js">
231
- <link rel="modulepreload" crossorigin href="./assets/SkillInstallMenu-B4WOkKt4.js">
231
+ <link rel="modulepreload" crossorigin href="./assets/SkillInstallMenu-4TJrzVfJ.js">
232
232
  <link rel="modulepreload" crossorigin href="./assets/list-plus-BXaFXlLg.js">
233
233
  <link rel="modulepreload" crossorigin href="./assets/use-settings-route-WFqgyKMc.js">
234
234
  <link rel="modulepreload" crossorigin href="./assets/platform-labels-DmyLwrQy.js">
235
- <link rel="modulepreload" crossorigin href="./assets/AddPropertiesButton-D5dTbhb4.js">
235
+ <link rel="modulepreload" crossorigin href="./assets/AddPropertiesButton-BX7pKWX-.js">
236
236
  <link rel="modulepreload" crossorigin href="./assets/case-sensitive-CvV5vDMz.js">
237
237
  <link rel="modulepreload" crossorigin href="./assets/chevron-left-Y28NVO5d.js">
238
238
  <link rel="modulepreload" crossorigin href="./assets/lint-plugin-meta-BEuBahq9.js">
@@ -240,14 +240,14 @@
240
240
  <link rel="modulepreload" crossorigin href="./assets/wrench-X0fcm_5p.js">
241
241
  <link rel="modulepreload" crossorigin href="./assets/panel-DEds67m5.js">
242
242
  <link rel="modulepreload" crossorigin href="./assets/skeleton-IXDSleLh.js">
243
- <link rel="modulepreload" crossorigin href="./assets/typing-burst-detector-DNgXjh1Q.js">
243
+ <link rel="modulepreload" crossorigin href="./assets/typing-burst-detector-fDIDiJUd.js">
244
244
  <link rel="modulepreload" crossorigin href="./assets/terminal-D4S9lNQf.js">
245
245
  <link rel="modulepreload" crossorigin href="./assets/terminal-command-events-DBrAYz2u.js">
246
246
  <link rel="modulepreload" crossorigin href="./assets/field-Dq4rVnNT.js">
247
247
  <link rel="modulepreload" crossorigin href="./assets/use-conflicts-CXDbJNoF.js">
248
- <link rel="modulepreload" crossorigin href="./assets/auth-state-cache-BnSVjch0.js">
248
+ <link rel="modulepreload" crossorigin href="./assets/auth-state-cache-oUVJ8UV4.js">
249
249
  <link rel="modulepreload" crossorigin href="./assets/miss-dialog-store-Cj4KLsks.js">
250
- <link rel="modulepreload" crossorigin href="./assets/pending-receive-nav-store-BKMjkN9D.js">
250
+ <link rel="modulepreload" crossorigin href="./assets/pending-receive-nav-store-CF3kehqJ.js">
251
251
  <link rel="modulepreload" crossorigin href="./assets/target-navigation-intent-Dpq3EXpz.js">
252
252
  <link rel="modulepreload" crossorigin href="./assets/launcher-selection-BZDeoOtN.js">
253
253
  <link rel="modulepreload" crossorigin href="./assets/bug-report-send-manager-B4I-UPj9.js">
@@ -260,7 +260,7 @@
260
260
  <link rel="modulepreload" crossorigin href="./assets/dist-BHeX1K_T2.js">
261
261
  <link rel="modulepreload" crossorigin href="./assets/dist-Dk_qlbA92.js">
262
262
  <link rel="modulepreload" crossorigin href="./assets/text-viewer-languages-DE3Z2Ufk.js">
263
- <link rel="modulepreload" crossorigin href="./assets/EditorModeToggle-BRWdIrYd.js">
263
+ <link rel="modulepreload" crossorigin href="./assets/EditorModeToggle-CM3xQ6hm.js">
264
264
  <link rel="modulepreload" crossorigin href="./assets/ConfigSharingInfoTooltip-DzKdlED6.js">
265
265
  <link rel="modulepreload" crossorigin href="./assets/RowDisclosure-8rxC_kc0.js">
266
266
  <link rel="modulepreload" crossorigin href="./assets/tool-list-format-B0ec_7sK.js">
@@ -269,7 +269,7 @@
269
269
  <link rel="modulepreload" crossorigin href="./assets/SkillModeBanner-BjusWgkL.js">
270
270
  <link rel="modulepreload" crossorigin href="./assets/app-menubar-gate-Cv0nKfPN.js">
271
271
  <link rel="modulepreload" crossorigin href="./assets/file-tree-adapter-C4gKqxzg.js">
272
- <link rel="modulepreload" crossorigin href="./assets/agent-diff-store-BFmjtfYd.js">
272
+ <link rel="modulepreload" crossorigin href="./assets/agent-diff-store-ByQtin6L.js">
273
273
  <link rel="modulepreload" crossorigin href="./assets/ok-04mPbAHz.js">
274
274
  <link rel="modulepreload" crossorigin href="./assets/use-live-xterm-theme-aXDStBRf.js">
275
275
  <link rel="modulepreload" crossorigin href="./assets/input-group-DBosszKy.js">
@@ -32,7 +32,7 @@
32
32
  script above.
33
33
  -->
34
34
  <style>html { background-color: #fafafa } html.dark { background-color: #171717 }</style>
35
- <script type="module" crossorigin src="./assets/uninstall-C645M4Nr.js"></script>
35
+ <script type="module" crossorigin src="./assets/uninstall-C98LMiPc.js"></script>
36
36
  <link rel="modulepreload" crossorigin href="./assets/chunk-CYidjpOJ.js">
37
37
  <link rel="modulepreload" crossorigin href="./assets/react-f2sANaYj.js">
38
38
  <link rel="modulepreload" crossorigin href="./assets/react-dom-DPxgxlDT.js">
@@ -68,8 +68,8 @@
68
68
  <link rel="modulepreload" crossorigin href="./assets/badge-DXNaFLJT.js">
69
69
  <link rel="modulepreload" crossorigin href="./assets/input-CUJ5gt4q.js">
70
70
  <link rel="modulepreload" crossorigin href="./assets/textarea-BlVs71hx.js">
71
- <link rel="modulepreload" crossorigin href="./assets/messages-DwrUkQ2i.js">
72
- <link rel="modulepreload" crossorigin href="./assets/i18n-Bl2radzN.js">
71
+ <link rel="modulepreload" crossorigin href="./assets/messages-CynqJMTN.js">
72
+ <link rel="modulepreload" crossorigin href="./assets/i18n-DOPPOAve.js">
73
73
  <link rel="stylesheet" crossorigin href="./assets/globals-DeOHYo0q.css">
74
74
  </head>
75
75
 
@@ -1,2 +1,2 @@
1
- import{t as e}from"./launch-json-removal-CP7Vp5YU.mjs";import{join as t}from"node:path";function n(n){let i=n.logger??r,a=t(n.projectDir,`.claude`,`launch.json`);if(n.reclaimDisableEnv===`1`)return i({event:`launch-json-repair-skipped`,reason:`reclaim-disabled`}),{outcome:{configPath:a,outcome:`skipped-reclaim-disabled`},repairedCount:0};let o;try{o=e(n.projectDir)}catch(e){let t=e instanceof Error?e.message:String(e);return i({event:`launch-json-repair-write-failed`,configPath:a}),{outcome:{configPath:a,outcome:`write-failed`,error:t},repairedCount:0}}let s=o.kind===`removed`;return s&&i({event:`launch-json-repair-removed`,configPath:a}),{outcome:{configPath:a,outcome:o.kind},repairedCount:+!!s}}function r(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{n as repairLaunchJson};
2
- //# sourceMappingURL=repair-launch-json-B3SzfvXY.mjs.map
1
+ import{t as e}from"./launch-json-removal-oSwdtFwi.mjs";import{join as t}from"node:path";function n(n){let i=n.logger??r,a=t(n.projectDir,`.claude`,`launch.json`);if(n.reclaimDisableEnv===`1`)return i({event:`launch-json-repair-skipped`,reason:`reclaim-disabled`}),{outcome:{configPath:a,outcome:`skipped-reclaim-disabled`},repairedCount:0};let o;try{o=e(n.projectDir)}catch(e){let t=e instanceof Error?e.message:String(e);return i({event:`launch-json-repair-write-failed`,configPath:a}),{outcome:{configPath:a,outcome:`write-failed`,error:t},repairedCount:0}}let s=o.kind===`removed`;return s&&i({event:`launch-json-repair-removed`,configPath:a}),{outcome:{configPath:a,outcome:o.kind},repairedCount:+!!s}}function r(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{n as repairLaunchJson};
2
+ //# sourceMappingURL=repair-launch-json-gSF8PkKt.mjs.map
@@ -1,2 +1,2 @@
1
- import{Ho as e}from"./src-B2bAQ64a.mjs";import{a as t,m as n,s as r}from"./resolve-project-root-dt8lYC9W.mjs";import{d as i,v as a}from"./init-DgDmq69W.mjs";import{t as o}from"./mcp-migrate-event-9DFnNzHa.mjs";import{homedir as s}from"node:os";function c(e){let n=e.logger??d,i=e.home??s(),a=[];if(e.reclaimDisableEnv===`1`)return n({event:`mcp-config-repair-skipped`,reason:`reclaim-disabled`}),{outcomes:a,repairedCount:0};for(let o of t){let t=r[o],s=l(()=>t.configPath(``,i));if(s!==null&&a.push(u({scope:`user`,editorId:o,target:t,home:i,cwd:``,configPath:s,configPathOverride:void 0,logger:n})),t.projectConfigPath){let r=t.projectConfigPath,i=l(()=>r(e.projectDir));i!==null&&a.push(u({scope:`project`,editorId:o,target:t,home:void 0,cwd:e.projectDir,configPath:i,configPathOverride:i,logger:n}))}}return{outcomes:a,repairedCount:a.filter(e=>e.outcome===`repaired`).length}}function l(e){try{return e()}catch{return null}}function u(t){let r={scope:t.scope,editorId:t.editorId,configPath:t.configPath},s=i(t.target,t.cwd,t.home,t.configPathOverride);if(s===null)return{...r,outcome:`no-entry`};if(t.editorId===`pi`){if(n(s))return{...r,outcome:`canonical`}}else{let n=e(s);if(n.kind===`recognized`&&n.disposition===`keep`)return{...r,outcome:`canonical`};if(n.kind===`declined`&&t.scope===`project`)return t.logger({event:`mcp-config-repair-declined`,scope:t.scope,editorId:t.editorId,configPath:t.configPath,reason:n.reason}),{...r,outcome:`declined`,reason:n.reason}}t.logger(o({scope:t.scope,surface:`cli-repair`,editorId:t.editorId,configPath:t.configPath,priorEntry:s}));let c=a(t.target,t.cwd,{mode:`published`,skipAvailabilityCheck:!0},t.home,t.configPathOverride);if(c.action===`failed`){let e=c.error??`unknown write failure`;return t.logger({event:`mcp-config-repair-write-failed`,scope:t.scope,editorId:t.editorId,configPath:t.configPath,error:e}),{...r,outcome:`write-failed`,error:e}}return c.action===`declined`?(t.logger({event:`mcp-config-repair-declined`,scope:t.scope,editorId:t.editorId,configPath:t.configPath,reason:c.declineReason}),{...r,outcome:`declined`}):{...r,outcome:`repaired`}}function d(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{c as repairMcpConfigs};
2
- //# sourceMappingURL=repair-mcp-configs-CmqkSZAL.mjs.map
1
+ import{Ho as e}from"./src-B2bAQ64a.mjs";import{a as t,m as n,s as r}from"./resolve-project-root-dt8lYC9W.mjs";import{d as i,v as a}from"./init-wvLzDpl_.mjs";import{t as o}from"./mcp-migrate-event-9DFnNzHa.mjs";import{homedir as s}from"node:os";function c(e){let n=e.logger??d,i=e.home??s(),a=[];if(e.reclaimDisableEnv===`1`)return n({event:`mcp-config-repair-skipped`,reason:`reclaim-disabled`}),{outcomes:a,repairedCount:0};for(let o of t){let t=r[o],s=l(()=>t.configPath(``,i));if(s!==null&&a.push(u({scope:`user`,editorId:o,target:t,home:i,cwd:``,configPath:s,configPathOverride:void 0,logger:n})),t.projectConfigPath){let r=t.projectConfigPath,i=l(()=>r(e.projectDir));i!==null&&a.push(u({scope:`project`,editorId:o,target:t,home:void 0,cwd:e.projectDir,configPath:i,configPathOverride:i,logger:n}))}}return{outcomes:a,repairedCount:a.filter(e=>e.outcome===`repaired`).length}}function l(e){try{return e()}catch{return null}}function u(t){let r={scope:t.scope,editorId:t.editorId,configPath:t.configPath},s=i(t.target,t.cwd,t.home,t.configPathOverride);if(s===null)return{...r,outcome:`no-entry`};if(t.editorId===`pi`){if(n(s))return{...r,outcome:`canonical`}}else{let n=e(s);if(n.kind===`recognized`&&n.disposition===`keep`)return{...r,outcome:`canonical`};if(n.kind===`declined`&&t.scope===`project`)return t.logger({event:`mcp-config-repair-declined`,scope:t.scope,editorId:t.editorId,configPath:t.configPath,reason:n.reason}),{...r,outcome:`declined`,reason:n.reason}}t.logger(o({scope:t.scope,surface:`cli-repair`,editorId:t.editorId,configPath:t.configPath,priorEntry:s}));let c=a(t.target,t.cwd,{mode:`published`,skipAvailabilityCheck:!0},t.home,t.configPathOverride);if(c.action===`failed`){let e=c.error??`unknown write failure`;return t.logger({event:`mcp-config-repair-write-failed`,scope:t.scope,editorId:t.editorId,configPath:t.configPath,error:e}),{...r,outcome:`write-failed`,error:e}}return c.action===`declined`?(t.logger({event:`mcp-config-repair-declined`,scope:t.scope,editorId:t.editorId,configPath:t.configPath,reason:c.declineReason}),{...r,outcome:`declined`}):{...r,outcome:`repaired`}}function d(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{c as repairMcpConfigs};
2
+ //# sourceMappingURL=repair-mcp-configs-OXivJwj_.mjs.map
@@ -1,4 +1,4 @@
1
- import{o as e}from"./chunk-DTipWd-i.mjs";import{Ha as t,Ia as n,La as r,ac as i,oc as a}from"./src-B2bAQ64a.mjs";import{$ as o,Ct as s,Q as c,c as l,s as u}from"./sleep-zea4v2sB.mjs";import{Bi as d,ct as ee,ei as f,h as p,lt as m,st as h,ut as g,xr as _}from"./src-e2udu2Rw.mjs";import{A as v,I as y,L as b,O as x}from"./fs-traced-DgX7lP1u.mjs";import{C as S,S as C,_ as w,d as T,f as E,r as D}from"./server-lock-DKS1ePB3.mjs";import{t as O}from"./yazl-DejPO9b3.mjs";import{_ as k,h as te,m as A,v as j,x as M}from"./resolve-project-root-dt8lYC9W.mjs";import{c as N}from"./colors-DSyAT9Cz.mjs";import{a as ne,i as re}from"./acp-harness-probe-Dm_THeRI.mjs";import{D as ie,E as P,S as ae,T as F,_ as oe,b as se,o as ce}from"./init-DgDmq69W.mjs";import{n as le}from"./constants-BPBuLtK3.mjs";import{t as ue}from"./is-object-Bw0-z8qH.mjs";import"./loader-CXM6dHCk.mjs";import"./skill-teardown-DUZd_juy.mjs";import"./preview-BCNCafey.mjs";import{execSync as de,spawnSync as fe}from"node:child_process";import{basename as I,dirname as L,join as R,relative as pe,resolve as z,sep as me}from"node:path";import{cpSync as he,createWriteStream as ge,existsSync as B,lstatSync as _e,mkdirSync as V,mkdtempSync as ve,readFileSync as H,readdirSync as U,readlinkSync as ye,rmSync as be,statSync as xe,writeFileSync as W}from"node:fs";import{arch as Se,freemem as Ce,homedir as G,hostname as we,platform as Te,release as Ee,tmpdir as De,totalmem as Oe,type as ke,uptime as Ae}from"node:os";import"node:fs/promises";import{createHash as je}from"node:crypto";var Me=s();let Ne;function Pe(){return Ne}function Fe(e,t){if(t!==void 0&&t.length>0)return t;try{return f(e)?.rootPath}catch{return}}function Ie(e){let t=Fe(e.cwd,e.configuredProjectName),n=p({name:`cli`,project:t});return Ne=n,n.info({command:e.command,cwd:e.cwd,project:t},`cli command started`),n}const Le=new Set([`start`,`stop`,`status`,`clean`,`ui`,`mcp`,`preview`,`lint`,`deinit`,`auth`]);function Re(e,t,n=f){if(e!==void 0&&!Le.has(e))return null;let r=n(t);return r===null||r.distance===0?null:r.rootPath}let ze=null;function Be(e){ze=e}function Ve(){return ze??process.cwd()}const He=`Open Knowledge`;function Ue(e={}){let t=e.platformName??process.platform,n=e.productName??`OpenKnowledge`;return k(t).join(j({...e,platformName:t}),n)}function We(e={}){let t=e.platformName??process.platform,n=e.home??G(),r=e.env??process.env,i=k(t),a;return a=t===`win32`?r.LOCALAPPDATA||i.join(n,`AppData`,`Local`):t===`darwin`?i.join(n,`Library`,`Caches`):r.XDG_CACHE_HOME||i.join(n,`.cache`),i.join(a,`@inkeepopen-knowledge-desktop-updater`)}function Ge(e){if(typeof e!=`object`||!e)return null;let t=e.recentProjects;if(!Array.isArray(t))return null;let n=[];for(let e of t){if(typeof e!=`object`||!e)continue;let t=e;typeof t.path==`string`&&typeof t.name==`string`&&n.push({path:t.path,name:t.name})}return n}function Ke(e){let t=R(e,`state.json`);if(!B(t))return[];let n;try{n=JSON.parse(H(t,`utf-8`))}catch{return[]}return Ge(n)??[]}function qe(e){let t=R(e,`state.json`);if(!B(t))return!1;try{return Ge(JSON.parse(H(t,`utf-8`)))!==null}catch{return!1}}function Je(e,t){if(e.outcome===`not-present`)return`not-present (no DiagnosticReports directory)`;if(e.outcome===`unreadable-directory`)return`unreadable (${e.directoryErrorCode??`unknown`} reading DiagnosticReports)`;let n=[`${e.windowDays}d`,`${e.foreignIgnored} other-process report(s) ignored`,`${e.unparseable} unparseable`];e.droppedOverCap>0&&n.push(`${e.droppedOverCap} older dropped over cap`);let r=e.files.length-t;return r>0&&n.push(`${r} vanished before staging`),e.outcome===`none-in-window`?`none found in window (${n.join(`; `)})`:`${t} collected (${n.join(`; `)})`}function Ye(e){return e.replace(/\\+\/?/g,e=>{if(!e.endsWith(`/`))return e;let t=e.length-1;return`\\`.repeat(t-t%2)+`/`})}const Xe=RegExp(`("(?:${[`crashReporterKey`,`bootSessionUUID`].join(`|`)})"\\s*:\\s*)"[^"]*"`,`g`);function Ze(e){return e.replace(Xe,`$1"[REDACTED-DEVICE-ID]"`)}function Qe(e){return Ze(Ye(e))}const $e=/^(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2})(\.\d+)? ([+-]\d{2})(\d{2})$/;function et(e){if(typeof e!=`string`)return null;let t=$e.exec(e.trim());if(t===null)return null;let[,n,r,i=``,a,o]=t,s=Date.parse(`${n}T${r}${i}${a}:${o}`);return Number.isNaN(s)?null:s}function tt(e){try{let t=H(e,`utf-8`),n=t.indexOf(`
1
+ import{o as e}from"./chunk-DTipWd-i.mjs";import{Ha as t,Ia as n,La as r,ac as i,oc as a}from"./src-B2bAQ64a.mjs";import{$ as o,Ct as s,Q as c,c as l,s as u}from"./sleep-zea4v2sB.mjs";import{Bi as d,ct as ee,ei as f,h as p,lt as m,st as h,ut as g,xr as _}from"./src-e2udu2Rw.mjs";import{A as v,I as y,L as b,O as x}from"./fs-traced-DgX7lP1u.mjs";import{C as S,S as C,_ as w,d as T,f as E,r as D}from"./server-lock-DKS1ePB3.mjs";import{t as O}from"./yazl-DejPO9b3.mjs";import{_ as k,h as te,m as A,v as j,x as M}from"./resolve-project-root-dt8lYC9W.mjs";import{c as N}from"./colors-DSyAT9Cz.mjs";import{a as ne,i as re}from"./acp-harness-probe-CVx48dtu.mjs";import{D as ie,E as P,S as ae,T as F,_ as oe,b as se,o as ce}from"./init-wvLzDpl_.mjs";import{n as le}from"./constants-BbhqHRjz.mjs";import{t as ue}from"./is-object-Bw0-z8qH.mjs";import"./loader-Brh8lf3U.mjs";import"./skill-teardown-DUZd_juy.mjs";import"./preview-Cv-UiNuJ.mjs";import{execSync as de,spawnSync as fe}from"node:child_process";import{basename as I,dirname as L,join as R,relative as pe,resolve as z,sep as me}from"node:path";import{cpSync as he,createWriteStream as ge,existsSync as B,lstatSync as _e,mkdirSync as V,mkdtempSync as ve,readFileSync as H,readdirSync as U,readlinkSync as ye,rmSync as be,statSync as xe,writeFileSync as W}from"node:fs";import{arch as Se,freemem as Ce,homedir as G,hostname as we,platform as Te,release as Ee,tmpdir as De,totalmem as Oe,type as ke,uptime as Ae}from"node:os";import"node:fs/promises";import{createHash as je}from"node:crypto";var Me=s();let Ne;function Pe(){return Ne}function Fe(e,t){if(t!==void 0&&t.length>0)return t;try{return f(e)?.rootPath}catch{return}}function Ie(e){let t=Fe(e.cwd,e.configuredProjectName),n=p({name:`cli`,project:t});return Ne=n,n.info({command:e.command,cwd:e.cwd,project:t},`cli command started`),n}const Le=new Set([`start`,`stop`,`status`,`clean`,`ui`,`mcp`,`preview`,`lint`,`deinit`,`auth`]);function Re(e,t,n=f){if(e!==void 0&&!Le.has(e))return null;let r=n(t);return r===null||r.distance===0?null:r.rootPath}let ze=null;function Be(e){ze=e}function Ve(){return ze??process.cwd()}const He=`Open Knowledge`;function Ue(e={}){let t=e.platformName??process.platform,n=e.productName??`OpenKnowledge`;return k(t).join(j({...e,platformName:t}),n)}function We(e={}){let t=e.platformName??process.platform,n=e.home??G(),r=e.env??process.env,i=k(t),a;return a=t===`win32`?r.LOCALAPPDATA||i.join(n,`AppData`,`Local`):t===`darwin`?i.join(n,`Library`,`Caches`):r.XDG_CACHE_HOME||i.join(n,`.cache`),i.join(a,`@inkeepopen-knowledge-desktop-updater`)}function Ge(e){if(typeof e!=`object`||!e)return null;let t=e.recentProjects;if(!Array.isArray(t))return null;let n=[];for(let e of t){if(typeof e!=`object`||!e)continue;let t=e;typeof t.path==`string`&&typeof t.name==`string`&&n.push({path:t.path,name:t.name})}return n}function Ke(e){let t=R(e,`state.json`);if(!B(t))return[];let n;try{n=JSON.parse(H(t,`utf-8`))}catch{return[]}return Ge(n)??[]}function qe(e){let t=R(e,`state.json`);if(!B(t))return!1;try{return Ge(JSON.parse(H(t,`utf-8`)))!==null}catch{return!1}}function Je(e,t){if(e.outcome===`not-present`)return`not-present (no DiagnosticReports directory)`;if(e.outcome===`unreadable-directory`)return`unreadable (${e.directoryErrorCode??`unknown`} reading DiagnosticReports)`;let n=[`${e.windowDays}d`,`${e.foreignIgnored} other-process report(s) ignored`,`${e.unparseable} unparseable`];e.droppedOverCap>0&&n.push(`${e.droppedOverCap} older dropped over cap`);let r=e.files.length-t;return r>0&&n.push(`${r} vanished before staging`),e.outcome===`none-in-window`?`none found in window (${n.join(`; `)})`:`${t} collected (${n.join(`; `)})`}function Ye(e){return e.replace(/\\+\/?/g,e=>{if(!e.endsWith(`/`))return e;let t=e.length-1;return`\\`.repeat(t-t%2)+`/`})}const Xe=RegExp(`("(?:${[`crashReporterKey`,`bootSessionUUID`].join(`|`)})"\\s*:\\s*)"[^"]*"`,`g`);function Ze(e){return e.replace(Xe,`$1"[REDACTED-DEVICE-ID]"`)}function Qe(e){return Ze(Ye(e))}const $e=/^(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2})(\.\d+)? ([+-]\d{2})(\d{2})$/;function et(e){if(typeof e!=`string`)return null;let t=$e.exec(e.trim());if(t===null)return null;let[,n,r,i=``,a,o]=t,s=Date.parse(`${n}T${r}${i}${a}:${o}`);return Number.isNaN(s)?null:s}function tt(e){try{let t=H(e,`utf-8`),n=t.indexOf(`
2
2
  `),r=n===-1?t:t.slice(0,n),i=JSON.parse(r);if(typeof i!=`object`||!i)return{kind:`unreadable`};let{name:a,app_name:o,timestamp:s}=i,c=typeof a==`string`?a:typeof o==`string`?o:null;return c===null?{kind:`unreadable`}:{kind:`named`,name:c,timestampMs:et(s)}}catch{return{kind:`unreadable`}}}function nt(e){return e===`OpenKnowledge`||e.startsWith(`OpenKnowledge `)}function rt(e,t){let n={files:[],foreignIgnored:0,unparseable:0,droppedOverCap:0,windowDays:7},r;try{r=U(e,{withFileTypes:!0})}catch(e){let t=e.code;return t===`ENOENT`?{...n,outcome:`not-present`}:{...n,outcome:`unreadable-directory`,directoryErrorCode:t??`unknown`}}let i=t.getTime()-6048e5,a=[],o=0,s=0;for(let t of r){if(!t.isFile()||!t.name.endsWith(`.ips`))continue;let n=R(e,t.name),r;try{r=xe(n).mtimeMs}catch{continue}if(r<i)continue;let c=tt(n),l=c.kind===`named`&&c.timestampMs!==null?c.timestampMs:r;if(c.kind===`unreadable`){s+=1;continue}if(!nt(c.name)){o+=1;continue}a.push({path:n,atMs:l})}a.sort((e,t)=>t.atMs-e.atMs);let c=a.slice(0,25),l={foreignIgnored:o,unparseable:s,droppedOverCap:a.length-c.length,windowDays:7};return c.length===0?{...l,files:[],outcome:`none-in-window`}:{...l,files:c.map(e=>e.path),outcome:`collected`}}function K(){return R(G(),`.ok`,`bug-reports`)}function it(e=new Date){let t=e.toISOString().replace(/[:.]/g,`-`),n=K(),r=`${t}-bugreport`,i=R(n,`${r}.zip`);for(let e=2;B(i);e+=1)i=R(n,`${r}-${e}.zip`);return i}function at(e,t){let n=R(e,`.ok`,`config.yml`);if(B(n))try{let e=H(n,`utf8`).match(/^\s*name:\s*['"]?(.+?)['"]?\s*$/m);if(e?.[1])return e[1]}catch(e){t?.warn({configPath:n,err:e},`bug-report: failed to read .ok/config.yml for project slug; using path-hash fallback`)}return B(R(e,`.ok`))?je(`sha256`).update(z(e)).digest(`hex`).slice(0,12):null}function ot(){let e={timestamp:new Date().toISOString(),platform:Te(),osType:ke(),osRelease:Ee(),hostname:`[redacted]`,uptime:Ae(),freeMem:Ce(),totalMem:Oe(),nodeVersion:process.version,bunVersion:process.versions.bun??null,v8Version:process.versions.v8??null,pid:process.pid};try{e.macosVersion=de(`sw_vers -productVersion 2>/dev/null`,d({encoding:`utf8`})).trim()}catch{}try{let t=R(__dirname,`..`,`..`,`package.json`);B(t)&&(e.okVersion=JSON.parse(H(t,`utf8`)).version)}catch{}return e}const st=[{prefix:`cli`,projectTagged:!0},{prefix:`desktop`,projectTagged:!1},{prefix:`mcp`,projectTagged:!1}];function ct(e){let t=I(e);return st.some(e=>e.projectTagged&&t.startsWith(`${e.prefix}.`))}function lt(e,t){return pt(e,t).files}const ut=[`ShipIt_stderr.log`,`ShipIt_stdout.log`];function dt(e,t=ne){let n=R(e,`${t}.ShipIt`);if(!B(n))return[];let r;try{r=U(n)}catch{return[]}return ut.flatMap(e=>r.map(t=>{if(t===e)return{entry:t,suffix:-1};if(!t.startsWith(`${e}.`))return null;let n=t.slice(e.length+1);return/^\d+$/.test(n)?{entry:t,suffix:Number(n)}:null}).filter(e=>e!==null).sort((e,t)=>e.suffix-t.suffix).slice(0,4).map(e=>R(n,e.entry)))}function ft(e){if(!B(e))return[];try{let t=new Map;for(let n of U(e).filter(e=>e.endsWith(`.yaml`)).sort()){let e=n.endsWith(`.sent.yaml`)?n.slice(0,-i.length):n.slice(0,-5),r=t.get(e);r===void 0?t.set(e,[n]):r.push(n)}return[...t.values()].slice(-25).flat().map(t=>R(e,t))}catch{return[]}}function pt(e,t){if(!B(t))return{files:[],excludedByProjectSlug:0};let n=U(t).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(e=>R(t,e));if(!e)return{files:n,excludedByProjectSlug:0};let r=n.filter(ct),i=[],a=r.filter(t=>{try{return H(t,`utf8`).includes(`"project":"${e}"`)}catch{return i.push(t),!1}});if(a.length===0)return{files:n,excludedByProjectSlug:0};let o=new Set([...a,...i]);return{files:n.filter(e=>!ct(e)||o.has(e)),excludedByProjectSlug:r.length-o.size}}function mt(e){let t=R(e,`.ok`,`local`);return B(t)?{files:[`server.lock`,`last-spawn-error.log`,u].map(e=>R(t,e)).filter(e=>B(e))}:{files:[]}}function ht(e){let t=R(e,`.ok`,`local`,`logs`);return B(t)?{files:[`server-current.jsonl`,`server-prev.jsonl`].map(e=>R(t,e)).filter(e=>B(e))}:{files:[]}}function gt(e){let t=0,n=new Map,r=e.replace(/("(?:docName|doc\.name|documentName)"\s*:\s*")((?:[^"\\]|\\.)*)"/g,(e,r,i)=>{t+=1;let a=n.get(i);return a===void 0&&(a=`doc#${je(`sha256`).update(i).digest(`hex`).slice(0,12)}`,n.set(i,a)),`${r}${a}"`});for(let[e,i]of[...n].sort(([e],[t])=>t.length-e.length)){if(e.length===0||!r.includes(e))continue;let n=r.split(e);t+=n.length-1,r=n.join(i)}return{text:r,count:t}}function _t(e){let t=e.revealDocNames?e.content:gt(e.content).text;if(e.redact){let{redacted:n,patterns:i,lineCount:a}=r(t);e.zipfile.addBuffer(Buffer.from(n,`utf8`),e.name),e.bundleFiles.push(e.name),i.length>0&&e.redactions.push({file:e.name,lineCount:a,patterns:i})}else e.zipfile.addBuffer(Buffer.from(t,`utf8`),e.name),e.bundleFiles.push(e.name)}function q(e){for(let t of e.files)try{let n=H(t,`utf8`);_t({zipfile:e.zipfile,name:`${e.prefix}/${I(t)}`,content:t.endsWith(`.ips`)?Qe(n):n,redact:e.redact,revealDocNames:e.revealDocNames,bundleFiles:e.bundleFiles,redactions:e.redactions})}catch(n){e.logger?.warn({file:t,prefix:e.prefix,err:n},`bug-report: skipped unreadable file`)}}async function vt(t){let{redact:r,outputPath:i,logger:o}=t,s=t.revealDocNames??!1,c=t.userLogsDir??R(G(),`.ok`,`logs`),l=t.projectDir?at(t.projectDir,o):null;V(L(i),{recursive:!0}),o?.info({projectSlug:l},`gathering diagnostic data`);let u=ot();u.desktop=t.desktop??null,u.language=t.language??null;let{files:d,excludedByProjectSlug:ee}=pt(l,c),{files:f}=t.projectDir?mt(t.projectDir):{files:[]},{files:p}=t.projectDir?ht(t.projectDir):{files:[]},m=t.shipItLogFiles??[],h=t.diagnosticReports?.files??[];o?.info({logFileCount:d.length,logFilesExcludedByProjectSlug:ee,lockFileCount:f.length,localSinkFileCount:p.length,shipItLogFileCount:m.length,diagnosticReportCount:h.length},`files collected`);let g=[],_=[],{ZipFile:v}=await import(`./yazl-BwMlCqRQ.mjs`).then(t=>e(t.default,1)),y=new v;q({zipfile:y,files:[...d,...m],prefix:`logs`,redact:r,revealDocNames:s,bundleFiles:_,redactions:g,logger:o}),q({zipfile:y,files:f,prefix:`lockdir`,redact:r,revealDocNames:s,bundleFiles:_,redactions:g,logger:o}),q({zipfile:y,files:p,prefix:`local-logs`,redact:r,revealDocNames:s,bundleFiles:_,redactions:g,logger:o}),q({zipfile:y,files:t.bugReportLedgerFiles??[],prefix:a,redact:r,revealDocNames:s,bundleFiles:_,redactions:g,logger:o}),q({zipfile:y,files:h,prefix:`diagnostic-reports`,redact:r,revealDocNames:s,bundleFiles:_,redactions:g,logger:o});for(let e of t.extraFiles??[])try{let t=H(e.sourcePath),n=`extra/${e.zipName??I(e.sourcePath)}`;y.addBuffer(t,n),_.push(n)}catch(t){o?.warn({sourcePath:e.sourcePath,err:t},`extra file unreadable; omitted from bundle`)}t.note&&_t({zipfile:y,name:`note.txt`,content:t.note,redact:r,revealDocNames:s,bundleFiles:_,redactions:g});let b=new Set(h.map(e=>`diagnostic-reports/${I(e)}`)),x=_.filter(e=>b.has(e)),S=t.diagnosticReports===void 0?`not-collected (no collection attempted)`:Je(t.diagnosticReports,x.length);y.addBuffer(Buffer.from(`${S}\n`,`utf8`),`state/diagnostic-reports-status.txt`),_.push(`state/diagnostic-reports-status.txt`);let C=JSON.stringify(u,null,2);y.addBuffer(Buffer.from(C,`utf8`),`sysinfo.json`),_.push(`sysinfo.json`);let w={generatedAt:new Date().toISOString(),disciplineVersion:`1.0.0`,projectSlug:l,files:_,redactions:g,sysinfo:u};y.addBuffer(Buffer.from(JSON.stringify(w,null,2),`utf8`),`MANIFEST.json`);let T=g.reduce((e,t)=>e+t.lineCount,0),E=new Set(m.map(e=>`logs/${I(e)}`)),D=_.filter(e=>E.has(e)),O=new Set((t.bugReportLedgerFiles??[]).map(e=>`${a}/${I(e)}`)),k=_.filter(e=>O.has(e)),te=l?_.filter(e=>e.startsWith(`logs/`)&&!ct(e)&&!E.has(e)):[],A=x.length>0?[`Crash reports under diagnostic-reports/ are rewritten on the way in,`,`independently of this setting: escaped path separators are normalised`,`so the scrub above can read them, and the identifiers that link this`,`machine's bundles to each other are replaced. Nothing else is changed;`,`they are not byte-identical to the files macOS wrote.`]:[],j=A.length>0?[`Redaction was disabled for this bundle; file contents are unmodified,`,`with one exception.`,...A]:[`Redaction was disabled for this bundle; file contents are unmodified.`],M=[`# Bug Report Bundle`,``,`Generated: ${w.generatedAt}`,`Project: ${l??`(unscoped)`}`,`Discipline version: ${w.disciplineVersion}`,``,`## Contents`,``,..._.map(e=>`- ${e}`),``,`## Privacy`,``,...te.length>0?[`Scope: some collected logs are user-wide rather than project-scoped.`,`These are written once per machine per day and can contain activity`,`from other projects open on this machine, including captured console`,`output:`,...te.map(e=>`- ${e}`),``]:[],...D.length>0?[`Installer logs: written by the macOS update helper rather than by`,`OpenKnowledge itself, and machine-wide rather than scoped to any one`,`project. They record the install and update history of this app on`,`this machine. Only this app is collected, never other applications`,`that use the same update mechanism:`,...D.map(e=>`- ${e}`),``]:[],...x.length>0?[`Crash reports: written by macOS itself rather than by OpenKnowledge,`,`and machine-wide rather than scoped to any one project. They record`,`why the operating system ended a process of this app — the signal or`,`exception, the code-signing verdict, and whatever text the process`,`left behind as it died. They also carry machine details the OS puts`,`in every report: the account uid, the Mac model, and the name of the`,`process that launched this app, which on a managed machine can be`,`internal tooling. The identifiers that would link this machine's`,`bundles to each other are replaced before bundling. Only this`,`app's own reports are collected, never another application's, though`,`a report of ours still names the processes it ran alongside:`,...x.map(e=>`- ${e}`),``]:[],...k.length>0?[`Send history: a small record for each bug report previously generated`,`on this machine — when it was generated, whether sending it`,`succeeded, and why it failed if it did. This is what makes a failed`,`send diagnosable at all. It is machine-wide rather than scoped to`,`this project, so it names the other projects reports were filed`,`from. It carries no document content:`,...k.map(e=>`- ${e}`),``]:[],...r?[`This bundle was auto-redacted before packaging.`,`Patterns checked: ${n.join(`, `)}`,T>0?`${T} line(s) were scrubbed across ${g.length} file(s).`:`No redactions were needed.`,`See MANIFEST.json for the full redaction audit report.`,...A,``,`This bundle is safe to attach to a GitHub issue.`]:j].join(`
3
3
  `);y.addBuffer(Buffer.from(M,`utf8`),`README.md`),y.end();let N=ge(i);return y.outputStream.pipe(N),await new Promise((e,t)=>{N.on(`close`,e),N.on(`error`,t)}),o?.info({bundlePath:i,fileCount:_.length,redactionCount:T},`bundle written`),{zipPath:i,summary:{projectSlug:l,files:_,redactions:g,redactedLineCount:T,generatedAt:w.generatedAt}}}var yt=e(O(),1),J=e(N(),1);function bt(e){return b({absPath:v(`user`,e,e),sideline:!1,warn:()=>{}}).value.appearance?.language??`system`}function xt({home:e=G(),env:n=process.env}={}){let r=bt(e),{override:i,preferenceList:a}=x(n),{locale:s,source:l}=t({override:i,storedPreference:r,supportedLocales:o,preferenceList:a,autoDetectableLocales:c});return{preference:r,locale:s,source:l,systemLanguages:a}}function St(e,t){return t.length===0||!e.includes(t)?e:e.split(t).join(`<CONTENT_DIR>`)}function Ct(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Y(e,t){if(typeof e==`string`)return St(e,t.contentDir);if(Array.isArray(e))return e.map(e=>Y(e,t));if(!Ct(e))return e;let n={};for(let[r,i]of Object.entries(e))n[r]=Y(i,t);return n}function wt(e,t){let n=H(e,`utf-8`);if(n.length===0)return;let r=n.endsWith(`
4
4
  `),i=n.split(`
@@ -18,4 +18,4 @@ import{o as e}from"./chunk-DTipWd-i.mjs";import{Ha as t,Ia as n,La as r,ac as i,
18
18
  `).replace(/\n/g,`\r
19
19
  `));let u=`${i?``:``}${l}`;return u!==r&&y(e,u,{mode:F(e)}),{kind:`removed`}}function zn(e){return e==null?!1:e.includes(`--type=utility`)&&e.includes(`--utility-sub-type=node.mojom.NodeService`)}function Bn(e,t=Date.now()){let n=new Date(e).getTime();if(Number.isNaN(n))return`—`;let r=t-n,i=Math.floor(r/1e3);if(i<60)return`${i}s`;let a=Math.floor(i/60);if(a<60)return`${a}m ago`;let o=Math.floor(a/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`}function Vn(e,t,n,r){if(t.status===`missing`||t.status===`corrupt`)return null;let i=t.lock,a=t.status===`alive`&&D(i)?{port:i.port,status:t.status,pid:i.pid,startedAt:i.startedAt,usage:r}:null;return{directory:i.worktreeRoot,server:{port:i.port,status:t.status,pid:i.pid,startedAt:i.startedAt,usage:r},ui:a,hostname:i.hostname,lockPath:t.lockPath,binary:n==null?null:ee(n),command:n,isDesktop:zn(n)}}function Hn(e){let t=e.server.status;return t===`alive`||t===`foreign-host`?e.isDesktop?`desktop`:t===`alive`?`running`:`foreign`:`stale`}const Un=new Set([`running`,`desktop`,`foreign`]);function Wn(e){switch(e){case`running`:return J.default.green(e);case`desktop`:return J.default.blue(e);case`foreign`:return J.default.cyan(e);case`stale`:return J.default.yellow(e)}}function Gn(e){return e==null?`—`:`${e.cpuPercent.toFixed(1)}% / ${e.memPercent.toFixed(1)}%`}function Kn(e){return`${Gn(e.server.usage)} | ${Gn(e.ui?.usage??null)}`}function qn(e){return`${e.server.port===0?`(starting)`:String(e.server.port)} / ${e.ui==null?`—`:String(e.ui.port)}`}function Jn(e){if(e.length===0)return`No open-knowledge servers found.`;let t=[`DIRECTORY`,`PORTS (API/UI)`,`CPU/MEM (API | UI)`,`STATUS`,`PID`,`STARTED`,`BINARY`],n=e.map(e=>[e.directory,qn(e),Kn(e),Hn(e),String(e.server.pid),Bn(e.server.startedAt),e.binary??`—`]),r=t.length,i=t.map(e=>e.length);for(let e of n)for(let t=0;t<r;t++)i[t]=Math.max(i[t]??0,(e[t]??``).length);let a=t.map((e,t)=>e.padEnd(i[t]??0)).join(` `).trimEnd(),o=e.map((e,t)=>{let a=n[t]??[],o=[];for(let t=0;t<r;t++){let n=(a[t]??``).padEnd(i[t]??0);if(t===3){let r=a[t]??``;n=Wn(Hn(e))+` `.repeat(Math.max(0,(i[t]??0)-r.length))}o.push(n)}return o.join(` `).trimEnd()}),s=J.default.dim(`To stop a server: ok stop <port|pid|directory|all>`);return[a,...o,``,s].join(`
20
20
  `)}async function Yn(e={}){let t=e.discover??h,n=e.inspect??(e=>$(e,`server`)),r=e.log??(e=>console.log(e)),i=e.resolveCommand??m,a=e.resolveUsage??g,o=await t(),s=[];for(let e of o){let t=n(e),r=Vn(e,t,t.status===`missing`||t.status===`corrupt`?null:i(t.lock.pid),t.status===`missing`||t.status===`corrupt`?null:a(t.lock.pid));r!=null&&s.push(r)}if(e.json){let e=s.map(e=>({...e,displayStatus:Hn(e)}));r(JSON.stringify(e,null,2));return}r(Jn(e.all?s:s.filter(e=>Un.has(Hn(e)))))}function Xn(){return new M(`ps`).description(`List all running open-knowledge servers`).argument(`[modifier]`,`"all" to include stale (dead-pid) entries`).option(`--all`,`Include stale (dead-pid) entries (foreign-host shows by default)`).option(`--json`,`Emit structured JSON (always includes all statuses)`).action(async(e,t)=>{await Yn({all:t.all===!0||e===`all`,json:t.json===!0})})}async function Zn(e,t=Pe()){let n=$(e,`server`);if(n.status!==`alive`&&n.status!==`foreign-host`)return null;let r=T(n.lock);if(r===null)return null;try{let n=await fetch(`${r}/api/server-info`,{signal:AbortSignal.timeout(1500)});if(!n.ok)return t?.warn({lockDir:e,baseUrl:r,outcome:`http-error`,status:n.status},`stop client-probe failed`),null;let i=(await n.json())?.collabClients;return typeof i==`number`&&Number.isFinite(i)?i:(t?.warn({lockDir:e,baseUrl:r,outcome:`no-client-count`,received:typeof i},`stop client-probe failed`),null)}catch(n){return t?.warn({lockDir:e,baseUrl:r,outcome:`unreachable`,err:n},`stop client-probe failed`),null}}function Qn(e,t={}){return{targets:er(e,t.isAlive??C)?[{name:`server`,pid:e.lock.pid,port:e.lock.port}]:[]}}async function $n(e){let t=e.inspect??(()=>$(e.lockDir,`server`)),n=e.kill??((e,t)=>process.kill(e,t)),r=e.log??(e=>console.log(e)),i=e.error??(e=>console.error(e)),a=e.probeClients??Zn,o=e.logger??Pe(),s=Qn(t(),{isAlive:e.isAlive});if(s.targets.length===0)return r(`No running open-knowledge processes.`),o?.info({lockDir:e.lockDir,targets:0},`stop found nothing to signal`),{stopped:[],failed:[],hadTargets:!1};if(e.force!==!0){let t=await a(e.lockDir,o);if(t!==null&&t>0)return i(`Not stopping: ${t} collaboration client${t===1?``:`s`} (editor window${t===1?``:`s`} or agents) still connected to the server at ${e.lockDir}. Close them, or re-run with --force to terminate anyway.`),o?.warn({lockDir:e.lockDir,clients:t,pids:s.targets.map(e=>e.pid)},`stop declined: live collaboration clients`),{stopped:[],failed:[],hadTargets:!0,declined:{clients:t}}}let c=[],l=[];for(let e of s.targets)try{n(e.pid,`SIGTERM`),c.push(e)}catch(t){l.push({target:e,error:t instanceof Error?t.message:String(t)})}return c.length>0&&r(`Stopped: ${c.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `)}`),o?.info({lockDir:e.lockDir,signalled:c.map(e=>({name:e.name,pid:e.pid,port:e.port})),failed:l.map(({target:e,error:t})=>({pid:e.pid,error:t})),forced:e.force===!0},`stop signalled processes`),l.length>0&&i(`Failed to stop: ${l.map(({target:e,error:t})=>`${e.name} (pid=${e.pid}): ${t}`).join(`; `)}`),{stopped:c,failed:l,hadTargets:!0}}function er(e,t){return e.status===`alive`?!0:e.status===`foreign-host`?t(e.lock.pid):!1}async function tr(e,t=C){let n=await h(),r=null;for(let i of n){let n=$(i,`server`);if(er(n,t)){if(n.lock.port===e)return i;r===null&&n.lock.pid===e&&(r=i)}}return r}async function nr(e,t){let n=await $n({lockDir:e,force:t});return(n.failed.length>0||n.declined!==void 0)&&(process.exitCode=1),n}function rr(e,t,n={}){return t===0?`Nothing was running for ${e}, and no other open-knowledge servers are running.`:`Nothing was running for ${e}. ${t} other open-knowledge server${t===1?` is`:`s are`} running${n.listingFollows===!0?``:" — run `ok ps` to list them"}.`}async function ir(e){let t=await h(),n=0;for(let r of t)r!==e&&er($(r,`server`),C)&&n++;return n}function ar(e){return new M(`stop`).description(`Stop open-knowledge server(s). With no argument: stops the server for the current directory. Pass a port number, a directory path, or "all" to target globally.`).argument(`[target...]`,`port number, directory path (spaces OK), or "all"`).option(`--force`,`Stop even when editor windows or agents are still connected to the server`).action(async(t,n)=>{let r=n.force===!0,i=t.length===0?void 0:t.join(` `);if(i===void 0){e();let t=_(process.cwd()),n=await $n({lockDir:t,force:r,log:()=>{}});if(n.hadTargets){if(n.stopped.length>0){let e=n.stopped.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `);console.log(`Stopped: ${e}`)}(n.failed.length>0||n.declined!==void 0)&&(process.exitCode=1)}else{let e=await ir(t);console.log(rr(process.cwd(),e,{listingFollows:e>0})),e>0&&await Yn({})}return}if(i===`all`){let e=await h();if(e.length===0){console.log(`No running open-knowledge servers found.`);return}let t=0;for(let n of e)er($(n,`server`),C)&&(await nr(n,r),t++);t===0&&console.log(`No running open-knowledge servers found.`);return}if(/^\d+$/.test(i)){let e=Number.parseInt(i,10),t=await tr(e);if(t===null){console.log(`No running open-knowledge server found with port or PID ${e}.`);return}await nr(t,r);return}let a=z(Ve(),i),o=_(a),s=[],c=await $n({lockDir:o,force:r,log:e=>s.push(e)});if((c.failed.length>0||c.declined!==void 0)&&(process.exitCode=1),c.hadTargets)for(let e of s)console.log(e);else console.log(rr(a,await ir(o)))})}export{Ke as C,Re as D,Be as E,Pe as O,Ue as S,Ve as T,K as _,Fn as a,He as b,On as c,En as d,$ as f,it as g,xn as h,Xn as i,Ie as k,An as l,bn as m,$n as n,Dn as o,wn as p,ar as r,Mn as s,Zn as t,jn as u,rt as v,qe as w,We as x,Je as y};
21
- //# sourceMappingURL=src-B7uACjJn.mjs.map
21
+ //# sourceMappingURL=src--1Qk4uzV.mjs.map
@@ -0,0 +1 @@
1
+ import"./src-B2bAQ64a.mjs";import"./resolve-project-root-dt8lYC9W.mjs";import"./src--1Qk4uzV.mjs";import"./acp-harness-probe-CVx48dtu.mjs";import"./init-wvLzDpl_.mjs";import{n as e}from"./loader-Brh8lf3U.mjs";import"./skill-teardown-DUZd_juy.mjs";import"./preview-Cv-UiNuJ.mjs";import"./mcp-migrate-event-9DFnNzHa.mjs";export{e as loadConfig};
@@ -1,5 +1,5 @@
1
- import{Gs as e,Is as t,Us as n,Ws as r,zs as i}from"./src-B2bAQ64a.mjs";import{L as a}from"./sleep-zea4v2sB.mjs";import{Ln as o,s,t as c,ti as l}from"./src-e2udu2Rw.mjs";import{A as u,L as d}from"./fs-traced-DgX7lP1u.mjs";import{r as f}from"./server-lock-DKS1ePB3.mjs";import{C as p,S as m,x as h}from"./resolve-project-root-dt8lYC9W.mjs";import{c as g,f as _,g as v,l as y,n as b,o as x,p as S,r as C,s as w,t as T}from"./acp-harness-probe-Dm_THeRI.mjs";import{y as E}from"./init-DgDmq69W.mjs";import{n as D}from"./constants-BPBuLtK3.mjs";import{spawn as O}from"node:child_process";import{basename as k,dirname as A,resolve as j}from"node:path";import{existsSync as M,realpathSync as N}from"node:fs";import{tmpdir as P}from"node:os";import{rm as F}from"node:fs/promises";import{setTimeout as I}from"node:timers/promises";function L(e,t){return e.bind?.[0]??t.HOST??`127.0.0.1`}function R(e){if(e===`server`)return e;throw new m(`--only must be 'server'`)}function z(e=M){let t=import.meta.dirname??new URL(`.`,import.meta.url).pathname;return[j(t,`public`),j(t,`../../app/dist`),j(t,`../../../app/dist`)].find(t=>e(t))}function B(e){if(e.explicitDir!==void 0)return{dir:e.explicitDir,missingBundle:!1};if(e.only===`server`)return{dir:void 0,missingBundle:!1};let t=e.findBundledDir();return{dir:t,missingBundle:t===void 0}}function V(e){if(e===`off`)return`off`;if(!a.test(e))throw new m(`--idle-shutdown must be 'off' or a duration like 90s, 30m, 2h`);return e}function H(e){return e===`localhost`||e===`::1`||e===`[::1]`||e.startsWith(`127.`)}function U(e){return!e.flagBindSet&&!e.okBindSet&&e.hostEnvSet&&e.fileBindCount>1}function W(e){return!e.openBrowser||e.ephemeral||e.only===`server`||!e.servesUi?!1:(e.explicitOn||H(e.host))&&e.isTTY}function ee(e,t){let n;try{n=new URL(t)}catch{throw new m(`${e} is not a valid URL: ${t}`)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw new m(`${e} must be an http(s) origin (got: ${t})`);return t}function G(e){return ee(`--external-url`,e)}function K(e){let t=k(e).replace(/[^\x20-\x7E]/g,``).trim().slice(0,64);return`open-knowledge-server ${t.length>0?t:`unknown`}`}var q=class extends Error{cwd;constructor(e){super("This directory isn't set up yet. Run `ok init` first, then `ok start` again."),this.name=`OkDirMissingError`,this.cwd=e}},J=class extends Error{projectDir;constructor(e){super(`--project-dir must be a throwaway ${c}* directory under the OS temp dir. Refusing to write ephemeral session state into ${e}. Omit --project-dir to let ok start create (and clean up) its own.`),this.name=`EphemeralProjectDirNotThrowawayError`,this.projectDir=e}};function Y(e,t={}){let n=t.tmpdirFn??P,r=t.realpathFn??N,i=e=>{try{return r(e)}catch(t){return t.code===`ENOENT`?j(e):null}},a=j(e),o;try{o=r(a)}catch(e){if(e.code===`ENOENT`){let e=i(A(a));o=e===null?null:j(e,k(a))}else o=null}if(o===null)return!1;let s=i(n());return s===null?!1:A(o)===s&&k(o).startsWith(`ok-ephemeral-`)}function X(e,t,n=e=>F(e,{recursive:!0,force:!0})){return async()=>{try{await e()}finally{if(Y(t))try{await n(t)}catch(e){process.stderr.write(`[start] ephemeral temp dir reap failed for ${t}: ${e instanceof Error?e.message:String(e)}\n`)}else process.stderr.write(`[start] leaving ${t} in place: only ${c}* dirs under the OS temp dir are removed on ephemeral teardown\n`)}}}function Z(e,t={}){let n=t.exit??(e=>process.exit(e)),r=t.getActiveHandles??(()=>{let e=process._getActiveHandles;return e?e.call(process):null});return async()=>{let i=!1;try{await e()}catch(e){i=!0,t.log?.error({err:e},`idle-shutdown: destroy failed — exiting anyway`)}finally{let e=null;try{let t=r();if(t!==null){e={};for(let n of t){let t=n?.constructor?.name??`unknown`;e[t]=(e[t]??0)+1}}}catch{e=null}t.log?.info({event:`idle-shutdown-exit`,exitCode:+!!i,openHandles:e??{},handlesAvailable:e!==null},`idle-shutdown: teardown finished — exiting process`),n(+!!i)}}}async function Q(e){let{config:t,cwd:n,host:r}=e,i=e.skipAutoInit??!1,a=e.idleThresholdMs===void 0?18e5:e.idleThresholdMs,{existsSync:c,mkdirSync:u}=await import(`node:fs`),{basename:d,dirname:f,resolve:p}=await import(`node:path`),{bootServer:m,createEphemeralProjectDir:h,getLogger:g,resolveContentDir:y,resolveLockDir:x,seedEphemeralProjectDir:w,waitForServerLockDrain:D}=await import(`./src-CT7Wk-MG.mjs`),O=e.log??g(`start`),k=e.singleFile!==void 0,A=k?s(e.singleFile).canonicalFilePath:void 0,j=A?f(A):void 0,M=A?d(A):void 0,N,P=!1;if(j!==void 0)if(e.projectDir!==void 0){if(N=e.projectDir,!Y(N))throw new J(N);c(p(N,`.ok`,`config.yml`))||w(N,j)}else N=h(j),P=!0;let I=async()=>{if(!(!P||N===void 0)){if(!Y(N)){O.warn({ephemeralProjectDir:N},`[start] refusing to reap self-provisioned ephemeral dir: no longer resolves to an ok-ephemeral-* temp dir`);return}try{await F(N,{recursive:!0,force:!0})}catch(e){O.warn({err:e,ephemeralProjectDir:N},`[start] failed to reap self-provisioned ephemeral temp dir`)}}},L=N;if(!k){if(!i&&!l(n))throw new q(n);let t=process.env.OK_RECLAIM_DISABLE??null,r=e=>{let t=typeof e.event==`string`?e.event:``;(t.endsWith(`-failed`)||t.endsWith(`-error`)||t.endsWith(`-missing`))&&O.warn({event:e},`[start] reclaim sweep reported a problem`)};try{(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-CmqkSZAL.mjs`)).repairMcpConfigs)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){O.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-B3SzfvXY.mjs`)).repairLaunchJson)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){O.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}try{await(e.repairSkillsFn??(await import(`./repair-skills-BkLHvKTk.mjs`)).repairSkills)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){O.warn({err:e},`[start] skill repair sweep failed; continuing`)}}let R=j??y(t,n);!k&&!c(R)&&(u(R,{recursive:!0}),O.info({contentDir:R},`Created content directory`));let z=v(),B=o(),V;try{{let e=x(N??n),t=Date.now(),r=await D(e);r!==`no-drain`&&O.info({event:`start-waited-for-draining-predecessor`,outcome:r,waitedMs:Date.now()-t,drainLockDir:e},r===`released`?`[start] predecessor server finished draining — proceeding`:`[start] predecessor server still draining after wait — proceeding to collide`)}V=await m({config:t,contentDir:R,projectDir:N??n,contentRoot:k?void 0:t.content.dir,port:e.port,host:r,quiet:!1,detectGh:_,detectGhAccounts:S,tokenStore:z,embeddingsKeyStore:B,mcpTomlEditor:E(),...k?{ephemeral:!0,singleDocRelPath:M,gitEnabled:!1,gitPreflight:()=>({ok:!0,version:`0.0.0`,resolvedPath:`git`,source:`PATH`})}:{},localOpCliArgs:[process.execPath,process.argv[1]],probeHarnessManagedMcpEntry:(e,t)=>T(e,t),probePiAcpBridge:e=>C(e),ensurePiAcpBridge:e=>b(e),idleShutdownMs:a,...e.serverRuntime===void 0?{}:{serverRuntime:e.serverRuntime},...e.bind===void 0?{}:{bind:e.bind},skipAutoInit:!0,idleShutdownHandler:t=>{let n=t;return Z(L===void 0?n:X(n,L),{log:O,exit:e.idleExit})},log:O,...e.serveContentAssets===void 0?{}:{serveContentAssets:e.serveContentAssets},...e.reactShellDistDir?{reactShellDistDir:e.reactShellDistDir}:{}})}catch(e){throw await I(),e}let H=V.destroy,U=P?async()=>{try{await H()}finally{await I()}}:H;return{httpServer:V.httpServer,destroy:U,lockDir:V.lockDir,contentDir:R,port:V.port,ready:V.ready,degraded:V.degraded}}function $(e,t,n=()=>d({absPath:u(`user`,process.cwd()),sideline:!1,warn:()=>{}}).value){return t===void 0?e:n()}function te(e){if(e===`browser`||e===`app`)return e;throw new m(`--mode must be 'browser' or 'app'`)}function ne(e){return e.OK_CONSOLE_LEVEL!==void 0||e.LOG_LEVEL!==void 0?null:`warn`}function re(e){let t=[`Stopping OpenKnowledge…`,`Saving pending changes and releasing the server lock — this can take a few seconds.`];return e===`SIGINT`&&t.push(`Press Ctrl+C again to force quit.`),t}async function ie(a,o){let s=$(a,o.singleFile),c=ne(process.env);c!==null&&(process.env.OK_CONSOLE_LEVEL=c);let{renderBanner:l}=await import(`./banner-B14xalho.mjs`),{accent:u,dim:d,error:f,warning:p}=await import(`./colors-CpP5E4wV.mjs`),m=process.cwd();process.title=K(m);let h;try{h=e(process.env)}catch(e){throw e instanceof n&&(console.error(f(e.message)),process.exit(78)),e}for(let e of h.diagnostics)console.warn(p(`[config] ${e.message}`));let g=r(s,h.layer),_=h.overrides.some(e=>e.envVar===`OK_BIND`),v=o.bind!==void 0&&o.bind.length>0?o.bind:void 0,y=process.env.HOST,b=y!==void 0&&y.trim()!==``?y:void 0,x=i(g),S=v??(_||b===void 0?[...x.bind]:[b]);U({flagBindSet:v!==void 0,okBindSet:_,hostEnvSet:b!==void 0,fileBindCount:x.bind.length})&&console.warn(p(`[config] HOST=${b} overrides server.bind — dropping the file-configured addresses (${x.bind.join(`, `)}). Use OK_BIND with a space-separated list to keep multiple binds.`));let C=S[0]??`127.0.0.1`,w=S,T=o.externalUrl,E=i(r(g,{server:{bind:w,...T===void 0?{}:{externalUrl:T}}}));if(E.allowExternal&&(!E.loopbackOnly||E.externalUrl)){let e=E.externalUrl??E.bind.join(`, `);console.warn(p([``,`⚠ EXTERNAL ACCESS ENABLED (server.allowExternal) — no server-side authentication.`,` This server is reachable beyond this machine (${e}). Anyone who can`,` reach it has FULL control of this knowledge base — sync, publishing, GitHub`,` credentials, and local operations (clone, sign-in, repo spawn).`,` Restrict who can reach it at the edge: a Tailscale ACL, a reverse proxy with`,` auth (Cloudflare Access, oauth2-proxy), or a firewall.`,``].join(`
1
+ import{Gs as e,Is as t,Us as n,Ws as r,zs as i}from"./src-B2bAQ64a.mjs";import{L as a}from"./sleep-zea4v2sB.mjs";import{Ln as o,s,t as c,ti as l}from"./src-e2udu2Rw.mjs";import{A as u,L as d}from"./fs-traced-DgX7lP1u.mjs";import{r as f}from"./server-lock-DKS1ePB3.mjs";import{C as p,S as m,x as h}from"./resolve-project-root-dt8lYC9W.mjs";import{c as g,f as _,g as v,l as y,n as b,o as x,p as S,r as C,s as w,t as T}from"./acp-harness-probe-CVx48dtu.mjs";import{y as E}from"./init-wvLzDpl_.mjs";import{n as D}from"./constants-BbhqHRjz.mjs";import{spawn as O}from"node:child_process";import{basename as k,dirname as A,resolve as j}from"node:path";import{existsSync as M,realpathSync as N}from"node:fs";import{tmpdir as P}from"node:os";import{rm as F}from"node:fs/promises";import{setTimeout as I}from"node:timers/promises";function L(e,t){return e.bind?.[0]??t.HOST??`127.0.0.1`}function R(e){if(e===`server`)return e;throw new m(`--only must be 'server'`)}function z(e=M){let t=import.meta.dirname??new URL(`.`,import.meta.url).pathname;return[j(t,`public`),j(t,`../../app/dist`),j(t,`../../../app/dist`)].find(t=>e(t))}function B(e){if(e.explicitDir!==void 0)return{dir:e.explicitDir,missingBundle:!1};if(e.only===`server`)return{dir:void 0,missingBundle:!1};let t=e.findBundledDir();return{dir:t,missingBundle:t===void 0}}function V(e){if(e===`off`)return`off`;if(!a.test(e))throw new m(`--idle-shutdown must be 'off' or a duration like 90s, 30m, 2h`);return e}function H(e){return e===`localhost`||e===`::1`||e===`[::1]`||e.startsWith(`127.`)}function U(e){return!e.flagBindSet&&!e.okBindSet&&e.hostEnvSet&&e.fileBindCount>1}function W(e){return!e.openBrowser||e.ephemeral||e.only===`server`||!e.servesUi?!1:(e.explicitOn||H(e.host))&&e.isTTY}function ee(e,t){let n;try{n=new URL(t)}catch{throw new m(`${e} is not a valid URL: ${t}`)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw new m(`${e} must be an http(s) origin (got: ${t})`);return t}function G(e){return ee(`--external-url`,e)}function K(e){let t=k(e).replace(/[^\x20-\x7E]/g,``).trim().slice(0,64);return`open-knowledge-server ${t.length>0?t:`unknown`}`}var q=class extends Error{cwd;constructor(e){super("This directory isn't set up yet. Run `ok init` first, then `ok start` again."),this.name=`OkDirMissingError`,this.cwd=e}},J=class extends Error{projectDir;constructor(e){super(`--project-dir must be a throwaway ${c}* directory under the OS temp dir. Refusing to write ephemeral session state into ${e}. Omit --project-dir to let ok start create (and clean up) its own.`),this.name=`EphemeralProjectDirNotThrowawayError`,this.projectDir=e}};function Y(e,t={}){let n=t.tmpdirFn??P,r=t.realpathFn??N,i=e=>{try{return r(e)}catch(t){return t.code===`ENOENT`?j(e):null}},a=j(e),o;try{o=r(a)}catch(e){if(e.code===`ENOENT`){let e=i(A(a));o=e===null?null:j(e,k(a))}else o=null}if(o===null)return!1;let s=i(n());return s===null?!1:A(o)===s&&k(o).startsWith(`ok-ephemeral-`)}function X(e,t,n=e=>F(e,{recursive:!0,force:!0})){return async()=>{try{await e()}finally{if(Y(t))try{await n(t)}catch(e){process.stderr.write(`[start] ephemeral temp dir reap failed for ${t}: ${e instanceof Error?e.message:String(e)}\n`)}else process.stderr.write(`[start] leaving ${t} in place: only ${c}* dirs under the OS temp dir are removed on ephemeral teardown\n`)}}}function Z(e,t={}){let n=t.exit??(e=>process.exit(e)),r=t.getActiveHandles??(()=>{let e=process._getActiveHandles;return e?e.call(process):null});return async()=>{let i=!1;try{await e()}catch(e){i=!0,t.log?.error({err:e},`idle-shutdown: destroy failed — exiting anyway`)}finally{let e=null;try{let t=r();if(t!==null){e={};for(let n of t){let t=n?.constructor?.name??`unknown`;e[t]=(e[t]??0)+1}}}catch{e=null}t.log?.info({event:`idle-shutdown-exit`,exitCode:+!!i,openHandles:e??{},handlesAvailable:e!==null},`idle-shutdown: teardown finished — exiting process`),n(+!!i)}}}async function Q(e){let{config:t,cwd:n,host:r}=e,i=e.skipAutoInit??!1,a=e.idleThresholdMs===void 0?18e5:e.idleThresholdMs,{existsSync:c,mkdirSync:u}=await import(`node:fs`),{basename:d,dirname:f,resolve:p}=await import(`node:path`),{bootServer:m,createEphemeralProjectDir:h,getLogger:g,resolveContentDir:y,resolveLockDir:x,seedEphemeralProjectDir:w,waitForServerLockDrain:D}=await import(`./src-CT7Wk-MG.mjs`),O=e.log??g(`start`),k=e.singleFile!==void 0,A=k?s(e.singleFile).canonicalFilePath:void 0,j=A?f(A):void 0,M=A?d(A):void 0,N,P=!1;if(j!==void 0)if(e.projectDir!==void 0){if(N=e.projectDir,!Y(N))throw new J(N);c(p(N,`.ok`,`config.yml`))||w(N,j)}else N=h(j),P=!0;let I=async()=>{if(!(!P||N===void 0)){if(!Y(N)){O.warn({ephemeralProjectDir:N},`[start] refusing to reap self-provisioned ephemeral dir: no longer resolves to an ok-ephemeral-* temp dir`);return}try{await F(N,{recursive:!0,force:!0})}catch(e){O.warn({err:e,ephemeralProjectDir:N},`[start] failed to reap self-provisioned ephemeral temp dir`)}}},L=N;if(!k){if(!i&&!l(n))throw new q(n);let t=process.env.OK_RECLAIM_DISABLE??null,r=e=>{let t=typeof e.event==`string`?e.event:``;(t.endsWith(`-failed`)||t.endsWith(`-error`)||t.endsWith(`-missing`))&&O.warn({event:e},`[start] reclaim sweep reported a problem`)};try{(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-OXivJwj_.mjs`)).repairMcpConfigs)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){O.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-gSF8PkKt.mjs`)).repairLaunchJson)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){O.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}try{await(e.repairSkillsFn??(await import(`./repair-skills-BkLHvKTk.mjs`)).repairSkills)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){O.warn({err:e},`[start] skill repair sweep failed; continuing`)}}let R=j??y(t,n);!k&&!c(R)&&(u(R,{recursive:!0}),O.info({contentDir:R},`Created content directory`));let z=v(),B=o(),V;try{{let e=x(N??n),t=Date.now(),r=await D(e);r!==`no-drain`&&O.info({event:`start-waited-for-draining-predecessor`,outcome:r,waitedMs:Date.now()-t,drainLockDir:e},r===`released`?`[start] predecessor server finished draining — proceeding`:`[start] predecessor server still draining after wait — proceeding to collide`)}V=await m({config:t,contentDir:R,projectDir:N??n,contentRoot:k?void 0:t.content.dir,port:e.port,host:r,quiet:!1,detectGh:_,detectGhAccounts:S,tokenStore:z,embeddingsKeyStore:B,mcpTomlEditor:E(),...k?{ephemeral:!0,singleDocRelPath:M,gitEnabled:!1,gitPreflight:()=>({ok:!0,version:`0.0.0`,resolvedPath:`git`,source:`PATH`})}:{},localOpCliArgs:[process.execPath,process.argv[1]],probeHarnessManagedMcpEntry:(e,t)=>T(e,t),probePiAcpBridge:e=>C(e),ensurePiAcpBridge:e=>b(e),idleShutdownMs:a,...e.serverRuntime===void 0?{}:{serverRuntime:e.serverRuntime},...e.bind===void 0?{}:{bind:e.bind},skipAutoInit:!0,idleShutdownHandler:t=>{let n=t;return Z(L===void 0?n:X(n,L),{log:O,exit:e.idleExit})},log:O,...e.serveContentAssets===void 0?{}:{serveContentAssets:e.serveContentAssets},...e.reactShellDistDir?{reactShellDistDir:e.reactShellDistDir}:{}})}catch(e){throw await I(),e}let H=V.destroy,U=P?async()=>{try{await H()}finally{await I()}}:H;return{httpServer:V.httpServer,destroy:U,lockDir:V.lockDir,contentDir:R,port:V.port,ready:V.ready,degraded:V.degraded}}function $(e,t,n=()=>d({absPath:u(`user`,process.cwd()),sideline:!1,warn:()=>{}}).value){return t===void 0?e:n()}function te(e){if(e===`browser`||e===`app`)return e;throw new m(`--mode must be 'browser' or 'app'`)}function ne(e){return e.OK_CONSOLE_LEVEL!==void 0||e.LOG_LEVEL!==void 0?null:`warn`}function re(e){let t=[`Stopping OpenKnowledge…`,`Saving pending changes and releasing the server lock — this can take a few seconds.`];return e===`SIGINT`&&t.push(`Press Ctrl+C again to force quit.`),t}async function ie(a,o){let s=$(a,o.singleFile),c=ne(process.env);c!==null&&(process.env.OK_CONSOLE_LEVEL=c);let{renderBanner:l}=await import(`./banner-B14xalho.mjs`),{accent:u,dim:d,error:f,warning:p}=await import(`./colors-CpP5E4wV.mjs`),m=process.cwd();process.title=K(m);let h;try{h=e(process.env)}catch(e){throw e instanceof n&&(console.error(f(e.message)),process.exit(78)),e}for(let e of h.diagnostics)console.warn(p(`[config] ${e.message}`));let g=r(s,h.layer),_=h.overrides.some(e=>e.envVar===`OK_BIND`),v=o.bind!==void 0&&o.bind.length>0?o.bind:void 0,y=process.env.HOST,b=y!==void 0&&y.trim()!==``?y:void 0,x=i(g),S=v??(_||b===void 0?[...x.bind]:[b]);U({flagBindSet:v!==void 0,okBindSet:_,hostEnvSet:b!==void 0,fileBindCount:x.bind.length})&&console.warn(p(`[config] HOST=${b} overrides server.bind — dropping the file-configured addresses (${x.bind.join(`, `)}). Use OK_BIND with a space-separated list to keep multiple binds.`));let C=S[0]??`127.0.0.1`,w=S,T=o.externalUrl,E=i(r(g,{server:{bind:w,...T===void 0?{}:{externalUrl:T}}}));if(E.allowExternal&&(!E.loopbackOnly||E.externalUrl)){let e=E.externalUrl??E.bind.join(`, `);console.warn(p([``,`⚠ EXTERNAL ACCESS ENABLED (server.allowExternal) — no server-side authentication.`,` This server is reachable beyond this machine (${e}). Anyone who can`,` reach it has FULL control of this knowledge base — sync, publishing, GitHub`,` credentials, and local operations (clone, sign-in, repo spawn).`,` Restrict who can reach it at the edge: a Tailscale ACL, a reverse proxy with`,` auth (Cloudflare Access, oauth2-proxy), or a firewall.`,``].join(`
2
2
  `)))}let O=o.port===void 0?void 0:Number(o.port),k=h.overrides.find(e=>e.envVar===`PORT`)?.value,A=O??k??s.server?.port,j=B({explicitDir:o.reactShellDistDir,only:o.only,findBundledDir:z}),M=j.dir;j.missingBundle&&console.warn(`bundled web UI not found — serving /api and /mcp only. Reinstall @inkeep/open-knowledge, or build packages/app in a source checkout.`);let N;try{N=await Q({config:s,cwd:m,host:C,port:A,bind:w,...o.serveContentAssets===void 0?{}:{serveContentAssets:o.serveContentAssets},...M?{reactShellDistDir:M}:{},idleThresholdMs:t(o.idleShutdown??E.idleShutdown),serverRuntime:E,...o.singleFile?{singleFile:o.singleFile}:{},...o.projectDir?{projectDir:o.projectDir}:{}})}catch(e){e instanceof q&&(console.error(f(e.message)),process.exit(1)),e instanceof J&&(console.error(f(e.message)),process.exit(1));let t=await import(`./src-CT7Wk-MG.mjs`);if((e instanceof t.GitNotAvailableError||e instanceof t.GitTooOldError)&&process.exit(78),e instanceof t.ExposureConsentError&&(console.error(f(e.message)),process.exit(78)),(e instanceof t.SingleFileNotFoundError||e instanceof t.SingleFileNotAFileError||e instanceof t.SingleFileNotMarkdownError)&&(console.error(f(e.message)),process.exit(1)),e instanceof t.MissingOkConfigError&&(console.error(f(e.message)),process.exit(1)),se(e,t)){let e=t.resolveLockDir(m),n=null;try{n=await ae({readServerLock:()=>t.readServerLock(e),now:Date.now,sleep:e=>I(e),timeoutMs:3e3,pollIntervalMs:50})}catch(e){process.stderr.write(`[start] spawn-or-reuse: lock poll failed (${e instanceof Error?e.message:String(e)}) — falling back to the collision message\n`)}if(n!==null){let[e,...t]=oe(n);console.log(u(e));for(let e of t)console.log(d(e));process.exit(0)}}let n=ce(e,m,t);n!==null&&(console.error(f(n)),process.exit(1)),console.error(`${f(`Failed to start:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exit(1)}let P=!1,F=async e=>{if(P)return;P=!0;let[t,...n]=re(e);console.log(u(`\n${t}`));for(let e of n)console.log(d(` ${e}`));try{await N.destroy(`external-signal`)}catch(e){console.error(`${f(`destroy() failed:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exitCode=1}process.exit(process.exitCode??0)};process.once(`SIGINT`,()=>{F(`SIGINT`)}),process.once(`SIGTERM`,()=>{F(`SIGTERM`)});let L=`http://${C.includes(`:`)&&!C.startsWith(`[`)?`[${C}]`:C}:${N.port}`,R=C===`0.0.0.0`||C===`::`?`http://0.0.0.0:${N.port}`:void 0,V=L;console.log(l({name:`open-knowledge`,version:D,localUrl:V,networkUrl:R,nextSteps:[`Open the Editor URL in your browser to start editing.`]}));let H={"shadow-repo":`Version history and branch-switch safety unavailable`,"file-watcher":`External file changes will not sync to the editor`,"head-watcher":`Git branch switches may cause document inconsistency`};N.ready.then(async()=>{if(N.degraded.length>0){console.log();for(let e of N.degraded){let t=H[e]??`${e} (check server logs for details)`;console.warn(` ${p(`⚠`)} ${p(e)}: ${d(t)}`)}console.log()}if(W({openBrowser:o.openBrowser!==!1&&E.openBrowser,explicitOn:o.openBrowser!==!1&&g.server?.openBrowser===!0,host:C,isTTY:process.stdout.isTTY===!0,ephemeral:o.singleFile!==void 0,only:o.only,servesUi:M!==void 0})){let{openBrowser:e}=await import(`./open-browser-H-QKQd10.mjs`);e(V)}}).catch(e=>{console.error(` ${f(`Server initialization failed:`)} ${e instanceof Error?e.message:String(e)}`)})}async function ae(e){let t=e.now()+e.timeoutMs,n=e.readServerLock();for(;n!==null&&n.draining!==!0&&n.port<=0&&e.now()<t;)await e.sleep(e.pollIntervalMs),n=e.readServerLock();return n===null||n.draining===!0||n.port<=0?null:f(n)&&n.url!==void 0?{url:n.url,kind:n.kind,pid:n.pid,servesUi:!0}:{url:n.url??`http://127.0.0.1:${n.port}`,kind:n.kind,pid:n.pid,servesUi:!1}}function oe(e){return[`${e.kind===`mcp-spawned`?`An MCP-spawned OpenKnowledge server is already running on this project`:`OpenKnowledge is already running on this project`} (pid ${e.pid}).`,` ${e.url}`,"Leaving it running — run `ok stop` first if you want a fresh server."]}function se(e,t){let n=t.ServerLockCollisionError;return n!==void 0&&e instanceof n}function ce(e,t,n){let r=n.ServerLockCollisionError;if(r===void 0||!(e instanceof r))return null;try{let e=n.readServerLock(n.resolveLockDir(t));return e&&e.kind===`mcp-spawned`?"An MCP-spawned server holds this lock; it should release on idle-shutdown (~30 min). Or run `ok stop`.":"OpenKnowledge server is already running on this project — check `ok status` or `ok stop`."}catch{return null}}function le(e){return new h(`start`).description(`Start the OpenKnowledge server (UI + API + MCP + collab on one port)`).option(`-p, --port <port>`,`Server port`,void 0).option(`--bind <address>`,`Bind address (repeatable; default 127.0.0.1 — loopback only)`,(e,t)=>[...t??[],e]).option(`--no-open-browser`,`Do not open the browser after start (interactive loopback starts open it by default)`).option(`--only <module>`,`Serve one module: 'server' (API + MCP only, no shell or browser)`,R).option(`--idle-shutdown <duration>`,`Shut the server down after this long with no connected clients ('off', or a duration like 90s, 30m, 2h; default 30m)`,V).option(`--mode <mode>`,`Force dispatch mode: 'browser' or 'app'`,te).option(`--serve-content-assets`,`Serve content assets from this server (now the default; kept for compatibility)`).option(`--react-shell-dist-dir <path>`,`Serve React shell from <path>`).addOption(new p(`--single-file <path>`,`No-project ephemeral single-file mode: scope the server to one markdown file (git + MCP off)`).hideHelp()).addOption(new p(`--project-dir <dir>`,`Throwaway project root for --single-file (where ephemeral .ok/ state lives)`).hideHelp()).option(`--external-url <url>`,`Canonical external origin clients dial (sets server.externalUrl for this run) — its host joins the Host/Origin allowlists (CORS + external-Host admission). External exposure additionally requires consent (OK_ALLOW_EXTERNAL=1 or server.allowExternal).`,G).action(async t=>{let n=e();if(t.only===`server`&&t.reactShellDistDir!==void 0&&(process.stderr.write(`error: option '--only server' cannot be combined with '--react-shell-dist-dir'
3
3
  `),process.exit(2)),t.projectDir!==void 0&&t.singleFile===void 0&&(process.stderr.write(`error: option '--project-dir' requires '--single-file'
4
4
  `),process.exit(2)),t.mode===`app`){let e=[];if(t.port!==void 0&&e.push(`--port`),t.bind!==void 0&&e.push(`--bind`),t.only!==void 0&&e.push(`--only`),t.idleShutdown!==void 0&&e.push(`--idle-shutdown`),t.openBrowser===!1&&e.push(`--no-open-browser`),t.externalUrl!==void 0&&e.push(`--external-url`),e.length>0){let t=process.env.OK_LOG_LEVEL??`info`;(t===`debug`||t===`trace`)&&console.error(`--mode=app: ignoring ${e.join(`, `)}`)}let n=w(x());if(n.available){g({spawn:O},n);return}console.error(y(n.reason)),process.exit(1)}await ie(n,t)})}export{ce as C,le as S,Z as T,ne as _,oe as a,W as b,Y as c,V as d,R as f,$ as g,ae as h,K as i,se as l,L as m,q as n,re as o,z as p,Q as r,H as s,J as t,G as u,B as v,X as w,U as x,ie as y};
5
- //# sourceMappingURL=start-DL1V-xma.mjs.map
5
+ //# sourceMappingURL=start-C7eu1p_t.mjs.map
@@ -0,0 +1 @@
1
+ import{S as e,m as t,p as n,r}from"./start-C7eu1p_t.mjs";export{r as bootStartServer,n as resolveBundledReactShellDir,t as resolveHost,e as startCommand};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkeep/open-knowledge",
3
- "version": "0.68.13-beta.0",
3
+ "version": "0.68.13-beta.1",
4
4
  "description": "Local-first, agent-friendly Markdown knowledge base with a cross-platform CLI and web editor",
5
5
  "keywords": [
6
6
  "knowledge-base",
@@ -71,10 +71,10 @@
71
71
  "ajv-formats": "^3.0.1",
72
72
  "tsdown": "^0.21.7",
73
73
  "typescript": "^5.9.3",
74
- "@inkeep/open-knowledge-app": "0.68.13-beta.0",
75
- "@inkeep/open-knowledge-server": "0.68.13-beta.0",
76
- "@inkeep/open-knowledge-core": "0.68.13-beta.0",
77
- "@inkeep/open-knowledge-native-config": "0.0.0"
74
+ "@inkeep/open-knowledge-native-config": "0.0.0",
75
+ "@inkeep/open-knowledge-server": "0.68.13-beta.1",
76
+ "@inkeep/open-knowledge-app": "0.68.13-beta.1",
77
+ "@inkeep/open-knowledge-core": "0.68.13-beta.1"
78
78
  },
79
79
  "scripts": {
80
80
  "build:cli": "rm -rf dist && tsdown",
@@ -1,2 +0,0 @@
1
- import"./src-B2bAQ64a.mjs";var e=`0.68.13-beta.0`;const t=`config.yml`,n=e;export{n,t};
2
- //# sourceMappingURL=constants-BPBuLtK3.mjs.map
@@ -1 +0,0 @@
1
- import"./src-e2udu2Rw.mjs";import{g as e}from"./init-DgDmq69W.mjs";export{e as runInit};
@@ -1 +0,0 @@
1
- import{n as e}from"./loader-CXM6dHCk.mjs";export{e as loadConfig};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./preview-BCNCafey.mjs";export{t as formatPreviewBlock,e as previewContent};
@@ -1 +0,0 @@
1
- import{t as e}from"./index-DQxHPKe1.js";export{e as FeedbackForm};
@@ -1 +0,0 @@
1
- import{t as e}from"./ManagedArtifactProperties-DXkL3yD-.js";export{e as ManagedArtifactProperties};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./TerminalPanel-CdIGSrlk.js","./chunk-CYidjpOJ.js","./dist-D6JA916i.js","./preload-helper-Chd9yIcd.js","./trace-api-BP9dN1Hz.js","./lib-vOz_s3tj.js","./html-void-elements-zEl0KGqf.js","./lib-DmueaA5E.js","./markdownit-CugClK-K.js","./w3c-keyname-C7Rznu6R.js","./dist-Nvb76hAm.js","./jsx-runtime-BUgB2tll.js","./react-f2sANaYj.js","./button-Cym3gapE.js","./dist-BHv-mziD.js","./bundle-mjs-SHeFpKGC.js","./compiler-runtime-BfE3aGVn.js","./utils-CPqDy6Hr.js","./x-CAqepOgq.js","./createLucideIcon-BYL3gqKc.js","./dist-PQ5KMVDh.js","./dist-CJhtNlOm2.js","./react-dom-DPxgxlDT.js","./TerminalStartingNotice-DqoBhFu7.js","./spinner-By93kIxm.js","./file-tree-adapter-C4gKqxzg.js","./file-tree-rename-validation-DkwrQpH8.js","./file-tree-utils-DGw50SVS.js","./page-list-cache-DZPKVqeA.js","./doc-paths-Co-S4Nk5.js","./doc-hash-Dx9hwyex.js","./terminal-command-events-DBrAYz2u.js","./use-live-xterm-theme-aXDStBRf.js","./use-apply-config-color-theme-D-13D2Xt.js","./use-apply-config-theme-CBmHKD_B.js","./TerminalPanel-BrP-ENHg.css","./ThreadView-OvqDyN6T.js","./dist-Cr4-nBVI.js","./dialog-_kqu_91M.js","./dist-BcvirUWL.js","./dist-DRO03ovd.js","./es2015-B9_uRFGw.js","./progress-Dybg1uzH.js","./separator-DmmNuc_B.js","./DocumentContext-BCC0kz3b.js","./dist-BamsYfxi.js","./dist-C_J0Iqwf.js","./dist-lZ4I5dY3.js","./dist-CrDOq41p.js","./dist-BNAK9cIn.js","./dist-BBgXXF91.js","./dist-DX3X9Ax9.js","./dist-Cxq5_zBE.js","./dist-B4UQ1jHk.js","./dist-CsTGDHWQ.js","./stex-CO8mFD4t.js","./floating-ui.dom-BcZPrP06.js","./config-provider-D1PN7JoK.js","./client-version-n6bVKfXT.js","./i18n-Bl2radzN.js","./messages-DwrUkQ2i.js","./propagation-api-DC5404fy.js","./context-api-dUnlgSJr.js","./select-BL1z9P70.js","./dist-CMrReMig.js","./dist-BDna-dOq.js","./dist-Bn0BEeMP.js","./tooltip-DttaCTqz.js","./dist-Bd_yyADX.js","./check-D16atakQ.js","./chevron-down-DZvAgb7P.js","./collapsible-DYySK8La.js","./switch-iwBsEWej.js","./CodeMirrorPropInput-DsNxdRyF.js","./folder-open-Do94fvzX.js","./trash-2-Dxkzm2qO.js","./with-selector-PRoyWQiu.js","./cm-theme-BAUNpz80.js","./external-link-DSbrgMTH.js","./documents-fetch-CM9yjwOc.js","./note-window-mode-CsmLTxU_.js","./git-branch-980jD05X.js","./Mermaid-Cw1EnMJu.js","./maximize-2-DGaFLVum.js","./triangle-alert-CnzPFn6V.js","./chevron-right-ARd3H40k.js","./circle-alert-g-C_b-Ua.js","./prop-types-gfjew8MI.js","./startup-marks-Ml5LD4ks.js","./documents-events-DR8HEJoe.js","./parse-api-error-Dd8VI2eu.js","./eye-B_gavT2I.js","./hash-DasvQ1cj.js","./info-A3ob83yN.js","./minus-O6IVpGJy.js","./paperclip-s2F4zVCC.js","./local-menu-action-bus-CTOHR9LV.js","./badge-DXNaFLJT.js","./input-CUJ5gt4q.js","./popover-DoM32eoR.js","./dist-GoOli512.js","./use-collab-url-CqeAlJNl.js","./excalidraw-scene-Beu7eb7a.js","./known-skill-dirs-CsDCOBbq.js","./skill-scope-D9dg7q4P.js","./skills-api-BU5k9WYz.js","./use-workspace-DAuqjfCS.js","./DocumentContext-B0sQn39F.css","./workspace-paths-hw0bowEX.js","./libesm-AifqMnJy.js","./chunk-BO2N2NFS-CUMnMIzo.js","./RegisteredAgentIcon-5StNVeMK.js","./cursor-BZjrNgR6.js","./dropdown-menu-DYfdElMl.js","./dist-BjJaywqn.js","./dist-wcXwpuqG.js","./dist-Dhtu02232.js","./terminal-D4S9lNQf.js","./launcher-selection-BZDeoOtN.js","./list-plus-BXaFXlLg.js","./comment-chips-kygMXaeH.js","./square-pen-DK8eXxpV.js","./wrench-X0fcm_5p.js","./clipboard-adapter-815RzzoI.js","./skeleton-IXDSleLh.js","./textarea-BlVs71hx.js","./thread-client-D6kQOHZl.js","./launch-agent-thread-Clx5mTVb.js","./agent-presence-BFDnO46z.js","./ok-syntax-theme-COS26B1a.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./preload-helper-Chd9yIcd.js";import{t as n}from"./jsx-runtime-BUgB2tll.js";import{t as r}from"./react-f2sANaYj.js";import{n as i,r as a}from"./dist-Nvb76hAm.js";import{t as o}from"./useQuery-ZeEDLtxh.js";import{t as s}from"./react-dom-DPxgxlDT.js";import{t as c}from"./compiler-runtime-BfE3aGVn.js";import{i as l,n as u,o as d,r as f}from"./local-menu-action-bus-CTOHR9LV.js";import{t as p}from"./utils-CPqDy6Hr.js";import{t as m}from"./overlay-layers-Bj-TVfKw.js";import{t as h}from"./button-Cym3gapE.js";import{i as ee,n as te,t as g}from"./tooltip-DttaCTqz.js";import{_,a as v,b as y,d as ne,h as b,n as x,t as S,y as C}from"./RegisteredAgentIcon-5StNVeMK.js";import{i as w}from"./terminal-telemetry-z_vfchja.js";import{$t as T}from"./dist-D6JA916i.js";import{n as re}from"./dist-CJhtNlOm2.js";import{a as E,x as D}from"./use-settings-route-WFqgyKMc.js";import{t as O}from"./dist-Cr4-nBVI.js";import{C as ie,D as k,E as ae,S as oe,T as se,_ as A,a as ce,b as j,f as M,i as le,s as N,t as ue,v as P,y as F}from"./terminal-launch-events-Che2grQr.js";import{_ as de,c as fe,d as pe,f as me,h as he,i as ge,l as _e,n as ve,p as I,u as ye}from"./launcher-selection-BZDeoOtN.js";import{c as be,i as L,m as R,n as xe,o as z,r as Se,s as Ce,t as B}from"./terminal-cli-display-XU6hL6_q.js";import{t as V}from"./createLucideIcon-BYL3gqKc.js";import{t as we}from"./check-D16atakQ.js";import{t as Te}from"./chevron-down-DZvAgb7P.js";import{t as Ee}from"./chevron-right-ARd3H40k.js";import{a as De,i as H,m as Oe,o as U,r as ke,t as Ae,u as W}from"./dropdown-menu-DYfdElMl.js";import{t as je}from"./spinner-By93kIxm.js";import{t as Me}from"./trash-2-Dxkzm2qO.js";import{t as Ne}from"./x-CAqepOgq.js";import{a as Pe,i as G,t as K}from"./popover-DoM32eoR.js";import{a as Fe,d as Ie,g as Le,h as Re,n as ze,r as Be,s as Ve,t as He}from"./sortable.esm-_XYOlees.js";import{r as Ue,t as We}from"./input-group-DBosszKy.js";import{i as q,n as Ge,r as Ke,t as qe}from"./tabs-B9Ncs2Ot.js";import{c as Je,l as Ye,o as Xe,r as Ze,u as Qe}from"./thread-client-D6kQOHZl.js";import{n as $e,r as et,t as tt}from"./launch-agent-thread-Clx5mTVb.js";import{n as nt,t as rt}from"./use-terminal-enabled-CcQe5wVH.js";import{t as it}from"./TerminalStartingNotice-DqoBhFu7.js";var at=V(`panel-bottom`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 15h18`,key:`5xshup`}]]),ot=e(s(),1),J=c(),Y=e(r(),1),X=n();function st(e){let t=(0,J.c)(26),{archived:n,openThreadIds:r,onOpenThread:i}=e,{_:o}=a(),s=Ze(),[c,l]=(0,Y.useState)(!1),[u,d]=(0,Y.useState)(null),[f,m]=(0,Y.useState)(0),_=(0,Y.useId)(),v;t[0]===o?v=t[1]:(v=o({id:`V0mbgd`}),t[0]=o,t[1]=v);let y=v,ne=K,b;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(b=e=>{l(e),e?m(Date.now()):d(null)},t[2]=b):b=t[2];let x;t[3]===o?x=t[4]:(x=o({id:`6FCixu`}),t[3]=o,t[4]=x);let C;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,X.jsx)(I,{"aria-hidden":`true`}),t[5]=C):C=t[5];let w;t[6]===x?w=t[7]:(w=(0,X.jsx)(ee,{asChild:!0,children:(0,X.jsx)(Pe,{asChild:!0,children:(0,X.jsx)(h,{type:`button`,variant:`ghost`,size:`icon-xs`,className:`shrink-0 cursor-pointer text-muted-foreground hover:text-foreground`,"aria-label":x,"data-testid":`agent-thread-history`,children:C})})}),t[6]=x,t[7]=w);let T;t[8]===o?T=t[9]:(T=o({id:`6FCixu`}),t[8]=o,t[9]=T);let re;t[10]===T?re=t[11]:(re=(0,X.jsx)(te,{side:`bottom`,sideOffset:8,children:T}),t[10]=T,t[11]=re);let E;t[12]!==w||t[13]!==re?(E=(0,X.jsxs)(g,{children:[w,re]}),t[12]=w,t[13]=re,t[14]=E):E=t[14];let D=G,O=n.map(e=>{let t=r.has(e.threadId);if(u===e.threadId&&!t)return(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-md bg-destructive/5 px-2 py-1`,"data-testid":`agent-thread-history-confirm`,children:[(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs`,children:o({id:`kVgQUA`})}),(0,X.jsx)(h,{type:`button`,size:`sm`,variant:`destructive`,className:`h-6 px-2 text-xs`,onClick:()=>{s.deleteThread(e.threadId),d(null)},"data-testid":`agent-thread-history-confirm-delete`,children:o({id:`cnGeoo`})}),(0,X.jsx)(h,{type:`button`,size:`sm`,variant:`ghost`,className:`h-6 px-2 text-xs`,onClick:()=>d(null),children:o({id:`dEgA5A`})})]},e.threadId);let n=`${_}-${e.threadId}`;return(0,X.jsxs)(`div`,{className:`group flex items-center gap-0.5`,children:[(0,X.jsxs)(h,{type:`button`,variant:`ghost`,className:`h-auto min-w-0 flex-1 justify-start gap-2 px-2 py-1.5`,onClick:()=>{i(e.threadId),l(!1)},"data-testid":`agent-thread-history-open-${e.threadId}`,children:[(0,X.jsx)(S,{agentId:e.agent.id,iconUrl:e.agent.iconUrl,className:`size-4 shrink-0`}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-left text-xs`,children:e.title}),(0,X.jsx)(`span`,{className:`shrink-0 text-[10px] text-muted-foreground`,children:Z(e.lastActivityAt,f)})]}),(0,X.jsxs)(g,{children:[(0,X.jsx)(ee,{asChild:!0,children:(0,X.jsxs)(`span`,{className:p(`inline-flex`,t&&`cursor-not-allowed`),children:[(0,X.jsx)(h,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":o({id:`Y2tU6I`,values:{0:e.title}}),"aria-disabled":t||void 0,"aria-describedby":t?n:void 0,className:p(`opacity-0 transition-opacity focus-visible:opacity-100 group-hover:opacity-100`,t?`cursor-not-allowed text-muted-foreground/50`:`text-muted-foreground hover:text-destructive`),onClick:()=>{t||d(e.threadId)},"data-testid":`agent-thread-history-delete-${e.threadId}`,children:(0,X.jsx)(Me,{className:`size-3`,"aria-hidden":`true`})}),t?(0,X.jsx)(`span`,{id:n,className:`sr-only`,children:y}):null]})}),(0,X.jsx)(te,{side:`bottom`,sideOffset:8,children:t?y:o({id:`Y2tU6I`,values:{0:e.title}})})]})]},e.threadId)}),ie;t[15]===O?ie=t[16]:(ie=(0,X.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:O}),t[15]=O,t[16]=ie);let k;t[17]!==D||t[18]!==ie?(k=(0,X.jsx)(D,{align:`end`,className:`w-72 p-1`,children:ie}),t[17]=D,t[18]=ie,t[19]=k):k=t[19];let ae;return t[20]!==ne||t[21]!==c||t[22]!==k||t[23]!==b||t[24]!==E?(ae=(0,X.jsxs)(ne,{open:c,onOpenChange:b,children:[E,k]}),t[20]=ne,t[21]=c,t[22]=k,t[23]=b,t[24]=E,t[25]=ae):ae=t[25],ae}function ct(e){let t=(0,J.c)(18),{archived:n,onOpen:r}=e,{_:i}=a(),[o,s]=(0,Y.useState)(0),c,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>{s(Date.now())},l=[],t[0]=c,t[1]=l):(c=t[0],l=t[1]),(0,Y.useEffect)(c,l);let u;t[2]===i?u=t[3]:(u=i({id:`Tq9kNX`}),t[2]=i,t[3]=u);let d;t[4]===u?d=t[5]:(d=(0,X.jsx)(`p`,{className:`px-1 text-muted-foreground text-xs`,children:u}),t[4]=u,t[5]=d);let f;if(t[6]!==n||t[7]!==o||t[8]!==r){let e;t[10]!==o||t[11]!==r?(e=e=>(0,X.jsxs)(h,{type:`button`,variant:`ghost`,className:`h-auto w-full min-w-0 justify-start gap-2 px-2 py-1.5`,onClick:()=>r(e.threadId),"data-testid":`agent-thread-empty-open-${e.threadId}`,children:[(0,X.jsx)(S,{agentId:e.agent.id,iconUrl:e.agent.iconUrl,className:`size-4 shrink-0`}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-left text-xs`,children:e.title}),(0,X.jsx)(`span`,{className:`shrink-0 text-[10px] text-muted-foreground`,children:Z(e.lastActivityAt,o)})]},e.threadId),t[10]=o,t[11]=r,t[12]=e):e=t[12],f=n.map(e),t[6]=n,t[7]=o,t[8]=r,t[9]=f}else f=t[9];let p;t[13]===f?p=t[14]:(p=(0,X.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:f}),t[13]=f,t[14]=p);let m;return t[15]!==d||t[16]!==p?(m=(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto p-3`,"data-testid":`agent-thread-empty-chooser`,children:[d,p]}),t[15]=d,t[16]=p,t[17]=m):m=t[17],m}function Z(e,t){let n=Math.max(0,t-e);if(n<6e4)return O._({id:`xOTzt5`});if(n<36e5){let e=Math.round(n/6e4);return O._({id:`_rP3HI`,values:{minutes:e}})}if(n<864e5){let e=Math.round(n/36e5);return O._({id:`nYeBmY`,values:{hours:e}})}let r=Math.round(n/864e5);return O._({id:`LPAv9E`,values:{days:r}})}var lt={terminal:`ok-dock-session-order-v1`,agents:`ok-agent-session-order-v1`};function Q(e){return{order:Array.isArray(e.order)?e.order.filter(e=>typeof e==`string`):[],activeKey:typeof e.activeKey==`string`?e.activeKey:null}}function ut(e){if(typeof window>`u`)return null;try{let t=window.localStorage.getItem(lt[e]);return t===null?null:Q(JSON.parse(t))}catch{return null}}function dt(e,t){if(!(typeof window>`u`))try{window.localStorage.setItem(lt[e],JSON.stringify(t))}catch{}}async function ft(e,t){if(typeof e?.terminal?.getDockState==`function`)try{let n=await e.terminal.getDockState(),r=n[t];if(r==null)return{sessionOrder:null,terminalSnapshot:n.terminalSnapshot};let{order:i,activeKey:a}=Q(r);return{sessionOrder:i.length===0&&a===null?null:{order:i,activeKey:a},terminalSnapshot:n.terminalSnapshot}}catch(e){return console.warn(`[dock-session-persistence] getDockState failed; cold-starting:`,e),{sessionOrder:null,terminalSnapshot:void 0}}return{sessionOrder:e?.terminal==null?ut(t):null,terminalSnapshot:void 0}}function pt(e,t){return ft(e,t).then(e=>e.sessionOrder)}function mt(e,t,n,r={tabs:[],activeOrdinal:null}){if(typeof e?.terminal?.setDockState==`function`){let i={order:[...n.order],activeKey:n.activeKey},a=t===`terminal`?e.terminal.setDockState({surface:`terminal`,...i,terminalSnapshot:r}):e.terminal.setDockState({surface:`agents`,...i});Promise.resolve(a).then(e=>{e?.ok===!1&&(e.reason===`ipc-unavailable`?console.warn(`[dock-session-persistence] setDockState skipped during window teardown`):console.error(`[dock-session-persistence] setDockState failed:`,e.reason))}).catch(e=>{console.error(`[dock-session-persistence] setDockState rejected:`,e)});return}e?.terminal??dt(t,n)}var ht=`ok-terminal-new-tab-bare-v1`;function gt(e){try{return(e??localStorage).getItem(ht)===`1`}catch{return!1}}function _t(e,t){try{let n=t??localStorage;e?n.setItem(ht,`1`):n.removeItem(ht)}catch{}for(let e of vt)e()}var vt=new Set;function yt(){return Ct()}function bt(){for(let e of vt)e()}typeof window<`u`&&typeof window.addEventListener==`function`&&window.addEventListener(`storage`,e=>{(e.key===`ok-terminal-new-tab-bare-v1`||e.key===null)&&bt()});function xt(e){return vt.add(e),()=>vt.delete(e)}function St(){return(0,Y.useSyncExternalStore)(xt,yt,yt)}function Ct(){try{return typeof localStorage>`u`?!1:gt()}catch{return!1}}var wt=j(()=>t(()=>import(`./TerminalPanel-CdIGSrlk.js`).then(e=>({default:e.TerminalPanel})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url));function Tt(e){let t=(0,J.c)(23),{bridge:n,onClose:r,onTitleChange:i,launch:o,commandId:s,adoptPtyId:c,onPtyId:l}=e,u=o===void 0?null:o,f=s===void 0?null:s,p=c===void 0?null:c,{enabled:m,synced:h}=rt(),ee=nt(),{_:te}=a(),g;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g={enabled:null,hasSynced:!1},t[0]=g):g=t[0];let[_,v]=(0,Y.useState)(g),y,ne;t[1]!==m||t[2]!==h?(y=()=>{h&&v(e=>e.hasSynced&&e.enabled===m?e:{enabled:m,hasSynced:!0})},ne=[m,h],t[1]=m,t[2]=h,t[3]=y,t[4]=ne):(y=t[3],ne=t[4]),(0,Y.useEffect)(y,ne);let b=h||_.hasSynced,x=h?m:_.enabled,S=b&&x===!1,C,w;t[5]===S?(C=t[6],w=t[7]):(C=()=>{S||wt.preload()},w=[S],t[5]=S,t[6]=C,t[7]=w),(0,Y.useEffect)(C,w);let T;t[8]!==te||t[9]!==ee?(T=function(){if(ee===null){re.error(te({id:`V_6bJ4`}));return}let e=ee(!0);e.ok||re.error(te({id:`jKd3AP`,values:{0:e.error}}))},t[8]=te,t[9]=ee,t[10]=T):T=t[10];let E=T;if(b&&!S){let e;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,X.jsx)(it,{}),t[11]=e):e=t[11];let a;return t[12]!==p||t[13]!==n||t[14]!==f||t[15]!==u||t[16]!==r||t[17]!==l||t[18]!==i?(a=(0,X.jsx)(d,{fallbackRender:Dt,onError:Et,children:(0,X.jsx)(Y.Suspense,{fallback:e,children:(0,X.jsx)(wt,{bridge:n,className:`h-full`,onClose:r,onTitleChange:i,launch:u,commandId:f,adoptPtyId:p,onPtyId:l})})}),t[12]=p,t[13]=n,t[14]=f,t[15]=u,t[16]=r,t[17]=l,t[18]=i,t[19]=a):a=t[19],a}let D;return t[20]!==E||t[21]!==S?(D=S?(0,X.jsx)($,{onEnable:E}):(0,X.jsx)(it,{}),t[20]=E,t[21]=S,t[22]=D):D=t[22],D}function Et(e,t){console.error(`[TerminalGate] rendered fallback for the terminal panel`,e,t.componentStack)}function Dt(e){return(0,X.jsx)(Ot,{...e})}function Ot(e){let t=(0,J.c)(15),{error:n}=e,{_:r}=a(),i;t[0]!==r||t[1]!==n?(i=n instanceof Error&&/dynamically imported module|Failed to fetch/i.test(n.message)?r({id:`Y8ViJx`}):r({id:`fbsiBw`}),t[0]=r,t[1]=n,t[2]=i):i=t[2];let o=i,s;t[3]===r?s=t[4]:(s=r({id:`6MnZEC`}),t[3]=r,t[4]=s);let c;t[5]===o?c=t[6]:(c=(0,X.jsx)(`p`,{className:`max-w-sm text-sm text-foreground`,children:o}),t[5]=o,t[6]=c);let l;t[7]===r?l=t[8]:(l=r({id:`HpK_8d`}),t[7]=r,t[8]=l);let u;t[9]===l?u=t[10]:(u=(0,X.jsx)(h,{onClick:kt,children:l}),t[9]=l,t[10]=u);let d;return t[11]!==s||t[12]!==c||t[13]!==u?(d=(0,X.jsxs)(`section`,{"aria-label":s,className:`flex h-full w-full flex-col items-center justify-center gap-3 bg-background p-6 text-center`,role:`alert`,children:[c,u]}),t[11]=s,t[12]=c,t[13]=u,t[14]=d):d=t[14],d}function kt(){return window.location.reload()}function $(e){let t=(0,J.c)(20),{onEnable:n}=e,{_:r}=a(),i;t[0]===r?i=t[1]:(i=r({id:`_XWY2J`}),t[0]=r,t[1]=i);let o;t[2]===r?o=t[3]:(o=r({id:`oYepHb`}),t[2]=r,t[3]=o);let s;t[4]===o?s=t[5]:(s=(0,X.jsx)(`p`,{className:`max-w-sm text-sm text-foreground`,children:o}),t[4]=o,t[5]=s);let c;t[6]===r?c=t[7]:(c=r({id:`v2ZW0K`}),t[6]=r,t[7]=c);let l;t[8]!==n||t[9]!==c?(l=(0,X.jsx)(h,{onClick:n,children:c}),t[8]=n,t[9]=c,t[10]=l):l=t[10];let u;t[11]===r?u=t[12]:(u=r({id:`ICoNYz`}),t[11]=r,t[12]=u);let d;t[13]===u?d=t[14]:(d=(0,X.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:u}),t[13]=u,t[14]=d);let f;return t[15]!==i||t[16]!==s||t[17]!==l||t[18]!==d?(f=(0,X.jsxs)(`section`,{"aria-label":i,className:`flex h-full w-full flex-col items-center justify-center gap-3 bg-background p-6 text-center`,children:[s,l,d]}),t[15]=i,t[16]=s,t[17]=l,t[18]=d,t[19]=f):f=t[19],f}function At(e){let t=(0,J.c)(67),{selected:n,onLaunchSelected:r,showAgents:s,registeredAgents:c,onPickAgent:u,onOpenSettings:d,liveThreadCount:m,showClis:_,onPickCli:v,onPickTerminal:y,visibleClis:ne,className:b}=e,x=ne===void 0?B:ne,{_:C}=a(),[w,re]=(0,Y.useState)(!1),E;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(E=[`acp-catalog`],t[0]=E):E=t[0];let D=w&&s,O;t[1]===D?O=t[2]:(O={queryKey:E,queryFn:jt,enabled:D,staleTime:3e5},t[1]=D,t[2]=O);let ie=m>=(o(O).data?.maxThreads??8),k=s||_,ae;t[3]!==C||t[4]!==n.agent||t[5]!==n.cli||t[6]!==n.kind?(ae=n.kind===`terminal`?C({id:`AB4qw9`}):n.kind===`cli`?C({id:`nP-KFo`,values:{0:T[n.cli].displayName}}):n.agent===null?C({id:`G7bn_N`}):C({id:`nP-KFo`,values:{0:n.agent.name}}),t[3]=C,t[4]=n.agent,t[5]=n.cli,t[6]=n.kind,t[7]=ae):ae=t[7];let oe=ae,A;t[8]===b?A=t[9]:(A=p(`flex shrink-0 items-center`,b),t[8]=b,t[9]=A);let ce=k&&`rounded-r-none`,j;t[10]===ce?j=t[11]:(j=p(`cursor-pointer gap-0.5 px-1.5 text-muted-foreground hover:text-foreground`,ce),t[10]=ce,t[11]=j);let M;t[12]===n?M=t[13]:(M=n.kind===`terminal`?null:(0,X.jsx)(Mt,{selected:n,className:`size-3.5`}),t[12]=n,t[13]=M);let le;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(le=(0,X.jsx)(l,{"aria-hidden":`true`,className:`size-3`}),t[14]=le):le=t[14];let N;t[15]!==r||t[16]!==oe||t[17]!==j||t[18]!==M?(N=(0,X.jsx)(ee,{asChild:!0,children:(0,X.jsxs)(h,{type:`button`,variant:`ghost`,size:`xs`,"aria-label":oe,"data-testid":`terminal-new-chat`,className:j,onClick:r,children:[M,le]})}),t[15]=r,t[16]=oe,t[17]=j,t[18]=M,t[19]=N):N=t[19];let ue;t[20]===oe?ue=t[21]:(ue=(0,X.jsx)(te,{side:`bottom`,sideOffset:8,children:oe}),t[20]=oe,t[21]=ue);let P;t[22]!==N||t[23]!==ue?(P=(0,X.jsxs)(g,{children:[N,ue]}),t[22]=N,t[23]=ue,t[24]=P):P=t[24];let F;t[25]!==C||t[26]!==k?(F=k?(0,X.jsx)(Oe,{asChild:!0,children:(0,X.jsx)(h,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":C({id:`l87Deg`}),"data-testid":`terminal-new-chat-menu`,className:`cursor-pointer rounded-l-none text-muted-foreground hover:text-foreground`,children:(0,X.jsx)(Te,{"aria-hidden":`true`,className:`size-3`})})}):null,t[25]=C,t[26]=k,t[27]=F):F=t[27];let de;t[28]!==C||t[29]!==ie||t[30]!==u||t[31]!==c||t[32]!==n.agent?.id||t[33]!==n.agent?.source||t[34]!==n.kind||t[35]!==s?(de=s&&c.length>0?(0,X.jsxs)(H,{"aria-label":C({id:`RXEbZy`}),children:[(0,X.jsx)(U,{children:(0,X.jsx)(i,{id:`RXEbZy`})}),c.map(e=>{let t=n.kind===`agent`&&n.agent?.source===e.source&&n.agent?.id===e.id;return(0,X.jsxs)(De,{onSelect:()=>u(e),disabled:ie,"data-testid":`terminal-new-chat-agent-${e.id}`,"aria-current":t?`true`:void 0,children:[(0,X.jsx)(S,{agentId:e.id,iconUrl:e.iconUrl,className:`size-4`}),(0,X.jsx)(`span`,{className:`flex-1 truncate`,children:e.name}),t?(0,X.jsx)(we,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):null]},`${e.source}:${e.id}`)}),ie?(0,X.jsx)(U,{className:`py-1 font-normal text-muted-foreground text-xs`,"data-testid":`terminal-new-chat-cap`,children:(0,X.jsx)(i,{id:`0QVrvp`})}):null]}):null,t[28]=C,t[29]=ie,t[30]=u,t[31]=c,t[32]=n.agent?.id,t[33]=n.agent?.source,t[34]=n.kind,t[35]=s,t[36]=de):de=t[36];let fe;t[37]!==c||t[38]!==s||t[39]!==_?(fe=s&&c.length>0&&_?(0,X.jsx)(W,{}):null,t[37]=c,t[38]=s,t[39]=_,t[40]=fe):fe=t[40];let pe;t[41]!==C||t[42]!==v||t[43]!==y||t[44]!==n.cli||t[45]!==n.kind||t[46]!==_||t[47]!==x?(pe=_?(0,X.jsxs)(H,{"aria-label":C({id:`ALhMYW`}),children:[(0,X.jsx)(U,{children:(0,X.jsx)(i,{id:`ALhMYW`})}),x.map(e=>{let{displayName:t}=T[e],r=n.kind===`cli`&&n.cli===e;return(0,X.jsxs)(De,{onSelect:()=>v(e),"data-testid":`terminal-new-chat-cli-${e}`,"aria-label":C({id:`9mEZeD`,values:{name:t}}),"aria-current":r?`true`:void 0,children:[(0,X.jsx)(Se,{id:xe(e),className:`size-4`,"aria-hidden":`true`}),(0,X.jsx)(`span`,{className:`flex-1`,children:t}),r?(0,X.jsx)(we,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):null]},e)}),(0,X.jsxs)(De,{onSelect:y,"data-testid":`terminal-new-chat-terminal`,"aria-current":n.kind===`terminal`?`true`:void 0,children:[(0,X.jsx)(se,{"aria-hidden":`true`,className:`size-4`}),(0,X.jsx)(`span`,{className:`flex-1`,children:(0,X.jsx)(i,{id:`ALhMYW`})}),n.kind===`terminal`?(0,X.jsx)(we,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):null]})]}):null,t[41]=C,t[42]=v,t[43]=y,t[44]=n.cli,t[45]=n.kind,t[46]=_,t[47]=x,t[48]=pe):pe=t[48];let me;t[49]!==d||t[50]!==c||t[51]!==s||t[52]!==_?(me=s?(0,X.jsxs)(X.Fragment,{children:[c.length>0||_?(0,X.jsx)(W,{}):null,(0,X.jsxs)(De,{onSelect:d,"data-testid":`terminal-new-chat-settings`,children:[(0,X.jsx)(f,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}),(0,X.jsx)(`span`,{className:`flex-1`,children:(0,X.jsx)(i,{id:`jRAGrQ`})})]})]}):null,t[49]=d,t[50]=c,t[51]=s,t[52]=_,t[53]=me):me=t[53];let he;t[54]!==de||t[55]!==fe||t[56]!==pe||t[57]!==me?(he=(0,X.jsxs)(ke,{align:`start`,className:`max-h-80 min-w-[200px]`,children:[de,fe,pe,me]}),t[54]=de,t[55]=fe,t[56]=pe,t[57]=me,t[58]=he):he=t[58];let ge;t[59]!==w||t[60]!==F||t[61]!==he?(ge=(0,X.jsxs)(Ae,{open:w,onOpenChange:re,children:[F,he]}),t[59]=w,t[60]=F,t[61]=he,t[62]=ge):ge=t[62];let _e;return t[63]!==P||t[64]!==ge||t[65]!==A?(_e=(0,X.jsxs)(`div`,{className:A,children:[P,ge]}),t[63]=P,t[64]=ge,t[65]=A,t[66]=_e):_e=t[66],_e}function jt(e){let{signal:t}=e;return w(t)}function Mt(e){let t=(0,J.c)(13),{selected:n,className:r}=e;if(n.kind===`terminal`){let e;return t[0]===r?e=t[1]:(e=(0,X.jsx)(se,{"aria-hidden":`true`,className:r}),t[0]=r,t[1]=e),e}if(n.kind===`cli`){let e;t[2]===n.cli?e=t[3]:(e=xe(n.cli),t[2]=n.cli,t[3]=e);let i;return t[4]!==r||t[5]!==e?(i=(0,X.jsx)(Se,{id:e,className:r,"aria-hidden":`true`}),t[4]=r,t[5]=e,t[6]=i):i=t[6],i}if(n.agent!==null){let e;return t[7]!==r||t[8]!==n.agent.iconUrl||t[9]!==n.agent.id?(e=(0,X.jsx)(S,{agentId:n.agent.id,iconUrl:n.agent.iconUrl,className:r}),t[7]=r,t[8]=n.agent.iconUrl,t[9]=n.agent.id,t[10]=e):e=t[10],e}let i;return t[11]===r?i=t[12]:(i=(0,X.jsx)(x,{"aria-hidden":`true`,className:r}),t[11]=r,t[12]=i),i}var Nt=`[data-terminal-tab-sortable]`;function Pt(e){let t=(0,J.c)(11),{id:n,disabled:r,children:i}=e,a;t[0]!==r||t[1]!==n?(a={id:n,disabled:r},t[0]=r,t[1]=n,t[2]=a):a=t[2];let{setNodeRef:o,listeners:s,rect:c,transform:l,transition:u,isDragging:d}=Fe(a),f;return t[3]!==i||t[4]!==d||t[5]!==s||t[6]!==c.current?.width||t[7]!==o||t[8]!==l||t[9]!==u?(f=i({setNodeRef:o,listeners:s,style:M({activeWidth:c.current?.width,isDragging:d,transform:l,transition:u})}),t[3]=i,t[4]=d,t[5]=s,t[6]=c.current?.width,t[7]=o,t[8]=l,t[9]=u,t[10]=f):f=t[10],f}function Ft(e){let t=(0,J.c)(11),{children:n,onMoveRight:r}=e,a=(0,Y.useRef)(null);if(r==null)return n;let o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=e=>{if(!P(e))return;e.preventDefault(),a.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let t=e.currentTarget.getBoundingClientRect();e.currentTarget.dispatchEvent(new MouseEvent(`contextmenu`,{bubbles:!0,cancelable:!0,clientX:t.left,clientY:t.bottom}))},t[0]=o):o=t[0];let s;t[1]===n?s=t[2]:(s=(0,X.jsx)(R,{asChild:!0,onKeyDown:o,children:n}),t[1]=n,t[2]=s);let c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=e=>{a.current!=null&&(e.preventDefault(),a.current.focus(),a.current=null)},t[3]=c):c=t[3];let l,u;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,X.jsx)(ae,{"aria-hidden":`true`}),u=(0,X.jsx)(i,{id:`jcEoUi`}),t[4]=l,t[5]=u):(l=t[4],u=t[5]);let d;t[6]===r?d=t[7]:(d=(0,X.jsx)(z,{onCloseAutoFocus:c,children:(0,X.jsx)(Ce,{children:(0,X.jsxs)(be,{onSelect:r,children:[l,u]})})}),t[6]=r,t[7]=d);let f;return t[8]!==s||t[9]!==d?(f=(0,X.jsxs)(L,{children:[s,d]}),t[8]=s,t[9]=d,t[10]=f):f=t[10],f}function It(e){let t=(0,J.c)(111),{sessions:n,sessionKind:r,activeSessionId:o,onSelect:s,onTabActivate:c,newButton:l,trailingControls:u,onClose:d,onRename:f,onReorder:m,onDragActiveChange:_,edge:v,onPlacementChange:y,reserveRightRevealTabGutter:ne,onCollapse:b,children:x,className:S,draggable:C}=e,{_:w}=a(),T=v===`right`,re=T?`bottom`:`right`,E;t[0]!==w||t[1]!==T?(E=w(T?{id:`Tofsyo`}:{id:`PrWQiT`}),t[0]=w,t[1]=T,t[2]=E):E=t[2];let D=E,O;t[3]!==v||t[4]!==y||t[5]!==r?(O=r===`terminal`&&v===`bottom`&&y!=null?()=>y(`right`):void 0,t[3]=v,t[4]=y,t[5]=r,t[6]=O):O=t[6];let ie=O,[k,oe]=(0,Y.useState)(null),[se,j]=(0,Y.useState)(``),[M,le]=(0,Y.useState)(null),ue=(0,Y.useRef)(null),P=(0,Y.useRef)(!1),de=f!=null,fe,pe;t[7]===k?(fe=t[8],pe=t[9]):(fe=()=>{k!=null&&(ue.current?.focus(),ue.current?.select())},pe=[k],t[7]=k,t[8]=fe,t[9]=pe),(0,Y.useEffect)(fe,pe);let me,he;t[10]!==k||t[11]!==n?(me=()=>{k!=null&&!n.some(e=>e.id===k)&&(P.current=!1,oe(null),j(``))},he=[n,k],t[10]=k,t[11]=n,t[12]=me,t[13]=he):(me=t[12],he=t[13]),(0,Y.useEffect)(me,he);let ge=function(e){de&&(P.current=!1,oe(e.id),j(e.label))},_e;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(_e=function(e){let t=typeof CSS<`u`&&CSS.escape?CSS.escape(e):e;queueMicrotask(()=>{document.querySelector(`[role="tab"][data-tab-id="${t}"]`)?.focus()})},t[14]=_e):_e=t[14];let ve=_e,I=function(e){P.current||f?.(e,se.trim()),P.current=!1,oe(null),j(``),ve(e)},ye=(0,Y.useRef)(null),be=(0,Y.useRef)(null),[L,R]=(0,Y.useState)(null),xe;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(xe={activationConstraint:{distance:8}},t[15]=xe):xe=t[15];let z=Le(Re(Ie,xe)),Se=m!=null,Ce;t[16]===L?Ce=t[17]:(Ce=N(L),t[16]=L,t[17]=Ce);let B;t[18]===Ce?B=t[19]:(B=[Ce],t[18]=Ce,t[19]=B);let V=B,we;t[20]!==o||t[21]!==n?(we=o===``?null:`${o}\u0000${n.map(zt).join(`\0`)}`,t[20]=o,t[21]=n,t[22]=we):we=t[22];let De=we,H,Oe;t[23]===De?(H=t[24],Oe=t[25]):(H=()=>{if(De===null)return;let[e]=De.split(`\0`,1),t=typeof CSS<`u`&&CSS.escape?CSS.escape(e):e;be.current?.querySelector(`[data-tab-id="${t}"]`)?.scrollIntoView({block:`nearest`,inline:`nearest`})},Oe=[De],t[23]=De,t[24]=H,t[25]=Oe),(0,Y.useEffect)(H,Oe);let U;t[26]===_?U=t[27]:(U=function(){R(A(ye.current,Nt)),_?.(!0)},t[26]=_,t[27]=U);let ke=U,Ae;t[28]!==_||t[29]!==m||t[30]!==n?(Ae=function(e){R(null),_?.(!1);let t=String(e.active.id),r=e.over?String(e.over.id):null;if(!r||t===r)return;let i=n.map(Rt),a=i.indexOf(t),o=i.indexOf(r);a<0||o<0||a===o||m?.(ze(i,a,o))},t[28]=_,t[29]=m,t[30]=n,t[31]=Ae):Ae=t[31];let W=Ae,je;t[32]===_?je=t[33]:(je=function(){R(null),_?.(!1)},t[32]=_,t[33]=je);let Me=je,Pe=qe,G;t[34]===S?G=t[35]:(G=p(`flex min-h-0 min-w-0 flex-1 flex-col`,S),t[34]=S,t[35]=G);let K=Ft,Fe=C?``:void 0,Ge=T&&ne&&`pr-9`,Je=C&&`h-[62px] [-webkit-app-region:drag] pr-[22px] pl-[calc(var(--ok-titlebar-reserve-left,1rem)+0.75rem)]`,Ye;t[36]!==Ge||t[37]!==Je?(Ye=p(`flex shrink-0 flex-row items-center gap-1 px-1.5 py-1`,Ge,Je),t[36]=Ge,t[37]=Je,t[38]=Ye):Ye=t[38];let Xe=Ve,Ze=F,Qe;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(Qe={container:typeof document<`u`?document.body:void 0},t[39]=Qe):Qe=t[39];let $e=He,et;t[40]===n?et=t[41]:(et=n.map(Lt),t[40]=n,t[41]=et);let tt=Be,nt=ce,rt=C&&`[-webkit-app-region:no-drag]`,it;t[42]===rt?it=t[43]:(it=p(`grid h-auto w-fit max-w-full min-w-0 grid-flow-col items-center justify-start gap-0.5 overflow-x-auto overflow-y-hidden [grid-auto-columns:max-content] [scrollbar-width:none] scroll-fade-mask-x`,rt),t[42]=rt,t[43]=it);let ot;t[44]!==w||t[45]!==r?(ot=w(r===`agent`?{id:`GjsGAu`}:{id:`1MGRQl`}),t[44]=w,t[45]=r,t[46]=ot):ot=t[46];let st=n.map((e,t)=>{let n=e.id===o,r=k===e.id;return(0,X.jsx)(Pt,{id:e.id,disabled:!Se||k!=null,children:i=>{let{setNodeRef:a,listeners:o,style:s}=i;return(0,X.jsxs)(g,{children:[(0,X.jsx)(ee,{asChild:!0,children:(0,X.jsxs)(q,{ref:a,value:e.id,"data-terminal-tab-sortable":``,"data-tab-id":e.id,style:{...s,gridColumn:t+1,gridRow:1},...o,onMouseEnter:()=>le(e.id),onMouseLeave:()=>le(null),onClick:t=>{t.detail>=2||c?.(e.id)},onDoubleClick:()=>ge(e),onKeyDown:t=>{t.key===`F2`&&(t.preventDefault(),ge(e))},className:p(`h-7 flex-none gap-1.5 rounded-md py-0 pr-7 pl-2 text-xs transition-colors motion-reduce:transition-none`,n?`bg-muted`:`hover:bg-muted/50`,r&&`w-40 opacity-0`,C&&`[-webkit-app-region:no-drag]`),children:[e.icon,(0,X.jsx)(`span`,{className:`max-w-40 truncate`,children:e.label})]})}),(0,X.jsx)(te,{side:`bottom`,sideOffset:8,children:e.label})]})}},e.id)}),ct;t[47]!==ot||t[48]!==st?(ct=(0,X.jsx)(Ke,{ref:be,variant:`line`,"aria-label":ot,className:`contents`,children:st}),t[47]=ot,t[48]=st,t[49]=ct):ct=t[49];let Z=n.map((e,t)=>{let n=e.id===o;return k===e.id?(0,X.jsx)(We,{style:{gridColumn:t+1,gridRow:1},className:p(`z-20 h-7 w-40 rounded-md border-0 bg-transparent dark:bg-transparent`,C&&`[-webkit-app-region:no-drag]`),children:(0,X.jsx)(Ue,{ref:ue,value:se,"aria-label":w({id:`0TnCvC`,values:{0:e.label}}),"data-testid":`terminal-tab-rename-input`,className:`h-7 px-2 text-xs`,onChange:e=>j(e.target.value),onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),ue.current?.blur()):e.key===`Escape`&&(e.preventDefault(),P.current=!0,ue.current?.blur())},onBlur:()=>I(e.id)})},e.id):(0,X.jsx)(h,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":w({id:`nzHlj8`,values:{0:e.label}}),tabIndex:n?0:-1,style:{gridColumn:t+1,gridRow:1},className:p(`z-20 mr-0.5 justify-self-end text-muted-foreground opacity-0 transition-opacity hover:text-foreground hover:opacity-100 focus-visible:opacity-100`,(n||M===e.id)&&`opacity-100`,L!=null&&`pointer-events-none opacity-0`,C&&`[-webkit-app-region:no-drag]`),onMouseEnter:()=>le(e.id),onMouseLeave:()=>le(null),onClick:t=>{t.stopPropagation(),d(e.id)},children:(0,X.jsx)(Ne,{"aria-hidden":`true`})},e.id)}),lt;t[50]===Z?lt=t[51]:(lt=(0,X.jsx)(`div`,{className:`contents`,children:Z}),t[50]=Z,t[51]=lt);let Q;t[52]!==nt||t[53]!==it||t[54]!==ct||t[55]!==lt?(Q=(0,X.jsxs)(`div`,{onWheel:nt,className:it,children:[ct,lt]}),t[52]=nt,t[53]=it,t[54]=ct,t[55]=lt,t[56]=Q):Q=t[56];let ut;t[57]!==$e||t[58]!==et||t[59]!==tt||t[60]!==Q?(ut=(0,X.jsx)($e,{items:et,strategy:tt,children:Q}),t[57]=$e,t[58]=et,t[59]=tt,t[60]=Q,t[61]=ut):ut=t[61];let dt;t[62]!==Xe||t[63]!==Me||t[64]!==W||t[65]!==ke||t[66]!==V||t[67]!==z||t[68]!==!1||t[69]!==Ze||t[70]!==Qe||t[71]!==ut?(dt=(0,X.jsx)(Xe,{sensors:z,autoScroll:!1,collisionDetection:Ze,modifiers:V,onDragStart:ke,onDragEnd:W,onDragCancel:Me,accessibility:Qe,children:ut}),t[62]=Xe,t[63]=Me,t[64]=W,t[65]=ke,t[66]=V,t[67]=z,t[68]=!1,t[69]=Ze,t[70]=Qe,t[71]=ut,t[72]=dt):dt=t[72];let ft;t[73]!==C||t[74]!==l?(ft=l==null?null:(0,X.jsx)(`div`,{className:p(`shrink-0`,C&&`[-webkit-app-region:no-drag]`),children:l}),t[73]=C,t[74]=l,t[75]=ft):ft=t[75];let pt;t[76]===Symbol.for(`react.memo_cache_sentinel`)?(pt=(0,X.jsx)(`div`,{className:`flex-1`}),t[76]=pt):pt=t[76];let mt;t[77]!==C||t[78]!==u?(mt=u==null?null:(0,X.jsx)(`div`,{className:p(`shrink-0`,C&&`[-webkit-app-region:no-drag]`),children:u}),t[77]=C,t[78]=u,t[79]=mt):mt=t[79];let ht;t[80]!==v||t[81]!==y||t[82]!==D||t[83]!==re||t[84]!==T||t[85]!==r?(ht=r===`terminal`&&v!=null&&y!=null?(0,X.jsxs)(g,{children:[(0,X.jsx)(ee,{asChild:!0,children:(0,X.jsx)(h,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":D,className:`shrink-0 cursor-pointer text-muted-foreground hover:text-foreground`,onClick:()=>y(re),children:T?(0,X.jsx)(at,{"aria-hidden":`true`}):(0,X.jsx)(ae,{"aria-hidden":`true`})})}),(0,X.jsx)(te,{side:`bottom`,sideOffset:8,children:D})]}):null,t[80]=v,t[81]=y,t[82]=D,t[83]=re,t[84]=T,t[85]=r,t[86]=ht):ht=t[86];let gt;t[87]!==w||t[88]!==b||t[89]!==T||t[90]!==r?(gt=b==null?null:(0,X.jsxs)(g,{children:[(0,X.jsx)(ee,{asChild:!0,children:(0,X.jsx)(h,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":w(r===`terminal`?{id:`MU_NVW`}:{id:`g5V4_P`}),className:`shrink-0 cursor-pointer text-muted-foreground hover:text-foreground`,onClick:b,children:T?(0,X.jsx)(Ee,{"aria-hidden":`true`}):(0,X.jsx)(Te,{"aria-hidden":`true`})})}),(0,X.jsx)(te,{side:`bottom`,sideOffset:8,children:r===`terminal`?(0,X.jsx)(i,{id:`MU_NVW`}):(0,X.jsx)(i,{id:`g5V4_P`})})]}),t[87]=w,t[88]=b,t[89]=T,t[90]=r,t[91]=gt):gt=t[91];let _t;t[92]!==Fe||t[93]!==Ye||t[94]!==dt||t[95]!==ft||t[96]!==mt||t[97]!==ht||t[98]!==gt?(_t=(0,X.jsxs)(`div`,{ref:ye,"data-terminal-tab-row":``,"data-electron-drag":Fe,className:Ye,children:[dt,ft,pt,mt,ht,gt]}),t[92]=Fe,t[93]=Ye,t[94]=dt,t[95]=ft,t[96]=mt,t[97]=ht,t[98]=gt,t[99]=_t):_t=t[99];let vt;t[100]!==K||t[101]!==ie||t[102]!==_t?(vt=(0,X.jsx)(K,{onMoveRight:ie,children:_t}),t[100]=K,t[101]=ie,t[102]=_t,t[103]=vt):vt=t[103];let yt;return t[104]!==Pe||t[105]!==o||t[106]!==x||t[107]!==s||t[108]!==G||t[109]!==vt?(yt=(0,X.jsxs)(Pe,{value:o,onValueChange:s,className:G,children:[vt,x]}),t[104]=Pe,t[105]=o,t[106]=x,t[107]=s,t[108]=G,t[109]=vt,t[110]=yt):yt=t[110],yt}function Lt(e){return e.id}function Rt(e){return e.id}function zt(e){return e.id}var Bt=(0,Y.lazy)(()=>t(()=>import(`./ThreadView-OvqDyN6T.js`).then(e=>({default:e.ThreadView})),__vite__mapDeps([36,1,3,2,4,5,6,7,8,9,37,10,11,12,38,39,14,22,40,41,13,15,16,17,18,19,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,20,21,58,33,34,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,28,27,29,77,78,30,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,24,94,95,96,26,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129]),import.meta.url));function Vt(e){return`terminal-session-${e}`}function Ht(e){return typeof CSS<`u`&&CSS.escape?CSS.escape(e):e}function Ut(e){e!==``&&document.querySelector(`[data-terminal-session="${Ht(e)}"] .xterm-helper-textarea`)?.focus()}function Wt(e){e!==``&&document.querySelector(`[data-session-id="${Ht(e)}"] [data-testid="agent-thread-composer"]`)?.focus()}function Gt(e){e.kind===`terminal`?Ut(e.id):Wt(e.id)}function Kt(e){return e?.contains(document.activeElement)??!1}function qt(e,t){return t||Kt(e)}function Jt(e){switch(e){case`running`:return`bg-amber-500 animate-pulse`;case`installing`:case`spawning`:case`authenticating`:return`bg-sky-500 animate-pulse`;case`auth_required`:case`awaiting_permission`:return`bg-amber-500`;case`ready`:return`bg-emerald-500`;case`error`:return`bg-red-500`;default:return`bg-muted-foreground`}}function Yt(){return(0,X.jsx)(se,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-hidden":`true`})}var Xt=[`ring-violet-400/60`,`ring-fuchsia-400/60`,`ring-pink-400/60`,`ring-cyan-400/60`,`ring-teal-400/60`,`ring-lime-400/60`,`ring-yellow-400/60`,`ring-stone-400/60`];function Zt(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return Xt[t%Xt.length]??`ring-transparent`}function Qt(e){let t=(0,J.c)(12),{info:n,threadId:r}=e,i=Je(r),a;t[0]===r?a=t[1]:(a=p(`relative inline-flex shrink-0 rounded-full ring-1`,Zt(r)),t[0]=r,t[1]=a);let o=n?.agent.id??``,s=n?.agent.iconUrl,c;t[2]!==o||t[3]!==s?(c=(0,X.jsx)(S,{agentId:o,iconUrl:s,className:`size-3.5`}),t[2]=o,t[3]=s,t[4]=c):c=t[4];let l;t[5]!==n||t[6]!==i?(l=n==null?null:(0,X.jsx)(`span`,{className:p(`-right-0.5 -bottom-0.5 absolute size-1.5 rounded-full ring-1 ring-background`,Jt(n.status),i&&n.status===`ready`&&`animate-pulse`),"aria-hidden":`true`}),t[5]=n,t[6]=i,t[7]=l):l=t[7];let u;return t[8]!==a||t[9]!==c||t[10]!==l?(u=(0,X.jsxs)(`span`,{className:a,children:[c,l]}),t[8]=a,t[9]=c,t[10]=l,t[11]=u):u=t[11],u}var $t={cli:!0,terminal:!0,desktop:!0};function en(e){let t=(0,J.c)(146),{bridge:n,terminalCapable:r,surface:i,terminalPlacement:o,onTerminalPlacementChange:s,reserveRightRevealTabGutter:c,terminalRestoreRevealNonce:l,visible:d,onVisibleChange:f,launch:h,commandLaunch:ee,threadLaunch:te,installedClis:g,container:x,isShowing:S,onRequestEditorFocus:w}=e,O=r===void 0?!1:r,ae=o===void 0?`bottom`:o,se=l===void 0?0:l,A=h===void 0?null:h,ce=ee===void 0?null:ee,j=te===void 0?null:te,{_:M}=a(),N=i===`terminal-window`,P=i===`agents-panel`,F=!P,I=F&&O&&n?.terminal!=null,be=P?`right`:ae,L=P?`agents`:`terminal`,R=!N,xe=n?.platform===`darwin`?`mac`:n?.platform===`linux`||n?.platform===`win32`?`windowsLinux`:void 0,[z]=(0,Y.useState)(Cn),Se,Ce;t[0]!==x||t[1]!==z?(Se=()=>{z==null||x==null||z.parentElement!==x&&x.appendChild(z)},Ce=[z,x],t[0]=x,t[1]=z,t[2]=Se,t[3]=Ce):(Se=t[2],Ce=t[3]),(0,Y.useLayoutEffect)(Se,Ce);let B=F&&typeof n?.terminal?.list==`function`,V=!B&&I&&d,we;t[4]!==n?.terminal?.getDockState||t[5]!==B||t[6]!==V||t[7]!==L||t[8]!==R?(we=()=>B||!R||V||typeof n?.terminal?.getDockState==`function`?null:ut(L),t[4]=n?.terminal?.getDockState,t[5]=B,t[6]=V,t[7]=L,t[8]=R,t[9]=we):we=t[9];let[Te]=(0,Y.useState)(we),Ee;t[10]===Te?.order?Ee=t[11]:(Ee=Te?.order??[],t[10]=Te?.order,t[11]=Ee);let De=(0,Y.useRef)(Ee),H=(0,Y.useRef)(Te?.activeKey??null),Oe;t[12]!==V||t[13]!==A?(Oe=()=>V?[{kind:`terminal`,id:Vt(1),launch:A,commandId:null,title:null,customLabel:null,ordinal:1,adoptPtyId:null}]:[],t[12]=V,t[13]=A,t[14]=Oe):Oe=t[14];let[U,ke]=(0,Y.useState)(Oe),Ae;t[15]===V?Ae=t[16]:(Ae=()=>V?Vt(1):``,t[15]=V,t[16]=Ae);let[W,je]=(0,Y.useState)(Ae),[Me,Ne]=(0,Y.useState)(!B),Pe=(0,Y.useRef)(!1),G=(0,Y.useRef)(W),K=(0,Y.useRef)(U),Fe=(0,Y.useRef)(+!!V),Ie=(0,Y.useRef)(V&&A?A.nonce:null),Le=(0,Y.useRef)(null),Re=(0,Y.useRef)(null),ze=(0,Y.useRef)(!1),Be=(0,Y.useRef)(null),Ve=(0,Y.useRef)(N?!1:d),He=(0,Y.useRef)(se),Ue=(0,Y.useRef)(new Map),We=(0,Y.useRef)(0),q=Qe(),Ke=Ye(),qe=Xe(),Je=qe===`connecting`||qe===`closed`,nt=y(),rt=ne(),it;t[17]===rt?it=t[18]:(it=e=>v(rt,e.source,e.id,!0,e.supported),t[17]=rt,t[18]=it);let at=nt.filter(it),Z=b(at,C()),lt;t[19]===q?lt=t[20]:(lt=q.filter(Sn),t[19]=q,t[20]=lt);let Q=lt.length,dt=new Map(q.map(xn)),ht=new Set(dt.keys()),gt;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(gt=function(e){Ze().openArchivedThread(e)},t[21]=gt):gt=t[21];let vt=gt,yt=function(){if(!R||B&&!Me)return;let e=Ue.current,t=K.current.map(t=>Dn(t,e)).filter(bn),r=K.current.find(e=>e.id===G.current);mt(n,L,{order:t,activeKey:r==null?null:Dn(r,e)},On(K.current,G.current))},bt=function(e,t){if(t===null){Ue.current.delete(e),Zt(K.current,G.current);return}Ue.current.set(e,t),Zt(K.current,G.current);let r=K.current.find(t=>t.id===e);r!=null&&r.kind===`terminal`&&n?.terminal?.setMeta?.(t,{ordinal:r.ordinal,customLabel:r.customLabel}),yt()},xt=function(e,t){let n=t===void 0?null:t;H.current=null,Fe.current+=1;let r=Vt(Fe.current);ke(t=>[...t,{kind:`terminal`,id:r,launch:e,commandId:n,title:null,customLabel:null,ordinal:Fe.current,adoptPtyId:null}]),je(r)},Ct=me(),wt=St(),Et;t[22]===g?Et=t[23]:(Et=g??{},t[22]=g,t[23]=Et);let Dt;t[24]===g?Dt=t[25]:(Dt=g??{},t[24]=g,t[25]=Dt);let Ot=ge({sticky:Ct,effectiveThreadAgent:Z,enabledClis:ve(rt,Et),enabledDesktopTargets:[],installedClis:Dt,terminalAvailable:I,threadsAvailable:P,desktopSelectable:!1,preferBareTerminal:wt,bareTerminalFallback:!0}),kt=fe(Ct),$=Ot.kind===`thread`?{kind:`agent`,agent:Ot.agent}:Ot.kind===`cli`?Ot.cli===kt?{kind:`cli`,cli:Ot.cli}:{kind:`terminal`}:Ot.kind===`terminal`?{kind:`terminal`}:{kind:`agent`,agent:null},jt=function(e){We.current+=1,xt({prompt:null,cli:e,nonce:We.current})},Mt=function(){$.kind===`terminal`?xt(null):$.kind===`cli`?jt($.cli):$.kind===`agent`&&$.agent!=null?$e({source:$.agent.source,id:$.agent.id},null,null,null):E()},Nt=function(){return P?$.kind!==`agent`||$.agent==null?!1:($e({source:$.agent.source,id:$.agent.id},null,null,null),!0):($.kind===`terminal`?xt(null):$.kind===`cli`&&jt($.cli),!0)},Pt;t[26]===g?Pt=t[27]:(Pt=g??{},t[26]=g,t[27]=Pt);let Ft;t[28]===g?Ft=t[29]:(Ft=g??{},t[28]=g,t[29]=Ft);let Lt=ge({sticky:Ct,effectiveThreadAgent:Z,enabledClis:ve(rt,Pt),enabledDesktopTargets:[],installedClis:Ft,terminalAvailable:O,threadsAvailable:!N,desktopSelectable:!1,preferBareTerminal:!1,bareTerminalFallback:!1}),Rt=ge({sticky:Ct,effectiveThreadAgent:Z,enabledClis:[],enabledDesktopTargets:[],installedClis:{},terminalAvailable:!1,threadsAvailable:P,desktopSelectable:!1,preferBareTerminal:!1,bareTerminalFallback:!1}),zt;t[30]===g?zt=t[31]:(zt=g??{},t[30]=g,t[31]=zt);let Bt;t[32]===g?Bt=t[33]:(Bt=g??{},t[32]=g,t[33]=Bt);let Ht=ge({sticky:Ct,effectiveThreadAgent:Z,enabledClis:ve(rt,zt),enabledDesktopTargets:[],installedClis:Bt,terminalAvailable:O,threadsAvailable:!N,desktopSelectable:!1,preferBareTerminal:wt,bareTerminalFallback:!0}),Jt;t[34]!==P||t[35]!==N?(Jt=function(e){return N?!0:P?e===`thread`||e===`none`:e in $t},t[34]=P,t[35]=N,t[36]=Jt):Jt=t[36];let Xt=Jt;function Zt(e,t){let r=e.find(e=>e.id===t);if(r==null){k(L,null);return}if(r.kind===`thread`){let e=dt.get(r.threadId);k(L,{id:r.id,kind:`thread`,label:e?.agent.name??M({id:`bcm0pR`}),agentId:e?.agent.id??``,iconUrl:e?.agent.iconUrl});return}let i=Ue.current.get(r.id),a=r.launch?.cli;if(i==null||n?.terminal==null||a==null){k(L,null);return}k(L,{id:r.id,kind:`terminal`,label:T[a].displayName,cli:a})}let en;t[37]!==W||t[38]!==q||t[39]!==U?(en=[W,U,q],t[37]=W,t[38]=q,t[39]=U,t[40]=en):en=t[40],(0,Y.useEffect)(()=>{Zt(U,W)},en);let Tn;t[41]!==f||t[42]!==d?(Tn=function(){d||f(!0)},t[41]=f,t[42]=d,t[43]=Tn):Tn=t[43];let An=Tn,jn=function(e){let{text:t,newTab:r,submit:i,target:a}=e,o=a===`agents`?Rt:Lt;if(a===`agents`){if(!P)return}else if(!Xt(o.kind))return;d||f(!0);let s=G.current,c=K.current.find(e=>e.id===s);if(!r&&c!=null){if(c.kind===`thread`){et(c.threadId,t),An(),queueMicrotask(()=>Gt(c));return}let e=Ue.current.get(c.id),r=n?.terminal;if(e!=null&&r!=null&&c.launch?.cli!=null){r.input(e,t),An(),queueMicrotask(()=>Ut(s));return}}if(o.kind===`thread`){let e={source:o.agent.source,id:o.agent.id};i?$e(e,t,null,null,null):$e(e,null,null,null,t)}else o.kind===`cli`?ue(t,o.cli,{stage:!i}):E()},Mn=function(e){_t(!1),_e(ye(e)),jt(e)},Nn=function(){_t(!0),xt(null)},Pn;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(Pn=function(e){_(e),_t(!1),_e(pe(e)),$e({source:e.source,id:e.id},null,null,null)},t[44]=Pn):Pn=t[44];let Fn=Pn,In;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(In=function(e,t){let n=t.trim()===``?null:t.trim();ke(t=>t.some(t=>t.id===e&&t.kind===`terminal`&&t.title!==n)?t.map(t=>t.id===e&&t.kind===`terminal`?{...t,title:n}:t):t)},t[45]=In):In=t[45];let Ln=In,Rn=function(e,t){let r=K.current.find(t=>t.id===e);if(r==null)return;if(r.kind===`thread`){Ze().renameThread(r.threadId,t);return}let i=t.trim()===``?null:t.trim();ke(t=>t.some(t=>t.id===e&&t.kind===`terminal`&&t.customLabel!==i)?t.map(t=>t.id===e&&t.kind===`terminal`?{...t,customLabel:i}:t):t);let a=Ue.current.get(e);a!=null&&n?.terminal?.setMeta?.(a,{customLabel:i})},zn=function(e){return e.kind===`terminal`?e.customLabel??e.title??M({id:`OVjNeX`,values:{0:e.ordinal}}):dt.get(e.threadId)?.title??M({id:`iEQQyu`})},Bn=(0,Y.useRef)(!1),Vn=(0,Y.useRef)(null),Hn=(0,Y.useRef)(null),Un=function(e){ke(t=>{if(e.length!==t.length)return t;let n=new Map(t.map(yn)),r=[];for(let i of e){let e=n.get(i);if(e==null)return t;r.push(e)}return r.every((e,n)=>e===t[n])?t:r});let t=e.map(e=>Ue.current.get(e)).filter(vn);t.length>0&&n?.terminal?.setOrder?.(t)},Wn=function(e){let t=K.current,n=t.findIndex(e=>e.id===G.current);if(n<0)return null;let r=n+e;if(r<0||r>=t.length)return null;let i=t.map(_n),[a]=i.splice(n,1);return i.splice(r,0,a),Un(i),{label:zn(t[n]),position:r+1,total:t.length}},Gn=function(){Xt(Ht.kind)&&(d||f(!0),Mt())},Kn=(0,Y.useRef)(Wn),qn=(0,Y.useRef)(xt),Jn=(0,Y.useRef)(Nt),Yn=(0,Y.useRef)(jn),Xn=(0,Y.useRef)(An),Zn=(0,Y.useRef)(Gn),Qn=function(e){let t=K.current,n=t.findIndex(t=>t.id===e);if(n===-1)return;let r=t[n],i=t.length===1;if(H.current=null,e===G.current){let e=t[n-1]??t[n+1];je(e?.id??``),e!=null&&queueMicrotask(()=>Gt(e))}r.kind===`thread`?Ze().closeThread(r.threadId):ke(t.filter(t=>t.id!==e)),i&&(f(!1),w())},$n=(0,Y.useRef)(gn);(0,Y.useEffect)(()=>{qn.current=xt,Jn.current=Nt,Yn.current=jn,Xn.current=An,Zn.current=Gn,Kn.current=Wn,G.current=W,K.current=U,$n.current=()=>{let e=K.current.find(e=>e.id===G.current);if(e?.kind===`terminal`){Qn(e.id);return}let t=[...K.current].reverse().find(hn);t!=null&&Qn(t.id)}});let er;t[46]!==W||t[47]!==n||t[48]!==L||t[49]!==R||t[50]!==Me||t[51]!==U?(er=[U,W,R,L,n,Me],t[46]=W,t[47]=n,t[48]=L,t[49]=R,t[50]=Me,t[51]=U,t[52]=er):er=t[52],(0,Y.useEffect)(()=>{if(!R||!Me)return;let e=Ue.current,t=U.map(t=>Dn(t,e)).filter(mn),r=U.find(e=>e.id===W);mt(n,L,{order:t,activeKey:r==null?null:Dn(r,e)},On(U,W))},er);let tr;t[53]!==P||t[54]!==q?(tr=[q,P],t[53]=P,t[54]=q,t[55]=tr):tr=t[55],(0,Y.useEffect)(()=>{if(!P)return;let e=new Set(q.map(pn)),t=K.current,n=new Set(t.filter(fn).map(dn)),r=[];for(let e of q)n.has(e.threadId)||(Fe.current+=1,r.push({kind:`thread`,id:e.threadId,threadId:e.threadId,ordinal:Fe.current}));let i=t.some(t=>t.kind===`thread`&&!e.has(t.threadId));r.length===0&&!i||ke(t=>{let n=t.filter(t=>t.kind!==`thread`||e.has(t.threadId)),i=new Set(n.filter(un).map(ln)),a=r.filter(e=>!i.has(e.threadId)),o=Ue.current,s=a.length>0?kn(n,a,De.current,e=>Dn(e,o)):n;return s.length===t.length&&s.every((e,n)=>e===t[n])?t:s})},tr);let nr;t[56]===Symbol.for(`react.memo_cache_sentinel`)?(nr=[],t[56]=nr):nr=t[56];let rr=(0,Y.useRef)(nr),ir,ar;t[57]!==P||t[58]!==q?(ir=()=>{if(!P)return;let e=q.map(cn),t=rr.current;if(rr.current=e,H.current!=null)return;let n=e.filter(e=>!t.includes(e)),r=n[n.length-1];r!=null&&(je(r),queueMicrotask(()=>Wt(r)))},ar=[q,P],t[57]=P,t[58]=q,t[59]=ir,t[60]=ar):(ir=t[59],ar=t[60]),(0,Y.useEffect)(ir,ar);let or=(0,Y.useRef)(Q),sr,cr;t[61]!==P||t[62]!==Q||t[63]!==f||t[64]!==d?(sr=()=>{if(!P)return;let e=or.current;or.current=Q,Q>e&&!d&&f(!0)},cr=[Q,d,P,f],t[61]=P,t[62]=Q,t[63]=f,t[64]=d,t[65]=sr,t[66]=cr):(sr=t[65],cr=t[66]),(0,Y.useEffect)(sr,cr);let lr;t[67]!==W||t[68]!==U?(lr=[U,W],t[67]=W,t[68]=U,t[69]=lr):lr=t[69],(0,Y.useEffect)(()=>{let e=H.current;if(e!=null){let t=Ue.current,n=U.find(n=>Dn(n,t)===e);if(n!=null){H.current=null,je(n.id);return}if(U.some(e=>e.id===W))return}if(!(W!==``&&U.some(e=>e.id===W))){if(U.length===0){W!==``&&je(``);return}je(U[U.length-1].id)}},lr),(0,Y.useEffect)(()=>{if(!Me)return;let e=Ve.current;if(Ve.current=d,A!=null&&A.nonce!==Ie.current){Ie.current=A.nonce,qn.current(A);return}if(ce!=null&&ce.nonce!==Be.current){Be.current=ce.nonce,qn.current(null,ce.id);return}let t=P&&j!=null&&j.nonce!==Le.current,n=F&&se!==He.current;if(n&&(He.current=se),d&&!e&&U.length===0&&!t&&!(P&&tt())){if(n)return;ze.current=!Jn.current();return}if(ze.current){if(!d||U.length>0||t){ze.current=!1;return}Z!==null&&Jn.current()&&(ze.current=!1)}},[d,A,ce,j,U.length,Me,P,Z,F,se]);let ur;t[70]!==M||t[71]!==Z||t[72]!==P||t[73]!==j?(ur=[j,P,Z,M],t[70]=M,t[71]=Z,t[72]=P,t[73]=j,t[74]=ur):ur=t[74],(0,Y.useEffect)(()=>{if(!P||j==null||j.nonce===Le.current)return;let e=j.agentId===``?null:{source:j.agentSource,id:j.agentId};if(e===null&&Z!==null&&(e={source:Z.source,id:Z.id}),e===null){Re.current!==j.nonce&&(Re.current=j.nonce,E());return}Le.current=j.nonce,$e(e,j.prompt,j.docName,j.titleHint).then(e=>{e===`deduped`&&re.error(M({id:`eCOktA`}))})},ur);let dr;t[75]!==n||t[76]!==F||t[77]!==L?(dr=[n,F,L],t[75]=n,t[76]=F,t[77]=L,t[78]=dr):dr=t[78],(0,Y.useEffect)(()=>{if(!F||typeof n?.terminal?.list!=`function`||Pe.current)return;Pe.current=!0;let e=!1;return(async()=>{let{sessionOrder:t,terminalSnapshot:r}=await ft(n,L);!e&&t!=null&&(De.current=t.order,H.current=t.activeKey);let i=null;try{i=await n.terminal.list()??[]}catch(e){console.error(`[terminal] reload session list() failed; preserving restart snapshot:`,e)}if(!e){if(i!=null&&i.length>0){let e=De.current,t=t=>{let n=e.indexOf(t);return n===-1?1/0:n},n=i.map(sn).sort((e,n)=>{let r=t(e.adoptPtyId),i=t(n.adoptPtyId);return r===i?0:r-i});Fe.current=Math.max(n.length,...n.map(on)),ke(n)}else if(i!=null&&r!=null&&r.tabs.length>0){let e=r.tabs.map(an);Fe.current=Math.max(e.length,...e.map(rn)),H.current=null,ke(e);let t=e.find(e=>e.ordinal===r?.activeOrdinal);t!=null&&je(t.id)}Ne(!0),window.setTimeout(()=>{e||(H.current=null)},9e3)}})(),()=>{e=!0,Pe.current=!1}},dr);let fr,pr;t[79]!==n||t[80]!==B||t[81]!==L||t[82]!==R?(fr=()=>{if(B||!R||typeof n?.terminal?.getDockState!=`function`)return;let e=!1;return pt(n,L).then(t=>{e||t==null||(De.current=t.order,H.current===null&&(H.current=t.activeKey))}),()=>{e=!0}},pr=[n,B,R,L],t[79]=n,t[80]=B,t[81]=L,t[82]=R,t[83]=fr,t[84]=pr):(fr=t[83],pr=t[84]),(0,Y.useEffect)(fr,pr);let mr,hr;t[85]===B?(mr=t[86],hr=t[87]):(mr=()=>{if(B)return;let e=window.setTimeout(()=>{H.current=null},9e3);return()=>window.clearTimeout(e)},hr=[B],t[85]=B,t[86]=mr,t[87]=hr),(0,Y.useEffect)(mr,hr);let gr;t[88]!==P||t[89]!==I?(gr=[I,P],t[88]=P,t[89]=I,t[90]=gr):gr=t[90],(0,Y.useEffect)(()=>{if(!(!I&&!P))return oe(e=>Yn.current(e))},gr);let _r;t[91]===P?_r=t[92]:(_r=[P],t[91]=P,t[92]=_r),(0,Y.useEffect)(()=>{if(P)return de(e=>{let{threadIds:t}=e,n=G.current,r=K.current.find(e=>e.id===n);r?.kind===`thread`&&(he(r.threadId,t),Xn.current(),queueMicrotask(()=>Gt(r)))})},_r);let vr;t[93]===Symbol.for(`react.memo_cache_sentinel`)?(vr=[],t[93]=vr):vr=t[93],(0,Y.useEffect)(()=>le(()=>Zn.current()),vr);let yr;t[94]!==F||t[95]!==N||t[96]!==I?(yr=[N,F,I],t[94]=F,t[95]=N,t[96]=I,t[97]=yr):yr=t[97],(0,Y.useEffect)(()=>{if(F)return u(e=>{e===`new-terminal`?I&&qn.current(null):(e===`kill-terminal`||e===`close-active-tab-or-window`&&N)&&$n.current()})},yr);let br;t[98]!==z||t[99]!==N||t[100]!==xe?(br=[z,N,xe],t[98]=z,t[99]=N,t[100]=xe,t[101]=br):br=t[101],(0,Y.useEffect)(()=>{let e=function(e){if(!D(e,xe)||e.altKey||e.shiftKey||!/^[1-9]$/.test(e.key)||!qt(z,N)||m())return;let t=K.current[Number(e.key)-1];t!=null&&(e.preventDefault(),e.stopPropagation(),je(t.id),queueMicrotask(()=>Gt(t)))};return window.addEventListener(`keydown`,e,{capture:!0}),()=>window.removeEventListener(`keydown`,e,{capture:!0})},br);let xr;t[102]!==M||t[103]!==z||t[104]!==N||t[105]!==xe?(xr=[z,N,xe,M],t[102]=M,t[103]=z,t[104]=N,t[105]=xe,t[106]=xr):xr=t[106],(0,Y.useEffect)(()=>{let e=function(e){if(!D(e,xe)||!e.shiftKey||e.altKey)return;let t=e.key===`ArrowLeft`?-1:+(e.key===`ArrowRight`);if(t===0||!qt(z,N)||m()||Bn.current)return;let n=e.target;if(n?.tagName===`INPUT`||n?.isContentEditable)return;let r=Kn.current(t);if(r==null)return;e.preventDefault(),e.stopPropagation();let i=G.current,a=K.current.find(e=>e.id===i);a!=null&&queueMicrotask(()=>Gt(a));let o=M({id:`CoHvYd`,values:{0:r.label,1:r.position,2:r.total}});Hn.current!=null&&window.clearTimeout(Hn.current),Hn.current=window.setTimeout(()=>{Hn.current=null,Vn.current!=null&&(Vn.current.textContent=o)},60)};return window.addEventListener(`keydown`,e,{capture:!0}),()=>{window.removeEventListener(`keydown`,e,{capture:!0}),Hn.current!=null&&(window.clearTimeout(Hn.current),Hn.current=null)}},xr);let Sr;t[107]!==n?.editor||t[108]!==F||t[109]!==U?(Sr=()=>{if(!F)return;let e=U.some(nn);ie({terminalLive:e}),n?.editor.notifyViewMenuStateChanged({terminalLive:e})},t[107]=n?.editor,t[108]=F,t[109]=U,t[110]=Sr):Sr=t[110];let Cr;t[111]!==n||t[112]!==F||t[113]!==U?(Cr=[n,U,F],t[111]=n,t[112]=F,t[113]=U,t[114]=Cr):Cr=t[114],(0,Y.useEffect)(Sr,Cr);let wr,Tr;t[115]!==z||t[116]!==S||t[117]!==w||t[118]!==d?(wr=()=>{S||d||Kt(z)&&w()},Tr=[S,d,z,w],t[115]=z,t[116]=S,t[117]=w,t[118]=d,t[119]=wr,t[120]=Tr):(wr=t[119],Tr=t[120]),(0,Y.useLayoutEffect)(wr,Tr);let Er;t[121]===S?Er=t[122]:(Er=[S],t[121]=S,t[122]=Er),(0,Y.useEffect)(()=>{if(!S)return;let e=K.current.find(e=>e.id===G.current);e!=null&&Gt(e)},Er);let Dr;if(t[123]!==W||t[124]!==U){let e;t[126]===W?e=t[127]:(e=e=>e.id===W,t[126]=W,t[127]=e),Dr=U.find(e),t[123]=W,t[124]=U,t[125]=Dr}else Dr=t[125];let Or=Dr,kr=Or?.kind===`thread`?Or.threadId:null,Ar=kr===null?void 0:dt.get(kr),jr=Ar?.lastActivityAt??null,Mr=Ar?.status??null,Nr;t[128]!==kr||t[129]!==S?(Nr=()=>{!S||kr===null||Ze().markThreadViewed(kr)},t[128]=kr,t[129]=S,t[130]=Nr):Nr=t[130];let Pr;t[131]!==jr||t[132]!==kr||t[133]!==Mr||t[134]!==S?(Pr=[kr,jr,Mr,S],t[131]=jr,t[132]=kr,t[133]=Mr,t[134]=S,t[135]=Pr):Pr=t[135],(0,Y.useEffect)(Nr,Pr);let Fr=U.map(e=>({id:e.id,label:zn(e),icon:e.kind===`terminal`?Yt():(0,X.jsx)(Qt,{info:dt.get(e.threadId),threadId:e.threadId})})),Ir=[...U].sort(tn),Lr;t[136]===g?Lr=t[137]:(Lr=g??{},t[136]=g,t[137]=Lr);let Rr;t[138]!==rt||t[139]!==Lr?(Rr=ve(rt,Lr),t[138]=rt,t[139]=Lr,t[140]=Rr):Rr=t[140];let zr=(0,X.jsx)(At,{selected:$,onLaunchSelected:Mt,showAgents:P,registeredAgents:at,onPickAgent:Fn,onOpenSettings:E,liveThreadCount:Q,showClis:I,onPickCli:Mn,onPickTerminal:Nn,visibleClis:Rr}),Br=P&&Ke.length>0?(0,X.jsx)(st,{archived:Ke,openThreadIds:ht,onOpenThread:vt}):null,Vr=U.length>0||d&&!N?(0,X.jsx)(It,{sessions:Fr,sessionKind:P?`agent`:`terminal`,activeSessionId:W,onSelect:e=>{H.current=null,je(e)},onTabActivate:e=>{let t=K.current.find(t=>t.id===e);t!=null&&queueMicrotask(()=>Gt(t))},newButton:zr,trailingControls:Br,onClose:Qn,onRename:Rn,onReorder:Un,onDragActiveChange:e=>{Bn.current=e},edge:be,onPlacementChange:i===`terminal-dock`?s:void 0,reserveRightRevealTabGutter:c,onCollapse:N?void 0:()=>f(!1),draggable:N,className:`h-full`,children:U.length===0?I?null:P&&Ke.length>0?(0,X.jsx)(ct,{archived:Ke,onOpen:vt}):(0,X.jsx)(En,{}):Ir.map(e=>(0,X.jsx)(Ge,{value:e.id,forceMount:!0,"data-session-id":e.id,...e.kind===`terminal`?{"data-terminal-session":e.id}:{},className:p(`m-0 flex min-h-0 flex-1 flex-col overflow-hidden data-[state=inactive]:hidden`,N&&`px-[22px] pb-[22px]`),children:e.kind===`terminal`?n!=null&&I?(0,X.jsx)(Tt,{bridge:n,launch:e.launch,commandId:e.commandId,adoptPtyId:e.adoptPtyId,onPtyId:t=>bt(e.id,t),onTitleChange:t=>Ln(e.id,t),onClose:()=>Qn(e.id)}):null:(0,X.jsx)(wn,{threadId:e.threadId,info:dt.get(e.threadId),showConnectionBanner:Je&&e.id===W,active:d&&e.id===W})},e.id))}):null,Hr;t[141]!==z||t[142]!==Vr?(Hr=z==null?null:(0,ot.createPortal)((0,X.jsxs)(X.Fragment,{children:[Vr,(0,X.jsx)(`span`,{ref:Vn,"aria-live":`polite`,"aria-atomic":`true`,className:`sr-only`,"data-testid":`terminal-reorder-announcer`})]}),z),t[141]=z,t[142]=Vr,t[143]=Hr):Hr=t[143];let Ur;return t[144]===Hr?Ur=t[145]:(Ur=(0,X.jsx)(X.Fragment,{children:Hr}),t[144]=Hr,t[145]=Ur),Ur}function tn(e,t){return e.ordinal-t.ordinal}function nn(e){return e.kind===`terminal`}function rn(e){return e.ordinal}function an(e,t){return{kind:`terminal`,commandId:null,id:Vt(t+1),launch:null,title:null,customLabel:e.customLabel,ordinal:e.ordinal,adoptPtyId:null}}function on(e){return e.ordinal}function sn(e,t){return{kind:`terminal`,commandId:null,id:Vt(t+1),launch:null,title:null,customLabel:e.customLabel??null,ordinal:e.ordinal??t+1,adoptPtyId:e.ptyId}}function cn(e){return e.threadId}function ln(e){return e.threadId}function un(e){return e.kind===`thread`}function dn(e){return e.threadId}function fn(e){return e.kind===`thread`}function pn(e){return e.threadId}function mn(e){return e!=null}function hn(e){return e.kind===`terminal`}function gn(){}function _n(e){return e.id}function vn(e){return e!=null}function yn(e){return[e.id,e]}function bn(e){return e!=null}function xn(e){return[e.threadId,e]}function Sn(e){return e.archived!==!0}function Cn(){if(typeof document>`u`)return null;let e=document.createElement(`div`);return e.className=`flex min-h-0 flex-1 flex-col overflow-hidden`,e}function wn(e){let t=(0,J.c)(10),{threadId:n,info:r,showConnectionBanner:i,active:a}=e;if(r===void 0)return null;let o;t[0]===i?o=t[1]:(o=i?(0,X.jsx)(Tn,{}):null,t[0]=i,t[1]=o);let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,X.jsx)(`div`,{role:`status`,"aria-busy":`true`,className:`flex min-h-0 flex-1 items-center justify-center text-muted-foreground`,children:(0,X.jsx)(je,{className:`size-5`,"aria-hidden":`true`})}),t[2]=s):s=t[2];let c;t[3]!==a||t[4]!==r||t[5]!==n?(c=(0,X.jsx)(Y.Suspense,{fallback:s,children:(0,X.jsx)(Bt,{info:r,active:a},n)}),t[3]=a,t[4]=r,t[5]=n,t[6]=c):c=t[6];let l;return t[7]!==o||t[8]!==c?(l=(0,X.jsxs)(X.Fragment,{children:[o,c]}),t[7]=o,t[8]=c,t[9]=l):l=t[9],l}function Tn(){let e=(0,J.c)(4),{_:t}=a(),n;e[0]===t?n=e[1]:(n=t({id:`k0dL2I`}),e[0]=t,e[1]=n);let r;return e[2]===n?r=e[3]:(r=(0,X.jsx)(`div`,{className:`shrink-0 border-amber-500/30 border-b bg-amber-500/5 px-3 py-1 text-amber-700 text-xs dark:text-amber-400`,"data-testid":`agent-thread-reconnecting`,children:n}),e[2]=n,e[3]=r),r}function En(){let e=(0,J.c)(4),{_:t}=a(),n;e[0]===t?n=e[1]:(n=t({id:`-l6jM7`}),e[0]=t,e[1]=n);let r;return e[2]===n?r=e[3]:(r=(0,X.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center px-6 text-center text-muted-foreground text-sm`,"data-testid":`sessions-dock-empty`,children:n}),e[2]=n,e[3]=r),r}function Dn(e,t){return e.kind===`thread`?e.threadId:e.adoptPtyId??t.get(e.id)??null}function On(e,t){let n=e.filter(e=>e.kind===`terminal`),r=n.find(e=>e.id===t);return{tabs:n.map(e=>({ordinal:e.ordinal,customLabel:e.customLabel})),activeOrdinal:r?.ordinal??null}}function kn(e,t,n,r){let i=e=>{let t=r(e);if(t==null)return 1/0;let i=n.indexOf(t);return i===-1?1/0:i},a=[...e];for(let e of t){let t=i(e);if(t===1/0){a.push(e);continue}let n=a.length;for(let e=0;e<a.length;e++)if(i(a[e])>t){n=e;break}a.splice(n,0,e)}return a}export{en as SessionsHost};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BUgB2tll.js";import{r as t}from"./dist-Nvb76hAm.js";import{t as n}from"./compiler-runtime-BfE3aGVn.js";import{t as r}from"./utils-CPqDy6Hr.js";import{t as i}from"./spinner-By93kIxm.js";var a=n(),o=e();function s(e){let n=(0,a.c)(8),{className:s}=e,{_:c}=t(),l;n[0]===s?l=n[1]:(l=r(`flex h-full w-full items-center justify-center gap-2.5 bg-background px-6 text-center text-muted-foreground text-sm`,`fade-in-0 animate-in duration-200 [animation-delay:400ms] [animation-fill-mode:backwards] motion-reduce:duration-0`,s),n[0]=s,n[1]=l);let u;n[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,o.jsx)(i,{"aria-hidden":`true`}),n[2]=u):u=n[2];let d;n[3]===c?d=n[4]:(d=c({id:`GEyl32`}),n[3]=c,n[4]=d);let f;return n[5]!==l||n[6]!==d?(f=(0,o.jsxs)(`div`,{role:`status`,"data-testid":`terminal-starting-notice`,className:l,children:[u,d]}),n[5]=l,n[6]=d,n[7]=f):f=n[7],f}export{s as t};
@@ -1 +0,0 @@
1
- import"./dist-D6JA916i.js";import{t as e}from"./dist-Cr4-nBVI.js";import{t}from"./messages-DwrUkQ2i.js";e.load(`en`,t.messages),e.activate(`en`);
@@ -1 +0,0 @@
1
- import"./src-B2bAQ64a.mjs";import"./resolve-project-root-dt8lYC9W.mjs";import"./src-B7uACjJn.mjs";import"./acp-harness-probe-Dm_THeRI.mjs";import"./init-DgDmq69W.mjs";import{n as e}from"./loader-CXM6dHCk.mjs";import"./skill-teardown-DUZd_juy.mjs";import"./preview-BCNCafey.mjs";import"./mcp-migrate-event-9DFnNzHa.mjs";export{e as loadConfig};
@@ -1 +0,0 @@
1
- import{S as e,m as t,p as n,r}from"./start-DL1V-xma.mjs";export{r as bootStartServer,n as resolveBundledReactShellDir,t as resolveHost,e as startCommand};