@tryglen/cli 0.37.1 → 0.38.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +28 -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,52 @@
1
+ import { cliErr } from "../../core/errors/cli-error.js";
2
+ import { config } from "../../clients/glen-api/config.js";
3
+ import { callGlen } from "../../clients/glen-api/glen-api.js";
4
+ import { out } from "../../core/terminal/out.js";
5
+ import { err, mapErr, ok } from "../../core/errors/result.js";
6
+ import { explainSkillError } from "./_utils/explain-skill-error.js";
7
+ import { skillOptions } from "./skill.options.js";
8
+ const SKILL_SHARE_TIMEOUT_MS = 60_000;
9
+ const plural = (n, word) => `${n} ${word}${n === 1 ? "" : "s"}`;
10
+ const skillShare = skillOptions.handle(async (opts) => {
11
+ const s = opts.arg?.trim();
12
+ if (!s)
13
+ return err(cliErr("Usage", {
14
+ code: "skill.missing_slug",
15
+ what: "missing skill slug",
16
+ remedy: "usage: glen skill share <slug> [--with <email>[,<email>…]] [--org]",
17
+ }));
18
+ const emails = (opts.with ?? "")
19
+ .split(",")
20
+ .map((e) => e.trim())
21
+ .filter(Boolean);
22
+ if (emails.length === 0 && !opts.org)
23
+ return err(cliErr("Usage", {
24
+ code: "skill.nothing_to_share",
25
+ what: "nothing to share",
26
+ remedy: "pass --with <email>[,<email>…] to add teammates and/or --org for the whole org",
27
+ }));
28
+ const res = mapErr(await callGlen("skillShare", {
29
+ slug: s,
30
+ ...(emails.length > 0 ? { emails } : {}),
31
+ ...(opts.org ? { org: true } : {}),
32
+ }, { timeoutMs: SKILL_SHARE_TIMEOUT_MS }), explainSkillError);
33
+ if (!res.ok)
34
+ return res;
35
+ const { recipientCount, sharedWithOrg, sharedSubskillCount, foreignPrivate, } = res.value;
36
+ const visibility = sharedWithOrg
37
+ ? "the whole org"
38
+ : recipientCount > 0
39
+ ? plural(recipientCount, "teammate")
40
+ : "only you";
41
+ out.success(`skill "${res.value.slug}" is now visible to ${visibility}.`);
42
+ if (sharedSubskillCount > 0)
43
+ out.success(`also shared ${plural(sharedSubskillCount, "subskill")} it references.`);
44
+ if (foreignPrivate.length > 0)
45
+ out.warn(`couldn't share ${foreignPrivate.length} (not yours): ${foreignPrivate
46
+ .map((f) => `${f.name} (by ${f.ownerName})`)
47
+ .join(", ")}`);
48
+ out.hint(`manage sharing: ${config.baseUrl}/dynamic-skills/${encodeURIComponent(res.value.slug)}`);
49
+ return ok(undefined);
50
+ });
51
+ export { skillShare };
52
+ //# sourceMappingURL=share.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share.js","sourceRoot":"","sources":["../../../src/commands/skill/share.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { cliInput } from "../../core/run/cli-input.js";
2
+ const text = (z) => z.string().optional();
3
+ const skillOptions = cliInput.define({
4
+ usage: "glen skill search [query] | glen skill use <slug> | glen skill create | glen skill share <slug>",
5
+ args: {
6
+ action: (z) => z.enum(["search", "use", "create", "share"]),
7
+ arg: text,
8
+ },
9
+ flags: {
10
+ by: {
11
+ flag: "--by <author>",
12
+ help: "skill search: filter by author name (or 'me')",
13
+ schema: text,
14
+ },
15
+ name: {
16
+ flag: "--name <name>",
17
+ help: "skill create: the skill's name",
18
+ schema: text,
19
+ },
20
+ description: {
21
+ flag: "--description <description>",
22
+ help: "skill create: one-line description",
23
+ schema: text,
24
+ },
25
+ file: {
26
+ flag: "--file <path>",
27
+ help: "skill create: path to the SKILL.md body",
28
+ schema: text,
29
+ },
30
+ dir: {
31
+ flag: "--dir <path>",
32
+ help: "skill create: path to a skill directory (SKILL.md + scripts/ references/ assets/)",
33
+ schema: text,
34
+ },
35
+ deps: {
36
+ flag: "--deps <path>",
37
+ help: "skill create: path to a JSON array of dependencies",
38
+ schema: text,
39
+ },
40
+ update: {
41
+ flag: "--update",
42
+ help: "skill create: overwrite your own same-named skill",
43
+ schema: (z) => z.boolean().default(false),
44
+ },
45
+ org: {
46
+ flag: "--org",
47
+ help: "skill create/share: share with your whole org (create default: private to you)",
48
+ schema: (z) => z.boolean().default(false),
49
+ },
50
+ with: {
51
+ flag: "--with <emails>",
52
+ help: "skill share: comma-separated teammate emails to add",
53
+ schema: text,
54
+ },
55
+ },
56
+ });
57
+ export { skillOptions };
58
+ //# sourceMappingURL=skill.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.options.js","sourceRoot":"","sources":["../../../src/commands/skill/skill.options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,MAAM,IAAI,GAAG,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AAEtD,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;IACnC,KAAK,EACH,iGAAiG;IACnG,IAAI,EAAE;QACJ,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3D,GAAG,EAAE,IAAI;KACV;IACD,KAAK,EAAE;QACL,EAAE,EAAE;YACF,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,+CAA+C;YACrD,MAAM,EAAE,IAAI;SACb;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,gCAAgC;YACtC,MAAM,EAAE,IAAI;SACb;QACD,WAAW,EAAE;YACX,IAAI,EAAE,6BAA6B;YACnC,IAAI,EAAE,oCAAoC;YAC1C,MAAM,EAAE,IAAI;SACb;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,yCAAyC;YAC/C,MAAM,EAAE,IAAI;SACb;QACD,GAAG,EAAE;YACH,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,mFAAmF;YACzF,MAAM,EAAE,IAAI;SACb;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,oDAAoD;YAC1D,MAAM,EAAE,IAAI;SACb;QACD,MAAM,EAAE;YACN,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,mDAAmD;YACzD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;SAC1C;QACD,GAAG,EAAE;YACH,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,gFAAgF;YACtF,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;SAC1C;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,qDAAqD;YAC3D,MAAM,EAAE,IAAI;SACb;KACF;CACF,CAAC,CAAC;AAEH,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { cliErr } from "../../core/errors/cli-error.js";
2
+ import { callGlen } from "../../clients/glen-api/glen-api.js";
3
+ import { out } from "../../core/terminal/out.js";
4
+ import { err, mapErr, ok } from "../../core/errors/result.js";
5
+ import { sessionMap } from "../../core/state/session-map.js";
6
+ import { explainSkillError } from "./_utils/explain-skill-error.js";
7
+ import { skillCache } from "./_utils/skill-cache.js";
8
+ const SKILL_USE_TIMEOUT_MS = 60_000;
9
+ const provenance = (s) => `> Glen skill "${s.name}" by ${s.author.name}, updated ${s.updatedAt.slice(0, 10)}\n\n`;
10
+ // Failures go to stderr: stdout is the skill text the agent reads.
11
+ const cachePrefetched = async (skill, base) => {
12
+ const results = await Promise.all(skill.prefetch.map(async (manifest) => ({
13
+ slug: manifest.slug,
14
+ cached: await skillCache.materialize(manifest, base),
15
+ })));
16
+ for (const { slug, cached } of results)
17
+ if (!cached.ok)
18
+ out.warn({
19
+ ...cached.error,
20
+ what: `could not cache the prefetched skill "${slug}": ${cached.error.what}`,
21
+ });
22
+ };
23
+ const skillText = async (skill, base) => {
24
+ if (skill.files.length > 0) {
25
+ const dir = await skillCache.materialize(skill, base);
26
+ if (!dir.ok)
27
+ return dir;
28
+ return ok(skillCache.substituteDir(skill.content, dir.value));
29
+ }
30
+ // Nothing else clears this dir, and a stale .glen-meta.json would keep claiming it's cached.
31
+ const removed = await skillCache.remove(base, skill.slug);
32
+ if (!removed.ok)
33
+ out.warn(removed.error);
34
+ return ok(skill.content);
35
+ };
36
+ const skillUse = async (slug) => {
37
+ const s = slug?.trim();
38
+ if (!s)
39
+ return err(cliErr("Usage", {
40
+ code: "skill.missing_slug",
41
+ what: "missing skill slug",
42
+ remedy: "usage: glen skill use <slug> (find slugs with `glen skill search`)",
43
+ }));
44
+ const conversationId = await sessionMap.forCwd(process.cwd());
45
+ const base = skillCache.baseDir();
46
+ const cached = await skillCache.cachedMap(base);
47
+ const res = mapErr(await callGlen("skillUse", {
48
+ slug: s,
49
+ ...(conversationId ? { conversationId } : {}),
50
+ ...(Object.keys(cached).length > 0 ? { cached } : {}),
51
+ }, { timeoutMs: SKILL_USE_TIMEOUT_MS }), explainSkillError);
52
+ if (!res.ok)
53
+ return res;
54
+ const skill = res.value;
55
+ await cachePrefetched(skill, base);
56
+ const text = await skillText(skill, base);
57
+ if (!text.ok)
58
+ return text;
59
+ if (!text.value.trim()) {
60
+ out.info("glen: that skill has no content.");
61
+ return ok(undefined);
62
+ }
63
+ out.data(`${provenance(skill)}${text.value}`);
64
+ if (skill.dependencies.length > 0)
65
+ out.data([
66
+ "\n## Requirements",
67
+ ...skill.dependencies.map((d) => `- ${d.name} (${d.kind}): ${d.description} (${d.sourceUrl})`),
68
+ ].join("\n"));
69
+ return ok(undefined);
70
+ };
71
+ export { skillUse };
72
+ //# sourceMappingURL=use.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../../src/commands/skill/use.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { config } from "../../clients/glen-api/config.js";
2
+ import { credentials } from "../../core/state/credentials.js";
3
+ import { out } from "../../core/terminal/out.js";
4
+ import { ok } from "../../core/errors/result.js";
5
+ import { glenState } from "../../core/state/state.js";
6
+ import { cliVersion } from "../../core/system/version.js";
7
+ const status = async () => {
8
+ const [creds, state] = await Promise.all([
9
+ credentials.read(),
10
+ glenState.read(),
11
+ ]);
12
+ out.info(`🏔️ glen ${cliVersion}`);
13
+ out.info(creds
14
+ ? `connected with an API key. Base: ${config.baseUrl}`
15
+ : `not connected. Base: ${config.baseUrl}`, { indent: 1 });
16
+ if (state) {
17
+ const name = state.activeOrgName ? ` (${state.activeOrgName})` : "";
18
+ out.info(`org: ${state.activeOrgSlug ?? state.activeOrgId}${name}`, {
19
+ indent: 1,
20
+ });
21
+ out.info(`mode: ${state.mode}`, { indent: 1 });
22
+ }
23
+ else {
24
+ out.info("org: none", { indent: 1 });
25
+ }
26
+ if (!creds)
27
+ out.hint("run `glen login` to connect");
28
+ else if (!state)
29
+ out.hint("run `glen org switch` to pick an organization");
30
+ return ok(undefined);
31
+ };
32
+ export { status };
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/status/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAe,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,MAAM,GAAG,KAAK,IAAqC,EAAE;IACzD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvC,WAAW,CAAC,IAAI,EAAE;QAClB,SAAS,CAAC,IAAI,EAAE;KACjB,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;IACnC,GAAG,CAAC,IAAI,CACN,KAAK;QACH,CAAC,CAAC,oCAAoC,MAAM,CAAC,OAAO,EAAE;QACtD,CAAC,CAAC,wBAAwB,MAAM,CAAC,OAAO,EAAE,EAC5C,EAAE,MAAM,EAAE,CAAC,EAAE,CACd,CAAC;IACF,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,WAAW,GAAG,IAAI,EAAE,EAAE;YAClE,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,KAAK;QAAE,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;SAC/C,IAAI,CAAC,KAAK;QAAE,GAAG,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC3E,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { cliInput } from "../../core/run/cli-input.js";
2
+ const statusOptions = cliInput.define({});
3
+ export { statusOptions };
4
+ //# sourceMappingURL=status.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.options.js","sourceRoot":"","sources":["../../../src/commands/status/status.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { credentials } from "../../core/state/credentials.js";
2
+ import { out } from "../../core/terminal/out.js";
3
+ import { readStdin } from "../../core/terminal/read-stdin.js";
4
+ import { ok } from "../../core/errors/result.js";
5
+ import { glenState } from "../../core/state/state.js";
6
+ import { recordEvent } from "../../core/telemetry/record-event.js";
7
+ // Runs on every UI refresh: no server calls, and it must always print a line.
8
+ const statusline = async () => {
9
+ // The event on stdin isn't used; drain it so the agent's pipe doesn't block.
10
+ const drained = await readStdin();
11
+ if (!drained.ok)
12
+ recordEvent("warn", drained.error);
13
+ const creds = await credentials.read();
14
+ const state = await glenState.read();
15
+ const line = (() => {
16
+ if (!creds)
17
+ return '🏔️ glen · not connected · ask me to "set up glen"';
18
+ if (!state)
19
+ return '🏔️ glen · no org selected · ask me to "set up glen"';
20
+ const orgDisplay = state.activeOrgName ?? state.activeOrgSlug ?? state.activeOrgId;
21
+ if (state.mode === "off")
22
+ return `🏔️ ${orgDisplay} · ⏸️ off`;
23
+ if (state.mode === "incognito")
24
+ return `🏔️ ${orgDisplay} · 🕶️ incognito`;
25
+ if (state.mode === "silent")
26
+ return `🏔️ ${orgDisplay} · 🤫 silent`;
27
+ return `🏔️ ${orgDisplay}`;
28
+ })();
29
+ out.hookText(line);
30
+ return ok(undefined);
31
+ };
32
+ export { statusline };
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/statusline/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAe,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,8EAA8E;AAC9E,MAAM,UAAU,GAAG,KAAK,IAAqC,EAAE;IAC7D,6EAA6E;IAC7E,MAAM,OAAO,GAAG,MAAM,SAAS,EAAE,CAAC;IAClC,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IAErC,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;QACjB,IAAI,CAAC,KAAK;YAAE,OAAO,oDAAoD,CAAC;QACxE,IAAI,CAAC,KAAK;YAAE,OAAO,sDAAsD,CAAC;QAC1E,MAAM,UAAU,GACd,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,WAAW,CAAC;QAClE,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,OAAO,UAAU,WAAW,CAAC;QAC9D,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,OAAO,UAAU,kBAAkB,CAAC;QAC3E,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,OAAO,UAAU,cAAc,CAAC;QACpE,OAAO,OAAO,UAAU,EAAE,CAAC;IAC7B,CAAC,CAAC,EAAE,CAAC;IAEL,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { cliInput } from "../../core/run/cli-input.js";
2
+ const statuslineOptions = cliInput.define({});
3
+ export { statuslineOptions };
4
+ //# sourceMappingURL=statusline.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusline.options.js","sourceRoot":"","sources":["../../../src/commands/statusline/statusline.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { cliErr } from "../../core/errors/cli-error.js";
2
+ import { callGlen } from "../../clients/glen-api/glen-api.js";
3
+ import { out } from "../../core/terminal/out.js";
4
+ import { err, mapErr, ok } from "../../core/errors/result.js";
5
+ import { glenState } from "../../core/state/state.js";
6
+ import { suggestionsOptions } from "./suggestions.options.js";
7
+ const KINDS = {
8
+ "skill-create": "skillCreation",
9
+ "skill-use": "skillUse",
10
+ };
11
+ const confirmations = {
12
+ "skill-create": {
13
+ on: "🏔️ glen will suggest turning finished work into team skills (account-wide).",
14
+ off: "🏔️ glen will no longer suggest creating new skills, on any machine or agent. Re-enable with `glen suggestions skill-create on`.",
15
+ },
16
+ "skill-use": {
17
+ on: "🏔️ glen will recommend matching team skills when you start something (account-wide).",
18
+ off: "🏔️ glen will no longer recommend existing team skills, on any machine or agent. Re-enable with `glen suggestions skill-use on`.",
19
+ },
20
+ };
21
+ const suggestions = suggestionsOptions.handle(async ({ kind, state: stateArg }) => {
22
+ const state = await glenState.read();
23
+ if (!state)
24
+ return err(cliErr("Auth", {
25
+ code: "suggestions.no_active_org",
26
+ what: "no active organization",
27
+ remedy: "run `glen org switch` (or `glen login`) first",
28
+ }));
29
+ const res = mapErr(await callGlen("setSuggestions", { [KINDS[kind]]: stateArg === "on" }), (e) => ({ ...e, what: `${e.what} (nothing changed)` }));
30
+ if (!res.ok)
31
+ return res;
32
+ out.success(confirmations[kind][stateArg]);
33
+ return ok(undefined);
34
+ });
35
+ export { suggestions };
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/suggestions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAe,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,KAAK,GAAG;IACZ,cAAc,EAAE,eAAe;IAC/B,WAAW,EAAE,UAAU;CACf,CAAC;AAEX,MAAM,aAAa,GAGf;IACF,cAAc,EAAE;QACd,EAAE,EAAE,8EAA8E;QAClF,GAAG,EAAE,kIAAkI;KACxI;IACD,WAAW,EAAE;QACX,EAAE,EAAE,uFAAuF;QAC3F,GAAG,EAAE,kIAAkI;KACxI;CACF,CAAC;AAEF,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAC3C,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAmC,EAAE;IACnE,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,KAAK;QACR,OAAO,GAAG,CACR,MAAM,CAAC,MAAM,EAAE;YACb,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,wBAAwB;YAC9B,MAAM,EAAE,+CAA+C;SACxD,CAAC,CACH,CAAC;IAEJ,MAAM,GAAG,GAAG,MAAM,CAChB,MAAM,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,EAAE,CAAC,EACtE,CAAC,CAAC,EAAY,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,oBAAoB,EAAE,CAAC,CACjE,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC;IACxB,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CACF,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { cliInput } from "../../core/run/cli-input.js";
2
+ const suggestionsOptions = cliInput.define({
3
+ usage: "glen suggestions skill-create on|off | glen suggestions skill-use on|off",
4
+ args: {
5
+ kind: (z) => z.enum(["skill-create", "skill-use"], {
6
+ error: (issue) => `invalid suggestion kind ${JSON.stringify(issue.input)}`,
7
+ }),
8
+ state: (z) => z.enum(["on", "off"]),
9
+ },
10
+ });
11
+ export { suggestionsOptions };
12
+ //# sourceMappingURL=suggestions.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggestions.options.js","sourceRoot":"","sources":["../../../src/commands/suggestions/suggestions.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC;IACzC,KAAK,EACH,0EAA0E;IAC5E,IAAI,EAAE;QACJ,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CACV,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE;YACpC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;SAC3D,CAAC;QACJ,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACpC;CACF,CAAC,CAAC;AAEH,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1,15 +1,17 @@
1
1
  import { homedir } from "node:os";
2
2
  import { join } from "node:path";
3
+ import { env } from "../../../core/system/env.js";
3
4
  const projectKey = (workspace) => workspace.replaceAll("/", "-").replace(/[^A-Za-z0-9._-]/g, "-");
5
+ // pi's own encoding (getDefaultSessionDirPath): no leading separator, `/ \ :` → "-", wrapped in "--".
6
+ const piProjectKey = (workspace) => `--${workspace.replace(/^[/\\]/, "").replace(/[/\\:]/g, "-")}--`;
4
7
  const agentPaths = {
5
8
  claude(workspace, sessionId) {
6
- const root = process.env.GLEN_CLAUDE_HOME ?? join(homedir(), ".claude");
9
+ const root = env().GLEN_CLAUDE_HOME ?? join(homedir(), ".claude");
7
10
  return join(root, "projects", projectKey(workspace), `${sessionId}.jsonl`);
8
11
  },
9
12
  codex(sessionId, date = new Date()) {
10
- const root = process.env.GLEN_CODEX_HOME ?? join(homedir(), ".codex");
11
- // Codex parses the session id from this filename: LOCAL time, seconds precision.
12
- // Milliseconds or a trailing Z break `codex resume <id>`.
13
+ const root = env().GLEN_CODEX_HOME ?? join(homedir(), ".codex");
14
+ // Codex parses the session id from this name: local time, seconds, no Z, or `codex resume` breaks.
13
15
  const pad = (value) => String(value).padStart(2, "0");
14
16
  const year = String(date.getFullYear());
15
17
  const month = pad(date.getMonth() + 1);
@@ -18,10 +20,14 @@ const agentPaths = {
18
20
  return join(root, "sessions", year, month, day, `rollout-${timestamp}-${sessionId}.jsonl`);
19
21
  },
20
22
  pi(workspace, sessionId, date = new Date()) {
21
- const root = process.env.GLEN_PI_HOME ?? join(homedir(), ".pi", "agent");
22
- const sessionRoot = process.env.PI_CODING_AGENT_SESSION_DIR;
23
+ const root = env().GLEN_PI_HOME ?? join(homedir(), ".pi", "agent");
24
+ const sessionRoot = env().PI_CODING_AGENT_SESSION_DIR;
23
25
  const timestamp = date.toISOString().replace(/[:.]/g, "-");
24
- return join(sessionRoot ?? join(root, "sessions"), projectKey(workspace), `${timestamp}_${sessionId}.jsonl`);
26
+ const file = `${timestamp}_${sessionId}.jsonl`;
27
+ // A custom session dir is flat: pi keeps every project's sessions directly in it.
28
+ return sessionRoot
29
+ ? join(sessionRoot, file)
30
+ : join(root, "sessions", piProjectKey(workspace), file);
25
31
  },
26
32
  };
27
33
  export { agentPaths };
@@ -1 +1 @@
1
- {"version":3,"file":"agent-paths.js","sourceRoot":"","sources":["../../../../src/commands/takeover/_utils/agent-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAU,EAAE,CAC/C,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AAElE,MAAM,UAAU,GAAG;IACjB,MAAM,CAAC,SAAiB,EAAE,SAAiB;QACzC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,QAAQ,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,CAAC,SAAiB,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QACtE,iFAAiF;QACjF,0DAA0D;QAC1D,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAChC,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;QACxH,OAAO,IAAI,CACT,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,KAAK,EACL,GAAG,EACH,WAAW,SAAS,IAAI,SAAS,QAAQ,CAC1C,CAAC;IACJ,CAAC;IACD,EAAE,CAAC,SAAiB,EAAE,SAAiB,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC3D,OAAO,IAAI,CACT,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EACrC,UAAU,CAAC,SAAS,CAAC,EACrB,GAAG,SAAS,IAAI,SAAS,QAAQ,CAClC,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"agent-paths.js","sourceRoot":"","sources":["../../../../src/commands/takeover/_utils/agent-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAElD,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAU,EAAE,CAC/C,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AAElE,sGAAsG;AACtG,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAU,EAAE,CACjD,KAAK,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC;AAEnE,MAAM,UAAU,GAAG;IACjB,MAAM,CAAC,SAAiB,EAAE,SAAiB;QACzC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,QAAQ,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,CAAC,SAAiB,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE;QACxC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QAChE,mGAAmG;QACnG,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAChC,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;QACxH,OAAO,IAAI,CACT,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,KAAK,EACL,GAAG,EACH,WAAW,SAAS,IAAI,SAAS,QAAQ,CAC1C,CAAC;IACJ,CAAC;IACD,EAAE,CAAC,SAAiB,EAAE,SAAiB,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE;QACxD,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,2BAA2B,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,GAAG,SAAS,IAAI,SAAS,QAAQ,CAAC;QAC/C,kFAAkF;QAClF,OAAO,WAAW;YAChB,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;YACzB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;CACF,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { spawn, spawnSync } from "node:child_process";
2
+ import { causeOf } from "../../../core/errors/cli-error.js";
3
+ import { field } from "../../../core/json/json-field.js";
4
+ import { parseJson } from "../../../core/json/parse-json.js";
5
+ import { err, fromSync, ok } from "../../../core/errors/result.js";
6
+ const runInteractive = (binary, args, cwd) => {
7
+ const ran = spawnSync(binary, [...args], { cwd, stdio: "inherit" });
8
+ if (ran.error)
9
+ return err(causeOf(ran.error));
10
+ return ran.status === 0
11
+ ? ok(undefined)
12
+ : err(`exit status ${ran.status ?? "unknown"}`);
13
+ };
14
+ const startJsonRpc = (binary, args, timeoutMs) => {
15
+ const state = {
16
+ buffer: "",
17
+ nextId: 1,
18
+ ended: null,
19
+ waiters: [],
20
+ inbox: [],
21
+ };
22
+ const child = fromSync(() => spawn(binary, [...args], { stdio: ["pipe", "pipe", "ignore"] }));
23
+ const end = (reason) => {
24
+ if (state.ended)
25
+ return;
26
+ state.ended = { kind: "transport", reason };
27
+ clearTimeout(timer);
28
+ if (child.ok)
29
+ child.value.kill();
30
+ for (const w of state.waiters.splice(0))
31
+ w.resolve(err(state.ended));
32
+ };
33
+ const timer = setTimeout(() => end("timed_out"), timeoutMs);
34
+ const deliver = (message) => {
35
+ const index = state.waiters.findIndex((w) => w.match(message));
36
+ const waiter = index >= 0 ? state.waiters.splice(index, 1)[0] : undefined;
37
+ if (waiter)
38
+ waiter.resolve(ok(message));
39
+ else
40
+ state.inbox.push(message);
41
+ };
42
+ const wait = (match) => {
43
+ const index = state.inbox.findIndex(match);
44
+ if (index >= 0)
45
+ return Promise.resolve(ok(state.inbox.splice(index, 1)[0]));
46
+ if (state.ended)
47
+ return Promise.resolve(err(state.ended));
48
+ return new Promise((resolve) => state.waiters.push({ match, resolve }));
49
+ };
50
+ const write = (message) => {
51
+ if (state.ended || !child.ok)
52
+ return;
53
+ const line = `${JSON.stringify({ jsonrpc: "2.0", ...message })}\n`;
54
+ // A write to a closed pipe also emits 'error' on stdin, which ends the conversation below.
55
+ void fromSync(() => child.value.stdin?.write(line));
56
+ };
57
+ if (!child.ok)
58
+ queueMicrotask(() => end("start_failed"));
59
+ else {
60
+ const proc = child.value;
61
+ proc.on("error", () => end("start_failed"));
62
+ proc.on("close", () => end("exited"));
63
+ proc.stdin?.on("error", () => end("input_closed"));
64
+ proc.stdout?.on("data", (chunk) => {
65
+ state.buffer += chunk.toString();
66
+ const lines = state.buffer.split("\n");
67
+ state.buffer = lines.pop() ?? "";
68
+ for (const line of lines) {
69
+ const parsed = line.trim() ? parseJson(line) : null;
70
+ if (parsed?.ok)
71
+ deliver(parsed.value);
72
+ }
73
+ });
74
+ }
75
+ return {
76
+ request: async (method, params) => {
77
+ const id = state.nextId++;
78
+ const reply = wait((m) => field(m, "id") === id);
79
+ write({ id, method, params });
80
+ const answered = await reply;
81
+ if (!answered.ok)
82
+ return answered;
83
+ const error = field(answered.value, "error");
84
+ if (error === undefined)
85
+ return ok(field(answered.value, "result"));
86
+ const message = field(error, "message");
87
+ return err({
88
+ kind: "rpc",
89
+ message: typeof message === "string" ? message : "unknown app-server error",
90
+ });
91
+ },
92
+ notify: (method, params) => write({ method, params }),
93
+ notification: async (method, matches) => {
94
+ const got = await wait((m) => field(m, "id") === undefined &&
95
+ field(m, "method") === method &&
96
+ matches(field(m, "params")));
97
+ return got.ok ? ok(field(got.value, "params")) : got;
98
+ },
99
+ close: () => {
100
+ if (state.ended)
101
+ return;
102
+ state.ended = { kind: "transport", reason: "exited" };
103
+ clearTimeout(timer);
104
+ if (child.ok)
105
+ child.value.kill();
106
+ },
107
+ };
108
+ };
109
+ const agentProcess = { runInteractive, startJsonRpc };
110
+ export { agentProcess };
111
+ //# sourceMappingURL=agent-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-process.js","sourceRoot":"","sources":["../../../../src/commands/takeover/_utils/agent-process.ts"],"names":[],"mappings":"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"}
@@ -1,63 +1,22 @@
1
- import { spawn } from "node:child_process";
2
- import { cliVersion } from "../../../_utils/version.js";
1
+ import { cliVersion } from "../../../core/system/version.js";
2
+ import { agentProcess } from "./agent-process.js";
3
3
  const CLEANUP_TIMEOUT_MS = 5_000;
4
- const archiveCodexDesktopThread = (input) => new Promise((resolve) => {
5
- const child = spawn(input.binary, ["app-server"], {
6
- stdio: ["pipe", "pipe", "ignore"],
4
+ const archiveCodexDesktopThread = async (input) => {
5
+ const rpc = agentProcess.startJsonRpc(input.binary, ["app-server"], CLEANUP_TIMEOUT_MS);
6
+ const init = await rpc.request("initialize", {
7
+ clientInfo: { name: "glen", title: "Glen CLI", version: cliVersion },
8
+ capabilities: { experimentalApi: true },
7
9
  });
8
- const state = { buffer: "", finished: false };
9
- const finish = (archived = false) => {
10
- if (state.finished)
11
- return;
12
- state.finished = true;
13
- clearTimeout(timer);
14
- child.kill();
15
- resolve(archived);
16
- };
17
- const write = (message) => {
18
- if (state.finished)
19
- return;
20
- child.stdin.write(`${JSON.stringify({ jsonrpc: "2.0", ...message })}\n`);
21
- };
22
- const timer = setTimeout(finish, CLEANUP_TIMEOUT_MS);
23
- child.on("error", () => finish(false));
24
- child.on("close", () => finish(false));
25
- child.stdin.on("error", () => finish(false));
26
- child.stdout.on("data", (chunk) => {
27
- state.buffer += chunk.toString();
28
- const lines = state.buffer.split("\n");
29
- state.buffer = lines.pop() ?? "";
30
- for (const line of lines) {
31
- if (!line.trim())
32
- continue;
33
- const message = (() => {
34
- try {
35
- return JSON.parse(line);
36
- }
37
- catch {
38
- return null;
39
- }
40
- })();
41
- if (message?.id === 1) {
42
- write({ method: "initialized", params: {} });
43
- write({
44
- id: 2,
45
- method: "thread/archive",
46
- params: { threadId: input.threadId },
47
- });
48
- }
49
- if (message?.id === 2)
50
- finish(message.error === undefined);
51
- }
10
+ if (!init.ok) {
11
+ rpc.close();
12
+ return false;
13
+ }
14
+ rpc.notify("initialized", {});
15
+ const archived = await rpc.request("thread/archive", {
16
+ threadId: input.threadId,
52
17
  });
53
- queueMicrotask(() => write({
54
- id: 1,
55
- method: "initialize",
56
- params: {
57
- clientInfo: { name: "glen", title: "Glen CLI", version: cliVersion },
58
- capabilities: { experimentalApi: true },
59
- },
60
- }));
61
- });
18
+ rpc.close();
19
+ return archived.ok;
20
+ };
62
21
  export { archiveCodexDesktopThread };
63
22
  //# sourceMappingURL=archive-codex-desktop-thread.js.map