@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.
- package/README.md +39 -27
- package/dist/_utils/agent-adapter.d.ts +0 -13
- package/dist/_utils/agent-adapter.js +1 -19
- package/dist/_utils/agent-adapter.js.map +1 -1
- package/dist/_utils/agents-table.js +1 -9
- package/dist/_utils/agents-table.js.map +1 -1
- package/dist/_utils/cli-error.js +0 -3
- package/dist/_utils/cli-error.js.map +1 -1
- package/dist/_utils/codex-app-server.js +0 -2
- package/dist/_utils/codex-app-server.js.map +1 -1
- package/dist/_utils/codex-hooks-merge.js +0 -11
- package/dist/_utils/codex-hooks-merge.js.map +1 -1
- package/dist/_utils/codex-hooks-setup.js +0 -18
- package/dist/_utils/codex-hooks-setup.js.map +1 -1
- package/dist/_utils/codex-paths.js +0 -3
- package/dist/_utils/codex-paths.js.map +1 -1
- package/dist/_utils/codex-repair-trace.js +0 -3
- package/dist/_utils/codex-repair-trace.js.map +1 -1
- package/dist/_utils/codex-trust-toml.js +1 -9
- package/dist/_utils/codex-trust-toml.js.map +1 -1
- package/dist/_utils/collect-import-files.js +0 -7
- package/dist/_utils/collect-import-files.js.map +1 -1
- package/dist/_utils/config.js +0 -4
- package/dist/_utils/config.js.map +1 -1
- package/dist/_utils/confirm.js +2 -10
- package/dist/_utils/confirm.js.map +1 -1
- package/dist/_utils/credentials.js +0 -3
- package/dist/_utils/credentials.js.map +1 -1
- package/dist/_utils/detect-transcript-format.d.ts +1 -1
- package/dist/_utils/detect-transcript-format.js +0 -7
- package/dist/_utils/detect-transcript-format.js.map +1 -1
- package/dist/_utils/ensure-global-cli.d.ts +0 -12
- package/dist/_utils/ensure-global-cli.js +1 -28
- package/dist/_utils/ensure-global-cli.js.map +1 -1
- package/dist/_utils/ephemeral-session.js +3 -24
- package/dist/_utils/ephemeral-session.js.map +1 -1
- package/dist/_utils/extract-claude-segments.js +1 -5
- package/dist/_utils/extract-claude-segments.js.map +1 -1
- package/dist/_utils/extract-codex-segments.js +0 -9
- package/dist/_utils/extract-codex-segments.js.map +1 -1
- package/dist/_utils/extract-pi-segments.js +1 -5
- package/dist/_utils/extract-pi-segments.js.map +1 -1
- package/dist/_utils/find-bin.js +0 -8
- package/dist/_utils/find-bin.js.map +1 -1
- package/dist/_utils/format-search-result.js +3 -19
- package/dist/_utils/format-search-result.js.map +1 -1
- package/dist/_utils/format-turn-nudges.js +2 -20
- package/dist/_utils/format-turn-nudges.js.map +1 -1
- package/dist/_utils/git-context.d.ts +0 -2
- package/dist/_utils/git-context.js +1 -33
- package/dist/_utils/git-context.js.map +1 -1
- package/dist/_utils/git-hook-setup.js +0 -1
- package/dist/_utils/git-hook-setup.js.map +1 -1
- package/dist/_utils/glen-headers.js +1 -4
- package/dist/_utils/glen-headers.js.map +1 -1
- package/dist/_utils/http.js +1 -8
- package/dist/_utils/http.js.map +1 -1
- package/dist/_utils/idempotency-key.js +1 -4
- package/dist/_utils/idempotency-key.js.map +1 -1
- package/dist/_utils/indicator-app.js +4 -26
- package/dist/_utils/indicator-app.js.map +1 -1
- package/dist/_utils/indicator-health.js +0 -6
- package/dist/_utils/indicator-health.js.map +1 -1
- package/dist/_utils/ingest-diagnosis.js +0 -5
- package/dist/_utils/ingest-diagnosis.js.map +1 -1
- package/dist/_utils/ingest-heartbeat.js +1 -6
- package/dist/_utils/ingest-heartbeat.js.map +1 -1
- package/dist/_utils/install-receipt.d.ts +9 -1
- package/dist/_utils/install-receipt.js +18 -3
- package/dist/_utils/install-receipt.js.map +1 -1
- package/dist/_utils/jcode-bundle.d.ts +3 -0
- package/dist/_utils/jcode-bundle.js +16 -0
- package/dist/_utils/jcode-bundle.js.map +1 -0
- package/dist/_utils/jcode-event.d.ts +3 -0
- package/dist/_utils/jcode-event.js +66 -0
- package/dist/_utils/jcode-event.js.map +1 -0
- package/dist/_utils/jcode-hook-lines.d.ts +5 -0
- package/dist/_utils/jcode-hook-lines.js +7 -0
- package/dist/_utils/jcode-hook-lines.js.map +1 -0
- package/dist/_utils/jcode-hooks-toml.d.ts +8 -0
- package/dist/_utils/jcode-hooks-toml.js +148 -0
- package/dist/_utils/jcode-hooks-toml.js.map +1 -0
- package/dist/_utils/jcode-paths.d.ts +7 -0
- package/dist/_utils/jcode-paths.js +10 -0
- package/dist/_utils/jcode-paths.js.map +1 -0
- package/dist/_utils/jcode-setup.d.ts +27 -0
- package/dist/_utils/jcode-setup.js +151 -0
- package/dist/_utils/jcode-setup.js.map +1 -0
- package/dist/_utils/jcode-skills-sync.d.ts +8 -0
- package/dist/_utils/jcode-skills-sync.js +74 -0
- package/dist/_utils/jcode-skills-sync.js.map +1 -0
- package/dist/_utils/login-check.js +1 -4
- package/dist/_utils/login-check.js.map +1 -1
- package/dist/_utils/managed-block.d.ts +4 -0
- package/dist/_utils/managed-block.js +38 -0
- package/dist/_utils/managed-block.js.map +1 -0
- package/dist/_utils/normalize-boolean-flags.js +2 -7
- package/dist/_utils/normalize-boolean-flags.js.map +1 -1
- package/dist/_utils/open-browser.js +1 -3
- package/dist/_utils/open-browser.js.map +1 -1
- package/dist/_utils/parse-claude-transcript.js +4 -24
- package/dist/_utils/parse-claude-transcript.js.map +1 -1
- package/dist/_utils/parse-codex-transcript.js +1 -22
- package/dist/_utils/parse-codex-transcript.js.map +1 -1
- package/dist/_utils/parse-cursor-db.js +2 -21
- package/dist/_utils/parse-cursor-db.js.map +1 -1
- package/dist/_utils/parse-harbor-atif.js +2 -1
- package/dist/_utils/parse-harbor-atif.js.map +1 -1
- package/dist/_utils/parse-jcode-session.d.ts +14 -0
- package/dist/_utils/parse-jcode-session.js +113 -0
- package/dist/_utils/parse-jcode-session.js.map +1 -0
- package/dist/_utils/parse-pi-transcript.js +1 -35
- package/dist/_utils/parse-pi-transcript.js.map +1 -1
- package/dist/_utils/parse-transcript.js +1 -9
- package/dist/_utils/parse-transcript.js.map +1 -1
- package/dist/_utils/plugin-status.d.ts +1 -1
- package/dist/_utils/plugin-status.js +25 -16
- package/dist/_utils/plugin-status.js.map +1 -1
- package/dist/_utils/post-route.js +0 -7
- package/dist/_utils/post-route.js.map +1 -1
- package/dist/_utils/pr-review-link.js +0 -2
- package/dist/_utils/pr-review-link.js.map +1 -1
- package/dist/_utils/proactive-ticket-log.js +1 -11
- package/dist/_utils/proactive-ticket-log.js.map +1 -1
- package/dist/_utils/record-commit-anchor.js +1 -8
- package/dist/_utils/record-commit-anchor.js.map +1 -1
- package/dist/_utils/refresh-control-state.js +1 -7
- package/dist/_utils/refresh-control-state.js.map +1 -1
- package/dist/_utils/render-callback-page.js +0 -7
- package/dist/_utils/render-callback-page.js.map +1 -1
- package/dist/_utils/resolve-import-workspace.d.ts +0 -7
- package/dist/_utils/resolve-import-workspace.js +1 -13
- package/dist/_utils/resolve-import-workspace.js.map +1 -1
- package/dist/_utils/run-bin.js +0 -2
- package/dist/_utils/run-bin.js.map +1 -1
- package/dist/_utils/session-map.js +0 -5
- package/dist/_utils/session-map.js.map +1 -1
- package/dist/_utils/shell-profile.js +1 -28
- package/dist/_utils/shell-profile.js.map +1 -1
- package/dist/_utils/state-line-memo.d.ts +0 -6
- package/dist/_utils/state-line-memo.js +3 -18
- package/dist/_utils/state-line-memo.js.map +1 -1
- package/dist/_utils/state-line.js +0 -4
- package/dist/_utils/state-line.js.map +1 -1
- package/dist/_utils/state.js +0 -5
- package/dist/_utils/state.js.map +1 -1
- package/dist/_utils/sync-mode-from-server.d.ts +0 -18
- package/dist/_utils/sync-mode-from-server.js +2 -21
- package/dist/_utils/sync-mode-from-server.js.map +1 -1
- package/dist/_utils/transcript-turns.d.ts +1 -1
- package/dist/_utils/transcript-turns.js +1 -51
- package/dist/_utils/transcript-turns.js.map +1 -1
- package/dist/_utils/turn-cache.js +1 -8
- package/dist/_utils/turn-cache.js.map +1 -1
- package/dist/_utils/update.d.ts +0 -10
- package/dist/_utils/update.js +8 -30
- package/dist/_utils/update.js.map +1 -1
- package/dist/_utils/version.js +3 -6
- package/dist/_utils/version.js.map +1 -1
- package/dist/_utils/which.d.ts +0 -5
- package/dist/_utils/which.js +0 -5
- package/dist/_utils/which.js.map +1 -1
- package/dist/_utils/write-commit-trailer.js +1 -5
- package/dist/_utils/write-commit-trailer.js.map +1 -1
- package/dist/bin.js +15 -31
- package/dist/bin.js.map +1 -1
- package/dist/commands/_utils/materialize-skill.js +4 -34
- package/dist/commands/_utils/materialize-skill.js.map +1 -1
- package/dist/commands/_utils/pack-skill-dir.js +6 -27
- package/dist/commands/_utils/pack-skill-dir.js.map +1 -1
- package/dist/commands/artifact.js +2 -5
- package/dist/commands/artifact.js.map +1 -1
- package/dist/commands/code-search.js +0 -6
- package/dist/commands/code-search.js.map +1 -1
- package/dist/commands/doctor.d.ts +0 -17
- package/dist/commands/doctor.js +29 -75
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/feedback.js +2 -10
- package/dist/commands/feedback.js.map +1 -1
- package/dist/commands/git-hooks.js +0 -3
- package/dist/commands/git-hooks.js.map +1 -1
- package/dist/commands/import.js +5 -27
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/incognito.d.ts +0 -5
- package/dist/commands/incognito.js +0 -5
- package/dist/commands/incognito.js.map +1 -1
- package/dist/commands/indicator.d.ts +0 -1
- package/dist/commands/indicator.js +0 -1
- package/dist/commands/indicator.js.map +1 -1
- package/dist/commands/ingest.js +58 -122
- package/dist/commands/ingest.js.map +1 -1
- package/dist/commands/install.d.ts +1 -0
- package/dist/commands/install.js +52 -93
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/invite.d.ts +0 -6
- package/dist/commands/invite.js +0 -16
- package/dist/commands/invite.js.map +1 -1
- package/dist/commands/login.js +0 -15
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/onboard.js +0 -6
- package/dist/commands/onboard.js.map +1 -1
- package/dist/commands/org.js +0 -2
- package/dist/commands/org.js.map +1 -1
- package/dist/commands/pr-link.js +2 -15
- package/dist/commands/pr-link.js.map +1 -1
- package/dist/commands/search.js +0 -5
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/session-start.d.ts +0 -21
- package/dist/commands/session-start.js +19 -68
- package/dist/commands/session-start.js.map +1 -1
- package/dist/commands/set-mode.d.ts +0 -6
- package/dist/commands/set-mode.js +2 -12
- package/dist/commands/set-mode.js.map +1 -1
- package/dist/commands/skill.js +5 -35
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/statusline.d.ts +0 -13
- package/dist/commands/statusline.js +0 -15
- package/dist/commands/statusline.js.map +1 -1
- package/dist/commands/suggestions.d.ts +0 -6
- package/dist/commands/suggestions.js +0 -7
- package/dist/commands/suggestions.js.map +1 -1
- package/dist/commands/takeover/_utils/agent-paths.js +2 -3
- package/dist/commands/takeover/_utils/agent-paths.js.map +1 -1
- package/dist/commands/takeover/_utils/cursor-store.js +1 -3
- package/dist/commands/takeover/_utils/cursor-store.js.map +1 -1
- package/dist/commands/takeover/_utils/write-codex-desktop-session.js +1 -4
- package/dist/commands/takeover/_utils/write-codex-desktop-session.js.map +1 -1
- package/dist/commands/takeover/_utils/write-codex-session.js +1 -2
- package/dist/commands/takeover/_utils/write-codex-session.js.map +1 -1
- package/dist/commands/uninstall.d.ts +0 -1
- package/dist/commands/uninstall.js +7 -7
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.d.ts +0 -10
- package/dist/commands/update.js +21 -30
- package/dist/commands/update.js.map +1 -1
- package/dist/jcode/plugin.json +8 -0
- package/dist/jcode/preferred-tools.md +3 -0
- package/dist/jcode/prompt-overlay.md +15 -0
- package/dist/jcode/skills/code-search/SKILL.md +19 -0
- package/dist/jcode/skills/controls/SKILL.md +45 -0
- package/dist/jcode/skills/create-artifact/SKILL.md +11 -0
- package/dist/jcode/skills/create-skill/SKILL.md +41 -0
- package/dist/jcode/skills/feedback/SKILL.md +59 -0
- package/dist/jcode/skills/forget/SKILL.md +41 -0
- package/dist/jcode/skills/import-transcripts/SKILL.md +27 -0
- package/dist/jcode/skills/invite/SKILL.md +28 -0
- package/dist/jcode/skills/search/SKILL.md +35 -0
- package/dist/jcode/skills/session-takeover/SKILL.md +67 -0
- package/dist/jcode/skills/setup/SKILL.md +62 -0
- package/dist/jcode/skills/use-artifact/SKILL.md +11 -0
- package/dist/jcode/skills/use-skill/SKILL.md +10 -0
- package/package.json +5 -3
package/dist/commands/ingest.js
CHANGED
|
@@ -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
|
-
//
|
|
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:
|
|
49
|
-
//
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
//
|
|
89
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
100
|
-
//
|
|
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;
|
|
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
|
|
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;
|
|
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
|
-
//
|
|
199
|
-
//
|
|
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" ||
|
|
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
|
-
?
|
|
287
|
-
|
|
288
|
-
typeof event.
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
event.
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
411
|
-
//
|
|
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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"}
|