@almadar/shell-web 1.2.1 → 1.3.1
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/AvlGlyph-6MA7AZBV.js +5 -0
- package/dist/AvlStateMachine-JC7L7XE4.js +8 -0
- package/dist/AvlTransitionDetail-DYNDVWPG.js +10 -0
- package/dist/AvlTransitionExplainer-2UZQADBO.js +11 -0
- package/dist/BehaviorView-GEXFDDJ4.js +10 -0
- package/dist/{FileTree-B3GDAjaQ.d.ts → FileTree-CYtJ4yHB.d.ts} +12 -2
- package/dist/FlowCanvas-FINBI4XQ.js +23 -0
- package/dist/{GameAudioProvider-BgWOOYT3.d.ts → GameAudioProvider-B8FBcGVE.d.ts} +1 -1
- package/dist/{KernelEngineContext-BPx-q0iw.d.ts → KernelEngineContext-6l6vkc50.d.ts} +1 -1
- package/dist/LayersPanel-RPYIG5OC.js +6 -0
- package/dist/ModuleCard-7WXCBELY.js +6 -0
- package/dist/OrbInspector-F5X7ZBNB.js +23 -0
- package/dist/OrbPreview-LQCUPAHB.js +23 -0
- package/dist/OrbPreview-V4VLWNMT.css +1754 -0
- package/dist/{Select-BJ8Fgc8A.d.ts → Select-DuX0Gvwo.d.ts} +14 -8
- package/dist/UISlotRenderer-RUI64CSS.js +23 -0
- package/dist/auth/react/index.js +4 -0
- package/dist/avl/index.d.ts +2 -2
- package/dist/avl/index.js +31 -31
- package/dist/{chunk-7UCL26QB.js → chunk-2X2SUH6H.js} +4 -4
- package/dist/{chunk-TAEOMNDK.js → chunk-6RVHS7VA.js} +44916 -44208
- package/dist/{chunk-RDPELAFQ.js → chunk-7GGUX2ER.js} +4 -4
- package/dist/{chunk-3YUMGEEW.js → chunk-AYQKZFUH.js} +1 -1
- package/dist/{chunk-S3LS3B7N.js → chunk-CB4POLGP.js} +1 -1
- package/dist/{chunk-LINJRTNB.js → chunk-FC3MXAFJ.js} +2 -2
- package/dist/{chunk-2LNXLMK3.js → chunk-FZOX7XTU.js} +41 -41
- package/dist/{chunk-CCO2ZH7F.js → chunk-GC7BGA5F.js} +3 -3
- package/dist/{chunk-ZDRDJKYB.js → chunk-MXN32OVV.js} +212 -20
- package/dist/{chunk-D5FJU4XC.js → chunk-OOG33EGF.js} +46 -14
- package/dist/{chunk-AU7O65OX.js → chunk-OXHXISFA.js} +1 -1
- package/dist/{chunk-PWXZN5G5.js → chunk-PD5QUVRE.js} +2 -2
- package/dist/{chunk-GHAF7QUD.js → chunk-QZ6TDP6I.js} +1 -1
- package/dist/{chunk-HA2BYO5E.js → chunk-R5Z655B4.js} +2 -2
- package/dist/{chunk-JEN4EIUF.js → chunk-RCB4CKRK.js} +1 -1
- package/dist/{chunk-AL2XXMYR.js → chunk-RQH6O76X.js} +20 -6
- package/dist/{chunk-3UQNFRYV.js → chunk-SO2MERCZ.js} +20 -25
- package/dist/{chunk-DPDKBY6Z.js → chunk-SVIH6ICP.js} +2 -1
- package/dist/{chunk-UFQLHCFJ.js → chunk-SZJEUMQ2.js} +2 -2
- package/dist/{chunk-V5SVGUYN.js → chunk-TDSE2L4F.js} +2 -2
- package/dist/{chunk-PCR37T3U.js → chunk-UUHF7XOZ.js} +9 -5
- package/dist/{chunk-B23EZH2P.js → chunk-VC5BOBVE.js} +3 -3
- package/dist/{chunk-LKL5RULQ.js → chunk-VQQEFPNX.js} +3 -2
- package/dist/{chunk-6RXP5ZXE.js → chunk-YNF2LH2I.js} +8 -8
- package/dist/{chunk-KTYOYEVA.js → chunk-YU2ZNLGI.js} +1 -1
- package/dist/{chunk-3DA36FOA.js → chunk-ZR2UDQOR.js} +2 -2
- package/dist/components/index.d.ts +295 -22
- package/dist/components/index.js +30 -25
- package/dist/context/index.js +3 -3
- package/dist/core.d.ts +23 -6
- package/dist/core.js +1 -1
- package/dist/{fx-Bx5RqplG.d.ts → fx-Bc3yEVED.d.ts} +2 -2
- package/dist/hooks/index.js +4 -4
- package/dist/index.d.ts +18 -5
- package/dist/index.js +4 -4
- package/dist/{kernel-client-NMZ56JVU.js → kernel-client-NSTJKR2U.js} +84 -35
- package/dist/{kernel-wire-CRsHtLsf.d.ts → kernel-wire-Ds7xSZzx.d.ts} +6 -0
- package/dist/lib/index.d.ts +2 -2
- package/dist/lib/index.js +3 -3
- package/dist/providers/index.d.ts +5 -5
- package/dist/providers/index.js +18 -18
- package/dist/runtime/index.d.ts +6 -2
- package/dist/runtime/index.js +17 -17
- package/dist/ssr/index.cjs +27 -4
- package/dist/ssr/index.d.cts +6 -0
- package/dist/ssr/index.d.ts +6 -0
- package/dist/ssr/index.js +27 -4
- package/dist/test-support.js +2 -2
- package/dist/{verificationRegistry-BLuQU1JV.d.ts → verificationRegistry-Dz5N0oxx.d.ts} +199 -8
- package/package.json +9 -9
- package/src/core/locales/ar.json +8 -1
- package/src/core/locales/en.json +8 -1
- package/src/core/locales/sl.json +8 -1
- package/dist/AvlGlyph-KZMJDBEB.js +0 -5
- package/dist/AvlStateMachine-KVZMFHFU.js +0 -8
- package/dist/AvlTransitionDetail-7DVGV27I.js +0 -10
- package/dist/AvlTransitionExplainer-RMJ5LQLK.js +0 -11
- package/dist/BehaviorView-EYRPME67.js +0 -10
- package/dist/FlowCanvas-J54627TC.js +0 -23
- package/dist/LayersPanel-PSXI4EHG.js +0 -6
- package/dist/ModuleCard-TNRLL45H.js +0 -6
- package/dist/OrbInspector-UBEQWWZ2.js +0 -23
- package/dist/UISlotRenderer-5OURMAP2.js +0 -23
package/dist/components/index.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
export { assertUniqueSlotsPerHost } from '../chunk-5QTYQTPS.js';
|
|
3
|
-
export { BehaviorView } from '../chunk-
|
|
4
|
-
export { ModuleCard } from '../chunk-
|
|
5
|
-
import { JsonTreeEditor } from '../chunk-
|
|
6
|
-
export { JsonTreeEditor } from '../chunk-
|
|
7
|
-
export { SharedEntityStoreContext, createSharedEntityStore, runTickFrame, useAgentChat, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, usePreview, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useTickVisibility, useTraitListens, useUIEvents, useValidation } from '../chunk-
|
|
8
|
-
import { resolveSheetDirection, frameRect, GridPicker, FormSection } from '../chunk-
|
|
9
|
-
export { Card as ActionCard, ActionPalette, ActionTile, ActivationBlock, ActivityRail, AgentActivityFeed, AgentActivityRow, AgentChatFeed, AgentThinkingRow, Alert, AlgoGraphCanvas, AlgorithmCanvas, AnimatedCounter, AuthLayout, BiologyCanvas, BloomQuizBlock, BranchingLogicBuilder, Breadcrumb, ButtonGroup, COMPACT_MEDIA_QUERY, CalendarGrid, Canvas, Canvas2D, Carousel, ChangeList, Chart, ChartLegend, ChatBar, ChemistryCanvas, ChoiceButton, CodeBlock, CodeRunnerPanel, CommandPalette, CommitRow, ConfirmDialog, ConnectionBlock, Container, ContentRenderer, ControlButton, ControlGrid, CounterTemplate, DEFAULT_LIKERT_OPTION_KEYS, DEFAULT_MATRIX_COLUMN_KEYS, DIAMOND_TOP_Y, DashboardGrid, DashboardLayout, DataGrid, DataList, DateRangePicker, DateRangeSelector, DetailPanel, DialogueBubble, DocBreadcrumb, DocPagination, DocSearch, DocSidebar, DocTOC, DockLayout, DocumentDetails, DocumentPanel, DocumentViewer, StateMachineView as DomStateMachineVisualizer, DrawFxLayer, DrawGroup, DrawMesh, DrawShape, DrawShapeLayer, DrawSkinnedMesh, DrawSprite, DrawSpriteLayer, DrawText, DrawTextLayer, Drawer, DrawerSlot, ELEMENT_SELECTED_EVENT, EdgeDecoration, EmojiPicker, ErrorBoundary, ErrorState, FEATURE_COLORS, FLOOR_HEIGHT, FeatureCard, FeatureGrid, FilterGroup, Flex, FlipCard, FloatingActionButton, FloatingToolbar, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, FxOverlay, GameAudioContext, GameAudioCue, GameAudioProvider, GameAudioToggle, GameHud, GameMenu, GameShell, Gantt, GenericAppTemplate, GeometricPattern, GradientDivider, GraphCanvas, GraphView, Grid, GridPicker, GuestView, Header, HealthBar, IconButton, ImportPreviewTree, ImportProgress, ImportSourcePicker, InputGroup, JazariStateMachine, LearningCanvas, Lightbox, LikertScale, LineChart, LoadingState, MachinePanel, MapView, MarkdownContent, MasterDetailLayout, MathCanvas, MatrixQuestion, MediaGallery, Menu, Meter, Modal, ModalSlot, Navigation, NumberStepper, OptionConstraintGroup, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, PageHeader, PageTransition, Pagination, PhysicsCanvas, PositionedCanvas, ProgressDots, PullToRefresh, QrScanner, QuizBlock, ReflectionBlock, RelationSelect, RepeatableFormSection, ReplyTree, RichTextEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreDisplay, SearchInput, Section, SegmentRenderer, SequenceBar, SidePanel, Sidebar, SignaturePad, SimpleGrid, Skeleton, SkeletonTree, SlotContentRenderer, SocialProof, SortableList, Split, SplitPane, StarRating, StatBadge, StatCard, StatDisplay, StateGraph, StateJsonView, StateMachineView, SubagentTracePanel, SwipeableRow, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, TableView, Tabs, TagInput, Timeline, TimerDisplay, Toast, ToastSlot, TopNavItem, TraitFrame, TraitSlot, TraitStateViewer, UISlotComponent, UISlotRenderer, UploadDropZone, VersionDiff, ViolationAlert, VoteStack, WizardContainer, WizardNavigation, WizardProgress, activityRowFacts, applyCompletion, applySuggestions, createUnitAnimationState, dispatchCommandPaletteCommand, getCurrentFrame, groupIntoConversations, inferDirection, isoToScreen, parseEditFocus, parseMarkdownWithCodeBlocks, preloadCodeHighlighter, registerCodeLanguageLoader, renderPatternValue, resolveFrame, resolveSheetDirection, sanitizeRichHtml, screenToIso, tickAnimationState, toCodeLanguage, transitionAnimation, useCamera, useCompactLayout, useDockLayout, useGameAudio, useGameAudioContext, useImageCache } from '../chunk-
|
|
10
|
-
export { FileTree } from '../chunk-
|
|
11
|
-
import '../chunk-
|
|
12
|
-
import '../chunk-
|
|
13
|
-
import '../chunk-
|
|
14
|
-
export { Accordion } from '../chunk-
|
|
15
|
-
export { EmptyState } from '../chunk-
|
|
16
|
-
import '../chunk-
|
|
17
|
-
import '../chunk-
|
|
18
|
-
import { ThemedPortal } from '../chunk-
|
|
19
|
-
export { Popover, Tooltip } from '../chunk-
|
|
20
|
-
import '../chunk-
|
|
21
|
-
import '../chunk-
|
|
3
|
+
export { BehaviorView } from '../chunk-VC5BOBVE.js';
|
|
4
|
+
export { ModuleCard } from '../chunk-2X2SUH6H.js';
|
|
5
|
+
import { JsonTreeEditor } from '../chunk-RCB4CKRK.js';
|
|
6
|
+
export { JsonTreeEditor } from '../chunk-RCB4CKRK.js';
|
|
7
|
+
export { SharedEntityStoreContext, createSharedEntityStore, runTickFrame, useAgentChat, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, usePreview, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useTickVisibility, useTraitListens, useUIEvents, useValidation } from '../chunk-PD5QUVRE.js';
|
|
8
|
+
import { resolveSheetDirection, frameRect, GridPicker, FormSection } from '../chunk-6RVHS7VA.js';
|
|
9
|
+
export { Card as ActionCard, ActionPalette, ActionTile, ActivationBlock, ActivityRail, AgentActivityFeed, AgentActivityRow, AgentChatFeed, AgentThinkingRow, Alert, AlgoGraphCanvas, AlgorithmCanvas, AnimatedCounter, AnnotatedMedia, AuthLayout, BiologyCanvas, BloomQuizBlock, BranchingLogicBuilder, Breadcrumb, ButtonGroup, COMPACT_MEDIA_QUERY, CalendarGrid, Canvas, Canvas2D, Carousel, ChangeList, Chart, ChartLegend, ChatBar, ChemistryCanvas, ChoiceButton, CodeBlock, CodeRunnerPanel, CommandPalette, CommitRow, ConfirmDialog, ConnectionBlock, Container, ContentRenderer, ControlButton, ControlGrid, CounterTemplate, DEFAULT_LIKERT_OPTION_KEYS, DEFAULT_MATRIX_COLUMN_KEYS, DIAMOND_TOP_Y, DashboardGrid, DashboardLayout, DataGrid, DataList, DateRangePicker, DateRangeSelector, DetailPanel, DialogueBubble, DocBreadcrumb, DocPagination, DocSearch, DocSidebar, DocTOC, DockLayout, DocumentDetails, DocumentPanel, DocumentViewer, StateMachineView as DomStateMachineVisualizer, DrawFxLayer, DrawGroup, DrawMesh, DrawShape, DrawShapeLayer, DrawSkinnedMesh, DrawSprite, DrawSpriteLayer, DrawText, DrawTextLayer, Drawer, DrawerSlot, ELEMENT_SELECTED_EVENT, EdgeDecoration, EmojiPicker, ErrorBoundary, ErrorState, FEATURE_COLORS, FLOOR_HEIGHT, FeatureCard, FeatureGrid, FilterGroup, Flex, FlipCard, FloatingActionButton, FloatingToolbar, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, FxOverlay, GameAudioContext, GameAudioCue, GameAudioProvider, GameAudioToggle, GameHud, GameMenu, GameShell, Gantt, GenericAppTemplate, GeometricPattern, GradientDivider, GraphCanvas, GraphView, Grid, GridPicker, GuestView, Header, HealthBar, IconButton, ImportPreviewTree, ImportProgress, ImportSourcePicker, InputGroup, JazariStateMachine, LearningCanvas, Lightbox, LikertScale, LineChart, LoadingState, MachinePanel, MapView, MarkdownContent, MasterDetailLayout, MathCanvas, MatrixQuestion, MediaGallery, Menu, Meter, Modal, ModalSlot, Navigation, NumberStepper, OptionConstraintGroup, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, PageHeader, PageTransition, Pagination, PhysicsCanvas, PositionedCanvas, ProgressDots, PullToRefresh, QrScanner, QuizBlock, ReflectionBlock, RelationSelect, RepeatableFormSection, ReplyTree, RichTextEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreDisplay, SearchInput, Section, SegmentRenderer, SequenceBar, SidePanel, Sidebar, SignaturePad, SimpleGrid, Skeleton, SkeletonTree, SlotContentRenderer, SocialProof, SortableList, Split, SplitPane, StarRating, StatBadge, StatCard, StatDisplay, StateGraph, StateJsonView, StateMachineView, SubagentTracePanel, SwipeableRow, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, TableView, Tabs, TagInput, Timeline, TimerDisplay, Toast, ToastSlot, TopNavItem, TraitFrame, TraitSlot, TraitStateViewer, UISlotComponent, UISlotRenderer, UploadDropZone, VersionDiff, ViolationAlert, VoteStack, WizardContainer, WizardNavigation, WizardProgress, activityRowFacts, applyCompletion, applySuggestions, createUnitAnimationState, dispatchCommandPaletteCommand, getCurrentFrame, groupIntoConversations, inferDirection, isoToScreen, parseEditFocus, parseMarkdownWithCodeBlocks, preloadCodeHighlighter, registerCodeLanguageLoader, renderPatternValue, resolveFrame, resolveSheetDirection, sanitizeRichHtml, screenToIso, tickAnimationState, toCodeLanguage, transitionAnimation, useCamera, useCompactLayout, useDockLayout, useGameAudio, useGameAudioContext, useImageCache } from '../chunk-6RVHS7VA.js';
|
|
10
|
+
export { FileTree } from '../chunk-RQH6O76X.js';
|
|
11
|
+
import '../chunk-7GGUX2ER.js';
|
|
12
|
+
import '../chunk-GC7BGA5F.js';
|
|
13
|
+
import '../chunk-SVIH6ICP.js';
|
|
14
|
+
export { Accordion } from '../chunk-ZR2UDQOR.js';
|
|
15
|
+
export { EmptyState } from '../chunk-AYQKZFUH.js';
|
|
16
|
+
import '../chunk-R5Z655B4.js';
|
|
17
|
+
import '../chunk-UUHF7XOZ.js';
|
|
18
|
+
import { ThemedPortal } from '../chunk-TDSE2L4F.js';
|
|
19
|
+
export { Popover, Tooltip } from '../chunk-TDSE2L4F.js';
|
|
20
|
+
import '../chunk-SO2MERCZ.js';
|
|
21
|
+
import '../chunk-VQQEFPNX.js';
|
|
22
22
|
import '../chunk-TZZBINQY.js';
|
|
23
|
-
import '../chunk-
|
|
24
|
-
export { claimDelivery, keyChord, mergeCaptureTables, parseQueryBinding, useAuthContext, useCanvasGestures, useDragReorder, useKeyboardRouter, useLongPress, usePageHead, usePullToRefresh, useQuerySingleton, useSwipeGesture } from '../chunk-
|
|
25
|
-
export { ALMADAR_DND_MIME, useDraggable, useDropZone } from '../chunk-
|
|
26
|
-
import '../chunk-
|
|
23
|
+
import '../chunk-MXN32OVV.js';
|
|
24
|
+
export { claimDelivery, keyChord, mergeCaptureTables, parseQueryBinding, useAuthContext, useCanvasGestures, useDragReorder, useKeyboardRouter, useLongPress, usePageHead, usePullToRefresh, useQuerySingleton, useSwipeGesture } from '../chunk-CB4POLGP.js';
|
|
25
|
+
export { ALMADAR_DND_MIME, useDraggable, useDropZone } from '../chunk-QZ6TDP6I.js';
|
|
26
|
+
import '../chunk-FZOX7XTU.js';
|
|
27
27
|
import '../chunk-3BBUBJFF.js';
|
|
28
28
|
export { DEFAULT_SLOTS, useUISlotManager } from '../chunk-ANTJUQRD.js';
|
|
29
|
-
import { VStack, Button, HStack, GameIcon, Typography, Box, useTranslate, Badge, Icon, cn, Select, domPassthrough, Switch, Input } from '../chunk-
|
|
29
|
+
import { VStack, Button, HStack, GameIcon, Typography, Box, useTranslate, Badge, Icon, cn, Select, domPassthrough, Switch, Input } from '../chunk-OOG33EGF.js';
|
|
30
30
|
import { getKnownPatterns, getPatternDefinition } from '../chunk-ECC3WQIB.js';
|
|
31
31
|
import '../chunk-AZ74UPG6.js';
|
|
32
32
|
import '../chunk-G7DCAZ22.js';
|
|
@@ -1104,4 +1104,9 @@ var EntityDisplayEvents = {
|
|
|
1104
1104
|
DESELECT: "DESELECT"
|
|
1105
1105
|
};
|
|
1106
1106
|
|
|
1107
|
-
|
|
1107
|
+
// src/components/game/atoms/DrawEmitter.tsx
|
|
1108
|
+
function DrawEmitter(_props) {
|
|
1109
|
+
return null;
|
|
1110
|
+
}
|
|
1111
|
+
|
|
1112
|
+
export { ALL_PRESETS, AssetPicker, Coachmark, CollapsibleSection, DrawEmitter, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EntityDisplayEvents, FEATURE_TYPES, IconPicker, NodeSlotEditor, OnboardingSpotlight, PropertyInspector, StatusBar, TERRAIN_COLORS, TerrainPalette, boardEntity, bool, calculateAttackTargets, calculateValidMoves, createInitialGameState, makeAsset, makeAssetMap, num, objAvailableActions, objAvailableEvents, objCurrentState, objIcon, objId, objMaxRules, objName, objRules, objStates, pendulum, projectileMotion, rows, springOscillator, str, unitHealth, unitPosition, unitTeam, useAnchorRect, useUnitSpriteAtlas, vec2 };
|
package/dist/context/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { DesignThemeProvider, useDesignTheme } from '../chunk-
|
|
3
|
-
export { ANONYMOUS_USER, ARBITRARY_CLASS_STYLE_ID, ArbitraryClassCompilerProvider, CurrentPagePathContext, CurrentPagePathProvider, OrbitalThemeProvider, UISlotContext, UISlotProvider, UserContext, UserProvider, useArbitraryClassStyles, useCurrentPagePath, useHasPermission, useHasRole, useSlotContent, useSlotHasContent, useUISlots, useUser, useUserForEvaluation } from '../chunk-
|
|
2
|
+
export { DesignThemeProvider, useDesignTheme } from '../chunk-YU2ZNLGI.js';
|
|
3
|
+
export { ANONYMOUS_USER, ARBITRARY_CLASS_STYLE_ID, ArbitraryClassCompilerProvider, CurrentPagePathContext, CurrentPagePathProvider, OrbitalThemeProvider, UISlotContext, UISlotProvider, UserContext, UserProvider, useArbitraryClassStyles, useCurrentPagePath, useHasPermission, useHasRole, useSlotContent, useSlotHasContent, useUISlots, useUser, useUserForEvaluation } from '../chunk-FZOX7XTU.js';
|
|
4
4
|
export { resolveThemeForRuntime, themeTokensToCssVars } from '../chunk-3BBUBJFF.js';
|
|
5
5
|
import '../chunk-ANTJUQRD.js';
|
|
6
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-OOG33EGF.js';
|
|
7
7
|
import '../chunk-AZ74UPG6.js';
|
|
8
8
|
import '../chunk-G7DCAZ22.js';
|
package/dist/core.d.ts
CHANGED
|
@@ -2,9 +2,9 @@ import * as React$1 from 'react';
|
|
|
2
2
|
import React__default, { RefObject } from 'react';
|
|
3
3
|
import { A11yProps, AssetUrl, EventKey, TextureAtlas, Tilesheet, SpriteSheetAtlas, EventPayload, EventEmit, FieldValue, SExpr, Asset, OrbitalSchema, OrbitalPage, NavStackEntry, IconFamily as IconFamily$1, JsonValue, SurfaceMode } from '@almadar/core';
|
|
4
4
|
export { BusEvent, BusEventListener, BusEventSource, BusEventListener as EventListener, SurfaceMode, Unsubscribe, comparePathSpecificity, matchPath, matchPathAmong } from '@almadar/core';
|
|
5
|
-
import { I as IconInput } from './fx-
|
|
6
|
-
export { B as Badge, b as BadgeColor, c as BadgeProps, d as BadgeSize, e as BadgeVariant, C as CONFETTI_BURST_KEYFRAMES, f as CONFETTI_COLORS, g as ColorToken, h as ConfettiParticle, D as DisplayField, i as DisplayFieldFormat, j as DisplayFieldVariant, F as FxItem, k as FxLifecycle, l as FxOverlayItem, m as FxOverlayKind, a as FxPreset, n as FxProceduralShape, o as FxSpace, p as FxView, q as Icon, r as IconAnimation, s as IconProps, t as IconSize, u as ImageSource, L as LinkAction, P as Point, R as Rect, U as UiError, v as createConfettiParticles, w as fxHash01, x as fxLifecycle, y as isColorToken, z as resolveColorToken, A as resolveFxView, E as resolveIcon } from './fx-
|
|
7
|
-
export { B as Button, a as ButtonProps, b as ButtonSize, c as ButtonVariant, I as Input, d as InputProps, P as PatternTile, e as PatternTileProps, f as PatternVariant, S as Select, g as SelectOption, h as SelectOptionGroup, i as SelectProps, j as getTileDimensions } from './Select-
|
|
5
|
+
import { I as IconInput } from './fx-Bc3yEVED.js';
|
|
6
|
+
export { B as Badge, b as BadgeColor, c as BadgeProps, d as BadgeSize, e as BadgeVariant, C as CONFETTI_BURST_KEYFRAMES, f as CONFETTI_COLORS, g as ColorToken, h as ConfettiParticle, D as DisplayField, i as DisplayFieldFormat, j as DisplayFieldVariant, F as FxItem, k as FxLifecycle, l as FxOverlayItem, m as FxOverlayKind, a as FxPreset, n as FxProceduralShape, o as FxSpace, p as FxView, q as Icon, r as IconAnimation, s as IconProps, t as IconSize, u as ImageSource, L as LinkAction, P as Point, R as Rect, U as UiError, v as createConfettiParticles, w as fxHash01, x as fxLifecycle, y as isColorToken, z as resolveColorToken, A as resolveFxView, E as resolveIcon } from './fx-Bc3yEVED.js';
|
|
7
|
+
export { B as Button, a as ButtonProps, b as ButtonSize, c as ButtonVariant, I as Input, d as InputProps, P as PatternTile, e as PatternTileProps, f as PatternVariant, S as Select, g as SelectOption, h as SelectOptionGroup, i as SelectProps, j as getTileDimensions } from './Select-DuX0Gvwo.js';
|
|
8
8
|
export { E as EventBusContext, a as EventBusContextType, b as EventBusContextTypeExtended, c as EventBusProvider, V as VideoEmbed, d as VideoEmbedProps, e as VideoErrorPayload, f as VideoPlayPayload, g as VideoReadyPayload, h as getGlobalEventBus, s as setGlobalEventBus, u as useEmitEvent, i as useEventBus, j as useEventListener, k as useEventSubscription, l as useRootEventBus } from './EventBusProvider-BFFHfN4O.js';
|
|
9
9
|
import { ClassValue } from 'clsx';
|
|
10
10
|
import { LucideIcon } from 'lucide-react';
|
|
@@ -335,6 +335,9 @@ interface BoxMarquee {
|
|
|
335
335
|
/** Repeat the content right after itself so the strip never runs out; without it the content leaves and starts over */
|
|
336
336
|
loop: boolean;
|
|
337
337
|
}
|
|
338
|
+
/**
|
|
339
|
+
* @layoutOnly
|
|
340
|
+
*/
|
|
338
341
|
interface BoxProps extends Omit<React__default.HTMLAttributes<HTMLDivElement>, keyof A11yProps>, A11yProps {
|
|
339
342
|
/** Additional CSS classes applied to the root element. */
|
|
340
343
|
className?: string;
|
|
@@ -454,6 +457,9 @@ declare const CardContent: React__default.ForwardRefExoticComponent<React__defau
|
|
|
454
457
|
declare const CardBody: React__default.ForwardRefExoticComponent<React__default.HTMLAttributes<HTMLDivElement> & React__default.RefAttributes<HTMLDivElement>>;
|
|
455
458
|
declare const CardFooter: React__default.ForwardRefExoticComponent<React__default.HTMLAttributes<HTMLDivElement> & React__default.RefAttributes<HTMLDivElement>>;
|
|
456
459
|
|
|
460
|
+
/**
|
|
461
|
+
* @layoutOnly
|
|
462
|
+
*/
|
|
457
463
|
interface CenterProps extends A11yProps {
|
|
458
464
|
/** Center inline (width fits content) vs block (full width) */
|
|
459
465
|
inline?: boolean;
|
|
@@ -1088,6 +1094,9 @@ declare const SectionHeader: React__default.FC<SectionHeaderProps>;
|
|
|
1088
1094
|
*/
|
|
1089
1095
|
|
|
1090
1096
|
type SpacerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'auto';
|
|
1097
|
+
/**
|
|
1098
|
+
* @layoutOnly
|
|
1099
|
+
*/
|
|
1091
1100
|
interface SpacerProps extends A11yProps {
|
|
1092
1101
|
/** Fixed size (auto = flex grow) */
|
|
1093
1102
|
size?: SpacerSize;
|
|
@@ -1162,6 +1171,9 @@ type StackDirection = "horizontal" | "vertical";
|
|
|
1162
1171
|
type StackGap = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
|
|
1163
1172
|
type StackAlign = "start" | "center" | "end" | "stretch" | "baseline";
|
|
1164
1173
|
type StackJustify = "start" | "center" | "end" | "between" | "around" | "evenly";
|
|
1174
|
+
/**
|
|
1175
|
+
* @layoutOnly
|
|
1176
|
+
*/
|
|
1165
1177
|
interface StackProps extends Omit<React__default.AriaAttributes, keyof A11yProps>, A11yProps {
|
|
1166
1178
|
/** Stack direction */
|
|
1167
1179
|
direction?: StackDirection;
|
|
@@ -1244,7 +1256,7 @@ declare const StatusDot: React__default.ForwardRefExoticComponent<StatusDotProps
|
|
|
1244
1256
|
/**
|
|
1245
1257
|
* @accessibleName label
|
|
1246
1258
|
* @role switch
|
|
1247
|
-
* @tokens --color-primary --color-muted --color-background
|
|
1259
|
+
* @tokens --color-primary --color-muted-foreground --color-background
|
|
1248
1260
|
* @motion css
|
|
1249
1261
|
*/
|
|
1250
1262
|
interface SwitchProps extends A11yProps {
|
|
@@ -1252,7 +1264,9 @@ interface SwitchProps extends A11yProps {
|
|
|
1252
1264
|
defaultChecked?: boolean;
|
|
1253
1265
|
onChange?: (checked: boolean) => void;
|
|
1254
1266
|
/** Declarative event name — emits UI:{action} with `actionPayload` and the new `checked` value on toggle */
|
|
1255
|
-
action?:
|
|
1267
|
+
action?: EventEmit<{
|
|
1268
|
+
checked: boolean;
|
|
1269
|
+
}>;
|
|
1256
1270
|
/** Payload to include with the action event (the new `checked` is added to it)
|
|
1257
1271
|
* @payloadFor action
|
|
1258
1272
|
*/
|
|
@@ -1345,7 +1359,10 @@ interface TextareaProps extends Omit<React__default.TextareaHTMLAttributes<HTMLT
|
|
|
1345
1359
|
placeholder?: string;
|
|
1346
1360
|
/** Number of visible rows */
|
|
1347
1361
|
rows?: number;
|
|
1348
|
-
/** Controlled value, for a field the program fills or clears.
|
|
1362
|
+
/** Controlled value, for a field the program fills or clears.
|
|
1363
|
+
* @changedBy onChange
|
|
1364
|
+
* @changedBy action
|
|
1365
|
+
*/
|
|
1349
1366
|
value?: string;
|
|
1350
1367
|
/** Declarative event: fires on ⌘/Ctrl+Enter with `{ value }`. */
|
|
1351
1368
|
action?: EventEmit<{
|
package/dist/core.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { AnimatedGraphic, AnimatedReveal, Aside, AtlasImage, AtlasPanel, Avatar, BAND_ACCENT_FALLBACK, BAND_EDGE_FILL, BAND_SHAPES, BUILT_IN_THEMES, Badge, Box, Button, CONFETTI_BURST_KEYFRAMES, CONFETTI_COLORS, Card, CardBody, CardContent, CardFooter, CardHeader, CardTitle, Center, Checkbox, ConditionalWrapper, ConfettiEffect, DEFAULT_CURRENCY, DayCell, Dialog, Divider, EventBusContext, EventBusProvider, FilterPill, FlipContainer, GameIcon, HStack, I18nProvider, INLINE_TEXT_ATTR, Icon, Image, InfiniteScrollSentinel, Input, Label, LawReferenceTooltip, NavStackProvider, NavStackRouterBridge, NavigationProvider, Overlay, PatternTile, PendingScopeContext, Presence, ProgressBar, Radio, RangeSlider, STRETCHED_ABOVE, STRETCHED_CONTROL, SVG_MOTION_CLASSES, SectionHeader, Select, Spacer, Sparkline, Spinner, Stack, StatusDot, SurfaceBoundary, SvgBranch, SvgConnection, SvgFlow, SvgGrid, SvgLobe, SvgMesh, SvgMorph, SvgNode, SvgPulse, SvgRing, SvgShield, SvgStack, Switch, THEME_SCALE_KEYS, TextHighlight, Textarea, ThemeProvider, ThemeScopeContext, ThemeToggle, TimeSlotCell, TraitScopeProvider, TrendIndicator, TypewriterText, Typography, VStack, VideoEmbed, atlasFailed, atlasUrlOf, bandEdgeHeight, bandEdgeLayerStyle, bandEdgeMask, bandPadding, beginPending, blit, boxesOf, cn, compareCellValues, comparePathSpecificity, coreMessages, createConfettiParticles, createTraitPresence, createTranslate, cssTimeMs, domPassthrough, endPending, entriesFor, evaluateBinding, evaluateBindings, extractRouteParams, findPageByName, findPageByPath, followHref, formatDate, formatDateTime, formatTime, formatValue, fxHash01, fxLifecycle, getAllPages, getAtlas, getCurrentIconFamily, getDefaultPage, getGlobalEventBus, getTileDimensions, getTraitPresence, guardsHold, isAbsoluteHref, isAtlasAsset, isColorToken, isInertNavStack, isMotionEnabled, isPending, isSpriteSheetAtlas, kebabToPascal, keyInViewerMode, layoutScale, localeMeta, lucideIconKey, matchNavPage, matchPath, matchPathAmong, mergeMessages, motionTiming, navLabelsFromItems, newPendingKey, pageEntryLabel, parseCalendarDate, pathMatches, presenceGroup, pressableProps, previousEntry, registryKeyMode, registryKeyTheme, relabelCurrent, resolveAssetSource, resolveColorToken, resolveEntryLabels, resolveFxView, resolveIcon, resolveIconForFamily, resolveLucideByName, rowActivationProps, rowOpenControlProps, setGlobalEventBus, sortRows, subRectFor, subscribePending, svgMotionClass, syncNavStack, themeHasMode, toDateInputValue, toDateTimeInputValue, useActivePage, useAnimateChanges, useAtlasSliceDataUrl, useContentSurface, useDialogBehavior, useEmitEvent, useEventBus, useEventListener, useEventSubscription, useFormatContext, useIconFamily, useInfiniteScroll, useInitPayload, useMediaQuery, useNavStack, useNavigateTo, useNavigation, useNavigationId, useNavigationState, useOnSurface, usePendingAction, usePendingRows, usePendingScopeValue, usePrefersReducedMotion, usePresence, useRenderI18n, useResolvedIcon, useRootEventBus, useScopeHasPending, useScopedMode, useTapReveal, useTheme, useThemeIconStrokeApplies, useThemeScope, useTraitScope, useTraitScopeChain, useTranslate } from './chunk-
|
|
2
|
+
export { AnimatedGraphic, AnimatedReveal, Aside, AtlasImage, AtlasPanel, Avatar, BAND_ACCENT_FALLBACK, BAND_EDGE_FILL, BAND_SHAPES, BUILT_IN_THEMES, Badge, Box, Button, CONFETTI_BURST_KEYFRAMES, CONFETTI_COLORS, Card, CardBody, CardContent, CardFooter, CardHeader, CardTitle, Center, Checkbox, ConditionalWrapper, ConfettiEffect, DEFAULT_CURRENCY, DayCell, Dialog, Divider, EventBusContext, EventBusProvider, FilterPill, FlipContainer, GameIcon, HStack, I18nProvider, INLINE_TEXT_ATTR, Icon, Image, InfiniteScrollSentinel, Input, Label, LawReferenceTooltip, NavStackProvider, NavStackRouterBridge, NavigationProvider, Overlay, PatternTile, PendingScopeContext, Presence, ProgressBar, Radio, RangeSlider, STRETCHED_ABOVE, STRETCHED_CONTROL, SVG_MOTION_CLASSES, SectionHeader, Select, Spacer, Sparkline, Spinner, Stack, StatusDot, SurfaceBoundary, SvgBranch, SvgConnection, SvgFlow, SvgGrid, SvgLobe, SvgMesh, SvgMorph, SvgNode, SvgPulse, SvgRing, SvgShield, SvgStack, Switch, THEME_SCALE_KEYS, TextHighlight, Textarea, ThemeProvider, ThemeScopeContext, ThemeToggle, TimeSlotCell, TraitScopeProvider, TrendIndicator, TypewriterText, Typography, VStack, VideoEmbed, atlasFailed, atlasUrlOf, bandEdgeHeight, bandEdgeLayerStyle, bandEdgeMask, bandPadding, beginPending, blit, boxesOf, cn, compareCellValues, comparePathSpecificity, coreMessages, createConfettiParticles, createTraitPresence, createTranslate, cssTimeMs, domPassthrough, endPending, entriesFor, evaluateBinding, evaluateBindings, extractRouteParams, findPageByName, findPageByPath, followHref, formatDate, formatDateTime, formatTime, formatValue, fxHash01, fxLifecycle, getAllPages, getAtlas, getCurrentIconFamily, getDefaultPage, getGlobalEventBus, getTileDimensions, getTraitPresence, guardsHold, isAbsoluteHref, isAtlasAsset, isColorToken, isInertNavStack, isMotionEnabled, isPending, isSpriteSheetAtlas, kebabToPascal, keyInViewerMode, layoutScale, localeMeta, lucideIconKey, matchNavPage, matchPath, matchPathAmong, mergeMessages, motionTiming, navLabelsFromItems, newPendingKey, pageEntryLabel, parseCalendarDate, pathMatches, presenceGroup, pressableProps, previousEntry, registryKeyMode, registryKeyTheme, relabelCurrent, resolveAssetSource, resolveColorToken, resolveEntryLabels, resolveFxView, resolveIcon, resolveIconForFamily, resolveLucideByName, rowActivationProps, rowOpenControlProps, setGlobalEventBus, sortRows, subRectFor, subscribePending, svgMotionClass, syncNavStack, themeHasMode, toDateInputValue, toDateTimeInputValue, useActivePage, useAnimateChanges, useAtlasSliceDataUrl, useContentSurface, useDialogBehavior, useEmitEvent, useEventBus, useEventListener, useEventSubscription, useFormatContext, useIconFamily, useInfiniteScroll, useInitPayload, useMediaQuery, useNavStack, useNavigateTo, useNavigation, useNavigationId, useNavigationState, useOnSurface, usePendingAction, usePendingRows, usePendingScopeValue, usePrefersReducedMotion, usePresence, useRenderI18n, useResolvedIcon, useRootEventBus, useScopeHasPending, useScopedMode, useTapReveal, useTheme, useThemeIconStrokeApplies, useThemeScope, useTraitScope, useTraitScopeChain, useTranslate } from './chunk-OOG33EGF.js';
|
|
3
3
|
import './chunk-G7DCAZ22.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A11yProps, Asset, AssetUrl, ScenePos } from '@almadar/core';
|
|
1
|
+
import { A11yProps, Asset, EntityFieldName, AssetUrl, ScenePos } from '@almadar/core';
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import { LucideIcon } from 'lucide-react';
|
|
4
4
|
|
|
@@ -94,7 +94,7 @@ type DisplayFieldFormat = 'date' | 'time' | 'datetime' | 'currency' | 'number' |
|
|
|
94
94
|
*/
|
|
95
95
|
interface DisplayField {
|
|
96
96
|
/** Entity field name (dot-notation supported) */
|
|
97
|
-
name:
|
|
97
|
+
name: EntityFieldName;
|
|
98
98
|
/** Display label (the `name` as written if omitted) */
|
|
99
99
|
label?: string;
|
|
100
100
|
/** Icon shown beside the field */
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { SharedEntityStoreContext, createSharedEntityStore, runTickFrame, useAgentChat, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, usePreview, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useTickVisibility, useTraitListens, useUIEvents, useValidation } from '../chunk-
|
|
3
|
-
export { claimDelivery, keyChord, mergeCaptureTables, parseQueryBinding, useAuthContext, useCanvasGestures, useDragReorder, useKeyboardRouter, useLongPress, usePageHead, usePullToRefresh, useQuerySingleton, useSwipeGesture } from '../chunk-
|
|
4
|
-
export { ALMADAR_DND_MIME, useDraggable, useDropZone } from '../chunk-
|
|
2
|
+
export { SharedEntityStoreContext, createSharedEntityStore, runTickFrame, useAgentChat, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, usePreview, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useTickVisibility, useTraitListens, useUIEvents, useValidation } from '../chunk-PD5QUVRE.js';
|
|
3
|
+
export { claimDelivery, keyChord, mergeCaptureTables, parseQueryBinding, useAuthContext, useCanvasGestures, useDragReorder, useKeyboardRouter, useLongPress, usePageHead, usePullToRefresh, useQuerySingleton, useSwipeGesture } from '../chunk-CB4POLGP.js';
|
|
4
|
+
export { ALMADAR_DND_MIME, useDraggable, useDropZone } from '../chunk-QZ6TDP6I.js';
|
|
5
5
|
export { DEFAULT_SLOTS, useUISlotManager } from '../chunk-ANTJUQRD.js';
|
|
6
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-OOG33EGF.js';
|
|
7
7
|
import '../chunk-AZ74UPG6.js';
|
|
8
8
|
import '../chunk-G7DCAZ22.js';
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ import { KernelEngine as KernelEngine$1 } from '@almadar/shell-runtime/kernel/en
|
|
|
15
15
|
export * from '@almadar/shell-runtime/kernel/engine';
|
|
16
16
|
import { KernelHostPorts, KernelAnswerScope } from '@almadar/shell-runtime/kernel/host';
|
|
17
17
|
export * from '@almadar/shell-runtime/kernel/host';
|
|
18
|
-
import { OrbitalSchema, EventRequest, EventResponse, MountSeed, OnDeviceModelPorts, BrowserTabPort, OrbitalDefinition, UISlot, AnyPatternConfig, ResolvedPatternProps, EventSource, SExpr, RuntimeValue } from '@almadar/core';
|
|
18
|
+
import { OrbitalSchema, PersistenceAdapter, EventRequest, EventResponse, MountSeed, OnDeviceModelPorts, BrowserTabPort, OrbitalDefinition, UISlot, AnyPatternConfig, ResolvedPatternProps, EventSource, SExpr, RuntimeValue } from '@almadar/core';
|
|
19
19
|
export * from '@almadar/shell-runtime/kernel/program-effects';
|
|
20
20
|
export * from '@almadar/shell-browser/page-facts';
|
|
21
21
|
export * from '@almadar/shell-runtime/effects/on-device-model';
|
|
@@ -23,6 +23,7 @@ import { FramePostPort, FrameApplied } from '@almadar/shell-runtime/kernel/frame
|
|
|
23
23
|
export * from '@almadar/shell-runtime/kernel/frame-applier';
|
|
24
24
|
import { LocalFoldKernel } from '@almadar/shell-runtime/client/client-kernel';
|
|
25
25
|
export { ClientDispatchHooks, ClientEmitOutcome, ClientKernel, ClientKernelOutcome, ClientMountHooks, ClientMountOutcome, LocalFoldKernel } from '@almadar/shell-runtime/client/client-kernel';
|
|
26
|
+
import { HeldValues } from '@almadar/shell-runtime/kernel/held-values';
|
|
26
27
|
export * from '@almadar/shell-runtime/loader/schema-loader';
|
|
27
28
|
export * from '@almadar/shell-runtime/loader/lazy-page';
|
|
28
29
|
export * from '@almadar/shell-runtime/credentials/env-vars';
|
|
@@ -48,10 +49,10 @@ import { LocalKernelOptions, openLocalKernel as openLocalKernel$1 } from '@almad
|
|
|
48
49
|
export { LocalKernelOptions, LocalStoreTransportOptions, createLocalStoreTransport, localStorePersistence, resolveLocalRows } from '@almadar/shell-runtime/runtime/evaluation/local-store-transport';
|
|
49
50
|
export { ResidenceTransportOptions, createResidenceTransport } from '@almadar/shell-runtime/runtime/evaluation/residence-transport';
|
|
50
51
|
import { KernelModule as KernelModule$1 } from './providers/index.js';
|
|
51
|
-
import {
|
|
52
|
+
import { ChangeRecord } from '@almadar/shell-browser/storage';
|
|
53
|
+
export { V as VerificationBus, b as bindEventBus, a as bindTraitStateGetter, e as ensureVerificationApi, g as getOrbitalVerification } from './verification-C5pTeMJv.js';
|
|
52
54
|
export { w as wrapCallbackForEvent } from './wrapCallbackForEvent-B9QLbhxX.js';
|
|
53
55
|
export { a as PERF_NAMESPACE, e as PerfDetail, f as PerfDetailValue, P as PerfEntry, c as clearPerf, p as perfEnd, g as perfGauge, b as perfStart, h as perfStore, d as perfTime, i as perfTimeAsync, j as pushPerfEntry } from './perf-Dr28-AgT.js';
|
|
54
|
-
export { V as VerificationBus, b as bindEventBus, a as bindTraitStateGetter, e as ensureVerificationApi, g as getOrbitalVerification } from './verification-C5pTeMJv.js';
|
|
55
56
|
export * from '@almadar/shell-runtime/events/EventBus';
|
|
56
57
|
export * from '@almadar/shell-runtime/events/emit-stamp';
|
|
57
58
|
import '@almadar/core/patterns';
|
|
@@ -84,6 +85,8 @@ interface TickFramePorts {
|
|
|
84
85
|
client: LocalFoldKernel;
|
|
85
86
|
/** Posts what fired ticks owe; `undefined` for a host with no transport (the frame then only folds locally). */
|
|
86
87
|
post: FramePostPort | undefined;
|
|
88
|
+
/** The kernel's held render values (EXEC-DIST-16), which its frames name by reference. */
|
|
89
|
+
held: HeldValues;
|
|
87
90
|
}
|
|
88
91
|
/** One host frame: `Kernel.frame(now())`, then the applier. Shared by the poll driver and by hosts that step on demand. */
|
|
89
92
|
declare function runTickFrame(ports: TickFramePorts, now: () => number): Promise<FrameApplied>;
|
|
@@ -107,6 +110,12 @@ declare function nativeMemoryPersistence(kernel: KernelModule): NativeMemoryPers
|
|
|
107
110
|
|
|
108
111
|
declare function openLocalKernel(options: LocalKernelOptions): ReturnType<typeof openLocalKernel$1>;
|
|
109
112
|
|
|
113
|
+
/** Where a browser keeps rows between visits: it stores and returns whole rows, and answers no query. */
|
|
114
|
+
interface BrowserDatabase extends Pick<PersistenceAdapter, 'create' | 'delete' | 'list'> {
|
|
115
|
+
/** The write log: empty only for a database no visit has written to. */
|
|
116
|
+
changes(): Promise<readonly ChangeRecord[]>;
|
|
117
|
+
}
|
|
118
|
+
|
|
110
119
|
/**
|
|
111
120
|
* The browser store of a program's `[persistent: x, browser]` entities, opened once, and the in-process transport its legs run through. The runtime
|
|
112
121
|
* host (`useBrowserStore`) and compiled static clients both open it here.
|
|
@@ -114,8 +123,12 @@ declare function openLocalKernel(options: LocalKernelOptions): ReturnType<typeof
|
|
|
114
123
|
|
|
115
124
|
/** One browser database per app and viewer locale, so a visitor's records stay in one language. */
|
|
116
125
|
declare function browserStoreName(appName: string, locale: string | undefined): string;
|
|
117
|
-
/**
|
|
118
|
-
|
|
126
|
+
/** The rows of a browser-stored program, filed by collection: `persistedMemory`'s database over the app's IndexedDB. */
|
|
127
|
+
interface BrowserStore extends BrowserDatabase {
|
|
128
|
+
close(): void;
|
|
129
|
+
}
|
|
130
|
+
/** Open the store; `null` when no entity is browser-stored. Every entity bound to one collection shares its rows. A program once filed under `formerDatabaseName` has its rows moved in. */
|
|
131
|
+
declare function openBrowserStore(databaseName: string, orbitals: readonly OrbitalDefinition[], factory?: IDBFactory, formerDatabaseName?: string): Promise<BrowserStore | null>;
|
|
119
132
|
interface BrowserStoreTransportOptions {
|
|
120
133
|
databaseName: string;
|
|
121
134
|
schema: OrbitalSchema;
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { runTickFrame, createTickDriver } from './chunk-
|
|
3
|
-
export { createTickDriver, runTickFrame } from './chunk-
|
|
4
|
-
import { wrapCallbackForEvent, validateSlotContent, local_store_transport_exports, pushPerfEntry, perfTimeAsync, perfTime, perfStore, perfStart, perfGauge, perfEnd, openLocalKernel, openBundledBrowserStore, openBrowserStoreTransport, openBrowserStore, openBrowserHost, nativeMemoryPersistence, getOrbitalVerification, eventRouteKey, ensureVerificationApi, createSlotSetter, createResidenceTransport, collectEmbeddedTraits, clearPerf, buildOrbitalsByTrait, browserStoreName, bindTraitStateGetter, bindEventBus, assertIsSlotManager, assertIsMultiSourceSlotManager, aggregateSlotContent, RendererContractViolationError, PERF_NAMESPACE, webHostActions } from './chunk-
|
|
5
|
-
export { PERF_NAMESPACE, RendererContractViolationError, aggregateSlotContent, assertIsMultiSourceSlotManager, assertIsSlotManager, bindEventBus, bindTraitStateGetter, browserStoreName, buildOrbitalsByTrait, clearPerf, collectEmbeddedTraits, createResidenceTransport, createSlotSetter, ensureVerificationApi, eventRouteKey, getOrbitalVerification, nativeMemoryPersistence, openBrowserHost, openBrowserStore, openBrowserStoreTransport, openBundledBrowserStore, openLocalKernel, perfEnd, perfGauge, perfStart, perfStore, perfTime, perfTimeAsync, pushPerfEntry, validateSlotContent, wrapCallbackForEvent } from './chunk-
|
|
2
|
+
import { runTickFrame, createTickDriver } from './chunk-OXHXISFA.js';
|
|
3
|
+
export { createTickDriver, runTickFrame } from './chunk-OXHXISFA.js';
|
|
4
|
+
import { wrapCallbackForEvent, validateSlotContent, local_store_transport_exports, pushPerfEntry, perfTimeAsync, perfTime, perfStore, perfStart, perfGauge, perfEnd, openLocalKernel, openBundledBrowserStore, openBrowserStoreTransport, openBrowserStore, openBrowserHost, nativeMemoryPersistence, getOrbitalVerification, eventRouteKey, ensureVerificationApi, createSlotSetter, createResidenceTransport, collectEmbeddedTraits, clearPerf, buildOrbitalsByTrait, browserStoreName, bindTraitStateGetter, bindEventBus, assertIsSlotManager, assertIsMultiSourceSlotManager, aggregateSlotContent, RendererContractViolationError, PERF_NAMESPACE, webHostActions } from './chunk-MXN32OVV.js';
|
|
5
|
+
export { PERF_NAMESPACE, RendererContractViolationError, aggregateSlotContent, assertIsMultiSourceSlotManager, assertIsSlotManager, bindEventBus, bindTraitStateGetter, browserStoreName, buildOrbitalsByTrait, clearPerf, collectEmbeddedTraits, createResidenceTransport, createSlotSetter, ensureVerificationApi, eventRouteKey, getOrbitalVerification, nativeMemoryPersistence, openBrowserHost, openBrowserStore, openBrowserStoreTransport, openBundledBrowserStore, openLocalKernel, perfEnd, perfGauge, perfStart, perfStore, perfTime, perfTimeAsync, pushPerfEntry, validateSlotContent, wrapCallbackForEvent } from './chunk-MXN32OVV.js';
|
|
6
6
|
import { __export, __reExport } from './chunk-G7DCAZ22.js';
|
|
7
7
|
export * from '@almadar/shell-runtime/kernel/wire';
|
|
8
8
|
export * from '@almadar/shell-runtime/kernel/decode';
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { createTickDriver, runTickFrame } from './chunk-
|
|
2
|
-
import { presenceGroup, getTraitPresence } from './chunk-
|
|
1
|
+
import { createTickDriver, runTickFrame } from './chunk-OXHXISFA.js';
|
|
2
|
+
import { presenceGroup, getTraitPresence } from './chunk-OOG33EGF.js';
|
|
3
3
|
import './chunk-G7DCAZ22.js';
|
|
4
4
|
import { isJsonObject } from '@almadar/core';
|
|
5
|
-
import { createLocalFold,
|
|
5
|
+
import { createLocalFold, traceResponse, paintResponse } from '@almadar/shell-runtime';
|
|
6
6
|
import { TraitMountError } from '@almadar/shell-runtime/client/trait-mount-error';
|
|
7
7
|
import { SessionEndedError } from '@almadar/shell-runtime/client/EventTransport';
|
|
8
8
|
import { createLogger } from '@almadar/logger';
|
|
9
9
|
import { decodeHeldCompletion } from '@almadar/shell-runtime/kernel/decode';
|
|
10
|
+
import { HeldValues } from '@almadar/shell-runtime/kernel/held-values';
|
|
10
11
|
|
|
11
12
|
var log = createLogger("almadar:ui:kernel-client");
|
|
12
13
|
var nextClientSerial = 0;
|
|
@@ -21,24 +22,59 @@ var defaultFrameScheduler = (callback) => {
|
|
|
21
22
|
function parse(text) {
|
|
22
23
|
return JSON.parse(text);
|
|
23
24
|
}
|
|
25
|
+
var heldByKernel = /* @__PURE__ */ new WeakMap();
|
|
26
|
+
function heldOf(k) {
|
|
27
|
+
let held = heldByKernel.get(k);
|
|
28
|
+
if (held === void 0) {
|
|
29
|
+
held = new HeldValues();
|
|
30
|
+
heldByKernel.set(k, held);
|
|
31
|
+
}
|
|
32
|
+
return held;
|
|
33
|
+
}
|
|
34
|
+
function readAnswer(k, text) {
|
|
35
|
+
const held = heldOf(k);
|
|
36
|
+
held.release(k.heldReleased());
|
|
37
|
+
return held.read(text);
|
|
38
|
+
}
|
|
24
39
|
function payloadJson(payload) {
|
|
25
40
|
return payload === void 0 ? void 0 : JSON.stringify(payload);
|
|
26
41
|
}
|
|
42
|
+
var foldTurnsByKernel = /* @__PURE__ */ new WeakMap();
|
|
43
|
+
function foldTurnsOf(k) {
|
|
44
|
+
let turns = foldTurnsByKernel.get(k);
|
|
45
|
+
if (turns === void 0) {
|
|
46
|
+
turns = /* @__PURE__ */ new Map();
|
|
47
|
+
foldTurnsByKernel.set(k, turns);
|
|
48
|
+
}
|
|
49
|
+
return turns;
|
|
50
|
+
}
|
|
51
|
+
var liveStoreByKernel = /* @__PURE__ */ new WeakMap();
|
|
52
|
+
function weakRoute(deliver) {
|
|
53
|
+
const route = new WeakRef(deliver);
|
|
54
|
+
return (json) => route.deref()?.(json);
|
|
55
|
+
}
|
|
27
56
|
function createKernelClient(opts) {
|
|
28
|
-
const {
|
|
57
|
+
const { traitIndex, transport } = opts;
|
|
29
58
|
let loaded;
|
|
59
|
+
const liveStore = () => loaded === void 0 ? opts.store : liveStoreByKernel.get(loaded) ?? opts.store;
|
|
60
|
+
const store = new Proxy(opts.store, { get: (_own, key) => Reflect.get(liveStore(), key) });
|
|
30
61
|
const configs = /* @__PURE__ */ new Map();
|
|
62
|
+
let gpuCompletion;
|
|
31
63
|
const ready = Promise.all([opts.instance, opts.gpu]).then(([k, gpu]) => {
|
|
32
64
|
loaded = k;
|
|
33
|
-
|
|
65
|
+
liveStoreByKernel.set(k, opts.store);
|
|
66
|
+
if (gpu !== void 0) {
|
|
67
|
+
gpuCompletion = (json) => deliverGpuCompletion(k, json);
|
|
68
|
+
k.installGpu(gpu, weakRoute(gpuCompletion));
|
|
69
|
+
}
|
|
34
70
|
return k;
|
|
35
71
|
});
|
|
36
72
|
ready.catch(() => void 0);
|
|
37
73
|
const visibleGroups = [...traitIndex.byName].filter(([, entry]) => entry.ticks.some((tick) => tick.whileVisible)).map(([name]) => [name, presenceGroup(traitIndex, name)]);
|
|
38
|
-
const foldTurns = /* @__PURE__ */ new Map();
|
|
39
74
|
const runQueuedFolds = (k) => {
|
|
75
|
+
const foldTurns = foldTurnsOf(k);
|
|
40
76
|
for (let json = k.nextFold(); json !== void 0; json = k.nextFold()) {
|
|
41
|
-
const next =
|
|
77
|
+
const next = readAnswer(k, json);
|
|
42
78
|
const turn = foldTurns.get(next.ticket);
|
|
43
79
|
if (turn === void 0) throw new Error(`kernel wire: the kernel folded ticket ${next.ticket}, which nothing waits on`);
|
|
44
80
|
foldTurns.delete(next.ticket);
|
|
@@ -46,13 +82,13 @@ function createKernelClient(opts) {
|
|
|
46
82
|
else turn.ran(next.fold);
|
|
47
83
|
}
|
|
48
84
|
};
|
|
49
|
-
const foldInOrder = (k, flight, answer, alreadyDeliveredJson, baseJson) => settleProgress(k,
|
|
50
|
-
const deliverInOrder = (k, flight, emitted) => settleProgress(k,
|
|
51
|
-
const deliverOriginInOrder = (k, flight, emitted) => settleProgress(k,
|
|
85
|
+
const foldInOrder = (k, flight, answer, alreadyDeliveredJson, baseJson) => settleProgress(k, readAnswer(k, k.foldInOrder(flight, JSON.stringify(answer), alreadyDeliveredJson, baseJson)));
|
|
86
|
+
const deliverInOrder = (k, flight, emitted) => settleProgress(k, readAnswer(k, k.deliverEmitToListeners(flight, JSON.stringify(emitted))));
|
|
87
|
+
const deliverOriginInOrder = (k, flight, emitted) => settleProgress(k, readAnswer(k, k.deliverOriginEmit(flight, JSON.stringify(emitted))));
|
|
52
88
|
const settleProgress = (k, progress) => {
|
|
53
89
|
if (progress.status === "applied") return Promise.resolve(progress.fold);
|
|
54
90
|
const turn = new Promise((ran, failed) => {
|
|
55
|
-
|
|
91
|
+
foldTurnsOf(k).set(progress.ticket, { ran, failed });
|
|
56
92
|
});
|
|
57
93
|
queueMicrotask(() => runQueuedFolds(k));
|
|
58
94
|
return turn;
|
|
@@ -69,10 +105,11 @@ function createKernelClient(opts) {
|
|
|
69
105
|
let scopeTail = Promise.resolve();
|
|
70
106
|
const framesSince = (since) => {
|
|
71
107
|
if (loaded === void 0) throw new Error("the kernel is not loaded");
|
|
72
|
-
return
|
|
108
|
+
return readAnswer(loaded, loaded.framesSince(since));
|
|
73
109
|
};
|
|
74
110
|
const mirror = (response) => paintResponse(store, framesSince, response);
|
|
75
111
|
const traceStreams = /* @__PURE__ */ new Set();
|
|
112
|
+
const costed = () => [...traceStreams].some((stream) => stream.cost);
|
|
76
113
|
const movedTraits = (item) => {
|
|
77
114
|
const dispatch = item["dispatch"];
|
|
78
115
|
const outcomes = dispatch !== void 0 && dispatch !== null && isJsonObject(dispatch) ? dispatch["outcomes"] ?? null : null;
|
|
@@ -81,12 +118,17 @@ function createKernelClient(opts) {
|
|
|
81
118
|
};
|
|
82
119
|
const publishTrace = (k) => {
|
|
83
120
|
if (traceStreams.size === 0) return;
|
|
84
|
-
const
|
|
85
|
-
if (!Array.isArray(
|
|
86
|
-
for (const
|
|
87
|
-
if (
|
|
88
|
-
const
|
|
121
|
+
const views = parse(k.takeTraceViews());
|
|
122
|
+
if (!Array.isArray(views)) return;
|
|
123
|
+
for (const view of views) {
|
|
124
|
+
if (view === null || !isJsonObject(view)) continue;
|
|
125
|
+
const plain = view["plain"];
|
|
126
|
+
if (plain === void 0 || plain === null || !isJsonObject(plain)) continue;
|
|
127
|
+
const measured = view["costed"];
|
|
128
|
+
const costedItem = measured !== void 0 && measured !== null && isJsonObject(measured) ? measured : plain;
|
|
129
|
+
const moved = movedTraits(plain);
|
|
89
130
|
for (const stream of traceStreams) {
|
|
131
|
+
const item = stream.cost ? costedItem : plain;
|
|
90
132
|
if (moved.some((t) => stream.traits.has(t))) queueMicrotask(() => stream.onItem(item));
|
|
91
133
|
}
|
|
92
134
|
}
|
|
@@ -106,7 +148,7 @@ function createKernelClient(opts) {
|
|
|
106
148
|
const snapshot = wire.snapshot;
|
|
107
149
|
if (snapshot === null) return { clientEffectsByTrait: [] };
|
|
108
150
|
const trait = wire.seed.trait;
|
|
109
|
-
const repaint =
|
|
151
|
+
const repaint = readAnswer(k, k.restore(trait, entityId, JSON.stringify(snapshot)));
|
|
110
152
|
if (snapshot.state !== "") store.states.rollbackState(trait, snapshot.state, entityId, "server-rejected");
|
|
111
153
|
mirror(repaint);
|
|
112
154
|
store.notify();
|
|
@@ -154,7 +196,7 @@ function createKernelClient(opts) {
|
|
|
154
196
|
} catch (err) {
|
|
155
197
|
const seeds = mountedSeeds.get(orbital);
|
|
156
198
|
if (!(err instanceof SessionEndedError) || seeds === void 0 || seeds.length === 0) throw err;
|
|
157
|
-
const reseed =
|
|
199
|
+
const reseed = readAnswer(k, k.reseedLeg(JSON.stringify(seeds), request.entityId));
|
|
158
200
|
const mounted = await transport.send(orbital, request.locale !== void 0 ? { ...reseed, locale: request.locale } : reseed);
|
|
159
201
|
await foldAnswer(k, flight, mounted);
|
|
160
202
|
store.notify();
|
|
@@ -172,7 +214,7 @@ function createKernelClient(opts) {
|
|
|
172
214
|
if (transport === void 0) return out;
|
|
173
215
|
const queue = [...legs];
|
|
174
216
|
for (let planned = queue.shift(); planned !== void 0; planned = queue.shift()) {
|
|
175
|
-
const shaped = planned.keepsState ? planned.leg :
|
|
217
|
+
const shaped = planned.keepsState ? planned.leg : readAnswer(k, k.statefulLeg(JSON.stringify(planned.leg)));
|
|
176
218
|
const sent = request.locale !== void 0 ? { ...shaped, locale: request.locale } : shaped;
|
|
177
219
|
const base = k.foldBase(sent.entityByTrait !== void 0 ? JSON.stringify(sent.entityByTrait) : void 0, JSON.stringify(planned.foldSeeded), sent.entityId);
|
|
178
220
|
let posted;
|
|
@@ -213,7 +255,7 @@ function createKernelClient(opts) {
|
|
|
213
255
|
};
|
|
214
256
|
out.success = out.success && posted.success;
|
|
215
257
|
if (posted.error !== void 0) out.error = posted.error;
|
|
216
|
-
out.rejections.push(...(fold.rejections ?? []).filter((r) => r.code === "effect-failed" || r.code === "repaint-failed"));
|
|
258
|
+
out.rejections.push(...(fold.rejections ?? []).filter((r) => r.code === "effect-failed" || r.code === "repaint-failed" || r.code === "cascade-capped"));
|
|
217
259
|
}
|
|
218
260
|
return out;
|
|
219
261
|
};
|
|
@@ -254,14 +296,17 @@ function createKernelClient(opts) {
|
|
|
254
296
|
frame: (nowMs) => {
|
|
255
297
|
const presence = getTraitPresence();
|
|
256
298
|
for (const [traitName, group] of visibleGroups) k.setTraitOnScreen(traitName, presence.state(group) !== "off-screen");
|
|
257
|
-
|
|
299
|
+
const frame = k.frame(nowMs);
|
|
300
|
+
heldOf(k).release(k.heldReleased());
|
|
301
|
+
return frame;
|
|
258
302
|
},
|
|
259
303
|
framePause: () => k.framePause(),
|
|
260
304
|
frameResume: () => k.frameResume(),
|
|
261
305
|
tickCount: () => k.tickCount()
|
|
262
306
|
},
|
|
263
307
|
client: localFold,
|
|
264
|
-
post: framePost(k)
|
|
308
|
+
post: framePost(k),
|
|
309
|
+
held: heldOf(k)
|
|
265
310
|
});
|
|
266
311
|
const dispatchOne = async (request, hooks, progress) => {
|
|
267
312
|
const traitName = request.targetTrait;
|
|
@@ -269,13 +314,13 @@ function createKernelClient(opts) {
|
|
|
269
314
|
const k = await ready;
|
|
270
315
|
await scopeTail;
|
|
271
316
|
if (request.runTick !== void 0) {
|
|
272
|
-
const response =
|
|
317
|
+
const response = readAnswer(k, k.tick(request.runTick.trait, request.runTick.tick, request.entityId));
|
|
273
318
|
publishTrace(k);
|
|
274
319
|
mirror(response);
|
|
275
320
|
store.notify();
|
|
276
321
|
return { response, mode: parse(k.dispatchMode(request.runTick.trait)) };
|
|
277
322
|
}
|
|
278
|
-
const wire =
|
|
323
|
+
const wire = readAnswer(k, request.heldPayload !== void 0 ? k.dispatchHeld(traitName, request.entityId, request.event, request.heldPayload) : k.dispatch(traitName, request.entityId, request.event, payloadJson(request.payload)));
|
|
279
324
|
try {
|
|
280
325
|
return await settleDispatch(k, wire, request, hooks, progress);
|
|
281
326
|
} finally {
|
|
@@ -419,12 +464,12 @@ function createKernelClient(opts) {
|
|
|
419
464
|
const release = async (left) => {
|
|
420
465
|
if (transport === void 0 || left.length === 0) return;
|
|
421
466
|
await opts.topology;
|
|
422
|
-
for (const {
|
|
423
|
-
transport.send(orbital, leg).catch((err) => log.warn("unmount-post-failed", {
|
|
467
|
+
for (const { traits, orbital, leg } of left) {
|
|
468
|
+
transport.send(orbital, leg).catch((err) => log.warn("unmount-post-failed", { traits, orbital, error: String(err) }));
|
|
424
469
|
}
|
|
425
470
|
};
|
|
426
471
|
const client = {
|
|
427
|
-
store,
|
|
472
|
+
store: opts.store,
|
|
428
473
|
dispatch: (request, hooks) => dispatchOne(request, hooks !== void 0 ? [hooks] : [], false),
|
|
429
474
|
dispatchProgress: (request) => dispatchOne(request, [], true),
|
|
430
475
|
foldHostDispatch: async (request, response) => {
|
|
@@ -460,7 +505,7 @@ function createKernelClient(opts) {
|
|
|
460
505
|
await scopeTail;
|
|
461
506
|
const baseRequest = base ?? {};
|
|
462
507
|
k.mount(JSON.stringify(seeds.map((s) => s.trait)));
|
|
463
|
-
const mount =
|
|
508
|
+
const mount = readAnswer(k, k.dispatchMount(JSON.stringify(seeds), baseRequest.entityId, payloadJson(baseRequest.payload), baseRequest.route, baseRequest.crumb));
|
|
464
509
|
try {
|
|
465
510
|
return await settleMount(k, mount, seeds, hooks, baseRequest);
|
|
466
511
|
} finally {
|
|
@@ -471,15 +516,15 @@ function createKernelClient(opts) {
|
|
|
471
516
|
routeMounts: async (routePath) => parse((await ready).routeMounts(routePath)),
|
|
472
517
|
pageCircuit: async (page, route) => parse((await ready).pageCircuit(page, route)),
|
|
473
518
|
enter: (routePath, mountKey, traits) => {
|
|
474
|
-
const entered = scopeTail.then(() => ready).then((k) =>
|
|
519
|
+
const entered = scopeTail.then(() => ready).then((k) => readAnswer(k, k.enter(routePath, `${clientSerial}\0${mountKey}`, JSON.stringify(traits))));
|
|
475
520
|
scopeTail = entered.then(() => void 0, () => void 0);
|
|
476
521
|
return entered.then((answer) => {
|
|
477
522
|
void release(answer.left);
|
|
478
|
-
return { seeds: answer.seeds, left: answer.left.
|
|
523
|
+
return { seeds: answer.seeds, left: answer.left.flatMap((l) => l.traits) };
|
|
479
524
|
});
|
|
480
525
|
},
|
|
481
526
|
leave: async () => {
|
|
482
|
-
const left = scopeTail.then(() => ready).then((k) =>
|
|
527
|
+
const left = scopeTail.then(() => ready).then((k) => readAnswer(k, k.leave()));
|
|
483
528
|
scopeTail = left.then(() => void 0, () => void 0);
|
|
484
529
|
await release(await left);
|
|
485
530
|
},
|
|
@@ -544,12 +589,16 @@ function createKernelClient(opts) {
|
|
|
544
589
|
releases.forEach((release2) => release2());
|
|
545
590
|
};
|
|
546
591
|
},
|
|
547
|
-
traceStream: (traits, onItem) => {
|
|
548
|
-
const stream = { traits: new Set(traits), onItem };
|
|
592
|
+
traceStream: (traits, onItem, cost = false) => {
|
|
593
|
+
const stream = { traits: new Set(traits), onItem, cost };
|
|
549
594
|
traceStreams.add(stream);
|
|
550
|
-
void ready.then((k) =>
|
|
595
|
+
void ready.then((k) => {
|
|
596
|
+
k.setTraceOn(true);
|
|
597
|
+
k.setTraceCost(costed());
|
|
598
|
+
}).catch((error) => log.error("trace-stream-failed", { error: error.message }));
|
|
551
599
|
return () => {
|
|
552
600
|
traceStreams.delete(stream);
|
|
601
|
+
loaded?.setTraceCost(costed());
|
|
553
602
|
if (traceStreams.size === 0) loaded?.setTraceOn(false);
|
|
554
603
|
};
|
|
555
604
|
},
|
|
@@ -28,6 +28,8 @@ interface KernelInstance {
|
|
|
28
28
|
deliverOriginEmit(flight: number, emittedJson: string): string;
|
|
29
29
|
/** The oldest queued answer that can fold now, folded: a `FoldedNextWire` as JSON, or `undefined` when none waits. */
|
|
30
30
|
nextFold(): string | undefined;
|
|
31
|
+
/** The held render values (EXEC-DIST-16) the kernel let go of since the last call: a JSON array of ids. */
|
|
32
|
+
heldReleased(): string;
|
|
31
33
|
/** The flight is done: its answers are folded, or the host gave up on them. */
|
|
32
34
|
endFlight(flight: number): boolean;
|
|
33
35
|
/** The rows a posted leg's answer is folded against; `undefined` when the leg carried none. */
|
|
@@ -62,6 +64,10 @@ interface KernelInstance {
|
|
|
62
64
|
setTraceOn(on: boolean): void;
|
|
63
65
|
/** The trace items recorded since the last take, in dispatch order: a JSON array. */
|
|
64
66
|
takeTrace(): string;
|
|
67
|
+
/** Measure each recorded dispatch while on (EXEC-COST-1). */
|
|
68
|
+
setTraceCost(on: boolean): void;
|
|
69
|
+
/** The items recorded since the last take, each `{ plain, costed? }` (EXEC-COST-1): a JSON array. */
|
|
70
|
+
takeTraceViews(): string;
|
|
65
71
|
/** Carry each frame response's `effectResults` (omitted otherwise), for a verifier. */
|
|
66
72
|
setFrameEffectResults(carry: boolean): void;
|
|
67
73
|
/** The kernel's mounts for a host start on `side` (`client|server|process|start`): `MountSeed[]` as JSON. */
|