reasonix 0.41.0 → 0.44.0-rc.5

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 (207) hide show
  1. package/README.md +73 -12
  2. package/README.zh-CN.md +35 -7
  3. package/dashboard/app.css +225 -4
  4. package/dashboard/dist/app.js +6538 -6082
  5. package/dashboard/dist/app.js.map +1 -1
  6. package/data/deepseek-tokenizer.json.gz +0 -0
  7. package/dist/cli/{acp-64VQZLDJ.js → acp-TYZ2CTDL.js} +40 -37
  8. package/dist/cli/acp-TYZ2CTDL.js.map +1 -0
  9. package/dist/cli/chat-TH7VNNCJ.js +51 -0
  10. package/dist/cli/{chunk-E46ECXJD.js → chunk-2425HK6U.js} +2 -1
  11. package/dist/cli/{chunk-E46ECXJD.js.map → chunk-2425HK6U.js.map} +1 -1
  12. package/dist/cli/chunk-25T6CVUP.js +172 -0
  13. package/dist/cli/chunk-25T6CVUP.js.map +1 -0
  14. package/dist/cli/{chunk-3Q3C4W66.js → chunk-2UQP6H6T.js} +2 -1
  15. package/dist/cli/{chunk-3Q3C4W66.js.map → chunk-2UQP6H6T.js.map} +1 -1
  16. package/dist/cli/{chunk-SXLJBFIV.js → chunk-2V6EAEUW.js} +99 -31
  17. package/dist/cli/chunk-2V6EAEUW.js.map +1 -0
  18. package/dist/cli/{chunk-4H3ZRJ2U.js → chunk-4CTDEJUF.js} +4 -3
  19. package/dist/cli/{chunk-4H3ZRJ2U.js.map → chunk-4CTDEJUF.js.map} +1 -1
  20. package/dist/cli/{chunk-7VFNPMKG.js → chunk-4QUNBQQ2.js} +3 -2
  21. package/dist/cli/{chunk-7VFNPMKG.js.map → chunk-4QUNBQQ2.js.map} +1 -1
  22. package/dist/cli/chunk-5QCB62C4.js +25319 -0
  23. package/dist/cli/chunk-5QCB62C4.js.map +1 -0
  24. package/dist/cli/chunk-6OWJV3YW.js +390 -0
  25. package/dist/cli/chunk-6OWJV3YW.js.map +1 -0
  26. package/dist/cli/{chunk-YJFKFTAL.js → chunk-6PBZN4VI.js} +15 -3
  27. package/dist/cli/chunk-6PBZN4VI.js.map +1 -0
  28. package/dist/cli/{chunk-WE3YZULK.js → chunk-7CIGMZT3.js} +3 -2
  29. package/dist/cli/{chunk-WE3YZULK.js.map → chunk-7CIGMZT3.js.map} +1 -1
  30. package/dist/cli/{chunk-LTXADNCO.js → chunk-7UCMM425.js} +8 -3
  31. package/dist/cli/chunk-7UCMM425.js.map +1 -0
  32. package/dist/cli/{chunk-UV7XJUJH.js → chunk-AB2RED3C.js} +16 -9
  33. package/dist/cli/{chunk-UV7XJUJH.js.map → chunk-AB2RED3C.js.map} +1 -1
  34. package/dist/cli/chunk-AVFXO2EZ.js +2996 -0
  35. package/dist/cli/chunk-AVFXO2EZ.js.map +1 -0
  36. package/dist/cli/{chunk-7SPOFTMT.js → chunk-C53JQES5.js} +4 -3
  37. package/dist/cli/{chunk-7SPOFTMT.js.map → chunk-C53JQES5.js.map} +1 -1
  38. package/dist/cli/{chunk-MHGPBJ2T.js → chunk-CGDR2ELH.js} +131 -34
  39. package/dist/cli/chunk-CGDR2ELH.js.map +1 -0
  40. package/dist/cli/{chunk-4DCHFFEY.js → chunk-CWZKQ5FE.js} +8 -4
  41. package/dist/cli/chunk-CWZKQ5FE.js.map +1 -0
  42. package/dist/cli/chunk-FEZK652I.js +3644 -0
  43. package/dist/cli/chunk-FEZK652I.js.map +1 -0
  44. package/dist/cli/{chunk-A7VHMMDE.js → chunk-HNXDZGC6.js} +114 -5
  45. package/dist/cli/chunk-HNXDZGC6.js.map +1 -0
  46. package/dist/cli/{chunk-FWGEHRB7.js → chunk-J5XJHLWM.js} +2 -1
  47. package/dist/cli/{chunk-FWGEHRB7.js.map → chunk-J5XJHLWM.js.map} +1 -1
  48. package/dist/cli/{chunk-Y5XNV3NX.js → chunk-JMBMLOBP.js} +2 -1
  49. package/dist/cli/{chunk-Y5XNV3NX.js.map → chunk-JMBMLOBP.js.map} +1 -1
  50. package/dist/cli/{chunk-ARF3N2SY.js → chunk-JNAQYELD.js} +17 -8
  51. package/dist/cli/{chunk-ARF3N2SY.js.map → chunk-JNAQYELD.js.map} +1 -1
  52. package/dist/cli/{chunk-AT6GGIBV.js → chunk-KGBG6M2X.js} +25 -18
  53. package/dist/cli/chunk-KGBG6M2X.js.map +1 -0
  54. package/dist/cli/{chunk-A3LL4XDV.js → chunk-KLQTAZIY.js} +69 -5
  55. package/dist/cli/chunk-KLQTAZIY.js.map +1 -0
  56. package/dist/cli/{chunk-KZYLMMU5.js → chunk-KM465GST.js} +13 -12
  57. package/dist/cli/{chunk-KZYLMMU5.js.map → chunk-KM465GST.js.map} +1 -1
  58. package/dist/cli/{chunk-2CXPDAWX.js → chunk-LIR2HBQH.js} +3 -2
  59. package/dist/cli/{chunk-2CXPDAWX.js.map → chunk-LIR2HBQH.js.map} +1 -1
  60. package/dist/cli/{chunk-RAUPWSYA.js → chunk-MJ6W5UN3.js} +3 -2
  61. package/dist/cli/{chunk-RAUPWSYA.js.map → chunk-MJ6W5UN3.js.map} +1 -1
  62. package/dist/cli/{chunk-4W2CICFQ.js → chunk-MRHHQJAQ.js} +72 -60
  63. package/dist/cli/chunk-MRHHQJAQ.js.map +1 -0
  64. package/dist/cli/{chunk-BOFL3T45.js → chunk-NVURFF27.js} +23 -11
  65. package/dist/cli/chunk-NVURFF27.js.map +1 -0
  66. package/dist/cli/chunk-OPFUUYHL.js +11645 -0
  67. package/dist/cli/chunk-OPFUUYHL.js.map +1 -0
  68. package/dist/cli/{chunk-FM57FNPJ.js → chunk-PLHAZOLZ.js} +2 -1
  69. package/dist/cli/{chunk-FM57FNPJ.js.map → chunk-PLHAZOLZ.js.map} +1 -1
  70. package/dist/cli/{chunk-ZTLZO42A.js → chunk-R3CTO2HM.js} +3 -2
  71. package/dist/cli/{chunk-ZTLZO42A.js.map → chunk-R3CTO2HM.js.map} +1 -1
  72. package/dist/cli/{chunk-BYZGO3BX.js → chunk-RDRC3XDT.js} +145 -39
  73. package/dist/cli/chunk-RDRC3XDT.js.map +1 -0
  74. package/dist/cli/chunk-S4XVGLRW.js +499 -0
  75. package/dist/cli/chunk-S4XVGLRW.js.map +1 -0
  76. package/dist/cli/{chunk-WJ3YX4PZ.js → chunk-SZ5XES2N.js} +3 -2
  77. package/dist/cli/{chunk-WJ3YX4PZ.js.map → chunk-SZ5XES2N.js.map} +1 -1
  78. package/dist/cli/{chunk-CD4SCQL4.js → chunk-TEUDEGX2.js} +64 -10
  79. package/dist/cli/chunk-TEUDEGX2.js.map +1 -0
  80. package/dist/cli/chunk-TKVXTQ3T.js +96 -0
  81. package/dist/cli/chunk-TKVXTQ3T.js.map +1 -0
  82. package/dist/cli/chunk-TUK7OWJA.js +51 -0
  83. package/dist/cli/chunk-TXJMRPIL.js +54 -0
  84. package/dist/cli/{chunk-L7W3HJZQ.js.map → chunk-TXJMRPIL.js.map} +1 -1
  85. package/dist/cli/{chunk-H4OLWRSX.js → chunk-V26WPN3J.js} +11 -7
  86. package/dist/cli/chunk-V26WPN3J.js.map +1 -0
  87. package/dist/cli/{chunk-VFG4GIT3.js → chunk-WK3UFQY3.js} +3 -2
  88. package/dist/cli/{chunk-VFG4GIT3.js.map → chunk-WK3UFQY3.js.map} +1 -1
  89. package/dist/cli/chunk-X53B3JIX.js +34320 -0
  90. package/dist/cli/chunk-X53B3JIX.js.map +1 -0
  91. package/dist/cli/{chunk-SOZE7V7V.js → chunk-XJXDHAES.js} +3 -2
  92. package/dist/cli/{chunk-SOZE7V7V.js.map → chunk-XJXDHAES.js.map} +1 -1
  93. package/dist/cli/{chunk-CFY2XLY6.js → chunk-XSU4QVFW.js} +7 -85
  94. package/dist/cli/chunk-XSU4QVFW.js.map +1 -0
  95. package/dist/cli/{chunk-CRPQUBP6.js → chunk-XXC2BYTV.js} +2 -1
  96. package/dist/cli/{chunk-CRPQUBP6.js.map → chunk-XXC2BYTV.js.map} +1 -1
  97. package/dist/cli/chunk-Z4S7EYXG.js +63813 -0
  98. package/dist/cli/chunk-Z4S7EYXG.js.map +1 -0
  99. package/dist/cli/chunk-ZZM6QJ4W.js +109 -0
  100. package/dist/cli/chunk-ZZM6QJ4W.js.map +1 -0
  101. package/dist/cli/{chunk-ORM6PK57.js → chunk-ZZYBBX5N.js} +14 -5
  102. package/dist/cli/chunk-ZZYBBX5N.js.map +1 -0
  103. package/dist/cli/code-PSVJ3KEN.js +166 -0
  104. package/dist/cli/code-PSVJ3KEN.js.map +1 -0
  105. package/dist/cli/{commands-QY7MSQG7.js → commands-OCU42XG4.js} +7 -5
  106. package/dist/cli/{commands-QY7MSQG7.js.map → commands-OCU42XG4.js.map} +1 -1
  107. package/dist/cli/{commit-BRCQ3OQO.js → commit-XCQIQCYG.js} +7 -4
  108. package/dist/cli/{commit-BRCQ3OQO.js.map → commit-XCQIQCYG.js.map} +1 -1
  109. package/dist/cli/{desktop-ZTMHQR2Y.js → desktop-KWGR4BNE.js} +327 -98
  110. package/dist/cli/desktop-KWGR4BNE.js.map +1 -0
  111. package/dist/cli/devtools-HW3WDT3Q.js +91 -0
  112. package/dist/cli/devtools-HW3WDT3Q.js.map +1 -0
  113. package/dist/cli/diff-NHANTNC3.js +165 -0
  114. package/dist/cli/{diff-YASCB7PU.js.map → diff-NHANTNC3.js.map} +1 -1
  115. package/dist/cli/doctor-CC5CLOGG.js +27 -0
  116. package/dist/cli/{events-2AJTXR7I.js → events-XEFAD5VX.js} +6 -4
  117. package/dist/cli/{events-2AJTXR7I.js.map → events-XEFAD5VX.js.map} +1 -1
  118. package/dist/cli/index.js +3266 -152
  119. package/dist/cli/index.js.map +1 -1
  120. package/dist/cli/{mcp-YMWBLRR7.js → mcp-MPVGBBJF.js} +6 -4
  121. package/dist/cli/{mcp-YMWBLRR7.js.map → mcp-MPVGBBJF.js.map} +1 -1
  122. package/dist/cli/{mcp-browse-XLDUE6SB.js → mcp-browse-4XOTC3FJ.js} +32 -21
  123. package/dist/cli/{mcp-browse-XLDUE6SB.js.map → mcp-browse-4XOTC3FJ.js.map} +1 -1
  124. package/dist/cli/{mcp-inspect-H4D2HSJP.js → mcp-inspect-CEMGKKAH.js} +18 -10
  125. package/dist/cli/mcp-inspect-CEMGKKAH.js.map +1 -0
  126. package/dist/cli/package.json +3 -0
  127. package/dist/cli/prompt-2D7ID24X.js +16 -0
  128. package/dist/cli/{prune-sessions-4N3BVST2.js → prune-sessions-3RWUBYRS.js} +4 -2
  129. package/dist/cli/{prune-sessions-4N3BVST2.js.map → prune-sessions-3RWUBYRS.js.map} +1 -1
  130. package/dist/cli/{replay-3GTWM75X.js → replay-SR44E6RS.js} +42 -30
  131. package/dist/cli/{replay-3GTWM75X.js.map → replay-SR44E6RS.js.map} +1 -1
  132. package/dist/cli/{run-BLZPTRDX.js → run-MDGL27WL.js} +42 -40
  133. package/dist/cli/run-MDGL27WL.js.map +1 -0
  134. package/dist/cli/{server-DRFPXXSH.js → server-27ARQXIZ.js} +95 -55
  135. package/dist/cli/server-27ARQXIZ.js.map +1 -0
  136. package/dist/cli/{sessions-BOWFPTXT.js → sessions-CKQXCYGP.js} +25 -22
  137. package/dist/cli/sessions-CKQXCYGP.js.map +1 -0
  138. package/dist/cli/setup-TPAGSVXO.js +618 -0
  139. package/dist/cli/setup-TPAGSVXO.js.map +1 -0
  140. package/dist/cli/stats-DPUBZNVX.js +16 -0
  141. package/dist/cli/update-6ITLPRDV.js +15 -0
  142. package/dist/cli/version-2X3BHVVK.js +33 -0
  143. package/dist/cli/{version-XQXYSJ5L.js.map → version-2X3BHVVK.js.map} +1 -1
  144. package/dist/index.d.ts +182 -45
  145. package/dist/index.js +1420 -546
  146. package/dist/index.js.map +1 -1
  147. package/package.json +21 -8
  148. package/dist/cli/.-3G6VX5S7.js +0 -327
  149. package/dist/cli/.-6YRPB2C7.js +0 -329
  150. package/dist/cli/.-EYSVINK3.js +0 -317
  151. package/dist/cli/acp-64VQZLDJ.js.map +0 -1
  152. package/dist/cli/chat-ZAGX52RV.js +0 -46
  153. package/dist/cli/chunk-4DCHFFEY.js.map +0 -1
  154. package/dist/cli/chunk-4W2CICFQ.js.map +0 -1
  155. package/dist/cli/chunk-5X7LZJDE.js +0 -36
  156. package/dist/cli/chunk-5X7LZJDE.js.map +0 -1
  157. package/dist/cli/chunk-65Q5HQ26.js +0 -892
  158. package/dist/cli/chunk-65Q5HQ26.js.map +0 -1
  159. package/dist/cli/chunk-A3LL4XDV.js.map +0 -1
  160. package/dist/cli/chunk-A7VHMMDE.js.map +0 -1
  161. package/dist/cli/chunk-AFFZF3MW.js +0 -36
  162. package/dist/cli/chunk-AFFZF3MW.js.map +0 -1
  163. package/dist/cli/chunk-AT6GGIBV.js.map +0 -1
  164. package/dist/cli/chunk-BOFL3T45.js.map +0 -1
  165. package/dist/cli/chunk-BYZGO3BX.js.map +0 -1
  166. package/dist/cli/chunk-CD4SCQL4.js.map +0 -1
  167. package/dist/cli/chunk-CFY2XLY6.js.map +0 -1
  168. package/dist/cli/chunk-CPOV2O73.js +0 -39
  169. package/dist/cli/chunk-CPOV2O73.js.map +0 -1
  170. package/dist/cli/chunk-DAEAAVDF.js +0 -199
  171. package/dist/cli/chunk-DAEAAVDF.js.map +0 -1
  172. package/dist/cli/chunk-F2AV2QDK.js +0 -16514
  173. package/dist/cli/chunk-F2AV2QDK.js.map +0 -1
  174. package/dist/cli/chunk-H4OLWRSX.js.map +0 -1
  175. package/dist/cli/chunk-IEA6JOIP.js +0 -5430
  176. package/dist/cli/chunk-IEA6JOIP.js.map +0 -1
  177. package/dist/cli/chunk-L7W3HJZQ.js +0 -46
  178. package/dist/cli/chunk-LN27AKV3.js +0 -26
  179. package/dist/cli/chunk-LN27AKV3.js.map +0 -1
  180. package/dist/cli/chunk-LTXADNCO.js.map +0 -1
  181. package/dist/cli/chunk-MHGPBJ2T.js.map +0 -1
  182. package/dist/cli/chunk-ORM6PK57.js.map +0 -1
  183. package/dist/cli/chunk-SXLJBFIV.js.map +0 -1
  184. package/dist/cli/chunk-YJFKFTAL.js.map +0 -1
  185. package/dist/cli/code-X3M6ENTQ.js +0 -150
  186. package/dist/cli/code-X3M6ENTQ.js.map +0 -1
  187. package/dist/cli/desktop-ZTMHQR2Y.js.map +0 -1
  188. package/dist/cli/diff-YASCB7PU.js +0 -153
  189. package/dist/cli/doctor-XCN5ETVP.js +0 -24
  190. package/dist/cli/mcp-inspect-H4D2HSJP.js.map +0 -1
  191. package/dist/cli/prompt-RSIHN62V.js +0 -14
  192. package/dist/cli/run-BLZPTRDX.js.map +0 -1
  193. package/dist/cli/server-DRFPXXSH.js.map +0 -1
  194. package/dist/cli/sessions-BOWFPTXT.js.map +0 -1
  195. package/dist/cli/setup-FQL2JJC2.js +0 -516
  196. package/dist/cli/setup-FQL2JJC2.js.map +0 -1
  197. package/dist/cli/stats-5RJCATCE.js +0 -12
  198. package/dist/cli/stats-5RJCATCE.js.map +0 -1
  199. package/dist/cli/update-GUCWB4UN.js +0 -13
  200. package/dist/cli/update-GUCWB4UN.js.map +0 -1
  201. package/dist/cli/version-XQXYSJ5L.js +0 -30
  202. /package/dist/cli/{.-3G6VX5S7.js.map → chat-TH7VNNCJ.js.map} +0 -0
  203. /package/dist/cli/{.-6YRPB2C7.js.map → chunk-TUK7OWJA.js.map} +0 -0
  204. /package/dist/cli/{.-EYSVINK3.js.map → doctor-CC5CLOGG.js.map} +0 -0
  205. /package/dist/cli/{chat-ZAGX52RV.js.map → prompt-2D7ID24X.js.map} +0 -0
  206. /package/dist/cli/{doctor-XCN5ETVP.js.map → stats-DPUBZNVX.js.map} +0 -0
  207. /package/dist/cli/{prompt-RSIHN62V.js.map → update-6ITLPRDV.js.map} +0 -0
@@ -1,48 +1,50 @@
1
1
  #!/usr/bin/env node
2
- import {
3
- registerSemanticSearchTool
4
- } from "./chunk-RAUPWSYA.js";
2
+ import { createRequire as __cr } from 'node:module'; if (typeof globalThis.require === 'undefined') { globalThis.require = __cr(import.meta.url); }
5
3
  import {
6
4
  readEventLogFile,
7
5
  recentEventFiles
8
- } from "./chunk-FWGEHRB7.js";
6
+ } from "./chunk-J5XJHLWM.js";
9
7
  import {
10
8
  SLASH_COMMANDS,
11
9
  createCheckpoint,
12
10
  deleteCheckpoint,
13
11
  fmtAgo,
12
+ listAllPlanArchives,
14
13
  listCheckpoints,
15
- listPlanArchives,
16
14
  loadCheckpoint,
17
15
  restoreCheckpoint
18
- } from "./chunk-A3LL4XDV.js";
16
+ } from "./chunk-KLQTAZIY.js";
17
+ import "./chunk-4QUNBQQ2.js";
19
18
  import {
20
19
  fetchSmitheryDetail,
21
20
  handleToFetchResult,
22
21
  loadMorePages,
23
22
  openRegistry,
24
23
  specStringFor
25
- } from "./chunk-SOZE7V7V.js";
26
- import "./chunk-7VFNPMKG.js";
24
+ } from "./chunk-XJXDHAES.js";
25
+ import {
26
+ registerSemanticSearchTool
27
+ } from "./chunk-MJ6W5UN3.js";
27
28
  import {
28
29
  BUILTIN_ALLOWLIST,
29
30
  lineDiff
30
- } from "./chunk-BYZGO3BX.js";
31
+ } from "./chunk-RDRC3XDT.js";
31
32
  import {
32
33
  PROJECT_MEMORY_FILE,
33
34
  SKILLS_DIRNAME,
34
35
  SKILL_FILE,
36
+ SkillStore,
35
37
  findProjectMemoryPath,
36
38
  parseFrontmatter,
37
39
  resolveProjectMemoryWritePath,
38
40
  validateSkillFrontmatter
39
- } from "./chunk-CD4SCQL4.js";
40
- import "./chunk-FM57FNPJ.js";
41
+ } from "./chunk-TEUDEGX2.js";
42
+ import "./chunk-PLHAZOLZ.js";
41
43
  import {
42
44
  checkOllamaStatus,
43
45
  pullOllamaModel,
44
46
  startOllamaDaemon
45
- } from "./chunk-2CXPDAWX.js";
47
+ } from "./chunk-LIR2HBQH.js";
46
48
  import {
47
49
  INDEX_DIR_NAME,
48
50
  buildIndex,
@@ -51,24 +53,34 @@ import {
51
53
  querySemantic,
52
54
  readIndexMeta,
53
55
  walkChunks
54
- } from "./chunk-4H3ZRJ2U.js";
56
+ } from "./chunk-4CTDEJUF.js";
55
57
  import {
56
58
  HOOK_EVENTS,
57
59
  globalSettingsPath,
58
60
  loadHooks,
59
61
  projectSettingsPath
60
- } from "./chunk-WE3YZULK.js";
61
- import "./chunk-5X7LZJDE.js";
62
+ } from "./chunk-7CIGMZT3.js";
63
+ import "./chunk-S4XVGLRW.js";
62
64
  import {
63
65
  listSessions,
64
66
  sessionPath,
65
67
  sessionsDir
66
- } from "./chunk-YJFKFTAL.js";
68
+ } from "./chunk-6PBZN4VI.js";
69
+ import {
70
+ aggregateUsage,
71
+ bucketCacheHitRatio,
72
+ formatLogSize,
73
+ readUsageLog
74
+ } from "./chunk-R3CTO2HM.js";
75
+ import {
76
+ DEEPSEEK_PRICING,
77
+ cacheSavingsUsd
78
+ } from "./chunk-ZZYBBX5N.js";
67
79
  import {
68
80
  getLanguage,
69
81
  getSupportedLanguages,
70
82
  setLanguage
71
- } from "./chunk-MHGPBJ2T.js";
83
+ } from "./chunk-CGDR2ELH.js";
72
84
  import {
73
85
  DEFAULT_INDEX_EXCLUDES,
74
86
  DEFAULT_MAX_FILE_BYTES,
@@ -79,7 +91,10 @@ import {
79
91
  loadIndexConfig,
80
92
  loadIndexUserConfig,
81
93
  loadProjectShellAllowed,
94
+ loadResolvedSkillPaths,
82
95
  loadSemanticEmbeddingUserConfig,
96
+ normalizeSkillPathEntries,
97
+ normalizeSkillPaths,
83
98
  readConfig,
84
99
  redactKey,
85
100
  redactSemanticEmbeddingConfig,
@@ -88,20 +103,11 @@ import {
88
103
  resolveSemanticEmbeddingConfig,
89
104
  saveSemanticEmbeddingConfig,
90
105
  writeConfig
91
- } from "./chunk-65Q5HQ26.js";
92
- import {
93
- aggregateUsage,
94
- bucketCacheHitRatio,
95
- formatLogSize,
96
- readUsageLog
97
- } from "./chunk-ZTLZO42A.js";
98
- import {
99
- DEEPSEEK_PRICING,
100
- cacheSavingsUsd
101
- } from "./chunk-ORM6PK57.js";
106
+ } from "./chunk-AVFXO2EZ.js";
102
107
  import {
103
108
  VERSION
104
- } from "./chunk-CRPQUBP6.js";
109
+ } from "./chunk-XXC2BYTV.js";
110
+ import "./chunk-TUK7OWJA.js";
105
111
 
106
112
  // src/server/index.ts
107
113
  import { randomBytes } from "crypto";
@@ -268,8 +274,13 @@ async function handleCheckpointCreate(method, _rest, body, ctx) {
268
274
  let paths;
269
275
  try {
270
276
  const { execSync: execSync2 } = await import("child_process");
277
+ const env = { ...process.env };
278
+ for (const k of Object.keys(env)) {
279
+ if (k.startsWith("GIT_")) delete env[k];
280
+ }
271
281
  const stdout = execSync2("git ls-files --cached --others --exclude-standard", {
272
282
  cwd: rootDir,
283
+ env,
273
284
  encoding: "utf8",
274
285
  maxBuffer: 10 * 1024 * 1024
275
286
  });
@@ -1162,7 +1173,7 @@ function findRegistryEntry(entries, name) {
1162
1173
  }
1163
1174
  async function handleMcp(method, rest, body, ctx, query = new URLSearchParams()) {
1164
1175
  if (method === "GET" && rest.length === 0) {
1165
- const servers = (ctx.mcpServers ?? []).map((s) => ({
1176
+ const servers = (ctx.getMcpServers?.() ?? []).map((s) => ({
1166
1177
  label: s.label,
1167
1178
  spec: s.spec,
1168
1179
  toolCount: s.toolCount,
@@ -1969,7 +1980,7 @@ async function handleOverview(method, _rest, _body, ctx) {
1969
1980
  editMode: ctx.getEditMode?.() ?? null,
1970
1981
  planMode: ctx.getPlanMode?.() ?? null,
1971
1982
  pendingEdits: ctx.getPendingEditCount?.() ?? null,
1972
- mcpServerCount: ctx.mcpServers?.length ?? null,
1983
+ mcpServerCount: ctx.getMcpServers?.().length ?? null,
1973
1984
  toolCount: ctx.tools ? ctx.tools.size : null,
1974
1985
  preset: cfg.preset ?? "auto",
1975
1986
  reasoningEffort: cfg.reasoningEffort ?? "max",
@@ -2091,27 +2102,22 @@ async function handlePlans(method, _rest, _body, _ctx) {
2091
2102
  if (method !== "GET") {
2092
2103
  return { status: 405, body: { error: "GET only" } };
2093
2104
  }
2094
- const out = [];
2095
- for (const session of listSessions()) {
2096
- const archives = listPlanArchives(session.name);
2097
- for (const a of archives) {
2098
- const total = a.steps.length;
2099
- const done = a.completedStepIds.length;
2100
- const row = {
2101
- session: session.name,
2102
- path: a.path,
2103
- completedAt: a.completedAt,
2104
- totalSteps: total,
2105
- completedSteps: done,
2106
- completionRatio: total > 0 ? done / total : 0,
2107
- steps: a.steps,
2108
- completedStepIds: a.completedStepIds
2109
- };
2110
- if (a.summary) row.summary = a.summary;
2111
- out.push(row);
2112
- }
2113
- }
2114
- out.sort((a, b) => b.completedAt.localeCompare(a.completedAt));
2105
+ const out = listAllPlanArchives().map((a) => {
2106
+ const total = a.steps.length;
2107
+ const done = a.completedStepIds.length;
2108
+ const row = {
2109
+ session: a.sessionName,
2110
+ path: a.path,
2111
+ completedAt: a.completedAt,
2112
+ totalSteps: total,
2113
+ completedSteps: done,
2114
+ completionRatio: total > 0 ? done / total : 0,
2115
+ steps: a.steps,
2116
+ completedStepIds: a.completedStepIds
2117
+ };
2118
+ if (a.summary) row.summary = a.summary;
2119
+ return row;
2120
+ });
2115
2121
  return { status: 200, body: { plans: out } };
2116
2122
  }
2117
2123
 
@@ -2740,6 +2746,14 @@ async function handleSettings(method, _rest, body, ctx) {
2740
2746
  proNext: live?.proArmed ?? false,
2741
2747
  budgetUsd: live?.budgetUsd ?? null,
2742
2748
  sessionSpendUsd: ctx.getStats?.()?.totalCostUsd ?? null,
2749
+ skillPaths: normalizeSkillPaths(
2750
+ cfg.skills?.paths ?? [],
2751
+ ctx.getCurrentCwd?.() ?? process.cwd()
2752
+ ),
2753
+ skillPathEntries: normalizeSkillPathEntries(
2754
+ cfg.skills?.paths ?? [],
2755
+ ctx.getCurrentCwd?.() ?? process.cwd()
2756
+ ),
2743
2757
  // Hint to the SPA which fields require restart.
2744
2758
  appliesAt: {
2745
2759
  apiKey: "next-session",
@@ -2749,7 +2763,8 @@ async function handleSettings(method, _rest, body, ctx) {
2749
2763
  search: "next-session",
2750
2764
  model: "next-turn",
2751
2765
  proNext: "next-turn",
2752
- budgetUsd: "live"
2766
+ budgetUsd: "live",
2767
+ skillPaths: "next-session"
2753
2768
  }
2754
2769
  }
2755
2770
  };
@@ -2839,6 +2854,17 @@ async function handleSettings(method, _rest, body, ctx) {
2839
2854
  }
2840
2855
  changed.push("budgetUsd");
2841
2856
  }
2857
+ if (fields.skillPaths !== void 0) {
2858
+ const raw = Array.isArray(fields.skillPaths) ? fields.skillPaths : typeof fields.skillPaths === "string" ? fields.skillPaths.split(",") : null;
2859
+ if (!raw) {
2860
+ return { status: 400, body: { error: "skillPaths must be a string or string[]" } };
2861
+ }
2862
+ cfg.skills = {
2863
+ ...cfg.skills ?? {},
2864
+ paths: normalizeSkillPaths(raw, ctx.getCurrentCwd?.() ?? process.cwd())
2865
+ };
2866
+ changed.push("skillPaths");
2867
+ }
2842
2868
  if (changed.length > 0) {
2843
2869
  writeConfig(cfg, ctx.configPath);
2844
2870
  if (langPending) setLanguage(langPending);
@@ -2980,10 +3006,16 @@ async function handleSkills(method, rest, body, ctx) {
2980
3006
  if (method === "GET" && rest.length === 0) {
2981
3007
  const runs7d = countSubagentRuns(ctx.usageLogPath);
2982
3008
  const tag = (rows) => rows.map((r) => ({ ...r, runs7d: runs7d.get(r.name) ?? 0 }));
3009
+ const store = new SkillStore({
3010
+ projectRoot: cwd,
3011
+ customSkillPaths: loadResolvedSkillPaths(cwd ?? process.cwd(), ctx.configPath)
3012
+ });
3013
+ const customRoots = store.customRoots();
2983
3014
  return {
2984
3015
  status: 200,
2985
3016
  body: {
2986
3017
  global: tag(listSkills(globalSkillsDir(), "global")),
3018
+ custom: tag(customRoots.flatMap((root) => listSkills(root.dir, "custom"))),
2987
3019
  project: cwd ? tag(listSkills(projectSkillsDir(cwd), "project")) : [],
2988
3020
  builtin: [
2989
3021
  {
@@ -3001,7 +3033,8 @@ async function handleSkills(method, rest, body, ctx) {
3001
3033
  ],
3002
3034
  paths: {
3003
3035
  global: globalSkillsDir(),
3004
- project: cwd ? projectSkillsDir(cwd) : null
3036
+ project: cwd ? projectSkillsDir(cwd) : null,
3037
+ custom: customRoots
3005
3038
  }
3006
3039
  }
3007
3040
  };
@@ -3303,6 +3336,7 @@ async function handleApi(pathTail, method, body, ctx, query = new URLSearchParam
3303
3336
  }
3304
3337
 
3305
3338
  // src/server/index.ts
3339
+ var LOOPBACK_HOSTS = /* @__PURE__ */ new Set(["127.0.0.1", "::1", "localhost"]);
3306
3340
  function mintToken() {
3307
3341
  return randomBytes(32).toString("hex");
3308
3342
  }
@@ -3442,6 +3476,12 @@ function startDashboardServer(ctx, opts = {}) {
3442
3476
  const addr = server.address();
3443
3477
  const finalPort = addr.port;
3444
3478
  const url = `http://${host}:${finalPort}/?token=${token}`;
3479
+ if (!LOOPBACK_HOSTS.has(host)) {
3480
+ process.stderr.write(
3481
+ `\u25B2 Dashboard bound to ${host}:${finalPort} (non-loopback). The URL token is the only auth \u2014 keep it secret.
3482
+ `
3483
+ );
3484
+ }
3445
3485
  let closed = false;
3446
3486
  const close = () => new Promise((doneResolve) => {
3447
3487
  if (closed) return doneResolve();
@@ -3460,4 +3500,4 @@ export {
3460
3500
  readBody,
3461
3501
  startDashboardServer
3462
3502
  };
3463
- //# sourceMappingURL=server-DRFPXXSH.js.map
3503
+ //# sourceMappingURL=server-27ARQXIZ.js.map