@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,100 +1,9 @@
1
- import { isRecord } from "../../../core/json/is-record.js";
1
+ import { boundSegments } from "../../_utils/bound-segments.js";
2
2
  const MAX_MESSAGE_CHARS = 30_000;
3
3
  const MAX_IDEMPOTENCY_KEYS = 8;
4
4
  const truncate = (text) => text.length <= MAX_MESSAGE_CHARS
5
5
  ? text
6
6
  : `${text.slice(0, MAX_MESSAGE_CHARS)}\n… [truncated by glen import]`;
7
- const MAX_SEGMENT_CHARS = 30_000;
8
- const MAX_PAYLOAD_CHARS = 1_000_000;
9
- const TRUNCATION_MARKER = "… [truncated by glen]";
10
- const truncateToCap = (text, maxChars) => text.length <= maxChars
11
- ? text
12
- : `${text.slice(0, Math.max(0, maxChars - TRUNCATION_MARKER.length - 1))}\n${TRUNCATION_MARKER}`;
13
- const truncateJsonStrings = (value, maxChars) => {
14
- if (typeof value === "string")
15
- return truncateToCap(value, maxChars);
16
- if (Array.isArray(value))
17
- return value.map((v) => truncateJsonStrings(v, maxChars));
18
- if (isRecord(value))
19
- return truncateRecord(value, maxChars);
20
- return value;
21
- };
22
- const truncateRecord = (value, maxChars) => Object.fromEntries(Object.entries(value).map(([k, v]) => [
23
- k,
24
- truncateJsonStrings(v, maxChars),
25
- ]));
26
- const truncateSegment = (s) => {
27
- const withText = s.text !== undefined && s.text.length > MAX_SEGMENT_CHARS
28
- ? {
29
- ...s,
30
- text: truncateToCap(s.text, MAX_SEGMENT_CHARS),
31
- }
32
- : s;
33
- return withText.jsonContent !== undefined
34
- ? {
35
- ...withText,
36
- jsonContent: truncateRecord(withText.jsonContent, MAX_SEGMENT_CHARS),
37
- }
38
- : withText;
39
- };
40
- const dropRawFromSegments = (segments) => segments.map((s) => {
41
- if (s.jsonContent === undefined || !("raw" in s.jsonContent))
42
- return s;
43
- const { raw: _raw, ...rest } = s.jsonContent;
44
- return { ...s, jsonContent: rest };
45
- });
46
- const RECAP_FLOOR_CHARS = 1_000;
47
- const recapSegments = (segments, capChars) => segments.map((s) => {
48
- const withJson = s.jsonContent !== undefined
49
- ? { ...s, jsonContent: truncateRecord(s.jsonContent, capChars) }
50
- : s;
51
- return withJson.kind === "thinking" &&
52
- withJson.text !== undefined &&
53
- withJson.text.length > capChars
54
- ? {
55
- ...withJson,
56
- text: truncateToCap(withJson.text, capChars),
57
- }
58
- : withJson;
59
- });
60
- const fitsBudget = (segments) => JSON.stringify(segments).length <= MAX_PAYLOAD_CHARS;
61
- const shrinkToFit = (segments, capChars) => {
62
- const recapped = recapSegments(segments, capChars);
63
- if (fitsBudget(recapped) || capChars <= RECAP_FLOOR_CHARS)
64
- return recapped;
65
- return shrinkToFit(recapped, Math.floor(capChars / 2));
66
- };
67
- const DROP_ORDER = [
68
- "tool_result",
69
- "compaction",
70
- "thinking",
71
- "tool_call",
72
- ];
73
- const dropByKind = (segments, kinds) => {
74
- if (fitsBudget(segments))
75
- return [...segments];
76
- const [kind, ...rest] = kinds;
77
- if (!kind)
78
- return truncateFromEnd(segments);
79
- const dropped = segments.filter((s) => s.kind !== kind);
80
- return dropByKind(dropped, rest);
81
- };
82
- const truncateFromEnd = (segments) => {
83
- if (segments.length === 0 || fitsBudget(segments))
84
- return [...segments];
85
- return truncateFromEnd(segments.slice(0, -1));
86
- };
87
- const boundSegmentsPayload = (segments) => {
88
- if (fitsBudget(segments))
89
- return [...segments];
90
- const withoutRaw = dropRawFromSegments(segments);
91
- if (fitsBudget(withoutRaw))
92
- return withoutRaw;
93
- const shrunk = shrinkToFit(withoutRaw, MAX_SEGMENT_CHARS / 2);
94
- if (fitsBudget(shrunk))
95
- return shrunk;
96
- return dropByKind(shrunk, DROP_ORDER);
97
- };
98
7
  const earliestTimestamp = (a, b) => (!a ? b : !b ? a : a < b ? a : b);
99
8
  const foldSameRole = (messages) => messages.reduce((folded, m) => {
100
9
  const text = m.content.trim();
@@ -134,7 +43,7 @@ const buildTranscriptTurns = (messages) => foldSameRole(messages)
134
43
  content: truncate(f.content),
135
44
  ...(f.occurredAt ? { occurredAt: f.occurredAt } : {}),
136
45
  ...(f.segments && f.segments.length > 0
137
- ? { segments: boundSegmentsPayload(f.segments.map(truncateSegment)) }
46
+ ? { segments: boundSegments(f.segments).segments }
138
47
  : {}),
139
48
  ...(f.idempotencyKeys ? { idempotencyKeys: f.idempotencyKeys } : {}),
140
49
  }))
@@ -1 +1 @@
1
- {"version":3,"file":"transcript-turns.js","sourceRoot":"","sources":["../../../../src/commands/import/_utils/transcript-turns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transcript-turns.js","sourceRoot":"","sources":["../../../../src/commands/import/_utils/transcript-turns.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { randomUUID } from "node:crypto";
2
+ import { failsUntilFixed } from "../_utils/fails-until-fixed.js";
2
3
  import { basename, dirname, join, resolve } from "node:path";
3
4
  import { cliErr } from "../../core/errors/cli-error.js";
4
5
  import { files } from "../../core/system/files.js";
@@ -223,9 +224,6 @@ const importSession = async (session, onChunk) => {
223
224
  }
224
225
  return tally;
225
226
  };
226
- const stopsTheRun = (e) => e._tag === "Auth" ||
227
- e.code === "api.cli_outdated" ||
228
- e.code === "api.not_allowed";
229
227
  const writeImportReport = async (path, sessions) => mapErr(await files.writeAtomic(path, `${JSON.stringify({ sessions }, null, 2)}\n`), (f) => files.toError(f, {
230
228
  code: "import.report_write_failed",
231
229
  what: "could not write the import report",
@@ -240,15 +238,12 @@ const printDryRun = (sessions, totalTurns) => {
240
238
  : `• ${s.transcript.agent} ${shortId(s.transcript.sessionId)}: ${s.turns.length} turn(s) (${s.file})`);
241
239
  out.info(`dry run: ${sessions.length} conversation(s), ${totalTurns} turn(s); nothing imported`);
242
240
  };
243
- const REMEDY_BY_CODE = {
244
- "api.auth_expired": "run `glen login`, then re-run the same `glen import`",
245
- "api.not_connected": "run `glen login`, then re-run the same `glen import`",
246
- "api.no_active_org": "run `glen org switch`, then re-run the same `glen import`",
247
- "api.forbidden": "run `glen login`, then re-run the same `glen import`",
248
- "api.cli_outdated": "run `glen update`, then re-run the same `glen import`",
249
- "api.not_allowed": "upgrade the workspace's plan in Billing, then re-run the same `glen import`",
250
- };
251
241
  const RESUME_HINT = "re-run the same `glen import` to resume (already-imported turns are skipped automatically)";
242
+ const stoppedFields = (e) => ({
243
+ stoppedBy: e.code,
244
+ stoppedWhat: e.what,
245
+ stoppedRemedy: e.remedy,
246
+ });
252
247
  const saveProgress = async (job, total, end) => {
253
248
  if (!job)
254
249
  return;
@@ -262,7 +257,7 @@ const saveProgress = async (job, total, end) => {
262
257
  imported: total.imported,
263
258
  existing: total.existing,
264
259
  failedConversations: total.failedConversations,
265
- ...(end.stoppedBy ? { stoppedBy: end.stoppedBy } : {}),
260
+ ...(end.stoppedBy ? stoppedFields(end.stoppedBy) : {}),
266
261
  });
267
262
  if (!saved.ok)
268
263
  out.warn(saved.error);
@@ -301,12 +296,12 @@ const runImport = async (sessions, totalTurns, skippedFiles, options) => {
301
296
  total.imported += result.imported;
302
297
  total.existing += result.existing;
303
298
  total.backfilled += result.backfilled;
304
- if (result.failure && stopsTheRun(result.failure)) {
299
+ if (result.failure && failsUntilFixed(result.failure)) {
305
300
  out.info(`imported ${total.imported} of ${totalTurns} turn(s) before failing`);
306
301
  out.hint(RESUME_HINT);
307
302
  await saveProgress(job, total, {
308
303
  finished: true,
309
- stoppedBy: result.failure.code,
304
+ stoppedBy: result.failure,
310
305
  });
311
306
  return err(result.failure);
312
307
  }
@@ -417,10 +412,16 @@ const printStatus = async () => {
417
412
  : ""} (started ${new Date(job.startedAt).toISOString()})`);
418
413
  if (job.status === "running" && !stale)
419
414
  return ok(undefined);
420
- out.hint((job.stoppedBy && REMEDY_BY_CODE[job.stoppedBy]) ??
421
- (stale || job.stoppedBy || job.failedConversations > 0
422
- ? RESUME_HINT
423
- : "nothing left to do"));
415
+ if (job.stoppedWhat)
416
+ out.info(job.stoppedWhat);
417
+ if (job.stoppedRemedy) {
418
+ out.hint(job.stoppedRemedy);
419
+ out.hint(RESUME_HINT);
420
+ return ok(undefined);
421
+ }
422
+ out.hint(stale || job.stoppedBy || job.failedConversations > 0
423
+ ? RESUME_HINT
424
+ : "nothing left to do");
424
425
  return ok(undefined);
425
426
  };
426
427
  const closeJobIfStillRunning = async (id, stoppedBy) => {
@@ -431,7 +432,7 @@ const closeJobIfStillRunning = async (id, stoppedBy) => {
431
432
  ...job,
432
433
  status: "finished",
433
434
  updatedAt: Date.now(),
434
- stoppedBy,
435
+ ...stoppedFields(stoppedBy),
435
436
  });
436
437
  if (!closed.ok)
437
438
  out.warn(closed.error);
@@ -475,7 +476,7 @@ const importFrom = async ({ path: paths, ...options }) => {
475
476
  const importTranscripts = importOptions.handle(async (input) => {
476
477
  const result = await importFrom(input);
477
478
  if (input.job && !result.ok)
478
- await closeJobIfStillRunning(input.job, result.error.code);
479
+ await closeJobIfStillRunning(input.job, result.error);
479
480
  return result;
480
481
  });
481
482
  export { importTranscripts };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/import/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/import/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG7D,OAAO,EAAiB,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAe,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC,MAAM,sBAAsB,GAC1B,iMAAiM,CAAC;AA2BpM,MAAM,OAAO,GAAG,CAAC,EAAU,EAAU,EAAE,CACrC,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAE9C,MAAM,iBAAiB,GAAG,CAAC,CAAa,EAAU,EAAE,CAClD,GAAG,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;AAE/E,MAAM,UAAU,GAAG,CAAC,CAAa,EAAE,EAAE;IACnC,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS;QAC3B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,SAAS,EAAE,QAAQ,CAAC;IACnD,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,SAAS,EAAE,SAAS,CAAC;IACtD,MAAM,SAAS,GAAG;QAChB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC;IACF,OAAO;QACL,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,CAAC,KAAK;YACb,GAAG,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE;QACD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,OAAO,EAAE;YACP,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,mBAAmB;YACxE,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,IAAY,EAAY,EAAE,CAC7D,MAAM,CAAC,OAAO,EAAE;IACd,IAAI,EAAE,uBAAuB;IAC7B,IAAI;IACJ,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,gCAAgC,sBAAsB,GAAG;CAClE,CAAC,CAAC;AAEL,MAAM,UAAU,GAAG,CAAC,IAAY,EAAY,EAAE,CAC5C,MAAM,CAAC,OAAO,EAAE;IACd,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,oDAAoD;CAC7D,CAAC,CAAC;AAEL,MAAM,kBAAkB,GAAG,KAAK,EAC9B,IAAY,EACuB,EAAE,CACrC,MAAM,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CACvC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE;IACf,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,kCAAkC;IACxC,MAAM,EAAE,wCAAwC;CACjD,CAAC,CACH,CAAC;AAEJ,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE,CAC7C,QAAQ,CAAC,IAAI,CAAC;KACX,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;KACvB,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC;KACjD,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;AAE/C,MAAM,cAAc,GAAG,KAAK,EAC1B,IAAY,EACkC,EAAE;IAChD,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC;IACxB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACvC,QAAQ,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QAC5C,KAAK,aAAa;YAChB,OAAO,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;QACtD,KAAK,OAAO;YACV,OAAO,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;QACrD,KAAK,IAAI;YACP,OAAO,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;QAClD;YACE,OAAO,GAAG,CACR,aAAa,CACX,IAAI,EACJ,uDAAuD,CACxD,CACF,CAAC;IACN,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,EACvB,IAAY,EAGZ,EAAE;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,GAAG,CAAC,EAAE;QACT,OAAO,GAAG,CACR,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE;YACvB,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,mCAAmC;YACzC,MAAM,EAAE,wCAAwC;SACjD,CAAC,CACH,CAAC;IACJ,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;QACpB,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9C,CAAC,CAAC,EAAE,OAAO,EAAE,KAAc,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,OAAO;QACjB,OAAO,GAAG,CACR,MAAM,CAAC,OAAO,EAAE;YACd,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,4EAA4E;YAClF,IAAI;YACJ,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,8CAA8C;SACvD,CAAC,CACH,CAAC;IACJ,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,EAC3B,IAAY,EAC2B,EAAE;IACzC,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC;IACxB,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE;QACxB,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,CAAC,UAAU;QACb,OAAO,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,yCAAyC,CAAC,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IAChC,IAAI,CAAC,OAAO,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;IACpE,OAAO,EAAE,CAAC;QACR,GAAG,UAAU;QACb,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,YAAY;QACZ,YAAY;KACb,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,WAAkC,EAAE,EAAE,CACtE,WAAW;KACR,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACpB,IAAI;IACJ,UAAU;IACV,KAAK,EAAE,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC;CACjD,CAAC,CAAC;KACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEvC,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAuB,EAAE;IAC5D,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACjE,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC;YAC7B,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAChE,OAAO;YACL,QAAQ,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;YACpD,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GACV,QAAQ,CAAC,IAAI,CAAC,KAAK,iBAAiB;QAClC,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACjE,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QACvB,OAAO;YACL,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC5B,CAAC;IACJ,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE,CACnE,GAAG,CAAC,IAAI,CACN,MAAM,CAAC,OAAO,EAAE;IACd,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,YAAY,KAAK,eAAe,IAAI,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE;IAC7E,IAAI,EAAE,IAAI;IACV,MAAM,EACJ,2GAA2G;CAC9G,CAAC,CACH,CAAC;AAEJ,MAAM,UAAU,GAAG,KAAK,EAAE,KAAwB,EAAuB,EAAE;IACzE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpD,KAAK,MAAM,CAAC,IAAI,QAAQ;QACtB,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC;YAC7B,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAClE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;AAClE,CAAC,CAAC;AAIF,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAE,KAAY,EAAE,EAAE;IACnD,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7D,OAAO,QAAQ,CACb,uBAAuB,EACvB;QACE,cAAc;QACd,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACrC,cAAc,EAAE,GAAG,cAAc,IAAI,KAAK,EAAE;YAC5C,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC;QACjD,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY;YACjC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE;YACnD,CAAC,CAAC,EAAE,CAAC;KACR,EAED,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,IAAI,EAAE,CACvD,CAAC;AACJ,CAAC,CAAC;AAIF,MAAM,aAAa,GAAG,KAAK,EACzB,OAAgB,EAChB,OAAyE,EACzE,EAAE;IACF,MAAM,KAAK,GAAG;QACZ,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,EAAc;QAC1B,OAAO,EAAE,IAAuB;KACjC,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,UAAU,CAC5B,OAAO,CAAC,KAAK,EACb,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAChC,EAAE,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,eAAe;gBAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;;gBACzC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;YACzB,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC3D,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,KAAK,EAC7B,IAAY,EACZ,QAAqE,EACpC,EAAE,CACnC,MAAM,CACJ,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAC3E,CAAC,CAAC,EAAE,EAAE,CACJ,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE;IACf,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,mCAAmC;IACzC,MAAM,EAAE,2CAA2C;CACpD,CAAC,CACL,CAAC;AAEJ,MAAM,WAAW,GAAG,CAAC,QAA4B,EAAE,UAAkB,EAAE,EAAE;IACvE,KAAK,MAAM,CAAC,IAAI,QAAQ;QACtB,GAAG,CAAC,IAAI,CACN,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,aAAa;YACnC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,wBAC3E,CAAC,CAAC,UAAU,CAAC,YAAY;gBACvB,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE;gBAC9C,CAAC,CAAC,EACN,EAAE;YACJ,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,aAAa,CAAC,CAAC,IAAI,GAAG,CACxG,CAAC;IACJ,GAAG,CAAC,IAAI,CACN,YAAY,QAAQ,CAAC,MAAM,qBAAqB,UAAU,4BAA4B,CACvF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GACf,4FAA4F,CAAC;AAgB/F,MAAM,aAAa,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,IAAI;IACjB,WAAW,EAAE,CAAC,CAAC,IAAI;IACnB,aAAa,EAAE,CAAC,CAAC,MAAM;CACxB,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,KAAK,EACxB,GAAkB,EAClB,KAAa,EACb,GAAgD,EAChD,EAAE;IACF,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC;QAClC,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAC7C,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC,CAAC;IACH,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAE,KAAe,EAAY,EAAE,CACzE,MAAM,CAAC,UAAU,EAAE;IACjB,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,kDAAkD;IAC5H,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;IAC3D,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,MAAM,EAAE,2CAA2C;CACpD,CAAC,CAAC;AAEL,MAAM,SAAS,GAAG,KAAK,EACrB,QAA4B,EAC5B,UAAkB,EAClB,YAAoB,EACpB,OAAgE,EAC/B,EAAE;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG;QACrB,CAAC,CAAC;YACE,EAAE,EAAE,OAAO,CAAC,GAAG;YACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,UAAU;SACX;QACH,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,KAAK,GAAW;QACpB,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,mBAAmB,EAAE,CAAC;KACvB,CAAC;IACF,MAAM,cAAc,GAAuD,EAAE,CAAC;IAC9E,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CACtD,YAAY,CACV,GAAG,EACH;YACE,GAAG,KAAK;YACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ;YAC3C,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ;SAC5C,EACD,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CACF,CAAC;QACF,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;QAClC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;QAClC,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;QAEtC,IAAI,MAAM,CAAC,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CACN,YAAY,KAAK,CAAC,QAAQ,OAAO,UAAU,yBAAyB,CACrE,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACtB,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE;gBAC7B,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,MAAM,CAAC,OAAO;aAC1B,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,IAAI,CAAC;gBAClB,cAAc,EAAE,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC;gBACrD,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC,CAAC;YACH,GAAG,CAAC,OAAO,CACT,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,QAAQ,oBACtF,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,mBAAmB,CAAC,CAAC,CAAC,EAClE,GACE,MAAM,CAAC,UAAU,GAAG,CAAC;gBACnB,CAAC,CAAC,KAAK,MAAM,CAAC,UAAU,gCAAgC;gBACxD,CAAC,CAAC,EACN,EAAE,CACH,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnD,GAAG,CAAC,IAAI,CACN,SAAS,KAAK,CAAC,QAAQ,sBAAsB,KAAK,CAAC,QAAQ,qBAAqB,KAAK,CAAC,UAAU,0CAA0C,QAAQ,CAAC,MAAM,mBACvJ,KAAK,CAAC,mBAAmB,GAAG,CAAC;QAC3B,CAAC,CAAC,KAAK,KAAK,CAAC,mBAAmB,yBAAyB;QACzD,CAAC,CAAC,EACN,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,CACjE,CAAC;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;QAC3B,CAAC,CAAC,MAAM,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC;QACzD,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAClB,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,OAAO,KAAK,CAAC,mBAAmB,GAAG,CAAC;QAClC,CAAC,CAAC,GAAG,CACD,MAAM,CAAC,UAAU,EAAE;YACjB,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,GAAG,KAAK,CAAC,mBAAmB,8CAA8C;YAChF,MAAM,EAAE,6CAA6C;SACtD,CAAC,CACH;QACH,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,KAAK,EAC7B,KAAwB,EACxB,QAA4B,EAC5B,UAAkB,EAClB,MAA0B,EACO,EAAE;IACnC,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;QAC9D,OAAO,GAAG,CACR,MAAM,CAAC,OAAO,EAAE;YACd,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,gDAAgD;YACtD,MAAM,EACJ,yHAAyH;SAC5H,CAAC,CACH,CAAC;IACJ,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;IACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC;QAClC,EAAE;QACF,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;QACd,aAAa,EAAE,QAAQ,CAAC,MAAM;QAC9B,UAAU;QACV,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,mBAAmB,EAAE,CAAC;KACvB,CAAC,CAAC;IACH,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAC5B,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAChC,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,EAAE;QACF,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KAChC,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC;YACnC,EAAE;YACF,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,UAAU;YACV,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;YACX,mBAAmB,EAAE,CAAC;YACtB,SAAS,EAAE,qBAAqB;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,GAAG,CACR,MAAM,CAAC,MAAM,EAAE;YACb,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,uCAAuC;YAC7C,MAAM,EACJ,gEAAgE;SACnE,CAAC,CACH,CAAC;IACJ,CAAC;IACD,GAAG,CAAC,OAAO,CACT,aAAa,QAAQ,CAAC,MAAM,qBAAqB,UAAU,4BAA4B,CACxF,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAC9E,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,IAAqC,EAAE;IAC9D,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QACzD,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,KAAK;QACjB,CAAC,CAAC,0BAA0B;QAC5B,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS;YACxB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,GAAG,CAAC,SAAS;gBACb,CAAC,CAAC,kBAAkB,GAAG,CAAC,SAAS,GAAG;gBACpC,CAAC,CAAC,UAAU,CAAC;IACnB,GAAG,CAAC,IAAI,CACN,UAAU,KAAK,KAAK,GAAG,CAAC,QAAQ,sBAAsB,GAAG,CAAC,QAAQ,wBAAwB,GAAG,CAAC,UAAU,eAAe,GAAG,CAAC,aAAa,mBACtI,GAAG,CAAC,mBAAmB,GAAG,CAAC;QACzB,CAAC,CAAC,KAAK,GAAG,CAAC,mBAAmB,yBAAyB;QACvD,CAAC,CAAC,EACN,aAAa,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,GAAG,CACtD,CAAC;IACF,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,GAAG,CAAC,WAAW;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5B,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtB,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IACD,GAAG,CAAC,IAAI,CACN,KAAK,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,mBAAmB,GAAG,CAAC;QACnD,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,oBAAoB,CACzB,CAAC;IACF,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CAAC;AAGF,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAAU,EAAE,SAAmB,EAAE,EAAE;IACvE,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO;IACvD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC;QACnC,GAAG,GAAG;QACN,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,GAAG,aAAa,CAAC,SAAS,CAAC;KAC5B,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC,CAAC;AAIF,MAAM,UAAU,GAAG,KAAK,EAAE,EACxB,IAAI,EAAE,KAAK,EACX,GAAG,OAAO,EACJ,EAAmC,EAAE;IAC3C,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,WAAW,EAAE,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QACpB,OAAO,GAAG,CACR,MAAM,CAAC,OAAO,EAAE;YACd,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,2BAA2B;YACjC,MAAM,EAAE,oCAAoC,sBAAsB,GAAG;SACtE,CAAC,CACH,CAAC;IACJ,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAC1B,OAAO,GAAG,CACR,MAAM,CAAC,OAAO,EAAE;YACd,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,2BAA2B;YACjC,MAAM,EAAE,yBAAyB,sBAAsB,GAAG;SAC3D,CAAC,CACH,CAAC;IAEJ,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QACvB,OAAO,GAAG,CACR,MAAM,CAAC,OAAO,EAAE;YACd,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,mCAAmC;YACzC,MAAM,EACJ,gGAAgG;SACnG,CAAC,CACH,CAAC;IAEJ,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,IAAI;QACf,OAAO,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxE,OAAO,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAC5C,KAAK,EAAE,KAAK,EAAmC,EAAE;IAC/C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;QACzB,MAAM,sBAAsB,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC;AAChB,CAAC,CACF,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { boundSegments } from "../../_utils/bound-segments.js";
2
+ import { truncateToCap } from "../../_utils/truncate-to-cap.js";
3
+ const MAX_CONTENT_CHARS = 100_000;
4
+ const TRIM_RANK = [
5
+ "none",
6
+ "truncated",
7
+ "shrunk",
8
+ "dropped",
9
+ ];
10
+ const heavier = (a, b) => TRIM_RANK.indexOf(a) >= TRIM_RANK.indexOf(b) ? a : b;
11
+ const fitMessage = (m) => {
12
+ const bounded = m.segments ? boundSegments(m.segments) : null;
13
+ return {
14
+ message: {
15
+ ...m,
16
+ content: truncateToCap(m.content, MAX_CONTENT_CHARS),
17
+ ...(bounded ? { segments: bounded.segments } : {}),
18
+ },
19
+ contentTruncated: m.content.length > MAX_CONTENT_CHARS,
20
+ segmentTrim: bounded?.trim ?? "none",
21
+ };
22
+ };
23
+ const fitTurnBody = (body) => {
24
+ const fitted = body.messages.map(fitMessage);
25
+ return {
26
+ body: { ...body, messages: fitted.map((f) => f.message) },
27
+ contentTruncated: fitted.some((f) => f.contentTruncated),
28
+ segmentTrim: fitted
29
+ .map((f) => f.segmentTrim)
30
+ .reduce(heavier, "none"),
31
+ };
32
+ };
33
+ export { fitTurnBody };
34
+ //# sourceMappingURL=fit-turn-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fit-turn-body.js","sourceRoot":"","sources":["../../../../src/commands/ingest/_utils/fit-turn-body.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAOhE,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC,MAAM,SAAS,GAA2B;IACxC,MAAM;IACN,WAAW;IACX,QAAQ;IACR,SAAS;CACV,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,CAAc,EAAE,CAAc,EAAe,EAAE,CAC9D,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvD,MAAM,UAAU,GAAG,CAAC,CAAU,EAAE,EAAE;IAChC,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,OAAO;QACL,OAAO,EAAE;YACP,GAAG,CAAC;YACJ,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,iBAAiB,CAAC;YACpD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnD;QACD,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,iBAAiB;QACtD,WAAW,EAAE,OAAO,EAAE,IAAI,IAAK,MAAgB;KAChD,CAAC;AACJ,CAAC,CAAC;AAGF,MAAM,WAAW,GAAG,CAAC,IAAe,EAAE,EAAE;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO;QACL,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;QACzD,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACxD,WAAW,EAAE,MAAM;aAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;aACzB,MAAM,CAAc,OAAO,EAAE,MAAM,CAAC;KACxC,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -14,9 +14,8 @@ import { hookProfile } from "../../core/run/hook-profile.js";
14
14
  import { refreshControlState } from "../../clients/glen-api/refresh-control-state.js";
15
15
  import { err, ok } from "../../core/errors/result.js";
16
16
  import { sessionMap } from "../../core/state/session-map.js";
17
- import { rememberStateLine } from "../../core/state/state-line-memo.js";
17
+ import { sessionMemo } from "../../core/state/session-memo.js";
18
18
  import { formatStateLine } from "../../core/state/state-line.js";
19
- import { pausedLine } from "../../core/state/paused-line.js";
20
19
  import { glenState } from "../../core/state/state.js";
21
20
  import { syncModeFromServer } from "../../clients/glen-api/sync-mode-from-server.js";
22
21
  import { recordEvent } from "../../core/telemetry/record-event.js";
@@ -25,14 +24,46 @@ import { selfUpdate } from "../../clients/npm/update.js";
25
24
  import { cliVersion } from "../../core/system/version.js";
26
25
  import { adaptAgentEvent } from "./_utils/agent-adapter.js";
27
26
  import { buildTurnBody } from "./_utils/build-turn-body.js";
27
+ import { fitTurnBody } from "./_utils/fit-turn-body.js";
28
28
  import { formatTurnNudges } from "./_utils/format-turn-nudges.js";
29
- import { recordIngestCaptureOutcome } from "./_utils/ingest-failure-memo.js";
30
29
  import { parseTranscript } from "./_utils/parse-transcript.js";
31
30
  import { turnCache } from "./_utils/turn-cache.js";
32
31
  import { ingestOptions } from "./ingest.options.js";
33
32
  import { idempotencyKey } from "../../clients/agents/idempotency-key.js";
34
33
  import { textField } from "../../core/json/text-field.js";
34
+ import { fixes } from "../../core/errors/fixes.js";
35
+ import { failsUntilFixed } from "../_utils/fails-until-fixed.js";
35
36
  const INGEST_TIMEOUT_MS = 8000;
37
+ const TRIM_REMEDY = "nothing to do: the turn was saved without the oversized part";
38
+ const SEGMENT_TRIM_EVENTS = {
39
+ none: null,
40
+ truncated: cliErr("Contract", {
41
+ code: "ingest.turn_segments_truncated",
42
+ what: "cut a turn block over the server's size limit",
43
+ remedy: TRIM_REMEDY,
44
+ }),
45
+ shrunk: cliErr("Contract", {
46
+ code: "ingest.turn_segments_shrunk",
47
+ what: "shortened a turn's blocks to fit the server's size limit",
48
+ remedy: TRIM_REMEDY,
49
+ }),
50
+ dropped: cliErr("Contract", {
51
+ code: "ingest.turn_segments_dropped",
52
+ what: "dropped some of a turn's blocks to fit the server's size limit",
53
+ remedy: TRIM_REMEDY,
54
+ }),
55
+ };
56
+ const recordTurnTrims = (fitted) => {
57
+ if (fitted.contentTruncated)
58
+ recordEvent("warn", cliErr("Contract", {
59
+ code: "ingest.turn_content_truncated",
60
+ what: "cut a turn message over the server's size limit",
61
+ remedy: TRIM_REMEDY,
62
+ }));
63
+ const segmentEvent = SEGMENT_TRIM_EVENTS[fitted.segmentTrim];
64
+ if (segmentEvent)
65
+ recordEvent("warn", segmentEvent);
66
+ };
36
67
  const str = (v) => (typeof v === "string" ? v : null);
37
68
  const readEvent = async (agent) => hookProfile(agent).eventSource === "jcode"
38
69
  ? ok(await jcodeEvent.readStop())
@@ -40,7 +71,7 @@ const readEvent = async (agent) => hookProfile(agent).eventSource === "jcode"
40
71
  code: "ingest.invalid_event",
41
72
  what: "the hook event on stdin is not a JSON object",
42
73
  cause,
43
- remedy: "update glen and the agent's glen plugin (`glen update`)",
74
+ remedy: fixes.updatePlugin,
44
75
  }));
45
76
  const normalizeCursor = (event) => {
46
77
  const conversationId = field(event, "conversation_id");
@@ -111,16 +142,31 @@ const makeEmitters = (context, hookEventName, stopReviewHint) => {
111
142
  },
112
143
  });
113
144
  };
145
+ const emitNotice = (text) => {
146
+ out.hookNotice(text.replace(/^\[glen\] /, ""));
147
+ emitStop("");
148
+ };
114
149
  const emitHint = (text) => {
115
- if (hookEventName === "Stop") {
116
- out.hookNotice(text.replace(/^\[glen\] /, ""));
117
- emitStop("");
118
- }
150
+ if (hookEventName === "Stop")
151
+ emitNotice(text);
119
152
  else
120
153
  emit(text);
121
154
  };
122
- return { emit, emitStop, emitHint };
155
+ const hintAudience = () => hookEventName === "Stop" ? "user" : silent ? null : "agent";
156
+ return { emit, emitStop, emitHint, emitNotice, hintAudience };
123
157
  };
158
+ const hintOnce = async (emitters, sessionId, text) => {
159
+ const audience = emitters.hintAudience();
160
+ const fresh = audience
161
+ ? await sessionMemo.rememberNotice(sessionId, `${audience}:${text}`)
162
+ : ok(false);
163
+ noteIfErr(fresh);
164
+ if (!fresh.ok || fresh.value)
165
+ emitters.emitHint(text);
166
+ else
167
+ emitters.emitStop("");
168
+ };
169
+ const NOT_CONNECTED = `[glen] not connected: ${fixes.login}`;
124
170
  const additionalContextOf = (agentName, cwd, sessionFields) => {
125
171
  const workspace = gitContext(cwd);
126
172
  return {
@@ -262,50 +308,47 @@ const saveRecordingPaused = async (state, paused) => {
262
308
  return ok(undefined);
263
309
  const saved = state.recordingPaused ?? null;
264
310
  if (saved?.limit === paused?.limit &&
265
- saved?.upgradeUrl === paused?.upgradeUrl)
311
+ saved?.upgradeUrl === paused?.upgradeUrl &&
312
+ saved?.message === paused?.message)
266
313
  return ok(undefined);
267
314
  return glenState.write({ ...state, recordingPaused: paused });
268
315
  };
269
- const handleTurnFailure = async (e, ctx) => {
270
- if (e.code === "api.cli_outdated") {
271
- noteIfErr(await ingestHeartbeat.recordOutcome(ctx.heartbeatAgent, "426"));
272
- ctx.emitters.emitHint(e.remedy.startsWith("glen is updating")
316
+ const lastingFailureNotice = (e) => {
317
+ if (e.code === "api.cli_outdated")
318
+ return e.remedy.startsWith("glen is updating")
273
319
  ? "[glen] glen is updating itself in the background. This turn was not recorded; retry your prompt in a minute."
274
- : "[glen] glen needs an update before memories can be captured. Tell the user to run `glen update` (or `npm i -g @tryglen/cli@latest`).");
275
- return err(e);
276
- }
277
- if (e.code === "api.not_allowed") {
278
- noteIfErr(await ingestHeartbeat.recordOutcome(ctx.heartbeatAgent, "failure"));
279
- const line = `[glen] ${e.what} To fix: ${e.remedy}`;
280
- const fresh = await rememberStateLine(ctx.sessionId, line);
281
- noteIfErr(fresh);
282
- if (!fresh.ok || fresh.value)
283
- ctx.emitters.emitHint(line);
320
+ : `[glen] glen needs an update before memories can be captured. Tell the user to ${fixes.update}.`;
321
+ if (e.code === "api.not_connected")
322
+ return NOT_CONNECTED;
323
+ if (e.code === "api.no_active_org")
324
+ return `[glen] no active organization: ${fixes.orgSwitch}`;
325
+ if (e.httpStatus === 401)
326
+ return `[glen] ACTION NEEDED: this machine's glen connection expired or was revoked, so memories are NOT being captured. Tell the user to ${fixes.login} to reconnect.${updateAddendum()}`;
327
+ return `[glen] ${/[.!?]$/.test(e.what) ? e.what : `${e.what}.`} ${e.remedy}`;
328
+ };
329
+ const handleTurnFailure = async (e, ctx) => {
330
+ if (failsUntilFixed(e)) {
331
+ noteIfErr(await ingestHeartbeat.recordOutcome(ctx.heartbeatAgent, e.code === "api.cli_outdated" ? "426" : "auth"));
332
+ const text = lastingFailureNotice(e);
333
+ if (e.httpStatus === 401 && e.code !== "api.no_active_org")
334
+ ctx.emitters.emitHint(text);
284
335
  else
285
- ctx.emitters.emitStop("");
286
- return err(e);
287
- }
288
- if (e.httpStatus === 401 || e.httpStatus === 403) {
289
- noteIfErr(await ingestHeartbeat.recordOutcome(ctx.heartbeatAgent, "auth"));
290
- if (e.code === "api.no_active_org") {
291
- out.hookNotice("no active organization: run `glen org switch`");
292
- ctx.emitters.emitHint("[glen] no active organization: run `glen org switch`");
293
- return err(e);
294
- }
295
- ctx.emitters.emitHint(`[glen] ACTION NEEDED: this machine's glen connection expired or was revoked, so memories are NOT being captured. Tell the user to run \`glen login\` to reconnect.${updateAddendum()}`);
336
+ await hintOnce(ctx.emitters, ctx.sessionId, text);
296
337
  return err(e);
297
338
  }
298
339
  if (e.code === "api.unexpected_response") {
299
- noteIfErr(await recordIngestCaptureOutcome(ctx.sessionId, "success"));
340
+ noteIfErr(await sessionMemo.recordCaptureOutcome(ctx.sessionId, "success"));
300
341
  noteIfErr(await ingestHeartbeat.recordOutcome(ctx.heartbeatAgent, "success"));
301
342
  ctx.emitters.emitStop("");
302
343
  return err(e);
303
344
  }
304
345
  noteIfErr(await ingestHeartbeat.recordOutcome(ctx.heartbeatAgent, "failure"));
305
- const warn = await recordIngestCaptureOutcome(ctx.sessionId, "failure");
346
+ const warn = await sessionMemo.recordCaptureOutcome(ctx.sessionId, "failure");
306
347
  noteIfErr(warn);
307
348
  if (warn.ok && warn.value)
308
- out.hookNotice("memory capture is temporarily unavailable; continuing without it. Run `glen status` if this continues.");
349
+ ctx.emitters.emitNotice("memory capture is temporarily unavailable; continuing without it. Run `glen status` if this continues.");
350
+ else
351
+ ctx.emitters.emitStop("");
309
352
  return err(e);
310
353
  };
311
354
  const ingest = ingestOptions.handle(async ({ agent: agentName }) => {
@@ -330,7 +373,7 @@ const ingest = ingestOptions.handle(async ({ agent: agentName }) => {
330
373
  const heartbeatAgent = agentName ?? "unknown";
331
374
  noteIfErr(await ingestHeartbeat.recordRun(heartbeatAgent));
332
375
  if (!(await credentials.read())) {
333
- makeEmitters(profile.ingestContext, hookEventName, "").emit("[glen] not connected: run `glen login`");
376
+ await hintOnce(makeEmitters(profile.ingestContext, hookEventName, ""), sessionId, NOT_CONNECTED);
334
377
  return ok(undefined);
335
378
  }
336
379
  const localState = await glenState.read();
@@ -382,7 +425,9 @@ const ingest = ingestOptions.handle(async ({ agent: agentName }) => {
382
425
  emitters.emitStop("");
383
426
  return ok(undefined);
384
427
  }
385
- const turn = await callGlen("turn", body, {
428
+ const fitted = fitTurnBody(body);
429
+ recordTurnTrims(fitted);
430
+ const turn = await callGlen("turn", fitted.body, {
386
431
  timeoutMs: INGEST_TIMEOUT_MS,
387
432
  context: "hook",
388
433
  });
@@ -392,17 +437,17 @@ const ingest = ingestOptions.handle(async ({ agent: agentName }) => {
392
437
  heartbeatAgent,
393
438
  emitters,
394
439
  });
395
- noteIfErr(await recordIngestCaptureOutcome(sessionId, "success"));
440
+ noteIfErr(await sessionMemo.recordCaptureOutcome(sessionId, "success"));
396
441
  noteIfErr(await ingestHeartbeat.recordOutcome(heartbeatAgent, "success"));
397
442
  const effectiveState = (await syncModeFromServer(turn.value)) ?? state;
398
443
  const paused = turn.value.recordingPaused ?? null;
399
444
  noteIfErr(await saveRecordingPaused(effectiveState, paused));
400
445
  const stateLine = formatStateLine(effectiveState && { ...effectiveState, recordingPaused: paused });
401
446
  const memoLine = stateLine !== null && paused
402
- ? `${stateLine}\n${pausedLine(paused)}`
447
+ ? `${stateLine}\n${paused.message}`
403
448
  : stateLine;
404
449
  const remembered = memoLine !== null && hookEventName !== "Stop"
405
- ? await rememberStateLine(sessionId, memoLine)
450
+ ? await sessionMemo.rememberStateLine(sessionId, memoLine)
406
451
  : ok(false);
407
452
  noteIfErr(remembered);
408
453
  const stateLineChanged = remembered.ok ? remembered.value : true;