@tryglen/cli 0.37.1 → 0.38.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 (798) hide show
  1. package/README.md +21 -4
  2. package/dist/_generated/contract/index.js +3 -0
  3. package/dist/_generated/contract/index.js.map +1 -0
  4. package/dist/_generated/contract/procedures.gen.js +34 -0
  5. package/dist/_generated/contract/procedures.gen.js.map +1 -0
  6. package/dist/_generated/contract/types.gen.js +3 -0
  7. package/dist/_generated/contract/types.gen.js.map +1 -0
  8. package/dist/_generated/contract/zod.gen.js +799 -0
  9. package/dist/_generated/contract/zod.gen.js.map +1 -0
  10. package/dist/bin.js +137 -560
  11. package/dist/bin.js.map +1 -1
  12. package/dist/clients/agents/agent-bin.js +67 -0
  13. package/dist/clients/agents/agent-bin.js.map +1 -0
  14. package/dist/clients/agents/agent-path-overrides.js +23 -0
  15. package/dist/clients/agents/agent-path-overrides.js.map +1 -0
  16. package/dist/clients/agents/agents-table.js +91 -0
  17. package/dist/clients/agents/agents-table.js.map +1 -0
  18. package/dist/{_utils → clients/agents}/managed-block.js +8 -4
  19. package/dist/clients/agents/managed-block.js.map +1 -0
  20. package/dist/clients/agents/normalize-transcript-timestamp.js.map +1 -0
  21. package/dist/clients/agents/plugin-status.js +74 -0
  22. package/dist/clients/agents/plugin-status.js.map +1 -0
  23. package/dist/clients/agents/run-agent-steps.js +21 -0
  24. package/dist/clients/agents/run-agent-steps.js.map +1 -0
  25. package/dist/{_utils → clients/claude}/extract-claude-segments.js +9 -5
  26. package/dist/clients/claude/extract-claude-segments.js.map +1 -0
  27. package/dist/clients/claude/parse-claude-transcript.js +114 -0
  28. package/dist/clients/claude/parse-claude-transcript.js.map +1 -0
  29. package/dist/clients/codex/codex-app-server.js +102 -0
  30. package/dist/clients/codex/codex-app-server.js.map +1 -0
  31. package/dist/clients/codex/codex-hooks-file.js +65 -0
  32. package/dist/clients/codex/codex-hooks-file.js.map +1 -0
  33. package/dist/clients/codex/codex-hooks-merge.js +9 -0
  34. package/dist/clients/codex/codex-hooks-merge.js.map +1 -0
  35. package/dist/clients/codex/codex-hooks-setup.js +167 -0
  36. package/dist/clients/codex/codex-hooks-setup.js.map +1 -0
  37. package/dist/clients/codex/codex-paths.js +13 -0
  38. package/dist/clients/codex/codex-paths.js.map +1 -0
  39. package/dist/clients/codex/codex-repair-trace.js +36 -0
  40. package/dist/clients/codex/codex-repair-trace.js.map +1 -0
  41. package/dist/clients/codex/codex-rules-setup.js +27 -0
  42. package/dist/clients/codex/codex-rules-setup.js.map +1 -0
  43. package/dist/{_utils → clients/codex}/codex-trust-toml.js +6 -5
  44. package/dist/clients/codex/codex-trust-toml.js.map +1 -0
  45. package/dist/clients/codex/extract-codex-segments.js +64 -0
  46. package/dist/clients/codex/extract-codex-segments.js.map +1 -0
  47. package/dist/clients/codex/parse-codex-transcript.js +123 -0
  48. package/dist/clients/codex/parse-codex-transcript.js.map +1 -0
  49. package/dist/clients/cursor/parse-cursor-db.js +185 -0
  50. package/dist/clients/cursor/parse-cursor-db.js.map +1 -0
  51. package/dist/clients/git/canonical-remote-url.js +13 -0
  52. package/dist/clients/git/canonical-remote-url.js.map +1 -0
  53. package/dist/clients/git/git-context.js +60 -0
  54. package/dist/clients/git/git-context.js.map +1 -0
  55. package/dist/clients/git/git-hook-setup.js +128 -0
  56. package/dist/clients/git/git-hook-setup.js.map +1 -0
  57. package/dist/{_utils → clients/git}/pr-review-link.js +5 -4
  58. package/dist/clients/git/pr-review-link.js.map +1 -0
  59. package/dist/clients/glen-api/config.js +11 -0
  60. package/dist/clients/glen-api/config.js.map +1 -0
  61. package/dist/clients/glen-api/glen-api.js +199 -0
  62. package/dist/clients/glen-api/glen-api.js.map +1 -0
  63. package/dist/{_utils → clients/glen-api}/glen-headers.js +1 -1
  64. package/dist/clients/glen-api/glen-headers.js.map +1 -0
  65. package/dist/clients/glen-api/refresh-control-state.js +18 -0
  66. package/dist/clients/glen-api/refresh-control-state.js.map +1 -0
  67. package/dist/clients/glen-api/report-cli-install.js +20 -0
  68. package/dist/clients/glen-api/report-cli-install.js.map +1 -0
  69. package/dist/clients/glen-api/sync-mode-from-server.js +45 -0
  70. package/dist/clients/glen-api/sync-mode-from-server.js.map +1 -0
  71. package/dist/clients/indicator/indicator-app.js +127 -0
  72. package/dist/clients/indicator/indicator-app.js.map +1 -0
  73. package/dist/clients/indicator/indicator-health.js +40 -0
  74. package/dist/clients/indicator/indicator-health.js.map +1 -0
  75. package/dist/clients/jcode/jcode-bundle.js +19 -0
  76. package/dist/clients/jcode/jcode-bundle.js.map +1 -0
  77. package/dist/clients/jcode/jcode-event.js +74 -0
  78. package/dist/clients/jcode/jcode-event.js.map +1 -0
  79. package/dist/{_utils → clients/jcode}/jcode-hook-lines.js +1 -1
  80. package/dist/clients/jcode/jcode-hook-lines.js.map +1 -0
  81. package/dist/{_utils → clients/jcode}/jcode-hooks-toml.js +21 -29
  82. package/dist/clients/jcode/jcode-hooks-toml.js.map +1 -0
  83. package/dist/clients/jcode/jcode-paths.js +14 -0
  84. package/dist/clients/jcode/jcode-paths.js.map +1 -0
  85. package/dist/clients/jcode/jcode-setup.js +148 -0
  86. package/dist/clients/jcode/jcode-setup.js.map +1 -0
  87. package/dist/clients/jcode/jcode-skills-sync.js +84 -0
  88. package/dist/clients/jcode/jcode-skills-sync.js.map +1 -0
  89. package/dist/{_utils → clients/jcode}/parse-jcode-session.js +38 -35
  90. package/dist/clients/jcode/parse-jcode-session.js.map +1 -0
  91. package/dist/clients/npm/semver-newer.js +8 -0
  92. package/dist/clients/npm/semver-newer.js.map +1 -0
  93. package/dist/clients/npm/update.js +147 -0
  94. package/dist/clients/npm/update.js.map +1 -0
  95. package/dist/{_utils → clients/pi}/extract-pi-segments.js +7 -3
  96. package/dist/clients/pi/extract-pi-segments.js.map +1 -0
  97. package/dist/clients/pi/parse-pi-transcript.js +149 -0
  98. package/dist/clients/pi/parse-pi-transcript.js.map +1 -0
  99. package/dist/clients/telemetry/send-events.js +32 -0
  100. package/dist/clients/telemetry/send-events.js.map +1 -0
  101. package/dist/commands/_utils/forget-or-restore-observation-or-message.js +41 -0
  102. package/dist/commands/_utils/forget-or-restore-observation-or-message.js.map +1 -0
  103. package/dist/commands/artifact/_utils/explain-artifact-error.js +31 -0
  104. package/dist/commands/artifact/_utils/explain-artifact-error.js.map +1 -0
  105. package/dist/commands/artifact/_utils/require-slug.js +14 -0
  106. package/dist/commands/artifact/_utils/require-slug.js.map +1 -0
  107. package/dist/commands/artifact/artifact.options.js +43 -0
  108. package/dist/commands/artifact/artifact.options.js.map +1 -0
  109. package/dist/commands/artifact/create.js +87 -0
  110. package/dist/commands/artifact/create.js.map +1 -0
  111. package/dist/commands/artifact/delete.js +18 -0
  112. package/dist/commands/artifact/delete.js.map +1 -0
  113. package/dist/commands/artifact/get.js +21 -0
  114. package/dist/commands/artifact/get.js.map +1 -0
  115. package/dist/commands/artifact/list.js +4 -0
  116. package/dist/commands/artifact/list.js.map +1 -0
  117. package/dist/commands/artifact/search.js +25 -0
  118. package/dist/commands/artifact/search.js.map +1 -0
  119. package/dist/commands/artifact/share.js +42 -0
  120. package/dist/commands/artifact/share.js.map +1 -0
  121. package/dist/commands/code-search/code-search.options.js +10 -0
  122. package/dist/commands/code-search/code-search.options.js.map +1 -0
  123. package/dist/commands/code-search/index.js +106 -0
  124. package/dist/commands/code-search/index.js.map +1 -0
  125. package/dist/commands/dependency/dependency.options.js +10 -0
  126. package/dist/commands/dependency/dependency.options.js.map +1 -0
  127. package/dist/commands/dependency/index.js +25 -0
  128. package/dist/commands/dependency/index.js.map +1 -0
  129. package/dist/{_utils → commands/doctor/_utils}/ingest-diagnosis.js +16 -17
  130. package/dist/commands/doctor/_utils/ingest-diagnosis.js.map +1 -0
  131. package/dist/commands/doctor/_utils/login-check.js +48 -0
  132. package/dist/commands/doctor/_utils/login-check.js.map +1 -0
  133. package/dist/commands/doctor/doctor.options.js +17 -0
  134. package/dist/commands/doctor/doctor.options.js.map +1 -0
  135. package/dist/commands/doctor/index.js +366 -0
  136. package/dist/commands/doctor/index.js.map +1 -0
  137. package/dist/commands/feedback/feedback.options.js +82 -0
  138. package/dist/commands/feedback/feedback.options.js.map +1 -0
  139. package/dist/commands/feedback/index.js +64 -0
  140. package/dist/commands/feedback/index.js.map +1 -0
  141. package/dist/commands/forget/forget.options.js +12 -0
  142. package/dist/commands/forget/forget.options.js.map +1 -0
  143. package/dist/commands/forget/index.js +30 -0
  144. package/dist/commands/forget/index.js.map +1 -0
  145. package/dist/commands/git-hooks/git-hooks.options.js +17 -0
  146. package/dist/commands/git-hooks/git-hooks.options.js.map +1 -0
  147. package/dist/commands/git-hooks/index.js +21 -0
  148. package/dist/commands/git-hooks/index.js.map +1 -0
  149. package/dist/commands/git-hooks/write-commit-trailer.js +38 -0
  150. package/dist/commands/git-hooks/write-commit-trailer.js.map +1 -0
  151. package/dist/commands/import/_utils/collect-import-files.js +54 -0
  152. package/dist/commands/import/_utils/collect-import-files.js.map +1 -0
  153. package/dist/commands/import/_utils/detect-transcript-format.js +46 -0
  154. package/dist/commands/import/_utils/detect-transcript-format.js.map +1 -0
  155. package/dist/{_utils → commands/import/_utils}/parse-harbor-atif.js +28 -51
  156. package/dist/commands/import/_utils/parse-harbor-atif.js.map +1 -0
  157. package/dist/{_utils → commands/import/_utils}/resolve-import-workspace.js +12 -17
  158. package/dist/commands/import/_utils/resolve-import-workspace.js.map +1 -0
  159. package/dist/{_utils → commands/import/_utils}/transcript-turns.js +47 -52
  160. package/dist/commands/import/_utils/transcript-turns.js.map +1 -0
  161. package/dist/commands/import/import.options.js +18 -0
  162. package/dist/commands/import/import.options.js.map +1 -0
  163. package/dist/commands/import/import.schema.js +28 -0
  164. package/dist/commands/import/import.schema.js.map +1 -0
  165. package/dist/commands/import/index.js +284 -0
  166. package/dist/commands/import/index.js.map +1 -0
  167. package/dist/commands/incognito/incognito.options.js +7 -0
  168. package/dist/commands/incognito/incognito.options.js.map +1 -0
  169. package/dist/commands/incognito/index.js +5 -0
  170. package/dist/commands/incognito/index.js.map +1 -0
  171. package/dist/commands/indicator/index.js +59 -0
  172. package/dist/commands/indicator/index.js.map +1 -0
  173. package/dist/commands/indicator/indicator.options.js +7 -0
  174. package/dist/commands/indicator/indicator.options.js.map +1 -0
  175. package/dist/commands/ingest/_utils/agent-adapter.js +37 -0
  176. package/dist/commands/ingest/_utils/agent-adapter.js.map +1 -0
  177. package/dist/{_utils → commands/ingest/_utils}/build-turn-body.js +8 -6
  178. package/dist/commands/ingest/_utils/build-turn-body.js.map +1 -0
  179. package/dist/{_utils → commands/ingest/_utils}/format-turn-nudges.js +14 -31
  180. package/dist/commands/ingest/_utils/format-turn-nudges.js.map +1 -0
  181. package/dist/commands/ingest/_utils/idempotency-key.js +4 -0
  182. package/dist/commands/ingest/_utils/idempotency-key.js.map +1 -0
  183. package/dist/commands/ingest/_utils/ingest-failure-memo.js +58 -0
  184. package/dist/commands/ingest/_utils/ingest-failure-memo.js.map +1 -0
  185. package/dist/commands/ingest/_utils/parse-transcript.js +76 -0
  186. package/dist/commands/ingest/_utils/parse-transcript.js.map +1 -0
  187. package/dist/commands/ingest/_utils/turn-cache.js +73 -0
  188. package/dist/commands/ingest/_utils/turn-cache.js.map +1 -0
  189. package/dist/commands/ingest/index.js +379 -0
  190. package/dist/commands/ingest/index.js.map +1 -0
  191. package/dist/commands/ingest/ingest.options.js +13 -0
  192. package/dist/commands/ingest/ingest.options.js.map +1 -0
  193. package/dist/commands/install/_utils/claude-statusline.js +58 -0
  194. package/dist/commands/install/_utils/claude-statusline.js.map +1 -0
  195. package/dist/commands/install/_utils/codex-post-install.js +56 -0
  196. package/dist/commands/install/_utils/codex-post-install.js.map +1 -0
  197. package/dist/{_utils → commands/install/_utils}/ensure-global-cli.js +49 -52
  198. package/dist/commands/install/_utils/ensure-global-cli.js.map +1 -0
  199. package/dist/commands/install/_utils/finish-install.js +67 -0
  200. package/dist/commands/install/_utils/finish-install.js.map +1 -0
  201. package/dist/commands/install/_utils/jcode-install.js +29 -0
  202. package/dist/commands/install/_utils/jcode-install.js.map +1 -0
  203. package/dist/{_utils → commands/install/_utils}/npm-error-cause.js +1 -2
  204. package/dist/commands/install/_utils/npm-error-cause.js.map +1 -0
  205. package/dist/commands/install/_utils/prepare-machine.js +85 -0
  206. package/dist/commands/install/_utils/prepare-machine.js.map +1 -0
  207. package/dist/commands/install/codex-hooks-repair.js +17 -0
  208. package/dist/commands/install/codex-hooks-repair.js.map +1 -0
  209. package/dist/commands/install/index.js +186 -0
  210. package/dist/commands/install/index.js.map +1 -0
  211. package/dist/commands/install/install.options.js +41 -0
  212. package/dist/commands/install/install.options.js.map +1 -0
  213. package/dist/commands/invite/index.js +47 -0
  214. package/dist/commands/invite/index.js.map +1 -0
  215. package/dist/commands/invite/invite.options.js +24 -0
  216. package/dist/commands/invite/invite.options.js.map +1 -0
  217. package/dist/commands/login/_utils/open-browser.js +9 -0
  218. package/dist/commands/login/_utils/open-browser.js.map +1 -0
  219. package/dist/commands/login/_utils/parse-start.js +25 -0
  220. package/dist/commands/login/_utils/parse-start.js.map +1 -0
  221. package/dist/commands/login/_utils/poll-for-approval.js +55 -0
  222. package/dist/commands/login/_utils/poll-for-approval.js.map +1 -0
  223. package/dist/commands/login/index.js +101 -0
  224. package/dist/commands/login/index.js.map +1 -0
  225. package/dist/commands/login/login.options.js +12 -0
  226. package/dist/commands/login/login.options.js.map +1 -0
  227. package/dist/commands/logout/index.js +16 -0
  228. package/dist/commands/logout/index.js.map +1 -0
  229. package/dist/commands/logout/logout.options.js +4 -0
  230. package/dist/commands/logout/logout.options.js.map +1 -0
  231. package/dist/commands/onboard/index.js +20 -0
  232. package/dist/commands/onboard/index.js.map +1 -0
  233. package/dist/commands/org/_utils/apply-switch.js +37 -0
  234. package/dist/commands/org/_utils/apply-switch.js.map +1 -0
  235. package/dist/commands/org/_utils/fetch-orgs.js +19 -0
  236. package/dist/commands/org/_utils/fetch-orgs.js.map +1 -0
  237. package/dist/commands/org/list.js +14 -0
  238. package/dist/commands/org/list.js.map +1 -0
  239. package/dist/commands/org/org.options.js +10 -0
  240. package/dist/commands/org/org.options.js.map +1 -0
  241. package/dist/commands/org/switch.js +37 -0
  242. package/dist/commands/org/switch.js.map +1 -0
  243. package/dist/commands/pr-link/_utils/is-commit-command.js +14 -0
  244. package/dist/commands/pr-link/_utils/is-commit-command.js.map +1 -0
  245. package/dist/commands/pr-link/_utils/record-commit-anchor.js +46 -0
  246. package/dist/commands/pr-link/_utils/record-commit-anchor.js.map +1 -0
  247. package/dist/commands/pr-link/index.js +74 -0
  248. package/dist/commands/pr-link/index.js.map +1 -0
  249. package/dist/commands/pr-link/pr-link.options.js +13 -0
  250. package/dist/commands/pr-link/pr-link.options.js.map +1 -0
  251. package/dist/commands/restore/index.js +27 -0
  252. package/dist/commands/restore/index.js.map +1 -0
  253. package/dist/commands/restore/restore.options.js +12 -0
  254. package/dist/commands/restore/restore.options.js.map +1 -0
  255. package/dist/{_utils → commands/search/_utils}/format-search-result.js +5 -4
  256. package/dist/commands/search/_utils/format-search-result.js.map +1 -0
  257. package/dist/commands/search/_utils/runtime-timezone.js +12 -0
  258. package/dist/commands/search/_utils/runtime-timezone.js.map +1 -0
  259. package/dist/commands/search/index.js +36 -0
  260. package/dist/commands/search/index.js.map +1 -0
  261. package/dist/commands/search/search.options.js +7 -0
  262. package/dist/commands/search/search.options.js.map +1 -0
  263. package/dist/commands/session-start/index.js +119 -0
  264. package/dist/commands/session-start/index.js.map +1 -0
  265. package/dist/commands/session-start/session-start.options.js +13 -0
  266. package/dist/commands/session-start/session-start.options.js.map +1 -0
  267. package/dist/commands/set-mode/index.js +38 -0
  268. package/dist/commands/set-mode/index.js.map +1 -0
  269. package/dist/commands/set-mode/set-mode.options.js +8 -0
  270. package/dist/commands/set-mode/set-mode.options.js.map +1 -0
  271. package/dist/commands/skill/_utils/download-file.js +28 -0
  272. package/dist/commands/skill/_utils/download-file.js.map +1 -0
  273. package/dist/commands/skill/_utils/explain-skill-error.js +31 -0
  274. package/dist/commands/skill/_utils/explain-skill-error.js.map +1 -0
  275. package/dist/commands/skill/_utils/skill-cache.js +136 -0
  276. package/dist/commands/skill/_utils/skill-cache.js.map +1 -0
  277. package/dist/commands/skill/create/_utils/pack-skill-dir.js +160 -0
  278. package/dist/commands/skill/create/_utils/pack-skill-dir.js.map +1 -0
  279. package/dist/commands/skill/create/index.js +108 -0
  280. package/dist/commands/skill/create/index.js.map +1 -0
  281. package/dist/commands/skill/search.js +38 -0
  282. package/dist/commands/skill/search.js.map +1 -0
  283. package/dist/commands/skill/share.js +52 -0
  284. package/dist/commands/skill/share.js.map +1 -0
  285. package/dist/commands/skill/skill.options.js +58 -0
  286. package/dist/commands/skill/skill.options.js.map +1 -0
  287. package/dist/commands/skill/use.js +72 -0
  288. package/dist/commands/skill/use.js.map +1 -0
  289. package/dist/commands/status/index.js +33 -0
  290. package/dist/commands/status/index.js.map +1 -0
  291. package/dist/commands/status/status.options.js +4 -0
  292. package/dist/commands/status/status.options.js.map +1 -0
  293. package/dist/commands/statusline/index.js +33 -0
  294. package/dist/commands/statusline/index.js.map +1 -0
  295. package/dist/commands/statusline/statusline.options.js +4 -0
  296. package/dist/commands/statusline/statusline.options.js.map +1 -0
  297. package/dist/commands/suggestions/index.js +36 -0
  298. package/dist/commands/suggestions/index.js.map +1 -0
  299. package/dist/commands/suggestions/suggestions.options.js +12 -0
  300. package/dist/commands/suggestions/suggestions.options.js.map +1 -0
  301. package/dist/commands/takeover/_utils/agent-paths.js +13 -7
  302. package/dist/commands/takeover/_utils/agent-paths.js.map +1 -1
  303. package/dist/commands/takeover/_utils/agent-process.js +111 -0
  304. package/dist/commands/takeover/_utils/agent-process.js.map +1 -0
  305. package/dist/commands/takeover/_utils/archive-codex-desktop-thread.js +17 -58
  306. package/dist/commands/takeover/_utils/archive-codex-desktop-thread.js.map +1 -1
  307. package/dist/commands/takeover/_utils/canonical-digest.js +2 -2
  308. package/dist/commands/takeover/_utils/canonical-digest.js.map +1 -1
  309. package/dist/commands/takeover/_utils/codex-desktop-recovery.js +77 -95
  310. package/dist/commands/takeover/_utils/codex-desktop-recovery.js.map +1 -1
  311. package/dist/commands/takeover/_utils/context-fit.js +7 -4
  312. package/dist/commands/takeover/_utils/context-fit.js.map +1 -1
  313. package/dist/commands/takeover/_utils/cursor-store.js +333 -281
  314. package/dist/commands/takeover/_utils/cursor-store.js.map +1 -1
  315. package/dist/commands/takeover/_utils/import-codex-desktop-thread.js +138 -282
  316. package/dist/commands/takeover/_utils/import-codex-desktop-thread.js.map +1 -1
  317. package/dist/commands/takeover/_utils/launch-desktop-url.js +19 -24
  318. package/dist/commands/takeover/_utils/launch-desktop-url.js.map +1 -1
  319. package/dist/commands/takeover/_utils/native-file.js +86 -73
  320. package/dist/commands/takeover/_utils/native-file.js.map +1 -1
  321. package/dist/commands/takeover/_utils/probe-agent.js +12 -9
  322. package/dist/commands/takeover/_utils/probe-agent.js.map +1 -1
  323. package/dist/commands/takeover/_utils/staged-session.js +18 -17
  324. package/dist/commands/takeover/_utils/staged-session.js.map +1 -1
  325. package/dist/commands/takeover/_utils/write-claude-session.js +10 -13
  326. package/dist/commands/takeover/_utils/write-claude-session.js.map +1 -1
  327. package/dist/commands/takeover/_utils/write-codex-desktop-session.js +39 -37
  328. package/dist/commands/takeover/_utils/write-codex-desktop-session.js.map +1 -1
  329. package/dist/commands/takeover/_utils/write-codex-session.js +34 -25
  330. package/dist/commands/takeover/_utils/write-codex-session.js.map +1 -1
  331. package/dist/commands/takeover/_utils/write-cursor-session.js +8 -19
  332. package/dist/commands/takeover/_utils/write-cursor-session.js.map +1 -1
  333. package/dist/commands/takeover/_utils/write-pi-session.js +34 -22
  334. package/dist/commands/takeover/_utils/write-pi-session.js.map +1 -1
  335. package/dist/commands/takeover/index.js +129 -164
  336. package/dist/commands/takeover/index.js.map +1 -1
  337. package/dist/commands/takeover/takeover.options.js +6 -0
  338. package/dist/commands/takeover/takeover.options.js.map +1 -0
  339. package/dist/commands/takeover/takeover.schema.js +17 -55
  340. package/dist/commands/takeover/takeover.schema.js.map +1 -1
  341. package/dist/commands/telemetry/index.js +33 -0
  342. package/dist/commands/telemetry/index.js.map +1 -0
  343. package/dist/commands/telemetry/send.js +7 -0
  344. package/dist/commands/telemetry/send.js.map +1 -0
  345. package/dist/commands/telemetry/telemetry.options.js +12 -0
  346. package/dist/commands/telemetry/telemetry.options.js.map +1 -0
  347. package/dist/commands/uninstall/_utils/purge-agent-plugins.js +58 -0
  348. package/dist/commands/uninstall/_utils/purge-agent-plugins.js.map +1 -0
  349. package/dist/commands/uninstall/_utils/purge-claude-statusline.js +51 -0
  350. package/dist/commands/uninstall/_utils/purge-claude-statusline.js.map +1 -0
  351. package/dist/commands/uninstall/_utils/purge-local-state.js +52 -0
  352. package/dist/commands/uninstall/_utils/purge-local-state.js.map +1 -0
  353. package/dist/commands/uninstall/index.js +138 -0
  354. package/dist/commands/uninstall/index.js.map +1 -0
  355. package/dist/commands/uninstall/uninstall.options.js +4 -0
  356. package/dist/commands/uninstall/uninstall.options.js.map +1 -0
  357. package/dist/commands/update/index.js +117 -0
  358. package/dist/commands/update/index.js.map +1 -0
  359. package/dist/commands/update/self-update.js +7 -0
  360. package/dist/commands/update/self-update.js.map +1 -0
  361. package/dist/commands/update/update.options.js +7 -0
  362. package/dist/commands/update/update.options.js.map +1 -0
  363. package/dist/core/errors/cli-error.js +22 -0
  364. package/dist/core/errors/cli-error.js.map +1 -0
  365. package/dist/core/errors/result.js +21 -0
  366. package/dist/core/errors/result.js.map +1 -0
  367. package/dist/core/errors/settle.js +18 -0
  368. package/dist/core/errors/settle.js.map +1 -0
  369. package/dist/core/json/is-record.js +3 -0
  370. package/dist/core/json/is-record.js.map +1 -0
  371. package/dist/core/json/json-field.js +5 -0
  372. package/dist/core/json/json-field.js.map +1 -0
  373. package/dist/core/json/jsonl-records.js +15 -0
  374. package/dist/core/json/jsonl-records.js.map +1 -0
  375. package/dist/core/json/parse-json.js +4 -0
  376. package/dist/core/json/parse-json.js.map +1 -0
  377. package/dist/core/run/cli-input.js +116 -0
  378. package/dist/core/run/cli-input.js.map +1 -0
  379. package/dist/core/run/hook-agents.js +4 -0
  380. package/dist/core/run/hook-agents.js.map +1 -0
  381. package/dist/{_utils → core/run}/normalize-boolean-flags.js +0 -1
  382. package/dist/core/run/normalize-boolean-flags.js.map +1 -0
  383. package/dist/core/run/run-hook.js +18 -0
  384. package/dist/core/run/run-hook.js.map +1 -0
  385. package/dist/core/run/run.js +16 -0
  386. package/dist/core/run/run.js.map +1 -0
  387. package/dist/core/state/credentials.js +34 -0
  388. package/dist/core/state/credentials.js.map +1 -0
  389. package/dist/core/state/ephemeral-session.js +11 -0
  390. package/dist/core/state/ephemeral-session.js.map +1 -0
  391. package/dist/core/state/glen-home.js +9 -0
  392. package/dist/core/state/glen-home.js.map +1 -0
  393. package/dist/core/state/ingest-heartbeat.js +56 -0
  394. package/dist/core/state/ingest-heartbeat.js.map +1 -0
  395. package/dist/core/state/install-receipt.js +174 -0
  396. package/dist/core/state/install-receipt.js.map +1 -0
  397. package/dist/core/state/session-map.js +22 -0
  398. package/dist/core/state/session-map.js.map +1 -0
  399. package/dist/core/state/state-line-memo.js +52 -0
  400. package/dist/core/state/state-line-memo.js.map +1 -0
  401. package/dist/{_utils → core/state}/state-line.js +1 -1
  402. package/dist/core/state/state-line.js.map +1 -0
  403. package/dist/core/state/state.js +51 -0
  404. package/dist/core/state/state.js.map +1 -0
  405. package/dist/core/system/env.js +74 -0
  406. package/dist/core/system/env.js.map +1 -0
  407. package/dist/core/system/files.js +102 -0
  408. package/dist/core/system/files.js.map +1 -0
  409. package/dist/core/system/glen-base-url.js +4 -0
  410. package/dist/core/system/glen-base-url.js.map +1 -0
  411. package/dist/core/system/http.js +146 -0
  412. package/dist/core/system/http.js.map +1 -0
  413. package/dist/core/system/run-program.js +55 -0
  414. package/dist/core/system/run-program.js.map +1 -0
  415. package/dist/core/system/sha256-hex.js +4 -0
  416. package/dist/core/system/sha256-hex.js.map +1 -0
  417. package/dist/{_utils → core/system}/shell-profile.js +43 -56
  418. package/dist/core/system/shell-profile.js.map +1 -0
  419. package/dist/core/system/spawn-detached.js +10 -0
  420. package/dist/core/system/spawn-detached.js.map +1 -0
  421. package/dist/core/system/spawn-self.js +5 -0
  422. package/dist/core/system/spawn-self.js.map +1 -0
  423. package/dist/core/system/sqlite.js +55 -0
  424. package/dist/core/system/sqlite.js.map +1 -0
  425. package/dist/core/system/version.js +16 -0
  426. package/dist/core/system/version.js.map +1 -0
  427. package/dist/core/telemetry/build-event.js +27 -0
  428. package/dist/core/telemetry/build-event.js.map +1 -0
  429. package/dist/core/telemetry/events-store.js +62 -0
  430. package/dist/core/telemetry/events-store.js.map +1 -0
  431. package/dist/core/telemetry/finish-telemetry.js +32 -0
  432. package/dist/core/telemetry/finish-telemetry.js.map +1 -0
  433. package/dist/core/telemetry/install-id.js +18 -0
  434. package/dist/core/telemetry/install-id.js.map +1 -0
  435. package/dist/core/telemetry/note-if-err.js +8 -0
  436. package/dist/core/telemetry/note-if-err.js.map +1 -0
  437. package/dist/core/telemetry/record-event.js +7 -0
  438. package/dist/core/telemetry/record-event.js.map +1 -0
  439. package/dist/core/telemetry/telemetry-context.js +10 -0
  440. package/dist/core/telemetry/telemetry-context.js.map +1 -0
  441. package/dist/core/telemetry/telemetry-settings.js +32 -0
  442. package/dist/core/telemetry/telemetry-settings.js.map +1 -0
  443. package/dist/core/terminal/attention-summary.js +14 -0
  444. package/dist/core/terminal/attention-summary.js.map +1 -0
  445. package/dist/core/terminal/out.js +86 -0
  446. package/dist/core/terminal/out.js.map +1 -0
  447. package/dist/core/terminal/prompt.js +34 -0
  448. package/dist/core/terminal/prompt.js.map +1 -0
  449. package/dist/core/terminal/read-hook-event.js +17 -0
  450. package/dist/core/terminal/read-hook-event.js.map +1 -0
  451. package/dist/core/terminal/read-stdin.js +23 -0
  452. package/dist/core/terminal/read-stdin.js.map +1 -0
  453. package/dist/jcode/plugin.json +1 -1
  454. package/dist/jcode/skills/feedback/SKILL.md +8 -8
  455. package/dist/jcode/skills/invite/SKILL.md +4 -4
  456. package/dist/jcode/skills/setup/SKILL.md +6 -4
  457. package/dist/macos/glen.app/Contents/MacOS/glen +0 -0
  458. package/package.json +16 -7
  459. package/dist/_utils/agent-adapter.d.ts +0 -9
  460. package/dist/_utils/agent-adapter.js +0 -49
  461. package/dist/_utils/agent-adapter.js.map +0 -1
  462. package/dist/_utils/agents-table.d.ts +0 -11
  463. package/dist/_utils/agents-table.js +0 -35
  464. package/dist/_utils/agents-table.js.map +0 -1
  465. package/dist/_utils/build-turn-body.d.ts +0 -17
  466. package/dist/_utils/build-turn-body.js.map +0 -1
  467. package/dist/_utils/cli-error.d.ts +0 -12
  468. package/dist/_utils/cli-error.js +0 -21
  469. package/dist/_utils/cli-error.js.map +0 -1
  470. package/dist/_utils/codex-app-server.d.ts +0 -11
  471. package/dist/_utils/codex-app-server.js +0 -94
  472. package/dist/_utils/codex-app-server.js.map +0 -1
  473. package/dist/_utils/codex-hooks-merge.d.ts +0 -22
  474. package/dist/_utils/codex-hooks-merge.js +0 -60
  475. package/dist/_utils/codex-hooks-merge.js.map +0 -1
  476. package/dist/_utils/codex-hooks-setup.d.ts +0 -14
  477. package/dist/_utils/codex-hooks-setup.js +0 -162
  478. package/dist/_utils/codex-hooks-setup.js.map +0 -1
  479. package/dist/_utils/codex-paths.d.ts +0 -5
  480. package/dist/_utils/codex-paths.js +0 -10
  481. package/dist/_utils/codex-paths.js.map +0 -1
  482. package/dist/_utils/codex-repair-trace.d.ts +0 -11
  483. package/dist/_utils/codex-repair-trace.js +0 -39
  484. package/dist/_utils/codex-repair-trace.js.map +0 -1
  485. package/dist/_utils/codex-rules-setup.d.ts +0 -4
  486. package/dist/_utils/codex-rules-setup.js +0 -34
  487. package/dist/_utils/codex-rules-setup.js.map +0 -1
  488. package/dist/_utils/codex-trust-toml.d.ts +0 -7
  489. package/dist/_utils/codex-trust-toml.js.map +0 -1
  490. package/dist/_utils/collect-import-files.d.ts +0 -4
  491. package/dist/_utils/collect-import-files.js +0 -50
  492. package/dist/_utils/collect-import-files.js.map +0 -1
  493. package/dist/_utils/config.d.ts +0 -45
  494. package/dist/_utils/config.js +0 -47
  495. package/dist/_utils/config.js.map +0 -1
  496. package/dist/_utils/confirm.d.ts +0 -7
  497. package/dist/_utils/confirm.js +0 -35
  498. package/dist/_utils/confirm.js.map +0 -1
  499. package/dist/_utils/credentials.d.ts +0 -15
  500. package/dist/_utils/credentials.js +0 -62
  501. package/dist/_utils/credentials.js.map +0 -1
  502. package/dist/_utils/detect-transcript-format.d.ts +0 -2
  503. package/dist/_utils/detect-transcript-format.js +0 -57
  504. package/dist/_utils/detect-transcript-format.js.map +0 -1
  505. package/dist/_utils/ensure-global-cli.d.ts +0 -4
  506. package/dist/_utils/ensure-global-cli.js.map +0 -1
  507. package/dist/_utils/ephemeral-session.d.ts +0 -2
  508. package/dist/_utils/ephemeral-session.js +0 -12
  509. package/dist/_utils/ephemeral-session.js.map +0 -1
  510. package/dist/_utils/extract-claude-segments.d.ts +0 -2
  511. package/dist/_utils/extract-claude-segments.js.map +0 -1
  512. package/dist/_utils/extract-codex-segments.d.ts +0 -2
  513. package/dist/_utils/extract-codex-segments.js +0 -65
  514. package/dist/_utils/extract-codex-segments.js.map +0 -1
  515. package/dist/_utils/extract-pi-segments.d.ts +0 -2
  516. package/dist/_utils/extract-pi-segments.js.map +0 -1
  517. package/dist/_utils/find-bin.d.ts +0 -7
  518. package/dist/_utils/find-bin.js +0 -89
  519. package/dist/_utils/find-bin.js.map +0 -1
  520. package/dist/_utils/format-search-result.d.ts +0 -2
  521. package/dist/_utils/format-search-result.js.map +0 -1
  522. package/dist/_utils/format-turn-nudges.d.ts +0 -2
  523. package/dist/_utils/format-turn-nudges.js.map +0 -1
  524. package/dist/_utils/git-context.d.ts +0 -13
  525. package/dist/_utils/git-context.js +0 -82
  526. package/dist/_utils/git-context.js.map +0 -1
  527. package/dist/_utils/git-hook-setup.d.ts +0 -18
  528. package/dist/_utils/git-hook-setup.js +0 -115
  529. package/dist/_utils/git-hook-setup.js.map +0 -1
  530. package/dist/_utils/glen-headers.d.ts +0 -8
  531. package/dist/_utils/glen-headers.js.map +0 -1
  532. package/dist/_utils/http.d.ts +0 -23
  533. package/dist/_utils/http.js +0 -97
  534. package/dist/_utils/http.js.map +0 -1
  535. package/dist/_utils/idempotency-key.d.ts +0 -2
  536. package/dist/_utils/idempotency-key.js +0 -7
  537. package/dist/_utils/idempotency-key.js.map +0 -1
  538. package/dist/_utils/indicator-app.d.ts +0 -9
  539. package/dist/_utils/indicator-app.js +0 -91
  540. package/dist/_utils/indicator-app.js.map +0 -1
  541. package/dist/_utils/indicator-health.d.ts +0 -8
  542. package/dist/_utils/indicator-health.js +0 -37
  543. package/dist/_utils/indicator-health.js.map +0 -1
  544. package/dist/_utils/ingest-diagnosis.d.ts +0 -24
  545. package/dist/_utils/ingest-diagnosis.js.map +0 -1
  546. package/dist/_utils/ingest-failure-memo.d.ts +0 -2
  547. package/dist/_utils/ingest-failure-memo.js +0 -58
  548. package/dist/_utils/ingest-failure-memo.js.map +0 -1
  549. package/dist/_utils/ingest-heartbeat.d.ts +0 -9
  550. package/dist/_utils/ingest-heartbeat.js +0 -48
  551. package/dist/_utils/ingest-heartbeat.js.map +0 -1
  552. package/dist/_utils/install-receipt.d.ts +0 -51
  553. package/dist/_utils/install-receipt.js +0 -202
  554. package/dist/_utils/install-receipt.js.map +0 -1
  555. package/dist/_utils/jcode-bundle.d.ts +0 -3
  556. package/dist/_utils/jcode-bundle.js +0 -16
  557. package/dist/_utils/jcode-bundle.js.map +0 -1
  558. package/dist/_utils/jcode-event.d.ts +0 -3
  559. package/dist/_utils/jcode-event.js +0 -66
  560. package/dist/_utils/jcode-event.js.map +0 -1
  561. package/dist/_utils/jcode-hook-lines.d.ts +0 -5
  562. package/dist/_utils/jcode-hook-lines.js.map +0 -1
  563. package/dist/_utils/jcode-hooks-toml.d.ts +0 -8
  564. package/dist/_utils/jcode-hooks-toml.js.map +0 -1
  565. package/dist/_utils/jcode-paths.d.ts +0 -7
  566. package/dist/_utils/jcode-paths.js +0 -10
  567. package/dist/_utils/jcode-paths.js.map +0 -1
  568. package/dist/_utils/jcode-setup.d.ts +0 -27
  569. package/dist/_utils/jcode-setup.js +0 -151
  570. package/dist/_utils/jcode-setup.js.map +0 -1
  571. package/dist/_utils/jcode-skills-sync.d.ts +0 -8
  572. package/dist/_utils/jcode-skills-sync.js +0 -74
  573. package/dist/_utils/jcode-skills-sync.js.map +0 -1
  574. package/dist/_utils/login-check.d.ts +0 -2
  575. package/dist/_utils/login-check.js +0 -57
  576. package/dist/_utils/login-check.js.map +0 -1
  577. package/dist/_utils/managed-block.d.ts +0 -4
  578. package/dist/_utils/managed-block.js.map +0 -1
  579. package/dist/_utils/normalize-boolean-flags.d.ts +0 -2
  580. package/dist/_utils/normalize-boolean-flags.js.map +0 -1
  581. package/dist/_utils/normalize-transcript-timestamp.d.ts +0 -2
  582. package/dist/_utils/normalize-transcript-timestamp.js.map +0 -1
  583. package/dist/_utils/npm-error-cause.d.ts +0 -5
  584. package/dist/_utils/npm-error-cause.js.map +0 -1
  585. package/dist/_utils/open-browser.d.ts +0 -2
  586. package/dist/_utils/open-browser.js +0 -18
  587. package/dist/_utils/open-browser.js.map +0 -1
  588. package/dist/_utils/parse-claude-transcript.d.ts +0 -3
  589. package/dist/_utils/parse-claude-transcript.js +0 -145
  590. package/dist/_utils/parse-claude-transcript.js.map +0 -1
  591. package/dist/_utils/parse-codex-transcript.d.ts +0 -3
  592. package/dist/_utils/parse-codex-transcript.js +0 -132
  593. package/dist/_utils/parse-codex-transcript.js.map +0 -1
  594. package/dist/_utils/parse-cursor-db.d.ts +0 -5
  595. package/dist/_utils/parse-cursor-db.js +0 -212
  596. package/dist/_utils/parse-cursor-db.js.map +0 -1
  597. package/dist/_utils/parse-harbor-atif.d.ts +0 -3
  598. package/dist/_utils/parse-harbor-atif.js.map +0 -1
  599. package/dist/_utils/parse-jcode-session.d.ts +0 -14
  600. package/dist/_utils/parse-jcode-session.js.map +0 -1
  601. package/dist/_utils/parse-pi-transcript.d.ts +0 -3
  602. package/dist/_utils/parse-pi-transcript.js +0 -164
  603. package/dist/_utils/parse-pi-transcript.js.map +0 -1
  604. package/dist/_utils/parse-transcript.d.ts +0 -14
  605. package/dist/_utils/parse-transcript.js +0 -94
  606. package/dist/_utils/parse-transcript.js.map +0 -1
  607. package/dist/_utils/plugin-status.d.ts +0 -4
  608. package/dist/_utils/plugin-status.js +0 -76
  609. package/dist/_utils/plugin-status.js.map +0 -1
  610. package/dist/_utils/post-route.d.ts +0 -6
  611. package/dist/_utils/post-route.js +0 -66
  612. package/dist/_utils/post-route.js.map +0 -1
  613. package/dist/_utils/pr-review-link.d.ts +0 -11
  614. package/dist/_utils/pr-review-link.js.map +0 -1
  615. package/dist/_utils/proactive-ticket-log.d.ts +0 -3
  616. package/dist/_utils/proactive-ticket-log.js +0 -21
  617. package/dist/_utils/proactive-ticket-log.js.map +0 -1
  618. package/dist/_utils/purge-agent-plugins.d.ts +0 -8
  619. package/dist/_utils/purge-agent-plugins.js +0 -62
  620. package/dist/_utils/purge-agent-plugins.js.map +0 -1
  621. package/dist/_utils/purge-claude-statusline.d.ts +0 -12
  622. package/dist/_utils/purge-claude-statusline.js +0 -57
  623. package/dist/_utils/purge-claude-statusline.js.map +0 -1
  624. package/dist/_utils/purge-local-state.d.ts +0 -7
  625. package/dist/_utils/purge-local-state.js +0 -40
  626. package/dist/_utils/purge-local-state.js.map +0 -1
  627. package/dist/_utils/record-commit-anchor.d.ts +0 -8
  628. package/dist/_utils/record-commit-anchor.js +0 -73
  629. package/dist/_utils/record-commit-anchor.js.map +0 -1
  630. package/dist/_utils/refresh-control-state.d.ts +0 -6
  631. package/dist/_utils/refresh-control-state.js +0 -30
  632. package/dist/_utils/refresh-control-state.js.map +0 -1
  633. package/dist/_utils/render-callback-page.d.ts +0 -2
  634. package/dist/_utils/render-callback-page.js +0 -90
  635. package/dist/_utils/render-callback-page.js.map +0 -1
  636. package/dist/_utils/report-cli-install.d.ts +0 -2
  637. package/dist/_utils/report-cli-install.js +0 -17
  638. package/dist/_utils/report-cli-install.js.map +0 -1
  639. package/dist/_utils/resolve-import-workspace.d.ts +0 -4
  640. package/dist/_utils/resolve-import-workspace.js.map +0 -1
  641. package/dist/_utils/result.d.ts +0 -14
  642. package/dist/_utils/result.js +0 -12
  643. package/dist/_utils/result.js.map +0 -1
  644. package/dist/_utils/run-bin.d.ts +0 -14
  645. package/dist/_utils/run-bin.js +0 -60
  646. package/dist/_utils/run-bin.js.map +0 -1
  647. package/dist/_utils/runtime-timezone.d.ts +0 -1
  648. package/dist/_utils/runtime-timezone.js +0 -13
  649. package/dist/_utils/runtime-timezone.js.map +0 -1
  650. package/dist/_utils/session-map.d.ts +0 -4
  651. package/dist/_utils/session-map.js +0 -38
  652. package/dist/_utils/session-map.js.map +0 -1
  653. package/dist/_utils/shell-profile.d.ts +0 -13
  654. package/dist/_utils/shell-profile.js.map +0 -1
  655. package/dist/_utils/state-line-memo.d.ts +0 -2
  656. package/dist/_utils/state-line-memo.js +0 -47
  657. package/dist/_utils/state-line-memo.js.map +0 -1
  658. package/dist/_utils/state-line.d.ts +0 -3
  659. package/dist/_utils/state-line.js.map +0 -1
  660. package/dist/_utils/state.d.ts +0 -15
  661. package/dist/_utils/state.js +0 -53
  662. package/dist/_utils/state.js.map +0 -1
  663. package/dist/_utils/sync-mode-from-server.d.ts +0 -3
  664. package/dist/_utils/sync-mode-from-server.js +0 -44
  665. package/dist/_utils/sync-mode-from-server.js.map +0 -1
  666. package/dist/_utils/transcript-turns.d.ts +0 -51
  667. package/dist/_utils/transcript-turns.js.map +0 -1
  668. package/dist/_utils/turn-cache.d.ts +0 -7
  669. package/dist/_utils/turn-cache.js +0 -56
  670. package/dist/_utils/turn-cache.js.map +0 -1
  671. package/dist/_utils/update.d.ts +0 -19
  672. package/dist/_utils/update.js +0 -196
  673. package/dist/_utils/update.js.map +0 -1
  674. package/dist/_utils/version.d.ts +0 -2
  675. package/dist/_utils/version.js +0 -18
  676. package/dist/_utils/version.js.map +0 -1
  677. package/dist/_utils/which.d.ts +0 -2
  678. package/dist/_utils/which.js +0 -4
  679. package/dist/_utils/which.js.map +0 -1
  680. package/dist/_utils/write-commit-trailer.d.ts +0 -2
  681. package/dist/_utils/write-commit-trailer.js +0 -25
  682. package/dist/_utils/write-commit-trailer.js.map +0 -1
  683. package/dist/bin.d.ts +0 -2
  684. package/dist/commands/_utils/materialize-skill.d.ts +0 -30
  685. package/dist/commands/_utils/materialize-skill.js +0 -207
  686. package/dist/commands/_utils/materialize-skill.js.map +0 -1
  687. package/dist/commands/_utils/mutate-evidence.d.ts +0 -17
  688. package/dist/commands/_utils/mutate-evidence.js +0 -80
  689. package/dist/commands/_utils/mutate-evidence.js.map +0 -1
  690. package/dist/commands/_utils/pack-skill-dir.d.ts +0 -15
  691. package/dist/commands/_utils/pack-skill-dir.js +0 -169
  692. package/dist/commands/_utils/pack-skill-dir.js.map +0 -1
  693. package/dist/commands/artifact.d.ts +0 -18
  694. package/dist/commands/artifact.js +0 -139
  695. package/dist/commands/artifact.js.map +0 -1
  696. package/dist/commands/code-search.d.ts +0 -4
  697. package/dist/commands/code-search.js +0 -164
  698. package/dist/commands/code-search.js.map +0 -1
  699. package/dist/commands/dependency.d.ts +0 -4
  700. package/dist/commands/dependency.js +0 -23
  701. package/dist/commands/dependency.js.map +0 -1
  702. package/dist/commands/doctor.d.ts +0 -7
  703. package/dist/commands/doctor.js +0 -243
  704. package/dist/commands/doctor.js.map +0 -1
  705. package/dist/commands/feedback.d.ts +0 -15
  706. package/dist/commands/feedback.js +0 -112
  707. package/dist/commands/feedback.js.map +0 -1
  708. package/dist/commands/forget.d.ts +0 -4
  709. package/dist/commands/forget.js +0 -29
  710. package/dist/commands/forget.js.map +0 -1
  711. package/dist/commands/git-hooks.d.ts +0 -9
  712. package/dist/commands/git-hooks.js +0 -18
  713. package/dist/commands/git-hooks.js.map +0 -1
  714. package/dist/commands/import.d.ts +0 -8
  715. package/dist/commands/import.js +0 -414
  716. package/dist/commands/import.js.map +0 -1
  717. package/dist/commands/incognito.d.ts +0 -4
  718. package/dist/commands/incognito.js +0 -13
  719. package/dist/commands/incognito.js.map +0 -1
  720. package/dist/commands/indicator.d.ts +0 -4
  721. package/dist/commands/indicator.js +0 -65
  722. package/dist/commands/indicator.js.map +0 -1
  723. package/dist/commands/ingest.d.ts +0 -3
  724. package/dist/commands/ingest.js +0 -367
  725. package/dist/commands/ingest.js.map +0 -1
  726. package/dist/commands/install.d.ts +0 -9
  727. package/dist/commands/install.js +0 -431
  728. package/dist/commands/install.js.map +0 -1
  729. package/dist/commands/invite.d.ts +0 -4
  730. package/dist/commands/invite.js +0 -61
  731. package/dist/commands/invite.js.map +0 -1
  732. package/dist/commands/login.d.ts +0 -4
  733. package/dist/commands/login.js +0 -145
  734. package/dist/commands/login.js.map +0 -1
  735. package/dist/commands/logout.d.ts +0 -4
  736. package/dist/commands/logout.js +0 -26
  737. package/dist/commands/logout.js.map +0 -1
  738. package/dist/commands/onboard.d.ts +0 -4
  739. package/dist/commands/onboard.js +0 -18
  740. package/dist/commands/onboard.js.map +0 -1
  741. package/dist/commands/org.d.ts +0 -5
  742. package/dist/commands/org.js +0 -157
  743. package/dist/commands/org.js.map +0 -1
  744. package/dist/commands/pr-link.d.ts +0 -2
  745. package/dist/commands/pr-link.js +0 -69
  746. package/dist/commands/pr-link.js.map +0 -1
  747. package/dist/commands/restore.d.ts +0 -4
  748. package/dist/commands/restore.js +0 -23
  749. package/dist/commands/restore.js.map +0 -1
  750. package/dist/commands/search.d.ts +0 -4
  751. package/dist/commands/search.js +0 -85
  752. package/dist/commands/search.js.map +0 -1
  753. package/dist/commands/session-start.d.ts +0 -2
  754. package/dist/commands/session-start.js +0 -114
  755. package/dist/commands/session-start.js.map +0 -1
  756. package/dist/commands/set-mode.d.ts +0 -5
  757. package/dist/commands/set-mode.js +0 -96
  758. package/dist/commands/set-mode.js.map +0 -1
  759. package/dist/commands/skill.d.ts +0 -18
  760. package/dist/commands/skill.js +0 -309
  761. package/dist/commands/skill.js.map +0 -1
  762. package/dist/commands/status.d.ts +0 -4
  763. package/dist/commands/status.js +0 -33
  764. package/dist/commands/status.js.map +0 -1
  765. package/dist/commands/statusline.d.ts +0 -2
  766. package/dist/commands/statusline.js +0 -37
  767. package/dist/commands/statusline.js.map +0 -1
  768. package/dist/commands/suggestions.d.ts +0 -4
  769. package/dist/commands/suggestions.js +0 -84
  770. package/dist/commands/suggestions.js.map +0 -1
  771. package/dist/commands/takeover/_utils/agent-paths.d.ts +0 -6
  772. package/dist/commands/takeover/_utils/archive-codex-desktop-thread.d.ts +0 -5
  773. package/dist/commands/takeover/_utils/canonical-digest.d.ts +0 -5
  774. package/dist/commands/takeover/_utils/codex-desktop-recovery.d.ts +0 -16
  775. package/dist/commands/takeover/_utils/context-fit.d.ts +0 -18
  776. package/dist/commands/takeover/_utils/cursor-store.d.ts +0 -49
  777. package/dist/commands/takeover/_utils/import-codex-desktop-thread.d.ts +0 -14
  778. package/dist/commands/takeover/_utils/launch-desktop-url.d.ts +0 -4
  779. package/dist/commands/takeover/_utils/native-file.d.ts +0 -14
  780. package/dist/commands/takeover/_utils/probe-agent.d.ts +0 -20
  781. package/dist/commands/takeover/_utils/provenance-context.d.ts +0 -7
  782. package/dist/commands/takeover/_utils/staged-session.d.ts +0 -64
  783. package/dist/commands/takeover/_utils/write-claude-desktop-session.d.ts +0 -47
  784. package/dist/commands/takeover/_utils/write-claude-session.d.ts +0 -53
  785. package/dist/commands/takeover/_utils/write-codex-desktop-session.d.ts +0 -96
  786. package/dist/commands/takeover/_utils/write-codex-session.d.ts +0 -52
  787. package/dist/commands/takeover/_utils/write-cursor-session.d.ts +0 -57
  788. package/dist/commands/takeover/_utils/write-pi-session.d.ts +0 -52
  789. package/dist/commands/takeover/index.d.ts +0 -21
  790. package/dist/commands/takeover/takeover.schema.d.ts +0 -24
  791. package/dist/commands/uninstall.d.ts +0 -8
  792. package/dist/commands/uninstall.js +0 -130
  793. package/dist/commands/uninstall.js.map +0 -1
  794. package/dist/commands/update.d.ts +0 -4
  795. package/dist/commands/update.js +0 -127
  796. package/dist/commands/update.js.map +0 -1
  797. package/dist/jcode/skills/session-takeover/SKILL.md +0 -67
  798. /package/dist/{_utils → clients/agents}/normalize-transcript-timestamp.js +0 -0
@@ -0,0 +1,366 @@
1
+ import { agentsTable } from "../../clients/agents/agents-table.js";
2
+ import { cliErr } from "../../core/errors/cli-error.js";
3
+ import { listCodexHooks } from "../../clients/codex/codex-app-server.js";
4
+ import { codexHooks } from "../../clients/codex/codex-hooks-setup.js";
5
+ import { codexRepairTrace } from "../../clients/codex/codex-repair-trace.js";
6
+ import { credentials } from "../../core/state/credentials.js";
7
+ import { agentBin } from "../../clients/agents/agent-bin.js";
8
+ import { indicatorApp } from "../../clients/indicator/indicator-app.js";
9
+ import { indicatorHealth } from "../../clients/indicator/indicator-health.js";
10
+ import { ingestHeartbeat } from "../../core/state/ingest-heartbeat.js";
11
+ import { installReceipt } from "../../core/state/install-receipt.js";
12
+ import { jcodeSetup } from "../../clients/jcode/jcode-setup.js";
13
+ import { out } from "../../core/terminal/out.js";
14
+ import { glenPluginStatus } from "../../clients/agents/plugin-status.js";
15
+ import { err, ok } from "../../core/errors/result.js";
16
+ import { runProgram } from "../../core/system/run-program.js";
17
+ import { semverNewer } from "../../clients/npm/semver-newer.js";
18
+ import { spawnDetached } from "../../core/system/spawn-detached.js";
19
+ import { spawnSelfDetached } from "../../core/system/spawn-self.js";
20
+ import { glenState } from "../../core/state/state.js";
21
+ import { recordEvent } from "../../core/telemetry/record-event.js";
22
+ import { selfUpdate } from "../../clients/npm/update.js";
23
+ import { cliVersion } from "../../core/system/version.js";
24
+ import { ingestDiagnosis } from "./_utils/ingest-diagnosis.js";
25
+ import { runLoginCheck } from "./_utils/login-check.js";
26
+ import { doctorOptions } from "./doctor.options.js";
27
+ const DAY_MS = 24 * 60 * 60 * 1000;
28
+ // Runs from the shell profile, which redirects this stdout line to stderr.
29
+ const loginCheck = async () => {
30
+ const { line, memoFailure } = await runLoginCheck();
31
+ if (line)
32
+ out.hookText(`${line}\n`);
33
+ return memoFailure ? err(memoFailure) : ok(undefined);
34
+ };
35
+ const backgroundUpdate = (bin, args) => spawnDetached(agentBin.resolve(bin) ?? bin, args)
36
+ ? []
37
+ : [
38
+ cliErr("Exec", {
39
+ code: "doctor.background_update_failed",
40
+ what: `could not start \`${bin} ${args.join(" ")}\` in the background`,
41
+ remedy: "run `glen update`",
42
+ }),
43
+ ];
44
+ const repairCodexHooks = async () => {
45
+ if (!agentBin.isInstalled("codex") || !(await codexHooks.isInstalled()))
46
+ return [];
47
+ const trace = await codexRepairTrace.read();
48
+ const fresh = trace?.ok === true && Date.now() - Date.parse(trace.at) < DAY_MS;
49
+ if (fresh || spawnSelfDetached(["__codex-hooks-repair"]))
50
+ return [];
51
+ return [
52
+ cliErr("Exec", {
53
+ code: "doctor.codex_repair_spawn_failed",
54
+ what: "could not start the background codex hook repair",
55
+ remedy: "run `glen install --agent codex`",
56
+ }),
57
+ ];
58
+ };
59
+ const autoConverge = async () => {
60
+ await selfUpdate.maybeSpawnInBackground();
61
+ const indicator = await indicatorApp.ensureRunning();
62
+ const failures = [
63
+ ...(indicator.ok ? [] : [indicator.error]),
64
+ ...agentsTable.cliPluginAgents.flatMap((agent) => agentBin.isInstalled(agent.bin) &&
65
+ (agent.bin !== "pi" || glenPluginStatus("pi") === "installed")
66
+ ? agent.plugin.updateSteps.flatMap((step) => backgroundUpdate(agent.bin, step))
67
+ : []),
68
+ ...(agentBin.isInstalled("jcode") &&
69
+ glenPluginStatus("jcode") === "installed"
70
+ ? await (async () => {
71
+ const r = await jcodeSetup.install();
72
+ return r.ok ? [] : [r.error];
73
+ })()
74
+ : []),
75
+ ...(await repairCodexHooks()),
76
+ ];
77
+ const [first, ...rest] = failures;
78
+ for (const e of rest)
79
+ recordEvent("error", e);
80
+ return first ? err(first) : ok(undefined);
81
+ };
82
+ // A chatty shell profile prints banners first: only a final absolute path counts.
83
+ const probeShell = (shell, args) => {
84
+ const res = runProgram(shell, args, { timeoutMs: 5000 });
85
+ if (!res.ok)
86
+ return null;
87
+ const last = res.value.stdout
88
+ .split("\n")
89
+ .map((line) => line.trim())
90
+ .filter((line) => line.length > 0)
91
+ .pop();
92
+ return last?.startsWith("/") ? last : null;
93
+ };
94
+ const NO_CAUSE_REMEDY = "no cause found on this machine. If you connect to this machine from a local agent (Codex --remote / SSH), hooks run HERE; if the agent process runs elsewhere, install glen there and run `glen doctor` on that machine as the connecting user";
95
+ const detectAgents = async () => {
96
+ const claude = agentBin.isInstalled("claude");
97
+ const codex = agentBin.isInstalled("codex");
98
+ const pi = agentBin.isInstalled("pi");
99
+ const jcode = agentBin.isInstalled("jcode");
100
+ return {
101
+ claude,
102
+ claudePlugin: claude ? glenPluginStatus("claude") : null,
103
+ codex,
104
+ codexPlugin: codex ? glenPluginStatus("codex") : null,
105
+ hooksRegistered: codex && (await codexHooks.isInstalled()),
106
+ cursor: agentBin.isInstalled("cursor"),
107
+ pi,
108
+ piPlugin: pi ? glenPluginStatus("pi") : null,
109
+ jcode,
110
+ jcodePlugin: jcode ? glenPluginStatus("jcode") : null,
111
+ };
112
+ };
113
+ const printAgents = (d) => {
114
+ out.data(d.claude
115
+ ? `status: claude=detected plugin=${d.claudePlugin}`
116
+ : "status: claude=not-found");
117
+ out.data(d.codex
118
+ ? `status: codex=detected plugin=${d.codexPlugin} hooks=${d.hooksRegistered ? "registered" : "not-registered"}`
119
+ : "status: codex=not-found");
120
+ out.data(d.cursor
121
+ ? "status: cursor=detected plugin=unknown (Cursor has no plugin CLI, so check inside Cursor under /add-plugin)"
122
+ : "status: cursor=not-found");
123
+ out.data(d.pi ? `status: pi=detected plugin=${d.piPlugin}` : "status: pi=not-found");
124
+ out.data(d.jcode
125
+ ? `status: jcode=detected plugin=${d.jcodePlugin}`
126
+ : "status: jcode=not-found");
127
+ };
128
+ const fail = (problem) => ({ level: "error", problem });
129
+ const warn = (problem) => ({ level: "warn", problem });
130
+ const hint = (text) => ({ level: "hint", text });
131
+ const neverRecorded = (agent, remedy) => warn(cliErr("Exec", {
132
+ code: "doctor.capture_never",
133
+ what: `${agent} has never recorded a turn on this machine`,
134
+ remedy,
135
+ }));
136
+ const reportIngest = async (d) => {
137
+ const heartbeat = await ingestHeartbeat.read();
138
+ const installedAt = await installReceipt.installedAt();
139
+ const now = Date.now();
140
+ const agents = [
141
+ { key: "claude-code", detected: d.claude },
142
+ { key: "codex", detected: d.codex },
143
+ { key: "cursor", detected: d.cursor },
144
+ { key: "pi", detected: d.pi },
145
+ { key: "jcode", detected: d.jcode },
146
+ ];
147
+ const findings = [];
148
+ const failing = [];
149
+ for (const { key, detected } of agents) {
150
+ if (!detected)
151
+ continue;
152
+ const diagnosis = ingestDiagnosis.diagnose({
153
+ agent: key,
154
+ heartbeat,
155
+ installedAt,
156
+ now,
157
+ });
158
+ const lastSuccess = diagnosis.lastSuccessAt !== null
159
+ ? new Date(diagnosis.lastSuccessAt).toISOString()
160
+ : "never";
161
+ out.data(`status: ingest agent=${key} state=${diagnosis.state} lastSuccess=${lastSuccess}`);
162
+ if (diagnosis.state === "failing") {
163
+ failing.push(key);
164
+ continue;
165
+ }
166
+ if (diagnosis.state !== "never")
167
+ continue;
168
+ if (key === "codex") {
169
+ if (d.hooksRegistered)
170
+ findings.push(...(await ingestDiagnosis.codexNeverDifferential({
171
+ listHooks: () => listCodexHooks(process.cwd()),
172
+ probeShell,
173
+ })).map((remedy) => neverRecorded("codex", remedy)));
174
+ }
175
+ else if ((key === "claude-code" && d.claudePlugin === "installed") ||
176
+ (key === "pi" && d.piPlugin === "installed") ||
177
+ (key === "jcode" && d.jcodePlugin === "installed"))
178
+ findings.push(neverRecorded(key, NO_CAUSE_REMEDY));
179
+ }
180
+ return failing.length === 0
181
+ ? findings
182
+ : [
183
+ fail(cliErr("Exec", {
184
+ code: "doctor.capture_failing",
185
+ what: `memory capture is failing for ${failing.join(", ")}`,
186
+ remedy: "run `glen status`, then `glen login` if disconnected; see recent errors with a new agent session",
187
+ })),
188
+ ...findings,
189
+ ];
190
+ };
191
+ const reportIndicator = async () => {
192
+ if (process.platform !== "darwin")
193
+ return null;
194
+ if (await indicatorApp.optedOut()) {
195
+ out.data("status: indicator=disabled");
196
+ return null;
197
+ }
198
+ const registered = indicatorApp.running();
199
+ const visibility = indicatorHealth.label(registered, await indicatorHealth.read());
200
+ out.data(`status: indicator=${registered ? "registered" : "not-registered"} visibility=${visibility}`);
201
+ return visibility;
202
+ };
203
+ const reportSelfHeal = async (hooksRegistered) => {
204
+ if (!hooksRegistered)
205
+ return false;
206
+ const trace = await codexRepairTrace.read();
207
+ const selfHeal = trace === null
208
+ ? "never-ran"
209
+ : trace.ok
210
+ ? "ok"
211
+ : `failed: ${trace.error ?? "unknown"}`;
212
+ out.data(`status: codex-self-heal=${selfHeal}`);
213
+ return trace !== null && !trace.ok;
214
+ };
215
+ const indicatorFindings = (visibility) => {
216
+ if (visibility === "not-running")
217
+ return [
218
+ warn(cliErr("Exec", {
219
+ code: "doctor.indicator_not_running",
220
+ what: "the menu bar indicator isn't running",
221
+ remedy: "run `glen indicator start` to show your recording status in the menu bar",
222
+ })),
223
+ ];
224
+ if (visibility === "occluded-by-notch")
225
+ return [
226
+ warn(cliErr("Exec", {
227
+ code: "doctor.indicator_hidden",
228
+ what: "your glen indicator is hidden behind the notch",
229
+ remedy: "⌘-drag it left to reposition it",
230
+ })),
231
+ ];
232
+ if (visibility === "off-screen" || visibility === "stale")
233
+ return [
234
+ warn(cliErr("Exec", {
235
+ code: "doctor.indicator_offscreen",
236
+ what: "your glen indicator isn't visible",
237
+ remedy: "run `glen indicator stop` then `glen indicator start`",
238
+ })),
239
+ ];
240
+ return [];
241
+ };
242
+ const pluginMissing = (name, bin) => fail(cliErr("Usage", {
243
+ code: "doctor.plugin_missing",
244
+ what: `${name} is installed but the glen plugin isn't`,
245
+ remedy: `run \`glen install --agent ${bin}\``,
246
+ }));
247
+ const agentFindings = (d, selfHealFailed) => [
248
+ ...[
249
+ ["Claude Code", "claude", d.claude, d.claudePlugin],
250
+ ["Codex", "codex", d.codex, d.codexPlugin],
251
+ ["pi", "pi", d.pi, d.piPlugin],
252
+ ["jcode", "jcode", d.jcode, d.jcodePlugin],
253
+ ].flatMap(([name, bin, detected, plugin]) => detected && plugin === "not-installed" ? [pluginMissing(name, bin)] : []),
254
+ ...[
255
+ ["claude", d.claude],
256
+ ["codex", d.codex],
257
+ ].flatMap(([bin, detected]) => detected
258
+ ? []
259
+ : [
260
+ hint(`if ${bin} IS installed: run \`which ${bin}\`, then \`glen install --${bin}-path <path>\``),
261
+ ]),
262
+ ...(d.codex && !d.hooksRegistered
263
+ ? [
264
+ fail(cliErr("Usage", {
265
+ code: "doctor.codex_hooks_missing",
266
+ what: "Codex hooks are not registered",
267
+ remedy: "run `glen install --agent codex`",
268
+ })),
269
+ ]
270
+ : []),
271
+ ...(selfHealFailed
272
+ ? [
273
+ fail(cliErr("Exec", {
274
+ code: "doctor.codex_self_heal_failed",
275
+ what: "the background Codex hook repair failed",
276
+ remedy: "run `glen install --agent codex`",
277
+ })),
278
+ ]
279
+ : []),
280
+ ];
281
+ const print = (findings) => {
282
+ const seen = new Set();
283
+ const once = (key) => !seen.has(key) && Boolean(seen.add(key));
284
+ for (const level of ["error", "warn", "hint"])
285
+ for (const f of findings) {
286
+ if (f.level !== level)
287
+ continue;
288
+ if (f.level === "hint") {
289
+ if (once(`hint ${f.text}`))
290
+ out.hint(f.text);
291
+ }
292
+ else if (once(`${f.problem.code} ${f.problem.what} ${f.problem.remedy}`))
293
+ out[f.level](f.problem);
294
+ }
295
+ };
296
+ // The setup skill parses these `status:` lines: keep prefixes and fields exact.
297
+ const report = async () => {
298
+ out.heading("glen doctor");
299
+ const latest = await selfUpdate.fetchLatest();
300
+ const channel = selfUpdate.isNpmGlobalInstall() ? "npm-global" : "other";
301
+ out.data(`status: cli=${cliVersion} latest=${latest ?? "unknown"} channel=${channel}`);
302
+ const creds = await credentials.read();
303
+ const state = await glenState.read();
304
+ const orgField = state
305
+ ? `"${state.activeOrgName ?? state.activeOrgSlug ?? state.activeOrgId}"`
306
+ : "missing";
307
+ out.data(`status: login=${creds ? "ok" : "missing"} org=${orgField}`);
308
+ const d = await detectAgents();
309
+ printAgents(d);
310
+ const ingestFindings = await reportIngest(d);
311
+ const visibility = await reportIndicator();
312
+ const selfHealFailed = await reportSelfHeal(d.hooksRegistered);
313
+ const findings = [
314
+ ...(creds
315
+ ? []
316
+ : [
317
+ fail(cliErr("Auth", {
318
+ code: "doctor.not_logged_in",
319
+ what: "not logged in",
320
+ remedy: "run `glen login`",
321
+ })),
322
+ ]),
323
+ ...(creds && !state
324
+ ? [
325
+ fail(cliErr("Auth", {
326
+ code: "doctor.no_active_org",
327
+ what: "no active organization",
328
+ remedy: "run `glen org list` then `glen org switch <slug>`",
329
+ })),
330
+ ]
331
+ : []),
332
+ ...agentFindings(d, selfHealFailed),
333
+ ...ingestFindings,
334
+ ...(latest && semverNewer(latest, cliVersion)
335
+ ? [
336
+ warn(cliErr("Upstream", {
337
+ code: "doctor.update_available",
338
+ what: `glen ${latest} is available (you have ${cliVersion})`,
339
+ remedy: "run `glen update`",
340
+ })),
341
+ ]
342
+ : []),
343
+ ...indicatorFindings(visibility),
344
+ ...(d.cursor
345
+ ? [
346
+ hint("if the glen plugin isn't installed in Cursor: type /add-plugin in Cursor's chat and add https://github.com/Glen-Web-App/glen-cursor-plugin"),
347
+ ]
348
+ : []),
349
+ ];
350
+ out.blank();
351
+ if (findings.length === 0) {
352
+ out.success("Everything looks good. Run `glen update` anytime to refresh plugins.");
353
+ return ok(undefined);
354
+ }
355
+ print(findings);
356
+ return ok(undefined);
357
+ };
358
+ const doctor = doctorOptions.handle(async (mode) => {
359
+ if (mode.loginCheck)
360
+ return loginCheck();
361
+ if (mode.auto)
362
+ return autoConverge();
363
+ return report();
364
+ });
365
+ export { doctor };
366
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/doctor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAiB,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAe,GAAG,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnC,2EAA2E;AAC3E,MAAM,UAAU,GAAG,KAAK,IAAqC,EAAE;IAC7D,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,aAAa,EAAE,CAAC;IACpD,IAAI,IAAI;QAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IACpC,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,IAAuB,EAAc,EAAE,CAC5E,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC;IAC/C,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC;QACE,MAAM,CAAC,MAAM,EAAE;YACb,IAAI,EAAE,iCAAiC;YACvC,IAAI,EAAE,qBAAqB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB;YACtE,MAAM,EAAE,mBAAmB;SAC5B,CAAC;KACH,CAAC;AAER,MAAM,gBAAgB,GAAG,KAAK,IAAyB,EAAE;IACvD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;QACrE,OAAO,EAAE,CAAC;IACZ,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,KAAK,GACT,KAAK,EAAE,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;IACnE,IAAI,KAAK,IAAI,iBAAiB,CAAC,CAAC,sBAAsB,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACpE,OAAO;QACL,MAAM,CAAC,MAAM,EAAE;YACb,IAAI,EAAE,kCAAkC;YACxC,IAAI,EAAE,kDAAkD;YACxD,MAAM,EAAE,kCAAkC;SAC3C,CAAC;KACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,IAAqC,EAAE;IAC/D,MAAM,UAAU,CAAC,sBAAsB,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,aAAa,EAAE,CAAC;IACrD,MAAM,QAAQ,GAAG;QACf,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1C,GAAG,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/C,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;YAC/B,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC;YAC5D,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACxC,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAClC;YACH,CAAC,CAAC,EAAE,CACP;QACD,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;YACjC,gBAAgB,CAAC,OAAO,CAAC,KAAK,WAAW;YACvC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;gBAChB,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;gBACrC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC,CAAC,EAAE;YACN,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,MAAM,gBAAgB,EAAE,CAAC;KAC9B,CAAC;IACF,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,kFAAkF;AAClF,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,IAAc,EAAiB,EAAE;IAClE,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM;SAC1B,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,GAAG,EAAE,CAAC;IACT,OAAO,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,eAAe,GACnB,gPAAgP,CAAC;AAEnP,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO;QACL,MAAM;QACN,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;QACxD,KAAK;QACL,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;QACrD,eAAe,EAAE,KAAK,IAAI,CAAC,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC;QACtC,EAAE;QACF,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QAC5C,KAAK;QACL,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;KACtD,CAAC;AACJ,CAAC,CAAC;AAIF,MAAM,WAAW,GAAG,CAAC,CAAW,EAAQ,EAAE;IACxC,GAAG,CAAC,IAAI,CACN,CAAC,CAAC,MAAM;QACN,CAAC,CAAC,kCAAkC,CAAC,CAAC,YAAY,EAAE;QACpD,CAAC,CAAC,0BAA0B,CAC/B,CAAC;IACF,GAAG,CAAC,IAAI,CACN,CAAC,CAAC,KAAK;QACL,CAAC,CAAC,iCAAiC,CAAC,CAAC,WAAW,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,EAAE;QAC/G,CAAC,CAAC,yBAAyB,CAC9B,CAAC;IACF,GAAG,CAAC,IAAI,CACN,CAAC,CAAC,MAAM;QACN,CAAC,CAAC,6GAA6G;QAC/G,CAAC,CAAC,0BAA0B,CAC/B,CAAC;IACF,GAAG,CAAC,IAAI,CACN,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAC3E,CAAC;IACF,GAAG,CAAC,IAAI,CACN,CAAC,CAAC,KAAK;QACL,CAAC,CAAC,iCAAiC,CAAC,CAAC,WAAW,EAAE;QAClD,CAAC,CAAC,yBAAyB,CAC9B,CAAC;AACJ,CAAC,CAAC;AAMF,MAAM,IAAI,GAAG,CAAC,OAAiB,EAAW,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAC3E,MAAM,IAAI,GAAG,CAAC,OAAiB,EAAW,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAC1E,MAAM,IAAI,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAElE,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,MAAc,EAAW,EAAE,CAC/D,IAAI,CACF,MAAM,CAAC,MAAM,EAAE;IACb,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,GAAG,KAAK,4CAA4C;IAC1D,MAAM;CACP,CAAC,CACH,CAAC;AAEJ,MAAM,YAAY,GAAG,KAAK,EAAE,CAAW,EAAsB,EAAE;IAC7D,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC;IAC/C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG;QACb,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1C,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE;QACnC,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACrC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;QAC7B,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE;KAC3B,CAAC;IACX,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,MAAM,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC;YACzC,KAAK,EAAE,GAAG;YACV,SAAS;YACT,WAAW;YACX,GAAG;SACJ,CAAC,CAAC;QACH,MAAM,WAAW,GACf,SAAS,CAAC,aAAa,KAAK,IAAI;YAC9B,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE;YACjD,CAAC,CAAC,OAAO,CAAC;QACd,GAAG,CAAC,IAAI,CACN,wBAAwB,GAAG,UAAU,SAAS,CAAC,KAAK,gBAAgB,WAAW,EAAE,CAClF,CAAC;QACF,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,SAAS,CAAC,KAAK,KAAK,OAAO;YAAE,SAAS;QAC1C,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,CAAC,eAAe;gBACnB,QAAQ,CAAC,IAAI,CACX,GAAG,CACD,MAAM,eAAe,CAAC,sBAAsB,CAAC;oBAC3C,SAAS,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;oBAC9C,UAAU;iBACX,CAAC,CACH,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAClD,CAAC;QACN,CAAC;aAAM,IACL,CAAC,GAAG,KAAK,aAAa,IAAI,CAAC,CAAC,YAAY,KAAK,WAAW,CAAC;YACzD,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC;YAC5C,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC;YAElD,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC;QACzB,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC;YACE,IAAI,CACF,MAAM,CAAC,MAAM,EAAE;gBACb,IAAI,EAAE,wBAAwB;gBAC9B,IAAI,EAAE,iCAAiC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC3D,MAAM,EACJ,kGAAkG;aACrG,CAAC,CACH;YACD,GAAG,QAAQ;SACZ,CAAC;AACR,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,IAA4B,EAAE;IACzD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,MAAM,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;QAClC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CACtC,UAAU,EACV,MAAM,eAAe,CAAC,IAAI,EAAE,CAC7B,CAAC;IACF,GAAG,CAAC,IAAI,CACN,qBAAqB,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,eAAe,UAAU,EAAE,CAC7F,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,KAAK,EAAE,eAAwB,EAAoB,EAAE;IAC1E,IAAI,CAAC,eAAe;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,QAAQ,GACZ,KAAK,KAAK,IAAI;QACZ,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,KAAK,CAAC,EAAE;YACR,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,WAAW,KAAK,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;IAC9C,GAAG,CAAC,IAAI,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;IAChD,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,UAAyB,EAAa,EAAE;IACjE,IAAI,UAAU,KAAK,aAAa;QAC9B,OAAO;YACL,IAAI,CACF,MAAM,CAAC,MAAM,EAAE;gBACb,IAAI,EAAE,8BAA8B;gBACpC,IAAI,EAAE,sCAAsC;gBAC5C,MAAM,EACJ,0EAA0E;aAC7E,CAAC,CACH;SACF,CAAC;IACJ,IAAI,UAAU,KAAK,mBAAmB;QACpC,OAAO;YACL,IAAI,CACF,MAAM,CAAC,MAAM,EAAE;gBACb,IAAI,EAAE,yBAAyB;gBAC/B,IAAI,EAAE,gDAAgD;gBACtD,MAAM,EAAE,iCAAiC;aAC1C,CAAC,CACH;SACF,CAAC;IACJ,IAAI,UAAU,KAAK,YAAY,IAAI,UAAU,KAAK,OAAO;QACvD,OAAO;YACL,IAAI,CACF,MAAM,CAAC,MAAM,EAAE;gBACb,IAAI,EAAE,4BAA4B;gBAClC,IAAI,EAAE,mCAAmC;gBACzC,MAAM,EAAE,uDAAuD;aAChE,CAAC,CACH;SACF,CAAC;IACJ,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,GAAW,EAAW,EAAE,CAC3D,IAAI,CACF,MAAM,CAAC,OAAO,EAAE;IACd,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,GAAG,IAAI,yCAAyC;IACtD,MAAM,EAAE,8BAA8B,GAAG,IAAI;CAC9C,CAAC,CACH,CAAC;AAEJ,MAAM,aAAa,GAAG,CAAC,CAAW,EAAE,cAAuB,EAAa,EAAE,CAAC;IACzE,GACE;QACE,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,YAAY,CAAC;QACnD,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC;QAC1C,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;QAC9B,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC;KAE7C,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAC1C,QAAQ,IAAI,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CACzE;IACD,GACE;QACE,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;KAErB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAC5B,QAAQ;QACN,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACE,IAAI,CACF,MAAM,GAAG,8BAA8B,GAAG,6BAA6B,GAAG,gBAAgB,CAC3F;SACF,CACN;IACD,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe;QAC/B,CAAC,CAAC;YACE,IAAI,CACF,MAAM,CAAC,OAAO,EAAE;gBACd,IAAI,EAAE,4BAA4B;gBAClC,IAAI,EAAE,gCAAgC;gBACtC,MAAM,EAAE,kCAAkC;aAC3C,CAAC,CACH;SACF;QACH,CAAC,CAAC,EAAE,CAAC;IACP,GAAG,CAAC,cAAc;QAChB,CAAC,CAAC;YACE,IAAI,CACF,MAAM,CAAC,MAAM,EAAE;gBACb,IAAI,EAAE,+BAA+B;gBACrC,IAAI,EAAE,yCAAyC;gBAC/C,MAAM,EAAE,kCAAkC;aAC3C,CAAC,CACH;SACF;QACH,CAAC,CAAC,EAAE,CAAC;CACR,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,QAA4B,EAAQ,EAAE;IACnD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAU;QACpD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK;gBAAE,SAAS;YAChC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;iBAAM,IACL,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAE/D,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;AACL,CAAC,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,GAAG,KAAK,IAAqC,EAAE;IACzD,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAE3B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;IACzE,GAAG,CAAC,IAAI,CACN,eAAe,UAAU,WAAW,MAAM,IAAI,SAAS,YAAY,OAAO,EAAE,CAC7E,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,KAAK;QACpB,CAAC,CAAC,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,WAAW,GAAG;QACxE,CAAC,CAAC,SAAS,CAAC;IACd,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,QAAQ,QAAQ,EAAE,CAAC,CAAC;IAEtE,MAAM,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC;IAC/B,WAAW,CAAC,CAAC,CAAC,CAAC;IACf,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,MAAM,eAAe,EAAE,CAAC;IAC3C,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAE/D,MAAM,QAAQ,GAAc;QAC1B,GAAG,CAAC,KAAK;YACP,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,IAAI,CACF,MAAM,CAAC,MAAM,EAAE;oBACb,IAAI,EAAE,sBAAsB;oBAC5B,IAAI,EAAE,eAAe;oBACrB,MAAM,EAAE,kBAAkB;iBAC3B,CAAC,CACH;aACF,CAAC;QACN,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK;YACjB,CAAC,CAAC;gBACE,IAAI,CACF,MAAM,CAAC,MAAM,EAAE;oBACb,IAAI,EAAE,sBAAsB;oBAC5B,IAAI,EAAE,wBAAwB;oBAC9B,MAAM,EAAE,mDAAmD;iBAC5D,CAAC,CACH;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,aAAa,CAAC,CAAC,EAAE,cAAc,CAAC;QACnC,GAAG,cAAc;QACjB,GAAG,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC;YAC3C,CAAC,CAAC;gBACE,IAAI,CACF,MAAM,CAAC,UAAU,EAAE;oBACjB,IAAI,EAAE,yBAAyB;oBAC/B,IAAI,EAAE,QAAQ,MAAM,2BAA2B,UAAU,GAAG;oBAC5D,MAAM,EAAE,mBAAmB;iBAC5B,CAAC,CACH;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,iBAAiB,CAAC,UAAU,CAAC;QAChC,GAAG,CAAC,CAAC,CAAC,MAAM;YACV,CAAC,CAAC;gBACE,IAAI,CACF,4IAA4I,CAC7I;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,OAAO,CACT,sEAAsE,CACvE,CAAC;QACF,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChB,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CACjC,KAAK,EAAE,IAAI,EAAmC,EAAE;IAC9C,IAAI,IAAI,CAAC,UAAU;QAAE,OAAO,UAAU,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,YAAY,EAAE,CAAC;IACrC,OAAO,MAAM,EAAE,CAAC;AAClB,CAAC,CACF,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,82 @@
1
+ import { cliInput } from "../../core/run/cli-input.js";
2
+ import { hookAgents } from "../../core/run/hook-agents.js";
3
+ const AGENT_HELP = `Agent type: ${hookAgents.join(" | ")}`;
4
+ const MISSING_WANTS_OR_WHY = "missing --wants or --why";
5
+ const feedbackOptions = {
6
+ bug: cliInput.define({
7
+ args: { title: (z) => z.string().trim().min(1) },
8
+ flags: {
9
+ description: {
10
+ flag: "--description <description>",
11
+ help: "What is wrong",
12
+ schema: (z) => z.string().min(1),
13
+ },
14
+ steps: {
15
+ flag: "--steps <steps>",
16
+ help: "Steps to reproduce",
17
+ schema: (z) => z.string().optional(),
18
+ },
19
+ severity: {
20
+ flag: "--severity <severity>",
21
+ help: "low | medium | high | critical",
22
+ schema: (z) => z.enum(["low", "medium", "high", "critical"]).default("medium"),
23
+ },
24
+ from: {
25
+ flag: "--from <from>",
26
+ help: "Who it is from: user (default) | agent",
27
+ schema: (z) => z.enum(["user", "agent"]).default("user"),
28
+ },
29
+ agent: {
30
+ flag: "--agent <agent>",
31
+ help: AGENT_HELP,
32
+ schema: (z) => z.string().optional(),
33
+ },
34
+ proactive: {
35
+ flag: "--proactive",
36
+ help: "Self-initiated filing",
37
+ schema: (z) => z.boolean().default(false),
38
+ },
39
+ },
40
+ }),
41
+ feedback: cliInput.define({
42
+ args: { title: (z) => z.string().trim().min(1) },
43
+ flags: {
44
+ wants: {
45
+ flag: "--wants <wants>",
46
+ help: "The concrete change being asked for",
47
+ schema: (z) => z
48
+ .string({ error: MISSING_WANTS_OR_WHY })
49
+ .min(1, MISSING_WANTS_OR_WHY),
50
+ },
51
+ why: {
52
+ flag: "--why <why>",
53
+ help: "Why it matters (the underlying need)",
54
+ schema: (z) => z
55
+ .string({ error: MISSING_WANTS_OR_WHY })
56
+ .min(1, MISSING_WANTS_OR_WHY),
57
+ },
58
+ context: {
59
+ flag: "--context <context>",
60
+ help: "Any extra context",
61
+ schema: (z) => z.string().optional(),
62
+ },
63
+ from: {
64
+ flag: "--from <from>",
65
+ help: "Who it is from: user (default) | agent",
66
+ schema: (z) => z.enum(["user", "agent"]).default("user"),
67
+ },
68
+ agent: {
69
+ flag: "--agent <agent>",
70
+ help: AGENT_HELP,
71
+ schema: (z) => z.string().optional(),
72
+ },
73
+ proactive: {
74
+ flag: "--proactive",
75
+ help: "Self-initiated filing",
76
+ schema: (z) => z.boolean().default(false),
77
+ },
78
+ },
79
+ }),
80
+ };
81
+ export { feedbackOptions };
82
+ //# sourceMappingURL=feedback.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.options.js","sourceRoot":"","sources":["../../../src/commands/feedback/feedback.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,MAAM,UAAU,GAAG,eAAe,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAC3D,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAExD,MAAM,eAAe,GAAG;IACtB,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAChD,KAAK,EAAE;YACL,WAAW,EAAE;gBACX,IAAI,EAAE,6BAA6B;gBACnC,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;aACjC;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aACrC;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,uBAAuB;gBAC7B,IAAI,EAAE,gCAAgC;gBACtC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CACZ,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;aAClE;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,wCAAwC;gBAC9C,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;aACzD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aACrC;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;aAC1C;SACF;KACF,CAAC;IACF,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC;QACxB,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAChD,KAAK,EAAE;YACL,KAAK,EAAE;gBACL,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,qCAAqC;gBAC3C,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CACZ,CAAC;qBACE,MAAM,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;qBACvC,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC;aAClC;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,sCAAsC;gBAC5C,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CACZ,CAAC;qBACE,MAAM,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;qBACvC,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC;aAClC;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aACrC;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,wCAAwC;gBAC9C,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;aACzD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aACrC;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;aAC1C;SACF;KACF,CAAC;CACH,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { homedir } from "node:os";
2
+ import { dirname } from "node:path";
3
+ import { gitContext } from "../../clients/git/git-context.js";
4
+ import { callGlen } from "../../clients/glen-api/glen-api.js";
5
+ import { out } from "../../core/terminal/out.js";
6
+ import { ok } from "../../core/errors/result.js";
7
+ import { sessionMap } from "../../core/state/session-map.js";
8
+ import { cliVersion } from "../../core/system/version.js";
9
+ import { feedbackOptions } from "./feedback.options.js";
10
+ // Never inherit from ~ or above: a session recorded there belongs to another project.
11
+ const sessionForCwd = async (dir) => {
12
+ const found = await sessionMap.forCwd(dir);
13
+ if (found)
14
+ return found;
15
+ const parent = dirname(dir);
16
+ return parent === dir || dir === homedir() || parent === homedir()
17
+ ? null
18
+ : sessionForCwd(parent);
19
+ };
20
+ const submit = async (ticket, { from, agent, proactive }) => {
21
+ const conversationId = await sessionForCwd(process.cwd());
22
+ const workspace = gitContext(process.cwd());
23
+ const posted = await callGlen("submitTicket", {
24
+ ticket,
25
+ onBehalfOf: from,
26
+ cliVersion,
27
+ ...(proactive ? { proactive: true } : {}),
28
+ ...(agent ? { agentName: agent } : {}),
29
+ ...(workspace.repoName ? { repo: workspace.repoName } : {}),
30
+ ...(workspace.branch ? { branch: workspace.branch } : {}),
31
+ ...(conversationId ? { conversationId } : {}),
32
+ });
33
+ if (!posted.ok)
34
+ return posted;
35
+ if (posted.value.skipped === "incognito") {
36
+ out.info("glen: this session is off the record, so self-initiated tickets aren't sent.");
37
+ out.hint("ask the user if they want to report it");
38
+ return ok(undefined);
39
+ }
40
+ const label = ticket.kind === "bug" ? "Bug report" : "Feedback";
41
+ if (posted.value.posted)
42
+ out.success(`${label} sent to the Glen team.`);
43
+ else
44
+ out.warn(`${label} accepted, but Slack isn't configured for this deployment, so the team has NOT been notified.`);
45
+ return ok(undefined);
46
+ };
47
+ const feedback = {
48
+ bug: feedbackOptions.bug.handle(async (input) => submit({
49
+ kind: "bug",
50
+ title: input.title,
51
+ description: input.description,
52
+ severity: input.severity,
53
+ ...(input.steps ? { stepsToReproduce: input.steps } : {}),
54
+ }, input)),
55
+ feedback: feedbackOptions.feedback.handle(async (input) => submit({
56
+ kind: "feedback",
57
+ title: input.title,
58
+ requestedChange: input.wants,
59
+ motivation: input.why,
60
+ ...(input.context ? { context: input.context } : {}),
61
+ }, input)),
62
+ };
63
+ export { feedback };
64
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/feedback/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { cliInput } from "../../core/run/cli-input.js";
2
+ const forgetOptions = cliInput.define({
3
+ usage: "glen forget <reference...> (pass observation:<id> or message:<id> from search Sources)",
4
+ args: {
5
+ reference: (z) => z
6
+ .array(z.string().trim())
7
+ .transform((refs) => refs.filter(Boolean))
8
+ .pipe(z.array(z.string()).min(1, "missing evidence reference")),
9
+ },
10
+ });
11
+ export { forgetOptions };
12
+ //# sourceMappingURL=forget.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forget.options.js","sourceRoot":"","sources":["../../../src/commands/forget/forget.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;IACpC,KAAK,EACH,wFAAwF;IAC1F,IAAI,EAAE;QACJ,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CACf,CAAC;aACE,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;aACxB,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACzC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC,CAAC;KACpE;CACF,CAAC,CAAC;AAEH,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { out } from "../../core/terminal/out.js";
2
+ import { ok } from "../../core/errors/result.js";
3
+ import { forgetOrRestoreObservationOrMessage } from "../_utils/forget-or-restore-observation-or-message.js";
4
+ import { forgetOptions } from "./forget.options.js";
5
+ const plural = (count, singular) => `${count} ${singular}${count === 1 ? "" : "s"}`;
6
+ const forget = forgetOptions.handle(async ({ reference: references }) => {
7
+ const result = await forgetOrRestoreObservationOrMessage({
8
+ action: "forget",
9
+ references,
10
+ });
11
+ if (!result.ok)
12
+ return result;
13
+ const { changed, unchanged, cascadedObservations } = result.value;
14
+ const summary = [
15
+ `${changed.length} forgotten`,
16
+ ...(unchanged.length > 0 ? [`${unchanged.length} already hidden`] : []),
17
+ ...(cascadedObservations.length > 0
18
+ ? [
19
+ `${plural(cascadedObservations.length, "derived observation")} hidden`,
20
+ ]
21
+ : []),
22
+ ].join(", ");
23
+ const retainedTranscript = [...changed, ...unchanged].some((item) => item.kind === "message")
24
+ ? " Message content remains in transcript history."
25
+ : "";
26
+ out.success(`🏔️ ${summary}: excluded from future recall.${retainedTranscript}`);
27
+ return ok(undefined);
28
+ });
29
+ export { forget };
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/forget/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAe,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mCAAmC,EAAE,MAAM,uDAAuD,CAAC;AAC5G,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,QAAgB,EAAE,EAAE,CACjD,GAAG,KAAK,IAAI,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAElD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CACjC,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAAmC,EAAE;IACnE,MAAM,MAAM,GAAG,MAAM,mCAAmC,CAAC;QACvD,MAAM,EAAE,QAAQ;QAChB,UAAU;KACX,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAElE,MAAM,OAAO,GAAG;QACd,GAAG,OAAO,CAAC,MAAM,YAAY;QAC7B,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC;YACjC,CAAC,CAAC;gBACE,GAAG,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,CAAC,SAAS;aACvE;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,MAAM,kBAAkB,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC,IAAI,CACxD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAClC;QACC,CAAC,CAAC,iDAAiD;QACnD,CAAC,CAAC,EAAE,CAAC;IACP,GAAG,CAAC,OAAO,CACT,OAAO,OAAO,iCAAiC,kBAAkB,EAAE,CACpE,CAAC;IACF,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CACF,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { cliInput } from "../../core/run/cli-input.js";
2
+ const gitHooksOptions = cliInput.define({
3
+ usage: "glen git-hooks install",
4
+ args: {
5
+ action: (z) => z.enum(["install", "prepare-commit-msg"]),
6
+ arg: (z) => z.string().optional(),
7
+ },
8
+ flags: {
9
+ absoluteGitHookPath: {
10
+ flag: "--absolute-git-hook-path",
11
+ help: "Embed the absolute glen path in the hook (for GUI git clients)",
12
+ schema: (z) => z.boolean().default(false),
13
+ },
14
+ },
15
+ });
16
+ export { gitHooksOptions };
17
+ //# sourceMappingURL=git-hooks.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-hooks.options.js","sourceRoot":"","sources":["../../../src/commands/git-hooks/git-hooks.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,wBAAwB;IAC/B,IAAI,EAAE;QACJ,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACxD,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAClC;IACD,KAAK,EAAE;QACL,mBAAmB,EAAE;YACnB,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,gEAAgE;YACtE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;SAC1C;KACF;CACF,CAAC,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { agentBin } from "../../clients/agents/agent-bin.js";
2
+ import { gitHookSetup } from "../../clients/git/git-hook-setup.js";
3
+ import { out } from "../../core/terminal/out.js";
4
+ import { ok } from "../../core/errors/result.js";
5
+ import { gitHooksOptions } from "./git-hooks.options.js";
6
+ // GUI git clients run hooks without the user's shell PATH, so they need the absolute path.
7
+ const resolveGlenBin = (absolute) => absolute ? (agentBin.resolve("glen") ?? "glen") : "glen";
8
+ const installGitHooks = gitHooksOptions.handle(async (input) => {
9
+ const installed = await gitHookSetup.installPrepareCommitMsg({
10
+ cwd: process.cwd(),
11
+ glenBin: resolveGlenBin(input.absoluteGitHookPath),
12
+ });
13
+ if (!installed.ok)
14
+ return installed;
15
+ out.success(installed.value.chained
16
+ ? "installed glen's prepare-commit-msg hook (your existing hook still runs first)"
17
+ : "installed glen's prepare-commit-msg hook");
18
+ return ok(installed.value);
19
+ });
20
+ export { installGitHooks };
21
+ //# sourceMappingURL=index.js.map