@peasant-labs/fairtrade 0.0.20 → 0.0.22

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.
package/dist/lib/ui.js CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as e, $n as t, $t as n, A as r, An as i, At as a, B as o, Bn as s, Bt as c, C as l, Cn as u, Ct as d, D as f, Dn as p, Dt as m, E as h, En as g, Et as _, F as v, Fn as y, Ft as b, G as x, Gn as S, Gt as C, H as w, Hn as T, Ht as E, I as D, In as O, It as k, J as A, Jn as j, Jt as M, K as N, Kn as P, Kt as F, L as I, Ln as L, Lt as R, M as z, Mn as B, Mt as V, N as H, Nn as U, Nt as W, O as G, On as K, Ot as q, P as J, Pn as Y, Pt as X, Q as Z, Qn as Q, Qt as $, R as ee, Rn as te, Rt as ne, S as re, Sn as ie, St as ae, T as oe, Tn as se, Tt as ce, U as le, Un as ue, Ut as de, V as fe, Vn as pe, Vt as me, W as he, Wn as ge, Wt as _e, X as ve, Xn as ye, Xt as be, Y as xe, Yn as Se, Yt as Ce, Z as we, Zn as Te, Zt as Ee, _ as De, _n as Oe, _t as ke, a as Ae, an as je, at as Me, b as Ne, bn as Pe, bt as Fe, c as Ie, cn as Le, ct as Re, d as ze, dn as Be, dt as Ve, en as He, et as Ue, f as We, fn as Ge, ft as Ke, g as qe, gn as Je, gt as Ye, h as Xe, hn as Ze, ht as Qe, i as $e, in as et, it as tt, j as nt, jn as rt, jt as it, k as at, kn as ot, kt as st, l as ct, ln as lt, lt as ut, m as dt, mn as ft, mt as pt, n as mt, nn as ht, nt as gt, o as _t, on as vt, ot as yt, p as bt, pn as xt, pt as St, q as Ct, qn as wt, qt as Tt, r as Et, rn as Dt, rt as Ot, s as kt, sn as At, st as jt, t as Mt, tn as Nt, tt as Pt, u as Ft, un as It, ut as Lt, v as Rt, vn as zt, vt as Bt, w as Vt, wn as Ht, wt as Ut, x as Wt, xn as Gt, xt as Kt, y as qt, yn as Jt, yt as Yt, z as Xt, zn as Zt, zt as Qt } from "./ui-C9GNLshA.js";
2
- import { $ as $t, Ct as en, St as tn, _t as nn, a as rn, bt as an, c as on, ct as sn, d as cn, dt as ln, et as un, f as dn, ft as fn, gt as pn, ht as mn, i as hn, l as gn, lt as _n, m as vn, mt as yn, n as bn, o as xn, p as Sn, pt as Cn, r as wn, s as Tn, st as En, t as Dn, u as On, ut as kn, vt as An, xt as jn, yt as Mn } from "./GraphLegend-BB0V2w59.js";
3
- import { n as Nn, t as Pn } from "./ChartLine-Cycmpjep.js";
4
- export { En as AccentLegend, xt as Accordion, V as ApprovalBar, ie as Avatar, u as AvatarGroup, tn as BrandMark, B as Breadcrumb, Te as Button, Q as ButtonGroup, y as Card, O as CardImg, Nn as ChartBar, Pn as ChartLine, ge as Checkbox, Yt as CheckpointMarker, Zt as Chip, Re as CliSteps, ut as CommandBlock, F as CommandPalette, un as CommitGraph, st as ConfirmInline, pt as ConnectionPill, b as ConsentDialog, k as ConsentSummary, s as CountBadge, M as DATE_PRESETS, a as DangerZone, Qe as DataState, Ze as DataTable, Ce as DateRange, be as DateRangeCalendar, Tt as Dialog, $t as DiffView, Ct as ENTRY_TYPES, Gt as EmptyState, ce as EvidenceCaption, _ as EvidenceTarget, Qt as Explainer, jt as FacetRail, Je as FeedbackPanel, wt as Field, pe as FilterChip, e as FocusedModeToggle, xn as GRAPH_APP_SECTIONS, Dn as GRAPH_LEGEND_ITEMS, Lt as GettingStarted, Ot as GovTile, Tn as GraphAppShell, bn as GraphLegend, on as GraphSectionNav, wn as GraphSubagentBranch, hn as GraphToolNode, rn as GraphTurnNode, m as GroupedMultiSelect, A as HARNESSES, et as HELPER_OWNER_STATE, Ve as HandleClaim, fn as Heatmap, je as HelperGroup, vt as HelperGroupListItem, At as HelperThreadRow, gn as IN_USE_APPS, On as InUseShell, j as Input, Cn as IntensityScope, yn as IntensitySwatch, Ht as Kbd, se as KbdChord, vn as MapCanvas, mn as MapNode, ot as Menu, L as MetaItem, W as ModerationQueue, Ke as OnboardingCard, sn as PROVIDER_ACCENT, rt as Pager, i as Pagination, Fe as Phase, Kt as PhaseDivider, X as PolicySelect, p as Popover, Oe as Progress, Ut as PromptDigest, tt as ProviderBars, _n as ProviderIcon, kn as ProviderName, ln as ProviderTag, xe as ROLES, S as Radio, P as RadioGroup, cn as RailSection, dn as RailShell, pn as RampLegend, R as RedactionReview, it as RoleRoster, te as Row, ve as SESSION_OUTCOMES, we as STOP_REASONS, Ue as ScopeChip, t as Segmented, Se as Select, St as SignInProviders, zt as Skeleton, ft as Sparkline, Jt as Spinner, Sn as SplitRail, Me as StatGrid, yt as StatTile, T as StatusDot, E as StepIndicator, de as StepWizard, U as Steps, q as StepsWaterfall, ue as Switch, Z as TOOL_CALL_KINDS, N as TOOL_GROUPS, Y as Tabs, g as Tag, ae as TaskBoundary, Ye as TeachingEmptyState, c as Term, ye as Textarea, He as ThinkingBlock, me as TimeStrip, Nt as Timeline, ht as TimelineItem, Pe as Toast, $ as ToastProvider, Dt as ToolCall, Bt as ToolCallRenderer, K as Tooltip, ke as Tour, dt as TranscriptCheckRow, re as TranscriptDiffEntryCard, l as TranscriptDiffHunks, Xe as TranscriptFilterSection, We as TranscriptFiltersRail, ct as TranscriptLabelPopover, oe as TranscriptMarkdown, De as TranscriptOutcomeChip, qe as TranscriptOutlineRail, Ft as TranscriptScorecard, ze as TranscriptScrubber, Wt as TranscriptTaskBody, Vt as TranscriptThinking, Ne as TranscriptToolBody, qt as TranscriptToolCall, Rt as TranscriptTurnCard, bt as TranscriptViewSwitch, Mt as TranscriptViewer, _e as Treemap, d as TurnContextBar, Pt as VisibilityEye, gt as VisibilitySegmented, ne as WhereDoesThisGo, H as adaptTranscript, Et as advanceTranscriptInitialPositionConsumption, D as annotateTranscript, I as assessScorecard, ee as buildTaskWaterfall, h as composeSessionTitle, Xt as computeAnalytics, o as computePersonalMedians, fe as computeTaskGroups, w as computeTasks, le as computeTurnLabels, nn as coverageLevel, he as detectPhases, J as diffLines, An as effortLevel, at as formatDateLong, r as formatDurationMins, Ee as formatRange, nt as formatRelative, Le as helperMemberToggle, lt as helperOwnerState, It as helperOwnerToggle, Be as helperSelectionIds, Mn as locSize, z as nextNavTurn, $e as normalizeTranscriptInitialPosition, x as phaseLabel, v as prefilterTurns, f as projectLabel, an as providerAccent, jn as providerDisplayName, en as resolveBrand, Ae as resolveTranscriptInitialPosition, _t as shouldApplyTranscriptInitialPosition, C as squarify, G as summarizePrompt, kt as transcriptInitialPositionReadiness, Ie as transcriptInitialPositionToken, Ge as useHelperSelection, n as useToast, mt as useTranscriptInitialPosition };
1
+ import { $ as e, $n as t, $t as n, A as r, An as i, At as a, B as o, Bn as s, Bt as c, C as l, Cn as u, Ct as d, D as f, Dn as p, Dt as m, E as h, En as g, Et as _, F as v, Fn as y, Ft as b, G as x, Gn as S, Gt as C, H as w, Hn as T, Ht as E, I as D, In as O, It as k, J as A, Jn as j, Jt as M, K as N, Kn as P, Kt as F, L as I, Ln as L, Lt as R, M as z, Mn as B, Mt as V, N as H, Nn as U, Nt as W, O as G, On as K, Ot as q, P as J, Pn as Y, Pt as X, Q as Z, Qn as Q, Qt as $, R as ee, Rn as te, Rt as ne, S as re, Sn as ie, St as ae, T as oe, Tn as se, Tt as ce, U as le, Un as ue, Ut as de, V as fe, Vn as pe, Vt as me, W as he, Wn as ge, Wt as _e, X as ve, Xn as ye, Xt as be, Y as xe, Yn as Se, Yt as Ce, Z as we, Zn as Te, Zt as Ee, _ as De, _n as Oe, _t as ke, a as Ae, an as je, ar as Me, at as Ne, b as Pe, bn as Fe, bt as Ie, c as Le, cn as Re, cr as ze, ct as Be, d as Ve, dn as He, dr as Ue, dt as We, en as Ge, er as Ke, et as qe, f as Je, fn as Ye, fr as Xe, ft as Ze, g as Qe, gn as $e, gt as et, h as tt, hn as nt, hr as rt, ht as it, i as at, in as ot, ir as st, it as ct, j as lt, jn as ut, jt as dt, k as ft, kn as pt, kt as mt, l as ht, ln as gt, lr as _t, lt as vt, m as yt, mn as bt, mr as xt, mt as St, n as Ct, nn as wt, nr as Tt, nt as Et, o as Dt, on as Ot, or as kt, ot as At, p as jt, pn as Mt, pr as Nt, pt as Pt, q as Ft, qn as It, qt as Lt, r as Rt, rn as zt, rr as Bt, rt as Vt, s as Ht, sn as Ut, sr as Wt, st as Gt, t as Kt, tn as qt, tr as Jt, tt as Yt, u as Xt, un as Zt, ur as Qt, ut as $t, v as en, vn as tn, vt as nn, w as rn, wn as an, wt as on, x as sn, xn as cn, xt as ln, y as un, yn as dn, yt as fn, z as pn, zn as mn, zt as hn } from "./ui-DKe_UEel.js";
2
+ import { Ct as gn, St as _n, _t as vn, a as yn, bt as bn, c as xn, ct as Sn, d as Cn, dt as wn, et as Tn, f as En, ft as Dn, gt as On, h as kn, ht as An, i as jn, l as Mn, lt as Nn, m as Pn, mt as Fn, n as In, o as Ln, p as Rn, pt as zn, r as Bn, s as Vn, t as Hn, tt as Un, u as Wn, ut as Gn, vt as Kn, wt as qn, xt as Jn, yt as Yn } from "./GraphLegend-sgixmPER.js";
3
+ import { n as Xn, t as Zn } from "./ChartLine-Cycmpjep.js";
4
+ export { Sn as AccentLegend, Gt as AccessList, pt as Accordion, Lt as ApprovalBar, te as Avatar, mn as AvatarGroup, gn as BrandMark, j as Breadcrumb, Nt as Button, xt as ButtonGroup, Te as Card, Q as CardImg, Xn as ChartBar, Zn as ChartLine, kt as Checkbox, X as CheckpointMarker, Jt as Chip, ae as CliSteps, Be as CollectivePicker, d as CommandBlock, Ut as CommandPalette, Un as CommitGraph, _e as ConfirmInline, q as ConnectionPill, be as ConsentDialog, Ee as ConsentSummary, it as CopyIconButton, Tt as CountBadge, gt as DATE_PRESETS, C as DangerZone, mt as DataState, ut as DataTable, Zt as DateRange, He as DateRangeCalendar, Re as Dialog, Tn as DiffView, Ft as ENTRY_TYPES, L as EmptyState, c as EvidenceCaption, me as EvidenceTarget, Ge as Explainer, ln as FacetRail, B as FeedbackPanel, _t as Field, Bt as FilterChip, e as FocusedModeToggle, Ln as GRAPH_APP_SECTIONS, Hn as GRAPH_LEGEND_ITEMS, on as GettingStarted, ke as GovTile, Vn as GraphAppShell, In as GraphLegend, xn as GraphSectionNav, Bn as GraphSubagentBranch, jn as GraphToolNode, yn as GraphTurnNode, E as GroupedMultiSelect, A as HARNESSES, dn as HELPER_OWNER_STATE, ce as HandleClaim, zn as Heatmap, Fe as HelperGroup, cn as HelperGroupListItem, ie as HelperThreadRow, Mn as IN_USE_APPS, Wn as InUseShell, Qt as Input, Fn as IntensityScope, An as IntensitySwatch, s as Kbd, pe as KbdChord, Cn as LOCAL_APP_SECTIONS, a as LocalOfflineBanner, kn as MapCanvas, On as MapNode, S as Menu, t as MetaItem, M as ModerationQueue, _ as OnboardingCard, St as OverflowList, Nn as PROVIDER_ACCENT, vt as PUBLISH_DIALOG_STATES, $t as PUBLISH_STATES, It as Pager, P as Pagination, b as Phase, k as PhaseDivider, Ce as PolicySelect, ue as Popover, U as Progress, hn as PromptDigest, nn as ProviderBars, Gn as ProviderIcon, wn as ProviderName, Dn as ProviderTag, We as PublishBar, Ze as PublishDialog, Pt as PublishStateLabel, xe as ROLES, Wt as Radio, ze as RadioGroup, En as RailSection, Rn as RailShell, vn as RampLegend, $ as RedactionReview, Vt as RepoPicker, F as RoleRoster, Ke as Row, ve as SESSION_OUTCOMES, ct as SETTING_ROW_STATES, we as STOP_REASONS, qe as ScopeChip, rt as Segmented, Ue as Select, K as SessionGroupDisclosure, Ne as SettingGroup, At as SettingRow, m as SignInProviders, Y as Skeleton, i as Sparkline, y as Spinner, Pn as SplitRail, fn as StatGrid, Ie as StatTile, et as StatsStrip, st as StatusDot, zt as StepIndicator, ot as StepWizard, Se as Steps, de as StepsWaterfall, Me as Switch, Z as TOOL_CALL_KINDS, N as TOOL_GROUPS, ye as Tabs, T as Tag, R as TaskBoundary, dt as TeachingEmptyState, qt as Term, Xe as Textarea, nt as ThinkingBlock, wt as TimeStrip, $e as Timeline, Oe as TimelineItem, O as Toast, Mt as ToastProvider, tn as ToolCall, W as ToolCallRenderer, ge as Tooltip, V as Tour, yt as TranscriptCheckRow, re as TranscriptDiffEntryCard, l as TranscriptDiffHunks, tt as TranscriptFilterSection, Je as TranscriptFiltersRail, ht as TranscriptLabelPopover, oe as TranscriptMarkdown, De as TranscriptOutcomeChip, Qe as TranscriptOutlineRail, Xt as TranscriptScorecard, Ve as TranscriptScrubber, sn as TranscriptTaskBody, rn as TranscriptThinking, Pe as TranscriptToolBody, un as TranscriptToolCall, en as TranscriptTurnCard, jt as TranscriptViewSwitch, Kt as TranscriptViewer, je as Treemap, ne as TurnContextBar, Yt as VisibilityEye, Et as VisibilitySegmented, n as WhereDoesThisGo, H as adaptTranscript, Rt as advanceTranscriptInitialPositionConsumption, D as annotateTranscript, I as assessScorecard, ee as buildTaskWaterfall, h as composeSessionTitle, pn as computeAnalytics, o as computePersonalMedians, fe as computeTaskGroups, w as computeTasks, le as computeTurnLabels, Kn as coverageLevel, he as detectPhases, J as diffLines, Yn as effortLevel, ft as formatDateLong, r as formatDurationMins, Ye as formatRange, lt as formatRelative, u as helperMemberToggle, an as helperOwnerState, se as helperOwnerToggle, g as helperSelectionIds, bn as locSize, z as nextNavTurn, at as normalizeTranscriptInitialPosition, x as phaseLabel, v as prefilterTurns, f as projectLabel, Jn as providerAccent, _n as providerDisplayName, qn as resolveBrand, Ae as resolveTranscriptInitialPosition, Dt as shouldApplyTranscriptInitialPosition, Ot as squarify, G as summarizePrompt, Ht as transcriptInitialPositionReadiness, Le as transcriptInitialPositionToken, p as useHelperSelection, bt as useToast, Ct as useTranscriptInitialPosition };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@peasant-labs/fairtrade",
3
3
  "private": false,
4
- "version": "0.0.20",
4
+ "version": "0.0.22",
5
5
  "description": "Fairtrade design-system library: canonical tokens, base styles, component CSS, and React UI exports.",
6
6
  "type": "module",
7
7
  "license": "Apache-2.0",
@@ -125,7 +125,29 @@
125
125
  "test:transcript-outcome-chip:mutations": "node scripts/transcript-outcome-chip.mutations.mjs",
126
126
  "test:transcript-viewer-outcome": "node scripts/transcript-viewer-outcome.test.mjs",
127
127
  "test:transcript-viewer-outcome:mutations": "node scripts/transcript-viewer-outcome.mutations.mjs",
128
- "test:gates": "pnpm test:structured-shiki && pnpm test:transcript-provenance && pnpm test:pi-transcript && pnpm test:pi-transcript:mutations && node scripts/gates.test.mjs && node scripts/turns-to-flow-edges.test.mjs && pnpm test:transcript-helpers && pnpm test:helper-groups && pnpm test:transcript-outcome-chip && pnpm test:transcript-viewer-outcome && pnpm test:release-notes",
128
+ "test:transcript-viewer-chrome": "node scripts/transcript-viewer-chrome.test.mjs",
129
+ "test:transcript-viewer-chrome:mutations": "node scripts/parts-mutations.mjs scripts/transcript-viewer-chrome.test.mjs scripts/testdata/transcript-viewer-chrome.manifest.yaml",
130
+ "test:app-sections": "node scripts/app-sections.test.mjs",
131
+ "test:app-sections:mutations": "node scripts/parts-mutations.mjs scripts/app-sections.test.mjs scripts/testdata/app-sections.manifest.yaml",
132
+ "test:local-offline-banner": "node scripts/local-offline-banner.test.mjs",
133
+ "test:local-offline-banner:mutations": "node scripts/parts-mutations.mjs scripts/local-offline-banner.test.mjs scripts/testdata/local-offline-banner.manifest.yaml",
134
+ "test:prompt-digest-split": "node scripts/prompt-digest-split.test.mjs",
135
+ "test:prompt-digest-split:mutations": "node scripts/parts-mutations.mjs scripts/prompt-digest-split.test.mjs scripts/testdata/prompt-digest-split.manifest.yaml",
136
+ "test:village-parts": "node scripts/village-parts.test.mjs",
137
+ "test:village-parts:mutations": "node scripts/parts-mutations.mjs scripts/village-parts.test.mjs scripts/testdata/village-parts.manifest.yaml",
138
+ "test:publish-states": "node scripts/publish-states.test.mjs",
139
+ "test:publish-states:mutations": "node scripts/parts-mutations.mjs scripts/publish-states.test.mjs scripts/testdata/publish-states.manifest.yaml",
140
+ "test:setting-row": "node scripts/setting-row.test.mjs",
141
+ "test:setting-row:mutations": "node scripts/parts-mutations.mjs scripts/setting-row.test.mjs scripts/testdata/setting-row.manifest.yaml",
142
+ "test:repo-picker": "node scripts/repo-picker.test.mjs",
143
+ "test:repo-picker:mutations": "node scripts/parts-mutations.mjs scripts/repo-picker.test.mjs scripts/testdata/repo-picker.manifest.yaml",
144
+ "test:commons-demo-pages": "node scripts/commons-demo-pages.test.mjs",
145
+ "test:commons-demo-pages:mutations": "node scripts/parts-mutations.mjs scripts/commons-demo-pages.test.mjs scripts/testdata/commons-demo-pages.manifest.yaml",
146
+ "test:collectives-views": "node scripts/collectives-views.test.mjs",
147
+ "test:collectives-views:mutations": "node scripts/parts-mutations.mjs scripts/collectives-views.test.mjs scripts/testdata/collectives-views.manifest.yaml",
148
+ "test:parts": "pnpm test:transcript-viewer-chrome && pnpm test:app-sections && pnpm test:local-offline-banner && pnpm test:prompt-digest-split && pnpm test:village-parts && pnpm test:publish-states && pnpm test:setting-row && pnpm test:repo-picker && pnpm test:commons-demo-pages && pnpm test:collectives-views",
149
+ "test:parts:mutations": "pnpm test:transcript-viewer-chrome:mutations && pnpm test:app-sections:mutations && pnpm test:local-offline-banner:mutations && pnpm test:prompt-digest-split:mutations && pnpm test:village-parts:mutations && pnpm test:publish-states:mutations && pnpm test:setting-row:mutations && pnpm test:repo-picker:mutations && pnpm test:commons-demo-pages:mutations && pnpm test:collectives-views:mutations",
150
+ "test:gates": "pnpm test:structured-shiki && pnpm test:transcript-provenance && pnpm test:pi-transcript && pnpm test:pi-transcript:mutations && node scripts/gates.test.mjs && node scripts/turns-to-flow-edges.test.mjs && pnpm test:transcript-helpers && pnpm test:helper-groups && pnpm test:transcript-outcome-chip && pnpm test:transcript-viewer-outcome && pnpm test:parts && pnpm test:release-notes",
129
151
  "test:analytics": "node src/ui/analytics/metrics.test.mjs",
130
152
  "test:mobile-layout": "node scripts/mobile-layout.test.mjs",
131
153
  "test:transcript-composite-width": "node scripts/transcript-composite-width.test.mjs",
@@ -138,7 +160,7 @@
138
160
  "smoke:changes": "node scripts/smoke-changes.mjs",
139
161
  "test:changes-overflow": "node scripts/changes-overflow.test.mjs",
140
162
  "shoot:manage": "node scripts/shootmanage.mjs",
141
- "build:lib": "pnpm test:package-provenance && pnpm test:contract && pnpm test:runtime-floor && pnpm test:code-map-state && pnpm test:code-map-ranking && pnpm test:code-map-ranking:mutations && pnpm test:code-map-ranking:bench && pnpm test:timeline-encoding-channels && pnpm test:timeline-highlight && pnpm test:code-map-interactions && pnpm test:code-map-drag-smoothness && pnpm test:code-map-wheel-zoom && pnpm test:code-map-descent-feedback && pnpm test:timeline-navigation && pnpm test:transcript-initial-position && pnpm test:transcript-initial-position:render && pnpm test:transcript-initial-position:mutations && pnpm test:transcript-header-condense && pnpm test:transcript-header-condense:mutations && pnpm test:explore-page-intent && pnpm test:explore-page-intent:mutations && pnpm test:gates && pnpm test:transcript-helpers:mutations && pnpm test:transcript-outcome-chip:mutations && pnpm test:transcript-viewer-outcome:mutations && pnpm test:release-notes:mutations && node src/ui/analytics/metrics.test.mjs && node scripts/mobile-layout.test.mjs && node scripts/transcript-composite-width.test.mjs && node scripts/css-token-lint.mjs && node scripts/gen-llm-artifacts.mjs && node scripts/contrast.mjs && vite build --config vite.lib.config.js && vite build --config vite.lib-css.config.js && node scripts/finalize-lib-build.mjs && tsc -p tsconfig.lib.json && node scripts/smoke-lib.mjs && node scripts/smoke-transcript.mjs && node scripts/smoke-transcript-ui.mjs && pnpm test:packed-tarball && pnpm test:transcript-markdown && pnpm test:transcript-markdown:mutations && pnpm test:graph-contract-enums && pnpm test:transcript-schema-adapter && pnpm test:transcript-schema-adapter:mutations && pnpm test:transcript-filters && pnpm test:transcript-turn-model && pnpm test:transcript-turn-model:mutations && pnpm test:provider-harnesses && pnpm test:provider-harnesses:mutations && node scripts/smoke-map.mjs && node scripts/smoke-changes.mjs && pnpm test:changes-overflow && pnpm test:timeline-a11y && pnpm test:timeline-ghosts && pnpm test:insight-panel && node scripts/contrast.mjs --css dist/lib/tokens.css && node scripts/assert-pack-contents.mjs",
163
+ "build:lib": "pnpm test:package-provenance && pnpm test:contract && pnpm test:runtime-floor && pnpm test:code-map-state && pnpm test:code-map-ranking && pnpm test:code-map-ranking:mutations && pnpm test:code-map-ranking:bench && pnpm test:timeline-encoding-channels && pnpm test:timeline-highlight && pnpm test:code-map-interactions && pnpm test:code-map-drag-smoothness && pnpm test:code-map-wheel-zoom && pnpm test:code-map-descent-feedback && pnpm test:timeline-navigation && pnpm test:transcript-initial-position && pnpm test:transcript-initial-position:render && pnpm test:transcript-initial-position:mutations && pnpm test:transcript-header-condense && pnpm test:transcript-header-condense:mutations && pnpm test:explore-page-intent && pnpm test:explore-page-intent:mutations && pnpm test:gates && pnpm test:transcript-helpers:mutations && pnpm test:transcript-outcome-chip:mutations && pnpm test:transcript-viewer-outcome:mutations && pnpm test:parts:mutations && pnpm test:release-notes:mutations && node src/ui/analytics/metrics.test.mjs && node scripts/mobile-layout.test.mjs && node scripts/transcript-composite-width.test.mjs && node scripts/css-token-lint.mjs && node scripts/gen-llm-artifacts.mjs && node scripts/contrast.mjs && vite build --config vite.lib.config.js && vite build --config vite.lib-css.config.js && node scripts/finalize-lib-build.mjs && tsc -p tsconfig.lib.json && node scripts/smoke-lib.mjs && node scripts/smoke-transcript.mjs && node scripts/smoke-transcript-ui.mjs && pnpm test:packed-tarball && pnpm test:transcript-markdown && pnpm test:transcript-markdown:mutations && pnpm test:graph-contract-enums && pnpm test:transcript-schema-adapter && pnpm test:transcript-schema-adapter:mutations && pnpm test:transcript-filters && pnpm test:transcript-turn-model && pnpm test:transcript-turn-model:mutations && pnpm test:provider-harnesses && pnpm test:provider-harnesses:mutations && node scripts/smoke-map.mjs && node scripts/smoke-changes.mjs && pnpm test:changes-overflow && pnpm test:timeline-a11y && pnpm test:timeline-ghosts && pnpm test:insight-panel && node scripts/contrast.mjs --css dist/lib/tokens.css && node scripts/assert-pack-contents.mjs",
142
164
  "pack:check": "node scripts/assert-pack-contents.mjs",
143
165
  "smoke:tarball": "node scripts/smoke-tarball.mjs",
144
166
  "test:packed-tarball": "node scripts/packed-tarball-roundtrip.test.mjs",
@@ -151,7 +173,30 @@
151
173
  "build-storybook": "storybook build",
152
174
  "build:all": "pnpm build && pnpm build-storybook && rm -rf dist/storybook && cp -r storybook-static dist/storybook",
153
175
  "start": "http-server dist -p ${PORT:-3000} -a 0.0.0.0 --silent",
154
- "test:turns-to-flow-edges": "node scripts/turns-to-flow-edges.test.mjs"
176
+ "test:turns-to-flow-edges": "node scripts/turns-to-flow-edges.test.mjs",
177
+ "journey": "playwright test --config playwright.journey.config.mjs",
178
+ "journey:ci": "JOURNEY_HTML=0 playwright test --config playwright.journey.config.mjs",
179
+ "test:fairtest:promotion": "node scripts/assert-test-promotion.mjs",
180
+ "test:fairtest:paths": "node scripts/fairtest/assert-fairtest-paths.mjs",
181
+ "test:fairtest:types": "tsc -p tsconfig.fairtest.json",
182
+ "test:fairtest:type-coverage": "node scripts/fairtest/assert-ts-check-coverage.mjs",
183
+ "test:fairtest:inventory": "node scripts/fairtest-runner-inventory.mjs",
184
+ "test:fairtest:init": "node scripts/fairtest/init-fairtest.mjs",
185
+ "test:fairtest:list:ci": "node scripts/fairtest/list-fairtest.mjs --mode=ci",
186
+ "test:fairtest:list:local": "node scripts/fairtest/list-fairtest.mjs --mode=local",
187
+ "test:fairtest:local-bridge": "node --test scripts/fairtest/local-bridge.test.mjs",
188
+ "test:fairtest:process": "node --test packages/fairtest/test/process-bridge.test.mjs",
189
+ "fairtest": "node scripts/fairtest/fairtest-dev.mjs",
190
+ "test:fairtest:select": "node scripts/fairtest/select-fairtest.mjs",
191
+ "test:fairtest:selection-receipt": "node scripts/fairtest/selection-receipt.mjs",
192
+ "test:fairtest:preflight": "node scripts/fairtest/preflight-fairtest.mjs",
193
+ "test:fairtest:envelope": "node --test scripts/fairtest/run-envelope.test.mjs",
194
+ "test:fairtest:boundary": "node scripts/assert-fairtest-boundary.mjs && node scripts/fairtest-source.mjs --smoke",
195
+ "test:fairtest:dispatch": "node scripts/fairtest/assert-target-dispatch.mjs",
196
+ "test:fairtest:mounted": "node scripts/fairtest/run-mounted.mjs",
197
+ "test:fairtest:product-contract": "node scripts/fairtest/run-product-contract.mjs",
198
+ "test:fairtest:compat": "node scripts/fairtest-surface-manifest.mjs",
199
+ "test:fairtest:verify": "node scripts/fairtest/verify-fairtest.mjs"
155
200
  },
156
201
  "dependencies": {
157
202
  "@peasant-labs/schema": "0.20.0",
@@ -169,10 +214,13 @@
169
214
  "react-dom": ">=19.0.0 <20"
170
215
  },
171
216
  "devDependencies": {
217
+ "@axe-core/playwright": "4.13.0",
218
+ "@playwright/test": "1.63.0",
172
219
  "@storybook/addon-a11y": "^10.4.6",
173
220
  "@storybook/addon-themes": "^10.4.6",
174
221
  "@storybook/react-vite": "^10.4.6",
175
222
  "@tailwindcss/vite": "^4.3.1",
223
+ "@types/node": "26.4.0",
176
224
  "@types/react": "19.2.18",
177
225
  "@vitejs/plugin-react": "^6.0.2",
178
226
  "@xyflow/react": "12.10.2",