@tryglen/cli 0.33.0 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +19 -19
  2. package/dist/_utils/agent-adapter.d.ts +2 -0
  3. package/dist/_utils/agent-adapter.js +3 -1
  4. package/dist/_utils/agent-adapter.js.map +1 -1
  5. package/dist/_utils/detect-transcript-format.d.ts +1 -1
  6. package/dist/_utils/detect-transcript-format.js.map +1 -1
  7. package/dist/_utils/install-receipt.d.ts +9 -1
  8. package/dist/_utils/install-receipt.js +19 -1
  9. package/dist/_utils/install-receipt.js.map +1 -1
  10. package/dist/_utils/jcode-bundle.d.ts +3 -0
  11. package/dist/_utils/jcode-bundle.js +23 -0
  12. package/dist/_utils/jcode-bundle.js.map +1 -0
  13. package/dist/_utils/jcode-event.d.ts +3 -0
  14. package/dist/_utils/jcode-event.js +82 -0
  15. package/dist/_utils/jcode-event.js.map +1 -0
  16. package/dist/_utils/jcode-hook-lines.d.ts +5 -0
  17. package/dist/_utils/jcode-hook-lines.js +11 -0
  18. package/dist/_utils/jcode-hook-lines.js.map +1 -0
  19. package/dist/_utils/jcode-hooks-toml.d.ts +8 -0
  20. package/dist/_utils/jcode-hooks-toml.js +156 -0
  21. package/dist/_utils/jcode-hooks-toml.js.map +1 -0
  22. package/dist/_utils/jcode-paths.d.ts +7 -0
  23. package/dist/_utils/jcode-paths.js +13 -0
  24. package/dist/_utils/jcode-paths.js.map +1 -0
  25. package/dist/_utils/jcode-setup.d.ts +27 -0
  26. package/dist/_utils/jcode-setup.js +158 -0
  27. package/dist/_utils/jcode-setup.js.map +1 -0
  28. package/dist/_utils/jcode-skills-sync.d.ts +8 -0
  29. package/dist/_utils/jcode-skills-sync.js +79 -0
  30. package/dist/_utils/jcode-skills-sync.js.map +1 -0
  31. package/dist/_utils/managed-block.d.ts +4 -0
  32. package/dist/_utils/managed-block.js +42 -0
  33. package/dist/_utils/managed-block.js.map +1 -0
  34. package/dist/_utils/parse-harbor-atif.js +2 -1
  35. package/dist/_utils/parse-harbor-atif.js.map +1 -1
  36. package/dist/_utils/parse-jcode-session.d.ts +14 -0
  37. package/dist/_utils/parse-jcode-session.js +128 -0
  38. package/dist/_utils/parse-jcode-session.js.map +1 -0
  39. package/dist/_utils/plugin-status.d.ts +1 -1
  40. package/dist/_utils/plugin-status.js +28 -0
  41. package/dist/_utils/plugin-status.js.map +1 -1
  42. package/dist/_utils/transcript-turns.d.ts +1 -1
  43. package/dist/bin.js +12 -6
  44. package/dist/bin.js.map +1 -1
  45. package/dist/commands/_utils/materialize-skill.d.ts +30 -0
  46. package/dist/commands/_utils/materialize-skill.js +237 -0
  47. package/dist/commands/_utils/materialize-skill.js.map +1 -0
  48. package/dist/commands/_utils/pack-skill-dir.d.ts +15 -0
  49. package/dist/commands/_utils/pack-skill-dir.js +190 -0
  50. package/dist/commands/_utils/pack-skill-dir.js.map +1 -0
  51. package/dist/commands/doctor.js +19 -1
  52. package/dist/commands/doctor.js.map +1 -1
  53. package/dist/commands/ingest.js +28 -18
  54. package/dist/commands/ingest.js.map +1 -1
  55. package/dist/commands/install.d.ts +1 -0
  56. package/dist/commands/install.js +55 -10
  57. package/dist/commands/install.js.map +1 -1
  58. package/dist/commands/session-start.js +18 -8
  59. package/dist/commands/session-start.js.map +1 -1
  60. package/dist/commands/skill.d.ts +1 -0
  61. package/dist/commands/skill.js +171 -10
  62. package/dist/commands/skill.js.map +1 -1
  63. package/dist/commands/uninstall.js +4 -0
  64. package/dist/commands/uninstall.js.map +1 -1
  65. package/dist/commands/update.js +19 -0
  66. package/dist/commands/update.js.map +1 -1
  67. package/dist/jcode/plugin.json +8 -0
  68. package/dist/jcode/preferred-tools.md +3 -0
  69. package/dist/jcode/prompt-overlay.md +15 -0
  70. package/dist/jcode/skills/code-search/SKILL.md +19 -0
  71. package/dist/jcode/skills/controls/SKILL.md +45 -0
  72. package/dist/jcode/skills/create-artifact/SKILL.md +11 -0
  73. package/dist/jcode/skills/create-skill/SKILL.md +41 -0
  74. package/dist/jcode/skills/feedback/SKILL.md +59 -0
  75. package/dist/jcode/skills/forget/SKILL.md +41 -0
  76. package/dist/jcode/skills/import-transcripts/SKILL.md +27 -0
  77. package/dist/jcode/skills/invite/SKILL.md +28 -0
  78. package/dist/jcode/skills/search/SKILL.md +35 -0
  79. package/dist/jcode/skills/session-takeover/SKILL.md +67 -0
  80. package/dist/jcode/skills/setup/SKILL.md +62 -0
  81. package/dist/jcode/skills/use-artifact/SKILL.md +11 -0
  82. package/dist/jcode/skills/use-skill/SKILL.md +10 -0
  83. package/package.json +5 -3
@@ -0,0 +1,190 @@
1
+ import { lstat, readFile, readdir, stat } from "node:fs/promises";
2
+ import { extname, join, relative, sep } from "node:path";
3
+ import { causeOf, cliErr } from "../../_utils/cli-error.js";
4
+ import { err, fromPromise, ok } from "../../_utils/result.js";
5
+ // Only these top-level directories are meaningful to an agent loading a
6
+ // skill — mirrors the server's CANONICAL_DIRS in validate-skill-files.ts.
7
+ const CANONICAL_SUBDIRS = ["scripts", "references", "assets"];
8
+ // Client-side mirror of the server's per-file/total caps
9
+ // (src/server/skills/validate-skill-files.ts) — failing here saves a round
10
+ // trip and names the offending file instead of a generic server 400.
11
+ const MAX_FILES = 100;
12
+ const MAX_PATH_LENGTH = 500; // matches skillCreateInputSchema's path: z.string().min(1).max(500)
13
+ const MAX_TEXT_BYTES = 1024 * 1024; // 1 MB — a single text file (and SKILL.md)
14
+ const MAX_BINARY_BYTES = 2 * 1024 * 1024; // 2 MB — a single decoded binary asset
15
+ const MAX_TOTAL_BYTES = 3 * 1024 * 1024; // 3 MB — the whole `files` array, as sent
16
+ const CONTENT_TYPE_BY_EXT = {
17
+ ".sh": "text/x-shellscript",
18
+ ".py": "text/x-python",
19
+ ".md": "text/markdown",
20
+ ".json": "application/json",
21
+ ".png": "image/png",
22
+ ".jpg": "image/jpeg",
23
+ ".jpeg": "image/jpeg",
24
+ ".pdf": "application/pdf",
25
+ };
26
+ const shouldSkipEntryName = (name) => name.startsWith(".") || name === "node_modules" || name === "__pycache__";
27
+ // A round trip through utf8 that comes back byte-identical means the buffer
28
+ // is valid UTF-8 text; anything else (including a mid-decode replacement
29
+ // character) is treated as binary.
30
+ const isUtf8 = (buf) => buf.equals(Buffer.from(buf.toString("utf8"), "utf8"));
31
+ const contentTypeFor = (relPath, textLike) => {
32
+ const mapped = CONTENT_TYPE_BY_EXT[extname(relPath).toLowerCase()];
33
+ if (mapped)
34
+ return mapped;
35
+ return textLike ? "text/plain" : "application/octet-stream";
36
+ };
37
+ const toCanonicalPath = (rootDir, fullPath) => relative(rootDir, fullPath).split(sep).join("/");
38
+ // Recursively lists regular files under `dir`, skipping dotfiles/dirs,
39
+ // node_modules, __pycache__, and symlinks (checked via the dirent from
40
+ // readdir, which — like lstat — does not follow symlinks).
41
+ const collectFilePaths = async (dir) => {
42
+ const entries = await fromPromise(readdir(dir, { withFileTypes: true }));
43
+ if (!entries.ok)
44
+ return err(cliErr({
45
+ what: `could not read directory ${dir}`,
46
+ why: causeOf(entries.error),
47
+ path: dir,
48
+ remedy: "check the path passed to --dir",
49
+ }));
50
+ const collected = [];
51
+ for (const entry of entries.value) {
52
+ if (shouldSkipEntryName(entry.name) || entry.isSymbolicLink())
53
+ continue;
54
+ const full = join(dir, entry.name);
55
+ if (entry.isDirectory()) {
56
+ const nested = await collectFilePaths(full);
57
+ if (!nested.ok)
58
+ return nested;
59
+ collected.push(...nested.value);
60
+ }
61
+ else if (entry.isFile()) {
62
+ collected.push(full);
63
+ }
64
+ }
65
+ return ok(collected);
66
+ };
67
+ // Walks only the canonical scripts/references/assets subdirs of `rootDir`.
68
+ // A missing or symlinked canonical subdir is treated as simply absent —
69
+ // not an error.
70
+ const collectCanonicalFilePaths = async (rootDir) => {
71
+ const collected = [];
72
+ for (const name of CANONICAL_SUBDIRS) {
73
+ const subdir = join(rootDir, name);
74
+ const info = await fromPromise(lstat(subdir));
75
+ if (!info.ok || info.value.isSymbolicLink() || !info.value.isDirectory())
76
+ continue;
77
+ const files = await collectFilePaths(subdir);
78
+ if (!files.ok)
79
+ return files;
80
+ collected.push(...files.value);
81
+ }
82
+ return ok(collected);
83
+ };
84
+ const packOneFile = async (rootDir, fullPath) => {
85
+ const relPath = toCanonicalPath(rootDir, fullPath);
86
+ if (relPath.length > MAX_PATH_LENGTH)
87
+ return err(cliErr({
88
+ what: `${relPath} has a ${relPath.length}-character path, over the ${MAX_PATH_LENGTH} character limit`,
89
+ path: relPath,
90
+ remedy: `shorten the path to ${relPath} — skill package paths cap at ${MAX_PATH_LENGTH} characters`,
91
+ }));
92
+ const fileStat = await fromPromise(stat(fullPath));
93
+ if (!fileStat.ok)
94
+ return err(cliErr({
95
+ what: `could not read ${relPath}`,
96
+ why: causeOf(fileStat.error),
97
+ path: relPath,
98
+ remedy: "check the file's permissions",
99
+ }));
100
+ const bytes = await fromPromise(readFile(fullPath));
101
+ if (!bytes.ok)
102
+ return err(cliErr({
103
+ what: `could not read ${relPath}`,
104
+ why: causeOf(bytes.error),
105
+ path: relPath,
106
+ remedy: "check the file's permissions",
107
+ }));
108
+ const buf = bytes.value;
109
+ const textLike = isUtf8(buf);
110
+ const cap = textLike ? MAX_TEXT_BYTES : MAX_BINARY_BYTES;
111
+ if (buf.length > cap)
112
+ return err(cliErr({
113
+ what: `${relPath} is ${buf.length} bytes, over the ${cap} byte limit for a ${textLike ? "text" : "binary"} file`,
114
+ path: relPath,
115
+ remedy: `split or trim ${relPath} — skill packages cap individual files at 1MB (text) / 2MB (binary)`,
116
+ }));
117
+ const isExecutable = (fileStat.value.mode & 0o111) !== 0;
118
+ const contentType = contentTypeFor(relPath, textLike);
119
+ return ok({
120
+ path: relPath,
121
+ isExecutable,
122
+ contentType,
123
+ ...(textLike
124
+ ? { content: buf.toString("utf8") }
125
+ : { contentBase64: buf.toString("base64") }),
126
+ });
127
+ };
128
+ const packFiles = async (rootDir, filePaths) => {
129
+ const packed = [];
130
+ for (const full of filePaths) {
131
+ const file = await packOneFile(rootDir, full);
132
+ if (!file.ok)
133
+ return file;
134
+ packed.push(file.value);
135
+ }
136
+ return ok(packed);
137
+ };
138
+ // The exact byte count this file will put on the wire — recomputed from the
139
+ // packed value (not carried separately) so the total-size check reflects
140
+ // what's actually being sent, the same way the server re-derives it. A binary
141
+ // file costs its BASE64 string (ASCII, 1 byte per char), not the smaller
142
+ // decoded size — mirrors wireByteSize in the server's validate-skill-files.ts.
143
+ const fileWireSize = (file) => file.content !== undefined
144
+ ? Buffer.byteLength(file.content, "utf8")
145
+ : file.contentBase64.length;
146
+ // Packs a skill directory (SKILL.md + scripts/references/assets) into the
147
+ // wire shape `skillCreate` sends: SKILL.md's body as `content`, everything
148
+ // else as `files`. Caps mirror the server's (Task 3) so a bad package fails
149
+ // fast, locally, naming the offending file.
150
+ const packSkillDir = async (dir) => {
151
+ const skillMdPath = join(dir, "SKILL.md");
152
+ const skillMd = await fromPromise(readFile(skillMdPath, "utf8"));
153
+ if (!skillMd.ok)
154
+ return err(cliErr({
155
+ what: `could not find ${skillMdPath}`,
156
+ remedy: "a skill directory passed to --dir must contain a SKILL.md file at its root",
157
+ }));
158
+ if (!skillMd.value.trim())
159
+ return err(cliErr({
160
+ what: `${skillMdPath} is empty`,
161
+ remedy: "write the SKILL.md body before running glen skill create --dir",
162
+ }));
163
+ const skillMdBytes = Buffer.byteLength(skillMd.value, "utf8");
164
+ if (skillMdBytes > MAX_TEXT_BYTES)
165
+ return err(cliErr({
166
+ what: `${skillMdPath} is ${skillMdBytes} bytes, over the ${MAX_TEXT_BYTES} byte limit`,
167
+ path: skillMdPath,
168
+ remedy: `split ${skillMdPath} — move the bulk into references/ and link to it from the body`,
169
+ }));
170
+ const filePaths = await collectCanonicalFilePaths(dir);
171
+ if (!filePaths.ok)
172
+ return filePaths;
173
+ if (filePaths.value.length > MAX_FILES)
174
+ return err(cliErr({
175
+ what: `${dir} has ${filePaths.value.length} files under scripts/, references/, assets/ (max ${MAX_FILES})`,
176
+ remedy: `trim it down to ${MAX_FILES} files or fewer`,
177
+ }));
178
+ const packed = await packFiles(dir, filePaths.value);
179
+ if (!packed.ok)
180
+ return packed;
181
+ const total = packed.value.reduce((sum, f) => sum + fileWireSize(f), 0);
182
+ if (total > MAX_TOTAL_BYTES)
183
+ return err(cliErr({
184
+ what: `the skill package in ${dir} is ${total} bytes, over the ${MAX_TOTAL_BYTES} byte total limit`,
185
+ remedy: "trim scripts/, references/, assets/ — the whole package must fit in 3MB",
186
+ }));
187
+ return ok({ content: skillMd.value, files: packed.value });
188
+ };
189
+ export { packSkillDir };
190
+ //# sourceMappingURL=pack-skill-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-skill-dir.js","sourceRoot":"","sources":["../../../src/commands/_utils/pack-skill-dir.ts"],"names":[],"mappings":"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"}
@@ -91,6 +91,13 @@ const doctor = async (mode) => {
91
91
  /* best-effort */
92
92
  }
93
93
  }
94
+ // Converge jcode's file-based install after a self-update (new bundle →
95
+ // new skills/overlay text). Gated on the hook lines being present so a
96
+ // user who never opted in never gets ~/.jcode written.
97
+ if (isInstalled("jcode") && glenPluginStatus("jcode") === "installed") {
98
+ const { installJcode } = await import("../_utils/jcode-setup.js");
99
+ await installJcode();
100
+ }
94
101
  // Self-heal codex user-layer hooks (re-merge + re-trust) — only when the
95
102
  // install marker says glen registered them before, so Claude-only users
96
103
  // never get codex config written. TTL'd: skipped while the last
@@ -150,6 +157,11 @@ const doctor = async (mode) => {
150
157
  process.stdout.write(piDetected
151
158
  ? `status: pi=detected plugin=${piPlugin}\n`
152
159
  : "status: pi=not-found\n");
160
+ const jcodeDetected = isInstalled("jcode");
161
+ const jcodePlugin = jcodeDetected ? glenPluginStatus("jcode") : null;
162
+ process.stdout.write(jcodeDetected
163
+ ? `status: jcode=detected plugin=${jcodePlugin}\n`
164
+ : "status: jcode=not-found\n");
153
165
  // status: ingest agent=<name> state=<ok|failing|never|fresh-install|idle>
154
166
  // lastSuccess=<iso|never> — one per detected agent, before the indicator line.
155
167
  const heartbeat = await readHeartbeat();
@@ -161,6 +173,7 @@ const doctor = async (mode) => {
161
173
  { key: "codex", detected: codexDetected },
162
174
  { key: "cursor", detected: cursorDetected },
163
175
  { key: "pi", detected: piDetected },
176
+ { key: "jcode", detected: jcodeDetected },
164
177
  ];
165
178
  for (const { key, detected } of ingestAgents) {
166
179
  if (!detected)
@@ -213,7 +226,8 @@ const doctor = async (mode) => {
213
226
  // `glen install --agent <bin>` remedy already covers it. Cursor never
214
227
  // qualifies: its plugin status is unknowable from the CLI.
215
228
  (key === "claude-code" && claudePlugin === "installed") ||
216
- (key === "pi" && piPlugin === "installed")) {
229
+ (key === "pi" && piPlugin === "installed") ||
230
+ (key === "jcode" && jcodePlugin === "installed")) {
217
231
  ingestRemedies.push("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");
218
232
  }
219
233
  }
@@ -267,6 +281,10 @@ const doctor = async (mode) => {
267
281
  // a missing claude/codex does.
268
282
  if (piDetected && piPlugin === "not-installed")
269
283
  remedies.push("run `glen install --agent pi`");
284
+ // jcode is remedied only when DETECTED, same rationale as pi — its absence
285
+ // must not block the "Everything looks good" all-clear.
286
+ if (jcodeDetected && jcodePlugin === "not-installed")
287
+ remedies.push("run `glen install --agent jcode`");
270
288
  if (cursorDetected)
271
289
  remedies.push("if the glen plugin isn't installed in Cursor: type /add-plugin in Cursor's chat and add https://github.com/Glen-Web-App/glen-cursor-plugin");
272
290
  if (indicatorVisibility === "not-running")
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -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";
@@ -52,14 +53,18 @@ const readTranscriptLines = async (path) => {
52
53
  const ingest = async (agent) => {
53
54
  void maybeSpawnBackgroundUpdate();
54
55
  const stdinRaw = await readStdin();
55
- const event = (() => {
56
- try {
57
- return JSON.parse(stdinRaw);
58
- }
59
- catch {
60
- return null;
61
- }
62
- })();
56
+ // jcode: the event is JCODE_HOOK_* env (stdin is /dev/null under jcode's
57
+ // observer hooks); everything else arrives as JSON on stdin.
58
+ const event = agent === "jcode"
59
+ ? await readJcodeStopEvent(process.env)
60
+ : (() => {
61
+ try {
62
+ return JSON.parse(stdinRaw);
63
+ }
64
+ catch {
65
+ return null;
66
+ }
67
+ })();
63
68
  // Cursor vocabulary → glen's internal vocabulary. Cursor events carry
64
69
  // conversation_id (not session_id); afterAgentResponse is Cursor's
65
70
  // "completed turn" event (stop carries no assistant text).
@@ -82,7 +87,8 @@ const ingest = async (agent) => {
82
87
  const agentName = agent === "claude-code" ||
83
88
  agent === "codex" ||
84
89
  agent === "cursor" ||
85
- agent === "pi"
90
+ agent === "pi" ||
91
+ agent === "jcode"
86
92
  ? agent
87
93
  : undefined;
88
94
  // Machine-spawned ephemeral session (fleet driver / one-shot thread): no
@@ -105,8 +111,8 @@ const ingest = async (agent) => {
105
111
  // - Claude Code injects raw stdout as context, so plain text is enough.
106
112
  // - Unknown agents stay on plain stdout — we can't assume they parse JSON.
107
113
  const emit = (text) => {
108
- if (agentName === "cursor")
109
- return; // no cursor ingest event honors output
114
+ if (agentName === "cursor" || agentName === "jcode")
115
+ return; // no ingest output channel
110
116
  if (agentName !== "codex" && agentName !== "pi") {
111
117
  process.stdout.write(text);
112
118
  return;
@@ -165,7 +171,7 @@ const ingest = async (agent) => {
165
171
  : ""
166
172
  : agentName === "cursor"
167
173
  ? (cursorTurn?.assistant ?? "")
168
- : agentName === "pi"
174
+ : agentName === "pi" || agentName === "jcode"
169
175
  ? typeof event.text === "string"
170
176
  ? event.text
171
177
  : ""
@@ -183,8 +189,8 @@ const ingest = async (agent) => {
183
189
  // hint plus any agent-facing text (writes nothing when both are empty). Used
184
190
  // at every Stop exit so the Stop path never writes more than one JSON object.
185
191
  const emitStop = (hint) => {
186
- if (agentName === "cursor")
187
- return; // no cursor ingest event honors output
192
+ if (agentName === "cursor" || agentName === "jcode")
193
+ return; // no ingest output channel
188
194
  const combined = [stopReviewHint, hint].filter(Boolean).join("\n\n");
189
195
  if (!combined)
190
196
  return;
@@ -230,7 +236,10 @@ const ingest = async (agent) => {
230
236
  ? typeof event.generation_id === "string" && event.generation_id
231
237
  ? event.generation_id
232
238
  : transcript.nextUserMessageIndex
233
- : (agentName === "codex" || agentName === "pi") && !adapted.usesTranscript
239
+ : (agentName === "codex" ||
240
+ agentName === "pi" ||
241
+ agentName === "jcode") &&
242
+ !adapted.usesTranscript
234
243
  ? typeof event.turn_id === "string" && event.turn_id
235
244
  ? event.turn_id
236
245
  : transcript.nextUserMessageIndex
@@ -282,9 +291,10 @@ const ingest = async (agent) => {
282
291
  hookEvent: "Stop",
283
292
  })
284
293
  : 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).
294
+ : agentName === "pi" || agentName === "jcode"
295
+ ? // Pi and jcode Stop events carry the completed turn inline (pi:
296
+ // the extension pairs prompt + final text; jcode:
297
+ // readJcodeStopEvent pairs them from the session file).
288
298
  typeof event.prompt === "string" &&
289
299
  event.prompt &&
290
300
  typeof event.text === "string" &&
@@ -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 };
@@ -15,6 +15,7 @@ import { agentsJsonPath, findBin, isExecutable, persistAgentPath, } from "../_ut
15
15
  import { gitContext } from "../_utils/git-context.js";
16
16
  import { ensureIndicatorRunning, indicatorOptedOut, } from "../_utils/indicator-app.js";
17
17
  import { installReceipt } from "../_utils/install-receipt.js";
18
+ import { installJcode } from "../_utils/jcode-setup.js";
18
19
  import { glenPluginStatus } from "../_utils/plugin-status.js";
19
20
  import { reportCliInstall } from "../_utils/report-cli-install.js";
20
21
  import { err, fromPromise, ok } from "../_utils/result.js";
@@ -34,7 +35,7 @@ const claudeSettingsPath = () => process.env.GLEN_CLAUDE_SETTINGS_PATH ??
34
35
  // immediately.
35
36
  // ---------------------------------------------------------------------------
36
37
  const applyPathOverrides = async (paths) => {
37
- for (const bin of ["claude", "codex", "pi"]) {
38
+ for (const bin of ["claude", "codex", "pi", "jcode"]) {
38
39
  const path = paths?.[bin];
39
40
  if (path === undefined)
40
41
  continue;
@@ -219,6 +220,31 @@ const handlePostInstall = async (agent) => {
219
220
  }
220
221
  return true;
221
222
  };
223
+ // jcode is not an AGENTS entry (no bin steps, no plugin CLI) — a sentinel
224
+ // choice represents it in `selected` so the same multiselect/scripted-agent
225
+ // flow can carry it through to the install loop below.
226
+ const JCODE_CHOICE = { name: "jcode", bin: "jcode" };
227
+ // jcode has no plugin CLI — the install IS a set of file edits under ~/.jcode
228
+ // (hooks in config.toml, managed prompt blocks, owned skill dirs). Returns
229
+ // true when everything converged.
230
+ const handleJcodeInstall = async () => {
231
+ process.stdout.write("\n Installing jcode plugin (file-based — jcode has no plugin CLI):\n");
232
+ const r = await installJcode();
233
+ if (!r.ok) {
234
+ process.stdout.write(` ✗ ${r.error.what}\n → ${r.error.remedy}\n`);
235
+ return false;
236
+ }
237
+ const mark = (status) => status === "written" ? "✓" : "✓ (already up to date)";
238
+ process.stdout.write(` hooks in ~/.jcode/config.toml... ${mark(r.value.hooks)}\n`);
239
+ process.stdout.write(` ~/.jcode/prompt-overlay.md... ${mark(r.value.promptOverlay)}\n`);
240
+ process.stdout.write(` ~/.jcode/preferred-tools.md... ${mark(r.value.preferredTools)}\n`);
241
+ process.stdout.write(` skills in ~/.jcode/skills... ✓ ${r.value.skills.copied.length} installed\n`);
242
+ for (const name of r.value.skills.skipped)
243
+ process.stdout.write(` ⚠ kept your own ~/.jcode/skills/${name} (not glen's) — glen's copy was not installed\n`);
244
+ process.stdout.write("\n Start a NEW jcode session — jcode reads its prompt files at session start.\n" +
245
+ " jcode can't display glen's status; check it with `glen status`.\n");
246
+ return true;
247
+ };
222
248
  // ---------------------------------------------------------------------------
223
249
  // Connect prompt — both install paths end here so a fresh user always gets
224
250
  // nudged into `glen login`. Never prompts when non-interactive or logged in.
@@ -360,7 +386,8 @@ const install = async (agentBin, paths) => {
360
386
  return ok(undefined);
361
387
  }
362
388
  const detected = AGENTS.filter((a) => isInstalled(a.bin));
363
- if (detected.length === 0) {
389
+ const jcodeDetected = isInstalled("jcode");
390
+ if (detected.length === 0 && !jcodeDetected) {
364
391
  // Cursor has no plugin CLI — its install is editor-side only, so it is
365
392
  // not in AGENTS and never appears in `detected`. Handle it as a success
366
393
  // case: print guided instructions and return ok.
@@ -374,8 +401,8 @@ const install = async (agentBin, paths) => {
374
401
  // was detected is confusing, and pointless without an agent to feed.
375
402
  return err(cliErr({
376
403
  what: "no coding agents detected",
377
- why: "looked for `claude`, `codex`, and `pi` on PATH, in /opt/homebrew/bin, /usr/local/bin, ~/.local/bin, ~/bin, and via your login shell; for codex, also inside the Codex Desktop app bundle (/Applications/ChatGPT.app); also looked for the `cursor` launcher (Cursor installs are editor-side via /add-plugin)",
378
- remedy: "if one IS installed: run `which codex` (or `which claude` / `which pi`) in your terminal, then `glen install --codex-path <that path>` (or `--claude-path` / `--pi-path`). Docs: https://tryglen.com/docs/plugins",
404
+ why: "looked for `claude`, `codex`, and `pi` on PATH, in /opt/homebrew/bin, /usr/local/bin, ~/.local/bin, ~/bin, and via your login shell; for codex, also inside the Codex Desktop app bundle (/Applications/ChatGPT.app); also looked for the `cursor` launcher (Cursor installs are editor-side via /add-plugin); also looked for `jcode` (file-based install)",
405
+ remedy: "if one IS installed: run `which codex` (or `which claude` / `which pi`) in your terminal, then `glen install --codex-path <that path>` (or `--claude-path` / `--pi-path` / `--jcode-path`). Docs: https://tryglen.com/docs/plugins",
379
406
  }));
380
407
  }
381
408
  process.stdout.write(" Detected coding agents:\n");
@@ -385,19 +412,31 @@ const install = async (agentBin, paths) => {
385
412
  if (isInstalled("cursor")) {
386
413
  process.stdout.write(" ✓ Cursor (cursor) — editor-side install\n");
387
414
  }
415
+ if (jcodeDetected) {
416
+ process.stdout.write(" ✓ jcode (jcode) — file-based install\n");
417
+ }
388
418
  process.stdout.write("\n");
389
419
  // "claude-code" is the hook-line vocabulary (--agent claude-code) — accept
390
420
  // it as an alias for the claude bin.
391
421
  const normalized = agentBin === "claude-code" ? "claude" : agentBin;
422
+ // jcode is not an AGENTS entry (no bin steps) — a sentinel choice routes it
423
+ // to handleJcodeInstall in the loop below.
392
424
  const selected = await (async () => {
393
425
  if (normalized !== undefined) {
426
+ if (normalized === "jcode")
427
+ return jcodeDetected ? [JCODE_CHOICE] : [];
394
428
  return detected.filter((a) => a.bin === normalized);
395
429
  }
396
- const choices = detected.map((a) => ({
397
- title: `${a.name} plugin`,
398
- value: a,
399
- selected: true,
400
- }));
430
+ const choices = [
431
+ ...detected.map((a) => ({
432
+ title: `${a.name} plugin`,
433
+ value: a,
434
+ selected: true,
435
+ })),
436
+ ...(jcodeDetected
437
+ ? [{ title: "jcode plugin", value: JCODE_CHOICE, selected: true }]
438
+ : []),
439
+ ];
401
440
  const response = await prompts({
402
441
  type: "multiselect",
403
442
  name: "plugins",
@@ -411,7 +450,7 @@ const install = async (agentBin, paths) => {
411
450
  await connectOrHint(agentBin);
412
451
  return err(cliErr({
413
452
  what: `"${agentBin}" is not an installed agent`,
414
- why: "expected: claude | codex | cursor | pi",
453
+ why: "expected: claude | codex | cursor | pi | jcode",
415
454
  remedy: `if it IS installed, run \`which ${normalized}\` in your terminal and pass \`glen install --${normalized}-path <path>\``,
416
455
  }));
417
456
  }
@@ -428,6 +467,12 @@ const install = async (agentBin, paths) => {
428
467
  }
429
468
  const results = [];
430
469
  for (const agent of selected) {
470
+ // jcode has no bin steps — route it to the file-based installer and
471
+ // skip the AGENTS step-runner code below (which expects a real `Agent`).
472
+ if (agent.bin === "jcode") {
473
+ results.push(await handleJcodeInstall());
474
+ continue;
475
+ }
431
476
  // Resolve once per agent — every step runs against the same binary the
432
477
  // detection (and any --<bin>-path override) found.
433
478
  const resolvedBin = findBin(agent.bin) ?? agent.bin;