@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
@@ -10,6 +10,7 @@ import { buildGlenHeaders } from "../_utils/glen-headers.js";
10
10
  import { httpJson } from "../_utils/http.js";
11
11
  import { recordIngestCaptureOutcome } from "../_utils/ingest-failure-memo.js";
12
12
  import { recordHeartbeatOutcome, recordHeartbeatRun, } from "../_utils/ingest-heartbeat.js";
13
+ import { readJcodeStopEvent } from "../_utils/jcode-event.js";
13
14
  import { parseTranscript } from "../_utils/parse-transcript.js";
14
15
  import { buildReviewUrl, extractPrUrls } from "../_utils/pr-review-link.js";
15
16
  import { refreshControlState } from "../_utils/refresh-control-state.js";
@@ -30,9 +31,7 @@ const readStdin = async () => {
30
31
  chunks.push(chunk);
31
32
  return Buffer.concat(chunks).toString("utf8");
32
33
  };
33
- // Appended to agent-facing failure hints: when the TTL'd update-check cache
34
- // already knows about a newer version, suggest `glen update` (never hits the
35
- // network — hooks must stay fast).
34
+ // Reads the cache only, never the network: hooks must stay fast.
36
35
  const updateAddendum = () => {
37
36
  const v = cachedNewerVersion();
38
37
  return v
@@ -45,24 +44,21 @@ const readTranscriptLines = async (path) => {
45
44
  return [];
46
45
  return r.value.split("\n").filter(Boolean);
47
46
  };
48
- // Hook invariant: ingest NEVER returns an error and bin.ts NEVER exits
49
- // nonzero for it — a nonzero hook exit blocks the user's prompt (exit 2 is
50
- // Claude Code's blocking code). Every failure mode instead emits an
51
- // agent-facing hint via emit() and resolves ok.
47
+ // Hook invariant: never return an error or exit nonzero — a nonzero hook exit blocks the user's prompt.
48
+ // Every failure emits an agent-facing hint and resolves ok.
52
49
  const ingest = async (agent) => {
53
50
  void maybeSpawnBackgroundUpdate();
54
51
  const stdinRaw = await readStdin();
55
- const event = (() => {
56
- try {
57
- return JSON.parse(stdinRaw);
58
- }
59
- catch {
60
- return null;
61
- }
62
- })();
63
- // Cursor vocabulary → glen's internal vocabulary. Cursor events carry
64
- // conversation_id (not session_id); afterAgentResponse is Cursor's
65
- // "completed turn" event (stop carries no assistant text).
52
+ const event = agent === "jcode"
53
+ ? await readJcodeStopEvent(process.env)
54
+ : (() => {
55
+ try {
56
+ return JSON.parse(stdinRaw);
57
+ }
58
+ catch {
59
+ return null;
60
+ }
61
+ })();
66
62
  if (agent === "cursor" && event) {
67
63
  if (!event.session_id && typeof event.conversation_id === "string")
68
64
  event.session_id = event.conversation_id;
@@ -76,37 +72,25 @@ const ingest = async (agent) => {
76
72
  return ok(undefined);
77
73
  if (hookEventName !== "Stop" && typeof event.prompt !== "string")
78
74
  return ok(undefined);
79
- // Normalise the agent name — only known values are forwarded. (Pi events
80
- // arrive in the claude vocabulary already: they are authored by glen's own
81
- // pi extension, so no field mapping is needed.)
82
75
  const agentName = agent === "claude-code" ||
83
76
  agent === "codex" ||
84
77
  agent === "cursor" ||
85
- agent === "pi"
78
+ agent === "pi" ||
79
+ agent === "jcode"
86
80
  ? agent
87
81
  : undefined;
88
- // Machine-spawned ephemeral session (fleet driver / one-shot thread): no
89
- // injection and no capture. Stdout would be injected into the spawned
90
- // thread — leaking "[glen] …" lines into its parent orchestrator's view of
91
- // the thread's output — and every one-shot turn would land in team memory
92
- // as a junk conversation. See _utils/ephemeral-session.ts.
82
+ // Ephemeral machine-spawned session: no capture, no injection.
83
+ // Stdout would leak into the parent orchestrator's view of the thread.
93
84
  if (isEphemeralSession(agentName, event))
94
85
  return ok(undefined);
95
86
  const heartbeatAgent = agentName ?? "unknown";
96
- // Ahead of the credentials check on purpose — the heartbeat proves "the
97
- // hook fired here", which a logged-out machine needs answered too.
87
+ // Before the credentials check on purpose: a logged-out machine still needs to prove the hook fired.
98
88
  await recordHeartbeatRun(heartbeatAgent);
99
- // `text` is model-facing context. Channel selection:
100
- // - Codex parses stdout as JSON and REQUIRES the hookSpecificOutput envelope
101
- // (plain text → the hook is marked Failed and the context is dropped —
102
- // verified live on 0.137.0), so it always uses the envelope.
103
- // - Pi: glen's own pi extension consumes stdout and parses the same
104
- // envelope (with a plain-text fallback), so pi rides the codex channel.
105
- // - Claude Code injects raw stdout as context, so plain text is enough.
106
- // - Unknown agents stay on plain stdout — we can't assume they parse JSON.
89
+ // Codex requires the hookSpecificOutput JSON envelope (plain text drops the context); pi parses the same envelope.
90
+ // Claude Code and unknown agents get plain stdout.
107
91
  const emit = (text) => {
108
- if (agentName === "cursor")
109
- return; // no cursor ingest event honors output
92
+ if (agentName === "cursor" || agentName === "jcode")
93
+ return;
110
94
  if (agentName !== "codex" && agentName !== "pi") {
111
95
  process.stdout.write(text);
112
96
  return;
@@ -120,9 +104,6 @@ const ingest = async (agent) => {
120
104
  };
121
105
  const creds = await readCredentials();
122
106
  if (!creds) {
123
- // One shared path for every agent: emit the hint (codex gets the JSON
124
- // envelope, claude-code gets plain stdout) and exit clean — a non-zero
125
- // exit blocks the prompt (Claude) or drops the output (Codex).
126
107
  emit("[glen] not connected — run `glen login`");
127
108
  return ok(undefined);
128
109
  }
@@ -130,9 +111,6 @@ const ingest = async (agent) => {
130
111
  const state = localState?.mode === "off"
131
112
  ? (await refreshControlState(creds.key, localState)).state
132
113
  : localState;
133
- // Off: poll only the content-free control state above, then inject and record
134
- // nothing while the account remains off. Another machine can resume the
135
- // account, in which case this hook picks up the newer server mode and proceeds.
136
114
  if (state?.mode === "off")
137
115
  return ok(undefined);
138
116
  const transcriptPath = typeof event.transcript_path === "string"
@@ -142,21 +120,13 @@ const ingest = async (agent) => {
142
120
  ? await readTranscriptLines(transcriptPath)
143
121
  : [];
144
122
  const transcript = parseTranscript(transcriptLines);
145
- // Cursor: cache the assistant text as soon as it exists (afterAgentResponse →
146
- // normalized "Stop"), so the pairing below and the NEXT turn's priorAssistant
147
- // both see it. Then read the cached turn for this conversation.
148
123
  if (agentName === "cursor" &&
149
124
  hookEventName === "Stop" &&
150
125
  typeof event.text === "string" &&
151
126
  event.text)
152
127
  await rememberAssistant(event.session_id, event.text);
153
128
  const cursorTurn = agentName === "cursor" ? await readTurn(event.session_id) : null;
154
- // Stop backstop: surface the Glen review link if the finished assistant turn
155
- // printed a GitHub PR URL whose review link isn't already present. DEFERRED
156
- // (not written here) so a Stop turn writes AT MOST ONE JSON object — codex
157
- // rejects multiple JSON docs on stdout and drops all context. emitStop() folds
158
- // it together with any agent-facing hint at each Stop exit. Both agents need
159
- // the envelope on Stop (plain stdout is debug-only there).
129
+ // Deferred so a Stop turn writes at most one JSON object: codex drops all context when stdout has several.
160
130
  const stopReviewHint = hookEventName === "Stop"
161
131
  ? (() => {
162
132
  const assistantText = agentName === "codex"
@@ -165,7 +135,7 @@ const ingest = async (agent) => {
165
135
  : ""
166
136
  : agentName === "cursor"
167
137
  ? (cursorTurn?.assistant ?? "")
168
- : agentName === "pi"
138
+ : agentName === "pi" || agentName === "jcode"
169
139
  ? typeof event.text === "string"
170
140
  ? event.text
171
141
  : ""
@@ -179,12 +149,9 @@ const ingest = async (agent) => {
179
149
  return `${links}\nSurface the Glen review link alongside the GitHub PR link.`;
180
150
  })()
181
151
  : "";
182
- // Single Stop writer: ONE enveloped JSON object carrying the deferred review
183
- // hint plus any agent-facing text (writes nothing when both are empty). Used
184
- // at every Stop exit so the Stop path never writes more than one JSON object.
185
152
  const emitStop = (hint) => {
186
- if (agentName === "cursor")
187
- return; // no cursor ingest event honors output
153
+ if (agentName === "cursor" || agentName === "jcode")
154
+ return;
188
155
  const combined = [stopReviewHint, hint].filter(Boolean).join("\n\n");
189
156
  if (!combined)
190
157
  return;
@@ -195,14 +162,8 @@ const ingest = async (agent) => {
195
162
  },
196
163
  }));
197
164
  };
198
- // Route agent-facing hints. On Stop a persistent-condition hint (outdated
199
- // CLI / expired key / no org) must NEVER be injected: Claude Code feeds a
200
- // Stop hook's additionalContext back to the model and grants it another
201
- // turn, and while the condition persists every follow-up Stop re-injects
202
- // the same hint — the agent can never stop (the observed "Standing by."
203
- // loop on an outdated CLI). On Stop the hint goes to stderr instead and the
204
- // deferred review backstop still flushes; the next UserPromptSubmit
205
- // re-emits the hint at a point where the agent can actually act on it.
165
+ // On Stop a persistent hint (outdated CLI, expired key, no org) goes to stderr, never the model:
166
+ // Claude re-wakes the agent on Stop context, so it would loop forever.
206
167
  const emitHint = (text) => {
207
168
  if (hookEventName === "Stop") {
208
169
  process.stderr.write(`${text}\n`);
@@ -211,39 +172,32 @@ const ingest = async (agent) => {
211
172
  else
212
173
  emit(text);
213
174
  };
214
- // Resolve the cwd from the event (hook provides it) or fall back.
215
175
  const eventCwd = typeof event.cwd === "string"
216
176
  ? event.cwd
217
177
  : Array.isArray(event.workspace_roots) &&
218
178
  typeof event.workspace_roots[0] === "string"
219
179
  ? event.workspace_roots[0]
220
180
  : process.cwd();
221
- // Record cwd → session id so `glen search` (which gets no session id) can attribute
222
- // its searches to this conversation. Best-effort.
223
181
  await recordSession(eventCwd, event.session_id);
224
- // Adapt the event based on agent type.
225
182
  const adapted = adaptAgentEvent(agentName, event, transcriptLines);
226
- // For codex/pi without a transcript, derive idempotency from event.turn_id
227
- // when available; otherwise fall back to parseTranscript's
228
- // nextUserMessageIndex.
229
183
  const nextUserMessageIndex = agentName === "cursor"
230
184
  ? typeof event.generation_id === "string" && event.generation_id
231
185
  ? event.generation_id
232
186
  : transcript.nextUserMessageIndex
233
- : (agentName === "codex" || agentName === "pi") && !adapted.usesTranscript
187
+ : (agentName === "codex" ||
188
+ agentName === "pi" ||
189
+ agentName === "jcode") &&
190
+ !adapted.usesTranscript
234
191
  ? typeof event.turn_id === "string" && event.turn_id
235
192
  ? event.turn_id
236
193
  : transcript.nextUserMessageIndex
237
194
  : transcript.nextUserMessageIndex;
238
- // Assemble additionalContext. Apply the empty-context rule: send undefined
239
- // when the object would be completely empty ({}).
240
195
  const workspaceCtx = gitContext(eventCwd);
241
196
  const hasSessionFields = Object.keys(adapted.sessionFields).length > 0;
242
197
  const additionalContext = (() => {
243
198
  const ctx = {};
244
199
  if (agentName)
245
200
  ctx.agent = { name: agentName };
246
- // workspace: always include if we have at least cwd
247
201
  if (Object.keys(workspaceCtx).length > 0)
248
202
  ctx.workspace = workspaceCtx;
249
203
  if (hasSessionFields)
@@ -282,28 +236,26 @@ const ingest = async (agent) => {
282
236
  hookEvent: "Stop",
283
237
  })
284
238
  : null
285
- : agentName === "pi"
286
- ? // Pi Stop events carry the completed turn inline (the extension
287
- // pairs prompt + final assistant text from the settled run).
288
- typeof event.prompt === "string" &&
289
- event.prompt &&
290
- typeof event.text === "string" &&
291
- event.text
292
- ? buildTurnBody({
293
- sessionId: event.session_id,
294
- nextUserMessageIndex: `stop:${typeof event.turn_id === "string" && event.turn_id
295
- ? event.turn_id
296
- : "0"}`,
297
- messages: [
298
- { role: "user", content: event.prompt },
299
- { role: "assistant", content: event.text },
300
- ],
301
- ...(additionalContext !== undefined
302
- ? { additionalContext }
303
- : {}),
304
- hookEvent: "Stop",
305
- })
306
- : null
239
+ : agentName === "pi" || agentName === "jcode"
240
+ ? typeof event.prompt === "string" &&
241
+ event.prompt &&
242
+ typeof event.text === "string" &&
243
+ event.text
244
+ ? buildTurnBody({
245
+ sessionId: event.session_id,
246
+ nextUserMessageIndex: `stop:${typeof event.turn_id === "string" && event.turn_id
247
+ ? event.turn_id
248
+ : "0"}`,
249
+ messages: [
250
+ { role: "user", content: event.prompt },
251
+ { role: "assistant", content: event.text },
252
+ ],
253
+ ...(additionalContext !== undefined
254
+ ? { additionalContext }
255
+ : {}),
256
+ hookEvent: "Stop",
257
+ })
258
+ : null
307
259
  : (() => {
308
260
  if (!transcript.completedTurn)
309
261
  return null;
@@ -341,9 +293,7 @@ const ingest = async (agent) => {
341
293
  nextUserMessageIndex,
342
294
  ...(additionalContext !== undefined ? { additionalContext } : {}),
343
295
  });
344
- // Cursor: remember the prompt so afterAgentResponse can pair it. AFTER the
345
- // body build (which consumed the PREVIOUS turn's cached assistant as
346
- // priorAssistant) — rememberPrompt clears the cached assistant.
296
+ // Must run after the body build: rememberPrompt clears the cached assistant used as priorAssistant.
347
297
  if (agentName === "cursor" && hookEventName !== "Stop")
348
298
  await rememberPrompt(event.session_id, event.prompt);
349
299
  if (!body) {
@@ -371,10 +321,7 @@ const ingest = async (agent) => {
371
321
  return ok(undefined);
372
322
  }
373
323
  if (res.value.status === 426) {
374
- // Server-forced minimum version: NEVER update synchronously inside a hook
375
- // (Claude's 60s timeout would kill it) — background update + hint instead.
376
- // When the spawn is gated (auto-update disabled / not npm-global) nothing
377
- // is updating, so tell the agent the user must update manually.
324
+ // Never update synchronously inside a hook: Claude's 60s timeout would kill it.
378
325
  await recordHeartbeatOutcome(heartbeatAgent, "426");
379
326
  const spawned = handle426InHook();
380
327
  emitHint(spawned
@@ -385,14 +332,11 @@ const ingest = async (agent) => {
385
332
  if (res.value.status === 401 || res.value.status === 403) {
386
333
  await recordHeartbeatOutcome(heartbeatAgent, "auth");
387
334
  if (res.value.rawText.includes("no active organization")) {
388
- // Server reports no org bound — hint the user and fail open so the hook
389
- // never blocks the turn.
390
335
  process.stderr.write("[glen] no active organization — run `glen org switch`\n");
391
336
  emitHint("[glen] no active organization — run `glen org switch`");
392
337
  return ok(undefined);
393
338
  }
394
- // Expired/revoked key. Don't clear credentials here — a concurrent
395
- // `glen login` may have just saved a fresh key. Instruct the agent.
339
+ // Don't clear credentials here: a concurrent `glen login` may have just saved a fresh key.
396
340
  emitHint(`[glen] ACTION NEEDED: this machine's glen connection expired or was revoked — memories are NOT being captured. Tell the user to run \`glen login\` to reconnect.${updateAddendum()}`);
397
341
  return ok(undefined);
398
342
  }
@@ -402,18 +346,10 @@ const ingest = async (agent) => {
402
346
  }
403
347
  await recordIngestCaptureOutcome(event.session_id, "success");
404
348
  await recordHeartbeatOutcome(heartbeatAgent, "success");
405
- // Mirror the server-side recording preference (the source of truth) into
406
- // local state BEFORE rendering the state line, so a dashboard toggle shows up
407
- // on this machine on the very next turn.
408
349
  const syncedState = await syncModeFromServer(res.value.json);
409
350
  const effectiveState = syncedState ?? state;
410
- // Per-session state-line dedup: SessionStart already injected the state
411
- // line, so re-emit it here only when it CHANGES (org switch / mode flip
412
- // mid-session) — Codex renders every injected hook context as a visible
413
- // transcript card with no way to hide it, so an unchanged line every turn
414
- // is pure noise. Incognito is exempt and stays loud on every prompt: the
415
- // user must never forget nothing is being recorded. rememberStateLine
416
- // fails toward visibility (fs trouble → "changed").
351
+ // Re-emit the state line only when it changes: Codex shows every injection as a visible card.
352
+ // Incognito stays loud on every prompt.
417
353
  const stateLine = formatStateLine(effectiveState);
418
354
  const stateLineChanged = stateLine !== null && hookEventName !== "Stop"
419
355
  ? await rememberStateLine(event.session_id, stateLine)
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/commands/ingest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/commands/ingest.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,6 @@ declare const install: (agentBin?: string, paths?: {
4
4
  codex?: string | undefined;
5
5
  claude?: string | undefined;
6
6
  pi?: string | undefined;
7
+ jcode?: string | undefined;
7
8
  }) => Promise<Result<void, CliError>>;
8
9
  export { install };