@bitcobblers/wod-wiki-engine 0.35.2115 → 0.35.2117

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,11 +1,11 @@
1
- import { IDialect, EventRecord, Note, NoteSegment, BlockIndexRow, Session, AnalyticsDataPoint, StoredOutputStatement, WorkoutResults, ICodeStatement, IOutputStatement } from '@bitcobblers/wod-wiki-core';
1
+ import { IDialect, EventRecord, Note, BlockRevision, BlockIndexRow, Session, AnalyticsDataPoint, StoredOutputStatement, WorkoutResults, ICodeStatement, IOutputStatement, NoteBlock, BlockEffort } 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
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
6
  import { EventStore, QueryServiceStores, QueryResult, RowsQueryResult, FindQueryResult, PipelineResult } from '@bitcobblers/wod-wiki-wql';
7
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
+ import { Session as Session$1, Note as Note$1, IStorage } from '@bitcobblers/wod-wiki-storage';
9
9
 
10
10
  /**
11
11
  * Language Pack API — umbrella sugar over per-package slices
@@ -103,7 +103,7 @@ interface ExecutionLog {
103
103
  }
104
104
  interface CorpusIRData {
105
105
  notes?: Note[];
106
- segments?: NoteSegment[];
106
+ revisions?: BlockRevision[];
107
107
  blocks?: BlockIndexRow[];
108
108
  results?: Session[];
109
109
  facts?: AnalyticsDataPoint[];
@@ -146,6 +146,9 @@ declare function runParse(source: string, options?: ParseOptions): WodWikiIRFile
146
146
 
147
147
  interface RunOptions {
148
148
  sport?: string;
149
+ dialect?: 'time' | 'log';
150
+ blockId?: string;
151
+ blockVersion?: number;
149
152
  startTime?: number;
150
153
  maxIterations?: number;
151
154
  now?: INowProvider;
@@ -190,6 +193,7 @@ interface LoadedData {
190
193
  results: Session[];
191
194
  notes: Note[];
192
195
  blocks: BlockIndexRow[];
196
+ revisions: BlockRevision[];
193
197
  efforts: IEffort[];
194
198
  noteTags: Record<string, string[]>;
195
199
  }
@@ -267,8 +271,6 @@ interface CliParsedArgs {
267
271
  unit?: string;
268
272
  help?: boolean;
269
273
  version?: boolean;
270
- /** Compose a note markdown as-of this segment version (`download note`). */
271
- at?: string;
272
274
  /** SQLite database path (--db). Defaults to WOD_WIKI_DB or ./wodwiki.db. */
273
275
  db?: string;
274
276
  /** IR debug output: undefined = off, '' = default file name, otherwise the file name. */
@@ -302,9 +304,8 @@ declare function cliMain(argv?: string[], io?: {
302
304
  * design requirement: every export carries the identity needed to import
303
305
  * back into the same database (upsert) or into a clean one (recreate).
304
306
  *
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.
307
+ * - Notes export their exact authored source with an identity stamp.
308
+ * `wod parse` adopts the stamp when importing the note.
308
309
  * - Sessions → one CSV row per metric (event + summary grains), session
309
310
  * fields repeated per row plus one session-only anchor row, so a clean
310
311
  * import recreates the session and its events verbatim.
@@ -324,13 +325,8 @@ declare function extractNoteIdentity(markdown: string): NoteIdentity | undefined
324
325
  * YAML quoting are skipped (the note row title is authoritative in storage).
325
326
  */
326
327
  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;
328
+ /** Export the exact authored Note source, with identity for re-import. */
329
+ declare function composeNoteMarkdown(note: Note$1): string;
334
330
  interface TypedTagItem {
335
331
  label: string;
336
332
  type?: string;
@@ -376,7 +372,7 @@ declare function effortToMarkdown(effort: {
376
372
  /** One-label-per-row CSV (header `label`) for equipment catalogs. */
377
373
  declare function equipmentToCsv(labels: readonly string[]): string;
378
374
  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")[];
375
+ declare const SESSION_CSV_HEADER: ("duration" | "dialect" | "origin" | "completed" | "metricType" | "sourceBlockKey" | "timestamp" | "blockContentId" | "noteId" | "blockId" | "blockVersion" | "status" | "startTime" | "endTime" | "effortSlug" | "sessionId" | "sessionCreatedAt" | "sessionExtraJson" | "eventId" | "grain" | "outputType" | "pageId" | "eventBlockId" | "eventBlockVersion" | "eventBlockContentId" | "eventOrigin" | "timeSpan" | "sourceStatementId" | "line" | "text" | "stackLevel" | "completionReason" | "representationKind" | "metricValue" | "metricUnit" | "metricImage" | "metricOrigin" | "metricMetadata" | "metricTemporal" | "metricJson" | "eventExtraJson")[];
380
376
  /**
381
377
  * Serialize a session + its events to CSV — one row per metric, preceded by
382
378
  * one session anchor row (empty event columns). Import with
@@ -402,13 +398,87 @@ declare function csvToSessionRows(csv: string): SessionImportRows;
402
398
  * Auto-generated build version metadata.
403
399
  * Do not edit directly; updated by scripts/stamp-version.ts
404
400
  */
405
- declare const VERSION = "0.35.2115";
406
- declare const GIT_SHA = "37944a8";
407
- declare const BUILD_TIME = "2026-10-11T23:54:36.367Z";
401
+ declare const VERSION = "0.35.2117";
402
+ declare const GIT_SHA = "03d1dfc";
403
+ declare const BUILD_TIME = "2026-10-12T20:08:12.374Z";
408
404
  declare const SEMVER: {
409
- readonly version: "0.35.2115";
410
- readonly gitSha: "37944a8";
411
- readonly buildTime: "2026-10-11T23:54:36.367Z";
405
+ readonly version: "0.35.2117";
406
+ readonly gitSha: "03d1dfc";
407
+ readonly buildTime: "2026-10-12T20:08:12.374Z";
412
408
  };
413
409
 
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 };
410
+ declare const SEED_SCHEMA = 8;
411
+ declare const SEED_REGISTERED_WIDGETS: readonly string[];
412
+ /** Source and all current derived rows commit as one chunk. */
413
+ interface SeedRow {
414
+ path: string;
415
+ content: string;
416
+ blocks: Record<string, NoteBlock>;
417
+ blockIndex: BlockIndexRow[];
418
+ blockEfforts: BlockEffort[];
419
+ }
420
+ type ChunkKind = 'notes';
421
+ interface ManifestChunk {
422
+ id: string;
423
+ path: string;
424
+ sha256: string;
425
+ bytes: number;
426
+ count: number;
427
+ kind?: ChunkKind;
428
+ }
429
+ interface SeedManifest {
430
+ schema: number;
431
+ version: number;
432
+ versionLabel?: string;
433
+ commit?: string;
434
+ dirty?: boolean;
435
+ builtAt: string;
436
+ chunks: ManifestChunk[];
437
+ }
438
+ interface SeedMetaRecord {
439
+ key: string;
440
+ schema: number;
441
+ seedVersion: number;
442
+ builtAt: string;
443
+ importedAt: number;
444
+ chunks: Record<string, {
445
+ sha256: string;
446
+ noteIds?: string[];
447
+ }>;
448
+ claim?: {
449
+ owner: string;
450
+ at: number;
451
+ } | null;
452
+ }
453
+ declare const SEED_BROADCAST_CHANNEL = "wodwiki.seed";
454
+ declare const EFFORTS_CHUNK_ID = "efforts";
455
+ declare const CANVAS_CHUNK_ID = "canvas";
456
+ declare const DASHBOARDS_CHUNK_ID = "dashboards";
457
+ declare const TEMPLATE_CHUNK_ID = "template";
458
+ declare function seedMetaKey(sourceId: string): string;
459
+ declare function emptySeedMeta(key: string): SeedMetaRecord;
460
+ declare function catalogForChunkId(chunkId: string): string | undefined;
461
+ declare function canvasRouteSlug(content: string): string | null;
462
+ declare function seedNoteSourceId(path: string, content: string, chunkId: string): string | undefined;
463
+
464
+ declare function seedNoteId(path: string): Promise<string>;
465
+ interface SeedChunkWrite {
466
+ chunkId: string | null;
467
+ rows: SeedRow[];
468
+ manifest: SeedManifest;
469
+ expectedMeta: SeedMetaRecord | undefined;
470
+ meta: SeedMetaRecord;
471
+ }
472
+ interface SeedChunkResult {
473
+ totalNotes: number;
474
+ totalEfforts: number;
475
+ totalBlocks: number;
476
+ skippedUserOwned: number;
477
+ deleted: number;
478
+ }
479
+ declare function applySeedChunk(storage: IStorage, write: SeedChunkWrite): Promise<SeedChunkResult>;
480
+
481
+ declare function assertSeedManifest(value: unknown): SeedManifest;
482
+ declare function assertSeedRows(value: unknown): SeedRow[];
483
+
484
+ export { BUILD_TIME, CANVAS_CHUNK_ID, type ChunkKind, type CliParsedArgs, type CorpusIRData, DASHBOARDS_CHUNK_ID, EFFORTS_CHUNK_ID, type EffortFileFields, type ExecutionLog, GIT_SHA, type IrKind, type LanguagePack, type LanguagePackIdentity, type LanguagePackLangSlice, type LanguagePackUiSlice, type ManifestChunk, type MetricNode, NOTE_ID_FRONTMATTER_KEY, type NoteIdentity, type OutputFormat, PackLoadError, type ParseOptions, ParseSyntaxError, type QueryCliOptions, type RunOptions, SEED_BROADCAST_CHANNEL, SEED_REGISTERED_WIDGETS, SEED_SCHEMA, SEMVER, SESSION_CSV_HEADER, type SeedChunkResult, type SeedChunkWrite, type SeedManifest, type SeedMetaRecord, type SeedRow, type SessionImportRows, type StatementNode, TEMPLATE_CHUNK_ID, type TypedTagItem, VERSION, type WodWikiIRFile, WqlSyntaxError, applySeedChunk, assertSeedManifest, assertSeedRows, buildStatementTree, buildWorkoutResults, canvasRouteSlug, catalogForChunkId, cliMain, composeNoteMarkdown, createIRFile, csvToEquipmentLabels, csvToSessionRows, defineLanguagePack, effortToMarkdown, emptySeedMeta, equipmentToCsv, extractNoteIdentity, extractTypedTags, formatExecutionOutput, formatParseOutput, formatQueryOutput, getRegisteredLanguagePacks, inMemoryEventStore, injectIdentityFrontmatter, isIRFile, listLanguagePacks, loadLanguagePack, loadQueryData, markdownToEffort, parseCliArgs, parseCsvLine, readFrontmatterMeta, readStdin, registerLanguagePack, runExecution, runParse, runQueryCli, seedMetaKey, seedNoteId, seedNoteSourceId, sessionToCsv, splitCsvRecords, statementToNode, unregisterLanguagePack };
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import { IDialect, EventRecord, Note, NoteSegment, BlockIndexRow, Session, AnalyticsDataPoint, StoredOutputStatement, WorkoutResults, ICodeStatement, IOutputStatement } from '@bitcobblers/wod-wiki-core';
1
+ import { IDialect, EventRecord, Note, BlockRevision, BlockIndexRow, Session, AnalyticsDataPoint, StoredOutputStatement, WorkoutResults, ICodeStatement, IOutputStatement, NoteBlock, BlockEffort } 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
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
6
  import { EventStore, QueryServiceStores, QueryResult, RowsQueryResult, FindQueryResult, PipelineResult } from '@bitcobblers/wod-wiki-wql';
7
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
+ import { Session as Session$1, Note as Note$1, IStorage } from '@bitcobblers/wod-wiki-storage';
9
9
 
10
10
  /**
11
11
  * Language Pack API — umbrella sugar over per-package slices
@@ -103,7 +103,7 @@ interface ExecutionLog {
103
103
  }
104
104
  interface CorpusIRData {
105
105
  notes?: Note[];
106
- segments?: NoteSegment[];
106
+ revisions?: BlockRevision[];
107
107
  blocks?: BlockIndexRow[];
108
108
  results?: Session[];
109
109
  facts?: AnalyticsDataPoint[];
@@ -146,6 +146,9 @@ declare function runParse(source: string, options?: ParseOptions): WodWikiIRFile
146
146
 
147
147
  interface RunOptions {
148
148
  sport?: string;
149
+ dialect?: 'time' | 'log';
150
+ blockId?: string;
151
+ blockVersion?: number;
149
152
  startTime?: number;
150
153
  maxIterations?: number;
151
154
  now?: INowProvider;
@@ -190,6 +193,7 @@ interface LoadedData {
190
193
  results: Session[];
191
194
  notes: Note[];
192
195
  blocks: BlockIndexRow[];
196
+ revisions: BlockRevision[];
193
197
  efforts: IEffort[];
194
198
  noteTags: Record<string, string[]>;
195
199
  }
@@ -267,8 +271,6 @@ interface CliParsedArgs {
267
271
  unit?: string;
268
272
  help?: boolean;
269
273
  version?: boolean;
270
- /** Compose a note markdown as-of this segment version (`download note`). */
271
- at?: string;
272
274
  /** SQLite database path (--db). Defaults to WOD_WIKI_DB or ./wodwiki.db. */
273
275
  db?: string;
274
276
  /** IR debug output: undefined = off, '' = default file name, otherwise the file name. */
@@ -302,9 +304,8 @@ declare function cliMain(argv?: string[], io?: {
302
304
  * design requirement: every export carries the identity needed to import
303
305
  * back into the same database (upsert) or into a clean one (recreate).
304
306
  *
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.
307
+ * - Notes export their exact authored source with an identity stamp.
308
+ * `wod parse` adopts the stamp when importing the note.
308
309
  * - Sessions → one CSV row per metric (event + summary grains), session
309
310
  * fields repeated per row plus one session-only anchor row, so a clean
310
311
  * import recreates the session and its events verbatim.
@@ -324,13 +325,8 @@ declare function extractNoteIdentity(markdown: string): NoteIdentity | undefined
324
325
  * YAML quoting are skipped (the note row title is authoritative in storage).
325
326
  */
326
327
  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;
328
+ /** Export the exact authored Note source, with identity for re-import. */
329
+ declare function composeNoteMarkdown(note: Note$1): string;
334
330
  interface TypedTagItem {
335
331
  label: string;
336
332
  type?: string;
@@ -376,7 +372,7 @@ declare function effortToMarkdown(effort: {
376
372
  /** One-label-per-row CSV (header `label`) for equipment catalogs. */
377
373
  declare function equipmentToCsv(labels: readonly string[]): string;
378
374
  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")[];
375
+ declare const SESSION_CSV_HEADER: ("duration" | "dialect" | "origin" | "completed" | "metricType" | "sourceBlockKey" | "timestamp" | "blockContentId" | "noteId" | "blockId" | "blockVersion" | "status" | "startTime" | "endTime" | "effortSlug" | "sessionId" | "sessionCreatedAt" | "sessionExtraJson" | "eventId" | "grain" | "outputType" | "pageId" | "eventBlockId" | "eventBlockVersion" | "eventBlockContentId" | "eventOrigin" | "timeSpan" | "sourceStatementId" | "line" | "text" | "stackLevel" | "completionReason" | "representationKind" | "metricValue" | "metricUnit" | "metricImage" | "metricOrigin" | "metricMetadata" | "metricTemporal" | "metricJson" | "eventExtraJson")[];
380
376
  /**
381
377
  * Serialize a session + its events to CSV — one row per metric, preceded by
382
378
  * one session anchor row (empty event columns). Import with
@@ -402,13 +398,87 @@ declare function csvToSessionRows(csv: string): SessionImportRows;
402
398
  * Auto-generated build version metadata.
403
399
  * Do not edit directly; updated by scripts/stamp-version.ts
404
400
  */
405
- declare const VERSION = "0.35.2115";
406
- declare const GIT_SHA = "37944a8";
407
- declare const BUILD_TIME = "2026-10-11T23:54:36.367Z";
401
+ declare const VERSION = "0.35.2117";
402
+ declare const GIT_SHA = "03d1dfc";
403
+ declare const BUILD_TIME = "2026-10-12T20:08:12.374Z";
408
404
  declare const SEMVER: {
409
- readonly version: "0.35.2115";
410
- readonly gitSha: "37944a8";
411
- readonly buildTime: "2026-10-11T23:54:36.367Z";
405
+ readonly version: "0.35.2117";
406
+ readonly gitSha: "03d1dfc";
407
+ readonly buildTime: "2026-10-12T20:08:12.374Z";
412
408
  };
413
409
 
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 };
410
+ declare const SEED_SCHEMA = 8;
411
+ declare const SEED_REGISTERED_WIDGETS: readonly string[];
412
+ /** Source and all current derived rows commit as one chunk. */
413
+ interface SeedRow {
414
+ path: string;
415
+ content: string;
416
+ blocks: Record<string, NoteBlock>;
417
+ blockIndex: BlockIndexRow[];
418
+ blockEfforts: BlockEffort[];
419
+ }
420
+ type ChunkKind = 'notes';
421
+ interface ManifestChunk {
422
+ id: string;
423
+ path: string;
424
+ sha256: string;
425
+ bytes: number;
426
+ count: number;
427
+ kind?: ChunkKind;
428
+ }
429
+ interface SeedManifest {
430
+ schema: number;
431
+ version: number;
432
+ versionLabel?: string;
433
+ commit?: string;
434
+ dirty?: boolean;
435
+ builtAt: string;
436
+ chunks: ManifestChunk[];
437
+ }
438
+ interface SeedMetaRecord {
439
+ key: string;
440
+ schema: number;
441
+ seedVersion: number;
442
+ builtAt: string;
443
+ importedAt: number;
444
+ chunks: Record<string, {
445
+ sha256: string;
446
+ noteIds?: string[];
447
+ }>;
448
+ claim?: {
449
+ owner: string;
450
+ at: number;
451
+ } | null;
452
+ }
453
+ declare const SEED_BROADCAST_CHANNEL = "wodwiki.seed";
454
+ declare const EFFORTS_CHUNK_ID = "efforts";
455
+ declare const CANVAS_CHUNK_ID = "canvas";
456
+ declare const DASHBOARDS_CHUNK_ID = "dashboards";
457
+ declare const TEMPLATE_CHUNK_ID = "template";
458
+ declare function seedMetaKey(sourceId: string): string;
459
+ declare function emptySeedMeta(key: string): SeedMetaRecord;
460
+ declare function catalogForChunkId(chunkId: string): string | undefined;
461
+ declare function canvasRouteSlug(content: string): string | null;
462
+ declare function seedNoteSourceId(path: string, content: string, chunkId: string): string | undefined;
463
+
464
+ declare function seedNoteId(path: string): Promise<string>;
465
+ interface SeedChunkWrite {
466
+ chunkId: string | null;
467
+ rows: SeedRow[];
468
+ manifest: SeedManifest;
469
+ expectedMeta: SeedMetaRecord | undefined;
470
+ meta: SeedMetaRecord;
471
+ }
472
+ interface SeedChunkResult {
473
+ totalNotes: number;
474
+ totalEfforts: number;
475
+ totalBlocks: number;
476
+ skippedUserOwned: number;
477
+ deleted: number;
478
+ }
479
+ declare function applySeedChunk(storage: IStorage, write: SeedChunkWrite): Promise<SeedChunkResult>;
480
+
481
+ declare function assertSeedManifest(value: unknown): SeedManifest;
482
+ declare function assertSeedRows(value: unknown): SeedRow[];
483
+
484
+ export { BUILD_TIME, CANVAS_CHUNK_ID, type ChunkKind, type CliParsedArgs, type CorpusIRData, DASHBOARDS_CHUNK_ID, EFFORTS_CHUNK_ID, type EffortFileFields, type ExecutionLog, GIT_SHA, type IrKind, type LanguagePack, type LanguagePackIdentity, type LanguagePackLangSlice, type LanguagePackUiSlice, type ManifestChunk, type MetricNode, NOTE_ID_FRONTMATTER_KEY, type NoteIdentity, type OutputFormat, PackLoadError, type ParseOptions, ParseSyntaxError, type QueryCliOptions, type RunOptions, SEED_BROADCAST_CHANNEL, SEED_REGISTERED_WIDGETS, SEED_SCHEMA, SEMVER, SESSION_CSV_HEADER, type SeedChunkResult, type SeedChunkWrite, type SeedManifest, type SeedMetaRecord, type SeedRow, type SessionImportRows, type StatementNode, TEMPLATE_CHUNK_ID, type TypedTagItem, VERSION, type WodWikiIRFile, WqlSyntaxError, applySeedChunk, assertSeedManifest, assertSeedRows, buildStatementTree, buildWorkoutResults, canvasRouteSlug, catalogForChunkId, cliMain, composeNoteMarkdown, createIRFile, csvToEquipmentLabels, csvToSessionRows, defineLanguagePack, effortToMarkdown, emptySeedMeta, equipmentToCsv, extractNoteIdentity, extractTypedTags, formatExecutionOutput, formatParseOutput, formatQueryOutput, getRegisteredLanguagePacks, inMemoryEventStore, injectIdentityFrontmatter, isIRFile, listLanguagePacks, loadLanguagePack, loadQueryData, markdownToEffort, parseCliArgs, parseCsvLine, readFrontmatterMeta, readStdin, registerLanguagePack, runExecution, runParse, runQueryCli, seedMetaKey, seedNoteId, seedNoteSourceId, sessionToCsv, splitCsvRecords, statementToNode, unregisterLanguagePack };
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
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
+ export { NOTE_ID_FRONTMATTER_KEY, PackLoadError, ParseSyntaxError, SESSION_CSV_HEADER, WqlSyntaxError, applySeedChunk, assertSeedManifest, assertSeedRows, 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, seedNoteId, sessionToCsv, splitCsvRecords, statementToNode, unregisterLanguagePack } from './chunk-AKNXDA75.mjs';
3
+ export { CANVAS_CHUNK_ID, DASHBOARDS_CHUNK_ID, EFFORTS_CHUNK_ID, SEED_BROADCAST_CHANNEL, SEED_REGISTERED_WIDGETS, SEED_SCHEMA, TEMPLATE_CHUNK_ID, canvasRouteSlug, catalogForChunkId, emptySeedMeta, seedMetaKey, seedNoteSourceId } from './chunk-Y6WO6MXS.mjs';
4
4
  export * from '@bitcobblers/wod-wiki-core';
5
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';
6
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';
@@ -11,13 +11,13 @@ if (typeof globalThis.require === 'undefined') {
11
11
  }
12
12
 
13
13
  // src/version.ts
14
- var VERSION = "0.35.2115";
15
- var GIT_SHA = "37944a8";
16
- var BUILD_TIME = "2026-10-11T23:54:36.367Z";
14
+ var VERSION = "0.35.2117";
15
+ var GIT_SHA = "03d1dfc";
16
+ var BUILD_TIME = "2026-10-12T20:08:12.374Z";
17
17
  var SEMVER = {
18
- version: "0.35.2115",
19
- gitSha: "37944a8",
20
- buildTime: "2026-10-11T23:54:36.367Z"
18
+ version: "0.35.2117",
19
+ gitSha: "03d1dfc",
20
+ buildTime: "2026-10-12T20:08:12.374Z"
21
21
  };
22
22
 
23
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,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"]}
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.2117';\nexport const GIT_SHA = '03d1dfc';\nexport const BUILD_TIME = '2026-10-12T20:08:12.374Z';\nexport const SEMVER = {\n version: '0.35.2117',\n gitSha: '03d1dfc',\n buildTime: '2026-10-12T20:08:12.374Z',\n} as const;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitcobblers/wod-wiki-engine",
3
- "version": "0.35.2115",
3
+ "version": "0.35.2117",
4
4
  "description": "Umbrella package for Whiteboard Language & WQL engine with CLI runner",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -23,10 +23,15 @@
23
23
  "access": "public"
24
24
  },
25
25
  "dependencies": {
26
- "@bitcobblers/wod-wiki-core": "^0.35.2115",
27
- "@bitcobblers/wod-wiki-lang": "^0.35.2115",
28
- "@bitcobblers/wod-wiki-storage": "^0.35.2115",
29
- "@bitcobblers/wod-wiki-wql": "^0.35.2115",
26
+ "@bitcobblers/wod-wiki-core": "^0.35.2117",
27
+ "@bitcobblers/wod-wiki-lang": "^0.35.2117",
28
+ "@bitcobblers/wod-wiki-storage": "^0.35.2117",
29
+ "@bitcobblers/wod-wiki-wql": "^0.35.2117",
30
+ "@codemirror/autocomplete": "^6.0.0",
31
+ "@codemirror/language": "^6.0.0",
32
+ "@lezer/common": "^1.0.0",
33
+ "@lezer/highlight": "^1.0.0",
34
+ "@lezer/lr": "^1.0.0",
30
35
  "@libsql/client": "^0.18.0"
31
36
  },
32
37
  "scripts": {
@@ -1,15 +0,0 @@
1
- import { createRequire } from 'module';
2
-
3
- if (typeof globalThis.require === 'undefined') {
4
- try { globalThis.require = createRequire(import.meta.url); } catch {}
5
- }
6
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
7
- get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
8
- }) : x)(function(x) {
9
- if (typeof require !== "undefined") return require.apply(this, arguments);
10
- throw Error('Dynamic require of "' + x + '" is not supported');
11
- });
12
-
13
- export { __require };
14
- //# sourceMappingURL=chunk-6L5ZDZJ7.mjs.map
15
- //# sourceMappingURL=chunk-6L5ZDZJ7.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-6L5ZDZJ7.mjs"}