@tryglen/cli 0.23.0 → 0.24.3

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.
@@ -23,11 +23,7 @@ const config = {
23
23
  setRecordingUrl: `${baseUrl}/api/mcp/route/setRecording`,
24
24
  setSuggestionsUrl: `${baseUrl}/api/mcp/route/setSuggestions`,
25
25
  ingestTimeoutMs: 8000,
26
- // 30s: a broad "summarize everything" search runs two sequential LLM relevance
27
- // scans (coarse shards → fine observations) and legitimately lands ~15s on heavy
28
- // queries; a flat 15s clipped answers the server had already computed. Also the
29
- // shared timeout for every /api/mcp/route/* POST via post-route.ts.
30
- searchTimeoutMs: 30_000,
26
+ searchTimeoutMs: 60_000,
31
27
  forgetTimeoutMs: 15_000,
32
28
  listOrgsTimeoutMs: 15_000,
33
29
  commitAnchorTimeoutMs: 3000,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/_utils/config.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,gEAAgE;AAChE,MAAM,OAAO,GAAG,CACd,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,yBAAyB,CACvD,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAEtB,MAAM,MAAM,GAAG;IACb,OAAO;IACP,UAAU,EAAE,GAAG,OAAO,cAAc;IACpC,WAAW,EAAE,GAAG,OAAO,2BAA2B;IAClD,OAAO,EAAE,GAAG,OAAO,qBAAqB;IACxC,SAAS,EAAE,GAAG,OAAO,uBAAuB;IAC5C,SAAS,EAAE,GAAG,OAAO,uBAAuB;IAC5C,SAAS,EAAE,GAAG,OAAO,6BAA6B;IAClD,WAAW,EAAE,GAAG,OAAO,yBAAyB;IAChD,cAAc,EAAE,GAAG,OAAO,4BAA4B;IACtD,WAAW,EAAE,GAAG,OAAO,yBAAyB;IAChD,cAAc,EAAE,GAAG,OAAO,4BAA4B;IACtD,mBAAmB,EAAE,GAAG,OAAO,iCAAiC;IAChE,iBAAiB,EAAE,GAAG,OAAO,+BAA+B;IAC5D,cAAc,EAAE,GAAG,OAAO,4BAA4B;IACtD,iBAAiB,EAAE,GAAG,OAAO,+BAA+B;IAC5D,eAAe,EAAE,GAAG,OAAO,6BAA6B;IACxD,aAAa,EAAE,GAAG,OAAO,2BAA2B;IACpD,SAAS,EAAE,GAAG,OAAO,iCAAiC;IACtD,eAAe,EAAE,GAAG,OAAO,6BAA6B;IACxD,iBAAiB,EAAE,GAAG,OAAO,+BAA+B;IAC5D,eAAe,EAAE,IAAI;IACrB,+EAA+E;IAC/E,iFAAiF;IACjF,gFAAgF;IAChF,oEAAoE;IACpE,eAAe,EAAE,MAAM;IACvB,eAAe,EAAE,MAAM;IACvB,iBAAiB,EAAE,MAAM;IACzB,qBAAqB,EAAE,IAAI;IAC3B,oFAAoF;IACpF,mBAAmB,EAAE,MAAM;IAC3B,8EAA8E;IAC9E,eAAe,EAAE,MAAM;IACvB,qBAAqB,EAAE,MAAM;IAC7B,uBAAuB,EAAE,MAAM;CAChC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/_utils/config.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,gEAAgE;AAChE,MAAM,OAAO,GAAG,CACd,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,yBAAyB,CACvD,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAEtB,MAAM,MAAM,GAAG;IACb,OAAO;IACP,UAAU,EAAE,GAAG,OAAO,cAAc;IACpC,WAAW,EAAE,GAAG,OAAO,2BAA2B;IAClD,OAAO,EAAE,GAAG,OAAO,qBAAqB;IACxC,SAAS,EAAE,GAAG,OAAO,uBAAuB;IAC5C,SAAS,EAAE,GAAG,OAAO,uBAAuB;IAC5C,SAAS,EAAE,GAAG,OAAO,6BAA6B;IAClD,WAAW,EAAE,GAAG,OAAO,yBAAyB;IAChD,cAAc,EAAE,GAAG,OAAO,4BAA4B;IACtD,WAAW,EAAE,GAAG,OAAO,yBAAyB;IAChD,cAAc,EAAE,GAAG,OAAO,4BAA4B;IACtD,mBAAmB,EAAE,GAAG,OAAO,iCAAiC;IAChE,iBAAiB,EAAE,GAAG,OAAO,+BAA+B;IAC5D,cAAc,EAAE,GAAG,OAAO,4BAA4B;IACtD,iBAAiB,EAAE,GAAG,OAAO,+BAA+B;IAC5D,eAAe,EAAE,GAAG,OAAO,6BAA6B;IACxD,aAAa,EAAE,GAAG,OAAO,2BAA2B;IACpD,SAAS,EAAE,GAAG,OAAO,iCAAiC;IACtD,eAAe,EAAE,GAAG,OAAO,6BAA6B;IACxD,iBAAiB,EAAE,GAAG,OAAO,+BAA+B;IAC5D,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,MAAM;IACvB,eAAe,EAAE,MAAM;IACvB,iBAAiB,EAAE,MAAM;IACzB,qBAAqB,EAAE,IAAI;IAC3B,oFAAoF;IACpF,mBAAmB,EAAE,MAAM;IAC3B,8EAA8E;IAC9E,eAAe,EAAE,MAAM;IACvB,qBAAqB,EAAE,MAAM;IAC7B,uBAAuB,EAAE,MAAM;CAChC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1,59 +1,25 @@
1
- // `glen search` returns a `context` block: one recalled memory per line, each
2
- // formatted "[timestamp] Author: content", with an optional "…[N omitted]…"
3
- // elision marker where the middle was truncated. The agent reads this output
4
- // directly, so we lead with a short receipt of how many memories came back and
5
- // render each as a bullet — a few bullets on what was returned, rather than an
6
- // undifferentiated block — and close with a one-line reliability caveat.
7
- // Returns null when there's no context to show.
8
- const ELISION = /^…\[\d+ omitted\]…$/;
9
- // Memories are LLM-extracted from past sessions — they can be stale, partial, or
10
- // contradict each other. The nudge tells the agent to run `glen search` via Bash,
11
- // which does NOT load skills/search/SKILL.md, so the caveat has to travel with the
12
- // result itself rather than living only in the skill (same for the stale→forget
13
- // instruction, whose full guardrails live in skills/forget/SKILL.md). Kept short —
14
- // it rides every non-empty result.
1
+ // `answer` is already fully rendered server-side (render-answer.ts appends the
2
+ // "Sources:"/"Couldn't verify:" sections), so print it as-is — re-deriving
3
+ // bullets/gaps here would double-render those sections.
15
4
  const CAVEAT = "(Recalled from past sessions — may be outdated or conflicting. Weigh recency, " +
16
5
  "use your judgment on what's relevant, and confirm with the user before relying " +
17
- "on anything uncertain or contradictory. If you VERIFY a memory is stale — the " +
18
- "current code or state you've checked directly contradicts it — run " +
19
- "`glen forget <id>` via Bash with its [m:<id>] handle, tell the user what you " +
20
- "forgot and why (it's restorable from the dashboard), and state the correct " +
21
- "fact so glen re-learns it. Never forget on suspicion alone or because two " +
22
- "memories disagree — surface those to the user instead.)";
23
- // When a search returns memories the agent judges genuinely useful for the
24
- // current request, we want the *user* — not just the agent — to see that Glen
25
- // helped. The agent reads this result from a Bash call (the search skill isn't
26
- // loaded), so the instruction has to ride the result itself, like the caveat.
27
- // We hand the agent a single-cell Markdown table as a fixed scaffold and let it
28
- // author only the inner 1–3 sentence summary: copying the fragile `| … |` / `| --- |`
29
- // lines verbatim keeps the box from collapsing, while the summary stays
30
- // context-aware. It's gated twice — the CLI appends this only when memories came
31
- // back, and the agent renders it only when one actually matters here — so the box
32
- // means "Glen surfaced something useful", not merely "Glen ran". The one-line / no-`|`
33
- // rule is what stops the single cell from breaking apart.
34
- const BANNER = "If one or more of the recalled memories above is genuinely useful for the " +
35
- "user's current request, BEGIN your reply with the two-line banner below — copy " +
36
- "both lines exactly, replacing only the angle-bracketed text with a 1–3 sentence " +
37
- "summary of that useful context and why it matters here. Keep it on ONE line: " +
38
- 'never put a "|" character or a line break inside it. If nothing above is ' +
39
- "actually relevant, skip the banner entirely and don't mention Glen.\n" +
6
+ "on anything uncertain or contradictory.)";
7
+ // Rides the result (Bash `glen search` loads no skill). The agent fills only the
8
+ // inner cell text; the one-line/no-`|` rule keeps the single-cell table from collapsing.
9
+ const BANNER = "If the answer above is genuinely useful for the user's current request, " +
10
+ "BEGIN your reply with the two-line banner below — copy both lines exactly, " +
11
+ "replacing only the angle-bracketed text with a 1–3 sentence summary of that " +
12
+ "useful context and why it matters here. Keep it on ONE line: never put a " +
13
+ '"|" character or a line break inside it. If nothing above is actually ' +
14
+ "relevant, skip the banner entirely and don't mention Glen.\n" +
40
15
  "\n" +
41
16
  "| 🧠 **Glen** — <1–3 sentences: the useful context and why it matters here> |\n" +
42
17
  "| --- |";
43
18
  const formatSearchResult = (result) => {
44
- const context = result?.context;
45
- if (typeof context !== "string" || context.trim() === "")
19
+ const answer = result?.answer;
20
+ if (typeof answer !== "string" || answer.trim() === "")
46
21
  return null;
47
- const lines = context.split("\n").filter((l) => l.trim() !== "");
48
- const memoryCount = lines.filter((l) => !ELISION.test(l.trim())).length;
49
- if (memoryCount === 0)
50
- return null;
51
- const noun = memoryCount === 1 ? "memory" : "memories";
52
- const bullets = lines
53
- // The elision marker isn't a memory — keep it inline (indented), un-bulleted.
54
- .map((l) => (ELISION.test(l.trim()) ? ` ${l.trim()}` : `• ${l}`))
55
- .join("\n");
56
- return `[glen] recalled ${memoryCount} ${noun}:\n${bullets}\n${CAVEAT}\n\n${BANNER}`;
22
+ return `[glen] search answer:\n\n${answer}\n\n${CAVEAT}\n\n${BANNER}`;
57
23
  };
58
24
  export { formatSearchResult };
59
25
  //# sourceMappingURL=format-search-result.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format-search-result.js","sourceRoot":"","sources":["../../src/_utils/format-search-result.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,+EAA+E;AAC/E,yEAAyE;AACzE,gDAAgD;AAChD,MAAM,OAAO,GAAG,qBAAqB,CAAC;AAEtC,iFAAiF;AACjF,kFAAkF;AAClF,mFAAmF;AACnF,gFAAgF;AAChF,mFAAmF;AACnF,mCAAmC;AACnC,MAAM,MAAM,GACV,gFAAgF;IAChF,iFAAiF;IACjF,gFAAgF;IAChF,qEAAqE;IACrE,+EAA+E;IAC/E,6EAA6E;IAC7E,4EAA4E;IAC5E,yDAAyD,CAAC;AAE5D,2EAA2E;AAC3E,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,sFAAsF;AACtF,wEAAwE;AACxE,iFAAiF;AACjF,kFAAkF;AAClF,uFAAuF;AACvF,0DAA0D;AAC1D,MAAM,MAAM,GACV,4EAA4E;IAC5E,iFAAiF;IACjF,kFAAkF;IAClF,+EAA+E;IAC/E,2EAA2E;IAC3E,uEAAuE;IACvE,IAAI;IACJ,iFAAiF;IACjF,SAAS,CAAC;AAEZ,MAAM,kBAAkB,GAAG,CAAC,MAAe,EAAiB,EAAE;IAC5D,MAAM,OAAO,GAAI,MAAyC,EAAE,OAAO,CAAC;IACpE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAEtE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACxE,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,IAAI,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;IACvD,MAAM,OAAO,GAAG,KAAK;QACnB,8EAA8E;SAC7E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACjE,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,mBAAmB,WAAW,IAAI,IAAI,MAAM,OAAO,KAAK,MAAM,OAAO,MAAM,EAAE,CAAC;AACvF,CAAC,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"format-search-result.js","sourceRoot":"","sources":["../../src/_utils/format-search-result.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,2EAA2E;AAC3E,wDAAwD;AACxD,MAAM,MAAM,GACV,gFAAgF;IAChF,iFAAiF;IACjF,0CAA0C,CAAC;AAE7C,iFAAiF;AACjF,yFAAyF;AACzF,MAAM,MAAM,GACV,0EAA0E;IAC1E,6EAA6E;IAC7E,8EAA8E;IAC9E,2EAA2E;IAC3E,wEAAwE;IACxE,8DAA8D;IAC9D,IAAI;IACJ,iFAAiF;IACjF,SAAS,CAAC;AAEZ,MAAM,kBAAkB,GAAG,CAAC,MAAe,EAAiB,EAAE;IAC5D,MAAM,MAAM,GAAI,MAAyC,EAAE,MAAM,CAAC;IAClE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAEpE,OAAO,4BAA4B,MAAM,OAAO,MAAM,OAAO,MAAM,EAAE,CAAC;AACxE,CAAC,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -40,13 +40,24 @@ const classifyFetchError = (e, url) => {
40
40
  };
41
41
  const httpJson = async (url, options = {}) => {
42
42
  const { method = "GET", headers, body, timeoutMs } = options;
43
+ // Staging/preview deployments sit behind Vercel deployment protection; the
44
+ // bypass token must ride on EVERY request or Vercel 401s before the app
45
+ // runs. Env-gated so production use (unset) sends nothing extra — pairs
46
+ // with GLEN_BASE_URL for pointing the CLI at a preview deploy.
47
+ const bypassToken = process.env.GLEN_VERCEL_PROTECTION_BYPASS;
48
+ const mergedHeaders = {
49
+ ...(bypassToken ? { "x-vercel-protection-bypass": bypassToken } : {}),
50
+ ...headers,
51
+ };
43
52
  const controller = new AbortController();
44
53
  const timeoutId = timeoutMs
45
54
  ? setTimeout(() => controller.abort(), timeoutMs)
46
55
  : undefined;
47
56
  const fetchResult = await fromPromise(fetch(url, {
48
57
  method,
49
- ...(headers !== undefined ? { headers } : {}),
58
+ ...(Object.keys(mergedHeaders).length > 0
59
+ ? { headers: mergedHeaders }
60
+ : {}),
50
61
  body: body ?? null,
51
62
  signal: controller.signal,
52
63
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/_utils/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/_utils/http.ts"],"names":[],"mappings":"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"}
@@ -125,7 +125,7 @@ const sessionStart = async (agent) => {
125
125
  // Cursor has no user-facing notice channel (no systemMessage field), so the
126
126
  // off/incognito notice rides additional_context; it contains no memory.
127
127
  const healthy = Boolean(credentials && state && state.mode !== "off" && state.mode !== "silent");
128
- const searchNudge = '[glen] Cursor cannot inject team memory per turn — for anything the user references from past team work (decisions, discussions, prior fixes), run `glen search "<topic>"` via the shell and treat its output as team memory.';
128
+ const searchNudge = '[glen] Cursor cannot inject team memory per turn — for anything the user references from past team work (decisions, discussions, prior fixes), run `glen search "<topic>"` via the shell and treat its answer as team memory.';
129
129
  const combined = [
130
130
  systemMessage,
131
131
  additionalContext,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryglen/cli",
3
- "version": "0.23.0",
3
+ "version": "0.24.3",
4
4
  "description": "Glen CLI — memory for coding agents",
5
5
  "type": "module",
6
6
  "bin": {