@tryglen/cli 0.34.0 → 0.36.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 (252) hide show
  1. package/README.md +39 -27
  2. package/dist/_utils/agent-adapter.d.ts +0 -13
  3. package/dist/_utils/agent-adapter.js +1 -19
  4. package/dist/_utils/agent-adapter.js.map +1 -1
  5. package/dist/_utils/agents-table.js +1 -9
  6. package/dist/_utils/agents-table.js.map +1 -1
  7. package/dist/_utils/cli-error.js +0 -3
  8. package/dist/_utils/cli-error.js.map +1 -1
  9. package/dist/_utils/codex-app-server.js +0 -2
  10. package/dist/_utils/codex-app-server.js.map +1 -1
  11. package/dist/_utils/codex-hooks-merge.js +0 -11
  12. package/dist/_utils/codex-hooks-merge.js.map +1 -1
  13. package/dist/_utils/codex-hooks-setup.js +0 -18
  14. package/dist/_utils/codex-hooks-setup.js.map +1 -1
  15. package/dist/_utils/codex-paths.js +0 -3
  16. package/dist/_utils/codex-paths.js.map +1 -1
  17. package/dist/_utils/codex-repair-trace.js +0 -3
  18. package/dist/_utils/codex-repair-trace.js.map +1 -1
  19. package/dist/_utils/codex-trust-toml.js +1 -9
  20. package/dist/_utils/codex-trust-toml.js.map +1 -1
  21. package/dist/_utils/collect-import-files.js +0 -7
  22. package/dist/_utils/collect-import-files.js.map +1 -1
  23. package/dist/_utils/config.js +0 -4
  24. package/dist/_utils/config.js.map +1 -1
  25. package/dist/_utils/confirm.js +2 -10
  26. package/dist/_utils/confirm.js.map +1 -1
  27. package/dist/_utils/credentials.js +0 -3
  28. package/dist/_utils/credentials.js.map +1 -1
  29. package/dist/_utils/detect-transcript-format.d.ts +1 -1
  30. package/dist/_utils/detect-transcript-format.js +0 -7
  31. package/dist/_utils/detect-transcript-format.js.map +1 -1
  32. package/dist/_utils/ensure-global-cli.d.ts +0 -12
  33. package/dist/_utils/ensure-global-cli.js +1 -28
  34. package/dist/_utils/ensure-global-cli.js.map +1 -1
  35. package/dist/_utils/ephemeral-session.js +3 -24
  36. package/dist/_utils/ephemeral-session.js.map +1 -1
  37. package/dist/_utils/extract-claude-segments.js +1 -5
  38. package/dist/_utils/extract-claude-segments.js.map +1 -1
  39. package/dist/_utils/extract-codex-segments.js +0 -9
  40. package/dist/_utils/extract-codex-segments.js.map +1 -1
  41. package/dist/_utils/extract-pi-segments.js +1 -5
  42. package/dist/_utils/extract-pi-segments.js.map +1 -1
  43. package/dist/_utils/find-bin.js +0 -8
  44. package/dist/_utils/find-bin.js.map +1 -1
  45. package/dist/_utils/format-search-result.js +3 -19
  46. package/dist/_utils/format-search-result.js.map +1 -1
  47. package/dist/_utils/format-turn-nudges.js +2 -20
  48. package/dist/_utils/format-turn-nudges.js.map +1 -1
  49. package/dist/_utils/git-context.d.ts +0 -2
  50. package/dist/_utils/git-context.js +1 -33
  51. package/dist/_utils/git-context.js.map +1 -1
  52. package/dist/_utils/git-hook-setup.js +0 -1
  53. package/dist/_utils/git-hook-setup.js.map +1 -1
  54. package/dist/_utils/glen-headers.js +1 -4
  55. package/dist/_utils/glen-headers.js.map +1 -1
  56. package/dist/_utils/http.js +1 -8
  57. package/dist/_utils/http.js.map +1 -1
  58. package/dist/_utils/idempotency-key.js +1 -4
  59. package/dist/_utils/idempotency-key.js.map +1 -1
  60. package/dist/_utils/indicator-app.js +4 -26
  61. package/dist/_utils/indicator-app.js.map +1 -1
  62. package/dist/_utils/indicator-health.js +0 -6
  63. package/dist/_utils/indicator-health.js.map +1 -1
  64. package/dist/_utils/ingest-diagnosis.js +0 -5
  65. package/dist/_utils/ingest-diagnosis.js.map +1 -1
  66. package/dist/_utils/ingest-heartbeat.js +1 -6
  67. package/dist/_utils/ingest-heartbeat.js.map +1 -1
  68. package/dist/_utils/install-receipt.d.ts +9 -1
  69. package/dist/_utils/install-receipt.js +18 -3
  70. package/dist/_utils/install-receipt.js.map +1 -1
  71. package/dist/_utils/jcode-bundle.d.ts +3 -0
  72. package/dist/_utils/jcode-bundle.js +16 -0
  73. package/dist/_utils/jcode-bundle.js.map +1 -0
  74. package/dist/_utils/jcode-event.d.ts +3 -0
  75. package/dist/_utils/jcode-event.js +66 -0
  76. package/dist/_utils/jcode-event.js.map +1 -0
  77. package/dist/_utils/jcode-hook-lines.d.ts +5 -0
  78. package/dist/_utils/jcode-hook-lines.js +7 -0
  79. package/dist/_utils/jcode-hook-lines.js.map +1 -0
  80. package/dist/_utils/jcode-hooks-toml.d.ts +8 -0
  81. package/dist/_utils/jcode-hooks-toml.js +148 -0
  82. package/dist/_utils/jcode-hooks-toml.js.map +1 -0
  83. package/dist/_utils/jcode-paths.d.ts +7 -0
  84. package/dist/_utils/jcode-paths.js +10 -0
  85. package/dist/_utils/jcode-paths.js.map +1 -0
  86. package/dist/_utils/jcode-setup.d.ts +27 -0
  87. package/dist/_utils/jcode-setup.js +151 -0
  88. package/dist/_utils/jcode-setup.js.map +1 -0
  89. package/dist/_utils/jcode-skills-sync.d.ts +8 -0
  90. package/dist/_utils/jcode-skills-sync.js +74 -0
  91. package/dist/_utils/jcode-skills-sync.js.map +1 -0
  92. package/dist/_utils/login-check.js +1 -4
  93. package/dist/_utils/login-check.js.map +1 -1
  94. package/dist/_utils/managed-block.d.ts +4 -0
  95. package/dist/_utils/managed-block.js +38 -0
  96. package/dist/_utils/managed-block.js.map +1 -0
  97. package/dist/_utils/normalize-boolean-flags.js +2 -7
  98. package/dist/_utils/normalize-boolean-flags.js.map +1 -1
  99. package/dist/_utils/open-browser.js +1 -3
  100. package/dist/_utils/open-browser.js.map +1 -1
  101. package/dist/_utils/parse-claude-transcript.js +4 -24
  102. package/dist/_utils/parse-claude-transcript.js.map +1 -1
  103. package/dist/_utils/parse-codex-transcript.js +1 -22
  104. package/dist/_utils/parse-codex-transcript.js.map +1 -1
  105. package/dist/_utils/parse-cursor-db.js +2 -21
  106. package/dist/_utils/parse-cursor-db.js.map +1 -1
  107. package/dist/_utils/parse-harbor-atif.js +2 -1
  108. package/dist/_utils/parse-harbor-atif.js.map +1 -1
  109. package/dist/_utils/parse-jcode-session.d.ts +14 -0
  110. package/dist/_utils/parse-jcode-session.js +113 -0
  111. package/dist/_utils/parse-jcode-session.js.map +1 -0
  112. package/dist/_utils/parse-pi-transcript.js +1 -35
  113. package/dist/_utils/parse-pi-transcript.js.map +1 -1
  114. package/dist/_utils/parse-transcript.js +1 -9
  115. package/dist/_utils/parse-transcript.js.map +1 -1
  116. package/dist/_utils/plugin-status.d.ts +1 -1
  117. package/dist/_utils/plugin-status.js +25 -16
  118. package/dist/_utils/plugin-status.js.map +1 -1
  119. package/dist/_utils/post-route.js +0 -7
  120. package/dist/_utils/post-route.js.map +1 -1
  121. package/dist/_utils/pr-review-link.js +0 -2
  122. package/dist/_utils/pr-review-link.js.map +1 -1
  123. package/dist/_utils/proactive-ticket-log.js +1 -11
  124. package/dist/_utils/proactive-ticket-log.js.map +1 -1
  125. package/dist/_utils/record-commit-anchor.js +1 -8
  126. package/dist/_utils/record-commit-anchor.js.map +1 -1
  127. package/dist/_utils/refresh-control-state.js +1 -7
  128. package/dist/_utils/refresh-control-state.js.map +1 -1
  129. package/dist/_utils/render-callback-page.js +0 -7
  130. package/dist/_utils/render-callback-page.js.map +1 -1
  131. package/dist/_utils/resolve-import-workspace.d.ts +0 -7
  132. package/dist/_utils/resolve-import-workspace.js +1 -13
  133. package/dist/_utils/resolve-import-workspace.js.map +1 -1
  134. package/dist/_utils/run-bin.js +0 -2
  135. package/dist/_utils/run-bin.js.map +1 -1
  136. package/dist/_utils/session-map.js +0 -5
  137. package/dist/_utils/session-map.js.map +1 -1
  138. package/dist/_utils/shell-profile.js +1 -28
  139. package/dist/_utils/shell-profile.js.map +1 -1
  140. package/dist/_utils/state-line-memo.d.ts +0 -6
  141. package/dist/_utils/state-line-memo.js +3 -18
  142. package/dist/_utils/state-line-memo.js.map +1 -1
  143. package/dist/_utils/state-line.js +0 -4
  144. package/dist/_utils/state-line.js.map +1 -1
  145. package/dist/_utils/state.js +0 -5
  146. package/dist/_utils/state.js.map +1 -1
  147. package/dist/_utils/sync-mode-from-server.d.ts +0 -18
  148. package/dist/_utils/sync-mode-from-server.js +2 -21
  149. package/dist/_utils/sync-mode-from-server.js.map +1 -1
  150. package/dist/_utils/transcript-turns.d.ts +1 -1
  151. package/dist/_utils/transcript-turns.js +1 -51
  152. package/dist/_utils/transcript-turns.js.map +1 -1
  153. package/dist/_utils/turn-cache.js +1 -8
  154. package/dist/_utils/turn-cache.js.map +1 -1
  155. package/dist/_utils/update.d.ts +0 -10
  156. package/dist/_utils/update.js +8 -30
  157. package/dist/_utils/update.js.map +1 -1
  158. package/dist/_utils/version.js +3 -6
  159. package/dist/_utils/version.js.map +1 -1
  160. package/dist/_utils/which.d.ts +0 -5
  161. package/dist/_utils/which.js +0 -5
  162. package/dist/_utils/which.js.map +1 -1
  163. package/dist/_utils/write-commit-trailer.js +1 -5
  164. package/dist/_utils/write-commit-trailer.js.map +1 -1
  165. package/dist/bin.js +15 -31
  166. package/dist/bin.js.map +1 -1
  167. package/dist/commands/_utils/materialize-skill.js +4 -34
  168. package/dist/commands/_utils/materialize-skill.js.map +1 -1
  169. package/dist/commands/_utils/pack-skill-dir.js +6 -27
  170. package/dist/commands/_utils/pack-skill-dir.js.map +1 -1
  171. package/dist/commands/artifact.js +2 -5
  172. package/dist/commands/artifact.js.map +1 -1
  173. package/dist/commands/code-search.js +0 -6
  174. package/dist/commands/code-search.js.map +1 -1
  175. package/dist/commands/doctor.d.ts +0 -17
  176. package/dist/commands/doctor.js +29 -75
  177. package/dist/commands/doctor.js.map +1 -1
  178. package/dist/commands/feedback.js +2 -10
  179. package/dist/commands/feedback.js.map +1 -1
  180. package/dist/commands/git-hooks.js +0 -3
  181. package/dist/commands/git-hooks.js.map +1 -1
  182. package/dist/commands/import.js +5 -27
  183. package/dist/commands/import.js.map +1 -1
  184. package/dist/commands/incognito.d.ts +0 -5
  185. package/dist/commands/incognito.js +0 -5
  186. package/dist/commands/incognito.js.map +1 -1
  187. package/dist/commands/indicator.d.ts +0 -1
  188. package/dist/commands/indicator.js +0 -1
  189. package/dist/commands/indicator.js.map +1 -1
  190. package/dist/commands/ingest.js +58 -122
  191. package/dist/commands/ingest.js.map +1 -1
  192. package/dist/commands/install.d.ts +1 -0
  193. package/dist/commands/install.js +52 -93
  194. package/dist/commands/install.js.map +1 -1
  195. package/dist/commands/invite.d.ts +0 -6
  196. package/dist/commands/invite.js +0 -16
  197. package/dist/commands/invite.js.map +1 -1
  198. package/dist/commands/login.js +0 -15
  199. package/dist/commands/login.js.map +1 -1
  200. package/dist/commands/onboard.js +0 -6
  201. package/dist/commands/onboard.js.map +1 -1
  202. package/dist/commands/org.js +0 -2
  203. package/dist/commands/org.js.map +1 -1
  204. package/dist/commands/pr-link.js +2 -15
  205. package/dist/commands/pr-link.js.map +1 -1
  206. package/dist/commands/search.js +0 -5
  207. package/dist/commands/search.js.map +1 -1
  208. package/dist/commands/session-start.d.ts +0 -21
  209. package/dist/commands/session-start.js +19 -68
  210. package/dist/commands/session-start.js.map +1 -1
  211. package/dist/commands/set-mode.d.ts +0 -6
  212. package/dist/commands/set-mode.js +2 -12
  213. package/dist/commands/set-mode.js.map +1 -1
  214. package/dist/commands/skill.js +5 -35
  215. package/dist/commands/skill.js.map +1 -1
  216. package/dist/commands/statusline.d.ts +0 -13
  217. package/dist/commands/statusline.js +0 -15
  218. package/dist/commands/statusline.js.map +1 -1
  219. package/dist/commands/suggestions.d.ts +0 -6
  220. package/dist/commands/suggestions.js +0 -7
  221. package/dist/commands/suggestions.js.map +1 -1
  222. package/dist/commands/takeover/_utils/agent-paths.js +2 -3
  223. package/dist/commands/takeover/_utils/agent-paths.js.map +1 -1
  224. package/dist/commands/takeover/_utils/cursor-store.js +1 -3
  225. package/dist/commands/takeover/_utils/cursor-store.js.map +1 -1
  226. package/dist/commands/takeover/_utils/write-codex-desktop-session.js +1 -4
  227. package/dist/commands/takeover/_utils/write-codex-desktop-session.js.map +1 -1
  228. package/dist/commands/takeover/_utils/write-codex-session.js +1 -2
  229. package/dist/commands/takeover/_utils/write-codex-session.js.map +1 -1
  230. package/dist/commands/uninstall.d.ts +0 -1
  231. package/dist/commands/uninstall.js +7 -7
  232. package/dist/commands/uninstall.js.map +1 -1
  233. package/dist/commands/update.d.ts +0 -10
  234. package/dist/commands/update.js +21 -30
  235. package/dist/commands/update.js.map +1 -1
  236. package/dist/jcode/plugin.json +8 -0
  237. package/dist/jcode/preferred-tools.md +3 -0
  238. package/dist/jcode/prompt-overlay.md +15 -0
  239. package/dist/jcode/skills/code-search/SKILL.md +19 -0
  240. package/dist/jcode/skills/controls/SKILL.md +45 -0
  241. package/dist/jcode/skills/create-artifact/SKILL.md +11 -0
  242. package/dist/jcode/skills/create-skill/SKILL.md +41 -0
  243. package/dist/jcode/skills/feedback/SKILL.md +59 -0
  244. package/dist/jcode/skills/forget/SKILL.md +41 -0
  245. package/dist/jcode/skills/import-transcripts/SKILL.md +27 -0
  246. package/dist/jcode/skills/invite/SKILL.md +28 -0
  247. package/dist/jcode/skills/search/SKILL.md +35 -0
  248. package/dist/jcode/skills/session-takeover/SKILL.md +67 -0
  249. package/dist/jcode/skills/setup/SKILL.md +62 -0
  250. package/dist/jcode/skills/use-artifact/SKILL.md +11 -0
  251. package/dist/jcode/skills/use-skill/SKILL.md +10 -0
  252. package/package.json +5 -3
@@ -40,10 +40,6 @@ const classifyFetchError = (e, url) => {
40
40
  };
41
41
  const httpJson = async (url, options = {}) => {
42
42
  const { method = "GET", headers, body, timeoutMs } = options;
43
- // Staging/preview deployments sit behind Vercel deployment protection; the
44
- // bypass token must ride on EVERY request or Vercel 401s before the app
45
- // runs. Env-gated so production use (unset) sends nothing extra — pairs
46
- // with GLEN_BASE_URL for pointing the CLI at a preview deploy.
47
43
  const bypassToken = process.env.GLEN_VERCEL_PROTECTION_BYPASS;
48
44
  const mergedHeaders = {
49
45
  ...(bypassToken ? { "x-vercel-protection-bypass": bypassToken } : {}),
@@ -81,7 +77,7 @@ const httpJson = async (url, options = {}) => {
81
77
  return rawText.length > 0 ? JSON.parse(rawText) : null;
82
78
  }
83
79
  catch {
84
- return null; // non-JSON body (e.g. "Unauthorized") — surface via status/isOk
80
+ return null;
85
81
  }
86
82
  })();
87
83
  return {
@@ -94,9 +90,6 @@ const httpJson = async (url, options = {}) => {
94
90
  },
95
91
  };
96
92
  };
97
- // Remedy for a transport failure: HttpFailure.detail stays purely
98
- // descriptive; the actionable part lives here, on the CliError side. Only
99
- // refused/dns plausibly point at a misconfigured custom base URL.
100
93
  const networkRemedy = (failure) => failure.kind === "refused" || failure.kind === "dns"
101
94
  ? "check your connection and retry; if you use a custom GLEN_BASE_URL, verify it"
102
95
  : "check your connection and retry";
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/_utils/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/_utils/http.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,5 @@
1
1
  import { createHash } from "node:crypto";
2
- // The second argument is a number (user message index from transcript) or a
3
- // string (turn_id from codex events when no transcript is available). Both are
4
- // serialised via template literal and separated from sessionId by a null byte
5
- // to prevent prefix-collision attacks.
2
+ // The null-byte separator prevents prefix collisions between sessionId and the index.
6
3
  const idempotencyKey = (sessionId, userMessageIndexOrTurnId) => createHash("sha256")
7
4
  .update(`${sessionId}\0${userMessageIndexOrTurnId}`)
8
5
  .digest("hex");
@@ -1 +1 @@
1
- {"version":3,"file":"idempotency-key.js","sourceRoot":"","sources":["../../src/_utils/idempotency-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AAC9E,uCAAuC;AACvC,MAAM,cAAc,GAAG,CACrB,SAAiB,EACjB,wBAAyC,EACjC,EAAE,CACV,UAAU,CAAC,QAAQ,CAAC;KACjB,MAAM,CAAC,GAAG,SAAS,KAAK,wBAAwB,EAAE,CAAC;KACnD,MAAM,CAAC,KAAK,CAAC,CAAC;AAEnB,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"idempotency-key.js","sourceRoot":"","sources":["../../src/_utils/idempotency-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,sFAAsF;AACtF,MAAM,cAAc,GAAG,CACrB,SAAiB,EACjB,wBAAyC,EACjC,EAAE,CACV,UAAU,CAAC,QAAQ,CAAC;KACjB,MAAM,CAAC,GAAG,SAAS,KAAK,wBAAwB,EAAE,CAAC;KACnD,MAAM,CAAC,KAAK,CAAC,CAAC;AAEnB,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -5,23 +5,14 @@ import { fileURLToPath } from "node:url";
5
5
  import { err, fromPromise, ok } from "./result.js";
6
6
  import { runBin } from "./run-bin.js";
7
7
  const LABEL = "com.tryglen.indicator";
8
- // Two levels up from _utils/ is the package root, from both src/ (vitest runs TS
9
- // directly) and dist/ (built) — same trick as version.ts.
10
8
  const indicatorExecutable = () => process.env.GLEN_INDICATOR_APP ??
11
9
  join(dirname(fileURLToPath(import.meta.url)), "..", "..", "dist", "macos", "glen.app", "Contents", "MacOS", "glen");
12
10
  const launchAgentPath = () => process.env.GLEN_LAUNCH_AGENT_PATH ??
13
11
  join(homedir(), "Library", "LaunchAgents", `${LABEL}.plist`);
14
- // dist/bin.js beside this module once built (src/bin.ts under vitest, which
15
- // never registers for real).
16
12
  const cliEntrypoint = () => process.env.GLEN_CLI_ENTRYPOINT ??
17
13
  join(dirname(fileURLToPath(import.meta.url)), "..", "bin.js");
18
- // KeepAlive is deliberately absent: "Quit glen" from the menu must stay quit
19
- // until the next login, not respawn under the user.
20
- //
21
- // GLEN_NODE/GLEN_CLI let the app change modes by exec'ing this exact CLI.
22
- // launchd hands a GUI agent PATH=/usr/bin:/bin:/usr/sbin:/sbin, and `sh -l`
23
- // only rebuilds it from /etc/paths*, so a `glen` installed under nvm or a
24
- // custom npm prefix — a PATH entry that lives in ~/.zshrc — is unreachable.
14
+ // No KeepAlive: "Quit glen" must stay quit until the next login.
15
+ // GLEN_NODE/GLEN_CLI: launchd gives GUI agents a minimal PATH, so a glen under nvm is unreachable otherwise.
25
16
  const launchAgentPlist = (executable) => `<?xml version="1.0" encoding="UTF-8"?>
26
17
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
27
18
  <plist version="1.0">
@@ -48,8 +39,6 @@ const registerIndicator = async () => {
48
39
  const written = await fromPromise(writeFile(path, launchAgentPlist(indicatorExecutable())));
49
40
  if (!written.ok)
50
41
  return err(`write ${path}: ${String(written.error)}`);
51
- // bootstrap refuses a label that is already loaded, so clear it first. A
52
- // missing service is the normal case on a fresh install, not an error.
53
42
  runBin("launchctl", ["bootout", `${domain()}/${LABEL}`]);
54
43
  const loaded = runBin("launchctl", ["bootstrap", domain(), path]);
55
44
  if (!loaded.ok)
@@ -58,8 +47,6 @@ const registerIndicator = async () => {
58
47
  };
59
48
  const unregisterIndicator = async () => {
60
49
  const path = launchAgentPath();
61
- // No plist means nothing was ever registered — stay silent rather than
62
- // shelling out, so a repeat uninstall touches nothing.
63
50
  if (!(await fromPromise(access(path))).ok)
64
51
  return ok(undefined);
65
52
  runBin("launchctl", ["bootout", `${domain()}/${LABEL}`]);
@@ -72,9 +59,7 @@ const unregisterIndicator = async () => {
72
59
  return ok(undefined);
73
60
  };
74
61
  const indicatorRunning = () => runBin("launchctl", ["print", `${domain()}/${LABEL}`]).ok;
75
- // The indicator is on by default and converges through `glen doctor --auto`,
76
- // which the SessionStart hook already runs. Without a persisted opt-out that
77
- // convergence would silently undo `glen indicator stop` on the next session.
62
+ // Persisted opt-out: doctor --auto re-converges the indicator every session and would otherwise undo `glen indicator stop`.
78
63
  const optOutPath = () => process.env.GLEN_INDICATOR_OPTOUT_PATH ??
79
64
  join(homedir(), ".glen", "indicator-disabled");
80
65
  const indicatorOptedOut = async () => (await fromPromise(access(optOutPath()))).ok;
@@ -86,15 +71,10 @@ const setIndicatorOptOut = async (optedOut) => {
86
71
  await fromPromise(mkdir(dirname(optOutPath()), { recursive: true }));
87
72
  await fromPromise(writeFile(optOutPath(), ""));
88
73
  };
89
- // A registered indicator whose plist predates GLEN_CLI can't change modes: it
90
- // falls back to a PATH lookup that launchd's environment often can't satisfy.
91
- // Re-register it rather than leaving those users with a dead menu.
92
74
  const launchAgentStale = async () => {
93
75
  const current = await fromPromise(readFile(launchAgentPath(), "utf-8"));
94
76
  return current.ok ? !current.value.includes("GLEN_CLI") : false;
95
77
  };
96
- // Best-effort convergence for installs and updates: never fights an explicit
97
- // opt-out, never reports failure to a hook.
98
78
  const ensureIndicatorRunning = async () => {
99
79
  if (process.platform !== "darwin")
100
80
  return false;
@@ -102,9 +82,7 @@ const ensureIndicatorRunning = async () => {
102
82
  return false;
103
83
  if (indicatorRunning() && !(await launchAgentStale()))
104
84
  return true;
105
- // Registering a login item for a binary that isn't there leaves launchd
106
- // failing to spawn it every login, silently. `glen doctor` then reports
107
- // not-running with no way to tell why.
85
+ // Never register a missing binary: launchd would fail silently at every login.
108
86
  if (!(await fromPromise(access(indicatorExecutable()))).ok)
109
87
  return false;
110
88
  return (await registerIndicator()).ok;
@@ -1 +1 @@
1
- {"version":3,"file":"indicator-app.js","sourceRoot":"","sources":["../../src/_utils/indicator-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indicator-app.js","sourceRoot":"","sources":["../../src/_utils/indicator-app.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,6 @@ import { readFile } from "node:fs/promises";
2
2
  import { homedir } from "node:os";
3
3
  import { join } from "node:path";
4
4
  import { fromPromise } from "./result.js";
5
- // Stale means the indicator stopped writing — i.e. it is not running — which is
6
- // a different problem from "running but hidden", and gets a different remedy.
7
5
  const STALE_AFTER_MINUTES = 5;
8
6
  const indicatorHealthPath = () => process.env.GLEN_INDICATOR_HEALTH_PATH ??
9
7
  join(homedir(), ".glen", "indicator-health.json");
@@ -26,10 +24,6 @@ const readIndicatorHealth = async (now = Date.now()) => {
26
24
  ageMinutes: Math.max(0, (now - checkedAt) / 60_000),
27
25
  };
28
26
  };
29
- // One decision tree for both `glen doctor` and `glen indicator status`. A health
30
- // report outlives the process that wrote it, so an unregistered indicator must
31
- // never inherit its last "visible" — that reads as "it's fine" when nothing is
32
- // on screen.
33
27
  const visibilityLabel = (registered, health) => {
34
28
  if (!registered)
35
29
  return "not-running";
@@ -1 +1 @@
1
- {"version":3,"file":"indicator-health.js","sourceRoot":"","sources":["../../src/_utils/indicator-health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQ1C,gFAAgF;AAChF,8EAA8E;AAC9E,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,mBAAmB,GAAG,GAAW,EAAE,CACvC,OAAO,CAAC,GAAG,CAAC,0BAA0B;IACtC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC;AAEpD,MAAM,mBAAmB,GAAG,KAAK,EAC/B,MAAc,IAAI,CAAC,GAAG,EAAE,EACS,EAAE;IACnC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,mBAAmB,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAC/B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAY,CAAC,CAC1C,CACF,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAuC,CAAC;IAC5D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI;QAC9B,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACjE,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC;KACpD,CAAC;AACJ,CAAC,CAAC;AAEF,iFAAiF;AACjF,+EAA+E;AAC/E,+EAA+E;AAC/E,aAAa;AACb,MAAM,eAAe,GAAG,CACtB,UAAmB,EACnB,MAA8B,EACtB,EAAE;IACV,IAAI,CAAC,UAAU;QAAE,OAAO,aAAa,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,MAAM,CAAC,UAAU,GAAG,mBAAmB;QAAE,OAAO,OAAO,CAAC;IAC5D,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACpD,CAAC,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"indicator-health.js","sourceRoot":"","sources":["../../src/_utils/indicator-health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQ1C,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,mBAAmB,GAAG,GAAW,EAAE,CACvC,OAAO,CAAC,GAAG,CAAC,0BAA0B;IACtC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC;AAEpD,MAAM,mBAAmB,GAAG,KAAK,EAC/B,MAAc,IAAI,CAAC,GAAG,EAAE,EACS,EAAE;IACnC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,mBAAmB,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAC/B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAY,CAAC,CAC1C,CACF,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAuC,CAAC;IAC5D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI;QAC9B,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACjE,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC;KACpD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACtB,UAAmB,EACnB,MAA8B,EACtB,EAAE;IACV,IAAI,CAAC,UAAU;QAAE,OAAO,aAAa,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,MAAM,CAAC,UAAU,GAAG,mBAAmB;QAAE,OAAO,OAAO,CAAC;IAC5D,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACpD,CAAC,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAC"}
@@ -1,12 +1,9 @@
1
1
  import { GLEN_OWNER_PREFIX } from "./codex-hooks-merge.js";
2
- // Under an hour post-install, silence is still "warming up", not a fault.
3
2
  const FRESH_INSTALL_MS = 60 * 60 * 1000;
4
3
  const diagnoseIngest = (input) => {
5
4
  const entry = input.heartbeat[input.agent];
6
5
  if (entry) {
7
6
  const lastSuccessAt = entry.lastSuccessAt ?? null;
8
- // Ran but no outcome (logged out / glen off / no completed turn) = idle,
9
- // not failing — the hook plumbing is proven.
10
7
  if (entry.lastOutcome === undefined)
11
8
  return { state: "idle", lastSuccessAt };
12
9
  return entry.lastOutcome === "success"
@@ -23,8 +20,6 @@ const UNTRUSTED_REMEDY = "open your agent and trust the glen hooks (/hooks), the
23
20
  const PATH_REMEDY = "`glen` is not on your login shell's PATH — run `glen update` or add the npm global bin dir to PATH";
24
21
  const TOPOLOGY_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";
25
22
  const HOOK_QUERY_FAILED_REMEDY = "could not query codex hook trust (codex app-server failed) — run `glen install --agent codex` to re-register and re-trust the hooks";
26
- // Narrows never-ingested-despite-registered-hooks to untrusted hook / PATH
27
- // gap / topology mismatch. Deps injected so tests spawn nothing.
28
23
  const codexNeverDifferential = async (deps) => {
29
24
  const hooks = await deps.listHooks();
30
25
  if (!hooks.ok)
@@ -1 +1 @@
1
- {"version":3,"file":"ingest-diagnosis.js","sourceRoot":"","sources":["../../src/_utils/ingest-diagnosis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,0EAA0E;AAC1E,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAIxC,MAAM,cAAc,GAAG,CAAC,KAQvB,EAAwD,EAAE;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC;QAClD,yEAAyE;QACzE,6CAA6C;QAC7C,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;YACjC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC,WAAW,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE;YAChC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW;QACrC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;QAC/B,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,KAAK,GACT,aAAa,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,aAAa,GAAG,gBAAgB,CAAC;IACzE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,gBAAgB,GACpB,oHAAoH,CAAC;AACvH,MAAM,WAAW,GACf,oGAAoG,CAAC;AACvG,MAAM,eAAe,GACnB,iPAAiP,CAAC;AACpP,MAAM,wBAAwB,GAC5B,qIAAqI,CAAC;AAExI,2EAA2E;AAC3E,iEAAiE;AACjE,MAAM,sBAAsB,GAAG,KAAK,EAAE,IAKrC,EAAqB,EAAE;IACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,MAAM,KAAK,MAAM;QACnB,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACnD,CAAC,CAAC,WAAW,KAAK,SAAS,CAC9B,CAAC;IACF,IAAI,iBAAiB;QAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE;QAC3D,KAAK;QACL,iBAAiB;KAClB,CAAC,CAAC;IACH,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS;QAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE1D,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"ingest-diagnosis.js","sourceRoot":"","sources":["../../src/_utils/ingest-diagnosis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAIxC,MAAM,cAAc,GAAG,CAAC,KAQvB,EAAwD,EAAE;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC;QAClD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;YACjC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC,WAAW,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE;YAChC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW;QACrC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;QAC/B,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,KAAK,GACT,aAAa,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,aAAa,GAAG,gBAAgB,CAAC;IACzE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,gBAAgB,GACpB,oHAAoH,CAAC;AACvH,MAAM,WAAW,GACf,oGAAoG,CAAC;AACvG,MAAM,eAAe,GACnB,iPAAiP,CAAC;AACpP,MAAM,wBAAwB,GAC5B,qIAAqI,CAAC;AAExI,MAAM,sBAAsB,GAAG,KAAK,EAAE,IAKrC,EAAqB,EAAE;IACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,MAAM,KAAK,MAAM;QACnB,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACnD,CAAC,CAAC,WAAW,KAAK,SAAS,CAC9B,CAAC;IACF,IAAI,iBAAiB;QAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE;QAC3D,KAAK;QACL,iBAAiB;KAClB,CAAC,CAAC;IACH,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS;QAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE1D,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,CAAC"}
@@ -4,9 +4,6 @@ import { dirname, join } from "node:path";
4
4
  const heartbeatPath = () => join(process.env.GLEN_STATE_PATH
5
5
  ? dirname(process.env.GLEN_STATE_PATH)
6
6
  : join(homedir(), ".glen"), "ingest-heartbeat.json");
7
- // An entry only counts as "a hook ran here" when it carries a real timestamp —
8
- // a hand-edited or half-written file must not fake a heartbeat (the login-check
9
- // and doctor gates both read "any entry exists" as proof the plumbing works).
10
7
  const isEntry = (value) => !!value &&
11
8
  typeof value === "object" &&
12
9
  Number.isFinite(value.lastRunAt);
@@ -29,9 +26,7 @@ const write = async (map) => {
29
26
  await writeFile(tmp, JSON.stringify(map));
30
27
  await rename(tmp, path);
31
28
  }
32
- catch {
33
- /* best-effort — a heartbeat write must never break a hook */
34
- }
29
+ catch { }
35
30
  };
36
31
  const recordHeartbeatRun = async (agent) => {
37
32
  const map = await readHeartbeat();
@@ -1 +1 @@
1
- {"version":3,"file":"ingest-heartbeat.js","sourceRoot":"","sources":["../../src/_utils/ingest-heartbeat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ingest-heartbeat.js","sourceRoot":"","sources":["../../src/_utils/ingest-heartbeat.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,14 @@ type CodexFilesSnapshot = {
11
11
  readonly configPath: string;
12
12
  readonly configExisted: boolean;
13
13
  };
14
+ type JcodeFilesSnapshot = {
15
+ readonly configToml: FileSnapshot;
16
+ readonly promptOverlay: FileSnapshot;
17
+ readonly preferredTools: FileSnapshot;
18
+ readonly skillDirs: readonly string[];
19
+ };
14
20
  type PendingInstall = {
15
- readonly agents: readonly ("claude" | "codex" | "cursor" | "pi")[];
21
+ readonly agents: readonly ("claude" | "codex" | "cursor" | "pi" | "jcode")[];
16
22
  readonly outcome: "completed" | "warnings" | "instructions";
17
23
  readonly occurredAt: string;
18
24
  };
@@ -25,6 +31,7 @@ type InstallReceipt = {
25
31
  readonly statePaths: string[];
26
32
  readonly pendingInstall?: PendingInstall;
27
33
  readonly installedAt?: string;
34
+ readonly jcodeFiles?: JcodeFilesSnapshot;
28
35
  };
29
36
  declare const installReceipt: {
30
37
  path: () => string;
@@ -32,6 +39,7 @@ declare const installReceipt: {
32
39
  recordShellProfile: (path: string) => Promise<Result<void, unknown>>;
33
40
  recordClaudeSettings: (snapshot: FileSnapshot) => Promise<Result<void, unknown>>;
34
41
  recordCodexFiles: (snapshot: CodexFilesSnapshot) => Promise<Result<void, unknown>>;
42
+ recordJcodeFiles: (snapshot: JcodeFilesSnapshot) => Promise<Result<void, unknown>>;
35
43
  recordGitHook: (snapshot: FileSnapshot) => Promise<Result<void, unknown>>;
36
44
  recordPendingInstall: (pendingInstall: PendingInstall) => Promise<Result<void, unknown>>;
37
45
  clearPendingInstall: () => Promise<Result<void, unknown>>;
@@ -24,7 +24,8 @@ const isFileSnapshot = (value) => {
24
24
  const isInstallAgent = (value) => value === "claude" ||
25
25
  value === "codex" ||
26
26
  value === "cursor" ||
27
- value === "pi";
27
+ value === "pi" ||
28
+ value === "jcode";
28
29
  const isInstallOutcome = (value) => value === "completed" || value === "warnings" || value === "instructions";
29
30
  const isIsoTimestamp = (value) => {
30
31
  if (typeof value !== "string")
@@ -88,6 +89,16 @@ const parseReceipt = (raw) => {
88
89
  const installedAt = isIsoTimestamp(value.installedAt)
89
90
  ? value.installedAt
90
91
  : null;
92
+ const jcode = value.jcodeFiles;
93
+ const jcodeFiles = jcode &&
94
+ typeof jcode === "object" &&
95
+ isFileSnapshot(jcode.configToml) &&
96
+ isFileSnapshot(jcode.promptOverlay) &&
97
+ isFileSnapshot(jcode.preferredTools) &&
98
+ Array.isArray(jcode.skillDirs) &&
99
+ jcode.skillDirs.every((d) => typeof d === "string")
100
+ ? jcode
101
+ : null;
91
102
  return {
92
103
  version: 1,
93
104
  shellProfiles: value.shellProfiles,
@@ -97,6 +108,7 @@ const parseReceipt = (raw) => {
97
108
  statePaths: value.statePaths,
98
109
  ...(pendingInstall ? { pendingInstall } : {}),
99
110
  ...(installedAt ? { installedAt } : {}),
111
+ ...(jcodeFiles ? { jcodeFiles } : {}),
100
112
  };
101
113
  };
102
114
  const read = async () => {
@@ -132,6 +144,10 @@ const recordCodexFiles = async (snapshot) => update((current) => ({
132
144
  ...current,
133
145
  codexFiles: current.codexFiles ?? snapshot,
134
146
  }));
147
+ const recordJcodeFiles = async (snapshot) => update((current) => ({
148
+ ...current,
149
+ jcodeFiles: current.jcodeFiles ?? snapshot,
150
+ }));
135
151
  const recordGitHook = async (snapshot) => update((current) => {
136
152
  const prior = current.gitHooks.find((hook) => hook.path === snapshot.path);
137
153
  const gitHooks = prior
@@ -146,8 +162,6 @@ const recordPendingInstall = async (pendingInstall) => update((current) => ({ ..
146
162
  // or a machine that has never recorded a turn would look permanently fresh.
147
163
  const recordInstalledAt = async (iso) => update((current) => current.installedAt ? current : { ...current, installedAt: iso });
148
164
  const clearPendingInstall = async () => update(({ pendingInstall: _pendingInstall, ...current }) => current);
149
- // Most durable source first: installedAt → pendingInstall (not yet POSTed) →
150
- // receipt mtime (pre-installedAt receipts) → null (no receipt).
151
165
  const installedAt = async () => {
152
166
  const receipt = await read();
153
167
  if (receipt?.installedAt)
@@ -172,6 +186,7 @@ const installReceipt = {
172
186
  })),
173
187
  recordClaudeSettings,
174
188
  recordCodexFiles,
189
+ recordJcodeFiles,
175
190
  recordGitHook,
176
191
  recordPendingInstall,
177
192
  clearPendingInstall,
@@ -1 +1 @@
1
- {"version":3,"file":"install-receipt.js","sourceRoot":"","sources":["../../src/_utils/install-receipt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-receipt.js","sourceRoot":"","sources":["../../src/_utils/install-receipt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare const jcodeBundleDir: () => string;
2
+ declare const jcodeBundleVersion: () => string | null;
3
+ export { jcodeBundleDir, jcodeBundleVersion };
@@ -0,0 +1,16 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ const jcodeBundleDir = () => process.env.GLEN_JCODE_BUNDLE_DIR ||
5
+ join(dirname(fileURLToPath(import.meta.url)), "..", "jcode");
6
+ const jcodeBundleVersion = () => {
7
+ try {
8
+ const manifest = JSON.parse(readFileSync(join(jcodeBundleDir(), "plugin.json"), "utf8"));
9
+ return typeof manifest.version === "string" ? manifest.version : null;
10
+ }
11
+ catch {
12
+ return null;
13
+ }
14
+ };
15
+ export { jcodeBundleDir, jcodeBundleVersion };
16
+ //# sourceMappingURL=jcode-bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jcode-bundle.js","sourceRoot":"","sources":["../../src/_utils/jcode-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,cAAc,GAAG,GAAW,EAAE,CAClC,OAAO,CAAC,GAAG,CAAC,qBAAqB;IACjC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAE/D,MAAM,kBAAkB,GAAG,GAAkB,EAAE;IAC7C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CACnC,CAAC;QAC3B,OAAO,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const readJcodeStopEvent: (env: NodeJS.ProcessEnv) => Promise<Record<string, unknown> | null>;
2
+ declare const jcodeSessionStartEvent: (env: NodeJS.ProcessEnv) => Record<string, unknown> | null;
3
+ export { readJcodeStopEvent, jcodeSessionStartEvent };
@@ -0,0 +1,66 @@
1
+ import { readJcodeTurn, readJcodeUserPrompt } from "./parse-jcode-session.js";
2
+ const payloadOf = (env) => {
3
+ try {
4
+ const parsed = JSON.parse(env.JCODE_HOOK_PAYLOAD ?? "");
5
+ return parsed !== null && typeof parsed === "object"
6
+ ? parsed
7
+ : {};
8
+ }
9
+ catch {
10
+ return {};
11
+ }
12
+ };
13
+ const str = (value) => typeof value === "string" && value ? value : null;
14
+ const field = (env, suffix, key) => str(env[`JCODE_HOOK_${suffix}`]) ?? str(payloadOf(env)[key]);
15
+ // jcode fires turn_end ~5-7s before the reply reaches the session file. Wait for it (the hook is detached),
16
+ // then fall back to the env's LAST_ASSISTANT_TEXT (first 4000 chars) so the turn is never dropped.
17
+ const DEFAULT_SESSION_RETRIES = 30;
18
+ const readJcodeStopEvent = async (env) => {
19
+ const sessionId = field(env, "SESSION_ID", "session_id");
20
+ if (!sessionId || field(env, "EVENT", "event") !== "turn_end")
21
+ return null;
22
+ const cwd = field(env, "CWD", "cwd") ?? process.cwd();
23
+ const model = field(env, "MODEL", "model");
24
+ const configured = Number(env.GLEN_JCODE_SESSION_RETRIES);
25
+ const retries = Number.isFinite(configured)
26
+ ? configured
27
+ : DEFAULT_SESSION_RETRIES;
28
+ const base = {
29
+ hook_event_name: "Stop",
30
+ session_id: sessionId,
31
+ cwd,
32
+ ...(model ? { model } : {}),
33
+ };
34
+ const turn = await readJcodeTurn(sessionId, { retries });
35
+ if (turn)
36
+ return {
37
+ ...base,
38
+ prompt: turn.prompt,
39
+ text: turn.text,
40
+ turn_id: turn.turnId,
41
+ };
42
+ const fallbackText = field(env, "LAST_ASSISTANT_TEXT", "last_assistant_text");
43
+ const userPrompt = await readJcodeUserPrompt(sessionId);
44
+ if (userPrompt && fallbackText)
45
+ return {
46
+ ...base,
47
+ prompt: userPrompt.prompt,
48
+ text: fallbackText,
49
+ turn_id: userPrompt.turnId,
50
+ };
51
+ return fallbackText ? { ...base, text: fallbackText } : base;
52
+ };
53
+ const jcodeSessionStartEvent = (env) => {
54
+ const sessionId = field(env, "SESSION_ID", "session_id");
55
+ if (!sessionId || field(env, "EVENT", "event") !== "session_start")
56
+ return null;
57
+ const source = field(env, "SOURCE", "source");
58
+ return {
59
+ hook_event_name: "SessionStart",
60
+ session_id: sessionId,
61
+ cwd: field(env, "CWD", "cwd") ?? process.cwd(),
62
+ ...(source ? { source } : {}),
63
+ };
64
+ };
65
+ export { readJcodeStopEvent, jcodeSessionStartEvent };
66
+ //# sourceMappingURL=jcode-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jcode-event.js","sourceRoot":"","sources":["../../src/_utils/jcode-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE9E,MAAM,SAAS,GAAG,CAAC,GAAsB,EAA2B,EAAE;IACpE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAY,CAAC;QACnE,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;YAClD,CAAC,CAAE,MAAkC;YACrC,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,GAAG,GAAG,CAAC,KAAc,EAAiB,EAAE,CAC5C,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAEpD,MAAM,KAAK,GAAG,CACZ,GAAsB,EACtB,MAAc,EACd,GAAW,EACI,EAAE,CACjB,GAAG,CAAC,GAAG,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,4GAA4G;AAC5G,mGAAmG;AACnG,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,kBAAkB,GAAG,KAAK,EAC9B,GAAsB,EACmB,EAAE;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAC3E,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;QACzC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,uBAAuB,CAAC;IAC5B,MAAM,IAAI,GAAG;QACX,eAAe,EAAE,MAAM;QACvB,UAAU,EAAE,SAAS;QACrB,GAAG;QACH,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5B,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACzD,IAAI,IAAI;QACN,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,MAAM;SACrB,CAAC;IACJ,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,UAAU,IAAI,YAAY;QAC5B,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,UAAU,CAAC,MAAM;SAC3B,CAAC;IACJ,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAC7B,GAAsB,EACU,EAAE;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,eAAe;QAChE,OAAO,IAAI,CAAC;IACd,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9C,OAAO;QACL,eAAe,EAAE,cAAc;QAC/B,UAAU,EAAE,SAAS;QACrB,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE;QAC9C,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ declare const GLEN_JCODE_HOOK_LINES: {
2
+ readonly session_start: "glen session-start --agent jcode";
3
+ readonly turn_end: "glen ingest --agent jcode";
4
+ };
5
+ export { GLEN_JCODE_HOOK_LINES };
@@ -0,0 +1,7 @@
1
+ // FROZEN: pinned by ingest.contract.test.ts. These exact strings are written into ~/.jcode/config.toml.
2
+ const GLEN_JCODE_HOOK_LINES = {
3
+ session_start: "glen session-start --agent jcode",
4
+ turn_end: "glen ingest --agent jcode",
5
+ };
6
+ export { GLEN_JCODE_HOOK_LINES };
7
+ //# sourceMappingURL=jcode-hook-lines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jcode-hook-lines.js","sourceRoot":"","sources":["../../src/_utils/jcode-hook-lines.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,MAAM,qBAAqB,GAAG;IAC5B,aAAa,EAAE,kCAAkC;IACjD,QAAQ,EAAE,2BAA2B;CAC7B,CAAC;AAEX,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type Result } from "./result.js";
2
+ type HooksTable = Readonly<Record<string, string | readonly string[]>>;
3
+ type HookLines = Readonly<Record<string, string>>;
4
+ declare const readHooksTable: (toml: string) => Result<HooksTable, string>;
5
+ declare const hasHookLines: (table: HooksTable, lines: HookLines) => boolean;
6
+ declare const upsertHookLines: (toml: string, lines: HookLines) => Result<string, string>;
7
+ declare const removeHookLines: (toml: string, lines: HookLines) => Result<string, string>;
8
+ export { readHooksTable, hasHookLines, upsertHookLines, removeHookLines };