@bitcobblers/wod-wiki-engine 0.37.2139 → 0.37.2140

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,7 +1,7 @@
1
1
  import { IDialect, EventRecord, Note, BlockRevision, BlockIndexRow, Session, AnalyticsDataPoint, StoredOutputStatement, WorkoutResults, ICodeStatement, NoteBlock, BlockEffort, BlockEquipment } from '@bitcobblers/wod-wiki-core';
2
2
  export * from '@bitcobblers/wod-wiki-core';
3
3
  import { IRealtimeProcessor, ISummaryProcessor, IEffort, IScript } 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';
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, CATALOG_PRECEDENCE_RANK, CONSUMED_HINTS, CONSUMED_HINT_KEYS, CONTEXT_ATOMS, CalcDefinition, CalcEngine, CalcOrigin, CalcScope, CalculateBlockProcessor, CalculationDefinition, CalculationRegistry, CardioDialect, CatalogPrecedenceTier, 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, dedupeEntitiesByPrecedence, 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, resolveEntityRank, resolveEntityTier, resolveSourceRank, resolveSourceTier, 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 } 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';
@@ -212,13 +212,13 @@ declare function csvToSessionRows(csv: string): SessionImportRows;
212
212
  * Auto-generated build version metadata.
213
213
  * Do not edit directly; updated by scripts/stamp-version.ts
214
214
  */
215
- declare const VERSION = "0.37.2139";
216
- declare const GIT_SHA = "491ec71";
217
- declare const BUILD_TIME = "2026-10-17T15:36:01.834Z";
215
+ declare const VERSION = "0.37.2140";
216
+ declare const GIT_SHA = "bcf7960";
217
+ declare const BUILD_TIME = "2026-10-18T21:43:29.081Z";
218
218
  declare const SEMVER: {
219
- readonly version: "0.37.2139";
220
- readonly gitSha: "491ec71";
221
- readonly buildTime: "2026-10-17T15:36:01.834Z";
219
+ readonly version: "0.37.2140";
220
+ readonly gitSha: "bcf7960";
221
+ readonly buildTime: "2026-10-18T21:43:29.081Z";
222
222
  };
223
223
 
224
224
  declare const SEED_SCHEMA = 9;
@@ -253,6 +253,10 @@ interface SeedManifest {
253
253
  builtAt: string;
254
254
  chunks: ManifestChunk[];
255
255
  }
256
+ type SeedPrecedenceTier = 'core' | 'community' | 'imported' | 'user';
257
+ declare const SEED_PRECEDENCE_RANK: Readonly<Record<SeedPrecedenceTier, number>>;
258
+ declare function seedSourceTier(sourceIdOrMetaKey?: string | null, explicitTier?: SeedPrecedenceTier): SeedPrecedenceTier;
259
+ declare function seedPrecedenceRank(sourceIdOrMetaKey?: string | null, explicitTier?: SeedPrecedenceTier): number;
256
260
  interface SeedMetaRecord {
257
261
  key: string;
258
262
  schema: number;
@@ -267,6 +271,7 @@ interface SeedMetaRecord {
267
271
  owner: string;
268
272
  at: number;
269
273
  } | null;
274
+ tier?: SeedPrecedenceTier;
270
275
  }
271
276
  declare const SEED_BROADCAST_CHANNEL = "wodwiki.seed";
272
277
  declare const EFFORTS_CHUNK_ID = "efforts";
@@ -305,4 +310,4 @@ declare function applySeedChunk(storage: IStorage, write: SeedChunkWrite): Promi
305
310
  declare function assertSeedManifest(value: unknown): SeedManifest;
306
311
  declare function assertSeedRows(value: unknown): SeedRow[];
307
312
 
308
- export { BUILD_TIME, CANVAS_CHUNK_ID, type ChunkKind, type CorpusIRData, DASHBOARDS_CHUNK_ID, EFFORTS_CHUNK_ID, EQUIPMENT_CHUNK_ID, type ExecutionLog, GIT_SHA, type IrKind, type LanguagePack, type LanguagePackIdentity, type LanguagePackLangSlice, type LanguagePackUiSlice, type ManifestChunk, type MetricNode, NOTE_ID_FRONTMATTER_KEY, type NoteIdentity, 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, applySeedChunk, assertSeedManifest, assertSeedRows, buildStatementTree, canvasRouteSlug, catalogForChunkId, composeNoteMarkdown, createIRFile, csvToEquipmentLabels, csvToSessionRows, defineLanguagePack, effortToMarkdown, emptySeedMeta, equipmentToCsv, equipmentToMarkdown, extractNoteIdentity, extractTypedTags, getRegisteredLanguagePacks, inMemoryEventStore, injectIdentityFrontmatter, isIRFile, listLanguagePacks, parseCsvLine, readFrontmatterMeta, registerLanguagePack, seedMetaKey, seedNoteId, seedNoteSourceId, sessionToCsv, splitCsvRecords, statementToNode, unregisterLanguagePack };
313
+ export { BUILD_TIME, CANVAS_CHUNK_ID, type ChunkKind, type CorpusIRData, DASHBOARDS_CHUNK_ID, EFFORTS_CHUNK_ID, EQUIPMENT_CHUNK_ID, type ExecutionLog, GIT_SHA, type IrKind, type LanguagePack, type LanguagePackIdentity, type LanguagePackLangSlice, type LanguagePackUiSlice, type ManifestChunk, type MetricNode, NOTE_ID_FRONTMATTER_KEY, type NoteIdentity, SEED_BROADCAST_CHANNEL, SEED_PRECEDENCE_RANK, SEED_REGISTERED_WIDGETS, SEED_SCHEMA, SEMVER, SESSION_CSV_HEADER, type SeedChunkResult, type SeedChunkWrite, type SeedManifest, type SeedMetaRecord, type SeedPrecedenceTier, type SeedRow, type SessionImportRows, type StatementNode, TEMPLATE_CHUNK_ID, type TypedTagItem, VERSION, type WodWikiIRFile, applySeedChunk, assertSeedManifest, assertSeedRows, buildStatementTree, canvasRouteSlug, catalogForChunkId, composeNoteMarkdown, createIRFile, csvToEquipmentLabels, csvToSessionRows, defineLanguagePack, effortToMarkdown, emptySeedMeta, equipmentToCsv, equipmentToMarkdown, extractNoteIdentity, extractTypedTags, getRegisteredLanguagePacks, inMemoryEventStore, injectIdentityFrontmatter, isIRFile, listLanguagePacks, parseCsvLine, readFrontmatterMeta, registerLanguagePack, seedMetaKey, seedNoteId, seedNoteSourceId, seedPrecedenceRank, seedSourceTier, sessionToCsv, splitCsvRecords, statementToNode, unregisterLanguagePack };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { IDialect, EventRecord, Note, BlockRevision, BlockIndexRow, Session, AnalyticsDataPoint, StoredOutputStatement, WorkoutResults, ICodeStatement, NoteBlock, BlockEffort, BlockEquipment } from '@bitcobblers/wod-wiki-core';
2
2
  export * from '@bitcobblers/wod-wiki-core';
3
3
  import { IRealtimeProcessor, ISummaryProcessor, IEffort, IScript } 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';
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, CATALOG_PRECEDENCE_RANK, CONSUMED_HINTS, CONSUMED_HINT_KEYS, CONTEXT_ATOMS, CalcDefinition, CalcEngine, CalcOrigin, CalcScope, CalculateBlockProcessor, CalculationDefinition, CalculationRegistry, CardioDialect, CatalogPrecedenceTier, 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, dedupeEntitiesByPrecedence, 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, resolveEntityRank, resolveEntityTier, resolveSourceRank, resolveSourceTier, 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 } 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';
@@ -212,13 +212,13 @@ declare function csvToSessionRows(csv: string): SessionImportRows;
212
212
  * Auto-generated build version metadata.
213
213
  * Do not edit directly; updated by scripts/stamp-version.ts
214
214
  */
215
- declare const VERSION = "0.37.2139";
216
- declare const GIT_SHA = "491ec71";
217
- declare const BUILD_TIME = "2026-10-17T15:36:01.834Z";
215
+ declare const VERSION = "0.37.2140";
216
+ declare const GIT_SHA = "bcf7960";
217
+ declare const BUILD_TIME = "2026-10-18T21:43:29.081Z";
218
218
  declare const SEMVER: {
219
- readonly version: "0.37.2139";
220
- readonly gitSha: "491ec71";
221
- readonly buildTime: "2026-10-17T15:36:01.834Z";
219
+ readonly version: "0.37.2140";
220
+ readonly gitSha: "bcf7960";
221
+ readonly buildTime: "2026-10-18T21:43:29.081Z";
222
222
  };
223
223
 
224
224
  declare const SEED_SCHEMA = 9;
@@ -253,6 +253,10 @@ interface SeedManifest {
253
253
  builtAt: string;
254
254
  chunks: ManifestChunk[];
255
255
  }
256
+ type SeedPrecedenceTier = 'core' | 'community' | 'imported' | 'user';
257
+ declare const SEED_PRECEDENCE_RANK: Readonly<Record<SeedPrecedenceTier, number>>;
258
+ declare function seedSourceTier(sourceIdOrMetaKey?: string | null, explicitTier?: SeedPrecedenceTier): SeedPrecedenceTier;
259
+ declare function seedPrecedenceRank(sourceIdOrMetaKey?: string | null, explicitTier?: SeedPrecedenceTier): number;
256
260
  interface SeedMetaRecord {
257
261
  key: string;
258
262
  schema: number;
@@ -267,6 +271,7 @@ interface SeedMetaRecord {
267
271
  owner: string;
268
272
  at: number;
269
273
  } | null;
274
+ tier?: SeedPrecedenceTier;
270
275
  }
271
276
  declare const SEED_BROADCAST_CHANNEL = "wodwiki.seed";
272
277
  declare const EFFORTS_CHUNK_ID = "efforts";
@@ -305,4 +310,4 @@ declare function applySeedChunk(storage: IStorage, write: SeedChunkWrite): Promi
305
310
  declare function assertSeedManifest(value: unknown): SeedManifest;
306
311
  declare function assertSeedRows(value: unknown): SeedRow[];
307
312
 
308
- export { BUILD_TIME, CANVAS_CHUNK_ID, type ChunkKind, type CorpusIRData, DASHBOARDS_CHUNK_ID, EFFORTS_CHUNK_ID, EQUIPMENT_CHUNK_ID, type ExecutionLog, GIT_SHA, type IrKind, type LanguagePack, type LanguagePackIdentity, type LanguagePackLangSlice, type LanguagePackUiSlice, type ManifestChunk, type MetricNode, NOTE_ID_FRONTMATTER_KEY, type NoteIdentity, 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, applySeedChunk, assertSeedManifest, assertSeedRows, buildStatementTree, canvasRouteSlug, catalogForChunkId, composeNoteMarkdown, createIRFile, csvToEquipmentLabels, csvToSessionRows, defineLanguagePack, effortToMarkdown, emptySeedMeta, equipmentToCsv, equipmentToMarkdown, extractNoteIdentity, extractTypedTags, getRegisteredLanguagePacks, inMemoryEventStore, injectIdentityFrontmatter, isIRFile, listLanguagePacks, parseCsvLine, readFrontmatterMeta, registerLanguagePack, seedMetaKey, seedNoteId, seedNoteSourceId, sessionToCsv, splitCsvRecords, statementToNode, unregisterLanguagePack };
313
+ export { BUILD_TIME, CANVAS_CHUNK_ID, type ChunkKind, type CorpusIRData, DASHBOARDS_CHUNK_ID, EFFORTS_CHUNK_ID, EQUIPMENT_CHUNK_ID, type ExecutionLog, GIT_SHA, type IrKind, type LanguagePack, type LanguagePackIdentity, type LanguagePackLangSlice, type LanguagePackUiSlice, type ManifestChunk, type MetricNode, NOTE_ID_FRONTMATTER_KEY, type NoteIdentity, SEED_BROADCAST_CHANNEL, SEED_PRECEDENCE_RANK, SEED_REGISTERED_WIDGETS, SEED_SCHEMA, SEMVER, SESSION_CSV_HEADER, type SeedChunkResult, type SeedChunkWrite, type SeedManifest, type SeedMetaRecord, type SeedPrecedenceTier, type SeedRow, type SessionImportRows, type StatementNode, TEMPLATE_CHUNK_ID, type TypedTagItem, VERSION, type WodWikiIRFile, applySeedChunk, assertSeedManifest, assertSeedRows, buildStatementTree, canvasRouteSlug, catalogForChunkId, composeNoteMarkdown, createIRFile, csvToEquipmentLabels, csvToSessionRows, defineLanguagePack, effortToMarkdown, emptySeedMeta, equipmentToCsv, equipmentToMarkdown, extractNoteIdentity, extractTypedTags, getRegisteredLanguagePacks, inMemoryEventStore, injectIdentityFrontmatter, isIRFile, listLanguagePacks, parseCsvLine, readFrontmatterMeta, registerLanguagePack, seedMetaKey, seedNoteId, seedNoteSourceId, seedPrecedenceRank, seedSourceTier, sessionToCsv, splitCsvRecords, statementToNode, unregisterLanguagePack };
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { KNOWN_SECTION_WIDGETS, MetricType, validateNoteBlocks, parseDocumentSections, blockContentId, reconcileNoteBlocks, mapNoteBlockChanges } from '@bitcobblers/wod-wiki-core';
2
2
  export * from '@bitcobblers/wod-wiki-core';
3
3
  import { dialectRegistry, realtimeProcessorRegistry, summaryProcessorRegistry, getHints, parseEffortFile, parseEquipmentFile } from '@bitcobblers/wod-wiki-lang';
4
- 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
+ export { ABSENT, AGGREGATE_BUILTINS, AUTHORITATIVE_CASTS, AmrapLogicStrategy, AnalyticsEngine, AnalyticsTransformer, BUILTIN_CALCS, BUNDLED_EFFORT_COUNT, BlockBuilder, ButtonBehavior, CATALOG_PRECEDENCE_RANK, 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, dedupeEntitiesByPrecedence, 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, resolveEntityRank, resolveEntityTier, resolveSourceRank, resolveSourceTier, strategyRegistry, summaryProcessorRegistry, toStoredOutputStatement, truthy, wallClockNow, whiteboardParser, whiteboardScript, whiteboardScriptLanguage, writeChoiceSelection } from '@bitcobblers/wod-wiki-lang';
5
5
  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';
6
6
  import { WQL_TYPED_TAG_KEYS } from '@bitcobblers/wod-wiki-wql';
7
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';
@@ -618,16 +618,34 @@ function csvToSessionRows(csv) {
618
618
  }
619
619
 
620
620
  // src/version.ts
621
- var VERSION = "0.37.2139";
622
- var GIT_SHA = "491ec71";
623
- var BUILD_TIME = "2026-10-17T15:36:01.834Z";
621
+ var VERSION = "0.37.2140";
622
+ var GIT_SHA = "bcf7960";
623
+ var BUILD_TIME = "2026-10-18T21:43:29.081Z";
624
624
  var SEMVER = {
625
- version: "0.37.2139",
626
- gitSha: "491ec71",
627
- buildTime: "2026-10-17T15:36:01.834Z"
625
+ version: "0.37.2140",
626
+ gitSha: "bcf7960",
627
+ buildTime: "2026-10-18T21:43:29.081Z"
628
628
  };
629
629
  var SEED_SCHEMA = 9;
630
630
  var SEED_REGISTERED_WIDGETS = KNOWN_SECTION_WIDGETS;
631
+ var SEED_PRECEDENCE_RANK = {
632
+ core: 0,
633
+ community: 1,
634
+ imported: 2,
635
+ user: 3
636
+ };
637
+ function seedSourceTier(sourceIdOrMetaKey, explicitTier) {
638
+ if (explicitTier) return explicitTier;
639
+ if (!sourceIdOrMetaKey) return "core";
640
+ if (sourceIdOrMetaKey === "user") return "user";
641
+ const id = sourceIdOrMetaKey.startsWith("seed:") ? sourceIdOrMetaKey.slice(5) : sourceIdOrMetaKey;
642
+ if (id === "core" || id === "efforts" || id === "equipment") return "core";
643
+ if (id === "community" || id.startsWith("community-") || id === "common") return "community";
644
+ return "imported";
645
+ }
646
+ function seedPrecedenceRank(sourceIdOrMetaKey, explicitTier) {
647
+ return SEED_PRECEDENCE_RANK[seedSourceTier(sourceIdOrMetaKey, explicitTier)];
648
+ }
631
649
  var SEED_BROADCAST_CHANNEL = "wodwiki.seed";
632
650
  var EFFORTS_CHUNK_ID = "efforts";
633
651
  var EQUIPMENT_CHUNK_ID = "equipment";
@@ -769,36 +787,79 @@ function refreshedBlocks(existing, rawContent, sourceRevision) {
769
787
  let ordinal = 0;
770
788
  return reconcileNoteBlocks(rawContent, { sourceRevision, blocks: mapped, registeredWidgets: SEED_REGISTERED_WIDGETS, createId: () => `seed:${existing.id}:r${sourceRevision}:${ordinal++}` });
771
789
  }
772
- async function applyDefinitionChunk(defStore, parse, family, rows, ids, owned, existingById, allIds) {
790
+ async function applyDefinitionChunk(defStore, noteStore, parse, family, seedSource, incomingRank, otherCheckpoints, priorIds, rows, ids, owned, existingById, allIds) {
791
+ const priorIdSet = new Set(priorIds);
792
+ const maxOtherRankForNote = (noteId) => {
793
+ let max = -1;
794
+ for (const cp of otherCheckpoints) {
795
+ if (cp.noteIds.has(noteId) && cp.rank > max) max = cp.rank;
796
+ }
797
+ return max;
798
+ };
773
799
  const projections = [];
774
800
  for (const [i, row] of rows.entries()) {
775
801
  if (!owned.has(ids[i])) continue;
776
802
  const parsed = parse(row.content);
777
803
  if (!parsed) continue;
778
- projections.push({ ...parsed, registrySource: "bundled", ownerNoteId: ids[i], sourceId: family, sourcePath: row.path });
804
+ projections.push({ ...parsed, registrySource: "bundled", ownerNoteId: ids[i], sourceId: seedSource, sourcePath: row.path });
779
805
  }
780
806
  const prior = await defStore.getMany(projections.map((p) => p.slug));
781
- for (const [i, p] of projections.entries()) {
807
+ const changed = projections.filter((p, i) => {
782
808
  const before = prior[i];
783
- if (before?.registrySource === "bundled" && before.ownerNoteId && before.ownerNoteId !== p.ownerNoteId) {
784
- throw new Error(`Seed definition collision: '${p.slug}' is already owned by another seed source (note ${before.ownerNoteId})`);
809
+ if (!before) return true;
810
+ if (before.registrySource !== "bundled") return false;
811
+ let beforeRank;
812
+ if (before.ownerNoteId === p.ownerNoteId || before.ownerNoteId && priorIdSet.has(before.ownerNoteId) && maxOtherRankForNote(before.ownerNoteId) < incomingRank) {
813
+ beforeRank = incomingRank;
814
+ } else {
815
+ const cpRank = before.ownerNoteId ? maxOtherRankForNote(before.ownerNoteId) : -1;
816
+ beforeRank = cpRank >= 0 ? cpRank : seedPrecedenceRank(before.sourceId);
785
817
  }
786
- }
787
- const changed = projections.filter((p, i) => (!prior[i] || prior[i]?.registrySource === "bundled") && !equal(p, prior[i]));
818
+ return incomingRank >= beforeRank && !equal(p, before);
819
+ });
788
820
  if (changed.length) await defStore.putMany(changed);
789
821
  const wantedSlugs = new Set(projections.map((p) => p.slug));
790
822
  const removedBySlug = /* @__PURE__ */ new Map();
791
823
  for (const id of allIds) {
792
- if (!owned.has(id)) continue;
793
824
  const note = existingById.get(id);
794
- const slug = note ? parse(note.rawContent)?.slug : void 0;
825
+ if (!note || note.seedOrigin !== "seed") continue;
826
+ const slug = parse(note.rawContent)?.slug;
795
827
  if (slug && !wantedSlugs.has(slug)) removedBySlug.set(slug, id);
796
828
  }
797
829
  const removedSlugs = [...removedBySlug.keys()];
798
- const old = await defStore.getMany(removedSlugs);
799
- for (const [i, row] of old.entries()) {
800
- if (row?.registrySource === "bundled" && removedBySlug.get(removedSlugs[i]) === row.ownerNoteId) {
801
- await defStore.delete(removedSlugs[i]);
830
+ if (removedSlugs.length) {
831
+ const old = await defStore.getMany(removedSlugs);
832
+ for (const [i, row] of old.entries()) {
833
+ const slug = removedSlugs[i];
834
+ if (!row || row.registrySource !== "bundled") continue;
835
+ const removedNoteId = removedBySlug.get(slug);
836
+ const isOwnedByThisSource = row.ownerNoteId === removedNoteId && (!row.sourceId || row.sourceId === seedSource || row.sourceId === family);
837
+ if (!isOwnedByThisSource) continue;
838
+ let restored = false;
839
+ for (const cp of otherCheckpoints) {
840
+ const candidateIds = cp.meta.chunks?.[family]?.noteIds ?? [];
841
+ if (!candidateIds.length) continue;
842
+ const candidateNotes = await noteStore.getMany(candidateIds);
843
+ for (const candidateNote of candidateNotes) {
844
+ if (!candidateNote || candidateNote.seedOrigin !== "seed") continue;
845
+ const parsed = parse(candidateNote.rawContent);
846
+ if (parsed && parsed.slug === slug) {
847
+ await defStore.put({
848
+ ...parsed,
849
+ registrySource: "bundled",
850
+ ownerNoteId: candidateNote.id,
851
+ sourceId: cp.sourceId,
852
+ sourcePath: candidateNote.sourcePath ?? ""
853
+ });
854
+ restored = true;
855
+ break;
856
+ }
857
+ }
858
+ if (restored) break;
859
+ }
860
+ if (!restored) {
861
+ await defStore.delete(slug);
862
+ }
802
863
  }
803
864
  }
804
865
  return changed.length;
@@ -839,30 +900,41 @@ async function applySeedChunk(storage, write) {
839
900
  const allIds = [.../* @__PURE__ */ new Set([...ids, ...goneIds])];
840
901
  const stored = await noteStore.getMany(allIds);
841
902
  const existingById = new Map(allIds.map((id, i) => [id, stored[i]]));
903
+ const seedSource = write.meta.key.startsWith("seed:") ? write.meta.key.slice(5) : write.meta.key;
904
+ const incomingRank = seedPrecedenceRank(write.meta.key, write.meta.tier);
905
+ const otherCheckpoints = [];
906
+ for (const row of await metaStore.getAll()) {
907
+ const meta = row;
908
+ if (!meta || typeof meta.key !== "string" || !meta.key.startsWith("seed:") || meta.key === write.meta.key) continue;
909
+ const noteIds = /* @__PURE__ */ new Set();
910
+ for (const chunk of Object.values(meta.chunks ?? {})) {
911
+ for (const noteId of chunk.noteIds ?? []) noteIds.add(noteId);
912
+ }
913
+ otherCheckpoints.push({
914
+ key: meta.key,
915
+ sourceId: meta.key.slice(5),
916
+ rank: seedPrecedenceRank(meta.key, meta.tier),
917
+ meta,
918
+ noteIds
919
+ });
920
+ }
921
+ otherCheckpoints.sort((a, b) => b.rank - a.rank);
922
+ const maxOtherRankForNote = (noteId) => {
923
+ let max = -1;
924
+ for (const cp of otherCheckpoints) {
925
+ if (cp.noteIds.has(noteId) && cp.rank > max) max = cp.rank;
926
+ }
927
+ return max;
928
+ };
842
929
  const ownedIds = allIds.filter((id) => {
843
930
  const note = existingById.get(id);
844
- return !note || note.seedOrigin === "seed" && (declared.has(id) || note.seedChunkId === write.chunkId);
931
+ if (!note) return declared.has(id);
932
+ if (note.seedOrigin !== "seed") return false;
933
+ const otherRank = maxOtherRankForNote(id);
934
+ if (declared.has(id)) return incomingRank >= otherRank;
935
+ return otherRank < 0 && note.seedChunkId === write.chunkId;
845
936
  });
846
937
  const owned = new Set(ownedIds);
847
- {
848
- let checkpoints;
849
- for (const [i, id] of ids.entries()) {
850
- const existing = existingById.get(id);
851
- if (!existing || existing.seedOrigin !== "seed") continue;
852
- if (checkpoints === void 0) {
853
- checkpoints = [];
854
- for (const row of await metaStore.getAll()) {
855
- const meta = row;
856
- if (!meta || typeof meta.key !== "string" || !meta.key.startsWith("seed:") || meta.key === write.meta.key) continue;
857
- const noteIds = /* @__PURE__ */ new Set();
858
- for (const chunk of Object.values(meta.chunks ?? {})) for (const noteId of chunk.noteIds ?? []) noteIds.add(noteId);
859
- checkpoints.push({ key: meta.key, noteIds });
860
- }
861
- }
862
- const owner = checkpoints.find((checkpoint) => checkpoint.noteIds.has(id));
863
- if (owner) throw new Error(`Seed note collision: '${write.rows[i].path}' is already owned by ${owner.key}`);
864
- }
865
- }
866
938
  const revisionStore = tx.readwrite("block_revisions");
867
939
  const historyIds = ids.filter((id, i) => owned.has(id) && existingById.get(id)?.rawContent !== write.rows[i].content);
868
940
  const histories = await revisionStore.getAllFromIndexMany("by-note", historyIds);
@@ -884,7 +956,7 @@ async function applySeedChunk(storage, write) {
884
956
  for (const [i, row] of write.rows.entries()) {
885
957
  const id = ids[i], existing = existingById.get(id);
886
958
  if (!owned.has(id)) {
887
- result.skippedUserOwned++;
959
+ if (existing && existing.seedOrigin !== "seed") result.skippedUserOwned++;
888
960
  continue;
889
961
  }
890
962
  if (!existing) result.addedNotes++;
@@ -984,10 +1056,10 @@ async function applySeedChunk(storage, write) {
984
1056
  result.deleted++;
985
1057
  }
986
1058
  if (write.chunkId === EFFORTS_CHUNK_ID) {
987
- result.totalEfforts = await applyDefinitionChunk(tx.readwrite("efforts"), parseEffortFile, "efforts", write.rows, ids, owned, existingById, allIds);
1059
+ result.totalEfforts = await applyDefinitionChunk(tx.readwrite("efforts"), noteStore, parseEffortFile, "efforts", seedSource, incomingRank, otherCheckpoints, priorIds, write.rows, ids, owned, existingById, allIds);
988
1060
  }
989
1061
  if (write.chunkId === EQUIPMENT_CHUNK_ID) {
990
- result.totalEquipment = await applyDefinitionChunk(tx.readwrite("equipment"), parseEquipmentFile, "equipment", write.rows, ids, owned, existingById, allIds);
1062
+ result.totalEquipment = await applyDefinitionChunk(tx.readwrite("equipment"), noteStore, parseEquipmentFile, "equipment", seedSource, incomingRank, otherCheckpoints, priorIds, write.rows, ids, owned, existingById, allIds);
991
1063
  }
992
1064
  if (changedNotes.length) await noteStore.putMany(changedNotes);
993
1065
  if (revisions.length) await revisionStore.putMany(revisions);
@@ -1003,6 +1075,6 @@ async function applySeedChunk(storage, write) {
1003
1075
  });
1004
1076
  }
1005
1077
 
1006
- export { BUILD_TIME, CANVAS_CHUNK_ID, DASHBOARDS_CHUNK_ID, EFFORTS_CHUNK_ID, EQUIPMENT_CHUNK_ID, GIT_SHA, NOTE_ID_FRONTMATTER_KEY, SEED_BROADCAST_CHANNEL, SEED_REGISTERED_WIDGETS, SEED_SCHEMA, SEMVER, SESSION_CSV_HEADER, TEMPLATE_CHUNK_ID, VERSION, applySeedChunk, assertSeedManifest, assertSeedRows, buildStatementTree, canvasRouteSlug, catalogForChunkId, composeNoteMarkdown, createIRFile, csvToEquipmentLabels, csvToSessionRows, defineLanguagePack, effortToMarkdown, emptySeedMeta, equipmentToCsv, equipmentToMarkdown, extractNoteIdentity, extractTypedTags, getRegisteredLanguagePacks, inMemoryEventStore, injectIdentityFrontmatter, isIRFile, listLanguagePacks, parseCsvLine, readFrontmatterMeta, registerLanguagePack, seedMetaKey, seedNoteId, seedNoteSourceId, sessionToCsv, splitCsvRecords, statementToNode, unregisterLanguagePack };
1078
+ export { BUILD_TIME, CANVAS_CHUNK_ID, DASHBOARDS_CHUNK_ID, EFFORTS_CHUNK_ID, EQUIPMENT_CHUNK_ID, GIT_SHA, NOTE_ID_FRONTMATTER_KEY, SEED_BROADCAST_CHANNEL, SEED_PRECEDENCE_RANK, SEED_REGISTERED_WIDGETS, SEED_SCHEMA, SEMVER, SESSION_CSV_HEADER, TEMPLATE_CHUNK_ID, VERSION, applySeedChunk, assertSeedManifest, assertSeedRows, buildStatementTree, canvasRouteSlug, catalogForChunkId, composeNoteMarkdown, createIRFile, csvToEquipmentLabels, csvToSessionRows, defineLanguagePack, effortToMarkdown, emptySeedMeta, equipmentToCsv, equipmentToMarkdown, extractNoteIdentity, extractTypedTags, getRegisteredLanguagePacks, inMemoryEventStore, injectIdentityFrontmatter, isIRFile, listLanguagePacks, parseCsvLine, readFrontmatterMeta, registerLanguagePack, seedMetaKey, seedNoteId, seedNoteSourceId, seedPrecedenceRank, seedSourceTier, sessionToCsv, splitCsvRecords, statementToNode, unregisterLanguagePack };
1007
1079
  //# sourceMappingURL=index.mjs.map
1008
1080
  //# sourceMappingURL=index.mjs.map