@prestyj/cli 5.8.0 → 5.10.0

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 (469) hide show
  1. package/README.md +1 -1
  2. package/assets/skills/evidence-led-ui/LICENSES.md +12 -0
  3. package/assets/skills/evidence-led-ui/SKILL.md +15 -7
  4. package/assets/skills/evidence-led-ui/references/anti-defaults.md +9 -1
  5. package/assets/skills/evidence-led-ui/references/craft-rulings.md +33 -0
  6. package/assets/skills/evidence-led-ui/references/production-contract.md +41 -21
  7. package/assets/skills/evidence-led-ui/references/provenance.md +7 -5
  8. package/assets/skills/evidence-led-ui/references/quality-rubric.md +10 -10
  9. package/dist/app-sidecar-sessions.d.ts +8 -0
  10. package/dist/app-sidecar-sessions.d.ts.map +1 -0
  11. package/dist/app-sidecar-sessions.js +31 -0
  12. package/dist/app-sidecar-sessions.js.map +1 -0
  13. package/dist/app-sidecar-sessions.test.d.ts +2 -0
  14. package/dist/app-sidecar-sessions.test.d.ts.map +1 -0
  15. package/dist/app-sidecar-sessions.test.js +83 -0
  16. package/dist/app-sidecar-sessions.test.js.map +1 -0
  17. package/dist/app-sidecar.js +623 -120
  18. package/dist/app-sidecar.js.map +1 -1
  19. package/dist/chat-agents/general.test.js +5 -3
  20. package/dist/chat-agents/general.test.js.map +1 -1
  21. package/dist/chat-agents/memory.d.ts.map +1 -1
  22. package/dist/chat-agents/memory.js +14 -5
  23. package/dist/chat-agents/memory.js.map +1 -1
  24. package/dist/chat-agents/memory.test.js +11 -1
  25. package/dist/chat-agents/memory.test.js.map +1 -1
  26. package/dist/chat-agents/shared.js +1 -1
  27. package/dist/chat-agents/shared.js.map +1 -1
  28. package/dist/chat-agents/specialists.test.js +3 -2
  29. package/dist/chat-agents/specialists.test.js.map +1 -1
  30. package/dist/cli.d.ts.map +1 -1
  31. package/dist/cli.js +59 -30
  32. package/dist/cli.js.map +1 -1
  33. package/dist/config.d.ts +18 -0
  34. package/dist/config.d.ts.map +1 -1
  35. package/dist/config.js +50 -2
  36. package/dist/config.js.map +1 -1
  37. package/dist/config.test.js +61 -1
  38. package/dist/config.test.js.map +1 -1
  39. package/dist/core/agent-mcp-passthrough.test.d.ts +2 -0
  40. package/dist/core/agent-mcp-passthrough.test.d.ts.map +1 -0
  41. package/dist/core/agent-mcp-passthrough.test.js +61 -0
  42. package/dist/core/agent-mcp-passthrough.test.js.map +1 -0
  43. package/dist/core/agent-session-add-dir.test.d.ts +2 -0
  44. package/dist/core/agent-session-add-dir.test.d.ts.map +1 -0
  45. package/dist/core/agent-session-add-dir.test.js +110 -0
  46. package/dist/core/agent-session-add-dir.test.js.map +1 -0
  47. package/dist/core/agent-session-compaction.test.js +23 -7
  48. package/dist/core/agent-session-compaction.test.js.map +1 -1
  49. package/dist/core/agent-session-marker-anchors.test.d.ts +2 -0
  50. package/dist/core/agent-session-marker-anchors.test.d.ts.map +1 -0
  51. package/dist/core/agent-session-marker-anchors.test.js +147 -0
  52. package/dist/core/agent-session-marker-anchors.test.js.map +1 -0
  53. package/dist/core/agent-session-memory-tail.test.js +4 -7
  54. package/dist/core/agent-session-memory-tail.test.js.map +1 -1
  55. package/dist/core/agent-session-queue.test.js +4 -7
  56. package/dist/core/agent-session-queue.test.js.map +1 -1
  57. package/dist/core/agent-session-subagent-policy.test.js +7 -3
  58. package/dist/core/agent-session-subagent-policy.test.js.map +1 -1
  59. package/dist/core/agent-session.d.ts +46 -0
  60. package/dist/core/agent-session.d.ts.map +1 -1
  61. package/dist/core/agent-session.js +177 -19
  62. package/dist/core/agent-session.js.map +1 -1
  63. package/dist/core/agent-tools-allowlist.test.js +5 -3
  64. package/dist/core/agent-tools-allowlist.test.js.map +1 -1
  65. package/dist/core/agents.d.ts +12 -1
  66. package/dist/core/agents.d.ts.map +1 -1
  67. package/dist/core/agents.js +25 -1
  68. package/dist/core/agents.js.map +1 -1
  69. package/dist/core/agents.test.d.ts +2 -0
  70. package/dist/core/agents.test.d.ts.map +1 -0
  71. package/dist/core/agents.test.js +67 -0
  72. package/dist/core/agents.test.js.map +1 -0
  73. package/dist/core/auth-providers.js +1 -1
  74. package/dist/core/auth-providers.js.map +1 -1
  75. package/dist/core/auth-storage.d.ts +1 -1
  76. package/dist/core/auth-storage.d.ts.map +1 -1
  77. package/dist/core/auth-storage.js +1 -1
  78. package/dist/core/auth-storage.js.map +1 -1
  79. package/dist/core/compaction/compactor.d.ts.map +1 -1
  80. package/dist/core/compaction/compactor.js +20 -11
  81. package/dist/core/compaction/compactor.js.map +1 -1
  82. package/dist/core/compaction/compactor.test.js +17 -4
  83. package/dist/core/compaction/compactor.test.js.map +1 -1
  84. package/dist/core/compaction/token-estimator.test.js +1 -1
  85. package/dist/core/compaction/token-estimator.test.js.map +1 -1
  86. package/dist/core/encode-cwd.d.ts +17 -0
  87. package/dist/core/encode-cwd.d.ts.map +1 -1
  88. package/dist/core/encode-cwd.js +20 -7
  89. package/dist/core/encode-cwd.js.map +1 -1
  90. package/dist/core/encode-cwd.test.js +20 -1
  91. package/dist/core/encode-cwd.test.js.map +1 -1
  92. package/dist/core/event-bus.d.ts +5 -0
  93. package/dist/core/event-bus.d.ts.map +1 -1
  94. package/dist/core/event-bus.js +6 -0
  95. package/dist/core/event-bus.js.map +1 -1
  96. package/dist/core/goal-controller.test.js +3 -3
  97. package/dist/core/goal-controller.test.js.map +1 -1
  98. package/dist/core/ideal-review.d.ts.map +1 -1
  99. package/dist/core/ideal-review.js +6 -1
  100. package/dist/core/ideal-review.js.map +1 -1
  101. package/dist/core/ideal-review.test.js +7 -2
  102. package/dist/core/ideal-review.test.js.map +1 -1
  103. package/dist/core/index.d.ts +2 -2
  104. package/dist/core/index.d.ts.map +1 -1
  105. package/dist/core/index.js +2 -2
  106. package/dist/core/index.js.map +1 -1
  107. package/dist/core/input-normalization.test.d.ts +2 -0
  108. package/dist/core/input-normalization.test.d.ts.map +1 -0
  109. package/dist/core/input-normalization.test.js +75 -0
  110. package/dist/core/input-normalization.test.js.map +1 -0
  111. package/dist/core/local-endpoint-store.d.ts +50 -0
  112. package/dist/core/local-endpoint-store.d.ts.map +1 -0
  113. package/dist/core/local-endpoint-store.js +201 -0
  114. package/dist/core/local-endpoint-store.js.map +1 -0
  115. package/dist/core/local-endpoint-store.test.d.ts +2 -0
  116. package/dist/core/local-endpoint-store.test.d.ts.map +1 -0
  117. package/dist/core/local-endpoint-store.test.js +131 -0
  118. package/dist/core/local-endpoint-store.test.js.map +1 -0
  119. package/dist/core/loop-breaker.d.ts +38 -1
  120. package/dist/core/loop-breaker.d.ts.map +1 -1
  121. package/dist/core/loop-breaker.js +84 -2
  122. package/dist/core/loop-breaker.js.map +1 -1
  123. package/dist/core/loop-breaker.test.js +108 -1
  124. package/dist/core/loop-breaker.test.js.map +1 -1
  125. package/dist/core/lsp/client.d.ts +50 -0
  126. package/dist/core/lsp/client.d.ts.map +1 -1
  127. package/dist/core/lsp/client.js +158 -13
  128. package/dist/core/lsp/client.js.map +1 -1
  129. package/dist/core/lsp/jsonrpc.d.ts +38 -1
  130. package/dist/core/lsp/jsonrpc.d.ts.map +1 -1
  131. package/dist/core/lsp/jsonrpc.js +13 -1
  132. package/dist/core/lsp/jsonrpc.js.map +1 -1
  133. package/dist/core/lsp/manager.d.ts.map +1 -1
  134. package/dist/core/lsp/manager.js +23 -2
  135. package/dist/core/lsp/manager.js.map +1 -1
  136. package/dist/core/lsp/manager.test.js +32 -1
  137. package/dist/core/lsp/manager.test.js.map +1 -1
  138. package/dist/core/lsp/test-support.d.ts +18 -0
  139. package/dist/core/lsp/test-support.d.ts.map +1 -0
  140. package/dist/core/lsp/test-support.js +27 -0
  141. package/dist/core/lsp/test-support.js.map +1 -0
  142. package/dist/core/lsp/uri.test.d.ts +2 -0
  143. package/dist/core/lsp/uri.test.d.ts.map +1 -0
  144. package/dist/core/lsp/uri.test.js +56 -0
  145. package/dist/core/lsp/uri.test.js.map +1 -0
  146. package/dist/core/lsp/windows.test.d.ts +2 -0
  147. package/dist/core/lsp/windows.test.d.ts.map +1 -0
  148. package/dist/core/lsp/windows.test.js +251 -0
  149. package/dist/core/lsp/windows.test.js.map +1 -0
  150. package/dist/core/mcp/resolve-stdio.d.ts +35 -0
  151. package/dist/core/mcp/resolve-stdio.d.ts.map +1 -1
  152. package/dist/core/mcp/resolve-stdio.js +80 -1
  153. package/dist/core/mcp/resolve-stdio.js.map +1 -1
  154. package/dist/core/mcp/resolve-stdio.test.js +99 -4
  155. package/dist/core/mcp/resolve-stdio.test.js.map +1 -1
  156. package/dist/core/message-images.d.ts +12 -0
  157. package/dist/core/message-images.d.ts.map +1 -0
  158. package/dist/core/message-images.js +52 -0
  159. package/dist/core/message-images.js.map +1 -0
  160. package/dist/core/message-images.test.d.ts +2 -0
  161. package/dist/core/message-images.test.d.ts.map +1 -0
  162. package/dist/core/message-images.test.js +62 -0
  163. package/dist/core/message-images.test.js.map +1 -0
  164. package/dist/core/network-guard.d.ts +47 -0
  165. package/dist/core/network-guard.d.ts.map +1 -0
  166. package/dist/core/network-guard.js +208 -0
  167. package/dist/core/network-guard.js.map +1 -0
  168. package/dist/core/network-guard.test.d.ts +2 -0
  169. package/dist/core/network-guard.test.d.ts.map +1 -0
  170. package/dist/core/network-guard.test.js +72 -0
  171. package/dist/core/network-guard.test.js.map +1 -0
  172. package/dist/core/persistent-shell.d.ts +3 -1
  173. package/dist/core/persistent-shell.d.ts.map +1 -1
  174. package/dist/core/persistent-shell.js +13 -3
  175. package/dist/core/persistent-shell.js.map +1 -1
  176. package/dist/core/process-manager-dev-server-repro.test.js +34 -12
  177. package/dist/core/process-manager-dev-server-repro.test.js.map +1 -1
  178. package/dist/core/process-manager.d.ts +1 -1
  179. package/dist/core/process-manager.d.ts.map +1 -1
  180. package/dist/core/process-manager.js +23 -13
  181. package/dist/core/process-manager.js.map +1 -1
  182. package/dist/core/project-discovery.d.ts +8 -1
  183. package/dist/core/project-discovery.d.ts.map +1 -1
  184. package/dist/core/project-discovery.js +145 -62
  185. package/dist/core/project-discovery.js.map +1 -1
  186. package/dist/core/project-discovery.test.js +131 -1
  187. package/dist/core/project-discovery.test.js.map +1 -1
  188. package/dist/core/prompt-commands.d.ts.map +1 -1
  189. package/dist/core/prompt-commands.js +89 -156
  190. package/dist/core/prompt-commands.js.map +1 -1
  191. package/dist/core/prompt-commands.test.js +4 -10
  192. package/dist/core/prompt-commands.test.js.map +1 -1
  193. package/dist/core/radio.test.js +4 -1
  194. package/dist/core/radio.test.js.map +1 -1
  195. package/dist/core/runtime-mode.d.ts +2 -0
  196. package/dist/core/runtime-mode.d.ts.map +1 -1
  197. package/dist/core/runtime-mode.js +4 -0
  198. package/dist/core/runtime-mode.js.map +1 -1
  199. package/dist/core/session-export.d.ts +98 -0
  200. package/dist/core/session-export.d.ts.map +1 -0
  201. package/dist/core/session-export.js +356 -0
  202. package/dist/core/session-export.js.map +1 -0
  203. package/dist/core/session-export.test.d.ts +2 -0
  204. package/dist/core/session-export.test.d.ts.map +1 -0
  205. package/dist/core/session-export.test.js +353 -0
  206. package/dist/core/session-export.test.js.map +1 -0
  207. package/dist/core/session-manager.d.ts +27 -7
  208. package/dist/core/session-manager.d.ts.map +1 -1
  209. package/dist/core/session-manager.js +257 -124
  210. package/dist/core/session-manager.js.map +1 -1
  211. package/dist/core/session-storage.d.ts +57 -0
  212. package/dist/core/session-storage.d.ts.map +1 -0
  213. package/dist/core/session-storage.js +592 -0
  214. package/dist/core/session-storage.js.map +1 -0
  215. package/dist/core/session-storage.test.d.ts +2 -0
  216. package/dist/core/session-storage.test.d.ts.map +1 -0
  217. package/dist/core/session-storage.test.js +272 -0
  218. package/dist/core/session-storage.test.js.map +1 -0
  219. package/dist/core/settings-manager.d.ts +7 -0
  220. package/dist/core/settings-manager.d.ts.map +1 -1
  221. package/dist/core/settings-manager.js +17 -0
  222. package/dist/core/settings-manager.js.map +1 -1
  223. package/dist/core/setup-history.d.ts +0 -6
  224. package/dist/core/setup-history.d.ts.map +1 -1
  225. package/dist/core/setup-history.js +2 -18
  226. package/dist/core/setup-history.js.map +1 -1
  227. package/dist/core/setup-history.test.js +11 -26
  228. package/dist/core/setup-history.test.js.map +1 -1
  229. package/dist/core/sidecar-error-reporter.d.ts +12 -0
  230. package/dist/core/sidecar-error-reporter.d.ts.map +1 -0
  231. package/dist/core/sidecar-error-reporter.js +57 -0
  232. package/dist/core/sidecar-error-reporter.js.map +1 -0
  233. package/dist/core/sidecar-error-reporter.test.d.ts +2 -0
  234. package/dist/core/sidecar-error-reporter.test.d.ts.map +1 -0
  235. package/dist/core/sidecar-error-reporter.test.js +61 -0
  236. package/dist/core/sidecar-error-reporter.test.js.map +1 -0
  237. package/dist/core/skills-routing.test.js +3 -1
  238. package/dist/core/skills-routing.test.js.map +1 -1
  239. package/dist/core/skills.d.ts +1 -1
  240. package/dist/core/skills.d.ts.map +1 -1
  241. package/dist/core/skills.js +4 -1
  242. package/dist/core/skills.js.map +1 -1
  243. package/dist/core/slash-commands.d.ts +18 -0
  244. package/dist/core/slash-commands.d.ts.map +1 -1
  245. package/dist/core/slash-commands.js +42 -10
  246. package/dist/core/slash-commands.js.map +1 -1
  247. package/dist/core/slash-commands.test.d.ts +2 -0
  248. package/dist/core/slash-commands.test.d.ts.map +1 -0
  249. package/dist/core/slash-commands.test.js +59 -0
  250. package/dist/core/slash-commands.test.js.map +1 -0
  251. package/dist/core/speed-benchmark.test.js +9 -3
  252. package/dist/core/speed-benchmark.test.js.map +1 -1
  253. package/dist/core/subagent-manager.d.ts +8 -1
  254. package/dist/core/subagent-manager.d.ts.map +1 -1
  255. package/dist/core/subagent-manager.js +35 -2
  256. package/dist/core/subagent-manager.js.map +1 -1
  257. package/dist/core/subagent-manager.test.js +34 -0
  258. package/dist/core/subagent-manager.test.js.map +1 -1
  259. package/dist/core/subagent-store.test.js +14 -2
  260. package/dist/core/subagent-store.test.js.map +1 -1
  261. package/dist/core/verify-commands.d.ts.map +1 -1
  262. package/dist/core/verify-commands.js +1 -6
  263. package/dist/core/verify-commands.js.map +1 -1
  264. package/dist/core/verify-commands.test.js +1 -5
  265. package/dist/core/verify-commands.test.js.map +1 -1
  266. package/dist/core/workspace-guard.d.ts +40 -0
  267. package/dist/core/workspace-guard.d.ts.map +1 -0
  268. package/dist/core/workspace-guard.js +115 -0
  269. package/dist/core/workspace-guard.js.map +1 -0
  270. package/dist/core/workspace-guard.test.d.ts +2 -0
  271. package/dist/core/workspace-guard.test.d.ts.map +1 -0
  272. package/dist/core/workspace-guard.test.js +107 -0
  273. package/dist/core/workspace-guard.test.js.map +1 -0
  274. package/dist/index.d.ts +1 -1
  275. package/dist/index.d.ts.map +1 -1
  276. package/dist/index.js +1 -1
  277. package/dist/index.js.map +1 -1
  278. package/dist/modes/json-mode.d.ts +7 -0
  279. package/dist/modes/json-mode.d.ts.map +1 -1
  280. package/dist/modes/json-mode.js +10 -0
  281. package/dist/modes/json-mode.js.map +1 -1
  282. package/dist/modes/subagent-worker-mode.d.ts +2 -0
  283. package/dist/modes/subagent-worker-mode.d.ts.map +1 -1
  284. package/dist/modes/subagent-worker-mode.js +11 -0
  285. package/dist/modes/subagent-worker-mode.js.map +1 -1
  286. package/dist/session.d.ts +4 -4
  287. package/dist/session.d.ts.map +1 -1
  288. package/dist/session.js +38 -101
  289. package/dist/session.js.map +1 -1
  290. package/dist/session.test.d.ts +2 -0
  291. package/dist/session.test.d.ts.map +1 -0
  292. package/dist/session.test.js +35 -0
  293. package/dist/session.test.js.map +1 -0
  294. package/dist/system-prompt.d.ts +23 -1
  295. package/dist/system-prompt.d.ts.map +1 -1
  296. package/dist/system-prompt.js +119 -31
  297. package/dist/system-prompt.js.map +1 -1
  298. package/dist/system-prompt.test.js +154 -14
  299. package/dist/system-prompt.test.js.map +1 -1
  300. package/dist/test-support/fake-home.d.ts +20 -0
  301. package/dist/test-support/fake-home.d.ts.map +1 -0
  302. package/dist/test-support/fake-home.js +37 -0
  303. package/dist/test-support/fake-home.js.map +1 -0
  304. package/dist/tools/bash.d.ts +4 -2
  305. package/dist/tools/bash.d.ts.map +1 -1
  306. package/dist/tools/bash.js +57 -9
  307. package/dist/tools/bash.js.map +1 -1
  308. package/dist/tools/bash.test.js +156 -8
  309. package/dist/tools/bash.test.js.map +1 -1
  310. package/dist/tools/edit-robustness.test.js +3 -1
  311. package/dist/tools/edit-robustness.test.js.map +1 -1
  312. package/dist/tools/edit.d.ts +2 -1
  313. package/dist/tools/edit.d.ts.map +1 -1
  314. package/dist/tools/edit.js +7 -1
  315. package/dist/tools/edit.js.map +1 -1
  316. package/dist/tools/edit.test.js +7 -0
  317. package/dist/tools/edit.test.js.map +1 -1
  318. package/dist/tools/exit-plan.d.ts.map +1 -1
  319. package/dist/tools/exit-plan.js +15 -4
  320. package/dist/tools/exit-plan.js.map +1 -1
  321. package/dist/tools/exit-plan.test.d.ts +2 -0
  322. package/dist/tools/exit-plan.test.d.ts.map +1 -0
  323. package/dist/tools/exit-plan.test.js +72 -0
  324. package/dist/tools/exit-plan.test.js.map +1 -0
  325. package/dist/tools/find.d.ts.map +1 -1
  326. package/dist/tools/find.js +4 -1
  327. package/dist/tools/find.js.map +1 -1
  328. package/dist/tools/grep.d.ts +3 -1
  329. package/dist/tools/grep.d.ts.map +1 -1
  330. package/dist/tools/grep.js +143 -14
  331. package/dist/tools/grep.js.map +1 -1
  332. package/dist/tools/grep.test.js +59 -0
  333. package/dist/tools/grep.test.js.map +1 -1
  334. package/dist/tools/index.d.ts +14 -0
  335. package/dist/tools/index.d.ts.map +1 -1
  336. package/dist/tools/index.js +6 -5
  337. package/dist/tools/index.js.map +1 -1
  338. package/dist/tools/overflow.test.js +4 -7
  339. package/dist/tools/overflow.test.js.map +1 -1
  340. package/dist/tools/path-utils.d.ts +15 -0
  341. package/dist/tools/path-utils.d.ts.map +1 -1
  342. package/dist/tools/path-utils.js +17 -0
  343. package/dist/tools/path-utils.js.map +1 -1
  344. package/dist/tools/path-utils.test.js +7 -2
  345. package/dist/tools/path-utils.test.js.map +1 -1
  346. package/dist/tools/prompt-hints.js +1 -1
  347. package/dist/tools/prompt-hints.js.map +1 -1
  348. package/dist/tools/screenshot.js +1 -1
  349. package/dist/tools/screenshot.js.map +1 -1
  350. package/dist/tools/search-code.d.ts.map +1 -1
  351. package/dist/tools/search-code.js +6 -4
  352. package/dist/tools/search-code.js.map +1 -1
  353. package/dist/tools/skill.d.ts.map +1 -1
  354. package/dist/tools/skill.js +4 -2
  355. package/dist/tools/skill.js.map +1 -1
  356. package/dist/tools/source-path.d.ts.map +1 -1
  357. package/dist/tools/source-path.js +9 -0
  358. package/dist/tools/source-path.js.map +1 -1
  359. package/dist/tools/subagent-shared.d.ts +1 -1
  360. package/dist/tools/subagent-shared.d.ts.map +1 -1
  361. package/dist/tools/subagent-shared.js +4 -1
  362. package/dist/tools/subagent-shared.js.map +1 -1
  363. package/dist/tools/subagent-shared.test.js +21 -1
  364. package/dist/tools/subagent-shared.test.js.map +1 -1
  365. package/dist/tools/subagent.d.ts +1 -1
  366. package/dist/tools/subagent.d.ts.map +1 -1
  367. package/dist/tools/subagent.js +8 -0
  368. package/dist/tools/subagent.js.map +1 -1
  369. package/dist/tools/web-fetch.d.ts +2 -1
  370. package/dist/tools/web-fetch.d.ts.map +1 -1
  371. package/dist/tools/web-fetch.js +17 -6
  372. package/dist/tools/web-fetch.js.map +1 -1
  373. package/dist/tools/web-fetch.test.js +34 -0
  374. package/dist/tools/web-fetch.test.js.map +1 -1
  375. package/dist/tools/web-search.d.ts +2 -1
  376. package/dist/tools/web-search.d.ts.map +1 -1
  377. package/dist/tools/web-search.js +34 -7
  378. package/dist/tools/web-search.js.map +1 -1
  379. package/dist/tools/write.d.ts +2 -1
  380. package/dist/tools/write.d.ts.map +1 -1
  381. package/dist/tools/write.js +7 -1
  382. package/dist/tools/write.js.map +1 -1
  383. package/dist/tools/write.test.js +12 -0
  384. package/dist/tools/write.test.js.map +1 -1
  385. package/dist/ui/App.d.ts.map +1 -1
  386. package/dist/ui/App.js +22 -85
  387. package/dist/ui/App.js.map +1 -1
  388. package/dist/ui/app-items.d.ts +11 -12
  389. package/dist/ui/app-items.d.ts.map +1 -1
  390. package/dist/ui/app-items.js +10 -0
  391. package/dist/ui/app-items.js.map +1 -1
  392. package/dist/ui/components/ActivityIndicator.d.ts.map +1 -1
  393. package/dist/ui/components/ActivityIndicator.js +1 -0
  394. package/dist/ui/components/ActivityIndicator.js.map +1 -1
  395. package/dist/ui/components/Footer.d.ts +1 -1
  396. package/dist/ui/components/Footer.js +2 -2
  397. package/dist/ui/components/Footer.js.map +1 -1
  398. package/dist/ui/components/Footer.test.js +1 -1
  399. package/dist/ui/hooks/useAgentLoop.d.ts +5 -2
  400. package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
  401. package/dist/ui/hooks/useAgentLoop.js +49 -8
  402. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  403. package/dist/ui/hooks/usePixelFixFlow.d.ts +1 -2
  404. package/dist/ui/hooks/usePixelFixFlow.d.ts.map +1 -1
  405. package/dist/ui/hooks/usePixelFixFlow.js +2 -5
  406. package/dist/ui/hooks/usePixelFixFlow.js.map +1 -1
  407. package/dist/ui/hooks/useTranscriptHistory.d.ts +8 -5
  408. package/dist/ui/hooks/useTranscriptHistory.d.ts.map +1 -1
  409. package/dist/ui/hooks/useTranscriptHistory.js +2 -30
  410. package/dist/ui/hooks/useTranscriptHistory.js.map +1 -1
  411. package/dist/ui/login.js +1 -1
  412. package/dist/ui/login.js.map +1 -1
  413. package/dist/ui/terminal-history-status-renderers.d.ts +1 -2
  414. package/dist/ui/terminal-history-status-renderers.d.ts.map +1 -1
  415. package/dist/ui/terminal-history-status-renderers.js +2 -15
  416. package/dist/ui/terminal-history-status-renderers.js.map +1 -1
  417. package/dist/ui/terminal-history.d.ts.map +1 -1
  418. package/dist/ui/terminal-history.js +2 -4
  419. package/dist/ui/terminal-history.js.map +1 -1
  420. package/dist/ui/thinking-level-cycle.test.js +8 -8
  421. package/dist/ui/thinking-level-cycle.test.js.map +1 -1
  422. package/dist/ui/transcript/MiscRows.d.ts +1 -4
  423. package/dist/ui/transcript/MiscRows.d.ts.map +1 -1
  424. package/dist/ui/transcript/MiscRows.js +2 -7
  425. package/dist/ui/transcript/MiscRows.js.map +1 -1
  426. package/dist/ui/transcript/TranscriptRenderer.d.ts.map +1 -1
  427. package/dist/ui/transcript/TranscriptRenderer.js +1 -3
  428. package/dist/ui/transcript/TranscriptRenderer.js.map +1 -1
  429. package/dist/ui/transcript/presentation.d.ts +1 -9
  430. package/dist/ui/transcript/presentation.d.ts.map +1 -1
  431. package/dist/ui/transcript/presentation.js +0 -9
  432. package/dist/ui/transcript/presentation.js.map +1 -1
  433. package/dist/ui/transcript/spacing.d.ts +2 -2
  434. package/dist/ui/transcript/spacing.d.ts.map +1 -1
  435. package/dist/ui/transcript/spacing.js +0 -1
  436. package/dist/ui/transcript/spacing.js.map +1 -1
  437. package/dist/ui/transcript/spacing.test.js +1 -3
  438. package/dist/ui/transcript/spacing.test.js.map +1 -1
  439. package/dist/ui/tui-history-parity.test.js +2 -9
  440. package/dist/ui/tui-history-parity.test.js.map +1 -1
  441. package/dist/utils/github.d.ts +20 -0
  442. package/dist/utils/github.d.ts.map +1 -0
  443. package/dist/utils/github.js +65 -0
  444. package/dist/utils/github.js.map +1 -0
  445. package/dist/utils/github.test.d.ts +2 -0
  446. package/dist/utils/github.test.d.ts.map +1 -0
  447. package/dist/utils/github.test.js +23 -0
  448. package/dist/utils/github.test.js.map +1 -0
  449. package/dist/utils/http-body.d.ts +19 -0
  450. package/dist/utils/http-body.d.ts.map +1 -0
  451. package/dist/utils/http-body.js +58 -0
  452. package/dist/utils/http-body.js.map +1 -0
  453. package/dist/utils/http-body.test.d.ts +2 -0
  454. package/dist/utils/http-body.test.d.ts.map +1 -0
  455. package/dist/utils/http-body.test.js +68 -0
  456. package/dist/utils/http-body.test.js.map +1 -0
  457. package/dist/utils/process.d.ts +26 -3
  458. package/dist/utils/process.d.ts.map +1 -1
  459. package/dist/utils/process.js +68 -10
  460. package/dist/utils/process.js.map +1 -1
  461. package/dist/utils/process.test.d.ts +2 -0
  462. package/dist/utils/process.test.d.ts.map +1 -0
  463. package/dist/utils/process.test.js +42 -0
  464. package/dist/utils/process.test.js.map +1 -0
  465. package/dist/utils/text.d.ts +9 -0
  466. package/dist/utils/text.d.ts.map +1 -0
  467. package/dist/utils/text.js +11 -0
  468. package/dist/utils/text.js.map +1 -0
  469. package/package.json +4 -4
@@ -2,20 +2,24 @@
2
2
  * Prompt-template commands — slash commands that inject detailed prompts
3
3
  * into the agent loop. Each command maps to a full prompt the agent executes.
4
4
  */
5
- /**
6
- * True when this process is the ezcoder-app sidecar (Tauri spawns it with
7
- * `GG_APP_PORT` set, even to "0" — plain `ezcoder` CLI never sets it). Used
8
- * to phrase user-facing notices (restart / task-list pointers) in terms of
9
- * the desktop app's UI instead of CLI keybinds, since most users are on the
10
- * app now and it has no terminal keybinds at all.
11
- */
12
- const IS_GG_APP = process.env.GG_APP_PORT !== undefined;
5
+ import { isGgApp } from "./runtime-mode.js";
6
+ const IS_GG_APP = isGgApp();
13
7
  const TASKS_ADDED_NOTICE = IS_GG_APP
14
8
  ? 'Tasks added. Click the "Tasks" button to open the task list and run them.'
15
9
  : "Tasks added. Press Ctrl+T to open the task list and run them.";
10
+ // The context file is whichever name won CONTEXT_FILES priority for this repo
11
+ // (AGENTS.override.md > AGENTS.md > CLAUDE.md > …), so the notice stays
12
+ // filename-agnostic — /init picks the winner at run time.
16
13
  const CLAUDE_MD_RESTART_NOTICE = IS_GG_APP
17
- ? '> ⚠️ CLAUDE.md was created/updated. GG App loads it fresh per session, so start a **New Session** (click "+ New") before continuing. Without a new session, I won\'t see the new context.'
18
- : "> ⚠️ CLAUDE.md was created/updated. ezcoder loads it at startup, so **exit and restart ezcoder** (`/quit` then run `ezcoder` again) before continuing. Without a restart, I won't see the new context.";
14
+ ? '> ⚠️ The project context file was created/updated. EZ Coder loads it fresh per session, so start a **New Session** (click "+ New") before continuing. Without a new session, I won\'t see the new context.'
15
+ : "> ⚠️ The project context file was created/updated. ezcoder loads it at startup, so **exit and restart ezcoder** (`/quit` then run `ezcoder` again) before continuing. Without a restart, I won't see the new context.";
16
+ /** Shared sub-agent fan-out phrasing. */
17
+ const spawnParallel = (count) => `in parallel using the subagent tool (call the subagent tool ${count} times in a single response)`;
18
+ /**
19
+ * Kencode-search ships behind deferred MCP loading, so tell commands how to
20
+ * promote it before naming one of its tools.
21
+ */
22
+ const KENCODE_UNLOCK_NOTE = 'If the `mcp__kencode-search__*` tools aren\'t active yet, call `tool_search` (e.g. "search public code") first to unlock them.';
19
23
  export const PROMPT_COMMANDS = [
20
24
  {
21
25
  name: "goal",
@@ -47,7 +51,7 @@ Use this profile to decide which features are relevant and genuinely missing. If
47
51
 
48
52
  ## Phase 1: Parallel feature research
49
53
 
50
- Spawn exactly 5 sub-agents in parallel using the subagent tool (call the subagent tool 5 times in a single response). Give each sub-agent the project profile and a different feature-hunting lens:
54
+ Spawn exactly 5 sub-agents ${spawnParallel(5)}. Give each sub-agent the project profile and a different feature-hunting lens:
51
55
 
52
56
  **Agent 1 - Direct competitor killer features**: The standout, most-loved user-facing features in the closest peer projects/tools/products that this project lacks.
53
57
 
@@ -74,7 +78,7 @@ For every candidate from the sub-agents, validate it yourself before reporting:
74
78
  1. Confirm the external source is relevant to this project and fresh enough (normally within 6 months).
75
79
  2. Search this repo with grep/find and language-aware anchors to confirm the feature is not already present under another name.
76
80
  3. Check routes, CLI commands, UI surfaces, package exports, config, docs, and examples before calling a feature missing.
77
- 4. If the mcp__kencode-search__searchCode tool is available, use it when a code-level look clarifies how peers actually ship the feature (literal imports, functions, config keys, CLI flags, route names, or package names — not conceptual phrases). Skip this step if the tool isn't connected.
81
+ 4. Use mcp__kencode-search__searchCode when a code-level look clarifies how peers actually ship the feature. Use literal imports, functions, config keys, CLI flags, route names, or package names — not conceptual phrases. ${KENCODE_UNLOCK_NOTE}
78
82
  5. Drop anything already present, irrelevant, too vague, too stale, or that is not a real user-facing feature.
79
83
  6. Merge duplicates and keep only the most exciting 5–10 features.
80
84
 
@@ -528,15 +532,20 @@ If the user chooses D, stop after the report.
528
532
  description: "Audit exploitable weaknesses",
529
533
  prompt: `# Bullet-Proof: Defensive Security Review
530
534
 
531
- You are a defensive security auditor reviewing this codebase to identify exploitable weaknesses so they can be patched before the project ships. Think rigorously about realistic threat scenarios — boundary checks, edge cases, race conditions, trust assumptions, supply-chain risks, agent-mediated paths.
535
+ This is an **authorized defensive security review** of this repository, requested by its owner so weaknesses can be found and patched before they ship. This is standard defensive security work — the same review a security engineer performs before a release. The entire flow is **read-only reporting**: no code changes, no exploit development, and nothing is fixed until the user explicitly chooses at the end.
536
+
537
+ Defensive ground rules (apply to every phase and every subagent):
538
+ - Never produce working exploit code, weaponized payloads, or attack tooling.
539
+ - Describe each risk at the **data-flow level** — where untrusted data enters, what it can reach, and why that is fixable — so every finding maps directly to a patch.
540
+ - The deliverable is a remediation report for the maintainers, nothing else.
532
541
 
533
- Goal: harden this project against realistic threats. **Report only HIGH CONFIDENCE findings (≥0.8) with a concrete data-flow path that demonstrates exposure.** Better to miss theoretical issues than flood the report with noise.
542
+ Goal: harden this project. **Report only HIGH CONFIDENCE findings (≥0.8) with a concrete data-flow path that demonstrates exposure.** Better to miss theoretical issues than flood the report with noise.
534
543
 
535
544
  This command is **dynamic and project-agnostic**. Recon drives everything. Do not assume the stack, the language, the deploy target, or that there is an LLM/agent layer. Read first, decide second.
536
545
 
537
546
  ## Phase 1: Recon — Understand THIS project before auditing anything
538
547
 
539
- Spawn **FOUR recon subagents in parallel** using the subagent tool (call the subagent tool 4 times in a single response). Each has a narrow, independent slice so they can all run at once. **No vulnerabilities flagged in this phase.**
548
+ Spawn **FOUR recon subagents** ${spawnParallel(4)}. Each has a narrow, independent slice so they can all run at once. **No vulnerabilities flagged in this phase.**
540
549
 
541
550
  **Recon Agent A — Stack & Deployment.** Read manifests, lockfiles, CI/CD configs, Dockerfile/Helm/Terraform, deploy scripts. Produce:
542
551
  - Primary language(s), framework(s), runtimes
@@ -550,7 +559,7 @@ Spawn **FOUR recon subagents in parallel** using the subagent tool (call the sub
550
559
 
551
560
  **Recon Agent C — Sinks.** Walk dangerous-operation code. Produce a **Sinks table** with location (file:line) and sink type for: shell exec, SQL / NoSQL / LDAP / XPath queries, eval / Function / exec / pickle / yaml.load / Marshal / ObjectInputStream, file write, file include / require with dynamic path, network egress (fetch / requests / http.Get), auth decisions, secret reads, native deserializers, dynamic code load, smart-contract external calls, child_process spawns.
552
561
 
553
- **Recon Agent D — Assets.** Scan for what is worth stealing or destroying. Produce an **Assets table** with location and asset type for: credentials / tokens (config files, env files, KMS, OAuth flows, ~/.{app}/auth.json-style stores), customer/PII data stores, source code with IP value, build/CI secrets, signing keys, model API tokens, on-chain funds / wallets, session state, MCP config files, license keys.
562
+ **Recon Agent D — Assets.** Scan for what this project must protect. Produce an **Assets table** with location and asset type for: credentials / tokens (config files, env files, KMS, OAuth flows, ~/.{app}/auth.json-style stores), customer/PII data stores, source code with IP value, build/CI secrets, signing keys, model API tokens, on-chain funds / wallets, session state, MCP config files, license keys.
554
563
 
555
564
  **After all four return, the main agent synthesizes:**
556
565
  1. Assemble the four tables (Stack/Deploy, Sources, Sinks, Assets) into the recon report
@@ -580,21 +589,23 @@ Default catalog — pick what applies, drop what doesn't, add stack-specific aud
580
589
 
581
590
  ## Phase 3: Parallel audits
582
591
 
583
- Spawn one subagent per active audit **in a single response** (call the subagent tool N times **with \`agent: "auditor"\`**, where N is whatever Phase 2 picked — do not pad to a fixed number, do not drop audits Phase 2 selected). The \`auditor\` agent has the defensive-review persona and exclusion list baked in, so your task description only needs the vulnerability-class scope. Each auditor receives:
584
- - The full recon output (Sources, Sinks, Assets, Threat model)
592
+ Spawn one subagent per active audit **in a single response** (call the subagent tool N times **with \`agent: "auditor"\`**, where N is whatever Phase 2 picked — do not pad to a fixed number, do not drop audits Phase 2 selected). If the \`auditor\` agent is unavailable, use default subagents and open each task with: "You are performing an authorized, read-only defensive security review for the code owner; report data-flow risks so they can be patched — no exploit code."
593
+
594
+ **Subagents cannot see this prompt.** Each auditor's task text must therefore include, written out by you:
585
595
  - Its specific vulnerability-class scope
586
- - The 2026 threat reference at the bottom of this prompt
596
+ - The recon rows relevant to that scope (Sources, Sinks, Assets, Threat-model lines — condensed, not the full dump)
597
+ - The specific bullets from the Threat reference below that apply to its class (copy those lines into the task)
587
598
 
588
599
  Each auditor must:
589
600
  1. **Trace data flow** from Sources to Sinks for its class. Not pattern matching.
590
601
  2. For every candidate, apply the **untrusted-input vs trusted-input** decision: is the input *actually reachable* by an untrusted source, or is it a settings constant / build-time string / hard-coded value?
591
- 3. Construct a concrete **vulnerability scenario** — describe how the weakness would be triggered (input → system response → resulting exposure). If you can't describe the steps, don't flag it.
602
+ 3. Describe a concrete **risk scenario** at the data-flow level — what kind of input reaches the source, how the system processes it, what exposure results. No working payloads. If you can't describe the steps, don't flag it.
592
603
  4. Assign **confidence 0.0–1.0**. Drop anything <0.8 before returning.
593
604
  5. Be framework-aware: ORM parameterization, auto-escape, memory-safe languages, JSX/template escaping all eliminate entire vuln classes. Don't flag what the framework already handles.
594
605
 
595
606
  ## Phase 4: False-positive filter
596
607
 
597
- After auditors complete, spawn one verification subagent per surviving finding **in parallel with \`agent: "skeptic"\`** (call the subagent tool once per finding in a single response). The \`skeptic\` agent starts from "this is a false positive" and tries to disprove the finding — only confirmed findings survive. Pass each verifier the full audit finding (location, source/sink, vulnerability scenario, claimed confidence). Drop anything the skeptic returns as DROP; lower severity for DOWNGRADE.
608
+ After auditors complete, spawn verification subagents **in parallel with \`agent: "skeptic"\`**, batching 3–5 surviving findings per skeptic (cap at 4 skeptics total — batching keeps cost sane). The \`skeptic\` agent starts from "this is a false positive" and tries to disprove each finding — only confirmed findings survive. Pass each skeptic the full text of its findings (location, source/sink, risk scenario, claimed confidence); skeptics cannot see this prompt or the auditors' context. Drop anything returned as DROP; lower severity for DOWNGRADE.
598
609
 
599
610
  **Hard exclusions — do NOT report these, even if real:**
600
611
  - DOS / rate-limiting / memory exhaustion without a clear amplification primitive
@@ -639,9 +650,9 @@ Threat model: [from recon]
639
650
  - Category: <slug> CWE: CWE-XXX Confidence: 0.95
640
651
  - Exposure surface: <entry point from Sources>
641
652
  - Source → Sink: <e.g. \`POST /api/foo body.userId\` → \`subprocess.run(..., shell=True)\`>
642
- - Vulnerability scenario:
643
- 1. Untrusted input <specific payload> reaches <source>
644
- 2. Server processes it as <what>
653
+ - Risk scenario (data-flow level, no payloads):
654
+ 1. Untrusted input of <shape/kind> reaches <source>
655
+ 2. The system processes it as <what>
645
656
  3. Result: <RCE / data exposure / auth bypass>
646
657
  - Impact: <blast radius — what is exposed, how far it spreads>
647
658
  - Fix: <concrete remediation, code-level>
@@ -668,7 +679,7 @@ If the user chooses A, B, or C, do not fix directly. Instead, add one task per s
668
679
 
669
680
  ## Threat reference (May 2026)
670
681
 
671
- Cite these as needed per audit. Do not dump them into the report — use them to verify whether a candidate is actually reachable.
682
+ Defensive reference material from public incident reports and OWASP — patterns to check for, not techniques to reproduce. Copy the relevant bullets into each auditor's task (Phase 3); do not dump them into the report.
672
683
 
673
684
  **OWASP Top 10:2025** — A01 Broken Access Control (now includes SSRF), A02 Misconfig, **A03 Supply Chain Failures (new)**, A05 Injection (now includes prompt injection), **A10 Mishandling Exceptional Conditions (new — fail-open patterns)**.
674
685
 
@@ -678,7 +689,7 @@ Cite these as needed per audit. Do not dump them into the report — use them to
678
689
 
679
690
  **OWASP Top 10 for Agents 2026 (ASI01–10)** — Goal hijack, tool misuse, identity/privilege abuse, agentic supply chain, unexpected code exec, memory/context poisoning, inter-agent comms, cascading failures, human-trust exploit, rogue agents.
680
691
 
681
- **Real 2024-2026 incidents — use as grep templates:**
692
+ **Real 2024-2026 public incidents — patterns to grep for defensively:**
682
693
  - tj-actions/changed-files (Mar 14-15 2025, CVE-2025-30066, 23k repos) → unpinned GH Actions, \`uses: foo/bar@main\` / mutable tags, runner-memory secret dumps
683
694
  - TanStack Mini Shai-Hulud (May 11 2026, CVE-2026-45321, CVSS 9.6 — 84 versions across 42 \`@tanstack/*\` + UiPath/Mistral/Guardrails/OpenSearch, 169+ packages total, "TeamPCP") → self-spreading npm worm, \`pull_request_target\` + cache poisoning + OIDC token extraction from \`/proc/<pid>/mem\`, persistent \`gh-token-monitor\` daemon
684
695
  - Slopsquatting (ongoing 2025-2026, \`react-codeshift\` Jan 2026) → AI coding assistants hallucinate ~20% non-existent package names (open-source models ~21.7%, GPT-4 ~5.2%); malicious parties register the hallucinated names on npm/PyPI. **Verify every package actually existed BEFORE the agent suggested it** — check registry age, download history, author identity
@@ -714,60 +725,76 @@ Cite these as needed per audit. Do not dump them into the report — use them to
714
725
  name: "init",
715
726
  aliases: [],
716
727
  description: "Generate or update CLAUDE.md for this project",
717
- prompt: `Generate or update a minimal CLAUDE.md with project-specific context only: what this project is, how it is structured, and commands/workflows that are unique to it.
728
+ prompt: `Generate or update the project context file with project-specific context only: what this project is, the non-obvious knowledge needed to change it safely, and the workflows that are unique to it.
718
729
 
719
- Do NOT add generic agent behavior already covered by the system prompt, including: read before edit/write, re-read after formatters, ask before destructive actions, no fake verification, generic code-quality advice, single-responsibility rules, one-file-per-component rules, or language-style conventions. Never add guidance that requires running checks, builds, or the full quality suite after every edit or every file change. Include only project-specific overrides or stricter local requirements.
730
+ This file is injected verbatim into the **cached prefix of every request in every future session**, alongside the system prompt. Every line costs tokens forever. A line that repeats something the agent already has is worse than absent: it dilutes the lines that matter. So the bar is not "is this true?" — it is **"would a competent agent get this wrong without being told?"**
720
731
 
721
- ## Step 1: Check if CLAUDE.md Exists
732
+ ## What is already in the agent's context — never restate any of it
722
733
 
723
- If CLAUDE.md exists:
724
- - Read the existing file
725
- - Preserve custom sections the user may have added
726
- - Update only project-specific facts that are stale or missing
727
- - Remove generic guidance that is already covered by the system prompt unless it is a deliberate project-specific override
734
+ Read this list once and apply it to every step below. These are already supplied by the system prompt, so writing them into the context file is pure duplication:
728
735
 
729
- If CLAUDE.md does NOT exist:
730
- - Create a new one from scratch
736
+ 1. **Agent behavior** — Do NOT add generic agent behavior already covered by the system prompt: read before edit/write, re-read after formatters, ask before destructive actions, no fake verification, generic code-quality advice, how to use tools, or how to talk to the user.
737
+ 2. **Language conventions** — a Language Style Packs section is auto-injected for every language detected in this repo. Do not duplicate language style packs, generic verification rules, or boilerplate quality gates such as "After editing ANY file" / "Code Quality — Zero Tolerance".
738
+ 3. **Verify commands** — a Verification section is auto-generated from package scripts / manifests (lint, typecheck, format, test) with the correct runner already resolved from the lockfile. Only write a command down if it is NOT discoverable that way: an undocumented multi-step sequence, a required ordering, a non-obvious flag, or a command that lives outside the manifest. Never add guidance that requires running checks, builds, or the full quality suite after every edit or every file change, and never turn discovered commands into mandatory after-every-edit requirements unless local CI explicitly enforces that sequence.
739
+ 4. **The file tree** — the agent can list and grep the repo in one call. Do NOT embed generated symbol maps, exhaustive file indexes, auto-generated directory listings, or large trees. Do not add symbol indexes or auto-generated project inventories; the context file must remain durable, agent-focused project context.
731
740
 
732
- ## Step 2: Analyze Project (Use Sub-agents in Parallel)
741
+ Include only project-specific overrides, stricter local requirements, or knowledge that cannot be derived by reading the code.
733
742
 
734
- Derive every fact from the actual project — source code, entry points, manifests, and config. Treat README, docs, and code comments as unverified hints that are frequently stale: never copy claims from them, and only state things you can confirm from the code and config themselves.
743
+ ## Step 1: Pick the target filename
735
744
 
736
- Spawn 3 sub-agents in parallel using the subagent tool (call the subagent tool 3 times in a single response):
745
+ Context files are loaded **one per directory, first match wins**, in this priority order: \`AGENTS.override.md\` > \`AGENTS.md\` > \`CLAUDE.md\` > \`.cursorrules\` > \`CONVENTIONS.md\`.
737
746
 
738
- 1. **Project Purpose Agent**: Determine what the project actually does from its real code — entry points, main modules, exported/public APIs, CLI commands, routes, and manifests. Do not rely on the README's description.
739
- 2. **Directory Structure Agent**: Map out the folder structure and what each folder contains
740
- 3. **Tech Stack Agent**: Identify languages, frameworks, tools, and dependencies from manifests/lockfiles and config (not from prose docs)
747
+ List the repo root and write to **whichever of those already exists with the highest priority**. If the repo already has an \`AGENTS.md\`, update that file — creating a new CLAUDE.md next to it produces a file the agent will never load. If none exists, create \`CLAUDE.md\`. State which file you chose and why in one line.
748
+
749
+ ## Step 2: Set up the regenerated block
750
+
751
+ \`/init\` is re-run over the project's lifetime, so the generated content must be **replaceable, not appendable** — otherwise each run grows the file forever.
752
+
753
+ All content you generate goes inside these exact fence markers:
754
+
755
+ \`\`\`
756
+ <!-- gg:init:start -->
757
+ …generated content…
758
+ <!-- gg:init:end -->
759
+ \`\`\`
741
760
 
742
- Wait for all sub-agents to complete, then synthesize the information.
761
+ - If the file exists and already has the fence: **replace everything between the markers wholesale**. Text outside the fence is user-owned — do not touch it, do not reformat it, do not move it.
762
+ - If the file exists without the fence: read it, decide which content is hand-written knowledge worth keeping, move that above the fence untouched, and put your generated content inside a new fence. Remove generic guidance that is already covered by the system prompt (see the list above) unless it is a deliberate project-specific override.
763
+ - If the file does not exist: create it with the fence.
743
764
 
744
- ## Step 3: Detect Project Type & Commands
765
+ ## Step 3: Analyze the project (sub-agents in parallel)
745
766
 
746
- Check for config files:
747
- - package.json -> JavaScript/TypeScript (extract package-manager, build, lint, typecheck, test, format, and server scripts)
748
- - pyproject.toml or requirements.txt -> Python
749
- - go.mod -> Go
750
- - Cargo.toml -> Rust
767
+ Derive every fact from the actual project — source code, entry points, manifests, config, and history. Treat README, docs, and code comments as unverified hints that are frequently stale: never copy claims from them, and only state things you can confirm from the code and config themselves.
751
768
 
752
- Extract exact commands that are useful project facts. Take commands from authoritative sources — package scripts, manifests, Makefiles, and CI config; do not invent them from convention, and do not trust README/doc command snippets unless a script or manifest confirms they still exist. Do not restate generic "run checks after edits" behavior, and do not turn discovered commands into mandatory after-every-edit requirements unless local docs or CI explicitly require that stricter sequence.
769
+ Spawn 3 sub-agents ${spawnParallel(3)}:
753
770
 
754
- ## Step 4: Summarize Stable Structure
771
+ 1. **Purpose & Shape Agent**: What does this project actually do, and what are its top-level parts? Read entry points, main modules, exported/public APIs, CLI commands, routes, and manifests. Return: a one-sentence purpose, and for each package/app/module a one-line statement of what it *owns*. Do not rely on the README's description. Do not return a directory listing.
772
+ 2. **Gotchas & Invariants Agent**: Find the knowledge that is expensive to rediscover. Mine \`git log\` (especially revert/fix/hotfix commits), CI and release workflows, \`NOTE\`/\`HACK\`/\`IMPORTANT\`/\`WARNING\`/\`XXX\` comments, test names asserting surprising behavior, generated-file and build-order constraints, and any config with a non-default value. Return only: rules that are non-obvious from reading the code, ordering/sequencing constraints, things that silently break, and the *reason* each exists. Skip anything a careful reader would infer in 30 seconds.
773
+ 3. **Workflow & Stack Agent**: How is this project run, built, released, and deployed, from authoritative sources only — package scripts, manifests, Makefiles, CI config, deploy config. Return the workflows and any command that is NOT a plain single manifest script (multi-step sequences, required order, env vars, non-obvious flags, commands living outside the manifest). Do not return commands the auto-generated Verification section already covers (see item 3 above). Do not invent commands from convention, and do not trust README/doc command snippets unless a script or manifest confirms they still exist.
755
774
 
756
- If useful, create a concise structure summary for future agents showing only key stable directories and files with brief descriptions. Do NOT embed generated symbol maps, exhaustive file indexes, auto-generated directory listings, or large trees in CLAUDE.md.
775
+ Wait for all sub-agents to complete, then synthesize.
757
776
 
758
- ## Step 5: Generate or Update CLAUDE.md
777
+ ## Step 4: Write the generated block
759
778
 
760
- Create CLAUDE.md with only sections that add project-specific value. Prefer this structure:
779
+ Inside the fence, write only sections that add project-specific value. Prefer this order — drop any section that would be empty or obvious:
761
780
 
762
781
  - Project name and one-sentence purpose
763
- - Key packages/apps/modules and what each owns
764
- - Important project-specific architecture or workflow notes
765
- - Exact local commands (install/build/check/test/dev/publish/deploy) when they are not obvious from package scripts alone
766
- - Project-specific constraints that override defaults (for example required publish order, generated-file workflow, auth/secrets storage, deployment caveats)
782
+ - Key packages/apps/modules and what each owns (one line each, no tree)
783
+ - Architecture or data-flow notes an agent could not infer quickly from the code
784
+ - **Gotchas / invariants** — the highest-value section. Each entry states the rule *and* why it exists.
785
+ - Project-specific commands and workflows that survived the Step 3 filter (required publish order, generated-file workflow, dev-server startup, deployment caveats, auth/secrets storage)
767
786
 
768
- Avoid generic sections named "Code Quality", "Organization Rules", or "How to Work" unless every bullet is specific to this project. Do not duplicate language style packs, generic verification rules, or boilerplate quality gates such as "After editing ANY file" / "Code Quality — Zero Tolerance". Do not add symbol indexes, exhaustive file indexes, or auto-generated project inventories; CLAUDE.md must remain durable, agent-focused project context.
787
+ Avoid generic sections named "Code Quality", "Organization Rules", or "How to Work" unless every bullet is specific to this project.
769
788
 
770
- Keep total file under 100 lines. If updating, preserve any custom sections the user added. After writing, re-read CLAUDE.md and confirm it contains only project-specific facts supported by local files.
789
+ ## Step 5: Budget and verify
790
+
791
+ The combined budget for all project context files is 32KB, shared with any parent-directory context files. **Target 6KB or less for the generated block** — a tight 4KB file that gets read every time beats a 25KB file the agent skims.
792
+
793
+ After writing:
794
+
795
+ 1. Run \`wc -c\` on the file and report the byte size. If the generated block exceeds ~6KB, cut the weakest sections (the ones closest to "derivable by reading the code") and rewrite.
796
+ 2. Re-read the file and confirm every remaining line passes the bar: **project-specific, supported by a local file you actually read, and not already in the agent's context per the list above.**
797
+ 3. Report in one line: which file, how many bytes, and how many lines you removed as redundant.
771
798
 
772
799
  ## Step 6: Restart Notice
773
800
 
@@ -845,7 +872,7 @@ Report that /commit is now available with quality checks, an agent code review g
845
872
  description: "Compare real-world code",
846
873
  prompt: `Compare the code you just created or modified in this conversation against real-world implementations using the \`mcp__kencode-search__searchCode\` tool.
847
874
 
848
- First confirm the \`mcp__kencode-search__searchCode\` tool is actually available in this session. If it is not (calling it returns "Unknown tool"), stop and report that real-code comparison is unavailable because the kencode-search MCP server isn't connected — do not retry the call repeatedly.
875
+ ${KENCODE_UNLOCK_NOTE}
849
876
 
850
877
  You already know what you just built. For each file you created or modified, use \`mcp__kencode-search__searchCode\` to search for how real projects implement the same patterns. Look at the specific APIs, hooks, functions, and architecture you used.
851
878
 
@@ -903,7 +930,7 @@ Illustrative only (not prescriptive):
903
930
 
904
931
  ## Phase 3: Parallel sweep
905
932
 
906
- Spawn one sub-agent per domain you chose, in parallel using the subagent tool (call it N times in a single response, one task per domain). Each explores its assigned domain and returns skill-worthy opportunities.
933
+ Spawn one sub-agent per domain you chose, ${spawnParallel("N")} — one task per domain. Each explores its assigned domain and returns skill-worthy opportunities.
907
934
 
908
935
  **Skill-worthy means**: a recurring activity someone will do on THIS project — shipping, reviewing, migrating, debugging, onboarding, whatever applies — where a reusable instruction set would make it **faster** (efficient), **lower-effort** (easier), or **less likely to break something** (safer). The test is: will this skill save real time, reduce real cognitive load, or prevent real mistakes, repeatedly, on this project? If no, drop it. A domain returning zero candidates is a valid outcome.
909
936
 
@@ -961,100 +988,6 @@ If strong candidates had no ecosystem match, list them at the bottom:
961
988
 
962
989
  After presenting the list, ask which (if any) to install. Install nothing without explicit confirmation. Once confirmed, hand off to find-skills to perform the actual install.`,
963
990
  },
964
- {
965
- name: "setup",
966
- aliases: ["setup-project"],
967
- description: "Audit project setup",
968
- prompt: `Audit this project across six categories and report gaps. **Do not fix anything yet.** Wait for me to choose what to address after the report.
969
-
970
- Language-agnostic and project-agnostic — adapt findings to the languages and stack actually present. Ignore categories that don't apply (e.g. skip CI for a local-only scratchpad).
971
-
972
- ## Categories
973
-
974
- ### 1. Project hygiene
975
-
976
- - \`.gitignore\` present and covers the active language(s)?
977
- - \`README.md\` present with at least install + run instructions?
978
- - License file present (if this looks like a public/shareable project)?
979
- - \`.editorconfig\` present?
980
- - Git initialized? (\`.git\` directory exists)
981
-
982
- ### 2. Toolchain version pinning
983
-
984
- - Language version pinned in a canonical file: \`.nvmrc\` / \`package.json#engines\` (Node), \`.python-version\` / \`pyproject.toml#requires-python\` (Python), \`rust-toolchain.toml\` (Rust), the \`go\` line in \`go.mod\`, \`.ruby-version\` (Ruby), etc.
985
- - Lockfile present and committed? (\`package-lock.json\`, \`pnpm-lock.yaml\`, \`yarn.lock\`, \`bun.lockb\`, \`uv.lock\`, \`poetry.lock\`, \`Cargo.lock\`, \`go.sum\`, \`Gemfile.lock\`, \`composer.lock\`)
986
-
987
- ### 3. Code quality tooling
988
-
989
- For each active language, check that a formatter, linter, and (where applicable) type checker are configured:
990
- - **Formatter**: Prettier / ruff format / gofmt (built-in) / rustfmt (built-in) / clang-format / etc.
991
- - **Linter**: ESLint / Ruff / golangci-lint / Clippy / etc. — with a reasonable strictness preset
992
- - **Type checker** (statically-typed langs only): tsc strict, Pyright strict, mypy strict
993
- - **Test framework**: vitest / jest / pytest / go test / cargo test / rspec / etc.
994
-
995
- Report which are present, missing, or configured below the pack's strictness recommendation.
996
-
997
- ### 4. Verify pipeline
998
-
999
- - Are \`lint\` / \`typecheck\` / \`format:check\` / \`test\` (or language-equivalent) wired as runnable commands? (scripts in \`package.json\`, \`pyproject.toml\`, a \`Makefile\`, or \`justfile\`)
1000
- - Pre-commit hook configured? (\`.husky/\`, \`pre-commit\` framework, \`lefthook\`, etc.) — nice-to-have, not required.
1001
- - CI config present? (\`.github/workflows/\`, \`.gitlab-ci.yml\`, \`.circleci/\`, etc.)
1002
-
1003
- ### 5. Style pack alignment
1004
-
1005
- "Active style packs" refers specifically to the per-language sub-sections inside the **Language Style Packs** section in your system prompt (e.g. \`### TypeScript\`, \`### Python\`, \`### Go\`). It does **NOT** include the cross-cutting \`### Agent-Written Code\` preamble that sits above them — those are guidelines for how code is *written*, not project-scaffolding to audit. It also does **NOT** include Skills (\`.ezcoder/skills/\`) or any other extension category. If the Language Style Packs section is absent or empty, **skip this entire section entirely** — do not substitute Skills or any other concept.
1006
-
1007
- When per-language packs are present, compare the project against each pack's **Tooling** bullet and the system prompt's **Verification** commands. For tool recommendations or config semantics, verify against official docs when local files are ambiguous:
1008
- - Tooling: which strict-mode flags or lint-rule presets does the pack recommend that the project is missing? (e.g. \`tsconfig\` missing \`noUncheckedIndexedAccess\`, \`pyproject\` missing \`[tool.ruff]\`, Go project missing \`golangci-lint\` config).
1009
- - Dependencies: list which pack-mentioned libs (Zod, Pydantic, thiserror, anyhow, etc.) the project uses, has an equivalent for, or lacks. **Observation only — no recommendation to install.**
1010
-
1011
- ### 6. Documentation hygiene
1012
-
1013
- - \`CLAUDE.md\` or \`AGENTS.md\` present?
1014
- - Public API documented? (top-level docstrings, type signatures, or README examples)
1015
- - Architecture doc for non-trivial projects? (\`ARCHITECTURE.md\`, \`docs/architecture/\`, ADRs)
1016
-
1017
- ## How to investigate
1018
-
1019
- - Read the project root + obvious config locations (\`./\`, \`.github/\`, \`.husky/\`, \`docs/\`).
1020
- - Don't recurse into \`node_modules\`, \`dist\`, \`build\`, \`target\`, vendored folders.
1021
- - Use \`ls\`, \`read\`, \`find\` (with name patterns) — do not \`grep\` source code for this audit; it's about scaffolding, not code review.
1022
- - Cap at ~20 file reads total. If a file is huge (e.g. \`pnpm-lock.yaml\`), don't read its body — presence is what matters.
1023
-
1024
- ## Output format
1025
-
1026
- A single Markdown report, organized by category. Within each category, mark each item as one of:
1027
- - \`[OK]\` — present and reasonable
1028
- - \`[GAP]\` — missing or misconfigured; safe to add/fix
1029
- - \`[INFO]\` — observation only, no action implied
1030
- - \`[N/A]\` — doesn't apply to this project (omit from output if obvious)
1031
-
1032
- Keep each line to one sentence. No prose paragraphs.
1033
-
1034
- At the end:
1035
-
1036
- \`\`\`
1037
- ## Summary
1038
-
1039
- <N> gaps in hygiene, <N> in tooling, <N> in verify pipeline, <N> in style-pack alignment.
1040
-
1041
- Which (if any) would you like me to fix? Options:
1042
- - A) Add tasks for all [GAP] items that are safe + additive (no overwrites)
1043
- - B) Add tasks for a category: hygiene / tooling / verify / style-pack alignment
1044
- - C) Add tasks for specific items — tell me which
1045
- - D) None — just the report
1046
- \`\`\`
1047
-
1048
- ## Rules
1049
-
1050
- - **Report only.** No edits, no installs, no commits without explicit user confirmation after the report.
1051
- - **Task handoff for fixes.** If the user chooses A, B, or C, do not fix directly. Add one task per selected gap or tightly coupled gap group using the \`tasks\` tool (action=add). Each task needs a short title and a standalone prompt that includes the gap, affected files/configs, safe-additive constraints, implementation instructions, project verification commands, and instructions to verify relevant tool/config semantics against official docs before completing the task. Use kencode search only for code-level examples, not as proof of scaffolding requirements. After adding the tasks, tell the user exactly: "${TASKS_ADDED_NOTICE}" Do not begin executing them unless the user explicitly says so.
1052
- - **No code refactors recommended.** This audit is about scaffolding/tooling, not code review. Use \`/scan\` or \`/verify\` for code-level findings.
1053
- - **No dependency installations in the report.** Listing them as observations is fine; recommending installation is not — that's the user's call.
1054
- - **Skip empty categories.** If a category has no findings, omit it.
1055
- - **Adapt to scale.** A 50-line script doesn't need CI, a license, or an ARCHITECTURE.md. Use judgment.
1056
- - **Brand-new empty project**: report "Empty project — nothing to audit. To bootstrap, tell me the stack you want and I'll scaffold from scratch." and stop.`,
1057
- },
1058
991
  ];
1059
992
  /** Look up a prompt command by name or alias */
1060
993
  export function getPromptCommand(name) {
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-commands.js","sourceRoot":"","sources":["../../src/core/prompt-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-commands.js","sourceRoot":"","sources":["../../src/core/prompt-commands.ts"],"names":[],"mappings":"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"}
@@ -8,29 +8,23 @@ describe("prompt commands", () => {
8
8
  expect(goal?.prompt).toContain("Create a Goal run");
9
9
  expect(goal?.prompt).toContain("durable Goal state");
10
10
  });
11
- it("hands setup/bullet-proof fixes off to the tasks tool, not a Goal", () => {
11
+ it("retires /setup while handing bullet-proof fixes to tasks, not a Goal", () => {
12
12
  const setup = PROMPT_COMMANDS.find((command) => command.name === "setup");
13
13
  const bulletProof = PROMPT_COMMANDS.find((command) => command.name === "bullet-proof");
14
- expect(setup?.prompt).toContain("`tasks` tool");
15
- expect(setup?.prompt).toContain("Press Ctrl+T to open the task list");
16
- expect(setup?.prompt).not.toContain("Create a Goal");
17
- expect(setup?.prompt).not.toContain("Press CTRL + G");
14
+ expect(setup).toBeUndefined();
18
15
  expect(bulletProof?.prompt).toContain("`tasks` tool");
19
16
  expect(bulletProof?.prompt).toContain("Press Ctrl+T to open the task list");
20
17
  expect(bulletProof?.prompt).not.toContain("Create a Goal");
21
18
  expect(bulletProof?.prompt).not.toContain("Press CTRL + G");
22
19
  });
23
- it("points at the app's Tasks button / New Session instead of CLI keybinds when run under the app", async () => {
20
+ it("points at the app's Tasks button / New Session instead of CLI keybinds", async () => {
24
21
  const previous = process.env.GG_APP_PORT;
25
22
  process.env.GG_APP_PORT = "0";
26
23
  vi.resetModules();
27
24
  try {
28
25
  const { PROMPT_COMMANDS: appPromptCommands } = await import("./prompt-commands.js");
29
- const setup = appPromptCommands.find((command) => command.name === "setup");
30
26
  const bulletProof = appPromptCommands.find((command) => command.name === "bullet-proof");
31
27
  const init = appPromptCommands.find((command) => command.name === "init");
32
- expect(setup?.prompt).toContain('Click the "Tasks" button');
33
- expect(setup?.prompt).not.toContain("Ctrl+T");
34
28
  expect(bulletProof?.prompt).toContain('Click the "Tasks" button');
35
29
  expect(bulletProof?.prompt).not.toContain("Ctrl+T");
36
30
  expect(init?.prompt).toContain("New Session");
@@ -170,7 +164,7 @@ describe("prompt commands", () => {
170
164
  expect(init?.prompt).toContain("Do not duplicate language style packs, generic verification rules");
171
165
  expect(init?.prompt).toContain("Do NOT embed generated symbol maps");
172
166
  expect(init?.prompt).toContain("auto-generated project inventories");
173
- expect(init?.prompt).toContain("CLAUDE.md must remain durable, agent-focused project context");
167
+ expect(init?.prompt).toContain("context file must remain durable, agent-focused project context");
174
168
  expect(init?.prompt).not.toContain("human-authored");
175
169
  expect(init?.prompt).not.toContain("one file per component");
176
170
  expect(init?.prompt).not.toContain("single responsibility");
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-commands.test.js","sourceRoot":"","sources":["../../src/core/prompt-commands.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-commands.test.js","sourceRoot":"","sources":["../../src/core/prompt-commands.test.ts"],"names":[],"mappings":"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"}
@@ -76,7 +76,10 @@ describe("radio", () => {
76
76
  mocks.spawn.mockClear();
77
77
  expect(setRadioVolume(42)).toEqual({ ok: true });
78
78
  expect(mocks.spawn).not.toHaveBeenCalled();
79
- expect(mocks.createConnection).toHaveBeenCalledWith(expect.stringMatching(/gg-radio-.+\.sock$/));
79
+ // mpv's IPC endpoint is a Unix socket on POSIX but a NAMED PIPE on Windows
80
+ // (`\\.\pipe\gg-radio-…`), which radio.ts already builds correctly — only
81
+ // this assertion assumed the POSIX spelling.
82
+ expect(mocks.createConnection).toHaveBeenCalledWith(expect.stringMatching(process.platform === "win32" ? /^\\\\\.\\pipe\\gg-radio-/ : /gg-radio-.+\.sock$/));
80
83
  expect(mocks.socket.end).toHaveBeenCalledWith(`${JSON.stringify({ command: ["set_property", "volume", 42] })}\n`);
81
84
  });
82
85
  it.runIf(process.platform === "darwin")("changes native macOS volume without restarting or queueing audio", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"radio.test.js","sourceRoot":"","sources":["../../src/core/radio.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radio.test.js","sourceRoot":"","sources":["../../src/core/radio.test.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ export interface RuntimeModeRefs {
7
7
  current: GoalMode;
8
8
  };
9
9
  }
10
+ /** True when this process is the ezcoder-app sidecar. */
11
+ export declare function isGgApp(): boolean;
10
12
  export declare function isPlanModeActive(planModeRef?: {
11
13
  current: boolean;
12
14
  }): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-mode.d.ts","sourceRoot":"","sources":["../../src/core/runtime-mode.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACnC,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,QAAQ,CAAA;KAAE,CAAC;CACrC;AAED,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAE5E;AAED,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE;IAAE,OAAO,EAAE,QAAQ,CAAA;CAAE,GAAG,QAAQ,CAE/E;AAED,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE;IAAE,OAAO,EAAE,QAAQ,CAAA;CAAE,GAAG,OAAO,CAE7E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEpF;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAElE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAS1F"}
1
+ {"version":3,"file":"runtime-mode.d.ts","sourceRoot":"","sources":["../../src/core/runtime-mode.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACnC,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,QAAQ,CAAA;KAAE,CAAC;CACrC;AAED,yDAAyD;AACzD,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AAED,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAE5E;AAED,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE;IAAE,OAAO,EAAE,QAAQ,CAAA;CAAE,GAAG,QAAQ,CAE/E;AAED,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE;IAAE,OAAO,EAAE,QAAQ,CAAA;CAAE,GAAG,OAAO,CAE7E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEpF;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAElE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAS1F"}
@@ -1,3 +1,7 @@
1
+ /** True when this process is the ezcoder-app sidecar. */
2
+ export function isGgApp() {
3
+ return process.env.GG_APP_PORT !== undefined;
4
+ }
1
5
  export function isPlanModeActive(planModeRef) {
2
6
  return planModeRef?.current === true;
3
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-mode.js","sourceRoot":"","sources":["../../src/core/runtime-mode.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,gBAAgB,CAAC,WAAkC;IACjE,OAAO,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,WAAmC;IACnE,OAAO,WAAW,EAAE,OAAO,IAAI,KAAK,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,WAAmC;IAClE,OAAO,iBAAiB,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,OAAO,UAAU,QAAQ,uLAAuL,CAAC;AACnN,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,QAAgB,EAAE,IAAc;IAC1E,OAAO,UAAU,QAAQ,0BAA0B,IAAI,uLAAuL,CAAC;AACjP,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAc;IACxD,OAAO,yCAAyC,IAAI,sGAAsG,CAAC;AAC7J,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAc,EAAE,UAAmB;IACzE,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,OAAO,0HAA0H,CAAC;IACpI,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,gDAAgD,IAAI,sFAAsF,CAAC;IACpJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"runtime-mode.js","sourceRoot":"","sources":["../../src/core/runtime-mode.ts"],"names":[],"mappings":"AAOA,yDAAyD;AACzD,MAAM,UAAU,OAAO;IACrB,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,WAAkC;IACjE,OAAO,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,WAAmC;IACnE,OAAO,WAAW,EAAE,OAAO,IAAI,KAAK,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,WAAmC;IAClE,OAAO,iBAAiB,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,OAAO,UAAU,QAAQ,uLAAuL,CAAC;AACnN,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,QAAgB,EAAE,IAAc;IAC1E,OAAO,UAAU,QAAQ,0BAA0B,IAAI,uLAAuL,CAAC;AACjP,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAc;IACxD,OAAO,yCAAyC,IAAI,sGAAsG,CAAC;AAC7J,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAc,EAAE,UAAmB;IACzE,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,OAAO,0HAA0H,CAAC;IACpI,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,gDAAgD,IAAI,sFAAsF,CAAC;IACpJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}