jfl 0.2.5 → 0.4.2

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 (133) hide show
  1. package/README.md +308 -28
  2. package/dist/commands/context-hub.d.ts.map +1 -1
  3. package/dist/commands/context-hub.js +428 -27
  4. package/dist/commands/context-hub.js.map +1 -1
  5. package/dist/commands/eval.d.ts +6 -0
  6. package/dist/commands/eval.d.ts.map +1 -0
  7. package/dist/commands/eval.js +236 -0
  8. package/dist/commands/eval.js.map +1 -0
  9. package/dist/commands/flows.d.ts +4 -1
  10. package/dist/commands/flows.d.ts.map +1 -1
  11. package/dist/commands/flows.js +160 -1
  12. package/dist/commands/flows.js.map +1 -1
  13. package/dist/commands/init.d.ts.map +1 -1
  14. package/dist/commands/init.js +272 -145
  15. package/dist/commands/init.js.map +1 -1
  16. package/dist/commands/peter.d.ts.map +1 -1
  17. package/dist/commands/peter.js +220 -1
  18. package/dist/commands/peter.js.map +1 -1
  19. package/dist/commands/pi.d.ts +21 -0
  20. package/dist/commands/pi.d.ts.map +1 -0
  21. package/dist/commands/pi.js +154 -0
  22. package/dist/commands/pi.js.map +1 -0
  23. package/dist/commands/portfolio.d.ts +6 -0
  24. package/dist/commands/portfolio.d.ts.map +1 -0
  25. package/dist/commands/portfolio.js +249 -0
  26. package/dist/commands/portfolio.js.map +1 -0
  27. package/dist/commands/predict.d.ts +6 -0
  28. package/dist/commands/predict.d.ts.map +1 -0
  29. package/dist/commands/predict.js +234 -0
  30. package/dist/commands/predict.js.map +1 -0
  31. package/dist/commands/scope.d.ts +1 -0
  32. package/dist/commands/scope.d.ts.map +1 -1
  33. package/dist/commands/scope.js +189 -2
  34. package/dist/commands/scope.js.map +1 -1
  35. package/dist/commands/synopsis.d.ts +44 -0
  36. package/dist/commands/synopsis.d.ts.map +1 -1
  37. package/dist/commands/synopsis.js +1 -1
  38. package/dist/commands/synopsis.js.map +1 -1
  39. package/dist/commands/update.d.ts.map +1 -1
  40. package/dist/commands/update.js +49 -1
  41. package/dist/commands/update.js.map +1 -1
  42. package/dist/commands/viz.d.ts +7 -0
  43. package/dist/commands/viz.d.ts.map +1 -0
  44. package/dist/commands/viz.js +460 -0
  45. package/dist/commands/viz.js.map +1 -0
  46. package/dist/commands/voice.js.map +1 -1
  47. package/dist/dashboard/index.d.ts +4 -5
  48. package/dist/dashboard/index.d.ts.map +1 -1
  49. package/dist/dashboard/index.js +57 -119
  50. package/dist/dashboard/index.js.map +1 -1
  51. package/dist/dashboard-static/assets/index-B6kRK9Rq.js +116 -0
  52. package/dist/dashboard-static/assets/index-BpdKJPLu.css +1 -0
  53. package/dist/dashboard-static/index.html +16 -0
  54. package/dist/index.js +120 -20
  55. package/dist/index.js.map +1 -1
  56. package/dist/lib/eval-store.d.ts +15 -0
  57. package/dist/lib/eval-store.d.ts.map +1 -0
  58. package/dist/lib/eval-store.js +179 -0
  59. package/dist/lib/eval-store.js.map +1 -0
  60. package/dist/lib/flow-engine.d.ts +13 -0
  61. package/dist/lib/flow-engine.d.ts.map +1 -1
  62. package/dist/lib/flow-engine.js +164 -3
  63. package/dist/lib/flow-engine.js.map +1 -1
  64. package/dist/lib/hub-client.d.ts +80 -0
  65. package/dist/lib/hub-client.d.ts.map +1 -0
  66. package/dist/lib/hub-client.js +46 -0
  67. package/dist/lib/hub-client.js.map +1 -0
  68. package/dist/lib/predictor.d.ts +99 -0
  69. package/dist/lib/predictor.d.ts.map +1 -0
  70. package/dist/lib/predictor.js +394 -0
  71. package/dist/lib/predictor.js.map +1 -0
  72. package/dist/lib/service-gtm.d.ts +88 -44
  73. package/dist/lib/service-gtm.d.ts.map +1 -1
  74. package/dist/lib/service-gtm.js +451 -243
  75. package/dist/lib/service-gtm.js.map +1 -1
  76. package/dist/lib/telemetry-agent.d.ts +57 -0
  77. package/dist/lib/telemetry-agent.d.ts.map +1 -0
  78. package/dist/lib/telemetry-agent.js +268 -0
  79. package/dist/lib/telemetry-agent.js.map +1 -0
  80. package/dist/lib/telemetry-digest.d.ts.map +1 -1
  81. package/dist/lib/telemetry-digest.js +17 -17
  82. package/dist/lib/telemetry-digest.js.map +1 -1
  83. package/dist/lib/telemetry.d.ts +1 -0
  84. package/dist/lib/telemetry.d.ts.map +1 -1
  85. package/dist/lib/telemetry.js +14 -6
  86. package/dist/lib/telemetry.js.map +1 -1
  87. package/dist/lib/trajectory-loader.d.ts +82 -0
  88. package/dist/lib/trajectory-loader.d.ts.map +1 -0
  89. package/dist/lib/trajectory-loader.js +406 -0
  90. package/dist/lib/trajectory-loader.js.map +1 -0
  91. package/dist/mcp/context-hub-mcp.js +60 -0
  92. package/dist/mcp/context-hub-mcp.js.map +1 -1
  93. package/dist/mcp/service-registry-mcp.js +0 -0
  94. package/dist/types/eval.d.ts +18 -0
  95. package/dist/types/eval.d.ts.map +1 -0
  96. package/dist/types/eval.js +5 -0
  97. package/dist/types/eval.js.map +1 -0
  98. package/dist/types/journal.d.ts +133 -0
  99. package/dist/types/journal.d.ts.map +1 -0
  100. package/dist/types/journal.js +59 -0
  101. package/dist/types/journal.js.map +1 -0
  102. package/dist/types/map.d.ts +1 -1
  103. package/dist/types/map.d.ts.map +1 -1
  104. package/dist/types/map.js.map +1 -1
  105. package/dist/ui/service-dashboard.js.map +1 -1
  106. package/dist/utils/jfl-paths.d.ts +1 -0
  107. package/dist/utils/jfl-paths.d.ts.map +1 -1
  108. package/dist/utils/jfl-paths.js +1 -0
  109. package/dist/utils/jfl-paths.js.map +1 -1
  110. package/dist/utils/wallet.js.map +1 -1
  111. package/package.json +7 -2
  112. package/scripts/generate-changesets.sh +113 -0
  113. package/scripts/migrate-to-branch-sessions.sh +201 -0
  114. package/scripts/pp-branch-pr.sh +115 -0
  115. package/scripts/session/session-cleanup.sh +29 -14
  116. package/scripts/session/session-end.sh +0 -10
  117. package/scripts/session/session-init.sh +0 -16
  118. package/scripts/session/session-sync.sh +0 -10
  119. package/template/.jfl/flows-self-driving.yaml +170 -0
  120. package/template/THEORY.md +26 -0
  121. package/template/scripts/session/session-cleanup.sh +28 -10
  122. package/dist/dashboard/components.d.ts +0 -7
  123. package/dist/dashboard/components.d.ts.map +0 -1
  124. package/dist/dashboard/components.js +0 -163
  125. package/dist/dashboard/components.js.map +0 -1
  126. package/dist/dashboard/pages.d.ts +0 -7
  127. package/dist/dashboard/pages.d.ts.map +0 -1
  128. package/dist/dashboard/pages.js +0 -742
  129. package/dist/dashboard/pages.js.map +0 -1
  130. package/dist/dashboard/styles.d.ts +0 -7
  131. package/dist/dashboard/styles.d.ts.map +0 -1
  132. package/dist/dashboard/styles.js +0 -497
  133. package/dist/dashboard/styles.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAA;AAsB5E,cAAM,eAAe;IACnB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,qBAAqB,CAAQ;IAErC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,IAAI;IA0B1F,OAAO,CAAC,IAAI;IA+DZ,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,UAAU;IAsBZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4C5B,OAAO,CAAC,SAAS;IAQjB,OAAO,KAAK,aAAa,GAExB;IAED,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,aAAa;IAyBrB,SAAS,IAAI,OAAO;IAKpB,YAAY,IAAI,MAAM;IAKtB,YAAY,IAAI,MAAM;IAKtB,YAAY,IAAI,MAAM;IAItB,kBAAkB,IAAI,cAAc,EAAE;IAatC,OAAO,IAAI,IAAI;IAWf,MAAM,IAAI,IAAI;IAYd,cAAc,IAAI,IAAI;CAMvB;AAGD,eAAO,MAAM,SAAS,iBAAwB,CAAA"}
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAA;AAsB5E,cAAM,eAAe;IACnB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,qBAAqB,CAAQ;IAErC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,IAAI;IA0B1F,OAAO,CAAC,IAAI;IA+DZ,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,UAAU;IAsBZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C5B,OAAO,CAAC,SAAS;IAOjB,OAAO,KAAK,aAAa,GAExB;IAED,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,aAAa;IAyBrB,SAAS,IAAI,OAAO;IAKpB,YAAY,IAAI,MAAM;IAKtB,YAAY,IAAI,MAAM;IAKtB,YAAY,IAAI,MAAM;IAItB,kBAAkB,IAAI,cAAc,EAAE;IAatC,OAAO,IAAI,IAAI;IAWf,MAAM,IAAI,IAAI;IAYd,cAAc,IAAI,IAAI;CAMvB;AAGD,eAAO,MAAM,SAAS,iBAAwB,CAAA"}
@@ -163,6 +163,7 @@ class TelemetryClient {
163
163
  return;
164
164
  this.flushing = true;
165
165
  const batch = this.queue.splice(0, BATCH_SIZE);
166
+ this.archiveLocally(batch);
166
167
  const url = process.env.JFL_PLATFORM_URL
167
168
  ? `${process.env.JFL_PLATFORM_URL}/api/v1/telemetry/ingest`
168
169
  : INGEST_URL_DEFAULT;
@@ -177,22 +178,18 @@ class TelemetryClient {
177
178
  signal: AbortSignal.timeout(5_000),
178
179
  });
179
180
  if (response.status === 401) {
180
- // Disable for remainder of process
181
181
  this.disabled = true;
182
182
  return;
183
183
  }
184
184
  if (response.status === 429) {
185
- // Re-queue with backoff — just push back for next cycle
186
185
  this.queue.unshift(...batch);
187
186
  return;
188
187
  }
189
188
  if (!response.ok) {
190
- // Spillover to disk
191
189
  this.spillToDisk(batch);
192
190
  }
193
191
  }
194
192
  catch {
195
- // Network failure → spillover
196
193
  this.spillToDisk(batch);
197
194
  }
198
195
  finally {
@@ -202,14 +199,25 @@ class TelemetryClient {
202
199
  flushSync() {
203
200
  if (this.queue.length === 0)
204
201
  return;
205
- // On process exit, we can't reliably complete async network calls.
206
- // Spill to disk — the next process will load and flush these.
207
202
  const batch = this.queue.splice(0);
203
+ this.archiveLocally(batch);
208
204
  this.spillToDisk(batch);
209
205
  }
210
206
  get spilloverPath() {
211
207
  return JFL_FILES.telemetryQueue;
212
208
  }
209
+ archiveLocally(events) {
210
+ try {
211
+ const archivePath = JFL_FILES.telemetryArchive;
212
+ const dir = dirname(archivePath);
213
+ if (!existsSync(dir)) {
214
+ mkdirSync(dir, { recursive: true });
215
+ }
216
+ const lines = events.map(e => JSON.stringify(e)).join('\n') + '\n';
217
+ appendFileSync(archivePath, lines);
218
+ }
219
+ catch { }
220
+ }
213
221
  spillToDisk(events) {
214
222
  try {
215
223
  const dir = dirname(this.spilloverPath);
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Trajectory Loader
3
+ *
4
+ * Loads, filters, and renders journal trajectories for agent context windows.
5
+ * Journals are the replay buffer for in-context RL — this module makes them
6
+ * queryable and context-window-optimized.
7
+ *
8
+ * @purpose Load and render journal trajectories for in-context RL
9
+ */
10
+ import type { JournalEntry, ExperimentOutcome } from "../types/journal.js";
11
+ /**
12
+ * Query parameters for filtering trajectories
13
+ */
14
+ export interface TrajectoryQuery {
15
+ /** Filter by agent ID */
16
+ agent?: string;
17
+ /** Filter by experiments touching these files */
18
+ files?: string[];
19
+ /** Only include improvements above this threshold */
20
+ minDelta?: number;
21
+ /** Maximum age (e.g., "7d", "30d", "24h") */
22
+ maxAge?: string;
23
+ /** Filter by entry type (e.g., "experiment") */
24
+ type?: string;
25
+ /** Maximum entries to return */
26
+ limit?: number;
27
+ /** Filter by experiment outcome */
28
+ outcome?: ExperimentOutcome;
29
+ }
30
+ /**
31
+ * TrajectoryLoader class
32
+ *
33
+ * Loads journal entries from .jfl/journal/*.jsonl files,
34
+ * applies filters, and renders for LLM context windows.
35
+ */
36
+ export declare class TrajectoryLoader {
37
+ private projectRoot;
38
+ constructor(projectRoot: string);
39
+ /**
40
+ * Get the journal directory path
41
+ */
42
+ private get journalDir();
43
+ /**
44
+ * Load and filter journal entries
45
+ */
46
+ load(query?: TrajectoryQuery): JournalEntry[];
47
+ /**
48
+ * Render entries as markdown optimized for LLM context
49
+ *
50
+ * - Recent entries: full detail
51
+ * - Older entries: summary + learned only
52
+ * - Score deltas highlighted
53
+ * - Hypothesis → outcome pairs prominent
54
+ */
55
+ renderForContext(entries: JournalEntry[]): string;
56
+ /**
57
+ * Render a single entry with full detail
58
+ */
59
+ private renderEntryFull;
60
+ /**
61
+ * Render a single entry with summary only (for older entries)
62
+ */
63
+ private renderEntrySummary;
64
+ /**
65
+ * Remove duplicate entries based on diff_hash
66
+ */
67
+ deduplicate(entries: JournalEntry[]): JournalEntry[];
68
+ /**
69
+ * Get statistics about the trajectory history
70
+ */
71
+ getStats(): {
72
+ totalEntries: number;
73
+ byType: Record<string, number>;
74
+ byOutcome: Record<string, number>;
75
+ avgScoreDelta: number | null;
76
+ dateRange: {
77
+ earliest: string | null;
78
+ latest: string | null;
79
+ };
80
+ };
81
+ }
82
+ //# sourceMappingURL=trajectory-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trajectory-loader.d.ts","sourceRoot":"","sources":["../../src/lib/trajectory-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EACV,YAAY,EAEZ,iBAAiB,EAClB,MAAM,qBAAqB,CAAA;AAG5B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAEhB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,mCAAmC;IACnC,OAAO,CAAC,EAAE,iBAAiB,CAAA;CAC5B;AAyHD;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAQ;gBAEf,WAAW,EAAE,MAAM;IAI/B;;OAEG;IACH,OAAO,KAAK,UAAU,GAErB;IAED;;OAEG;IACH,IAAI,CAAC,KAAK,GAAE,eAAoB,GAAG,YAAY,EAAE;IA2FjD;;;;;;;OAOG;IACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM;IAsDjD;;OAEG;IACH,OAAO,CAAC,eAAe;IAmFvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiC1B;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE;IAgBpD;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;QAC5B,SAAS,EAAE;YAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAA;KAC9D;CA0CF"}
@@ -0,0 +1,406 @@
1
+ /**
2
+ * Trajectory Loader
3
+ *
4
+ * Loads, filters, and renders journal trajectories for agent context windows.
5
+ * Journals are the replay buffer for in-context RL — this module makes them
6
+ * queryable and context-window-optimized.
7
+ *
8
+ * @purpose Load and render journal trajectories for in-context RL
9
+ */
10
+ import { readFileSync, readdirSync, existsSync } from "fs";
11
+ import { join, basename } from "path";
12
+ import { createHash } from "crypto";
13
+ import { normalizeJournalEntry } from "../types/journal.js";
14
+ /**
15
+ * Parse a duration string like "7d", "24h", "30m" into milliseconds
16
+ */
17
+ function parseDuration(duration) {
18
+ const match = duration.match(/^(\d+)\s*([dhms])$/i);
19
+ if (!match) {
20
+ // Default to days if no unit
21
+ const days = parseInt(duration, 10);
22
+ if (!isNaN(days)) {
23
+ return days * 24 * 60 * 60 * 1000;
24
+ }
25
+ return 7 * 24 * 60 * 60 * 1000; // Default: 7 days
26
+ }
27
+ const value = parseInt(match[1], 10);
28
+ const unit = match[2].toLowerCase();
29
+ switch (unit) {
30
+ case "d":
31
+ return value * 24 * 60 * 60 * 1000;
32
+ case "h":
33
+ return value * 60 * 60 * 1000;
34
+ case "m":
35
+ return value * 60 * 1000;
36
+ case "s":
37
+ return value * 1000;
38
+ default:
39
+ return value * 24 * 60 * 60 * 1000;
40
+ }
41
+ }
42
+ /**
43
+ * Parse a JSONL journal file
44
+ */
45
+ function parseJournalFile(filePath) {
46
+ const results = [];
47
+ if (!existsSync(filePath))
48
+ return results;
49
+ let content;
50
+ try {
51
+ content = readFileSync(filePath, "utf-8");
52
+ }
53
+ catch {
54
+ return results;
55
+ }
56
+ const lines = content.split("\n");
57
+ for (let i = 0; i < lines.length; i++) {
58
+ const line = lines[i].trim();
59
+ if (!line)
60
+ continue;
61
+ try {
62
+ const parsed = JSON.parse(line);
63
+ const normalized = normalizeJournalEntry(parsed);
64
+ if (normalized) {
65
+ results.push({
66
+ entry: normalized,
67
+ file: filePath,
68
+ lineIndex: i,
69
+ });
70
+ }
71
+ }
72
+ catch {
73
+ // Skip malformed lines silently in production
74
+ }
75
+ }
76
+ return results;
77
+ }
78
+ /**
79
+ * Compute a hash for an entry's diff (for deduplication)
80
+ */
81
+ function computeEntryHash(entry) {
82
+ // If diff_hash already exists, use it
83
+ if (entry.diff_hash) {
84
+ return entry.diff_hash;
85
+ }
86
+ // Otherwise compute from content
87
+ const content = JSON.stringify({
88
+ title: entry.title,
89
+ files: entry.files,
90
+ detail: entry.detail,
91
+ });
92
+ return createHash("sha256").update(content).digest("hex").slice(0, 16);
93
+ }
94
+ /**
95
+ * Check if any query files overlap with entry files
96
+ */
97
+ function filesOverlap(queryFiles, entryFiles) {
98
+ if (!queryFiles.length || !entryFiles.length)
99
+ return false;
100
+ for (const qf of queryFiles) {
101
+ for (const ef of entryFiles) {
102
+ // Check if either path contains the other (handles partial paths)
103
+ if (ef.includes(qf) || qf.includes(ef)) {
104
+ return true;
105
+ }
106
+ // Check basename match
107
+ if (basename(ef) === basename(qf)) {
108
+ return true;
109
+ }
110
+ }
111
+ }
112
+ return false;
113
+ }
114
+ /**
115
+ * TrajectoryLoader class
116
+ *
117
+ * Loads journal entries from .jfl/journal/*.jsonl files,
118
+ * applies filters, and renders for LLM context windows.
119
+ */
120
+ export class TrajectoryLoader {
121
+ projectRoot;
122
+ constructor(projectRoot) {
123
+ this.projectRoot = projectRoot;
124
+ }
125
+ /**
126
+ * Get the journal directory path
127
+ */
128
+ get journalDir() {
129
+ return join(this.projectRoot, ".jfl", "journal");
130
+ }
131
+ /**
132
+ * Load and filter journal entries
133
+ */
134
+ load(query = {}) {
135
+ if (!existsSync(this.journalDir)) {
136
+ return [];
137
+ }
138
+ // Read all JSONL files
139
+ const files = readdirSync(this.journalDir).filter((f) => f.endsWith(".jsonl"));
140
+ if (files.length === 0) {
141
+ return [];
142
+ }
143
+ // Parse all entries
144
+ const allEntries = [];
145
+ for (const file of files) {
146
+ const filePath = join(this.journalDir, file);
147
+ const parsed = parseJournalFile(filePath);
148
+ allEntries.push(...parsed);
149
+ }
150
+ // Apply filters
151
+ let filtered = allEntries;
152
+ // Filter by agent
153
+ if (query.agent) {
154
+ filtered = filtered.filter((e) => e.entry.agent_id === query.agent);
155
+ }
156
+ // Filter by type
157
+ if (query.type) {
158
+ filtered = filtered.filter((e) => e.entry.type === query.type);
159
+ }
160
+ // Filter by outcome
161
+ if (query.outcome) {
162
+ filtered = filtered.filter((e) => e.entry.outcome === query.outcome);
163
+ }
164
+ // Filter by files
165
+ if (query.files && query.files.length > 0) {
166
+ filtered = filtered.filter((e) => e.entry.files && filesOverlap(query.files, e.entry.files));
167
+ }
168
+ // Filter by minimum score delta
169
+ if (query.minDelta !== undefined) {
170
+ filtered = filtered.filter((e) => e.entry.score_delta !== undefined &&
171
+ e.entry.score_delta >= query.minDelta);
172
+ }
173
+ // Filter by max age
174
+ if (query.maxAge) {
175
+ const maxAgeMs = parseDuration(query.maxAge);
176
+ const cutoff = Date.now() - maxAgeMs;
177
+ filtered = filtered.filter((e) => {
178
+ const entryTime = new Date(e.entry.ts).getTime();
179
+ return entryTime >= cutoff;
180
+ });
181
+ }
182
+ // Sort by timestamp descending, weighted by score_delta
183
+ filtered.sort((a, b) => {
184
+ const timeA = new Date(a.entry.ts).getTime();
185
+ const timeB = new Date(b.entry.ts).getTime();
186
+ // Primary sort: recency
187
+ const timeDiff = timeB - timeA;
188
+ // Secondary sort: absolute score delta (more significant changes first)
189
+ const deltaA = Math.abs(a.entry.score_delta || 0);
190
+ const deltaB = Math.abs(b.entry.score_delta || 0);
191
+ // Combine: time difference + delta weighting (delta worth up to 1 hour)
192
+ const weightedA = timeA + deltaA * 3600000;
193
+ const weightedB = timeB + deltaB * 3600000;
194
+ return weightedB - weightedA;
195
+ });
196
+ // Apply limit
197
+ const limit = query.limit || 100;
198
+ const limited = filtered.slice(0, limit);
199
+ return limited.map((e) => e.entry);
200
+ }
201
+ /**
202
+ * Render entries as markdown optimized for LLM context
203
+ *
204
+ * - Recent entries: full detail
205
+ * - Older entries: summary + learned only
206
+ * - Score deltas highlighted
207
+ * - Hypothesis → outcome pairs prominent
208
+ */
209
+ renderForContext(entries) {
210
+ if (entries.length === 0) {
211
+ return "No experiment history found.";
212
+ }
213
+ const lines = [];
214
+ lines.push("# Experiment History");
215
+ lines.push("");
216
+ lines.push(`Found ${entries.length} experiment${entries.length === 1 ? "" : "s"}.`);
217
+ lines.push("");
218
+ // Split into recent (last 7 days) and older
219
+ const now = Date.now();
220
+ const recentCutoff = now - 7 * 24 * 60 * 60 * 1000;
221
+ const recent = [];
222
+ const older = [];
223
+ for (const entry of entries) {
224
+ const entryTime = new Date(entry.ts).getTime();
225
+ if (entryTime >= recentCutoff) {
226
+ recent.push(entry);
227
+ }
228
+ else {
229
+ older.push(entry);
230
+ }
231
+ }
232
+ // Render recent entries with full detail
233
+ if (recent.length > 0) {
234
+ lines.push("## Recent (Last 7 Days)");
235
+ lines.push("");
236
+ for (const entry of recent) {
237
+ lines.push(this.renderEntryFull(entry));
238
+ lines.push("");
239
+ }
240
+ }
241
+ // Render older entries with summary only
242
+ if (older.length > 0) {
243
+ lines.push("## Earlier Experiments");
244
+ lines.push("");
245
+ for (const entry of older) {
246
+ lines.push(this.renderEntrySummary(entry));
247
+ lines.push("");
248
+ }
249
+ }
250
+ return lines.join("\n");
251
+ }
252
+ /**
253
+ * Render a single entry with full detail
254
+ */
255
+ renderEntryFull(entry) {
256
+ const lines = [];
257
+ // Header with type and date
258
+ const date = new Date(entry.ts).toISOString().split("T")[0];
259
+ const typeTag = `[${entry.type}]`;
260
+ const statusTag = entry.status !== "complete" ? ` (${entry.status})` : "";
261
+ lines.push(`### ${typeTag} ${entry.title}${statusTag}`);
262
+ lines.push(`*${date}*`);
263
+ // Score delta (highlighted)
264
+ if (entry.score_delta !== undefined) {
265
+ const sign = entry.score_delta >= 0 ? "+" : "";
266
+ const emoji = entry.score_delta > 0 ? "📈" : entry.score_delta < 0 ? "📉" : "➡️";
267
+ lines.push(`${emoji} **Score Delta: ${sign}${entry.score_delta.toFixed(4)}**`);
268
+ }
269
+ // Hypothesis → Outcome (prominent)
270
+ if (entry.hypothesis) {
271
+ lines.push("");
272
+ lines.push(`**Hypothesis:** ${entry.hypothesis}`);
273
+ if (entry.outcome) {
274
+ const outcomeEmoji = entry.outcome === "confirmed"
275
+ ? "✅"
276
+ : entry.outcome === "rejected"
277
+ ? "❌"
278
+ : "❓";
279
+ lines.push(`**Outcome:** ${outcomeEmoji} ${entry.outcome}`);
280
+ }
281
+ }
282
+ // Summary
283
+ lines.push("");
284
+ lines.push(entry.summary);
285
+ // Detail (if present)
286
+ if (entry.detail) {
287
+ lines.push("");
288
+ lines.push(entry.detail);
289
+ }
290
+ // Eval snapshot (if present)
291
+ if (entry.eval_snapshot && Object.keys(entry.eval_snapshot).length > 0) {
292
+ lines.push("");
293
+ lines.push("**Metrics:**");
294
+ for (const [metric, value] of Object.entries(entry.eval_snapshot)) {
295
+ lines.push(`- ${metric}: ${value}`);
296
+ }
297
+ }
298
+ // Files changed
299
+ if (entry.files && entry.files.length > 0) {
300
+ lines.push("");
301
+ lines.push("**Files:**");
302
+ for (const file of entry.files.slice(0, 5)) {
303
+ lines.push(`- ${file}`);
304
+ }
305
+ if (entry.files.length > 5) {
306
+ lines.push(`- ... and ${entry.files.length - 5} more`);
307
+ }
308
+ }
309
+ // Learnings
310
+ if (entry.learned && entry.learned.length > 0) {
311
+ lines.push("");
312
+ lines.push("**Learned:**");
313
+ for (const learning of entry.learned) {
314
+ lines.push(`- ${learning}`);
315
+ }
316
+ }
317
+ // Agent ID
318
+ if (entry.agent_id) {
319
+ lines.push("");
320
+ lines.push(`*Agent: ${entry.agent_id}*`);
321
+ }
322
+ return lines.join("\n");
323
+ }
324
+ /**
325
+ * Render a single entry with summary only (for older entries)
326
+ */
327
+ renderEntrySummary(entry) {
328
+ const lines = [];
329
+ const date = new Date(entry.ts).toISOString().split("T")[0];
330
+ // One-line summary with score delta
331
+ let summary = `- **${entry.title}** (${date})`;
332
+ if (entry.score_delta !== undefined) {
333
+ const sign = entry.score_delta >= 0 ? "+" : "";
334
+ summary += ` | Δ ${sign}${entry.score_delta.toFixed(3)}`;
335
+ }
336
+ if (entry.outcome) {
337
+ const outcomeEmoji = entry.outcome === "confirmed"
338
+ ? "✅"
339
+ : entry.outcome === "rejected"
340
+ ? "❌"
341
+ : "❓";
342
+ summary += ` ${outcomeEmoji}`;
343
+ }
344
+ lines.push(summary);
345
+ // Brief learned (first item only)
346
+ if (entry.learned && entry.learned.length > 0) {
347
+ lines.push(` *Learned: ${entry.learned[0]}*`);
348
+ }
349
+ return lines.join("\n");
350
+ }
351
+ /**
352
+ * Remove duplicate entries based on diff_hash
353
+ */
354
+ deduplicate(entries) {
355
+ const seen = new Set();
356
+ const unique = [];
357
+ for (const entry of entries) {
358
+ const hash = computeEntryHash(entry);
359
+ if (!seen.has(hash)) {
360
+ seen.add(hash);
361
+ unique.push(entry);
362
+ }
363
+ }
364
+ return unique;
365
+ }
366
+ /**
367
+ * Get statistics about the trajectory history
368
+ */
369
+ getStats() {
370
+ const entries = this.load({ limit: 10000 });
371
+ const byType = {};
372
+ const byOutcome = {};
373
+ let scoreDeltaSum = 0;
374
+ let scoreDeltaCount = 0;
375
+ let earliest = null;
376
+ let latest = null;
377
+ for (const entry of entries) {
378
+ // Count by type
379
+ byType[entry.type] = (byType[entry.type] || 0) + 1;
380
+ // Count by outcome
381
+ if (entry.outcome) {
382
+ byOutcome[entry.outcome] = (byOutcome[entry.outcome] || 0) + 1;
383
+ }
384
+ // Accumulate score deltas
385
+ if (entry.score_delta !== undefined) {
386
+ scoreDeltaSum += entry.score_delta;
387
+ scoreDeltaCount++;
388
+ }
389
+ // Track date range
390
+ if (!earliest || entry.ts < earliest) {
391
+ earliest = entry.ts;
392
+ }
393
+ if (!latest || entry.ts > latest) {
394
+ latest = entry.ts;
395
+ }
396
+ }
397
+ return {
398
+ totalEntries: entries.length,
399
+ byType,
400
+ byOutcome,
401
+ avgScoreDelta: scoreDeltaCount > 0 ? scoreDeltaSum / scoreDeltaCount : null,
402
+ dateRange: { earliest, latest },
403
+ };
404
+ }
405
+ }
406
+ //# sourceMappingURL=trajectory-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trajectory-loader.js","sourceRoot":"","sources":["../../src/lib/trajectory-loader.ts"],"names":[],"mappings":"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"}