agentfootprint-lens 0.74.0 → 0.76.0

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 (59) hide show
  1. package/README.md +21 -9
  2. package/dist/{Lens-dAaGjB6z.d.ts → Lens-FVBHKZou.d.ts} +3 -3
  3. package/dist/{Lens-v6JPZWcg.d.cts → Lens-Ug9ij4ZZ.d.cts} +3 -3
  4. package/dist/{chunk-FTQQVU7X.js → chunk-4XZSVUOY.js} +4 -4
  5. package/dist/chunk-4XZSVUOY.js.map +1 -0
  6. package/dist/{chunk-D22Q5SDX.js → chunk-6LF5TBLT.js} +4 -3
  7. package/dist/chunk-6LF5TBLT.js.map +1 -0
  8. package/dist/{chunk-RJAQOXMH.js → chunk-75UFY2VV.js} +11 -7
  9. package/dist/{chunk-RJAQOXMH.js.map → chunk-75UFY2VV.js.map} +1 -1
  10. package/dist/{chunk-6GTISZYA.js → chunk-A7ZG7JJ3.js} +2 -2
  11. package/dist/chunk-A7ZG7JJ3.js.map +1 -0
  12. package/dist/{chunk-GCGVODXR.js → chunk-MXJRX72Y.js} +4 -4
  13. package/dist/{chunk-6II3EUOJ.js → chunk-PBXWVC4G.js} +8 -7
  14. package/dist/chunk-PBXWVC4G.js.map +1 -0
  15. package/dist/{chunk-NSTKBU5V.js → chunk-VWNU7GHG.js} +3 -3
  16. package/dist/chunk-VWNU7GHG.js.map +1 -0
  17. package/dist/context.cjs +8 -7
  18. package/dist/context.cjs.map +1 -1
  19. package/dist/context.d.cts +5 -5
  20. package/dist/context.d.ts +5 -5
  21. package/dist/context.js +4 -4
  22. package/dist/{contextAt-BcT4UYlI.d.cts → contextAt-B0_-8JQc.d.cts} +2 -2
  23. package/dist/{contextAt-DxDAvgZ5.d.ts → contextAt-BiEkxzSE.d.ts} +2 -2
  24. package/dist/core.cjs +35 -29
  25. package/dist/core.cjs.map +1 -1
  26. package/dist/core.d.cts +17 -16
  27. package/dist/core.d.ts +17 -16
  28. package/dist/core.js +4 -4
  29. package/dist/{index-TilViQvd.d.ts → index-5pDIAK3K.d.ts} +3 -3
  30. package/dist/{index-9TfT51FK.d.cts → index-x1feH3z6.d.cts} +3 -3
  31. package/dist/index.cjs +35 -29
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.cts +17 -17
  34. package/dist/index.d.ts +17 -17
  35. package/dist/index.js +7 -7
  36. package/dist/{lensCursorPort-nD3C6iQs.d.ts → lensCursorPort-D01BNsXp.d.cts} +3 -3
  37. package/dist/{lensCursorPort-nD3C6iQs.d.cts → lensCursorPort-D01BNsXp.d.ts} +3 -3
  38. package/dist/{selectSkillFrameContext-BZd5omLC.d.cts → selectSkillFrameContext-BCRxQKD3.d.cts} +1 -1
  39. package/dist/{selectSkillFrameContext-BbMpx_lQ.d.ts → selectSkillFrameContext-DIhAHBSo.d.ts} +1 -1
  40. package/dist/skillgraph.d.cts +7 -7
  41. package/dist/skillgraph.d.ts +7 -7
  42. package/dist/{stepForRuntimeStageId-CKQuUOyK.d.ts → stepForRuntimeStageId-DWPU9588.d.ts} +1 -1
  43. package/dist/{stepForRuntimeStageId-BLB9h1lR.d.cts → stepForRuntimeStageId-Py7g6FBg.d.cts} +1 -1
  44. package/dist/{tagAxis-Cgk6vlcY.d.ts → tagAxis-D6pWV7dY.d.cts} +4 -4
  45. package/dist/{tagAxis-COX6o7DJ.d.cts → tagAxis-Di2Cx6wU.d.ts} +4 -4
  46. package/dist/{useSharedCursor-DJTQSH0y.d.cts → useSharedCursor-BJWuvphY.d.cts} +1 -1
  47. package/dist/{useSharedCursor-BdzFNO_C.d.ts → useSharedCursor-Bbg_9Adf.d.ts} +1 -1
  48. package/dist/why.cjs +16 -15
  49. package/dist/why.cjs.map +1 -1
  50. package/dist/why.d.cts +8 -8
  51. package/dist/why.d.ts +8 -8
  52. package/dist/why.js +4 -4
  53. package/package.json +5 -3
  54. package/dist/chunk-6GTISZYA.js.map +0 -1
  55. package/dist/chunk-6II3EUOJ.js.map +0 -1
  56. package/dist/chunk-D22Q5SDX.js.map +0 -1
  57. package/dist/chunk-FTQQVU7X.js.map +0 -1
  58. package/dist/chunk-NSTKBU5V.js.map +0 -1
  59. /package/dist/{chunk-GCGVODXR.js.map → chunk-MXJRX72Y.js.map} +0 -0
package/README.md CHANGED
@@ -27,7 +27,7 @@ agentfootprint = **2 primitives (LLM, Agent) + 3 compositions (Sequence, Paralle
27
27
  ## 30-second quick start
28
28
 
29
29
  ```bash
30
- npm install agentfootprint agentfootprint-lens
30
+ npm install agentfootprint agentfootprint-lens footprintjs foottrace
31
31
  ```
32
32
 
33
33
  Lens requires `footprint-explainable-ui >=0.34.0 <1.0.0`. Earlier versions
@@ -35,6 +35,12 @@ lack renderer APIs used by Lens even if an older peer range accepted them.
35
35
  The minimum and current tested renderer versions are checked with packed
36
36
  installs on both React 18 and React 19; an import failure fails the check.
37
37
 
38
+ Node.js 22 or newer is required, matching the `foottrace ^1.0.0` peer that
39
+ owns record reading. Both `footprintjs ^9.26.0 || ^10.0.0` and
40
+ `agentfootprint ^9.116.0 || ^10.0.0` remain supported. Engine recorders stay
41
+ on FootPrint; saved-record readers come from Foottrace. Lens's public exports,
42
+ recorded data, and cursor behavior are unchanged.
43
+
38
44
  ```tsx
39
45
  import { useMemo } from 'react';
40
46
  import { Agent } from 'agentfootprint';
@@ -901,7 +907,7 @@ dashboard had a third — and they disagreed at exactly the places nobody tests:
901
907
  ▶ at the last stop, a jump to a stage that is not on this ruler, a step stored
902
908
  from a longer run.
903
909
 
904
- footprintjs 9.17 owns that arithmetic now. `timeTravel(snapshot, { strategy })`
910
+ Foottrace owns that arithmetic now (introduced in footprintjs 9.17). `timeTravel(snapshot, { strategy })`
905
911
  is the **reader's cursor over a finished trace**: `first` / `last` / `prev` /
906
912
  `next` / `jumpTo`, one position, and one law — **a refused move never moves the
907
913
  cursor**, it returns the reason and the nearest stop it could name. Since
@@ -954,7 +960,7 @@ fold wants the run's snapshot — which movement never reads. Want them over thi
954
960
  same ruler? Build the library's cursor directly, with the lens's stops:
955
961
 
956
962
  ```ts
957
- import { timeTravel } from 'footprintjs/trace';
963
+ import { timeTravel } from 'foottrace';
958
964
  import { scrubAxisFor, lensStopsStrategy } from 'agentfootprint-lens/core';
959
965
 
960
966
  // A LIVE run. `runner.getLastSnapshot()` IS footprintjs's own snapshot, so it
@@ -1259,6 +1265,12 @@ Headless: `foldTimeRows(ledger, coverage?)`, `answerOfReading(turn, reading)`,
1259
1265
  `timeStandingOf(assessment, ledger?)`, `timeAskOf(pause)`,
1260
1266
  `datasetTimeAxisOf(meta, rows?)`.
1261
1267
 
1268
+ The dataset-axis helper depends only on AgentFootprint's three time-axis read
1269
+ functions, not its execution runtime. It reads those optional properties at
1270
+ call time: peers before 9.128.0 still show a declared axis as `unjudged`, while
1271
+ newer peers supply the judgment and counts. The browser packaging test checks
1272
+ that importing this helper does not retain the agent or engine execution code.
1273
+
1262
1274
  ## The Served tab
1263
1275
 
1264
1276
  **At every LLM call, exactly what the model was served — provable from the log.**
@@ -1317,7 +1329,7 @@ tool schema).
1317
1329
  - **Authority omissions come from the fold.** A receipt never names what a
1318
1330
  caller's ROLE was not allowed to see (the library's first law). The tab's
1319
1331
  audience is an operator, so it MAY show the skill ids hidden from the model —
1320
- but it reads them from the committed state at the stop through footprintjs's
1332
+ but it reads them from the committed state at the stop through Foottrace's
1321
1333
  `stateAt`, labelled **hidden from the model**, never from the receipt.
1322
1334
  - **One cursor.** The tab takes the lens's position as props and holds none of
1323
1335
  its own. On an llm-turn stop it shows that epoch. On any other stop it shows
@@ -1459,7 +1471,7 @@ puts the mark and when:
1459
1471
  | **Derived tag** | the reader, at read time, from the fold | computed by a strategy; never stored | the lens's own grouping (milestones, banded by iteration) — the default axis |
1460
1472
  | **Bookmark** | the reader, at read time, by choice | on the cursor (`mark` / `marks` / `jumpToMark`); persisted beside a recording, never in it | the **Bookmarks** tab |
1461
1473
 
1462
- Only the first two had a place in the lens. footprintjs holds a bookmark on the
1474
+ Only the first two had a place in the lens. Foottrace holds a bookmark on the
1463
1475
  cursor and, by its own law, nowhere else — the log and the snapshot are the
1464
1476
  run's record, not the reader's notes — so a bookmark vanished when the page
1465
1477
  closed. And a run's own tags (agentfootprint 9.90 declares every milestone as
@@ -1502,7 +1514,7 @@ End reach them on every axis, and they share one synthetic address.
1502
1514
 
1503
1515
  Headless, the sidecar is four functions in `/core`: `bookmarkKey(snapshot)`,
1504
1516
  `toSidecar(key, bookmarks)`, `fromSidecar(json, snapshot)` (reports
1505
- `orphaned`), `bookmarksToMarks(bookmarks, positions)` to seed footprintjs's
1517
+ `orphaned`), `bookmarksToMarks(bookmarks, positions)` to seed Foottrace's
1506
1518
  `timeTravel(snapshot, { marks })`; stores are `localStorageBookmarkStore()`,
1507
1519
  `memoryBookmarkStore()`, `noBookmarkStore()`, or any `BookmarkStore` of your
1508
1520
  own. See `src/core/bookmarks/README.md`.
@@ -1518,7 +1530,7 @@ stop is reached — and the counts from the **log**. A recording that carried no
1518
1530
  structure lists only *tags this run hit* and says *no chart in this recording*.
1519
1531
  A declared tag the run never hit is shown and disabled.
1520
1532
 
1521
- **Pick a chip and the ruler is rebuilt** through footprintjs 9.21's
1533
+ **Pick a chip and the ruler is rebuilt** through Foottrace's
1522
1534
  `tagStops(names)`: the stops whose bundle carries any picked tag, the untagged
1523
1535
  stages folded into the tagged stop before them, the run's bookends kept. It is
1524
1536
  the same one cursor on a different list — the cursor **keeps its commit**, not
@@ -1928,7 +1940,7 @@ store's availability is a label. Headless: `bookmarkKey` · `toSidecar` ·
1928
1940
  the chart on `granularity="group"` at the root level; `legend` is
1929
1941
  `tagLegend(structure, snapshot)` (`source: 'structure' | 'log'`), a pick is a
1930
1942
  list of tag names the lens hands to `tagAxisPositions(snapshot, picked, base)`
1931
- (footprintjs 9.21's `tagStops`). Picking never moves the cursor; it changes the
1943
+ (Foottrace's `tagStops`). Picking never moves the cursor; it changes the
1932
1944
  list the one cursor is a step into. `available` defaults to `true`; `false` holds
1933
1945
  the strip read-only — the legend still shows, every chip is disabled, and the
1934
1946
  strip says so (`TAG_PICKER_LABELS.tagAxisUnavailable`).
@@ -2019,7 +2031,7 @@ so instead of drawing an empty graph.
2019
2031
  snippets.
2020
2032
 
2021
2033
  The cursor is headless too: `scrubAxisFor` builds the ruler, `openLensCursor`
2022
- moves along it through footprintjs's `timeTravel()` port, `resolveNavigation`
2034
+ moves along it through Foottrace's `timeTravel()` port, `resolveNavigation`
2023
2035
  turns an address into a step with every rung named, and `stepForCommitIdx`
2024
2036
  carries a position between the two axes. See
2025
2037
  [Time travel through one port](#time-travel-through-one-port).
@@ -3,11 +3,11 @@ import { ToolChoiceCall, ToolChoiceSummary, AnswerAccount, AnswerAccountShownLea
3
3
  import * as agentfootprint from 'agentfootprint';
4
4
  import { CommentaryTemplates } from 'agentfootprint';
5
5
  import React__default, { Ref } from 'react';
6
- import { h as NavigationResult, C as CursorPosition, n as LensRecorder, a as LensCursor } from './lensCursorPort-nD3C6iQs.js';
7
- import { C as ChartGroupHighlight, H as Humanizer, b as BookmarkStore } from './tagAxis-Cgk6vlcY.js';
6
+ import { h as NavigationResult, C as CursorPosition, n as LensRecorder, a as LensCursor } from './lensCursorPort-D01BNsXp.js';
7
+ import { C as ChartGroupHighlight, H as Humanizer, b as BookmarkStore } from './tagAxis-Di2Cx6wU.js';
8
8
  import { NodeTypes } from '@xyflow/react';
9
9
  import { TraceGraph, TraceFlowLayout, RuntimeOverlay } from 'footprint-explainable-ui/flowchart';
10
- import { L as LensCursorAt, S as SharedCursor } from './useSharedCursor-BdzFNO_C.js';
10
+ import { L as LensCursorAt, S as SharedCursor } from './useSharedCursor-Bbg_9Adf.js';
11
11
 
12
12
  /**
13
13
  * LensFlow — the canonical Lens chart renderer.
@@ -3,11 +3,11 @@ import { ToolChoiceCall, ToolChoiceSummary, AnswerAccount, AnswerAccountShownLea
3
3
  import * as agentfootprint from 'agentfootprint';
4
4
  import { CommentaryTemplates } from 'agentfootprint';
5
5
  import React__default, { Ref } from 'react';
6
- import { h as NavigationResult, C as CursorPosition, n as LensRecorder, a as LensCursor } from './lensCursorPort-nD3C6iQs.cjs';
7
- import { C as ChartGroupHighlight, H as Humanizer, b as BookmarkStore } from './tagAxis-COX6o7DJ.cjs';
6
+ import { h as NavigationResult, C as CursorPosition, n as LensRecorder, a as LensCursor } from './lensCursorPort-D01BNsXp.cjs';
7
+ import { C as ChartGroupHighlight, H as Humanizer, b as BookmarkStore } from './tagAxis-D6pWV7dY.cjs';
8
8
  import { NodeTypes } from '@xyflow/react';
9
9
  import { TraceGraph, TraceFlowLayout, RuntimeOverlay } from 'footprint-explainable-ui/flowchart';
10
- import { L as LensCursorAt, S as SharedCursor } from './useSharedCursor-DJTQSH0y.cjs';
10
+ import { L as LensCursorAt, S as SharedCursor } from './useSharedCursor-BJWuvphY.cjs';
11
11
 
12
12
  /**
13
13
  * LensFlow — the canonical Lens chart renderer.
@@ -15,18 +15,18 @@ import {
15
15
  structureGraphFromRunner,
16
16
  tagLegend,
17
17
  toSidecar
18
- } from "./chunk-6II3EUOJ.js";
18
+ } from "./chunk-PBXWVC4G.js";
19
19
  import {
20
20
  useNarrowRow
21
21
  } from "./chunk-ECAQG3TG.js";
22
22
  import {
23
23
  ServedTab
24
- } from "./chunk-6GTISZYA.js";
24
+ } from "./chunk-A7ZG7JJ3.js";
25
25
  import {
26
26
  snapshotLogKey,
27
27
  snapshotOfRunner,
28
28
  tagAxisPositions
29
- } from "./chunk-NSTKBU5V.js";
29
+ } from "./chunk-VWNU7GHG.js";
30
30
  import {
31
31
  MODE_PALETTES,
32
32
  T,
@@ -5784,4 +5784,4 @@ export {
5784
5784
  useBookmarkSidecar,
5785
5785
  Lens
5786
5786
  };
5787
- //# sourceMappingURL=chunk-FTQQVU7X.js.map
5787
+ //# sourceMappingURL=chunk-4XZSVUOY.js.map