@bitcobblers/wod-wiki-engine 0.10.42 → 0.35.2115

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/index.d.cts CHANGED
@@ -1,10 +1,11 @@
1
- import { IDialect, AnalyticsDataPoint, UnifiedEventRecord, Note, NoteSegment, BlockIndexRow, WorkoutResult, StoredOutputStatement, WorkoutResults, ICodeStatement, IOutputStatement } from '@bitcobblers/wod-wiki-core';
1
+ import { IDialect, EventRecord, Note, NoteSegment, BlockIndexRow, Session, AnalyticsDataPoint, StoredOutputStatement, WorkoutResults, ICodeStatement, IOutputStatement } from '@bitcobblers/wod-wiki-core';
2
2
  export * from '@bitcobblers/wod-wiki-core';
3
3
  import { IRealtimeProcessor, ISummaryProcessor, IEffort, IScript, INowProvider } from '@bitcobblers/wod-wiki-lang';
4
- export { ABSENT, AGGREGATE_BUILTINS, AUTHORITATIVE_CASTS, AmrapLogicStrategy, AnalyticsContext, AnalyticsEngine, AnalyticsProfileContext, AnalyticsResult, AnalyticsTransformer, BUILTIN_CALCS, BUNDLED_EFFORT_COUNT, BehaviorContext, BehaviorEventListener, BehaviorEventType, BlockBuilder, BlockContext, BlockLifecycleOptions, ButtonBehavior, CONSUMED_HINTS, CONSUMED_HINT_KEYS, CONTEXT_ATOMS, CalcDefinition, CalcEngine, CalcOrigin, CalcScope, CalculateBlockProcessor, CalculationDefinition, CalculationRegistry, CardioDialect, ChildSelectionBehavior, ChildrenStrategy, ChoiceGroupMetric, ClimbDialect, ClimbMetricType, CompletionDecision, CountdownTimerBehavior, CountupTimerBehavior, CrossFitDialect, DEFAULT_RESOLVER_OPTIONS, DEFAULT_RUNTIME_OPTIONS, DEFAULT_UNRESOLVED_EFFORT_MET, DIM_LENGTH, DIM_MASS, DIM_TIME, DIM_ZERO, DialectStack, DimVector, EFFORT_DATA_METRIC_TYPE, EFFORT_REGISTRY_ORIGINS, EffortBaseAttributes, EffortDerivation, EffortFallbackStrategy, EffortRegistrySource, EffortResolutionOptions, EffortResolver, EffortResolverOptions, ErrorAction, EventBus, EventCallback, EventHandlerOptions, ExecutionContext, ExecutionStatus, ExitBehavior, ExprNode, GenericGroupStrategy, GenericLoopStrategy, GenericTimerStrategy, HabitsDialect, IAnalyticsEngine, IAnalyticsProcessorDescriptor, IAnalyticsProfile, IAnchorValue, IBehaviorContext, IBlockContext, ICastSubscription, IEffort, IEffortRegistry, IEffortResolver, IEvent, IEventBus, IEventHandler, IJitCompiler, ILookupTable, IMemoryLocation, IMemoryReference, IMetricPresentationPolicy, INTENSITY_TIERS, INowProvider, IRealtimeProcessor, IRuntimeAction, IRuntimeActionable, IRuntimeBehavior, IRuntimeBlock, IRuntimeBlockStrategy, IRuntimeClock, IRuntimeEventProvider, IRuntimeFactory, IRuntimeMemory, IRuntimeStack, IRuntimeSubscription, IScript, IScriptRuntime, ISummaryProcessor, InMemoryEffortRegistry, IntensityTier, InterceptMode, IntervalLogicStrategy, JitCompiler, LabelingBehavior, LineFormScope, LocalRuntimeSubscription, LookupRegistry, MdTimerRuntime, MemoryEntry, MemoryLocation, MemoryTag, MemoryTypeEnum, MetricPresentationSurface, MetricPresentationToken, MetricRenderKind, MetricTone, MetricVisibility, MockClock, NextEvent, OutputEmitter, OutputListener, PRODUCTION_STRATEGIES, PopBlockAction, ProjectionResult, PushBlockAction, RegisterEventHandlerAction, Registry, ReportOutputBehavior, ReportOutputStrategy, ResolvedEffort, ResolvedEffortData, RoundState, RoundsMetric, RuntimeAdapter, RuntimeBlock, RuntimeBlockOptions, RuntimeClock, RuntimeController, RuntimeError, RuntimeFactory, RuntimeLogger, RuntimeMemory, RuntimeObservers, RuntimeStack, RuntimeStackOptions, STORE_CALCS, STREAM_ATOMS, ScriptRuntime, ScriptRuntimeDependencies, SegmentWithMetadata, SessionRootStrategy, SnapshotClock, SoundCueBehavior, SoundStrategy, StackEvent, StackListener, StackObserver, StackSnapshot, StandardAnalyticsProfile, StartSessionAction, StartSessionOptions, StartWorkoutAction, SubscribeOptions, SubscriptionManager, TestableBlockConfig, TimeSpan, TimerState, TwoPassEffortResolutionProcess, TypedMemoryReference, UNITS, UnitsDialect, UnregisterEventHandlerAction, Unsubscribe, VISIBILITY_ICONS, VISIBILITY_LABELS, Val, WhiteboardScript, WodDialect, YogaDialect, buildTooltip, bundledEfforts, calculateElapsed, collapseUnresolvedChoices, compileLineForm, compoundName, computeColumnLabel, computeLabel, createAnalyticsEngineForBlock, createCalcEngine, createCompiler, createDialectStack, createMetricPresentationPolicy, createMockClock, createParser, dialectRegistry, dialectStack, evaluate, evaluateCalculateDefinitions, extractMetrics, extractStatements, findBestFuzzyMatch, findUnresolvedChoices, frozenNow, getAnalyticsFromLogs, getHints, getMetricVisibility, getRuntimeNowMs, hasHint, hintMetric, hintsToContainer, isCastSubscription, isChoiceResolved, isTimeLikeMetric, isWithinThreshold, levenshteinDistance, metricPresentation, normalizeForFuzzy, outputNodeId, outputNodeIds, parseCalcLine, parseCalculateBlock, parseExpression, parseScript, realtimeProcessorRegistry, strategyRegistry, summaryProcessorRegistry, toStoredOutputStatement, truthy, wallClockNow, whiteboardParser, whiteboardScript, whiteboardScriptLanguage, writeChoiceSelection } from '@bitcobblers/wod-wiki-lang';
4
+ export { ABSENT, AGGREGATE_BUILTINS, AUTHORITATIVE_CASTS, AmrapLogicStrategy, AnalyticsContext, AnalyticsEngine, AnalyticsProfileContext, AnalyticsResult, AnalyticsTransformer, BUILTIN_CALCS, BUNDLED_EFFORT_COUNT, BehaviorContext, BehaviorEventListener, BehaviorEventType, BlockBuilder, BlockContext, BlockLifecycleOptions, ButtonBehavior, CONSUMED_HINTS, CONSUMED_HINT_KEYS, CONTEXT_ATOMS, CalcDefinition, CalcEngine, CalcOrigin, CalcScope, CalculateBlockProcessor, CalculationDefinition, CalculationRegistry, CardioDialect, ChildSelectionBehavior, ChildrenStrategy, ChoiceGroupMetric, ClimbDialect, ClimbMetricType, CompletionDecision, CountdownTimerBehavior, CountupTimerBehavior, CrossFitDialect, DEFAULT_RESOLVER_OPTIONS, DEFAULT_RUNTIME_OPTIONS, DEFAULT_UNRESOLVED_EFFORT_MET, DIM_LENGTH, DIM_MASS, DIM_TIME, DIM_ZERO, DialectStack, DimVector, EFFORT_DATA_METRIC_TYPE, EFFORT_REGISTRY_ORIGINS, EffortBaseAttributes, EffortDerivation, EffortFallbackStrategy, EffortRegistrySource, EffortResolutionOptions, EffortResolver, EffortResolverOptions, ErrorAction, EventBus, EventCallback, EventHandlerOptions, ExecutionContext, ExecutionStatus, ExitBehavior, ExprNode, FixtureSyntaxError, GenericGroupStrategy, GenericLoopStrategy, GenericTimerStrategy, HabitsDialect, IAnalyticsEngine, IAnalyticsProcessorDescriptor, IAnalyticsProfile, IAnchorValue, IBehaviorContext, IBlockContext, ICastSubscription, IEffort, IEffortRegistry, IEffortResolver, IEvent, IEventBus, IEventHandler, IJitCompiler, ILookupTable, IMemoryLocation, IMemoryReference, IMetricPresentationPolicy, INTENSITY_TIERS, INowProvider, IRealtimeProcessor, IRuntimeAction, IRuntimeActionable, IRuntimeBehavior, IRuntimeBlock, IRuntimeBlockStrategy, IRuntimeClock, IRuntimeEventProvider, IRuntimeFactory, IRuntimeMemory, IRuntimeStack, IRuntimeSubscription, IScript, IScriptRuntime, ISummaryProcessor, InMemoryEffortRegistry, IntensityTier, InterceptMode, IntervalLogicStrategy, JitCompiler, LabelingBehavior, LineFormScope, LiteralKind, LocalRuntimeSubscription, LookupRegistry, MatchMode, MdTimerRuntime, MemoryEntry, MemoryLocation, MemoryTag, MemoryTypeEnum, MetricLine, MetricPresentationSurface, MetricPresentationToken, MetricRenderKind, MetricTone, MetricVisibility, MockClock, NextEvent, OutputEmitter, OutputListener, PRODUCTION_STRATEGIES, PopBlockAction, ProjectionResult, PushBlockAction, RegisterEventHandlerAction, Registry, ReportOutputBehavior, ReportOutputStrategy, ResolvedEffort, ResolvedEffortData, RoundState, RoundsMetric, RuntimeAdapter, RuntimeBlock, RuntimeBlockOptions, RuntimeClock, RuntimeController, RuntimeError, RuntimeFactory, RuntimeLogger, RuntimeMemory, RuntimeObservers, RuntimeStack, RuntimeStackOptions, STORE_CALCS, STREAM_ATOMS, ScriptRuntime, ScriptRuntimeDependencies, SegmentWithMetadata, SessionRootStrategy, SnapshotClock, SoundCueBehavior, SoundStrategy, StackEvent, StackListener, StackObserver, StackSnapshot, StandardAnalyticsProfile, StartSessionAction, StartSessionOptions, StartWorkoutAction, StatementMetricDiff, SubscribeOptions, SubscriptionManager, TestableBlockConfig, TimeSpan, TimerState, TwoPassEffortResolutionProcess, TypedMemoryReference, UNITS, UnitsDialect, UnregisterEventHandlerAction, Unsubscribe, VISIBILITY_ICONS, VISIBILITY_LABELS, Val, WhiteboardScript, WodDialect, YogaDialect, buildTooltip, bundledEfforts, calculateElapsed, canonicalizeType, collapseUnresolvedChoices, compareStatement, compileLineForm, compoundName, computeColumnLabel, computeLabel, createAnalyticsEngineForBlock, createCalcEngine, createCompiler, createDialectStack, createMetricPresentationPolicy, createMockClock, createParser, dialectRegistry, dialectStack, diffStatement, evaluate, evaluateCalculateDefinitions, extractMetrics, extractStatements, findBestFuzzyMatch, findUnresolvedChoices, frozenNow, getAnalyticsFromLogs, getHints, getMetricVisibility, getRuntimeNowMs, hasHint, hintMetric, hintsToContainer, isCastSubscription, isChoiceResolved, isTimeLikeMetric, isWithinThreshold, levenshteinDistance, metricPresentation, normalizeForFuzzy, outputNodeId, outputNodeIds, parseCalcLine, parseCalculateBlock, parseExpression, parseMetricLine, parseScript, realtimeProcessorRegistry, renderMetric, strategyRegistry, summaryProcessorRegistry, toStoredOutputStatement, truthy, wallClockNow, whiteboardParser, whiteboardScript, whiteboardScriptLanguage, writeChoiceSelection } from '@bitcobblers/wod-wiki-lang';
5
5
  export { BlockTimerDisplay, BlockTimerDisplayProps, ScriptRuntimeProvider, ScriptRuntimeProviderProps, UseRuntimeExecutionReturn, useActiveControls, useBlockMemory, useLiveAnalytics, useMemorySubscription, useNextPreview, useOutputStatements, usePrimaryTimer, useRoundDisplay, useRuntimeExecution, useScriptRuntime, useSecondaryTimers, useSnapshotBlocks, useStackDisplayRows, useStackFragmentSources, useStackSnapshot, useStackTimers, useTimerDisplay, useTimerElapsed } from '@bitcobblers/wod-wiki-lang/react';
6
- import { UnifiedEventStore, QueryResult, RowsQueryResult, FindQueryResult } from '@bitcobblers/wod-wiki-wql';
7
- export { Aggregator, AnyParsedQuery, BlockQueryStore, ComparisonOp, DASHBOARD_GRID_MAX_COLS, DASHBOARD_WIDGET_TYPES, DEFAULT_DASHBOARD_TITLE, DashboardDocument, DashboardMeta, DashboardToken, DashboardWidget, EffortQueryStore, FindOptions, FindPredicate, FindQueryResult, MetricPredicate, NoteQueryStore, PLANNED_WIDGET_TYPES, ParsedAggregateQuery, ParsedFindQuery, ParsedRowsQuery, QueryOptions, QueryResult, QueryService, QueryServiceStores, QueryWidgetSuffix, QueryWindow, RowsQueryResult, RowsRun, Series, SeriesPoint, TagFilter, TagValue, UnifiedEventStore, WQL_AGGREGATORS, WQL_CALC_TARGETS, WQL_COMPARISON_OPS, WQL_CONTENT_FILTER_KEYS, WQL_DISPLAY_UNITS, WQL_FIND_TARGETS, WQL_GRAINS, WQL_INTENSITY_TIERS, WQL_KEYWORDS, WQL_METRIC_AGGREGATES, WQL_METRIC_FAMILIES, WQL_RESULT_PLANES, WQL_ROLLUP_PERIODS, WQL_ROWS_SCOPE_KEYS, WQL_ROWS_TARGETS, WQL_SOURCES, WQL_SOURCE_VALUES, WQL_TAG_KEYS, WQL_VIRTUAL_DIMS, buildDashboardDocument, buildDashboardScaffold, dashboardSlug, defaultTokenValues, extractDashboardTokens, isAggregateQuery, isDashboardMeta, isDashboardWidgetType, isFindQuery, isRowsQuery, normalizeWql, parseQuery, parseQueryWidgetSuffix, parseWqlSuffixes, resolveWidgetType, serialize, splitAtWhere, splitWidgetBody, substituteTokens, unknownTokensMessage, unknownWidgetTypeMessage, wql, wqlLanguage, wqlParser, wqlTerms } from '@bitcobblers/wod-wiki-wql';
6
+ import { EventStore, QueryServiceStores, QueryResult, RowsQueryResult, FindQueryResult, PipelineResult } from '@bitcobblers/wod-wiki-wql';
7
+ export { Aggregator, AnyParsedQuery, BlockQueryStore, ComparisonOp, DASHBOARD_GRID_MAX_COLS, DASHBOARD_WIDGET_TYPES, DEFAULT_DASHBOARD_TITLE, DashboardDocument, DashboardMeta, DashboardToken, DashboardWidget, EffortQueryStore, EventStore, FindOptions, FindPredicate, FindQueryResult, MetricPredicate, NoteQueryStore, PLANNED_WIDGET_TYPES, ParsedAggregateQuery, ParsedFindQuery, ParsedPipelineQuery, ParsedRowsQuery, PipelineSink, PipelineSource, QueryOptions, QueryResult, QueryService, QueryServiceStores, QueryWidgetSuffix, QueryWindow, RowsQueryResult, RowsRun, Series, SeriesPoint, TagFilter, TagValue, WQL_AGGREGATORS, WQL_CALC_TARGETS, WQL_CHART_HEADS, WQL_COMPARISON_OPS, WQL_CONTENT_FILTER_KEYS, WQL_DISPLAY_UNITS, WQL_FIND_TARGETS, WQL_FUNCTION_HEADS, WQL_GRAINS, WQL_INTENSITY_TIERS, WQL_KEYWORDS, WQL_METRIC_AGGREGATES, WQL_METRIC_FAMILIES, WQL_RESULT_PLANES, WQL_ROLLUP_PERIODS, WQL_SOURCES, WQL_SOURCE_HEADS, WQL_SOURCE_VALUES, WQL_STANDARD_DATASETS, WQL_TAG_KEYS, WQL_VIRTUAL_DIMS, WqlChartHead, buildDashboardDocument, buildDashboardScaffold, dashboardSlug, defaultTokenValues, extractDashboardTokens, isAggregateQuery, isDashboardMeta, isDashboardWidgetType, isFindQuery, isPipelineQuery, normalizeWql, parseQuery, parseQueryWidgetSuffix, parseWqlSuffixes, resolveWidgetType, serialize, splitAtWhere, substituteTokens, unknownTokensMessage, unknownWidgetTypeMessage, wql, wqlLanguage, wqlParser, wqlTerms } from '@bitcobblers/wod-wiki-wql';
8
+ import { Session as Session$1, Note as Note$1, NoteSegment as NoteSegment$1 } from '@bitcobblers/wod-wiki-storage';
8
9
 
9
10
  /**
10
11
  * Language Pack API — umbrella sugar over per-package slices
@@ -43,20 +44,11 @@ declare function getRegisteredLanguagePacks(): LanguagePack[];
43
44
  * In-memory UnifiedEventStore — the state-free store seam for QueryService,
44
45
  * the CLI query runner, and the Storybook workbench.
45
46
  *
46
- * Two adapters over one in-memory row list:
47
- * - factRowsToEventRows: legacy flat fact fixtures → summary event rows
47
+ * One adapter over an in-memory row list:
48
48
  * - inMemoryEventStore: the UnifiedEventStore contract (ticket 003)
49
49
  */
50
50
 
51
- /** Wrap legacy flat fact fixtures into summary event rows — the inverse of
52
- * QueryService's projectEventToFacts, so golden fixtures keep working. */
53
- declare function factRowsToEventRows(facts: readonly AnalyticsDataPoint[]): UnifiedEventRecord[];
54
- declare function inMemoryEventStore(events: readonly UnifiedEventRecord[]): UnifiedEventStore;
55
- /** Convenience: build the store directly from legacy flat fact fixtures.
56
- * Note tags are a NoteQueryStore concern under the unified seam (ticket 003). */
57
- declare function inMemoryEventStoreFromFacts(facts: readonly AnalyticsDataPoint[]): UnifiedEventStore;
58
- /** Backward-compatible alias for inMemoryEventStoreFromFacts. */
59
- declare const inMemoryFactStore: typeof inMemoryEventStoreFromFacts;
51
+ declare function inMemoryEventStore(events: readonly EventRecord[]): EventStore;
60
52
 
61
53
  /**
62
54
  * Pure JSON Intermediate Representation (IR) Schemas & Envelope
@@ -67,7 +59,7 @@ declare const inMemoryFactStore: typeof inMemoryEventStoreFromFacts;
67
59
  * versioned envelope safe for JSON round-trips.
68
60
  */
69
61
 
70
- type IrKind = 'fact-set' | 'result-set' | 'note-set' | 'corpus' | 'query-result' | 'find-result' | 'rows-result' | 'parse-tree' | 'execution-log';
62
+ type IrKind = 'fact-set' | 'result-set' | 'note-set' | 'corpus' | 'query-result' | 'find-result' | 'rows-result' | 'pipeline-result' | 'parse-tree' | 'execution-log';
71
63
  /**
72
64
  * Universal JSON envelope for all headless IR fixtures and output artifacts.
73
65
  */
@@ -113,7 +105,7 @@ interface CorpusIRData {
113
105
  notes?: Note[];
114
106
  segments?: NoteSegment[];
115
107
  blocks?: BlockIndexRow[];
116
- results?: WorkoutResult[];
108
+ results?: Session[];
117
109
  facts?: AnalyticsDataPoint[];
118
110
  efforts?: IEffort[];
119
111
  logs?: StoredOutputStatement[];
@@ -188,10 +180,14 @@ interface QueryCliOptions {
188
180
  stdinFacts?: string;
189
181
  preferredUnit?: string;
190
182
  sourceLabel?: string;
183
+ /** Pre-built store bundle (e.g. sqlite-backed). When set, the corpus/stdin
184
+ * dataset options are ignored. */
185
+ stores?: QueryServiceStores;
191
186
  }
192
187
  interface LoadedData {
188
+ eventRecords: EventRecord[];
193
189
  facts: AnalyticsDataPoint[];
194
- results: WorkoutResult[];
190
+ results: Session[];
195
191
  notes: Note[];
196
192
  blocks: BlockIndexRow[];
197
193
  efforts: IEffort[];
@@ -201,7 +197,7 @@ declare function loadQueryData(options: QueryCliOptions): LoadedData;
201
197
  /**
202
198
  * Runs a WQL query against the provided in-memory dataset and returns a versioned IR envelope.
203
199
  */
204
- declare function runQueryCli(wqlString: string, options?: QueryCliOptions): Promise<WodWikiIRFile<QueryResult | RowsQueryResult | FindQueryResult>>;
200
+ declare function runQueryCli(wqlString: string, options?: QueryCliOptions): Promise<WodWikiIRFile<QueryResult | RowsQueryResult | FindQueryResult | PipelineResult>>;
205
201
 
206
202
  /**
207
203
  * Dynamic Language Pack Loader
@@ -239,9 +235,9 @@ declare function formatParseOutput(ir: WodWikiIRFile<StatementNode>, format: Out
239
235
  */
240
236
  declare function formatExecutionOutput(ir: WodWikiIRFile<ExecutionLog>, format: OutputFormat, pretty?: boolean): string;
241
237
  /**
242
- * Format QueryResult / RowsQueryResult / FindQueryResult
238
+ * Format QueryResult / RowsQueryResult / FindQueryResult / PipelineResult
243
239
  */
244
- declare function formatQueryOutput(ir: WodWikiIRFile<QueryResult | RowsQueryResult | FindQueryResult>, format: OutputFormat, pretty?: boolean): string;
240
+ declare function formatQueryOutput(ir: WodWikiIRFile<QueryResult | RowsQueryResult | FindQueryResult | PipelineResult>, format: OutputFormat, pretty?: boolean): string;
245
241
 
246
242
  /**
247
243
  * Unified `wod` CLI Runner
@@ -257,8 +253,10 @@ declare function formatQueryOutput(ir: WodWikiIRFile<QueryResult | RowsQueryResu
257
253
  */
258
254
 
259
255
  interface CliParsedArgs {
260
- subcommand?: 'parse' | 'run' | 'query' | 'help' | 'version';
256
+ subcommand?: 'parse' | 'run' | 'query' | 'download' | 'import' | 'build' | 'seed' | 'reset' | 'help' | 'version';
261
257
  target?: string;
258
+ /** Second positional: the id (download) or file (import) after the kind. */
259
+ target2?: string;
262
260
  corpus?: string;
263
261
  stdinLog?: boolean;
264
262
  stdinFacts?: boolean;
@@ -269,6 +267,20 @@ interface CliParsedArgs {
269
267
  unit?: string;
270
268
  help?: boolean;
271
269
  version?: boolean;
270
+ /** Compose a note markdown as-of this segment version (`download note`). */
271
+ at?: string;
272
+ /** SQLite database path (--db). Defaults to WOD_WIKI_DB or ./wodwiki.db. */
273
+ db?: string;
274
+ /** IR debug output: undefined = off, '' = default file name, otherwise the file name. */
275
+ debug?: string;
276
+ /** Extra seed source directories for `wod seed` (repeatable). */
277
+ sources: string[];
278
+ /** `wod build`: scaffold markdown stubs for newly discovered efforts. */
279
+ scaffold?: boolean;
280
+ /** `wod build`: extra template markdown file compiled as the `template` chunk. */
281
+ template?: string;
282
+ /** `wod build`: content repo root (alias for the positional directory). */
283
+ dir?: string;
272
284
  }
273
285
  declare function parseCliArgs(args: string[]): CliParsedArgs;
274
286
  declare function readStdin(): Promise<string>;
@@ -281,17 +293,122 @@ declare function cliMain(argv?: string[], io?: {
281
293
  readStdinFn?: () => Promise<string>;
282
294
  }): Promise<number>;
283
295
 
296
+ /**
297
+ * Import / Export exchange formats for notes and sessions.
298
+ *
299
+ * Pure row→string / string→row transforms with NO storage or fs coupling,
300
+ * so the playground website can offer the same downloads/uploads against
301
+ * IndexedDB rows while the CLI uses them over sqlite. Round-trip is a
302
+ * design requirement: every export carries the identity needed to import
303
+ * back into the same database (upsert) or into a clean one (recreate).
304
+ *
305
+ * - Notes → markdown composed from segment rows (as-of a chosen version),
306
+ * with a `wod-note-id` frontmatter key stamped for identity. `wod parse`
307
+ * adopts that identity, so edit-and-re-parse updates the same note.
308
+ * - Sessions → one CSV row per metric (event + summary grains), session
309
+ * fields repeated per row plus one session-only anchor row, so a clean
310
+ * import recreates the session and its events verbatim.
311
+ */
312
+
313
+ /** Identity stamped into exported note markdown so imports can find their note. */
314
+ declare const NOTE_ID_FRONTMATTER_KEY = "wod-note-id";
315
+ interface NoteIdentity {
316
+ noteId: string;
317
+ title?: string;
318
+ }
319
+ /** Read the stamped note identity from the leading frontmatter block, if any. */
320
+ declare function extractNoteIdentity(markdown: string): NoteIdentity | undefined;
321
+ /**
322
+ * Ensure the leading frontmatter carries `title` + `wod-note-id`. Existing
323
+ * keys are replaced in place; a missing block is prepended. Scalars needing
324
+ * YAML quoting are skipped (the note row title is authoritative in storage).
325
+ */
326
+ declare function injectIdentityFrontmatter(markdown: string, identity: NoteIdentity): string;
327
+ /**
328
+ * Compose a note's markdown as-of `version` (default: latest). Per segment
329
+ * id the row with the highest version ≤ the target wins — versions beyond
330
+ * the target never appear, segments that never reached it contribute their
331
+ * latest. The result is stamped with the note identity for re-import.
332
+ */
333
+ declare function composeNoteMarkdown(note: Note$1, segments: readonly NoteSegment$1[], version?: number): string;
334
+ interface TypedTagItem {
335
+ label: string;
336
+ type?: string;
337
+ }
338
+ /**
339
+ * Minimal frontmatter reader (the corpus subset): `key: scalar`, `key:` +
340
+ * `- item` lists, and inline `[a, b]` lists. Keys are lowercased. Returns {}
341
+ * when no leading block exists.
342
+ */
343
+ declare function readFrontmatterMeta(markdown: string): Record<string, string | string[]>;
344
+ /**
345
+ * Extract a note's frontmatter tags: the general `tags:` list plus typed
346
+ * keys (equipment, quality, domain, format, intent by default — the WQL
347
+ * typed-tag vocabulary). Mirrors the playground's
348
+ * `extractTypedFrontmatterTags` (frontmatter.ts) so CLI and app imports
349
+ * classify identically.
350
+ */
351
+ declare function extractTypedTags(markdown: string, typedKeys?: readonly string[]): TypedTagItem[];
352
+ interface EffortFileFields {
353
+ id: string;
354
+ slug: string;
355
+ label: string;
356
+ aliases: string[];
357
+ baseAttributes: Record<string, unknown>;
358
+ body?: string;
359
+ }
360
+ /**
361
+ * Parse a corpus-style effort markdown file: frontmatter `id`/`slug`/`label`
362
+ * (required), `aliases` list, one-level scalar `baseAttributes` with a
363
+ * numeric `met`, plus an optional markdown body. Parity with the seed
364
+ * importer's effort materialization.
365
+ */
366
+ declare function markdownToEffort(raw: string): EffortFileFields | null;
367
+ /** Compose an effort registry row back into corpus-style markdown. */
368
+ declare function effortToMarkdown(effort: {
369
+ id: string;
370
+ slug: string;
371
+ label: string;
372
+ aliases?: string[];
373
+ baseAttributes: Record<string, unknown>;
374
+ body?: string;
375
+ }): string;
376
+ /** One-label-per-row CSV (header `label`) for equipment catalogs. */
377
+ declare function equipmentToCsv(labels: readonly string[]): string;
378
+ declare function csvToEquipmentLabels(csv: string): string[];
379
+ declare const SESSION_CSV_HEADER: ("duration" | "dialect" | "origin" | "completed" | "metricType" | "sourceBlockKey" | "timestamp" | "noteId" | "sessionId" | "segmentId" | "segmentVersion" | "blockId" | "blockContentId" | "status" | "startTime" | "endTime" | "sessionCreatedAt" | "eventId" | "grain" | "outputType" | "pageId" | "effortSlug" | "eventSegmentId" | "eventSegmentVersion" | "eventBlockContentId" | "eventOrigin" | "timeSpan" | "sourceStatementId" | "line" | "text" | "stackLevel" | "completionReason" | "representationKind" | "metricValue" | "metricUnit" | "metricImage" | "metricOrigin" | "metricMetadata" | "metricTemporal" | "metricJson" | "eventExtraJson")[];
380
+ /**
381
+ * Serialize a session + its events to CSV — one row per metric, preceded by
382
+ * one session anchor row (empty event columns). Import with
383
+ * {@link csvToSessionRows}.
384
+ */
385
+ declare function sessionToCsv(session: Session$1, events: readonly EventRecord[]): string;
386
+ /** Parse one CSV line, honoring double-quoted fields (RFC 4180 subset). */
387
+ declare function parseCsvLine(line: string): string[];
388
+ /** Split CSV into records on newlines that are NOT inside quoted fields. */
389
+ declare function splitCsvRecords(csv: string): string[];
390
+ interface SessionImportRows {
391
+ session: Session$1;
392
+ events: EventRecord[];
393
+ }
394
+ /**
395
+ * Parse {@link sessionToCsv} output back into a session + event rows.
396
+ * The session anchor row may be absent (pure event export) as long as
397
+ * session columns are present on the event rows.
398
+ */
399
+ declare function csvToSessionRows(csv: string): SessionImportRows;
400
+
284
401
  /**
285
402
  * Auto-generated build version metadata.
286
403
  * Do not edit directly; updated by scripts/stamp-version.ts
287
404
  */
288
- declare const VERSION = "0.10.42";
289
- declare const GIT_SHA = "79c6d18";
290
- declare const BUILD_TIME = "2026-08-26T04:44:54.356Z";
405
+ declare const VERSION = "0.35.2115";
406
+ declare const GIT_SHA = "37944a8";
407
+ declare const BUILD_TIME = "2026-10-11T23:54:36.367Z";
291
408
  declare const SEMVER: {
292
- readonly version: "0.10.42";
293
- readonly gitSha: "79c6d18";
294
- readonly buildTime: "2026-08-26T04:44:54.356Z";
409
+ readonly version: "0.35.2115";
410
+ readonly gitSha: "37944a8";
411
+ readonly buildTime: "2026-10-11T23:54:36.367Z";
295
412
  };
296
413
 
297
- export { BUILD_TIME, type CliParsedArgs, type CorpusIRData, type ExecutionLog, GIT_SHA, type IrKind, type LanguagePack, type LanguagePackIdentity, type LanguagePackLangSlice, type LanguagePackUiSlice, type MetricNode, type OutputFormat, PackLoadError, type ParseOptions, ParseSyntaxError, type QueryCliOptions, type RunOptions, SEMVER, type StatementNode, VERSION, type WodWikiIRFile, WqlSyntaxError, buildStatementTree, buildWorkoutResults, cliMain, createIRFile, defineLanguagePack, factRowsToEventRows, formatExecutionOutput, formatParseOutput, formatQueryOutput, getRegisteredLanguagePacks, inMemoryEventStore, inMemoryEventStoreFromFacts, inMemoryFactStore, isIRFile, listLanguagePacks, loadLanguagePack, loadQueryData, parseCliArgs, readStdin, registerLanguagePack, runExecution, runParse, runQueryCli, statementToNode, unregisterLanguagePack };
414
+ export { BUILD_TIME, type CliParsedArgs, type CorpusIRData, type EffortFileFields, type ExecutionLog, GIT_SHA, type IrKind, type LanguagePack, type LanguagePackIdentity, type LanguagePackLangSlice, type LanguagePackUiSlice, type MetricNode, NOTE_ID_FRONTMATTER_KEY, type NoteIdentity, type OutputFormat, PackLoadError, type ParseOptions, ParseSyntaxError, type QueryCliOptions, type RunOptions, SEMVER, SESSION_CSV_HEADER, type SessionImportRows, type StatementNode, type TypedTagItem, VERSION, type WodWikiIRFile, WqlSyntaxError, buildStatementTree, buildWorkoutResults, cliMain, composeNoteMarkdown, createIRFile, csvToEquipmentLabels, csvToSessionRows, defineLanguagePack, effortToMarkdown, equipmentToCsv, extractNoteIdentity, extractTypedTags, formatExecutionOutput, formatParseOutput, formatQueryOutput, getRegisteredLanguagePacks, inMemoryEventStore, injectIdentityFrontmatter, isIRFile, listLanguagePacks, loadLanguagePack, loadQueryData, markdownToEffort, parseCliArgs, parseCsvLine, readFrontmatterMeta, readStdin, registerLanguagePack, runExecution, runParse, runQueryCli, sessionToCsv, splitCsvRecords, statementToNode, unregisterLanguagePack };
package/dist/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
- import { IDialect, AnalyticsDataPoint, UnifiedEventRecord, Note, NoteSegment, BlockIndexRow, WorkoutResult, StoredOutputStatement, WorkoutResults, ICodeStatement, IOutputStatement } from '@bitcobblers/wod-wiki-core';
1
+ import { IDialect, EventRecord, Note, NoteSegment, BlockIndexRow, Session, AnalyticsDataPoint, StoredOutputStatement, WorkoutResults, ICodeStatement, IOutputStatement } from '@bitcobblers/wod-wiki-core';
2
2
  export * from '@bitcobblers/wod-wiki-core';
3
3
  import { IRealtimeProcessor, ISummaryProcessor, IEffort, IScript, INowProvider } from '@bitcobblers/wod-wiki-lang';
4
- export { ABSENT, AGGREGATE_BUILTINS, AUTHORITATIVE_CASTS, AmrapLogicStrategy, AnalyticsContext, AnalyticsEngine, AnalyticsProfileContext, AnalyticsResult, AnalyticsTransformer, BUILTIN_CALCS, BUNDLED_EFFORT_COUNT, BehaviorContext, BehaviorEventListener, BehaviorEventType, BlockBuilder, BlockContext, BlockLifecycleOptions, ButtonBehavior, CONSUMED_HINTS, CONSUMED_HINT_KEYS, CONTEXT_ATOMS, CalcDefinition, CalcEngine, CalcOrigin, CalcScope, CalculateBlockProcessor, CalculationDefinition, CalculationRegistry, CardioDialect, ChildSelectionBehavior, ChildrenStrategy, ChoiceGroupMetric, ClimbDialect, ClimbMetricType, CompletionDecision, CountdownTimerBehavior, CountupTimerBehavior, CrossFitDialect, DEFAULT_RESOLVER_OPTIONS, DEFAULT_RUNTIME_OPTIONS, DEFAULT_UNRESOLVED_EFFORT_MET, DIM_LENGTH, DIM_MASS, DIM_TIME, DIM_ZERO, DialectStack, DimVector, EFFORT_DATA_METRIC_TYPE, EFFORT_REGISTRY_ORIGINS, EffortBaseAttributes, EffortDerivation, EffortFallbackStrategy, EffortRegistrySource, EffortResolutionOptions, EffortResolver, EffortResolverOptions, ErrorAction, EventBus, EventCallback, EventHandlerOptions, ExecutionContext, ExecutionStatus, ExitBehavior, ExprNode, GenericGroupStrategy, GenericLoopStrategy, GenericTimerStrategy, HabitsDialect, IAnalyticsEngine, IAnalyticsProcessorDescriptor, IAnalyticsProfile, IAnchorValue, IBehaviorContext, IBlockContext, ICastSubscription, IEffort, IEffortRegistry, IEffortResolver, IEvent, IEventBus, IEventHandler, IJitCompiler, ILookupTable, IMemoryLocation, IMemoryReference, IMetricPresentationPolicy, INTENSITY_TIERS, INowProvider, IRealtimeProcessor, IRuntimeAction, IRuntimeActionable, IRuntimeBehavior, IRuntimeBlock, IRuntimeBlockStrategy, IRuntimeClock, IRuntimeEventProvider, IRuntimeFactory, IRuntimeMemory, IRuntimeStack, IRuntimeSubscription, IScript, IScriptRuntime, ISummaryProcessor, InMemoryEffortRegistry, IntensityTier, InterceptMode, IntervalLogicStrategy, JitCompiler, LabelingBehavior, LineFormScope, LocalRuntimeSubscription, LookupRegistry, MdTimerRuntime, MemoryEntry, MemoryLocation, MemoryTag, MemoryTypeEnum, MetricPresentationSurface, MetricPresentationToken, MetricRenderKind, MetricTone, MetricVisibility, MockClock, NextEvent, OutputEmitter, OutputListener, PRODUCTION_STRATEGIES, PopBlockAction, ProjectionResult, PushBlockAction, RegisterEventHandlerAction, Registry, ReportOutputBehavior, ReportOutputStrategy, ResolvedEffort, ResolvedEffortData, RoundState, RoundsMetric, RuntimeAdapter, RuntimeBlock, RuntimeBlockOptions, RuntimeClock, RuntimeController, RuntimeError, RuntimeFactory, RuntimeLogger, RuntimeMemory, RuntimeObservers, RuntimeStack, RuntimeStackOptions, STORE_CALCS, STREAM_ATOMS, ScriptRuntime, ScriptRuntimeDependencies, SegmentWithMetadata, SessionRootStrategy, SnapshotClock, SoundCueBehavior, SoundStrategy, StackEvent, StackListener, StackObserver, StackSnapshot, StandardAnalyticsProfile, StartSessionAction, StartSessionOptions, StartWorkoutAction, SubscribeOptions, SubscriptionManager, TestableBlockConfig, TimeSpan, TimerState, TwoPassEffortResolutionProcess, TypedMemoryReference, UNITS, UnitsDialect, UnregisterEventHandlerAction, Unsubscribe, VISIBILITY_ICONS, VISIBILITY_LABELS, Val, WhiteboardScript, WodDialect, YogaDialect, buildTooltip, bundledEfforts, calculateElapsed, collapseUnresolvedChoices, compileLineForm, compoundName, computeColumnLabel, computeLabel, createAnalyticsEngineForBlock, createCalcEngine, createCompiler, createDialectStack, createMetricPresentationPolicy, createMockClock, createParser, dialectRegistry, dialectStack, evaluate, evaluateCalculateDefinitions, extractMetrics, extractStatements, findBestFuzzyMatch, findUnresolvedChoices, frozenNow, getAnalyticsFromLogs, getHints, getMetricVisibility, getRuntimeNowMs, hasHint, hintMetric, hintsToContainer, isCastSubscription, isChoiceResolved, isTimeLikeMetric, isWithinThreshold, levenshteinDistance, metricPresentation, normalizeForFuzzy, outputNodeId, outputNodeIds, parseCalcLine, parseCalculateBlock, parseExpression, parseScript, realtimeProcessorRegistry, strategyRegistry, summaryProcessorRegistry, toStoredOutputStatement, truthy, wallClockNow, whiteboardParser, whiteboardScript, whiteboardScriptLanguage, writeChoiceSelection } from '@bitcobblers/wod-wiki-lang';
4
+ export { ABSENT, AGGREGATE_BUILTINS, AUTHORITATIVE_CASTS, AmrapLogicStrategy, AnalyticsContext, AnalyticsEngine, AnalyticsProfileContext, AnalyticsResult, AnalyticsTransformer, BUILTIN_CALCS, BUNDLED_EFFORT_COUNT, BehaviorContext, BehaviorEventListener, BehaviorEventType, BlockBuilder, BlockContext, BlockLifecycleOptions, ButtonBehavior, CONSUMED_HINTS, CONSUMED_HINT_KEYS, CONTEXT_ATOMS, CalcDefinition, CalcEngine, CalcOrigin, CalcScope, CalculateBlockProcessor, CalculationDefinition, CalculationRegistry, CardioDialect, ChildSelectionBehavior, ChildrenStrategy, ChoiceGroupMetric, ClimbDialect, ClimbMetricType, CompletionDecision, CountdownTimerBehavior, CountupTimerBehavior, CrossFitDialect, DEFAULT_RESOLVER_OPTIONS, DEFAULT_RUNTIME_OPTIONS, DEFAULT_UNRESOLVED_EFFORT_MET, DIM_LENGTH, DIM_MASS, DIM_TIME, DIM_ZERO, DialectStack, DimVector, EFFORT_DATA_METRIC_TYPE, EFFORT_REGISTRY_ORIGINS, EffortBaseAttributes, EffortDerivation, EffortFallbackStrategy, EffortRegistrySource, EffortResolutionOptions, EffortResolver, EffortResolverOptions, ErrorAction, EventBus, EventCallback, EventHandlerOptions, ExecutionContext, ExecutionStatus, ExitBehavior, ExprNode, FixtureSyntaxError, GenericGroupStrategy, GenericLoopStrategy, GenericTimerStrategy, HabitsDialect, IAnalyticsEngine, IAnalyticsProcessorDescriptor, IAnalyticsProfile, IAnchorValue, IBehaviorContext, IBlockContext, ICastSubscription, IEffort, IEffortRegistry, IEffortResolver, IEvent, IEventBus, IEventHandler, IJitCompiler, ILookupTable, IMemoryLocation, IMemoryReference, IMetricPresentationPolicy, INTENSITY_TIERS, INowProvider, IRealtimeProcessor, IRuntimeAction, IRuntimeActionable, IRuntimeBehavior, IRuntimeBlock, IRuntimeBlockStrategy, IRuntimeClock, IRuntimeEventProvider, IRuntimeFactory, IRuntimeMemory, IRuntimeStack, IRuntimeSubscription, IScript, IScriptRuntime, ISummaryProcessor, InMemoryEffortRegistry, IntensityTier, InterceptMode, IntervalLogicStrategy, JitCompiler, LabelingBehavior, LineFormScope, LiteralKind, LocalRuntimeSubscription, LookupRegistry, MatchMode, MdTimerRuntime, MemoryEntry, MemoryLocation, MemoryTag, MemoryTypeEnum, MetricLine, MetricPresentationSurface, MetricPresentationToken, MetricRenderKind, MetricTone, MetricVisibility, MockClock, NextEvent, OutputEmitter, OutputListener, PRODUCTION_STRATEGIES, PopBlockAction, ProjectionResult, PushBlockAction, RegisterEventHandlerAction, Registry, ReportOutputBehavior, ReportOutputStrategy, ResolvedEffort, ResolvedEffortData, RoundState, RoundsMetric, RuntimeAdapter, RuntimeBlock, RuntimeBlockOptions, RuntimeClock, RuntimeController, RuntimeError, RuntimeFactory, RuntimeLogger, RuntimeMemory, RuntimeObservers, RuntimeStack, RuntimeStackOptions, STORE_CALCS, STREAM_ATOMS, ScriptRuntime, ScriptRuntimeDependencies, SegmentWithMetadata, SessionRootStrategy, SnapshotClock, SoundCueBehavior, SoundStrategy, StackEvent, StackListener, StackObserver, StackSnapshot, StandardAnalyticsProfile, StartSessionAction, StartSessionOptions, StartWorkoutAction, StatementMetricDiff, SubscribeOptions, SubscriptionManager, TestableBlockConfig, TimeSpan, TimerState, TwoPassEffortResolutionProcess, TypedMemoryReference, UNITS, UnitsDialect, UnregisterEventHandlerAction, Unsubscribe, VISIBILITY_ICONS, VISIBILITY_LABELS, Val, WhiteboardScript, WodDialect, YogaDialect, buildTooltip, bundledEfforts, calculateElapsed, canonicalizeType, collapseUnresolvedChoices, compareStatement, compileLineForm, compoundName, computeColumnLabel, computeLabel, createAnalyticsEngineForBlock, createCalcEngine, createCompiler, createDialectStack, createMetricPresentationPolicy, createMockClock, createParser, dialectRegistry, dialectStack, diffStatement, evaluate, evaluateCalculateDefinitions, extractMetrics, extractStatements, findBestFuzzyMatch, findUnresolvedChoices, frozenNow, getAnalyticsFromLogs, getHints, getMetricVisibility, getRuntimeNowMs, hasHint, hintMetric, hintsToContainer, isCastSubscription, isChoiceResolved, isTimeLikeMetric, isWithinThreshold, levenshteinDistance, metricPresentation, normalizeForFuzzy, outputNodeId, outputNodeIds, parseCalcLine, parseCalculateBlock, parseExpression, parseMetricLine, parseScript, realtimeProcessorRegistry, renderMetric, strategyRegistry, summaryProcessorRegistry, toStoredOutputStatement, truthy, wallClockNow, whiteboardParser, whiteboardScript, whiteboardScriptLanguage, writeChoiceSelection } from '@bitcobblers/wod-wiki-lang';
5
5
  export { BlockTimerDisplay, BlockTimerDisplayProps, ScriptRuntimeProvider, ScriptRuntimeProviderProps, UseRuntimeExecutionReturn, useActiveControls, useBlockMemory, useLiveAnalytics, useMemorySubscription, useNextPreview, useOutputStatements, usePrimaryTimer, useRoundDisplay, useRuntimeExecution, useScriptRuntime, useSecondaryTimers, useSnapshotBlocks, useStackDisplayRows, useStackFragmentSources, useStackSnapshot, useStackTimers, useTimerDisplay, useTimerElapsed } from '@bitcobblers/wod-wiki-lang/react';
6
- import { UnifiedEventStore, QueryResult, RowsQueryResult, FindQueryResult } from '@bitcobblers/wod-wiki-wql';
7
- export { Aggregator, AnyParsedQuery, BlockQueryStore, ComparisonOp, DASHBOARD_GRID_MAX_COLS, DASHBOARD_WIDGET_TYPES, DEFAULT_DASHBOARD_TITLE, DashboardDocument, DashboardMeta, DashboardToken, DashboardWidget, EffortQueryStore, FindOptions, FindPredicate, FindQueryResult, MetricPredicate, NoteQueryStore, PLANNED_WIDGET_TYPES, ParsedAggregateQuery, ParsedFindQuery, ParsedRowsQuery, QueryOptions, QueryResult, QueryService, QueryServiceStores, QueryWidgetSuffix, QueryWindow, RowsQueryResult, RowsRun, Series, SeriesPoint, TagFilter, TagValue, UnifiedEventStore, WQL_AGGREGATORS, WQL_CALC_TARGETS, WQL_COMPARISON_OPS, WQL_CONTENT_FILTER_KEYS, WQL_DISPLAY_UNITS, WQL_FIND_TARGETS, WQL_GRAINS, WQL_INTENSITY_TIERS, WQL_KEYWORDS, WQL_METRIC_AGGREGATES, WQL_METRIC_FAMILIES, WQL_RESULT_PLANES, WQL_ROLLUP_PERIODS, WQL_ROWS_SCOPE_KEYS, WQL_ROWS_TARGETS, WQL_SOURCES, WQL_SOURCE_VALUES, WQL_TAG_KEYS, WQL_VIRTUAL_DIMS, buildDashboardDocument, buildDashboardScaffold, dashboardSlug, defaultTokenValues, extractDashboardTokens, isAggregateQuery, isDashboardMeta, isDashboardWidgetType, isFindQuery, isRowsQuery, normalizeWql, parseQuery, parseQueryWidgetSuffix, parseWqlSuffixes, resolveWidgetType, serialize, splitAtWhere, splitWidgetBody, substituteTokens, unknownTokensMessage, unknownWidgetTypeMessage, wql, wqlLanguage, wqlParser, wqlTerms } from '@bitcobblers/wod-wiki-wql';
6
+ import { EventStore, QueryServiceStores, QueryResult, RowsQueryResult, FindQueryResult, PipelineResult } from '@bitcobblers/wod-wiki-wql';
7
+ export { Aggregator, AnyParsedQuery, BlockQueryStore, ComparisonOp, DASHBOARD_GRID_MAX_COLS, DASHBOARD_WIDGET_TYPES, DEFAULT_DASHBOARD_TITLE, DashboardDocument, DashboardMeta, DashboardToken, DashboardWidget, EffortQueryStore, EventStore, FindOptions, FindPredicate, FindQueryResult, MetricPredicate, NoteQueryStore, PLANNED_WIDGET_TYPES, ParsedAggregateQuery, ParsedFindQuery, ParsedPipelineQuery, ParsedRowsQuery, PipelineSink, PipelineSource, QueryOptions, QueryResult, QueryService, QueryServiceStores, QueryWidgetSuffix, QueryWindow, RowsQueryResult, RowsRun, Series, SeriesPoint, TagFilter, TagValue, WQL_AGGREGATORS, WQL_CALC_TARGETS, WQL_CHART_HEADS, WQL_COMPARISON_OPS, WQL_CONTENT_FILTER_KEYS, WQL_DISPLAY_UNITS, WQL_FIND_TARGETS, WQL_FUNCTION_HEADS, WQL_GRAINS, WQL_INTENSITY_TIERS, WQL_KEYWORDS, WQL_METRIC_AGGREGATES, WQL_METRIC_FAMILIES, WQL_RESULT_PLANES, WQL_ROLLUP_PERIODS, WQL_SOURCES, WQL_SOURCE_HEADS, WQL_SOURCE_VALUES, WQL_STANDARD_DATASETS, WQL_TAG_KEYS, WQL_VIRTUAL_DIMS, WqlChartHead, buildDashboardDocument, buildDashboardScaffold, dashboardSlug, defaultTokenValues, extractDashboardTokens, isAggregateQuery, isDashboardMeta, isDashboardWidgetType, isFindQuery, isPipelineQuery, normalizeWql, parseQuery, parseQueryWidgetSuffix, parseWqlSuffixes, resolveWidgetType, serialize, splitAtWhere, substituteTokens, unknownTokensMessage, unknownWidgetTypeMessage, wql, wqlLanguage, wqlParser, wqlTerms } from '@bitcobblers/wod-wiki-wql';
8
+ import { Session as Session$1, Note as Note$1, NoteSegment as NoteSegment$1 } from '@bitcobblers/wod-wiki-storage';
8
9
 
9
10
  /**
10
11
  * Language Pack API — umbrella sugar over per-package slices
@@ -43,20 +44,11 @@ declare function getRegisteredLanguagePacks(): LanguagePack[];
43
44
  * In-memory UnifiedEventStore — the state-free store seam for QueryService,
44
45
  * the CLI query runner, and the Storybook workbench.
45
46
  *
46
- * Two adapters over one in-memory row list:
47
- * - factRowsToEventRows: legacy flat fact fixtures → summary event rows
47
+ * One adapter over an in-memory row list:
48
48
  * - inMemoryEventStore: the UnifiedEventStore contract (ticket 003)
49
49
  */
50
50
 
51
- /** Wrap legacy flat fact fixtures into summary event rows — the inverse of
52
- * QueryService's projectEventToFacts, so golden fixtures keep working. */
53
- declare function factRowsToEventRows(facts: readonly AnalyticsDataPoint[]): UnifiedEventRecord[];
54
- declare function inMemoryEventStore(events: readonly UnifiedEventRecord[]): UnifiedEventStore;
55
- /** Convenience: build the store directly from legacy flat fact fixtures.
56
- * Note tags are a NoteQueryStore concern under the unified seam (ticket 003). */
57
- declare function inMemoryEventStoreFromFacts(facts: readonly AnalyticsDataPoint[]): UnifiedEventStore;
58
- /** Backward-compatible alias for inMemoryEventStoreFromFacts. */
59
- declare const inMemoryFactStore: typeof inMemoryEventStoreFromFacts;
51
+ declare function inMemoryEventStore(events: readonly EventRecord[]): EventStore;
60
52
 
61
53
  /**
62
54
  * Pure JSON Intermediate Representation (IR) Schemas & Envelope
@@ -67,7 +59,7 @@ declare const inMemoryFactStore: typeof inMemoryEventStoreFromFacts;
67
59
  * versioned envelope safe for JSON round-trips.
68
60
  */
69
61
 
70
- type IrKind = 'fact-set' | 'result-set' | 'note-set' | 'corpus' | 'query-result' | 'find-result' | 'rows-result' | 'parse-tree' | 'execution-log';
62
+ type IrKind = 'fact-set' | 'result-set' | 'note-set' | 'corpus' | 'query-result' | 'find-result' | 'rows-result' | 'pipeline-result' | 'parse-tree' | 'execution-log';
71
63
  /**
72
64
  * Universal JSON envelope for all headless IR fixtures and output artifacts.
73
65
  */
@@ -113,7 +105,7 @@ interface CorpusIRData {
113
105
  notes?: Note[];
114
106
  segments?: NoteSegment[];
115
107
  blocks?: BlockIndexRow[];
116
- results?: WorkoutResult[];
108
+ results?: Session[];
117
109
  facts?: AnalyticsDataPoint[];
118
110
  efforts?: IEffort[];
119
111
  logs?: StoredOutputStatement[];
@@ -188,10 +180,14 @@ interface QueryCliOptions {
188
180
  stdinFacts?: string;
189
181
  preferredUnit?: string;
190
182
  sourceLabel?: string;
183
+ /** Pre-built store bundle (e.g. sqlite-backed). When set, the corpus/stdin
184
+ * dataset options are ignored. */
185
+ stores?: QueryServiceStores;
191
186
  }
192
187
  interface LoadedData {
188
+ eventRecords: EventRecord[];
193
189
  facts: AnalyticsDataPoint[];
194
- results: WorkoutResult[];
190
+ results: Session[];
195
191
  notes: Note[];
196
192
  blocks: BlockIndexRow[];
197
193
  efforts: IEffort[];
@@ -201,7 +197,7 @@ declare function loadQueryData(options: QueryCliOptions): LoadedData;
201
197
  /**
202
198
  * Runs a WQL query against the provided in-memory dataset and returns a versioned IR envelope.
203
199
  */
204
- declare function runQueryCli(wqlString: string, options?: QueryCliOptions): Promise<WodWikiIRFile<QueryResult | RowsQueryResult | FindQueryResult>>;
200
+ declare function runQueryCli(wqlString: string, options?: QueryCliOptions): Promise<WodWikiIRFile<QueryResult | RowsQueryResult | FindQueryResult | PipelineResult>>;
205
201
 
206
202
  /**
207
203
  * Dynamic Language Pack Loader
@@ -239,9 +235,9 @@ declare function formatParseOutput(ir: WodWikiIRFile<StatementNode>, format: Out
239
235
  */
240
236
  declare function formatExecutionOutput(ir: WodWikiIRFile<ExecutionLog>, format: OutputFormat, pretty?: boolean): string;
241
237
  /**
242
- * Format QueryResult / RowsQueryResult / FindQueryResult
238
+ * Format QueryResult / RowsQueryResult / FindQueryResult / PipelineResult
243
239
  */
244
- declare function formatQueryOutput(ir: WodWikiIRFile<QueryResult | RowsQueryResult | FindQueryResult>, format: OutputFormat, pretty?: boolean): string;
240
+ declare function formatQueryOutput(ir: WodWikiIRFile<QueryResult | RowsQueryResult | FindQueryResult | PipelineResult>, format: OutputFormat, pretty?: boolean): string;
245
241
 
246
242
  /**
247
243
  * Unified `wod` CLI Runner
@@ -257,8 +253,10 @@ declare function formatQueryOutput(ir: WodWikiIRFile<QueryResult | RowsQueryResu
257
253
  */
258
254
 
259
255
  interface CliParsedArgs {
260
- subcommand?: 'parse' | 'run' | 'query' | 'help' | 'version';
256
+ subcommand?: 'parse' | 'run' | 'query' | 'download' | 'import' | 'build' | 'seed' | 'reset' | 'help' | 'version';
261
257
  target?: string;
258
+ /** Second positional: the id (download) or file (import) after the kind. */
259
+ target2?: string;
262
260
  corpus?: string;
263
261
  stdinLog?: boolean;
264
262
  stdinFacts?: boolean;
@@ -269,6 +267,20 @@ interface CliParsedArgs {
269
267
  unit?: string;
270
268
  help?: boolean;
271
269
  version?: boolean;
270
+ /** Compose a note markdown as-of this segment version (`download note`). */
271
+ at?: string;
272
+ /** SQLite database path (--db). Defaults to WOD_WIKI_DB or ./wodwiki.db. */
273
+ db?: string;
274
+ /** IR debug output: undefined = off, '' = default file name, otherwise the file name. */
275
+ debug?: string;
276
+ /** Extra seed source directories for `wod seed` (repeatable). */
277
+ sources: string[];
278
+ /** `wod build`: scaffold markdown stubs for newly discovered efforts. */
279
+ scaffold?: boolean;
280
+ /** `wod build`: extra template markdown file compiled as the `template` chunk. */
281
+ template?: string;
282
+ /** `wod build`: content repo root (alias for the positional directory). */
283
+ dir?: string;
272
284
  }
273
285
  declare function parseCliArgs(args: string[]): CliParsedArgs;
274
286
  declare function readStdin(): Promise<string>;
@@ -281,17 +293,122 @@ declare function cliMain(argv?: string[], io?: {
281
293
  readStdinFn?: () => Promise<string>;
282
294
  }): Promise<number>;
283
295
 
296
+ /**
297
+ * Import / Export exchange formats for notes and sessions.
298
+ *
299
+ * Pure row→string / string→row transforms with NO storage or fs coupling,
300
+ * so the playground website can offer the same downloads/uploads against
301
+ * IndexedDB rows while the CLI uses them over sqlite. Round-trip is a
302
+ * design requirement: every export carries the identity needed to import
303
+ * back into the same database (upsert) or into a clean one (recreate).
304
+ *
305
+ * - Notes → markdown composed from segment rows (as-of a chosen version),
306
+ * with a `wod-note-id` frontmatter key stamped for identity. `wod parse`
307
+ * adopts that identity, so edit-and-re-parse updates the same note.
308
+ * - Sessions → one CSV row per metric (event + summary grains), session
309
+ * fields repeated per row plus one session-only anchor row, so a clean
310
+ * import recreates the session and its events verbatim.
311
+ */
312
+
313
+ /** Identity stamped into exported note markdown so imports can find their note. */
314
+ declare const NOTE_ID_FRONTMATTER_KEY = "wod-note-id";
315
+ interface NoteIdentity {
316
+ noteId: string;
317
+ title?: string;
318
+ }
319
+ /** Read the stamped note identity from the leading frontmatter block, if any. */
320
+ declare function extractNoteIdentity(markdown: string): NoteIdentity | undefined;
321
+ /**
322
+ * Ensure the leading frontmatter carries `title` + `wod-note-id`. Existing
323
+ * keys are replaced in place; a missing block is prepended. Scalars needing
324
+ * YAML quoting are skipped (the note row title is authoritative in storage).
325
+ */
326
+ declare function injectIdentityFrontmatter(markdown: string, identity: NoteIdentity): string;
327
+ /**
328
+ * Compose a note's markdown as-of `version` (default: latest). Per segment
329
+ * id the row with the highest version ≤ the target wins — versions beyond
330
+ * the target never appear, segments that never reached it contribute their
331
+ * latest. The result is stamped with the note identity for re-import.
332
+ */
333
+ declare function composeNoteMarkdown(note: Note$1, segments: readonly NoteSegment$1[], version?: number): string;
334
+ interface TypedTagItem {
335
+ label: string;
336
+ type?: string;
337
+ }
338
+ /**
339
+ * Minimal frontmatter reader (the corpus subset): `key: scalar`, `key:` +
340
+ * `- item` lists, and inline `[a, b]` lists. Keys are lowercased. Returns {}
341
+ * when no leading block exists.
342
+ */
343
+ declare function readFrontmatterMeta(markdown: string): Record<string, string | string[]>;
344
+ /**
345
+ * Extract a note's frontmatter tags: the general `tags:` list plus typed
346
+ * keys (equipment, quality, domain, format, intent by default — the WQL
347
+ * typed-tag vocabulary). Mirrors the playground's
348
+ * `extractTypedFrontmatterTags` (frontmatter.ts) so CLI and app imports
349
+ * classify identically.
350
+ */
351
+ declare function extractTypedTags(markdown: string, typedKeys?: readonly string[]): TypedTagItem[];
352
+ interface EffortFileFields {
353
+ id: string;
354
+ slug: string;
355
+ label: string;
356
+ aliases: string[];
357
+ baseAttributes: Record<string, unknown>;
358
+ body?: string;
359
+ }
360
+ /**
361
+ * Parse a corpus-style effort markdown file: frontmatter `id`/`slug`/`label`
362
+ * (required), `aliases` list, one-level scalar `baseAttributes` with a
363
+ * numeric `met`, plus an optional markdown body. Parity with the seed
364
+ * importer's effort materialization.
365
+ */
366
+ declare function markdownToEffort(raw: string): EffortFileFields | null;
367
+ /** Compose an effort registry row back into corpus-style markdown. */
368
+ declare function effortToMarkdown(effort: {
369
+ id: string;
370
+ slug: string;
371
+ label: string;
372
+ aliases?: string[];
373
+ baseAttributes: Record<string, unknown>;
374
+ body?: string;
375
+ }): string;
376
+ /** One-label-per-row CSV (header `label`) for equipment catalogs. */
377
+ declare function equipmentToCsv(labels: readonly string[]): string;
378
+ declare function csvToEquipmentLabels(csv: string): string[];
379
+ declare const SESSION_CSV_HEADER: ("duration" | "dialect" | "origin" | "completed" | "metricType" | "sourceBlockKey" | "timestamp" | "noteId" | "sessionId" | "segmentId" | "segmentVersion" | "blockId" | "blockContentId" | "status" | "startTime" | "endTime" | "sessionCreatedAt" | "eventId" | "grain" | "outputType" | "pageId" | "effortSlug" | "eventSegmentId" | "eventSegmentVersion" | "eventBlockContentId" | "eventOrigin" | "timeSpan" | "sourceStatementId" | "line" | "text" | "stackLevel" | "completionReason" | "representationKind" | "metricValue" | "metricUnit" | "metricImage" | "metricOrigin" | "metricMetadata" | "metricTemporal" | "metricJson" | "eventExtraJson")[];
380
+ /**
381
+ * Serialize a session + its events to CSV — one row per metric, preceded by
382
+ * one session anchor row (empty event columns). Import with
383
+ * {@link csvToSessionRows}.
384
+ */
385
+ declare function sessionToCsv(session: Session$1, events: readonly EventRecord[]): string;
386
+ /** Parse one CSV line, honoring double-quoted fields (RFC 4180 subset). */
387
+ declare function parseCsvLine(line: string): string[];
388
+ /** Split CSV into records on newlines that are NOT inside quoted fields. */
389
+ declare function splitCsvRecords(csv: string): string[];
390
+ interface SessionImportRows {
391
+ session: Session$1;
392
+ events: EventRecord[];
393
+ }
394
+ /**
395
+ * Parse {@link sessionToCsv} output back into a session + event rows.
396
+ * The session anchor row may be absent (pure event export) as long as
397
+ * session columns are present on the event rows.
398
+ */
399
+ declare function csvToSessionRows(csv: string): SessionImportRows;
400
+
284
401
  /**
285
402
  * Auto-generated build version metadata.
286
403
  * Do not edit directly; updated by scripts/stamp-version.ts
287
404
  */
288
- declare const VERSION = "0.10.42";
289
- declare const GIT_SHA = "79c6d18";
290
- declare const BUILD_TIME = "2026-08-26T04:44:54.356Z";
405
+ declare const VERSION = "0.35.2115";
406
+ declare const GIT_SHA = "37944a8";
407
+ declare const BUILD_TIME = "2026-10-11T23:54:36.367Z";
291
408
  declare const SEMVER: {
292
- readonly version: "0.10.42";
293
- readonly gitSha: "79c6d18";
294
- readonly buildTime: "2026-08-26T04:44:54.356Z";
409
+ readonly version: "0.35.2115";
410
+ readonly gitSha: "37944a8";
411
+ readonly buildTime: "2026-10-11T23:54:36.367Z";
295
412
  };
296
413
 
297
- export { BUILD_TIME, type CliParsedArgs, type CorpusIRData, type ExecutionLog, GIT_SHA, type IrKind, type LanguagePack, type LanguagePackIdentity, type LanguagePackLangSlice, type LanguagePackUiSlice, type MetricNode, type OutputFormat, PackLoadError, type ParseOptions, ParseSyntaxError, type QueryCliOptions, type RunOptions, SEMVER, type StatementNode, VERSION, type WodWikiIRFile, WqlSyntaxError, buildStatementTree, buildWorkoutResults, cliMain, createIRFile, defineLanguagePack, factRowsToEventRows, formatExecutionOutput, formatParseOutput, formatQueryOutput, getRegisteredLanguagePacks, inMemoryEventStore, inMemoryEventStoreFromFacts, inMemoryFactStore, isIRFile, listLanguagePacks, loadLanguagePack, loadQueryData, parseCliArgs, readStdin, registerLanguagePack, runExecution, runParse, runQueryCli, statementToNode, unregisterLanguagePack };
414
+ export { BUILD_TIME, type CliParsedArgs, type CorpusIRData, type EffortFileFields, type ExecutionLog, GIT_SHA, type IrKind, type LanguagePack, type LanguagePackIdentity, type LanguagePackLangSlice, type LanguagePackUiSlice, type MetricNode, NOTE_ID_FRONTMATTER_KEY, type NoteIdentity, type OutputFormat, PackLoadError, type ParseOptions, ParseSyntaxError, type QueryCliOptions, type RunOptions, SEMVER, SESSION_CSV_HEADER, type SessionImportRows, type StatementNode, type TypedTagItem, VERSION, type WodWikiIRFile, WqlSyntaxError, buildStatementTree, buildWorkoutResults, cliMain, composeNoteMarkdown, createIRFile, csvToEquipmentLabels, csvToSessionRows, defineLanguagePack, effortToMarkdown, equipmentToCsv, extractNoteIdentity, extractTypedTags, formatExecutionOutput, formatParseOutput, formatQueryOutput, getRegisteredLanguagePacks, inMemoryEventStore, injectIdentityFrontmatter, isIRFile, listLanguagePacks, loadLanguagePack, loadQueryData, markdownToEffort, parseCliArgs, parseCsvLine, readFrontmatterMeta, readStdin, registerLanguagePack, runExecution, runParse, runQueryCli, sessionToCsv, splitCsvRecords, statementToNode, unregisterLanguagePack };
package/dist/index.mjs CHANGED
@@ -1,17 +1,23 @@
1
- export { PackLoadError, ParseSyntaxError, WqlSyntaxError, buildStatementTree, buildWorkoutResults, cliMain, createIRFile, defineLanguagePack, factRowsToEventRows, formatExecutionOutput, formatParseOutput, formatQueryOutput, getRegisteredLanguagePacks, inMemoryEventStore, inMemoryEventStoreFromFacts, inMemoryFactStore, isIRFile, listLanguagePacks, loadLanguagePack, loadQueryData, parseCliArgs, readStdin, registerLanguagePack, runExecution, runParse, runQueryCli, statementToNode, unregisterLanguagePack } from './chunk-QFWJKM45.mjs';
1
+ import { createRequire } from 'module';
2
+ export { NOTE_ID_FRONTMATTER_KEY, PackLoadError, ParseSyntaxError, SESSION_CSV_HEADER, WqlSyntaxError, buildStatementTree, buildWorkoutResults, cliMain, composeNoteMarkdown, createIRFile, csvToEquipmentLabels, csvToSessionRows, defineLanguagePack, effortToMarkdown, equipmentToCsv, extractNoteIdentity, extractTypedTags, formatExecutionOutput, formatParseOutput, formatQueryOutput, getRegisteredLanguagePacks, inMemoryEventStore, injectIdentityFrontmatter, isIRFile, listLanguagePacks, loadLanguagePack, loadQueryData, markdownToEffort, parseCliArgs, parseCsvLine, readFrontmatterMeta, readStdin, registerLanguagePack, runExecution, runParse, runQueryCli, sessionToCsv, splitCsvRecords, statementToNode, unregisterLanguagePack } from './chunk-B2OYLNEZ.mjs';
3
+ import './chunk-6L5ZDZJ7.mjs';
2
4
  export * from '@bitcobblers/wod-wiki-core';
3
- export { ABSENT, AGGREGATE_BUILTINS, AUTHORITATIVE_CASTS, AmrapLogicStrategy, AnalyticsEngine, AnalyticsTransformer, BUILTIN_CALCS, BUNDLED_EFFORT_COUNT, BlockBuilder, ButtonBehavior, CONSUMED_HINTS, CONSUMED_HINT_KEYS, CONTEXT_ATOMS, CalcEngine, CalculationRegistry, CardioDialect, ChildSelectionBehavior, ChildrenStrategy, ChoiceGroupMetric, ClimbDialect, ClimbMetricType, CountdownTimerBehavior, CountupTimerBehavior, CrossFitDialect, DEFAULT_RESOLVER_OPTIONS, DEFAULT_RUNTIME_OPTIONS, DEFAULT_UNRESOLVED_EFFORT_MET, DIM_LENGTH, DIM_MASS, DIM_TIME, DIM_ZERO, DialectStack, EFFORT_DATA_METRIC_TYPE, EFFORT_REGISTRY_ORIGINS, EffortFallbackStrategy, EffortResolver, ErrorAction, EventBus, ExecutionContext, ExitBehavior, GenericGroupStrategy, GenericLoopStrategy, GenericTimerStrategy, HabitsDialect, INTENSITY_TIERS, InMemoryEffortRegistry, IntervalLogicStrategy, JitCompiler, LabelingBehavior, LocalRuntimeSubscription, LookupRegistry, MdTimerRuntime, MemoryLocation, MemoryTypeEnum, NextEvent, OutputEmitter, PRODUCTION_STRATEGIES, PopBlockAction, PushBlockAction, RegisterEventHandlerAction, Registry, ReportOutputBehavior, ReportOutputStrategy, RoundsMetric, RuntimeAdapter, RuntimeClock, RuntimeFactory, RuntimeLogger, RuntimeMemory, RuntimeObservers, RuntimeStack, STORE_CALCS, STREAM_ATOMS, ScriptRuntime, SessionRootStrategy, SnapshotClock, SoundCueBehavior, SoundStrategy, StandardAnalyticsProfile, StartSessionAction, StartWorkoutAction, SubscriptionManager, TimeSpan, TypedMemoryReference, UNITS, UnitsDialect, UnregisterEventHandlerAction, VISIBILITY_ICONS, VISIBILITY_LABELS, WhiteboardScript, WodDialect, YogaDialect, buildTooltip, bundledEfforts, calculateElapsed, collapseUnresolvedChoices, compileLineForm, compoundName, computeColumnLabel, computeLabel, createAnalyticsEngineForBlock, createCalcEngine, createCompiler, createDialectStack, createMetricPresentationPolicy, createMockClock, createParser, dialectRegistry, dialectStack, evaluate, evaluateCalculateDefinitions, extractMetrics, extractStatements, findBestFuzzyMatch, findUnresolvedChoices, frozenNow, getAnalyticsFromLogs, getHints, getMetricVisibility, getRuntimeNowMs, hasHint, hintMetric, hintsToContainer, isCastSubscription, isChoiceResolved, isTimeLikeMetric, isWithinThreshold, levenshteinDistance, metricPresentation, normalizeForFuzzy, outputNodeId, outputNodeIds, parseCalcLine, parseCalculateBlock, parseExpression, parseScript, realtimeProcessorRegistry, strategyRegistry, summaryProcessorRegistry, toStoredOutputStatement, truthy, wallClockNow, whiteboardParser, whiteboardScript, whiteboardScriptLanguage, writeChoiceSelection } from '@bitcobblers/wod-wiki-lang';
5
+ export { ABSENT, AGGREGATE_BUILTINS, AUTHORITATIVE_CASTS, AmrapLogicStrategy, AnalyticsEngine, AnalyticsTransformer, BUILTIN_CALCS, BUNDLED_EFFORT_COUNT, BlockBuilder, ButtonBehavior, CONSUMED_HINTS, CONSUMED_HINT_KEYS, CONTEXT_ATOMS, CalcEngine, CalculationRegistry, CardioDialect, ChildSelectionBehavior, ChildrenStrategy, ChoiceGroupMetric, ClimbDialect, ClimbMetricType, CountdownTimerBehavior, CountupTimerBehavior, CrossFitDialect, DEFAULT_RESOLVER_OPTIONS, DEFAULT_RUNTIME_OPTIONS, DEFAULT_UNRESOLVED_EFFORT_MET, DIM_LENGTH, DIM_MASS, DIM_TIME, DIM_ZERO, DialectStack, EFFORT_DATA_METRIC_TYPE, EFFORT_REGISTRY_ORIGINS, EffortFallbackStrategy, EffortResolver, ErrorAction, EventBus, ExecutionContext, ExitBehavior, FixtureSyntaxError, GenericGroupStrategy, GenericLoopStrategy, GenericTimerStrategy, HabitsDialect, INTENSITY_TIERS, InMemoryEffortRegistry, IntervalLogicStrategy, JitCompiler, LabelingBehavior, LocalRuntimeSubscription, LookupRegistry, MdTimerRuntime, MemoryLocation, MemoryTypeEnum, NextEvent, OutputEmitter, PRODUCTION_STRATEGIES, PopBlockAction, PushBlockAction, RegisterEventHandlerAction, Registry, ReportOutputBehavior, ReportOutputStrategy, RoundsMetric, RuntimeAdapter, RuntimeClock, RuntimeFactory, RuntimeLogger, RuntimeMemory, RuntimeObservers, RuntimeStack, STORE_CALCS, STREAM_ATOMS, ScriptRuntime, SessionRootStrategy, SnapshotClock, SoundCueBehavior, SoundStrategy, StandardAnalyticsProfile, StartSessionAction, StartWorkoutAction, SubscriptionManager, TimeSpan, TypedMemoryReference, UNITS, UnitsDialect, UnregisterEventHandlerAction, VISIBILITY_ICONS, VISIBILITY_LABELS, WhiteboardScript, WodDialect, YogaDialect, buildTooltip, bundledEfforts, calculateElapsed, canonicalizeType, collapseUnresolvedChoices, compareStatement, compileLineForm, compoundName, computeColumnLabel, computeLabel, createAnalyticsEngineForBlock, createCalcEngine, createCompiler, createDialectStack, createMetricPresentationPolicy, createMockClock, createParser, dialectRegistry, dialectStack, diffStatement, evaluate, evaluateCalculateDefinitions, extractMetrics, extractStatements, findBestFuzzyMatch, findUnresolvedChoices, frozenNow, getAnalyticsFromLogs, getHints, getMetricVisibility, getRuntimeNowMs, hasHint, hintMetric, hintsToContainer, isCastSubscription, isChoiceResolved, isTimeLikeMetric, isWithinThreshold, levenshteinDistance, metricPresentation, normalizeForFuzzy, outputNodeId, outputNodeIds, parseCalcLine, parseCalculateBlock, parseExpression, parseMetricLine, parseScript, realtimeProcessorRegistry, renderMetric, strategyRegistry, summaryProcessorRegistry, toStoredOutputStatement, truthy, wallClockNow, whiteboardParser, whiteboardScript, whiteboardScriptLanguage, writeChoiceSelection } from '@bitcobblers/wod-wiki-lang';
4
6
  export { BlockTimerDisplay, ScriptRuntimeProvider, useActiveControls, useBlockMemory, useLiveAnalytics, useMemorySubscription, useNextPreview, useOutputStatements, usePrimaryTimer, useRoundDisplay, useRuntimeExecution, useScriptRuntime, useSecondaryTimers, useSnapshotBlocks, useStackDisplayRows, useStackFragmentSources, useStackSnapshot, useStackTimers, useTimerDisplay, useTimerElapsed } from '@bitcobblers/wod-wiki-lang/react';
5
- export { DASHBOARD_GRID_MAX_COLS, DASHBOARD_WIDGET_TYPES, DEFAULT_DASHBOARD_TITLE, PLANNED_WIDGET_TYPES, QueryService, WQL_AGGREGATORS, WQL_CALC_TARGETS, WQL_COMPARISON_OPS, WQL_CONTENT_FILTER_KEYS, WQL_DISPLAY_UNITS, WQL_FIND_TARGETS, WQL_GRAINS, WQL_INTENSITY_TIERS, WQL_KEYWORDS, WQL_METRIC_AGGREGATES, WQL_METRIC_FAMILIES, WQL_RESULT_PLANES, WQL_ROLLUP_PERIODS, WQL_ROWS_SCOPE_KEYS, WQL_ROWS_TARGETS, WQL_SOURCES, WQL_SOURCE_VALUES, WQL_TAG_KEYS, WQL_VIRTUAL_DIMS, buildDashboardDocument, buildDashboardScaffold, dashboardSlug, defaultTokenValues, extractDashboardTokens, isAggregateQuery, isDashboardMeta, isDashboardWidgetType, isFindQuery, isRowsQuery, normalizeWql, parseQuery, parseQueryWidgetSuffix, parseWqlSuffixes, resolveWidgetType, serialize, splitAtWhere, splitWidgetBody, substituteTokens, unknownTokensMessage, unknownWidgetTypeMessage, wql, wqlLanguage, wqlParser, wqlTerms } from '@bitcobblers/wod-wiki-wql';
7
+ export { DASHBOARD_GRID_MAX_COLS, DASHBOARD_WIDGET_TYPES, DEFAULT_DASHBOARD_TITLE, PLANNED_WIDGET_TYPES, QueryService, WQL_AGGREGATORS, WQL_CALC_TARGETS, WQL_CHART_HEADS, WQL_COMPARISON_OPS, WQL_CONTENT_FILTER_KEYS, WQL_DISPLAY_UNITS, WQL_FIND_TARGETS, WQL_FUNCTION_HEADS, WQL_GRAINS, WQL_INTENSITY_TIERS, WQL_KEYWORDS, WQL_METRIC_AGGREGATES, WQL_METRIC_FAMILIES, WQL_RESULT_PLANES, WQL_ROLLUP_PERIODS, WQL_SOURCES, WQL_SOURCE_HEADS, WQL_SOURCE_VALUES, WQL_STANDARD_DATASETS, WQL_TAG_KEYS, WQL_VIRTUAL_DIMS, buildDashboardDocument, buildDashboardScaffold, dashboardSlug, defaultTokenValues, extractDashboardTokens, isAggregateQuery, isDashboardMeta, isDashboardWidgetType, isFindQuery, isPipelineQuery, normalizeWql, parseQuery, parseQueryWidgetSuffix, parseWqlSuffixes, resolveWidgetType, serialize, splitAtWhere, substituteTokens, unknownTokensMessage, unknownWidgetTypeMessage, wql, wqlLanguage, wqlParser, wqlTerms } from '@bitcobblers/wod-wiki-wql';
8
+
9
+ if (typeof globalThis.require === 'undefined') {
10
+ try { globalThis.require = createRequire(import.meta.url); } catch {}
11
+ }
6
12
 
7
13
  // src/version.ts
8
- var VERSION = "0.10.42";
9
- var GIT_SHA = "79c6d18";
10
- var BUILD_TIME = "2026-08-26T04:44:54.356Z";
14
+ var VERSION = "0.35.2115";
15
+ var GIT_SHA = "37944a8";
16
+ var BUILD_TIME = "2026-10-11T23:54:36.367Z";
11
17
  var SEMVER = {
12
- version: "0.10.42",
13
- gitSha: "79c6d18",
14
- buildTime: "2026-08-26T04:44:54.356Z"
18
+ version: "0.35.2115",
19
+ gitSha: "37944a8",
20
+ buildTime: "2026-10-11T23:54:36.367Z"
15
21
  };
16
22
 
17
23
  export { BUILD_TIME, GIT_SHA, SEMVER, VERSION };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/version.ts"],"names":[],"mappings":";;;;;;;AAIO,IAAM,OAAA,GAAU;AAChB,IAAM,OAAA,GAAU;AAChB,IAAM,UAAA,GAAa;AACnB,IAAM,MAAA,GAAS;AAAA,EACpB,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,SAAA,EAAW;AACb","file":"index.mjs","sourcesContent":["/**\n * Auto-generated build version metadata.\n * Do not edit directly; updated by scripts/stamp-version.ts\n */\nexport const VERSION = '0.10.42';\nexport const GIT_SHA = '79c6d18';\nexport const BUILD_TIME = '2026-08-26T04:44:54.356Z';\nexport const SEMVER = {\n version: '0.10.42',\n gitSha: '79c6d18',\n buildTime: '2026-08-26T04:44:54.356Z',\n} as const;\n"]}
1
+ {"version":3,"sources":["../src/version.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAIO,IAAM,OAAA,GAAU;AAChB,IAAM,OAAA,GAAU;AAChB,IAAM,UAAA,GAAa;AACnB,IAAM,MAAA,GAAS;AAAA,EACpB,OAAA,EAAS,WAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,SAAA,EAAW;AACb","file":"index.mjs","sourcesContent":["/**\n * Auto-generated build version metadata.\n * Do not edit directly; updated by scripts/stamp-version.ts\n */\nexport const VERSION = '0.35.2115';\nexport const GIT_SHA = '37944a8';\nexport const BUILD_TIME = '2026-10-11T23:54:36.367Z';\nexport const SEMVER = {\n version: '0.35.2115',\n gitSha: '37944a8',\n buildTime: '2026-10-11T23:54:36.367Z',\n} as const;\n"]}