cli-jaw 2.17.44 → 2.17.45

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 (219) hide show
  1. package/README.ja.md +5 -7
  2. package/README.ko.md +5 -7
  3. package/README.md +19 -7
  4. package/README.zh-CN.md +5 -7
  5. package/dist/bin/commands/dispatch.js +93 -18
  6. package/dist/bin/commands/dispatch.js.map +1 -1
  7. package/dist/bin/commands/doctor.js +0 -70
  8. package/dist/bin/commands/doctor.js.map +1 -1
  9. package/dist/bin/commands/provider.js +16 -28
  10. package/dist/bin/commands/provider.js.map +1 -1
  11. package/dist/bin/commands/slack.js +65 -2
  12. package/dist/bin/commands/slack.js.map +1 -1
  13. package/dist/bin/commands/tui/slash-command-runner.js +1 -1
  14. package/dist/bin/commands/tui/slash-command-runner.js.map +1 -1
  15. package/dist/bin/commands/tui/types.js +0 -4
  16. package/dist/bin/commands/tui/types.js.map +1 -1
  17. package/dist/scripts/fresh-install-smoke.js +1 -1
  18. package/dist/scripts/fresh-install-smoke.js.map +1 -1
  19. package/dist/server.js +5 -3
  20. package/dist/server.js.map +1 -1
  21. package/dist/src/agent/args.js +1 -176
  22. package/dist/src/agent/args.js.map +1 -1
  23. package/dist/src/agent/claude-runtime-pool.js +11 -7
  24. package/dist/src/agent/claude-runtime-pool.js.map +1 -1
  25. package/dist/src/agent/cli-helpers.js +1 -3
  26. package/dist/src/agent/cli-helpers.js.map +1 -1
  27. package/dist/src/agent/error-classifier.js +1 -1
  28. package/dist/src/agent/error-classifier.js.map +1 -1
  29. package/dist/src/agent/error-cooldown.js +1 -3
  30. package/dist/src/agent/error-cooldown.js.map +1 -1
  31. package/dist/src/agent/events/claude.js +4 -56
  32. package/dist/src/agent/events/claude.js.map +1 -1
  33. package/dist/src/agent/events/helpers.js +3 -5
  34. package/dist/src/agent/events/helpers.js.map +1 -1
  35. package/dist/src/agent/events/index.js +12 -18
  36. package/dist/src/agent/events/index.js.map +1 -1
  37. package/dist/src/agent/kiro-runtime.js +3 -16
  38. package/dist/src/agent/kiro-runtime.js.map +1 -1
  39. package/dist/src/agent/lifecycle-handler.js +17 -12
  40. package/dist/src/agent/lifecycle-handler.js.map +1 -1
  41. package/dist/src/agent/native-runtime-run.js +7 -2
  42. package/dist/src/agent/native-runtime-run.js.map +1 -1
  43. package/dist/src/agent/prompt-context.js +4 -5
  44. package/dist/src/agent/prompt-context.js.map +1 -1
  45. package/dist/src/agent/resume-classifier.js +0 -5
  46. package/dist/src/agent/resume-classifier.js.map +1 -1
  47. package/dist/src/agent/runtime/acp/cursor-session.js +21 -3
  48. package/dist/src/agent/runtime/acp/cursor-session.js.map +1 -1
  49. package/dist/src/agent/runtime-pool.js +127 -51
  50. package/dist/src/agent/runtime-pool.js.map +1 -1
  51. package/dist/src/agent/session-persistence.js +1 -6
  52. package/dist/src/agent/session-persistence.js.map +1 -1
  53. package/dist/src/agent/spawn/resume.js +3 -3
  54. package/dist/src/agent/spawn/resume.js.map +1 -1
  55. package/dist/src/agent/spawn.js +27 -96
  56. package/dist/src/agent/spawn.js.map +1 -1
  57. package/dist/src/cli/claude-models.js +1 -1
  58. package/dist/src/cli/claude-models.js.map +1 -1
  59. package/dist/src/cli/cli-status-worker.js +1 -8
  60. package/dist/src/cli/cli-status-worker.js.map +1 -1
  61. package/dist/src/cli/compact.js +2 -6
  62. package/dist/src/cli/compact.js.map +1 -1
  63. package/dist/src/cli/employee-handler.js +4 -0
  64. package/dist/src/cli/employee-handler.js.map +1 -1
  65. package/dist/src/cli/handlers-completions.js +1 -1
  66. package/dist/src/cli/handlers-completions.js.map +1 -1
  67. package/dist/src/cli/handlers-runtime.js +18 -8
  68. package/dist/src/cli/handlers-runtime.js.map +1 -1
  69. package/dist/src/cli/handlers.js +3 -31
  70. package/dist/src/cli/handlers.js.map +1 -1
  71. package/dist/src/cli/opencodex-models.js +0 -5
  72. package/dist/src/cli/opencodex-models.js.map +1 -1
  73. package/dist/src/cli/readiness.js +1 -20
  74. package/dist/src/cli/readiness.js.map +1 -1
  75. package/dist/src/cli/registry-live.js +1 -51
  76. package/dist/src/cli/registry-live.js.map +1 -1
  77. package/dist/src/cli/registry.js +0 -64
  78. package/dist/src/cli/registry.js.map +1 -1
  79. package/dist/src/core/chat-sessions.js +3 -2
  80. package/dist/src/core/chat-sessions.js.map +1 -1
  81. package/dist/src/core/cli-detection.js +2 -178
  82. package/dist/src/core/cli-detection.js.map +1 -1
  83. package/dist/src/core/compact.js +2 -4
  84. package/dist/src/core/compact.js.map +1 -1
  85. package/dist/src/core/config.js +5 -4
  86. package/dist/src/core/config.js.map +1 -1
  87. package/dist/src/core/runtime-settings.js +5 -20
  88. package/dist/src/core/runtime-settings.js.map +1 -1
  89. package/dist/src/core/session-ops.js +4 -6
  90. package/dist/src/core/session-ops.js.map +1 -1
  91. package/dist/src/core/windows-launch-spec.js +1 -1
  92. package/dist/src/http/full-access.js +42 -0
  93. package/dist/src/http/full-access.js.map +1 -0
  94. package/dist/src/manager/proxy.js +1 -0
  95. package/dist/src/manager/proxy.js.map +1 -1
  96. package/dist/src/messaging/send.js +30 -8
  97. package/dist/src/messaging/send.js.map +1 -1
  98. package/dist/src/orchestrator/dispatch-admission.js +424 -0
  99. package/dist/src/orchestrator/dispatch-admission.js.map +1 -0
  100. package/dist/src/orchestrator/distribute.js +63 -21
  101. package/dist/src/orchestrator/distribute.js.map +1 -1
  102. package/dist/src/orchestrator/gateway.js +6 -4
  103. package/dist/src/orchestrator/gateway.js.map +1 -1
  104. package/dist/src/orchestrator/worker-registry.js +8 -1
  105. package/dist/src/orchestrator/worker-registry.js.map +1 -1
  106. package/dist/src/prompt/builder.js +40 -16
  107. package/dist/src/prompt/builder.js.map +1 -1
  108. package/dist/src/prompt/templates/employee.md +4 -4
  109. package/dist/src/routes/messaging.js +34 -18
  110. package/dist/src/routes/messaging.js.map +1 -1
  111. package/dist/src/routes/orchestrate.js +139 -64
  112. package/dist/src/routes/orchestrate.js.map +1 -1
  113. package/dist/src/routes/settings.js +1 -30
  114. package/dist/src/routes/settings.js.map +1 -1
  115. package/dist/src/routes/slack-tools.js +6 -4
  116. package/dist/src/routes/slack-tools.js.map +1 -1
  117. package/dist/src/security/path-guards.js +15 -1
  118. package/dist/src/security/path-guards.js.map +1 -1
  119. package/dist/src/slack/search-quote.js +9 -5
  120. package/dist/src/slack/search-quote.js.map +1 -1
  121. package/dist/src/slack/send-handler.js +1 -25
  122. package/dist/src/slack/send-handler.js.map +1 -1
  123. package/dist/src/slack/slack-file.js +105 -53
  124. package/dist/src/slack/slack-file.js.map +1 -1
  125. package/dist/src/slack/tool-access.js +10 -2
  126. package/dist/src/slack/tool-access.js.map +1 -1
  127. package/dist/src/slack/tool-capabilities.js +16 -8
  128. package/dist/src/slack/tool-capabilities.js.map +1 -1
  129. package/dist/src/types/cli-engine.js +26 -3
  130. package/dist/src/types/cli-engine.js.map +1 -1
  131. package/dist/src/types/cli-events.js +1 -1
  132. package/dist/src/types/cli-events.js.map +1 -1
  133. package/dist/src/workflows/employee-boundary.js +9 -5
  134. package/dist/src/workflows/employee-boundary.js.map +1 -1
  135. package/dist/src/workflows/scope-sandbox.js +5 -2
  136. package/dist/src/workflows/scope-sandbox.js.map +1 -1
  137. package/package.json +2 -6
  138. package/public/dist/.vite/manifest.json +115 -115
  139. package/public/dist/assets/Agent-CKX93LQ8.js +1 -0
  140. package/public/dist/assets/Employees-BuFw6-fT.js +1 -0
  141. package/public/dist/assets/Heartbeat-BmkZshEU.js +1 -0
  142. package/public/dist/assets/Memory-DsK_yOCW.js +1 -0
  143. package/public/dist/assets/ModelProvider-L_hW6YWJ.js +1 -0
  144. package/public/dist/assets/agent-meta-CkRJlOmN.js +1 -0
  145. package/public/dist/assets/{app-9OQNfmqw.js → app-B_JTnXIY.js} +4 -4
  146. package/public/dist/assets/{bgtask-badge-BvxHqMGi.js → bgtask-badge-BLdI7Ara.js} +1 -1
  147. package/public/dist/assets/bgtask-badge-DOhTsE9l.js +1 -0
  148. package/public/dist/assets/cli-engine-NdU0lzs_.js +1 -0
  149. package/public/dist/assets/constants-DmRtjRj3.js +1 -0
  150. package/public/dist/assets/{employees-CkUqN4oh.js → employees-DGoVBWQd.js} +1 -1
  151. package/public/dist/assets/iframe-renderer-Dw5vTqFX.js +1 -0
  152. package/public/dist/assets/{iframe-renderer-C2gchtOj.js → iframe-renderer-mBjdW5ZV.js} +2 -2
  153. package/public/dist/assets/{manager-rb5X-4DJ.js → manager-iX7KosWI.js} +1 -1
  154. package/public/dist/assets/memory-DuHc2no-.js +1 -0
  155. package/public/dist/assets/{memory-BiWzpoBq.js → memory-Hq9y-GQB.js} +1 -1
  156. package/public/dist/assets/message-history-DT0VaJRd.js +1 -0
  157. package/public/dist/assets/{message-history-CuFefS02.js → message-history-H7G4apTo.js} +1 -1
  158. package/public/dist/assets/{provider-icons-Det0fC-4.js → provider-icons-Bge6teOj.js} +1 -1
  159. package/public/dist/assets/{render-DUGqq9Mu.js → render-OT0puqo3.js} +1 -1
  160. package/public/dist/assets/settings-BW8q_Rnq.js +1 -0
  161. package/public/dist/assets/{settings-DQ1fLygB.js → settings-DjCtFSpd.js} +3 -3
  162. package/public/dist/assets/{settings-BqUHavbH.js → settings-KIPNUOIV.js} +1 -1
  163. package/public/dist/assets/settings-core-CVO3_bn9.js +1 -0
  164. package/public/dist/assets/settings-core-DiStY7KC.js +2 -0
  165. package/public/dist/assets/{settings-embedding-BAKFrVLV.js → settings-embedding-DIqST-91.js} +1 -1
  166. package/public/dist/assets/{sidebar-CvGbp9x5.js → sidebar-DiS6dGEP.js} +3 -3
  167. package/public/dist/assets/{skills-abLMqY5_.js → skills-D_mbeyb3.js} +1 -1
  168. package/public/dist/assets/skills-NzM-geDj.js +1 -0
  169. package/public/dist/assets/slash-commands-DUk5bLQ1.js +1 -0
  170. package/public/dist/assets/{slash-commands-D8o9pqOS.js → slash-commands-PWDX9hXL.js} +1 -1
  171. package/public/dist/assets/{trace-drawer-C6RvkUAd.js → trace-drawer-DSn3xg8f.js} +1 -1
  172. package/public/dist/assets/{ui-Bxapl_Eu.js → ui-Dzebjyzl.js} +1 -1
  173. package/public/dist/assets/ui-TcZtZTFR.js +1 -0
  174. package/public/dist/index.html +1 -3
  175. package/public/dist/manager/index.html +1 -1
  176. package/public/dist/settings/index.html +1 -1
  177. package/public/index.html +0 -2
  178. package/public/js/constants.ts +1 -46
  179. package/public/js/features/employees.ts +1 -1
  180. package/public/js/features/retired-runtime-option.ts +2 -2
  181. package/public/js/features/settings-channel.ts +4 -2
  182. package/public/js/features/settings-cli-status-render.ts +2 -2
  183. package/public/js/features/settings-cli-status.ts +0 -2
  184. package/public/js/provider-icons.ts +1 -3
  185. package/public/manager/src/settings/pages/Heartbeat.tsx +2 -2
  186. package/public/manager/src/settings/pages/Memory.tsx +2 -2
  187. package/public/manager/src/settings/pages/ModelProvider.tsx +7 -4
  188. package/public/manager/src/settings/pages/components/agent/FlushAgentSection.tsx +2 -2
  189. package/public/manager/src/settings/pages/components/agent/RuntimeEmployeeRow.tsx +2 -2
  190. package/public/manager/src/settings/pages/components/agent/RuntimeHeader.tsx +2 -2
  191. package/public/manager/src/settings/pages/components/agent/agent-meta.ts +4 -35
  192. package/public/manager/src/settings/pages/components/employees-helpers.ts +0 -2
  193. package/public/manager/src/settings/pages/components/heartbeat-helpers.ts +0 -2
  194. package/scripts/bundle-sidecar.sh +0 -24
  195. package/scripts/check-electron-sidecar-no-jwc.cjs +12 -4
  196. package/scripts/fresh-install-smoke.ts +1 -1
  197. package/scripts/install.sh +0 -5
  198. package/scripts/retired-runtime-package-smoke.mjs +2 -12
  199. package/scripts/verify-fresh-install.sh +0 -14
  200. package/dist/src/agent/claude-e-runtime.js +0 -44
  201. package/dist/src/agent/claude-e-runtime.js.map +0 -1
  202. package/public/dist/assets/Agent-CNad_A6t.js +0 -1
  203. package/public/dist/assets/Employees-B6uviPeN.js +0 -1
  204. package/public/dist/assets/Heartbeat-C3S3d8xW.js +0 -1
  205. package/public/dist/assets/Memory-BgeIbQSr.js +0 -1
  206. package/public/dist/assets/ModelProvider-AnxBVYws.js +0 -1
  207. package/public/dist/assets/agent-meta-BWHASq1a.js +0 -1
  208. package/public/dist/assets/bgtask-badge-DeSZJGNN.js +0 -1
  209. package/public/dist/assets/cli-engine-Bw0QTAVX.js +0 -1
  210. package/public/dist/assets/constants-D8XAqfHk.js +0 -1
  211. package/public/dist/assets/iframe-renderer-DfvACXIn.js +0 -1
  212. package/public/dist/assets/memory-Ckp1Eq5a.js +0 -1
  213. package/public/dist/assets/message-history-Bv0l_t7O.js +0 -1
  214. package/public/dist/assets/settings-C81Kf9uX.js +0 -1
  215. package/public/dist/assets/settings-core-CzdXfoOK.js +0 -2
  216. package/public/dist/assets/settings-core-DO_5M7Lv.js +0 -1
  217. package/public/dist/assets/skills-DFpPmMUR.js +0 -1
  218. package/public/dist/assets/slash-commands-BU58xYih.js +0 -1
  219. package/public/dist/assets/ui-CUB4iwz3.js +0 -1
@@ -1990,11 +1990,11 @@
1990
1990
  "_InlineWarn-DIMbcbzk.js"
1991
1991
  ]
1992
1992
  },
1993
- "_agent-meta-BWHASq1a.js": {
1994
- "file": "assets/agent-meta-BWHASq1a.js",
1993
+ "_agent-meta-CkRJlOmN.js": {
1994
+ "file": "assets/agent-meta-CkRJlOmN.js",
1995
1995
  "name": "agent-meta",
1996
1996
  "imports": [
1997
- "_cli-engine-Bw0QTAVX.js"
1997
+ "_cli-engine-NdU0lzs_.js"
1998
1998
  ]
1999
1999
  },
2000
2000
  "_api-B9RiiOMM.js": {
@@ -2005,12 +2005,12 @@
2005
2005
  "file": "assets/api-CUtiCd2-.js",
2006
2006
  "name": "api"
2007
2007
  },
2008
- "_bgtask-badge-BvxHqMGi.js": {
2009
- "file": "assets/bgtask-badge-BvxHqMGi.js",
2008
+ "_bgtask-badge-BLdI7Ara.js": {
2009
+ "file": "assets/bgtask-badge-BLdI7Ara.js",
2010
2010
  "name": "bgtask-badge",
2011
2011
  "imports": [
2012
2012
  "_api-CUtiCd2-.js",
2013
- "_render-DUGqq9Mu.js",
2013
+ "_render-OT0puqo3.js",
2014
2014
  "_icons-CVkqyECl.js"
2015
2015
  ]
2016
2016
  },
@@ -2430,16 +2430,16 @@
2430
2430
  "_chunk-LQGUR6SS-C7emO-i3.js"
2431
2431
  ]
2432
2432
  },
2433
- "_cli-engine-Bw0QTAVX.js": {
2434
- "file": "assets/cli-engine-Bw0QTAVX.js",
2433
+ "_cli-engine-NdU0lzs_.js": {
2434
+ "file": "assets/cli-engine-NdU0lzs_.js",
2435
2435
  "name": "cli-engine"
2436
2436
  },
2437
- "_constants-D8XAqfHk.js": {
2438
- "file": "assets/constants-D8XAqfHk.js",
2437
+ "_constants-DmRtjRj3.js": {
2438
+ "file": "assets/constants-DmRtjRj3.js",
2439
2439
  "name": "constants",
2440
2440
  "imports": [
2441
2441
  "_api-CUtiCd2-.js",
2442
- "_cli-engine-Bw0QTAVX.js"
2442
+ "_cli-engine-NdU0lzs_.js"
2443
2443
  ]
2444
2444
  },
2445
2445
  "_copy-text-DjgetgoZ.js": {
@@ -2582,14 +2582,14 @@
2582
2582
  "file": "assets/idb-cache-BRpjf_a8.js",
2583
2583
  "name": "idb-cache"
2584
2584
  },
2585
- "_iframe-renderer-C2gchtOj.js": {
2586
- "file": "assets/iframe-renderer-C2gchtOj.js",
2585
+ "_iframe-renderer-mBjdW5ZV.js": {
2586
+ "file": "assets/iframe-renderer-mBjdW5ZV.js",
2587
2587
  "name": "iframe-renderer",
2588
2588
  "imports": [
2589
2589
  "_api-CUtiCd2-.js",
2590
2590
  "_bounded-api-DdpT93LB.js",
2591
2591
  "_preload-helper-CfbQpVni.js",
2592
- "_render-DUGqq9Mu.js",
2592
+ "_render-OT0puqo3.js",
2593
2593
  "_icons-CVkqyECl.js",
2594
2594
  "_copy-text-DjgetgoZ.js",
2595
2595
  "_esm-Q6VOkDbn.js",
@@ -2618,12 +2618,12 @@
2618
2618
  "file": "assets/manager-shortcuts-jsiX-zV6.js",
2619
2619
  "name": "manager-shortcuts"
2620
2620
  },
2621
- "_memory-BiWzpoBq.js": {
2622
- "file": "assets/memory-BiWzpoBq.js",
2621
+ "_memory-Hq9y-GQB.js": {
2622
+ "file": "assets/memory-Hq9y-GQB.js",
2623
2623
  "name": "memory",
2624
2624
  "imports": [
2625
2625
  "_api-CUtiCd2-.js",
2626
- "_render-DUGqq9Mu.js",
2626
+ "_render-OT0puqo3.js",
2627
2627
  "_icons-CVkqyECl.js",
2628
2628
  "_copy-text-DjgetgoZ.js",
2629
2629
  "_locale-B9w_kUtW.js"
@@ -2738,18 +2738,18 @@
2738
2738
  "../node_modules/mermaid/dist/chunks/mermaid.core/pegDiagram-XKGWAZYB.mjs"
2739
2739
  ]
2740
2740
  },
2741
- "_message-history-CuFefS02.js": {
2742
- "file": "assets/message-history-CuFefS02.js",
2741
+ "_message-history-H7G4apTo.js": {
2742
+ "file": "assets/message-history-H7G4apTo.js",
2743
2743
  "name": "message-history",
2744
2744
  "imports": [
2745
2745
  "_state-Dl-xxPoS.js",
2746
2746
  "_api-CUtiCd2-.js",
2747
2747
  "_bounded-api-DdpT93LB.js",
2748
- "_render-DUGqq9Mu.js",
2748
+ "_render-OT0puqo3.js",
2749
2749
  "_mermaid-preprocess-D8xe5R2A.js",
2750
2750
  "_icons-CVkqyECl.js",
2751
2751
  "_copy-text-DjgetgoZ.js",
2752
- "_iframe-renderer-C2gchtOj.js",
2752
+ "_iframe-renderer-mBjdW5ZV.js",
2753
2753
  "_idb-cache-BRpjf_a8.js"
2754
2754
  ]
2755
2755
  },
@@ -2794,8 +2794,8 @@
2794
2794
  "_presentation-DWHWElFr.js"
2795
2795
  ]
2796
2796
  },
2797
- "_provider-icons-Det0fC-4.js": {
2798
- "file": "assets/provider-icons-Det0fC-4.js",
2797
+ "_provider-icons-Bge6teOj.js": {
2798
+ "file": "assets/provider-icons-Bge6teOj.js",
2799
2799
  "name": "provider-icons"
2800
2800
  },
2801
2801
  "_react-C_pPTFsM.js": {
@@ -2813,8 +2813,8 @@
2813
2813
  "_react-C_pPTFsM.js"
2814
2814
  ]
2815
2815
  },
2816
- "_render-DUGqq9Mu.js": {
2817
- "file": "assets/render-DUGqq9Mu.js",
2816
+ "_render-OT0puqo3.js": {
2817
+ "file": "assets/render-OT0puqo3.js",
2818
2818
  "name": "render",
2819
2819
  "imports": [
2820
2820
  "_vendor-render-Cmfl_oW8.js",
@@ -2841,20 +2841,20 @@
2841
2841
  "file": "assets/rough.esm-Dy-Kn_BL.js",
2842
2842
  "name": "rough.esm"
2843
2843
  },
2844
- "_settings-DQ1fLygB.js": {
2845
- "file": "assets/settings-DQ1fLygB.js",
2844
+ "_settings-DjCtFSpd.js": {
2845
+ "file": "assets/settings-DjCtFSpd.js",
2846
2846
  "name": "settings",
2847
2847
  "imports": [
2848
2848
  "_state-Dl-xxPoS.js",
2849
2849
  "_api-CUtiCd2-.js",
2850
- "_render-DUGqq9Mu.js",
2850
+ "_render-OT0puqo3.js",
2851
2851
  "_icons-CVkqyECl.js",
2852
2852
  "_copy-text-DjgetgoZ.js",
2853
2853
  "_locale-B9w_kUtW.js",
2854
- "_settings-core-CzdXfoOK.js",
2855
- "_constants-D8XAqfHk.js",
2854
+ "_settings-core-DiStY7KC.js",
2855
+ "_constants-DmRtjRj3.js",
2856
2856
  "_settings-types-D3cd6SWy.js",
2857
- "_provider-icons-Det0fC-4.js",
2857
+ "_provider-icons-Bge6teOj.js",
2858
2858
  "_channel-onboarding-flow-D73Cze0v.js"
2859
2859
  ]
2860
2860
  },
@@ -2862,23 +2862,23 @@
2862
2862
  "file": "assets/settings-client-CmwRsVd1.js",
2863
2863
  "name": "settings-client"
2864
2864
  },
2865
- "_settings-core-CzdXfoOK.js": {
2866
- "file": "assets/settings-core-CzdXfoOK.js",
2865
+ "_settings-core-DiStY7KC.js": {
2866
+ "file": "assets/settings-core-DiStY7KC.js",
2867
2867
  "name": "settings-core",
2868
2868
  "imports": [
2869
2869
  "_api-CUtiCd2-.js",
2870
- "_render-DUGqq9Mu.js",
2870
+ "_render-OT0puqo3.js",
2871
2871
  "_locale-B9w_kUtW.js",
2872
- "_cli-engine-Bw0QTAVX.js",
2873
- "_constants-D8XAqfHk.js",
2872
+ "_cli-engine-NdU0lzs_.js",
2873
+ "_constants-DmRtjRj3.js",
2874
2874
  "_settings-types-D3cd6SWy.js",
2875
2875
  "_pi-settings-tRVfevu-.js",
2876
- "_provider-icons-Det0fC-4.js",
2876
+ "_provider-icons-Bge6teOj.js",
2877
2877
  "_presentation-preference-D9u6LD07.js"
2878
2878
  ]
2879
2879
  },
2880
- "_settings-embedding-BAKFrVLV.js": {
2881
- "file": "assets/settings-embedding-BAKFrVLV.js",
2880
+ "_settings-embedding-DIqST-91.js": {
2881
+ "file": "assets/settings-embedding-DIqST-91.js",
2882
2882
  "name": "settings-embedding",
2883
2883
  "imports": [
2884
2884
  "_rolldown-runtime-hePW80VL.js",
@@ -2935,21 +2935,21 @@
2935
2935
  "_jsx-runtime-NZYk81nU.js"
2936
2936
  ]
2937
2937
  },
2938
- "_sidebar-CvGbp9x5.js": {
2939
- "file": "assets/sidebar-CvGbp9x5.js",
2938
+ "_sidebar-DiS6dGEP.js": {
2939
+ "file": "assets/sidebar-DiS6dGEP.js",
2940
2940
  "name": "sidebar",
2941
2941
  "imports": [
2942
2942
  "_state-Dl-xxPoS.js",
2943
2943
  "_api-CUtiCd2-.js",
2944
2944
  "_bounded-api-DdpT93LB.js",
2945
2945
  "_preload-helper-CfbQpVni.js",
2946
- "_render-DUGqq9Mu.js",
2946
+ "_render-OT0puqo3.js",
2947
2947
  "_icons-CVkqyECl.js",
2948
2948
  "_copy-text-DjgetgoZ.js",
2949
- "_iframe-renderer-C2gchtOj.js",
2950
- "_message-history-CuFefS02.js",
2949
+ "_iframe-renderer-mBjdW5ZV.js",
2950
+ "_message-history-H7G4apTo.js",
2951
2951
  "_presentation-DWHWElFr.js",
2952
- "_ui-Bxapl_Eu.js"
2952
+ "_ui-Dzebjyzl.js"
2953
2953
  ],
2954
2954
  "dynamicImports": [
2955
2955
  "js/features/trace-drawer.ts",
@@ -2968,22 +2968,22 @@
2968
2968
  "file": "assets/simple-mode-DXiLM1-G.js",
2969
2969
  "name": "simple-mode"
2970
2970
  },
2971
- "_skills-abLMqY5_.js": {
2972
- "file": "assets/skills-abLMqY5_.js",
2971
+ "_skills-D_mbeyb3.js": {
2972
+ "file": "assets/skills-D_mbeyb3.js",
2973
2973
  "name": "skills",
2974
2974
  "imports": [
2975
2975
  "_state-Dl-xxPoS.js",
2976
2976
  "_api-CUtiCd2-.js",
2977
- "_render-DUGqq9Mu.js",
2977
+ "_render-OT0puqo3.js",
2978
2978
  "_icons-CVkqyECl.js"
2979
2979
  ]
2980
2980
  },
2981
- "_slash-commands-D8o9pqOS.js": {
2982
- "file": "assets/slash-commands-D8o9pqOS.js",
2981
+ "_slash-commands-PWDX9hXL.js": {
2982
+ "file": "assets/slash-commands-PWDX9hXL.js",
2983
2983
  "name": "slash-commands",
2984
2984
  "imports": [
2985
2985
  "_api-CUtiCd2-.js",
2986
- "_render-DUGqq9Mu.js",
2986
+ "_render-OT0puqo3.js",
2987
2987
  "_locale-B9w_kUtW.js"
2988
2988
  ]
2989
2989
  },
@@ -2995,16 +2995,16 @@
2995
2995
  "file": "assets/terminal-shortcut-queue-B_AyW1hN.js",
2996
2996
  "name": "terminal-shortcut-queue"
2997
2997
  },
2998
- "_ui-Bxapl_Eu.js": {
2999
- "file": "assets/ui-Bxapl_Eu.js",
2998
+ "_ui-Dzebjyzl.js": {
2999
+ "file": "assets/ui-Dzebjyzl.js",
3000
3000
  "name": "ui",
3001
3001
  "imports": [
3002
3002
  "_state-Dl-xxPoS.js",
3003
3003
  "_preload-helper-CfbQpVni.js",
3004
- "_render-DUGqq9Mu.js",
3004
+ "_render-OT0puqo3.js",
3005
3005
  "_icons-CVkqyECl.js",
3006
- "_iframe-renderer-C2gchtOj.js",
3007
- "_message-history-CuFefS02.js",
3006
+ "_iframe-renderer-mBjdW5ZV.js",
3007
+ "_message-history-H7G4apTo.js",
3008
3008
  "_idb-cache-BRpjf_a8.js"
3009
3009
  ],
3010
3010
  "dynamicImports": [
@@ -3124,7 +3124,7 @@
3124
3124
  "src": "img/shark-sprite.png"
3125
3125
  },
3126
3126
  "index.html": {
3127
- "file": "assets/app-9OQNfmqw.js",
3127
+ "file": "assets/app-B_JTnXIY.js",
3128
3128
  "name": "app",
3129
3129
  "src": "index.html",
3130
3130
  "isEntry": true,
@@ -3132,24 +3132,24 @@
3132
3132
  "_vendor-render-Cmfl_oW8.js",
3133
3133
  "_state-Dl-xxPoS.js",
3134
3134
  "_api-CUtiCd2-.js",
3135
- "_sidebar-CvGbp9x5.js",
3135
+ "_sidebar-DiS6dGEP.js",
3136
3136
  "_preload-helper-CfbQpVni.js",
3137
- "_render-DUGqq9Mu.js",
3137
+ "_render-OT0puqo3.js",
3138
3138
  "_icons-CVkqyECl.js",
3139
3139
  "_copy-text-DjgetgoZ.js",
3140
- "_iframe-renderer-C2gchtOj.js",
3141
- "_message-history-CuFefS02.js",
3140
+ "_iframe-renderer-mBjdW5ZV.js",
3141
+ "_message-history-H7G4apTo.js",
3142
3142
  "_idb-cache-BRpjf_a8.js",
3143
- "_ui-Bxapl_Eu.js",
3143
+ "_ui-Dzebjyzl.js",
3144
3144
  "_locale-B9w_kUtW.js",
3145
- "_slash-commands-D8o9pqOS.js",
3146
- "_settings-core-CzdXfoOK.js",
3147
- "_constants-D8XAqfHk.js",
3148
- "_provider-icons-Det0fC-4.js",
3149
- "_skills-abLMqY5_.js",
3150
- "_settings-DQ1fLygB.js",
3151
- "_memory-BiWzpoBq.js",
3152
- "_bgtask-badge-BvxHqMGi.js"
3145
+ "_slash-commands-PWDX9hXL.js",
3146
+ "_settings-core-DiStY7KC.js",
3147
+ "_constants-DmRtjRj3.js",
3148
+ "_provider-icons-Bge6teOj.js",
3149
+ "_skills-D_mbeyb3.js",
3150
+ "_settings-DjCtFSpd.js",
3151
+ "_memory-Hq9y-GQB.js",
3152
+ "_bgtask-badge-BLdI7Ara.js"
3153
3153
  ],
3154
3154
  "dynamicImports": [
3155
3155
  "js/ui.ts",
@@ -3175,35 +3175,35 @@
3175
3175
  ]
3176
3176
  },
3177
3177
  "js/diagram/iframe-renderer.ts": {
3178
- "file": "assets/iframe-renderer-DfvACXIn.js",
3178
+ "file": "assets/iframe-renderer-Dw5vTqFX.js",
3179
3179
  "name": "iframe-renderer",
3180
3180
  "src": "js/diagram/iframe-renderer.ts",
3181
3181
  "isDynamicEntry": true,
3182
3182
  "imports": [
3183
- "_iframe-renderer-C2gchtOj.js"
3183
+ "_iframe-renderer-mBjdW5ZV.js"
3184
3184
  ]
3185
3185
  },
3186
3186
  "js/features/bgtask-badge.ts": {
3187
- "file": "assets/bgtask-badge-DeSZJGNN.js",
3187
+ "file": "assets/bgtask-badge-DOhTsE9l.js",
3188
3188
  "name": "bgtask-badge",
3189
3189
  "src": "js/features/bgtask-badge.ts",
3190
3190
  "isDynamicEntry": true,
3191
3191
  "imports": [
3192
- "_bgtask-badge-BvxHqMGi.js"
3192
+ "_bgtask-badge-BLdI7Ara.js"
3193
3193
  ]
3194
3194
  },
3195
3195
  "js/features/employees.ts": {
3196
- "file": "assets/employees-CkUqN4oh.js",
3196
+ "file": "assets/employees-DGoVBWQd.js",
3197
3197
  "name": "employees",
3198
3198
  "src": "js/features/employees.ts",
3199
3199
  "isDynamicEntry": true,
3200
3200
  "imports": [
3201
3201
  "_state-Dl-xxPoS.js",
3202
3202
  "_api-CUtiCd2-.js",
3203
- "_sidebar-CvGbp9x5.js",
3204
- "_render-DUGqq9Mu.js",
3203
+ "_sidebar-DiS6dGEP.js",
3204
+ "_render-OT0puqo3.js",
3205
3205
  "_icons-CVkqyECl.js",
3206
- "_constants-D8XAqfHk.js"
3206
+ "_constants-DmRtjRj3.js"
3207
3207
  ]
3208
3208
  },
3209
3209
  "js/features/idb-cache.ts": {
@@ -3216,21 +3216,21 @@
3216
3216
  ]
3217
3217
  },
3218
3218
  "js/features/memory.ts": {
3219
- "file": "assets/memory-Ckp1Eq5a.js",
3219
+ "file": "assets/memory-DuHc2no-.js",
3220
3220
  "name": "memory",
3221
3221
  "src": "js/features/memory.ts",
3222
3222
  "isDynamicEntry": true,
3223
3223
  "imports": [
3224
- "_memory-BiWzpoBq.js"
3224
+ "_memory-Hq9y-GQB.js"
3225
3225
  ]
3226
3226
  },
3227
3227
  "js/features/message-history.ts": {
3228
- "file": "assets/message-history-Bv0l_t7O.js",
3228
+ "file": "assets/message-history-DT0VaJRd.js",
3229
3229
  "name": "message-history",
3230
3230
  "src": "js/features/message-history.ts",
3231
3231
  "isDynamicEntry": true,
3232
3232
  "imports": [
3233
- "_message-history-CuFefS02.js"
3233
+ "_message-history-H7G4apTo.js"
3234
3234
  ]
3235
3235
  },
3236
3236
  "js/features/pi-settings.ts": {
@@ -3252,51 +3252,51 @@
3252
3252
  ]
3253
3253
  },
3254
3254
  "js/features/settings-core.ts": {
3255
- "file": "assets/settings-core-DO_5M7Lv.js",
3255
+ "file": "assets/settings-core-CVO3_bn9.js",
3256
3256
  "name": "settings-core",
3257
3257
  "src": "js/features/settings-core.ts",
3258
3258
  "isDynamicEntry": true,
3259
3259
  "imports": [
3260
- "_settings-core-CzdXfoOK.js"
3260
+ "_settings-core-DiStY7KC.js"
3261
3261
  ]
3262
3262
  },
3263
3263
  "js/features/settings.ts": {
3264
- "file": "assets/settings-C81Kf9uX.js",
3264
+ "file": "assets/settings-BW8q_Rnq.js",
3265
3265
  "name": "settings",
3266
3266
  "src": "js/features/settings.ts",
3267
3267
  "isDynamicEntry": true,
3268
3268
  "imports": [
3269
- "_settings-core-CzdXfoOK.js",
3270
- "_settings-DQ1fLygB.js"
3269
+ "_settings-core-DiStY7KC.js",
3270
+ "_settings-DjCtFSpd.js"
3271
3271
  ]
3272
3272
  },
3273
3273
  "js/features/skills.ts": {
3274
- "file": "assets/skills-DFpPmMUR.js",
3274
+ "file": "assets/skills-NzM-geDj.js",
3275
3275
  "name": "skills",
3276
3276
  "src": "js/features/skills.ts",
3277
3277
  "isDynamicEntry": true,
3278
3278
  "imports": [
3279
- "_skills-abLMqY5_.js"
3279
+ "_skills-D_mbeyb3.js"
3280
3280
  ]
3281
3281
  },
3282
3282
  "js/features/slash-commands.ts": {
3283
- "file": "assets/slash-commands-BU58xYih.js",
3283
+ "file": "assets/slash-commands-DUk5bLQ1.js",
3284
3284
  "name": "slash-commands",
3285
3285
  "src": "js/features/slash-commands.ts",
3286
3286
  "isDynamicEntry": true,
3287
3287
  "imports": [
3288
- "_slash-commands-D8o9pqOS.js"
3288
+ "_slash-commands-PWDX9hXL.js"
3289
3289
  ]
3290
3290
  },
3291
3291
  "js/features/trace-drawer.ts": {
3292
- "file": "assets/trace-drawer-C6RvkUAd.js",
3292
+ "file": "assets/trace-drawer-DSn3xg8f.js",
3293
3293
  "name": "trace-drawer",
3294
3294
  "src": "js/features/trace-drawer.ts",
3295
3295
  "isDynamicEntry": true,
3296
3296
  "imports": [
3297
3297
  "_bounded-api-DdpT93LB.js",
3298
- "_render-DUGqq9Mu.js",
3299
- "_provider-icons-Det0fC-4.js"
3298
+ "_render-OT0puqo3.js",
3299
+ "_provider-icons-Bge6teOj.js"
3300
3300
  ]
3301
3301
  },
3302
3302
  "js/mermaid-loader.ts": {
@@ -3309,18 +3309,18 @@
3309
3309
  ]
3310
3310
  },
3311
3311
  "js/ui.ts": {
3312
- "file": "assets/ui-CUB4iwz3.js",
3312
+ "file": "assets/ui-TcZtZTFR.js",
3313
3313
  "name": "ui",
3314
3314
  "src": "js/ui.ts",
3315
3315
  "isDynamicEntry": true,
3316
3316
  "imports": [
3317
- "_iframe-renderer-C2gchtOj.js",
3318
- "_message-history-CuFefS02.js",
3319
- "_ui-Bxapl_Eu.js"
3317
+ "_iframe-renderer-mBjdW5ZV.js",
3318
+ "_message-history-H7G4apTo.js",
3319
+ "_ui-Dzebjyzl.js"
3320
3320
  ]
3321
3321
  },
3322
3322
  "manager/index.html": {
3323
- "file": "assets/manager-rb5X-4DJ.js",
3323
+ "file": "assets/manager-iX7KosWI.js",
3324
3324
  "name": "manager",
3325
3325
  "src": "manager/index.html",
3326
3326
  "isEntry": true,
@@ -3329,7 +3329,7 @@
3329
3329
  "_vendor-render-Cmfl_oW8.js",
3330
3330
  "_preload-helper-CfbQpVni.js",
3331
3331
  "_esm-Q6VOkDbn.js",
3332
- "_settings-embedding-BAKFrVLV.js",
3332
+ "_settings-embedding-DIqST-91.js",
3333
3333
  "_react-C_pPTFsM.js",
3334
3334
  "_react-dom-DyUOYpVL.js",
3335
3335
  "_api-B9RiiOMM.js",
@@ -3635,13 +3635,13 @@
3635
3635
  ]
3636
3636
  },
3637
3637
  "manager/src/settings/pages/Agent.tsx": {
3638
- "file": "assets/Agent-CNad_A6t.js",
3638
+ "file": "assets/Agent-CKX93LQ8.js",
3639
3639
  "name": "Agent",
3640
3640
  "src": "manager/src/settings/pages/Agent.tsx",
3641
3641
  "isDynamicEntry": true,
3642
3642
  "imports": [
3643
3643
  "_rolldown-runtime-hePW80VL.js",
3644
- "_cli-engine-Bw0QTAVX.js",
3644
+ "_cli-engine-NdU0lzs_.js",
3645
3645
  "_settings-types-D3cd6SWy.js",
3646
3646
  "_react-C_pPTFsM.js",
3647
3647
  "_jsx-runtime-NZYk81nU.js",
@@ -3650,7 +3650,7 @@
3650
3650
  "_page-shell-BeGD0rRQ.js",
3651
3651
  "_fields-mlGpofqQ.js",
3652
3652
  "_Permissions-DzNJCt8K.js",
3653
- "_agent-meta-BWHASq1a.js",
3653
+ "_agent-meta-CkRJlOmN.js",
3654
3654
  "_path-utils-B6vBr0DD.js"
3655
3655
  ]
3656
3656
  },
@@ -3746,7 +3746,7 @@
3746
3746
  ]
3747
3747
  },
3748
3748
  "manager/src/settings/pages/Employees.tsx": {
3749
- "file": "assets/Employees-B6uviPeN.js",
3749
+ "file": "assets/Employees-BuFw6-fT.js",
3750
3750
  "name": "Employees",
3751
3751
  "src": "manager/src/settings/pages/Employees.tsx",
3752
3752
  "isDynamicEntry": true,
@@ -3758,18 +3758,18 @@
3758
3758
  ]
3759
3759
  },
3760
3760
  "manager/src/settings/pages/Heartbeat.tsx": {
3761
- "file": "assets/Heartbeat-C3S3d8xW.js",
3761
+ "file": "assets/Heartbeat-BmkZshEU.js",
3762
3762
  "name": "Heartbeat",
3763
3763
  "src": "manager/src/settings/pages/Heartbeat.tsx",
3764
3764
  "isDynamicEntry": true,
3765
3765
  "imports": [
3766
3766
  "_rolldown-runtime-hePW80VL.js",
3767
- "_cli-engine-Bw0QTAVX.js",
3767
+ "_cli-engine-NdU0lzs_.js",
3768
3768
  "_react-C_pPTFsM.js",
3769
3769
  "_jsx-runtime-NZYk81nU.js",
3770
3770
  "_page-shell-BeGD0rRQ.js",
3771
3771
  "_fields-mlGpofqQ.js",
3772
- "_agent-meta-BWHASq1a.js",
3772
+ "_agent-meta-CkRJlOmN.js",
3773
3773
  "_path-utils-B6vBr0DD.js"
3774
3774
  ]
3775
3775
  },
@@ -3788,35 +3788,35 @@
3788
3788
  ]
3789
3789
  },
3790
3790
  "manager/src/settings/pages/Memory.tsx": {
3791
- "file": "assets/Memory-BgeIbQSr.js",
3791
+ "file": "assets/Memory-DsK_yOCW.js",
3792
3792
  "name": "Memory",
3793
3793
  "src": "manager/src/settings/pages/Memory.tsx",
3794
3794
  "isDynamicEntry": true,
3795
3795
  "imports": [
3796
3796
  "_rolldown-runtime-hePW80VL.js",
3797
- "_cli-engine-Bw0QTAVX.js",
3797
+ "_cli-engine-NdU0lzs_.js",
3798
3798
  "_react-C_pPTFsM.js",
3799
3799
  "_jsx-runtime-NZYk81nU.js",
3800
3800
  "_page-shell-BeGD0rRQ.js",
3801
3801
  "_fields-mlGpofqQ.js",
3802
- "_agent-meta-BWHASq1a.js",
3802
+ "_agent-meta-CkRJlOmN.js",
3803
3803
  "_path-utils-B6vBr0DD.js"
3804
3804
  ]
3805
3805
  },
3806
3806
  "manager/src/settings/pages/ModelProvider.tsx": {
3807
- "file": "assets/ModelProvider-AnxBVYws.js",
3807
+ "file": "assets/ModelProvider-L_hW6YWJ.js",
3808
3808
  "name": "ModelProvider",
3809
3809
  "src": "manager/src/settings/pages/ModelProvider.tsx",
3810
3810
  "isDynamicEntry": true,
3811
3811
  "imports": [
3812
3812
  "_rolldown-runtime-hePW80VL.js",
3813
- "_cli-engine-Bw0QTAVX.js",
3813
+ "_cli-engine-NdU0lzs_.js",
3814
3814
  "_react-C_pPTFsM.js",
3815
3815
  "_jsx-runtime-NZYk81nU.js",
3816
3816
  "_error-normalize-CL69Bl7z.js",
3817
3817
  "_page-shell-BeGD0rRQ.js",
3818
3818
  "_fields-mlGpofqQ.js",
3819
- "_agent-meta-BWHASq1a.js",
3819
+ "_agent-meta-CkRJlOmN.js",
3820
3820
  "_path-utils-B6vBr0DD.js"
3821
3821
  ]
3822
3822
  },
@@ -3963,13 +3963,13 @@
3963
3963
  "src": "manifest.json"
3964
3964
  },
3965
3965
  "settings/index.html": {
3966
- "file": "assets/settings-BqUHavbH.js",
3966
+ "file": "assets/settings-KIPNUOIV.js",
3967
3967
  "name": "settings",
3968
3968
  "src": "settings/index.html",
3969
3969
  "isEntry": true,
3970
3970
  "imports": [
3971
3971
  "_api-CUtiCd2-.js",
3972
- "_settings-embedding-BAKFrVLV.js",
3972
+ "_settings-embedding-DIqST-91.js",
3973
3973
  "_jsx-runtime-NZYk81nU.js",
3974
3974
  "_settings-client-CmwRsVd1.js"
3975
3975
  ]
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{r as t,t as n}from"./cli-engine-NdU0lzs_.js";import{n as r}from"./settings-types-D3cd6SWy.js";import{t as i}from"./react-C_pPTFsM.js";import{t as a}from"./jsx-runtime-NZYk81nU.js";import{t as o}from"./settings-client-CmwRsVd1.js";import{t as s}from"./error-normalize-CL69Bl7z.js";import{a as c,i as l,n as u,r as d,t as f}from"./page-shell-BeGD0rRQ.js";import{i as p,s as m}from"./fields-mlGpofqQ.js";import{n as h,o as ee,r as g,s as _}from"./Permissions-DzNJCt8K.js";import{a as v,c as te,d as y,i as ne,l as b,n as re,o as x,r as ie,s as ae,t as oe,u as S}from"./agent-meta-CkRJlOmN.js";import{t as se}from"./path-utils-B6vBr0DD.js";var C=e(i(),1),w=1e3,T=8e3,ce=9e4;function le(e,t){if(!e||!t)return!1;let n=e[t]?.probeState;return n?n===`checking`||n===`failing`:!1}function E(e){let t=w*2**Math.min(Number.isFinite(e)&&e>0?Math.floor(e):0,8);return Math.min(Math.max(t,w),T)}function ue(e){let{snapshot:t,cli:n,attempts:r,now:i,deadline:a}=e;if(!le(t,n))return{kind:`stop`};if(i>=a||r>=24)return{kind:`exhausted`};let o=t?.[n]?.nextRetryAt,s=typeof o==`number`&&o>i?o:i+E(r);return{kind:`wait`,delayMs:Math.max(Math.min(s,a)-i,0)}}var D=a();function de({cli:e,cliOptions:r,provider:i=``,providerOptions:a=[],model:o,modelOptions:s,effort:c,effortOptions:u,workingDir:d,workingDirError:f,cliMeta:h,onCliChange:ee,onProviderChange:g,onModelChange:_,onEffortChange:y,onWorkingDirChange:ne}){let b=te(r),x=n(e),ie=b.filter(e=>re.includes(e)).length;return(0,D.jsx)(l,{title:`Agent runtime`,hint:`Active CLI, model, effort, and workspace used by this instance.`,children:(0,D.jsxs)(`div`,{className:`settings-agent-runtime-grid`,children:[(0,D.jsx)(p,{id:`agent-cli`,label:`Active CLI`,value:e,missingValueLabel:n(e)?t(e):void 0,error:x?`This runtime is retired. Select an available runtime to continue.`:null,options:b.map(e=>({value:e,label:v(e,h).label||e})),collapsedAfter:ie,onChange:ee}),a.length>0?(0,D.jsx)(p,{id:`agent-${e}-provider`,label:`Provider`,value:i,options:a.map(e=>({value:e,label:e})),onChange:e=>g?.(e)}):null,(0,D.jsx)(p,{id:`agent-model`,label:`Active model`,value:o,disabled:x,options:s.length>0?s:[{value:``,label:`(default)`}],onChange:_}),(0,D.jsx)(p,{id:`agent-effort`,label:`Effort`,value:c,options:[{value:``,label:`(default)`},...u.map(e=>({value:e,label:e}))],disabled:x||u.length===0,onChange:y}),(0,D.jsx)(m,{id:`agent-workingDir`,label:`Working directory`,value:d,error:f,placeholder:`/path/to/project`,onChange:ne})]})})}var fe=[{value:`auto`,label:`Auto (YOLO)`},{value:`safe`,label:`Safe`},{value:`custom`,label:`Custom allowlist`}];function pe({value:e,configuredValue:t,onChange:n}){let r=ee(e),i=r.mode===`custom`?`custom`:r.mode===`safe`?`safe`:`auto`,a=r.mode===`custom`?r.tokens:[],o=r.mode===`custom`?`Editor draft: ${a.length} explicit token${a.length===1?``:`s`}`:null;return(0,D.jsxs)(l,{title:`Permissions`,hint:`Selecting a value changes the draft. Save applies it. Auto (YOLO) requests automatic approval or permission bypass. Behavior varies by runtime.`,children:[(0,D.jsx)(p,{id:`agent-permissions-mode`,label:`Change policy to`,value:i,options:fe,onChange:e=>{n(e===`auto`?`auto`:e===`safe`?`safe`:a.length>0&&g(a)?a:_(null))}}),o?(0,D.jsx)(`p`,{className:`settings-agent-note`,children:o}):null,(0,D.jsxs)(`p`,{className:`settings-agent-note`,id:`agent-configured-policy`,children:[`Configured policy: `,h(t)]})]})}function me({activeCli:e,flushCli:r,flushModel:i,cliOptions:a,modelOptions:o,cliMeta:s,loading:c,error:u,onFlushCliChange:d,onFlushModelChange:f}){let m=r||e,h=m?v(m,s).label||m:`active`;return(0,D.jsx)(l,{title:`Flush Agent`,hint:`Separate summary agent used for context flush and compact work.`,children:(0,D.jsxs)(`details`,{className:`settings-agent-flush`,children:[(0,D.jsxs)(`summary`,{children:[(0,D.jsx)(`span`,{children:`Flush runtime`}),(0,D.jsxs)(`code`,{children:[h,i&&i!=="default"?` / ${i}`:``]})]}),c?(0,D.jsx)(`p`,{className:`settings-agent-note`,children:`Loading flush settings...`}):null,u?(0,D.jsx)(`p`,{className:`settings-field-error`,role:`alert`,children:u}):null,(0,D.jsxs)(`div`,{className:`settings-agent-runtime-grid`,children:[(0,D.jsx)(p,{id:`agent-flush-cli`,label:`Flush CLI`,value:r,missingValueLabel:n(r)?t(r):void 0,error:n(m)?`The saved flush runtime is retired. Choose an available runtime.`:null,options:[{value:``,label:`(active CLI)`},...y(a).map(e=>({value:e,label:v(e,s).label||e}))],onChange:d}),(0,D.jsx)(p,{id:`agent-flush-model`,label:`Flush model`,value:i,disabled:n(m),options:[{value:``,label:`(default)`},...o],onChange:f})]})]})})}function O(e){return e.source===`static`||e.id.startsWith(`static:`)}function k(){return`new:${Date.now().toString(36)}:${Math.random().toString(36).slice(2,8)}`}function he(e,t){let n=y(e)[0]||`claude`,r=t?.[n]?.models?.[0]||`default`;return{id:k(),name:`New Agent`,cli:n,model:r,role:``,status:`idle`,source:`db`}}function ge(e){return Array.isArray(e)?e.map(A).filter(Boolean):e.data.map(A).filter(Boolean)}function A(e){if(!e||typeof e!=`object`)return null;let t=e,n=typeof t.id==`string`?t.id:``,r=typeof t.name==`string`?t.name:``;if(!n||!r)return null;let i=t.source===`static`||n.startsWith(`static:`)?`static`:`db`,a={id:n,name:r,cli:typeof t.cli==`string`&&t.cli?t.cli:`claude`,model:typeof t.model==`string`&&t.model?t.model:`default`,role:typeof t.role==`string`?t.role:``,source:i};return typeof t.status==`string`&&(a.status=t.status),a}function j(e){return e.name.trim()?e.cli.trim()?e.model.trim()?null:`Model is required`:`CLI is required`:`Name is required`}function M(e){return e.some(e=>j(e)!==null)}function _e(e,t){return JSON.stringify(e.map(I))===JSON.stringify(t.map(I))}function N(e,t){let n=new Map(e.map(e=>[e.id,e])),r=new Set(t.map(e=>e.id)),i=[],a=[],o=[];for(let e of t){let t=n.get(e.id);if(!t||e.id.startsWith(`new:`)){i.push(e);continue}let r=ye(t,e);Object.keys(r).length>0&&a.push({before:t,after:e,patch:r})}for(let t of e)!r.has(t.id)&&!O(t)&&o.push(t);return{added:i,updated:a,removed:o}}function ve(e,t){let n=N(e,t);return{added:n.added.length,updated:n.updated.length,removed:n.removed.length}}async function P(e,t,n){let r=N(t,n);for(let t of r.removed)await e.delete(`/api/employees/${encodeURIComponent(t.id)}`);for(let t of r.added)await e.post(`/api/employees`,F(t));for(let t of r.updated)await e.put(`/api/employees/${encodeURIComponent(t.after.id)}`,t.patch)}function ye(e,t){if(O(t))return e.model===t.model?{}:{model:t.model};let n={};for(let r of[`name`,`cli`,`model`,`role`,`status`])(e[r]||``)!==(t[r]||``)&&(n[r]=t[r]||``);return n}function F(e){return{name:e.name.trim()||`New Agent`,cli:e.cli.trim()||`claude`,model:e.model.trim()||`default`,role:e.role.trim()}}function I(e){let t={id:e.id,name:e.name,cli:e.cli,model:e.model,role:e.role,source:e.source};return e.status!==void 0&&(t.status=e.status),t}function be({employee:e,index:r,cliOptions:i,cliMeta:a,onChange:o,onRemove:s}){let c=O(e),l=v(e.cli,a),u=ae(l.models,e.model),d=j(e),f=n(e.cli),h=y(Array.from(new Set([...i,e.cli,`claude`])).filter(Boolean));return(0,D.jsxs)(`fieldset`,{className:`settings-runtime-employee-row`,children:[(0,D.jsxs)(`legend`,{children:[e.name||`Employee ${r+1}`,c?(0,D.jsx)(`span`,{children:`static`}):null]}),(0,D.jsxs)(`div`,{className:`settings-runtime-employee-grid`,children:[(0,D.jsx)(m,{id:`runtime-employee-${e.id}-name`,label:`Name`,value:e.name,disabled:c,error:d===`Name is required`?d:null,onChange:e=>o({name:e})}),(0,D.jsx)(p,{id:`runtime-employee-${e.id}-cli`,label:`CLI`,value:e.cli,missingValueLabel:n(e.cli)?t(e.cli):void 0,error:f?`This saved runtime cannot execute. Choose an available runtime.`:null,disabled:c,options:h.map(e=>({value:e,label:v(e,a).label||e})),onChange:e=>{o({cli:e,model:v(e,a).models[0]||`default`})}}),(0,D.jsx)(p,{id:`runtime-employee-${e.id}-model`,label:`Model`,value:e.model,disabled:f,options:u.length>0?u:[{value:`default`,label:`default`}],onChange:e=>o({model:e})}),(0,D.jsx)(m,{id:`runtime-employee-${e.id}-role`,label:`Role`,value:e.role,disabled:c,onChange:e=>o({role:e})})]}),(0,D.jsxs)(`div`,{className:`settings-runtime-employee-footer`,children:[(0,D.jsxs)(`span`,{children:[e.source,e.status?` / ${e.status}`:``]}),(0,D.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,disabled:c,onClick:s,"aria-label":`Remove employee ${e.name||r+1}`,children:`Remove`})]})]})}function xe({roster:e,original:t,cliOptions:n,cliMeta:r,loading:i,error:a,onRosterChange:o}){let s=ve(t,e),c=M(e);function u(t,n){o(e.map((e,r)=>r===t?{...e,...n}:e))}function d(t){o(e.filter((e,n)=>n!==t))}return(0,D.jsxs)(l,{title:`Employees`,hint:`Runtime dispatch roster. Static employees keep their locked identity; database employees can be edited.`,children:[(0,D.jsxs)(`div`,{className:`settings-runtime-employee-summary`,children:[(0,D.jsxs)(`span`,{children:[`+`,s.added]}),(0,D.jsxs)(`span`,{children:[`~`,s.updated]}),(0,D.jsxs)(`span`,{children:[`-`,s.removed]}),c?(0,D.jsx)(`strong`,{children:`Fix invalid rows before saving.`}):null]}),i?(0,D.jsx)(`p`,{className:`settings-agent-note`,children:`Loading employees...`}):null,a?(0,D.jsx)(`p`,{className:`settings-field-error`,role:`alert`,children:a}):null,e.length===0?(0,D.jsx)(`p`,{className:`settings-empty`,children:`No runtime employees configured.`}):(0,D.jsx)(`div`,{className:`settings-runtime-employee-list`,children:e.map((e,t)=>(0,D.jsx)(be,{employee:e,index:t,cliOptions:n,cliMeta:r??null,onChange:e=>u(t,e),onRemove:()=>d(t)},e.id))}),(0,D.jsx)(`div`,{className:`settings-employee-footer-bar`,children:(0,D.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,onClick:()=>o([...e,he(n,r)]),children:`+ Add employee`})})]})}var Se=new Set([`runtimeEmployees`,`flushCli`,`flushModel`]);function L(e){let t={},n=null,r=null;for(let[i,a]of Object.entries(e))i===`runtimeEmployees`?r=a:i===`flushCli`||i===`flushModel`?(n??={},n[i===`flushCli`?`cli`:`model`]=String(a??``)):Se.has(i)||(t[i]=a);return{settingsBundle:t,flushPatch:n,runtimeEmployeesNext:r}}async function Ce(e){let{client:t,bundle:n,employeeDraft:r,employeeOriginal:i}=e;if(M(r))throw Error(`runtime employees: fix invalid rows before saving`);let{settingsBundle:a,flushPatch:o,runtimeEmployeesNext:s}=L(n),c=null;try{if(Object.keys(a).length>0){let e=await t.put(`/api/settings`,se(a));c=e&&typeof e==`object`&&`data`in e?e.data:e}}catch(e){throw Error(`settings save failed: ${e instanceof Error?e.message:String(e)}`)}try{o&&await t.put(`/api/memory-files/settings`,o)}catch(e){throw Error(`flush settings save failed: ${e instanceof Error?e.message:String(e)}`)}try{if(s){let e=i;try{let n=ge(await t.get(`/api/employees`)),r=new Set(i.map(e=>e.id)),a=new Set(s.map(e=>e.id));e=n.filter(e=>r.has(e.id)||a.has(e.id))}catch{}await P(t,e,s)}}catch(e){throw Error(`runtime employees save failed: ${e instanceof Error?e.message:String(e)}`)}return c}function we({status:e,exhausted:t=!1}){if(t)return(0,D.jsx)(`div`,{className:`settings-inline-notice`,role:`alert`,children:`상태 확인이 끝나지 않았습니다. 새로고침하거나 잠시 후 다시 확인하세요.`});if(!e)return null;let n=r(e);return n.kind===`checking`?(0,D.jsx)(`div`,{className:`settings-inline-notice`,role:`status`,"aria-live":`polite`,children:`상태 확인 중`}):n.kind===`unknown`?(0,D.jsx)(`div`,{className:`settings-inline-notice`,role:`alert`,children:n.message}):n.kind===`failing`?(0,D.jsxs)(`div`,{className:`settings-inline-notice`,role:`alert`,children:[`상태 확인 실패 (재시도 중)`,e.probeError?`: ${e.probeError}`:``]}):null}function R(e){if(!(e instanceof o)||e.status!==409)return null;try{return JSON.parse(e.detail).settings??null}catch{return null}}function z({port:e,client:t,dirty:n,registerSave:r}){let{state:i,refresh:a,setData:o}=c(t,`/api/settings`),[l,p]=(0,C.useState)({cli:``,provider:``,model:``,effort:``,workingDir:``,permissions:`auto`}),[m,h]=(0,C.useState)({}),[g,_]=(0,C.useState)({}),[te,re]=(0,C.useState)(!0),[se,w]=(0,C.useState)(null),[T,le]=(0,C.useState)([]),[E,fe]=(0,C.useState)([]),[O,k]=(0,C.useState)(!0),[he,A]=(0,C.useState)(null),[j,N]=(0,C.useState)(null),[ve,P]=(0,C.useState)({}),[ye,F]=(0,C.useState)(!1),[I,be]=(0,C.useState)(null),[Se,L]=(0,C.useState)(!1),[z,Te]=(0,C.useState)(null),B=(0,C.useCallback)(async()=>{try{let e=await t.get(`/api/cli-registry`),n=e&&typeof e==`object`&&`data`in e?e.data:e;N(x(n))}catch{N(null)}},[t]),V=(0,C.useRef)(0),H=(0,C.useRef)({}),[Ee,De]=(0,C.useState)(!1),U=(0,C.useCallback)(async e=>{try{let n=await t.get(`/api/cli-status`);if(e!==void 0&&e!==V.current)return;H.current=n,P(n)}catch{if(e!==void 0&&e!==V.current)return;H.current={},P({})}},[t]),W=(0,C.useCallback)(async()=>{re(!0),w(null);try{let e=await t.get(`/api/memory-files`),n={cli:e.cli||``,model:e.model||``};h(n),_(n)}catch(e){w(e instanceof Error?e.message:String(e))}finally{re(!1)}},[t]),G=(0,C.useCallback)(async()=>{k(!0),A(null);try{let e=ge(await t.get(`/api/employees`));le(e),fe(e)}catch(e){A(e instanceof Error?e.message:String(e))}finally{k(!1)}},[t]);(0,C.useEffect)(()=>{B(),U(),W(),G()},[B,U,G,W]),(0,C.useEffect)(()=>{if(!l.cli)return;let e=V.current+1;V.current=e,De(!1);let t=Date.now()+ce,n=0,r,i=()=>{if(e!==V.current)return;let a=ue({snapshot:H.current,cli:l.cli,attempts:n,now:Date.now(),deadline:t});if(a.kind!==`stop`){if(a.kind===`exhausted`){De(!0);return}r=setTimeout(()=>{e===V.current&&(n+=1,U(e).then(()=>{e===V.current&&i()}))},a.delayMs)}};return i(),()=>{V.current=e+1,r!==void 0&&clearTimeout(r)}},[l.cli,U]),(0,C.useEffect)(()=>{if(i.kind!==`ready`)return;let e=Object.keys(i.data.perCli||{}),t=i.data.cli||e[0]||``,n=ee(i.data.permissions),r=v(t,j);p({cli:t,provider:i.data.perCli?.[t]?.provider||r.defaultProvider||``,model:S(t,i.data.perCli,i.data.activeOverrides),effort:b(t,i.data.perCli,i.data.activeOverrides),workingDir:i.data.workingDir||``,permissions:n.mode===`custom`?n.tokens:n.mode===`safe`?`safe`:`auto`})},[j,i]),(0,C.useEffect)(()=>()=>{for(let e of Array.from(n.pending.keys()))(e===`cli`||e===`workingDir`||e===`permissions`||e===`runtimeEmployees`||e===`flushCli`||e===`flushModel`||e.startsWith(`activeOverrides.`))&&n.remove(e)},[n]);let K=(0,C.useCallback)((e,t)=>n.set(e,t),[n]),Oe=(0,C.useCallback)(async()=>{let e=n.saveBundle();if(Object.keys(e).length===0)return;let r=await Ce({client:t,bundle:e,employeeDraft:E,employeeOriginal:T});n.clear(),r&&o(r),await a(),await B(),await W(),await G()},[t,n,E,T,B,G,W,a,o]);(0,C.useEffect)(()=>{if(r)return r(Oe),()=>r(null)},[r,Oe]);let q=i.kind===`ready`?i.data:{},J=q.perCli||{},Y=q.activeOverrides||{},ke=(0,C.useMemo)(()=>{let e=y(Object.keys(J));return e.length?e:y(Object.keys(j||oe))},[J,j]),X=v(l.cli,j),Z=l.provider||X.defaultProvider||X.providers?.[0]||``,Ae=l.cli===`pi`,Q=!Ae&&(X.providers?.length??0)>0,je=ae(Q&&X.modelsByProvider?.[Z]||X.models,l.model),Me=Q?ne(X,l.model,X.effortsByProvider?.[Z]||X.efforts,Z):ne(X,l.model),Ne=l.workingDir.trim()?null:`Required`,Pe=(0,C.useCallback)(async e=>{F(!0),be(null);try{let n=await t.post(`/api/settings/runtime-default-migration`,{action:e}),r;r=`settings`in n&&n.settings?n.settings:`data`in n&&n.data?n.data:n,o(r)}catch(e){let t=R(e);if(t){o(t);return}be(s(e))}finally{F(!1)}},[t,o]),Fe=(0,C.useCallback)(async e=>{L(!0),Te(null);try{let n=await t.post(`/api/settings/multi-session-default-migration`,{action:e}),r;r=`settings`in n&&n.settings?n.settings:`data`in n&&n.data?n.data:n,o(r)}catch(e){let t=R(e);if(t){o(t);return}Te(s(e))}finally{L(!1)}},[t,o]);if(i.kind===`loading`)return(0,D.jsx)(u,{});if(i.kind===`offline`)return(0,D.jsx)(d,{port:e});if(i.kind===`error`)return(0,D.jsx)(f,{message:i.message});function Ie(){for(let e of Array.from(n.pending.keys()))e.startsWith(`activeOverrides.`)&&n.remove(e)}function $(e){p(e)}return(0,D.jsxs)(`form`,{className:`settings-page-form`,onSubmit:e=>{e.preventDefault(),Oe()},children:[q.runtimeDefaultMigration?.state===`pending`?(0,D.jsxs)(`div`,{className:`settings-inline-notice`,role:`status`,children:[(0,D.jsx)(`strong`,{children:`기본 런타임 변경 안내`}),(0,D.jsx)(`p`,{children:`기존 선택은 유지됩니다. Codex App으로 전환하거나 현재 런타임을 계속 사용할 수 있습니다.`}),(0,D.jsxs)(`div`,{className:`settings-inline-actions`,children:[(0,D.jsx)(`button`,{type:`button`,className:`settings-action settings-action-save`,disabled:ye,onClick:()=>void Pe(`accept`),children:`Codex App 사용`}),(0,D.jsx)(`button`,{type:`button`,className:`settings-action settings-action-secondary`,disabled:ye,onClick:()=>void Pe(`keep`),children:`현재 런타임 유지`})]}),I?(0,D.jsx)(`span`,{className:`settings-field-error`,role:`alert`,children:I}):null]}):null,q.multiSessionDefaultMigration?.state===`pending`?(0,D.jsxs)(`div`,{className:`settings-inline-notice`,role:`status`,children:[(0,D.jsx)(`strong`,{children:`다중 세션 안내`}),(0,D.jsx)(`p`,{children:`대화 세션을 여러 개 열 수 있습니다. 켜면 동시 실행도 2로 올라가서, 두 번째 세션이 첫 번째가 끝나기를 기다리지 않습니다. 지금 설정은 그대로 유지됩니다.`}),(0,D.jsxs)(`div`,{className:`settings-inline-actions`,children:[(0,D.jsx)(`button`,{type:`button`,className:`settings-action settings-action-save`,disabled:Se,onClick:()=>void Fe(`accept`),children:`다중 세션 켜기`}),(0,D.jsx)(`button`,{type:`button`,className:`settings-action settings-action-secondary`,disabled:Se,onClick:()=>void Fe(`keep`),children:`지금 설정 유지`})]}),z?(0,D.jsx)(`span`,{className:`settings-field-error`,role:`alert`,children:z}):null]}):null,(0,D.jsxs)(`label`,{className:`settings-field settings-field-select`,htmlFor:`midrun-policy-select`,children:[(0,D.jsx)(`span`,{className:`settings-field-label`,children:`실행 중 메시지 처리 (mid-run policy)`}),(0,D.jsxs)(`select`,{id:`midrun-policy-select`,value:String(q.multiSession?.midRunPolicy||`steer`),onChange:e=>{let t=e.target.value;K(`multiSession.midRunPolicy`,{value:t,original:String(q.multiSession?.midRunPolicy||`steer`),valid:!0})},children:[(0,D.jsx)(`option`,{value:`steer`,children:`steer (기본) — 실행 중 지시 변경`}),(0,D.jsx)(`option`,{value:`followup`,children:`followup — 끝나면 순서대로 실행`}),(0,D.jsx)(`option`,{value:`collect`,children:`collect — 모아서 한 번에 실행`}),(0,D.jsx)(`option`,{value:`interrupt`,children:`interrupt — 현재 실행을 중단하고 즉시 실행`})]}),(0,D.jsx)(`span`,{className:`settings-field-hint`,children:`다중 세션이 켜져 있을 때 적용됩니다. codex-app은 같은 턴에 입력을 전달합니다. Cursor·Grok의 native 모드는 현재 요청의 취소와 정리가 끝난 뒤 같은 세션에 다시 요청합니다(cancel-reprompt). 그 외 런타임은 중단 후 새 실행으로 이어갑니다(kill-steer). 보존되는 맥락은 런타임에 따라 다릅니다. 끝난 뒤 실행하려면 followup을 선택하세요.`})]}),(0,D.jsx)(we,{status:ve[l.cli],exhausted:Ee}),(0,D.jsx)(de,{cli:l.cli,cliOptions:ke,provider:Z,providerOptions:Ae?[]:X.providers||[],model:l.model,modelOptions:je,effort:l.effort,effortOptions:Me,workingDir:l.workingDir,workingDirError:Ne,cliMeta:j,onCliChange:e=>{let t=v(e,j),n={...l,cli:e,provider:J[e]?.provider||t.defaultProvider||``,model:S(e,J,Y),effort:b(e,J,Y)};Ie(),$(n),K(`cli`,{value:e,original:q.cli||``,valid:!0})},onProviderChange:e=>{let t=X.modelsByProvider?.[e]||[],n=X.effortsByProvider?.[e]||[],r=t.includes(l.model)?l.model:t[0]||``,i=ie(X,r,l.effort,n,e);$({...l,provider:e,model:r,effort:i}),K(`perCli.${l.cli}.provider`,{value:e,original:J[l.cli]?.provider||X.defaultProvider||``,valid:!0}),K(`activeOverrides.${l.cli}.model`,{value:r,original:S(l.cli,J,Y),valid:r.trim().length>0}),K(`activeOverrides.${l.cli}.effort`,{value:i,original:b(l.cli,J,Y),valid:!0})},onModelChange:e=>{let t=ie(X,e,l.effort,Q?X.effortsByProvider?.[Z]||X.efforts:void 0,Q?Z:void 0);$({...l,model:e,effort:t}),K(`activeOverrides.${l.cli}.model`,{value:e,original:S(l.cli,J,Y),valid:e.trim().length>0}),t!==l.effort&&K(`activeOverrides.${l.cli}.effort`,{value:t,original:b(l.cli,J,Y),valid:!0})},onEffortChange:e=>{$({...l,effort:e}),K(`activeOverrides.${l.cli}.effort`,{value:e,original:b(l.cli,J,Y),valid:!0})},onWorkingDirChange:e=>{$({...l,workingDir:e}),K(`workingDir`,{value:e,original:q.workingDir||``,valid:e.trim().length>0})}}),(0,D.jsx)(pe,{value:l.permissions,configuredValue:q.permissions,onChange:e=>{$({...l,permissions:e}),K(`permissions`,{value:e,original:q.permissions??`auto`,valid:e===`auto`||e.length>0})}}),(0,D.jsx)(me,{activeCli:l.cli,flushCli:g.cli||``,flushModel:g.model||``,cliOptions:ke,cliMeta:j,modelOptions:ae(v(g.cli||l.cli,j).models,g.model||``),loading:te,error:se,onFlushCliChange:e=>{let t=e&&v(e,j).models[0]||``;_({cli:e,model:t}),K(`flushCli`,{value:e,original:m.cli||``,valid:!0}),K(`flushModel`,{value:t,original:m.model||``,valid:!0})},onFlushModelChange:e=>{_({...g,model:e}),K(`flushModel`,{value:e,original:m.model||``,valid:!0})}}),(0,D.jsx)(xe,{roster:E,original:T,cliOptions:ke,cliMeta:j,loading:O,error:he,onRosterChange:e=>{if(fe(e),_e(e,T)){n.remove(`runtimeEmployees`);return}n.set(`runtimeEmployees`,{value:e,original:T,valid:!M(e)})}})]})}export{we as CliProbeNotice,R as conflictSettingsFromError,z as default,L as splitAgentSaveBundle};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-C_pPTFsM.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{i as r}from"./page-shell-BeGD0rRQ.js";var i=e(t(),1),a=n(),o=[`employees`],s=[`claude`,`codex`,`codex-app`,`copilot`,`cursor`,`kiro-code`,`gemini`,`grok`,`opencode`],c=0;function l(){return c+=1,`emp_${Date.now().toString(36)}_${c}`}function u(){let e=globalThis.crypto;if(e&&typeof e.randomUUID==`function`)try{return e.randomUUID()}catch{}return l()}function d(e=u()){return{id:e,name:``,cli:`claude`,role:``,prompt:``,active:!0}}function f(e){if(!Array.isArray(e))return[];let t=[],n=0;for(let r of e){if(typeof r==`string`){n+=1,t.push({...d(`emp_legacy_${n}`),name:r});continue}if(!r||typeof r!=`object`)continue;let e=r,i=typeof e.name==`string`?e.name:``;if(!i&&!e.id)continue;n+=1;let a=typeof e.id==`string`&&e.id.trim()?e.id.trim():`emp_unknown_${n}`,o=typeof e.cli==`string`&&e.cli.trim()?e.cli.trim():`claude`,s=typeof e.role==`string`?e.role:``,c=typeof e.prompt==`string`?e.prompt:``,l=e.active!==!1;t.push({id:a,name:i,cli:o,role:s,prompt:c,active:l})}return t}function p(e){return e.name.trim()?e.cli.trim()?null:`CLI is required`:`Name is required`}function m(e){return e.some(e=>p(e)!==null)}function h(e){let t=new Map;for(let n of e){let e=n.name.trim().toLowerCase();e&&t.set(e,(t.get(e)??0)+1)}let n=new Set;for(let[e,r]of t)r>1&&n.add(e);return n}function g(e){return e.map(e=>{let t={id:e.id,name:e.name.trim(),cli:e.cli.trim()||`claude`,role:e.role.trim(),active:e.active};return e.prompt.trim()&&(t.prompt=e.prompt),t})}function _({registerSave:e}){return(0,i.useEffect)(()=>{if(e)return e(null),()=>e(null)},[e]),(0,a.jsx)(`form`,{className:`settings-page-form`,onSubmit:e=>e.preventDefault(),children:(0,a.jsx)(r,{title:`Employees`,hint:`Runtime employees are now managed from the Agent page.`,children:(0,a.jsx)(`p`,{className:`settings-section-hint`,children:`Open Runtime / Agent to edit dispatchable employees, static employee model overrides, and database-backed employees in one place.`})})})}export{s as DEFAULT_CLI_OPTIONS,o as EMPLOYEE_KEYS,_ as default,h as duplicateNameSet,p as employeeRowError,m as employeesHaveErrors,d as makeDefaultEmployee,u as newEmployeeId,f as normalizeEmployees,g as toPersistShape};