@tryglen/cli 0.42.1 → 0.42.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.
Files changed (53) hide show
  1. package/dist/_generated/contract/zod.gen.js +1 -0
  2. package/dist/_generated/contract/zod.gen.js.map +1 -1
  3. package/dist/clients/glen-api/glen-api.js +24 -27
  4. package/dist/clients/glen-api/glen-api.js.map +1 -1
  5. package/dist/clients/npm/update.js +5 -10
  6. package/dist/clients/npm/update.js.map +1 -1
  7. package/dist/commands/_utils/bound-segments.js +89 -0
  8. package/dist/commands/_utils/bound-segments.js.map +1 -0
  9. package/dist/commands/_utils/fails-until-fixed.js +7 -0
  10. package/dist/commands/_utils/fails-until-fixed.js.map +1 -0
  11. package/dist/commands/_utils/truncate-to-cap.js +6 -0
  12. package/dist/commands/_utils/truncate-to-cap.js.map +1 -0
  13. package/dist/commands/doctor/index.js +2 -1
  14. package/dist/commands/doctor/index.js.map +1 -1
  15. package/dist/commands/import/_utils/transcript-turns.js +2 -93
  16. package/dist/commands/import/_utils/transcript-turns.js.map +1 -1
  17. package/dist/commands/import/index.js +21 -20
  18. package/dist/commands/import/index.js.map +1 -1
  19. package/dist/commands/ingest/_utils/fit-turn-body.js +34 -0
  20. package/dist/commands/ingest/_utils/fit-turn-body.js.map +1 -0
  21. package/dist/commands/ingest/index.js +88 -43
  22. package/dist/commands/ingest/index.js.map +1 -1
  23. package/dist/commands/install/_utils/finish-install.js +3 -2
  24. package/dist/commands/install/_utils/finish-install.js.map +1 -1
  25. package/dist/commands/login/index.js +2 -1
  26. package/dist/commands/login/index.js.map +1 -1
  27. package/dist/commands/org/_utils/fetch-orgs.js +2 -1
  28. package/dist/commands/org/_utils/fetch-orgs.js.map +1 -1
  29. package/dist/commands/pr-link/index.js +2 -1
  30. package/dist/commands/pr-link/index.js.map +1 -1
  31. package/dist/commands/session-start/index.js +5 -5
  32. package/dist/commands/session-start/index.js.map +1 -1
  33. package/dist/commands/set-mode/index.js +2 -1
  34. package/dist/commands/set-mode/index.js.map +1 -1
  35. package/dist/commands/status/index.js +7 -4
  36. package/dist/commands/status/index.js.map +1 -1
  37. package/dist/commands/suggestions/index.js +2 -1
  38. package/dist/commands/suggestions/index.js.map +1 -1
  39. package/dist/core/errors/fixes.js +8 -0
  40. package/dist/core/errors/fixes.js.map +1 -0
  41. package/dist/core/state/import-job.js +4 -0
  42. package/dist/core/state/import-job.js.map +1 -1
  43. package/dist/core/state/session-memo.js +92 -0
  44. package/dist/core/state/session-memo.js.map +1 -0
  45. package/dist/core/state/state.js +5 -2
  46. package/dist/core/state/state.js.map +1 -1
  47. package/package.json +2 -2
  48. package/dist/commands/ingest/_utils/ingest-failure-memo.js +0 -57
  49. package/dist/commands/ingest/_utils/ingest-failure-memo.js.map +0 -1
  50. package/dist/core/state/paused-line.js +0 -3
  51. package/dist/core/state/paused-line.js.map +0 -1
  52. package/dist/core/state/state-line-memo.js +0 -52
  53. package/dist/core/state/state-line-memo.js.map +0 -1
@@ -1,57 +0,0 @@
1
- import { dirname, join } from "node:path";
2
- import { files } from "../../../core/system/files.js";
3
- import { field } from "../../../core/json/json-field.js";
4
- import { parseJson } from "../../../core/json/parse-json.js";
5
- import { mapErr, ok } from "../../../core/errors/result.js";
6
- import { glenState } from "../../../core/state/state.js";
7
- const MAX_SESSIONS = 200;
8
- const MAX_AGE_MS = 48 * 60 * 60 * 1000;
9
- const memoPath = () => join(dirname(glenState.path()), "ingest-failure-memo.json");
10
- const entryOf = (value) => {
11
- const count = field(value, "count");
12
- const updatedAt = field(value, "updatedAt");
13
- return typeof count === "number" && typeof updatedAt === "number"
14
- ? { count, updatedAt }
15
- : null;
16
- };
17
- const readMemo = async () => {
18
- const raw = await files.readTextIfExists(memoPath());
19
- if (!raw.ok || raw.value === null)
20
- return {};
21
- const parsed = parseJson(raw.value);
22
- if (!parsed.ok || typeof parsed.value !== "object" || parsed.value === null)
23
- return {};
24
- return Object.fromEntries(Object.entries(parsed.value).flatMap(([id, v]) => {
25
- const entry = entryOf(v);
26
- return entry ? [[id, entry]] : [];
27
- }));
28
- };
29
- const writeMemo = async (memo) => {
30
- const now = Date.now();
31
- const entries = Object.entries(memo)
32
- .filter(([, entry]) => now - entry.updatedAt < MAX_AGE_MS)
33
- .sort(([idA, a], [idB, b]) => b.updatedAt - a.updatedAt || (idA > idB ? -1 : idA < idB ? 1 : 0))
34
- .slice(0, MAX_SESSIONS);
35
- return mapErr(await files.writeAtomic(memoPath(), JSON.stringify(Object.fromEntries(entries))), (f) => files.toError(f, {
36
- code: "ingest.failure_memo_write_failed",
37
- what: "could not save glen's capture-failure count",
38
- remedy: "check ownership of ~/.glen (e.g. `sudo chown -R $USER ~/.glen`)",
39
- }));
40
- };
41
- const recordIngestCaptureOutcome = async (sessionId, outcome) => {
42
- const memo = await readMemo();
43
- if (outcome === "success") {
44
- if (!(sessionId in memo))
45
- return ok(false);
46
- const cleared = await writeMemo(Object.fromEntries(Object.entries(memo).filter(([id]) => id !== sessionId)));
47
- return cleared.ok ? ok(false) : cleared;
48
- }
49
- const count = (memo[sessionId]?.count ?? 0) + 1;
50
- const saved = await writeMemo({
51
- ...memo,
52
- [sessionId]: { count, updatedAt: Date.now() },
53
- });
54
- return saved.ok ? ok(count === 2) : saved;
55
- };
56
- export { recordIngestCaptureOutcome };
57
- //# sourceMappingURL=ingest-failure-memo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ingest-failure-memo.js","sourceRoot":"","sources":["../../../../src/commands/ingest/_utils/ingest-failure-memo.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- const pausedLine = (paused) => `Glen paused recording: this workspace reached its plan's ${paused.limit.toLocaleString("en-US")}-memory limit. Upgrade: ${paused.upgradeUrl}`;
2
- export { pausedLine };
3
- //# sourceMappingURL=paused-line.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paused-line.js","sourceRoot":"","sources":["../../../src/core/state/paused-line.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,MAA6C,EAAU,EAAE,CAC3E,4DAA4D,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2BAA2B,MAAM,CAAC,UAAU,EAAE,CAAC;AAEjJ,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -1,52 +0,0 @@
1
- import { dirname, join } from "node:path";
2
- import { files } from "../system/files.js";
3
- import { field } from "../json/json-field.js";
4
- import { parseJson } from "../json/parse-json.js";
5
- import { mapErr, ok } from "../errors/result.js";
6
- import { glenState } from "./state.js";
7
- const MAX_SESSIONS = 200;
8
- const MAX_AGE_MS = 48 * 60 * 60 * 1000;
9
- const memoPath = () => join(dirname(glenState.path()), "state-line-memo.json");
10
- const entryOf = (value) => {
11
- const line = field(value, "line");
12
- const updatedAt = field(value, "updatedAt");
13
- return typeof line === "string" && typeof updatedAt === "number"
14
- ? { line, updatedAt }
15
- : null;
16
- };
17
- const readMemo = async () => {
18
- const raw = await files.readTextIfExists(memoPath());
19
- if (!raw.ok || raw.value === null)
20
- return {};
21
- const parsed = parseJson(raw.value);
22
- if (!parsed.ok || typeof parsed.value !== "object" || parsed.value === null)
23
- return {};
24
- return Object.fromEntries(Object.entries(parsed.value).flatMap(([id, v]) => {
25
- const entry = entryOf(v);
26
- return entry ? [[id, entry]] : [];
27
- }));
28
- };
29
- const writeMemo = async (memo) => {
30
- const now = Date.now();
31
- const entries = Object.entries(memo)
32
- .filter(([, e]) => now - e.updatedAt < MAX_AGE_MS)
33
- .sort(([idA, a], [idB, b]) => b.updatedAt - a.updatedAt || (idA > idB ? -1 : idA < idB ? 1 : 0))
34
- .slice(0, MAX_SESSIONS);
35
- return mapErr(await files.writeAtomic(memoPath(), JSON.stringify(Object.fromEntries(entries))), (f) => files.toError(f, {
36
- code: "state_line_memo.write_failed",
37
- what: "could not save which glen status line this session last showed",
38
- remedy: "check ownership of ~/.glen (e.g. `sudo chown -R $USER ~/.glen`)",
39
- }));
40
- };
41
- const rememberStateLine = async (sessionId, line) => {
42
- const memo = await readMemo();
43
- if (memo[sessionId]?.line === line)
44
- return ok(false);
45
- const saved = await writeMemo({
46
- ...memo,
47
- [sessionId]: { line, updatedAt: Date.now() },
48
- });
49
- return saved.ok ? ok(true) : saved;
50
- };
51
- export { rememberStateLine };
52
- //# sourceMappingURL=state-line-memo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-line-memo.js","sourceRoot":"","sources":["../../../src/core/state/state-line-memo.ts"],"names":[],"mappings":"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"}