@tryglen/cli 0.43.2 → 0.43.4
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.
- package/README.md +10 -10
- package/dist/clients/agents/run-agent-steps.js +2 -0
- package/dist/clients/agents/run-agent-steps.js.map +1 -1
- package/dist/clients/claude/parse-claude-transcript.js +6 -2
- package/dist/clients/claude/parse-claude-transcript.js.map +1 -1
- package/dist/commands/install/_utils/codex-post-install.js +4 -0
- package/dist/commands/install/_utils/codex-post-install.js.map +1 -1
- package/dist/commands/install/index.js +3 -1
- package/dist/commands/install/index.js.map +1 -1
- package/dist/core/terminal/out.js +11 -0
- package/dist/core/terminal/out.js.map +1 -1
- package/dist/jcode/plugin.json +2 -2
- package/dist/jcode/prompt-overlay.md +2 -2
- package/dist/jcode/skills/code-search/SKILL.md +4 -4
- package/dist/jcode/skills/controls/SKILL.md +8 -8
- package/dist/jcode/skills/create-artifact/SKILL.md +5 -5
- package/dist/jcode/skills/create-skill/SKILL.md +12 -12
- package/dist/jcode/skills/feedback/SKILL.md +7 -7
- package/dist/jcode/skills/forget/SKILL.md +3 -3
- package/dist/jcode/skills/import-transcripts/SKILL.md +1 -1
- package/dist/jcode/skills/invite/SKILL.md +1 -1
- package/dist/jcode/skills/search/SKILL.md +6 -6
- package/dist/jcode/skills/setup/SKILL.md +10 -10
- package/dist/jcode/skills/use-artifact/SKILL.md +1 -1
- package/dist/jcode/skills/use-skill/SKILL.md +4 -4
- package/dist/macos/glen.app/Contents/MacOS/glen +0 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @tryglen/cli
|
|
2
2
|
|
|
3
|
-
Glen CLI
|
|
3
|
+
Glen CLI: shared team memory for coding agents.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -19,7 +19,7 @@ glen login
|
|
|
19
19
|
| `glen search "<query>"` | Search the team's shared glen memory. |
|
|
20
20
|
| `glen code-search <path:start-end> ["<question>"]` | Trace selected code to the agent conversations that produced it. |
|
|
21
21
|
| `glen takeover <code>` | Redeem a transcript-page handoff into a fresh native session of a supported coding agent, then open it. The complete transcript must fit; Glen never truncates or summarizes it. |
|
|
22
|
-
| `glen import <path…> [--dry-run] [--wait] [--report <path>]` · `glen import --status` | Import old local agent transcripts (from each supported agent's local transcript store) into glen memory. Runs in the background and returns at once; `--status` shows progress and whether it finished. `--wait` runs in the foreground. Idempotent
|
|
22
|
+
| `glen import <path…> [--dry-run] [--wait] [--report <path>]` · `glen import --status` | Import old local agent transcripts (from each supported agent's local transcript store) into glen memory. Runs in the background and returns at once; `--status` shows progress and whether it finished. `--wait` runs in the foreground. Idempotent: re-running skips already-imported turns, so it also resumes a stopped import. `--dry-run` previews without writing; `--report` writes a machine-readable report. |
|
|
23
23
|
| `glen forget <ref…>` / `glen restore <ref…>` | Forget (or restore) `observation:<id>` / `message:<id>` search sources. |
|
|
24
24
|
| `glen invite <email…> [--role member\|admin]` | Invite teammates by email. |
|
|
25
25
|
| `glen on` / `glen off` / `glen silent` | Set the account-wide mode: `on` injects context and records; `off` does neither; `silent` records but surfaces nothing. |
|
|
@@ -33,14 +33,14 @@ glen login
|
|
|
33
33
|
| `glen bug <title>` / `glen feedback <title>` | Report a bug or send product feedback to the Glen team. |
|
|
34
34
|
| `glen git-hooks install` | Install glen's git hooks (`--absolute-git-hook-path` for GUI git clients). |
|
|
35
35
|
| `glen indicator start\|stop\|status` | macOS menu bar recording indicator. `stop` also opts out, so `glen doctor --auto` won't restart it. |
|
|
36
|
-
| `glen ingest [--agent <name>]` | Ingest a turn from stdin
|
|
37
|
-
| `glen pr-link [--agent <name>]` | Surface a Glen review link from a tool event
|
|
38
|
-
| `glen install [--agent <name>] [--no-browser]` | Set up or update glen for detected coding agents (plugin + hooks); idempotent, so re-running repairs a broken setup. `--<agent>-path <path>` points at an agent's binary when auto-detection fails (see `glen install --help`). jcode has no plugin CLI
|
|
36
|
+
| `glen ingest [--agent <name>]` | Ingest a turn from stdin. Used by agent hooks. |
|
|
37
|
+
| `glen pr-link [--agent <name>]` | Surface a Glen review link from a tool event. Used by agent hooks. |
|
|
38
|
+
| `glen install [--agent <name>] [--no-browser]` | Set up or update glen for detected coding agents (plugin + hooks); idempotent, so re-running repairs a broken setup. `--<agent>-path <path>` points at an agent's binary when auto-detection fails (see `glen install --help`). jcode has no plugin CLI; `--agent jcode` writes glen's hook lines into `~/.jcode/config.toml`, a managed block into `~/.jcode/prompt-overlay.md` and `preferred-tools.md`, and the skills into `~/.jcode/skills` (start a new jcode session afterwards). |
|
|
39
39
|
| `glen uninstall` | Permanently remove Glen's local plugins, marketplaces, hooks, PATH entries, credentials, state, caches, and global npm CLI. |
|
|
40
|
-
| `glen update` | Update the glen CLI **and** any installed glen plugins, and re-verify the Codex hook registration. Never installs a plugin that isn't already installed
|
|
41
|
-
| `glen doctor [--auto]` | Print machine-readable `status:` lines (CLI version/latest/channel, login + org, per-agent plugin + hook state) plus remedy lines (`hint:` when piped, `→` at a terminal)
|
|
42
|
-
| `glen statusline` | Output a single status line for the agent's UI status bar
|
|
43
|
-
| `glen session-start [--agent <name>]` | Output hook JSON for the agent's `SessionStart` event
|
|
40
|
+
| `glen update` | Update the glen CLI **and** any installed glen plugins, and re-verify the Codex hook registration. Never installs a plugin that isn't already installed; that's `glen install`'s job. |
|
|
41
|
+
| `glen doctor [--auto]` | Print machine-readable `status:` lines (CLI version/latest/channel, login + org, per-agent plugin + hook state) plus remedy lines (`hint:` when piped, `→` at a terminal). The setup skill branches on them. `--auto` runs background updates silently (used by hooks). |
|
|
42
|
+
| `glen statusline` | Output a single status line for the agent's UI status bar. Used by hooks. |
|
|
43
|
+
| `glen session-start [--agent <name>]` | Output hook JSON for the agent's `SessionStart` event. Used by hooks. |
|
|
44
44
|
| `glen telemetry [status\|enable\|disable]` | Show or change error reporting (see [Telemetry](#telemetry)). |
|
|
45
45
|
| `glen version` | Print the CLI version. |
|
|
46
46
|
|
|
@@ -48,7 +48,7 @@ glen login
|
|
|
48
48
|
|
|
49
49
|
| File | Description |
|
|
50
50
|
| --- | --- |
|
|
51
|
-
| `~/.glen/credentials.json` | API key credential
|
|
51
|
+
| `~/.glen/credentials.json` | API key credential: mode `0600`, never logged or sent to anyone but `tryglen.com`. |
|
|
52
52
|
| `~/.glen/state.json` | Client-owned session state: `{ activeOrgId, activeOrgSlug, activeOrgName, mode }`. Non-secret. |
|
|
53
53
|
| `~/.glen/events.json` | Error reports waiting to be sent (see [Telemetry](#telemetry)). |
|
|
54
54
|
| `~/.glen/install-id` | A random id for this install, used only to group error reports. |
|
|
@@ -3,7 +3,9 @@ import { out } from "../../core/terminal/out.js";
|
|
|
3
3
|
import { runProgram } from "../../core/system/run-program.js";
|
|
4
4
|
const runAgentSteps = (agentBin, resolvedBin, steps) => steps.flatMap((step) => {
|
|
5
5
|
const label = step.slice(1).join(" ");
|
|
6
|
+
const done = out.pending(label, { indent: 1 });
|
|
6
7
|
const r = runProgram(resolvedBin, step);
|
|
8
|
+
done();
|
|
7
9
|
if (r.ok) {
|
|
8
10
|
out.success(label, { indent: 1 });
|
|
9
11
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-agent-steps.js","sourceRoot":"","sources":["../../../src/clients/agents/run-agent-steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,MAAM,aAAa,GAAG,CACpB,QAAgB,EAChB,WAAmB,EACnB,KAAqC,EACzB,EAAE,CACd,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;QACT,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE;QAC7B,IAAI,EAAE,4BAA4B;QAClC,IAAI,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW;QAChD,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;QACvE,MAAM,EAAE,SAAS,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,mCAAmC;KAC/E,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC;AAEL,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"run-agent-steps.js","sourceRoot":"","sources":["../../../src/clients/agents/run-agent-steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,MAAM,aAAa,GAAG,CACpB,QAAgB,EAChB,WAAmB,EACnB,KAAqC,EACzB,EAAE,CACd,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,EAAE,CAAC;IACP,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;QACT,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE;QAC7B,IAAI,EAAE,4BAA4B;QAClC,IAAI,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW;QAChD,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;QACvE,MAAM,EAAE,SAAS,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,mCAAmC;KAC/E,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC;AAEL,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -110,14 +110,18 @@ const parseClaudeTranscript = (lines, fallbackSessionId) => {
|
|
|
110
110
|
e.isSidechain !== true &&
|
|
111
111
|
e.isMeta !== true &&
|
|
112
112
|
messageOf(e) !== null);
|
|
113
|
-
const sessionId =
|
|
113
|
+
const sessionId = [...conversation]
|
|
114
|
+
.reverse()
|
|
115
|
+
.map((e) => str(e.sessionId))
|
|
116
|
+
.find(Boolean) ?? fallbackSessionId;
|
|
114
117
|
const counts = claudeTurnKey.userLinesBefore(entries);
|
|
115
118
|
const messages = toMessages(conversation, (promptIndex) => {
|
|
116
119
|
const prompt = conversation[promptIndex];
|
|
117
120
|
const reply = lastReplyOf(conversation, promptIndex);
|
|
118
121
|
const promptUserLineCount = prompt ? counts.get(prompt) : undefined;
|
|
119
122
|
const replyUserLineCount = reply ? counts.get(reply) : undefined;
|
|
120
|
-
|
|
123
|
+
const turnSessionId = str(prompt?.sessionId) || sessionId;
|
|
124
|
+
return idempotencyKey.forImportedTurn("claude-code", turnSessionId, {
|
|
121
125
|
...(promptUserLineCount === undefined ? {} : { promptUserLineCount }),
|
|
122
126
|
...(replyUserLineCount === undefined ? {} : { replyUserLineCount }),
|
|
123
127
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-claude-transcript.js","sourceRoot":"","sources":["../../../src/clients/claude/parse-claude-transcript.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"parse-claude-transcript.js","sourceRoot":"","sources":["../../../src/clients/claude/parse-claude-transcript.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,11 @@ const warned = (e) => {
|
|
|
9
9
|
};
|
|
10
10
|
const TRUST_REMEDY = "open Codex, run /hooks, and trust the glen hooks (Codex skips untrusted hooks silently)";
|
|
11
11
|
const verifyTrust = async () => {
|
|
12
|
+
const done = out.pending("verifying Codex trusts the glen hooks", {
|
|
13
|
+
indent: 1,
|
|
14
|
+
});
|
|
12
15
|
const verify = await listCodexHooks(process.cwd());
|
|
16
|
+
done();
|
|
13
17
|
const glenHooks = verify.ok
|
|
14
18
|
? verify.value.filter((e) => e.source === "user" && codexHooksFile.isGlenCommand(e.command))
|
|
15
19
|
: [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-post-install.js","sourceRoot":"","sources":["../../../../src/commands/install/_utils/codex-post-install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codex-post-install.js","sourceRoot":"","sources":["../../../../src/commands/install/_utils/codex-post-install.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,8 +38,10 @@ const postInstall = async (agent) => {
|
|
|
38
38
|
return [];
|
|
39
39
|
};
|
|
40
40
|
const installAgent = async (agent) => {
|
|
41
|
-
const converging = glenPluginStatus(agent.bin) === "installed";
|
|
42
41
|
out.blank();
|
|
42
|
+
const done = out.pending(`checking for an existing ${agent.name} plugin`);
|
|
43
|
+
const converging = glenPluginStatus(agent.bin) === "installed";
|
|
44
|
+
done();
|
|
43
45
|
out.info(`${converging ? "Updating" : "Installing"} ${agent.name} plugin:`);
|
|
44
46
|
const steps = runAgentSteps(agent.bin, agentBin.resolve(agent.bin) ?? agent.bin, converging ? agent.plugin.updateSteps : agent.plugin.steps);
|
|
45
47
|
return [...steps, ...(await postInstall(agent))];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAiB,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAe,GAAG,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAKtD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAErE,MAAM,uBAAuB,GAAG,GAAS,EAAE;IACzC,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,GAAG,CAAC,IAAI,CACN,sEAAsE,CACvE,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,mDAAmD,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7E,GAAG,CAAC,IAAI,CACN,6EAA6E,EAC7E,EAAE,MAAM,EAAE,CAAC,EAAE,CACd,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,0DAA0D,EAAE;QACnE,MAAM,EAAE,CAAC;KACV,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,EAAE,KAAY,EAAuB,EAAE;IAC9D,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,KAAK,OAAO;QAAE,OAAO,gBAAgB,EAAE,CAAC;IACpE,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,qBAAqB,EAAE,CAAC;QAC/C,GAAG,CAAC,IAAI,CACN,uEAAuE,CACxE,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IAC7E,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,EAAE,KAAY,EAAuB,EAAE;IAC/D,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC;IAC/D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,6 +72,17 @@ const out = {
|
|
|
72
72
|
hint: (text, opts) => line(process.stdout, isTty()
|
|
73
73
|
? `${pad(opts, 2)}${paint(process.stdout, "cyan", "→")} ${text}`
|
|
74
74
|
: `${pad(opts, 0)}hint: ${text}`),
|
|
75
|
+
pending: (text, opts) => {
|
|
76
|
+
const tty = isTty();
|
|
77
|
+
const indent = pad(opts, 2);
|
|
78
|
+
const room = (process.stdout.columns ?? 80) - indent.length - 4;
|
|
79
|
+
if (tty)
|
|
80
|
+
write(process.stdout, `${indent}${paint(process.stdout, "dim", `◌ ${text.slice(0, room)}…`)}`);
|
|
81
|
+
return () => {
|
|
82
|
+
if (tty)
|
|
83
|
+
write(process.stdout, "\r\x1b[2K");
|
|
84
|
+
};
|
|
85
|
+
},
|
|
75
86
|
warn: (subject, opts) => problem("warn", subject, opts),
|
|
76
87
|
error: (subject, opts) => problem("error", subject, opts),
|
|
77
88
|
data: (text) => write(process.stdout, text.endsWith("\n") ? text : `${text}\n`),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"out.js","sourceRoot":"","sources":["../../../src/core/terminal/out.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"out.js","sourceRoot":"","sources":["../../../src/core/terminal/out.ts"],"names":[],"mappings":"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"}
|
package/dist/jcode/plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "glen",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Shared team memory for coding agents
|
|
3
|
+
"version": "0.1.9",
|
|
4
|
+
"description": "Shared team memory for coding agents: capture on every turn and skill-driven recall via the glen CLI.",
|
|
5
5
|
"author": { "name": "Glen", "url": "https://tryglen.com" },
|
|
6
6
|
"homepage": "https://tryglen.com",
|
|
7
7
|
"license": "MIT"
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
## Glen
|
|
1
|
+
## Glen: your team's shared memory
|
|
2
2
|
|
|
3
3
|
Glen records this team's coding-agent sessions (Claude Code, Codex, Cursor, Pi, jcode) into one shared memory and lets you search it. It is separate from jcode's own memory, which is personal to this machine: jcode memory knows what *you* did here; Glen knows what the *team* decided, tried, and shipped.
|
|
4
4
|
|
|
5
5
|
Reach for Glen when the answer lives in what the team already worked out:
|
|
6
6
|
|
|
7
|
-
- Run `glen search "<one full question>"` via bash when the user asks why something was built a certain way, what a project was scoped to do, how a past incident was handled, what a named system or person is about, or what was decided last time this came up. One detailed question beats several keywords: `glen search "why the invoice worker batches at 500 instead of streaming
|
|
7
|
+
- Run `glen search "<one full question>"` via bash when the user asks why something was built a certain way, what a project was scoped to do, how a past incident was handled, what a named system or person is about, or what was decided last time this came up. One detailed question beats several keywords: `glen search "why the invoice worker batches at 500 instead of streaming: what was tried, what broke, who decided"`.
|
|
8
8
|
- Run `glen code-search <path:start-end> "<question>"` via bash when you can point at specific lines and want the conversations that produced them ("why is this here", "who decided this").
|
|
9
9
|
- When the user asks you to change, fix, or extend a named system, search its history first, before reading or editing code.
|
|
10
10
|
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-search
|
|
3
|
-
description: Trace a specific piece of code to the agent conversations that produced it. Glen calls it whenever the user asks about the prior semantics of code
|
|
3
|
+
description: Trace a specific piece of code to the agent conversations that produced it. Glen calls it whenever the user asks about the prior semantics of code, such as "why is this code like this", "why was this done this way", "what's the history of this block", "who decided this". NOT for org-wide memory questions (that's glen search).
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Resolve the file and line range the user is asking about, then run
|
|
7
|
-
`glen code-search <path:start-end> "<the user's question>"` via Bash
|
|
7
|
+
`glen code-search <path:start-end> "<the user's question>"` via Bash, e.g.
|
|
8
8
|
`glen code-search src/api/rate-limit.ts:40-85 "why is this rate-limited?"`.
|
|
9
9
|
|
|
10
10
|
The output is the ranked memory plus the full transcripts of the conversations
|
|
11
|
-
behind the commits that last touched those lines. Answer from those transcripts
|
|
11
|
+
behind the commits that last touched those lines. Answer from those transcripts.
|
|
12
12
|
Glen owns code-provenance questions; do not guess from the current code alone.
|
|
13
13
|
|
|
14
14
|
This is NOT `glen search` (org-wide memory): `code-search` is scoped to the
|
|
15
15
|
selected code's actual commit history via git blame.
|
|
16
16
|
|
|
17
17
|
If it prints "no Glen trace found", the code predates Glen or was committed
|
|
18
|
-
without recording
|
|
18
|
+
without recording; say so honestly. If it prints "No active organization",
|
|
19
19
|
tell the user to run `glen org switch`.
|
|
@@ -5,17 +5,17 @@ description: Control glen memory - turn glen on/off, go off the record (incognit
|
|
|
5
5
|
|
|
6
6
|
glen has four modes. Always confirm the change to the user.
|
|
7
7
|
|
|
8
|
-
- **On:** `glen on
|
|
8
|
+
- **On:** `glen on`: glen injects context and records everything (the default).
|
|
9
9
|
**Account-wide:** resumes recording on every machine, agent, and connected client.
|
|
10
|
-
- **Off:** `glen off
|
|
10
|
+
- **Off:** `glen off`: glen injects nothing AND records nothing until `glen on`.
|
|
11
11
|
**Account-wide and server-enforced:** fully pauses glen on every machine, agent,
|
|
12
12
|
and connected client.
|
|
13
|
-
- **Incognito (off the record):** `glen incognito
|
|
13
|
+
- **Incognito (off the record):** `glen incognito`: glen keeps recalling/injecting
|
|
14
14
|
but records nothing until `glen on`. **Account-wide and server-enforced:** the
|
|
15
15
|
server blocks memory writes for every machine, agent, and connected client, not
|
|
16
16
|
just this one; the same switch lives on the dashboard's Memories page. Admin
|
|
17
|
-
analytics still count prompts as content-free numbers
|
|
18
|
-
- **Silent:** `glen silent
|
|
17
|
+
analytics still count prompts as content-free numbers, never content. Use for "go off the record" / "stop recording".
|
|
18
|
+
- **Silent:** `glen silent`: glen keeps recording everything but surfaces
|
|
19
19
|
nothing: no recall, no suggestions, and `glen search` returns nothing, until
|
|
20
20
|
`glen on`. **Account-wide and server-enforced** (the server returns empty
|
|
21
21
|
results for every machine, agent, and connected client; the same switch lives
|
|
@@ -23,7 +23,7 @@ glen has four modes. Always confirm the change to the user.
|
|
|
23
23
|
way / record but don't inject".
|
|
24
24
|
|
|
25
25
|
All four mode commands need to reach the glen server (the
|
|
26
|
-
server is the source of truth); if the command fails, the mode did NOT change
|
|
26
|
+
server is the source of truth); if the command fails, the mode did NOT change;
|
|
27
27
|
tell the user.
|
|
28
28
|
|
|
29
29
|
Pick by intent: "stop recording but keep helping" → `glen incognito`; "record but
|
|
@@ -36,10 +36,10 @@ don't help/inject" → `glen silent`; "turn glen off entirely / disable glen"
|
|
|
36
36
|
recommending existing team skills. Re-enable with `… on`. **Account-wide and
|
|
37
37
|
server-enforced** (the same toggles live in the Memories page's Suggestions
|
|
38
38
|
menu). Use for "stop suggesting skills" / "don't recommend skills". Like the
|
|
39
|
-
modes, a failed command means the preference did NOT change
|
|
39
|
+
modes, a failed command means the preference did NOT change; tell the user.
|
|
40
40
|
- Switch org: run `glen org switch <slug>` (or `glen org list` to see options).
|
|
41
41
|
This remains per-machine but is audited server-side. NEVER switch organizations
|
|
42
|
-
unless the user explicitly asked
|
|
42
|
+
unless the user explicitly asked: it changes which tenant receives their data.
|
|
43
43
|
- Admin visibility: owners/admins can see every active-org member's current mode,
|
|
44
44
|
suggestion settings, and last update time at `/admin/controls`.
|
|
45
45
|
- Show state: `glen status`.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: create-artifact
|
|
3
|
-
description: Save a document you produced (a report, runbook, spec, dashboard, HTML page) to your Glen artifact library
|
|
3
|
+
description: Save a document you produced (a report, runbook, spec, dashboard, HTML page) to your Glen artifact library, private to you by default, sharable with teammates or the whole org. Use when the user says "save this as an artifact", or when you've generated a substantial standalone document worth keeping.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
1. **Decide it's worth saving.** Save when the output is a durable, standalone document (Markdown prose or a self-contained HTML+CSS page
|
|
6
|
+
1. **Decide it's worth saving.** Save when the output is a durable, standalone document (Markdown prose or a self-contained HTML+CSS page, no JavaScript). Skip ephemeral chat answers.
|
|
7
7
|
2. **Check the record.** Run `glen status` via Bash. If incognito/off, tell the user nothing will be saved and stop unless they switch on.
|
|
8
8
|
3. **Write it to a file.** Save the document to a local file (`.md` for Markdown, `.html` for HTML+CSS). To link to another artifact or skill, use `[label](glen:artifact/<slug>)` or `[label](glen:skill/<slug>)`.
|
|
9
|
-
4. **Save it.** Run `glen artifact create --file <path> --title "<title>" --format auto` via Bash (piping works too: `--file -` reads stdin, but then `--title` is required). The artifact is **private to the user by default**; add `--org` if the user asked to share it with their whole org. Add `--update` to overwrite your own same-named artifact (an update without `--org` keeps the current sharing). If it reports unresolved references, the linked slug doesn't exist yet
|
|
10
|
-
5. **Confirm.** Tell the user the artifact slug and its visibility: private by default (only they can see it in the Glen dashboard under Artifacts), or shared with the org if `--org` was passed. To share it with specific teammates
|
|
11
|
-
6. **Manage it (author-only, when asked).** Share from the CLI with `glen artifact share <slug> --with <email>[,<email>…]` (adds teammates) and/or `--org` (whole-org visibility)
|
|
9
|
+
4. **Save it.** Run `glen artifact create --file <path> --title "<title>" --format auto` via Bash (piping works too: `--file -` reads stdin, but then `--title` is required). The artifact is **private to the user by default**; add `--org` if the user asked to share it with their whole org. Add `--update` to overwrite your own same-named artifact (an update without `--org` keeps the current sharing). If it reports unresolved references, the linked slug doesn't exist yet; create it or fix the link.
|
|
10
|
+
5. **Confirm.** Tell the user the artifact slug and its visibility: private by default (only they can see it in the Glen dashboard under Artifacts), or shared with the org if `--org` was passed. To share it with specific teammates (or grab a shareable link), they can open the artifact's page and click **Share** (the link is access-controlled; only people it's shared with can open it).
|
|
11
|
+
6. **Manage it (author-only, when asked).** Share from the CLI with `glen artifact share <slug> --with <email>[,<email>…]` (adds teammates) and/or `--org` (whole-org visibility). Both are additive; existing access is kept, and revoking access stays in the dashboard's Share dialog. Delete permanently with `glen artifact delete <slug>`. Confirm with the user first; this can't be undone.
|
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: create-skill
|
|
3
|
-
description: Turn what you just did (or a markdown prompt the user provides) into a reusable skill
|
|
3
|
+
description: Turn what you just did (or a markdown prompt the user provides) into a reusable skill, either a local SKILL.md on this machine or a shared Glen skill saved to the org's library. Use when the user says "make this a skill", "save this as a skill", "save this as a Glen skill", or wants to capture a repeatable workflow.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are authoring a reusable **skill
|
|
6
|
+
You are authoring a reusable **skill**: a focused markdown prompt another agent will follow later, with no memory of this session.
|
|
7
7
|
|
|
8
|
-
1. **Pick the destination FIRST
|
|
9
|
-
- **Check incognito before anything else:** run `glen status` via Bash. If it reports `incognito: ON`, a Glen skill is off the table
|
|
8
|
+
1. **Pick the destination FIRST: local file or Glen skill.** A skill is either a **local `SKILL.md`** on this machine (a jcode skill, visible only to you) or a **Glen skill** saved to your Glen library (recorded; private to you by default, sharable with teammates or the whole org).
|
|
9
|
+
- **Check incognito before anything else:** run `glen status` via Bash. If it reports `incognito: ON`, a Glen skill is off the table (nothing is recorded off the record), so go straight to a **local skill** and tell the user that's why (e.g. "you're off the record, so I'll save this as a local skill").
|
|
10
10
|
- **Otherwise, ask the user which they want** before authoring anything: a local `SKILL.md` (a jcode skill on this machine) or a Glen skill (saved to your Glen library). Don't start writing until they answer.
|
|
11
11
|
2. **Gather the real workflow.** Read this conversation for the steps that actually worked. For anything done in an earlier session, run `glen search "<topic>"` via Bash to pull the relevant memory. Ask one or two clarifying questions only if the goal or trigger is genuinely ambiguous.
|
|
12
12
|
3. **Name + describe it.** A short imperative name and a one-sentence description that says *exactly when to trigger it* (this drives discovery).
|
|
13
13
|
4. **Write a tight SKILL.md body.** Best practices:
|
|
14
14
|
- Lead with *when to use it* and the end goal.
|
|
15
|
-
- Give concrete, ordered steps
|
|
15
|
+
- Give concrete, ordered steps (exact commands, file paths, gotchas), not vague advice.
|
|
16
16
|
- Keep it self-contained: assume zero prior context. Cut anything that isn't actionable.
|
|
17
|
-
- **Reference other skills** when a step is itself a saved skill: write a markdown link `[Display text](glen:<slug>)` (find the slug with `glen skill search`). Glen tracks the link automatically and the reader will get a runnable `glen skill use <slug>` command exactly there
|
|
18
|
-
- **If the skill needs supporting material, bundle it in one skill directory, not separate subskills.** Put long reference material in `references/*.md` and executable helpers in `scripts/` alongside `SKILL.md`, and point to them from the body as `${GLEN_SKILL_DIR}/references/<name>.md` / `${GLEN_SKILL_DIR}/scripts/<name
|
|
17
|
+
- **Reference other skills** when a step is itself a saved skill: write a markdown link `[Display text](glen:<slug>)` (find the slug with `glen skill search`). Glen tracks the link automatically and the reader will get a runnable `glen skill use <slug>` command exactly there. Keep each referenced skill focused and say *when* to reach for it. Reserve this for genuinely **shared** skills: ones that also get used on their own, independent of this one.
|
|
18
|
+
- **If the skill needs supporting material, bundle it in one skill directory, not separate subskills.** Put long reference material in `references/*.md` and executable helpers in `scripts/` alongside `SKILL.md`, and point to them from the body as `${GLEN_SKILL_DIR}/references/<name>.md` / `${GLEN_SKILL_DIR}/scripts/<name>`. `glen skill use` materializes the whole directory to disk and substitutes `${GLEN_SKILL_DIR}` with its real absolute path before printing, so the reader can run the script or open the reference exactly as written. This keeps one topic as one skill instead of splintering it into a root + subskills just to hold its own files.
|
|
19
19
|
5. **Finish based on the destination chosen in step 1:**
|
|
20
20
|
|
|
21
|
-
**Local skill** (and always the incognito path)
|
|
22
|
-
- Save it to `.jcode/skills/<name>/SKILL.md` in this project
|
|
21
|
+
**Local skill** (and always the incognito path); nothing leaves the machine:
|
|
22
|
+
- Save it to `.jcode/skills/<name>/SKILL.md` in this project, or `~/.jcode/skills/<name>/SKILL.md` for a personal skill that follows you across every project.
|
|
23
23
|
- Start the file with YAML frontmatter (`name`, and the `description` from step 3), then the body.
|
|
24
24
|
- No `glen skill create`, no recording. Confirm the saved path to the user.
|
|
25
25
|
|
|
26
26
|
**Glen skill** (only when not incognito):
|
|
27
|
-
- **Declare its dependencies.** List the external tools/runtimes/MCPs the skill needs (node, an MCP, a CLI, …). For each: run `glen dependency search "<tool>"` via Bash
|
|
27
|
+
- **Declare its dependencies.** List the external tools/runtimes/MCPs the skill needs (node, an MCP, a CLI, …). For each: run `glen dependency search "<tool>"` via Bash. If a confident match exists, note its `[id]`; otherwise web-search the canonical source/install page and note `{ name, description, sourceUrl, kind }` (kind = mcp|cli|runtime|library|service). Write them to a JSON array file, e.g. `/tmp/glen-deps.json`, mixing `{ "dependencyId": "<id>" }` (reuse) and new objects.
|
|
28
28
|
- **Save it** via Bash. Text-only skill (no `references/`/`scripts/`): write the body to a file (e.g. `/tmp/glen-skill.md`), then run (add `--deps /tmp/glen-deps.json` if there are any):
|
|
29
29
|
|
|
30
30
|
```
|
|
31
31
|
glen skill create --name "<name>" --description "<one-line>" --file /tmp/glen-skill.md --deps /tmp/glen-deps.json
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
Skill with bundled files: build the package in a temp directory first
|
|
34
|
+
Skill with bundled files: build the package in a temp directory first, with `SKILL.md` at its root, plus whichever of `scripts/`, `references/`, `assets/` it needs (only those three subdirs are uploaded; caps are 100 files, 1MB per text file, 2MB per binary file, 3MB total). Then run:
|
|
35
35
|
|
|
36
36
|
```
|
|
37
37
|
glen skill create --name "<name>" --description "<one-line>" --dir /tmp/glen-skill-pkg --deps /tmp/glen-deps.json
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
`--file` and `--dir` are mutually exclusive. On a name collision either form errors
|
|
40
|
+
`--file` and `--dir` are mutually exclusive. On a name collision either form errors; pick a different name and retry, or pass `--update` to overwrite a skill you previously authored.
|
|
41
41
|
- The skill is **private to the user by default**. Ask the user whether to share it: with the whole org (add `--org` to `glen skill create`, or later `glen skill share <slug> --org`) or with specific teammates (`glen skill share <slug> --with <email>[,<email>…]`). Confirm the saved slug and its visibility back to the user.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: feedback
|
|
3
|
-
description: Send a bug report or product feedback about glen itself to the Glen team. Use when the user says things like "tell the glen team", "file a bug about glen", "glen search is useless
|
|
3
|
+
description: Send a bug report or product feedback about glen itself to the Glen team. Use when the user says things like "tell the glen team", "file a bug about glen", "glen search is useless, report it", "give feedback on glen", or when YOU hit a concrete, reproducible glen malfunction worth reporting.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
This files a ticket about **glen itself
|
|
6
|
+
This files a ticket about **glen itself**: the CLI, the memory, the search, the
|
|
7
7
|
dashboard. It is NOT for bugs in the user's own project. If the user says "file a
|
|
8
8
|
bug" about the code you are working on, that belongs in their issue tracker, not
|
|
9
9
|
here.
|
|
@@ -11,7 +11,7 @@ here.
|
|
|
11
11
|
Tickets land in the same Slack channels the dashboard's feedback widget posts to,
|
|
12
12
|
and carry the user's identity, the repo/branch, and a link to this conversation's
|
|
13
13
|
transcript automatically. Never paste secrets, tokens, or file contents into a
|
|
14
|
-
ticket
|
|
14
|
+
ticket; the transcript link already gives the team the context.
|
|
15
15
|
|
|
16
16
|
## Filing on the user's behalf
|
|
17
17
|
|
|
@@ -29,13 +29,13 @@ interrogating the user for it.
|
|
|
29
29
|
## Filing on your own behalf
|
|
30
30
|
|
|
31
31
|
When the observation is yours, not the user's, add `--from agent`. It renders
|
|
32
|
-
differently for the team
|
|
32
|
+
differently for the team: "Claude Code noticed X" reads very differently from
|
|
33
33
|
"Ada wants X", and both are useful.
|
|
34
34
|
|
|
35
|
-
If you are filing **without being asked**
|
|
36
|
-
decided it was worth reporting
|
|
35
|
+
If you are filing **without being asked** (you hit the problem yourself and
|
|
36
|
+
decided it was worth reporting), also pass `--proactive`. On an off-the-record
|
|
37
37
|
(incognito) session the server refuses self-initiated tickets outright and the
|
|
38
|
-
command tells you so
|
|
38
|
+
command tells you so; nothing the user didn't ask for leaves that session.
|
|
39
39
|
Mention it and let them decide.
|
|
40
40
|
|
|
41
41
|
Only file proactively for something concrete and attributable:
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: forget
|
|
3
|
-
description: Correct glen's memory
|
|
3
|
+
description: Correct glen's memory by forgetting evidence that is wrong, outdated, or no longer relevant, so the team stops being told it. Use when the user says things like "that's wrong, forget it", "glen has the wrong X", "that memory is out of date", or "stop remembering that", or when YOU verify that recalled evidence is contradicted by current code or state.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
A stale memory gets caught two ways: the user points at it, or you verify it yourself.
|
|
7
7
|
|
|
8
|
-
**User-initiated
|
|
8
|
+
**User-initiated**: the user says a remembered fact is wrong or outdated:
|
|
9
9
|
|
|
10
10
|
1. Identify the relevant source references. Glen search results end each source with
|
|
11
11
|
an exact `observation:<id>` or `message:<id>` reference. If the result is not
|
|
@@ -16,7 +16,7 @@ A stale memory gets caught two ways: the user points at it, or you verify it you
|
|
|
16
16
|
3. Pass the returned references unchanged, in one command:
|
|
17
17
|
`glen forget observation:<id> message:<id>`.
|
|
18
18
|
|
|
19
|
-
**Agent-detected
|
|
19
|
+
**Agent-detected**: recalled evidence is contradicted by current code or state:
|
|
20
20
|
|
|
21
21
|
1. Verify the contradiction directly. Never forget on suspicion, a partial view, or
|
|
22
22
|
merely because two memories disagree; surface uncertain conflicts to the user.
|
|
@@ -25,7 +25,7 @@ Where old transcripts live:
|
|
|
25
25
|
macOS (needs Node 22.5+; close Cursor first for the freshest data)
|
|
26
26
|
|
|
27
27
|
A path can be a single file or a directory (scanned recursively; formats are
|
|
28
|
-
auto-detected per file). Preview with `glen import --dry-run <path
|
|
28
|
+
auto-detected per file). Preview with `glen import --dry-run <path…>`; it
|
|
29
29
|
lists every conversation and turn count without writing anything. For large
|
|
30
30
|
directories, offer the dry run first so the user can confirm the scope.
|
|
31
31
|
|
|
@@ -3,7 +3,7 @@ name: invite
|
|
|
3
3
|
description: Invite a teammate to the user's glen organization by email, so the team's shared memory grows. Use when the user says things like "invite Alice", "add my teammate to glen", "get my team on glen", or asks how to bring coworkers in.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
glen is shared team memory
|
|
6
|
+
glen is shared team memory: it gets more useful with every teammate whose context
|
|
7
7
|
lands in the pool. When the user wants to bring someone in:
|
|
8
8
|
|
|
9
9
|
1. Get the teammate's email address. Ask if it isn't given.
|
|
@@ -5,31 +5,31 @@ description: Search the team's shared glen memory for a SPECIFIC fact, decision,
|
|
|
5
5
|
|
|
6
6
|
For current or source-owned facts, use the available source-of-truth tool first (for example, Slack, GitHub, Notion, or logs), especially when the user names it. Use Glen only for durable history or to supplement that source; if the live source is unavailable, say so, and if it conflicts with Glen, prefer it for current state.
|
|
7
7
|
|
|
8
|
-
Run `glen search "<query>"` via Bash
|
|
8
|
+
Run `glen search "<query>"` via Bash. **Start with ONE comprehensive query, not a
|
|
9
9
|
fan-out of variants**.
|
|
10
10
|
|
|
11
11
|
Each search takes ~10 seconds of real user-facing wait, and the server ranks results
|
|
12
|
-
with an LLM that reads your query as free-text intent
|
|
12
|
+
with an LLM that reads your query as free-text intent, so one detailed, self-contained
|
|
13
13
|
query beats several keyword variants. Pack everything you know into a single query:
|
|
14
14
|
who/what/where, the repo or system involved, and what kind of answer you need (a
|
|
15
15
|
decision, an owner, a rationale, setup steps).
|
|
16
16
|
|
|
17
|
-
- ✅ `glen search "Shams's recent work on the usage-page redesign in the dashboard repo
|
|
17
|
+
- ✅ `glen search "Shams's recent work on the usage-page redesign in the dashboard repo: what was decided, current status, and who owns it"`
|
|
18
18
|
- ❌ `glen search "Shams"` … `glen search "usage page redesign"` … `glen search "dashboard"`
|
|
19
19
|
|
|
20
20
|
If a hook or reminder suggests multiple search questions, merge the related ones into
|
|
21
21
|
one query and run that single search.
|
|
22
22
|
|
|
23
|
-
Follow-up searches are fine for going DEEPER
|
|
23
|
+
Follow-up searches are fine for going DEEPER: when the first result surfaces
|
|
24
24
|
something new worth chasing (a project you didn't know to name, a decision that
|
|
25
25
|
points at another decision), and the answer would genuinely change what you do next.
|
|
26
26
|
But every extra search is another ~10s the user sits waiting, so don't overdo it:
|
|
27
27
|
ask yourself whether the follow-up will provide real value the first result didn't,
|
|
28
28
|
and skip it if you already have enough to act. Never re-run a mere rephrase of a
|
|
29
|
-
query that returned little
|
|
29
|
+
query that returned little: same memory, same cost, nothing new.
|
|
30
30
|
|
|
31
31
|
The output is a synthesized answer followed by a "Sources:" list (conversation ·
|
|
32
|
-
date · author · id)
|
|
32
|
+
date · author · id). Treat the answer as recalled memory (it may be outdated or
|
|
33
33
|
conflicting), and cite the sources when relevant. If it prints no results, say so
|
|
34
34
|
rather than re-searching variants.
|
|
35
35
|
If it prints "No active organization", tell the user to run `glen org switch`.
|
|
@@ -13,7 +13,7 @@ then `hint:` lines for things that may not apply. It still exits 0.
|
|
|
13
13
|
then run `glen install` (it sets up the plugin + hooks for this agent).
|
|
14
14
|
- `status: cli=<x> latest=<y> channel=<...>` where y is newer than x → run
|
|
15
15
|
`glen update` (updates the CLI and any installed glen plugins in one go).
|
|
16
|
-
- `status: login=missing ...` → run `glen login
|
|
16
|
+
- `status: login=missing ...` → run `glen login`. A browser window opens with
|
|
17
17
|
a short device code prefilled; the user approves it to connect their account.
|
|
18
18
|
If no browser can open (SSH/headless), relay the printed URL and code so the
|
|
19
19
|
user can approve from any device.
|
|
@@ -24,7 +24,7 @@ then `hint:` lines for things that may not apply. It still exits 0.
|
|
|
24
24
|
It writes glen's hook lines into `~/.jcode/config.toml`, a managed block into
|
|
25
25
|
`~/.jcode/prompt-overlay.md` and `~/.jcode/preferred-tools.md`, and the glen
|
|
26
26
|
skills into `~/.jcode/skills/`. Tell the user to start a NEW jcode session
|
|
27
|
-
afterwards
|
|
27
|
+
afterwards; jcode reads its prompt files at session start.
|
|
28
28
|
- `status: claude=detected plugin=not-installed` (or codex/pi) → run
|
|
29
29
|
`glen install --agent <claude|codex|pi>` for that agent.
|
|
30
30
|
- `status: codex=detected plugin=... hooks=not-registered` → run
|
|
@@ -39,25 +39,25 @@ then `hint:` lines for things that may not apply. It still exits 0.
|
|
|
39
39
|
|
|
40
40
|
`glen doctor` also prints one `status: ingest agent=<agent>
|
|
41
41
|
state=<ok|failing|never|fresh-install|idle> lastSuccess=<iso|never>` line per
|
|
42
|
-
detected agent
|
|
42
|
+
detected agent. This tracks whether hooks are actually firing, separate from
|
|
43
43
|
whether the plugin is installed:
|
|
44
|
-
- `ok` / `failing
|
|
44
|
+
- `ok` / `failing`: reflects the last recorded hook run. For `failing`,
|
|
45
45
|
doctor prints an `error:` line with a `fix:` under it (check `glen status`, then
|
|
46
46
|
`glen login` if disconnected).
|
|
47
|
-
- `fresh-install
|
|
47
|
+
- `fresh-install`: installed under an hour ago with no ingest yet; not a
|
|
48
48
|
fault, just still warming up.
|
|
49
|
-
- `idle
|
|
50
|
-
no completed turn.
|
|
51
|
-
- `never
|
|
49
|
+
- `idle`: hooks fire here; nothing recorded yet (logged out, glen off, or
|
|
50
|
+
no completed turn).
|
|
51
|
+
- `never`: hooks have never fired on THIS machine. Doctor prints it as a `warning:` line with a `fix:`
|
|
52
52
|
under it: untrusted hooks (trust them in-agent and start a new
|
|
53
53
|
session), a PATH gap, a failed hook-trust query, or a machine-topology
|
|
54
54
|
mismatch.
|
|
55
55
|
- A topology mismatch usually means the agent process runs on a different
|
|
56
56
|
machine than the one you're looking at: Codex `--remote` / Desktop-SSH and
|
|
57
|
-
Claude Code over SSH/devcontainer both run the agent
|
|
57
|
+
Claude Code over SSH/devcontainer both run the agent (and its hooks) on
|
|
58
58
|
the REMOTE host, not locally. Install glen there and run `glen doctor` on
|
|
59
59
|
that machine, as the user the agent connects as. Cloud sessions (Codex
|
|
60
|
-
Cloud tasks, claude.ai/code) can't run user-level hooks at all
|
|
60
|
+
Cloud tasks, claude.ai/code) can't run user-level hooks at all; only
|
|
61
61
|
repo-committed hooks apply there.
|
|
62
62
|
|
|
63
63
|
Finish with `glen status` and tell the user, in one sentence, what state they
|
|
@@ -3,7 +3,7 @@ name: use-artifact
|
|
|
3
3
|
description: Fetch and display an artifact from the user's Glen library (their own artifacts plus ones shared with them). Use when the user asks to open, view, render, or download a saved Glen artifact.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
1. **Find it.** If you don't know the slug, run `glen artifact search "<intent>"` via Bash and confirm the right one with the user. Search covers the user's own artifacts plus ones shared with them (directly or org-wide)
|
|
6
|
+
1. **Find it.** If you don't know the slug, run `glen artifact search "<intent>"` via Bash and confirm the right one with the user. Search covers the user's own artifacts plus ones shared with them (directly or org-wide); a teammate's unshared artifact won't appear.
|
|
7
7
|
2. **Fetch it.** Run `glen artifact get <slug>` via Bash. The output is the document (Markdown or HTML+CSS).
|
|
8
8
|
3. **Show it.**
|
|
9
9
|
- **Markdown:** present it inline.
|
|
@@ -4,7 +4,7 @@ description: Find and run a reusable skill from the Glen skill library (your ski
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
1. **Search.** Run `glen skill search "<intent>"` via Bash (add `--by "<author>"`, or `--by me` for your own skills). It prints ranked candidates, each with its **[slug]**, author, and description.
|
|
7
|
-
2. **Confirm.** If several plausibly match, show the top 2–3 (name + description + author) and ask the user which one. If it prints "no matching skills", say so
|
|
8
|
-
3. **Check requirements.** If the output has a `## Requirements` section, make sure each listed tool is available
|
|
9
|
-
4. **Run it.** Run `glen skill use <slug>` via Bash. The output is markdown **instructions to execute now
|
|
10
|
-
5. **Follow referenced skills on demand.** The instructions may contain runnable `glen skill use <slug>` commands for related skills. Run one via Bash only when its step applies
|
|
7
|
+
2. **Confirm.** If several plausibly match, show the top 2–3 (name + description + author) and ask the user which one. If it prints "no matching skills", say so; don't invent a skill.
|
|
8
|
+
3. **Check requirements.** If the output has a `## Requirements` section, make sure each listed tool is available (follow its source link to install/enable it, or tell the user) before you start.
|
|
9
|
+
4. **Run it.** Run `glen skill use <slug>` via Bash. The output is markdown **instructions to execute now**. Follow them as if they were a skill. If the skill bundles files, they're materialized locally first and the output references them by **absolute path** (e.g. a script under `~/.glen/skills/<slug>/scripts/`). Run scripts exactly as written, don't rewrite the paths.
|
|
10
|
+
5. **Follow referenced skills on demand.** The instructions may contain runnable `glen skill use <slug>` commands for related skills. Run one via Bash only when its step applies; they're pulled on demand, not all upfront. Skills mentioned via `glen:` links are prefetched: their files are already materialized on disk by the time you pull them, and every `glen skill use` verifies freshness with the server so files on disk are always current.
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tryglen/cli",
|
|
3
|
-
"version": "0.43.
|
|
4
|
-
"description": "Glen CLI
|
|
3
|
+
"version": "0.43.4",
|
|
4
|
+
"description": "Glen CLI: memory for coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"glen": "./dist/bin.js"
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"node": ">=20"
|
|
41
41
|
},
|
|
42
42
|
"license": "MIT",
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "9a6fab3480be483249b4e5be9619ab608a4487c5"
|
|
44
44
|
}
|