@almadar/std 16.244.0 → 16.245.0
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/behaviors/behaviors-registry.json +48508 -10775
- package/behaviors/lolo/ui/core/atoms/std-calendar.lolo +13 -5
- package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +7 -0
- package/behaviors/lolo-behavior-contracts.json +1 -1
- package/behaviors/registry/factory-signatures.json +1 -1
- package/behaviors/registry/ui/core/atoms/std-calendar.orb +18 -9
- package/behaviors/registry/ui/core/molecules/ui-data-list.orb +20 -2
- package/behaviors/signatures.lolo +788 -88
- package/dist/behaviors/exports-reader.js +18 -9
- package/dist/behaviors/functions/index.d.ts +4 -3
- package/dist/behaviors/functions/index.js +18 -9
- package/dist/behaviors/index.js +18 -9
- package/dist/behaviors/query.js +18 -9
- package/dist/behaviors-embeddings.hash.json +3 -3
- package/dist/behaviors-embeddings.json +1 -1
- package/dist/behaviors-registry.json +48508 -10775
- package/dist/index.js +18 -9
- package/dist/knob-embeddings.hash.json +3 -3
- package/dist/knob-embeddings.json +11805 -2033
- package/dist/registry/factory-signatures.json +1 -1
- package/package.json +3 -3
|
@@ -11335,7 +11335,7 @@ pattern meter {
|
|
|
11335
11335
|
;; an `Alias.orbitals.X` reference overrides config + identifiers, never
|
|
11336
11336
|
;; the imported orbital's own topology.
|
|
11337
11337
|
|
|
11338
|
-
;; === atoms (
|
|
11338
|
+
;; === atoms (288 behaviors, 288 apps, 290 orbitals, 290 entities, 314 traits, 293 pages) ===
|
|
11339
11339
|
|
|
11340
11340
|
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-completion.orb)
|
|
11341
11341
|
app std-agent-completion {
|
|
@@ -11387,6 +11387,16 @@ app std-agent-planner {
|
|
|
11387
11387
|
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-planner.orb)"
|
|
11388
11388
|
}
|
|
11389
11389
|
|
|
11390
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-proposal.orb)
|
|
11391
|
+
app std-agent-proposal {
|
|
11392
|
+
alias : AgentProposal
|
|
11393
|
+
version : "1.0.0"
|
|
11394
|
+
orbitals : (AgentProposalOrbital)
|
|
11395
|
+
override-surface : (config)
|
|
11396
|
+
;; via uses Alias from "std/behaviors/std-agent-proposal" { config { ... } }
|
|
11397
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-proposal.orb)"
|
|
11398
|
+
}
|
|
11399
|
+
|
|
11390
11400
|
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-session.orb)
|
|
11391
11401
|
app std-agent-session {
|
|
11392
11402
|
alias : AgentSession
|
|
@@ -11397,6 +11407,16 @@ app std-agent-session {
|
|
|
11397
11407
|
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-session.orb)"
|
|
11398
11408
|
}
|
|
11399
11409
|
|
|
11410
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb)
|
|
11411
|
+
app std-agent-suggestions {
|
|
11412
|
+
alias : AgentSuggestions
|
|
11413
|
+
version : "1.0.0"
|
|
11414
|
+
orbitals : (AgentSuggestionsOrbital AgentSuggestionRecordsOrbital)
|
|
11415
|
+
override-surface : (config)
|
|
11416
|
+
;; via uses Alias from "std/behaviors/std-agent-suggestions" { config { ... } }
|
|
11417
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb)"
|
|
11418
|
+
}
|
|
11419
|
+
|
|
11400
11420
|
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-tool-call.orb)
|
|
11401
11421
|
app std-agent-tool-call {
|
|
11402
11422
|
alias : AgentToolCall
|
|
@@ -11757,6 +11777,16 @@ app std-detail-layout {
|
|
|
11757
11777
|
source : "@almadar/std (behaviors/registry/ui/core/atoms/std-detail-layout.orb)"
|
|
11758
11778
|
}
|
|
11759
11779
|
|
|
11780
|
+
;; From @almadar/std (behaviors/registry/ui/core/atoms/std-doc-page.orb)
|
|
11781
|
+
app std-doc-page {
|
|
11782
|
+
alias : DocPage
|
|
11783
|
+
version : "1.0.0"
|
|
11784
|
+
orbitals : (DocPageOrbital)
|
|
11785
|
+
override-surface : (config)
|
|
11786
|
+
;; via uses Alias from "std/behaviors/std-doc-page" { config { ... } }
|
|
11787
|
+
source : "@almadar/std (behaviors/registry/ui/core/atoms/std-doc-page.orb)"
|
|
11788
|
+
}
|
|
11789
|
+
|
|
11760
11790
|
;; From @almadar/std (behaviors/registry/ui/game/atoms/std-dungeon-combat.orb)
|
|
11761
11791
|
app std-dungeon-combat {
|
|
11762
11792
|
alias : DungeonCombat
|
|
@@ -12587,6 +12617,46 @@ app std-pad-lock {
|
|
|
12587
12617
|
source : "@almadar/std (behaviors/registry/ui/game/atoms/std-pad-lock.orb)"
|
|
12588
12618
|
}
|
|
12589
12619
|
|
|
12620
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-open.orb)
|
|
12621
|
+
app std-page-open {
|
|
12622
|
+
alias : PageOpen
|
|
12623
|
+
version : "1.0.0"
|
|
12624
|
+
orbitals : (PageOpenOrbital)
|
|
12625
|
+
override-surface : (config)
|
|
12626
|
+
;; via uses Alias from "std/behaviors/std-page-open" { config { ... } }
|
|
12627
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-open.orb)"
|
|
12628
|
+
}
|
|
12629
|
+
|
|
12630
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-search.orb)
|
|
12631
|
+
app std-page-search {
|
|
12632
|
+
alias : PageSearch
|
|
12633
|
+
version : "1.0.0"
|
|
12634
|
+
orbitals : (PageSearchOrbital)
|
|
12635
|
+
override-surface : (config)
|
|
12636
|
+
;; via uses Alias from "std/behaviors/std-page-search" { config { ... } }
|
|
12637
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-search.orb)"
|
|
12638
|
+
}
|
|
12639
|
+
|
|
12640
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-treat.orb)
|
|
12641
|
+
app std-page-treat {
|
|
12642
|
+
alias : PageTreat
|
|
12643
|
+
version : "1.0.0"
|
|
12644
|
+
orbitals : (PageTreatOrbital)
|
|
12645
|
+
override-surface : (config)
|
|
12646
|
+
;; via uses Alias from "std/behaviors/std-page-treat" { config { ... } }
|
|
12647
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-treat.orb)"
|
|
12648
|
+
}
|
|
12649
|
+
|
|
12650
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-watch.orb)
|
|
12651
|
+
app std-page-watch {
|
|
12652
|
+
alias : PageWatch
|
|
12653
|
+
version : "1.0.0"
|
|
12654
|
+
orbitals : (PageWatchOrbital)
|
|
12655
|
+
override-surface : (config)
|
|
12656
|
+
;; via uses Alias from "std/behaviors/std-page-watch" { config { ... } }
|
|
12657
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-watch.orb)"
|
|
12658
|
+
}
|
|
12659
|
+
|
|
12590
12660
|
;; From @almadar/std (behaviors/registry/ui/core/atoms/std-pagination.orb)
|
|
12591
12661
|
app std-pagination {
|
|
12592
12662
|
alias : Pagination
|
|
@@ -13227,6 +13297,16 @@ app ui-avl-state-machine {
|
|
|
13227
13297
|
source : "@almadar/std (behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb)"
|
|
13228
13298
|
}
|
|
13229
13299
|
|
|
13300
|
+
;; From @almadar/std (behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb)
|
|
13301
|
+
app ui-avl-transition-explainer {
|
|
13302
|
+
alias : UiAvlTransitionExplainer
|
|
13303
|
+
version : "1.0.0"
|
|
13304
|
+
orbitals : (AvlTransitionExplainerOrbital)
|
|
13305
|
+
override-surface : (config)
|
|
13306
|
+
;; via uses Alias from "std/behaviors/ui-avl-transition-explainer" { config { ... } }
|
|
13307
|
+
source : "@almadar/std (behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb)"
|
|
13308
|
+
}
|
|
13309
|
+
|
|
13230
13310
|
;; From @almadar/std (behaviors/registry/ui/core/atoms/ui-badge.orb)
|
|
13231
13311
|
app ui-badge {
|
|
13232
13312
|
alias : UiBadge
|
|
@@ -14187,6 +14267,39 @@ orbital std-agent-planner.orbitals.AgentPlannerOrbital {
|
|
|
14187
14267
|
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-planner.orb orbitals[0])"
|
|
14188
14268
|
}
|
|
14189
14269
|
|
|
14270
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-proposal.orb orbitals[0])
|
|
14271
|
+
orbital std-agent-proposal.orbitals.AgentProposalOrbital {
|
|
14272
|
+
alias : AgentProposal
|
|
14273
|
+
entity : AgentProposalRun
|
|
14274
|
+
traits : (AgentProposalWorkflow AgentProposalLoop = Loop.traits.AgentToolLoop)
|
|
14275
|
+
pages : ("/agent-proposal")
|
|
14276
|
+
config {
|
|
14277
|
+
approveLabel : string = "Approve" @label "Approve button" @tier "presentation"
|
|
14278
|
+
cancelLabel : string = "Cancel" @label "Cancel button" @tier "presentation"
|
|
14279
|
+
discardLabel : string = "Discard" @label "Discard button" @tier "presentation"
|
|
14280
|
+
feedbackLabel : string = "What should change?" @label "Revision feedback label" @tier "presentation"
|
|
14281
|
+
icon : string = "sparkles" @label "Panel icon" @tier "presentation"
|
|
14282
|
+
inputLabel : string = "What should the agent work from?" @label "Start form label" @tier "presentation"
|
|
14283
|
+
instructions : string = "You turn what the person hands over into one structured proposal. Look things up with the tools if you need to, then call the proposal tool exactly once with a short summary and the list of items. Do not call it again unless asked to revise." @label "How should the agent behave?" @description "Standing instructions sent with every run." @synonyms "system prompt, persona, guidance" @tier "domain"
|
|
14284
|
+
itemFields : [ProposalField] = [] @label "Which item values are shown?" @description "The item keys to show, each `{ name, label, variant }`." @synonyms "columns, fields, attributes" @tier "domain"
|
|
14285
|
+
itemPattern : pattern = "data-list" @label "How are the proposed items drawn?" @description "The pattern the review renders the items with; it receives `entity` (the items) and `fields`." @synonyms "item layout, list pattern, table" @tier "presentation"
|
|
14286
|
+
itemsHeading : string = "Items" @label "Items heading" @tier "presentation"
|
|
14287
|
+
maxSteps : number = 8 @label "Model round-trips per run" @tier "policy"
|
|
14288
|
+
panelSlot : slot = "main" @label "Where the panel renders" @description "`main` for the content of a page or launcher; `modal` or `drawer` for an overlay." @tier "presentation"
|
|
14289
|
+
prompt : string = "Work out a proposal from the following." @label "What is the agent asked to do?" @description "The request that precedes the person's input in every run." @synonyms "task, goal, brief, question" @tier "domain"
|
|
14290
|
+
retryLabel : string = "Retry" @label "Retry button" @tier "presentation"
|
|
14291
|
+
reviseLabel : string = "Revise" @label "Revise button" @tier "presentation"
|
|
14292
|
+
showInputForm : boolean = true @label "Show a start form?" @description "On, the idle panel lets the person type what the agent works from. Off, the panel renders nothing until the app starts it with PROPOSAL_REQUESTED." @synonyms "start form, input box, manual start" @tier "presentation"
|
|
14293
|
+
startLabel : string = "Propose" @label "Start button" @tier "presentation"
|
|
14294
|
+
summaryHeading : string = "Summary" @label "Summary heading" @tier "presentation"
|
|
14295
|
+
title : string = "Proposal" @label "Panel heading" @tier "presentation"
|
|
14296
|
+
tools : [AgentTool] = [{"event":"AgentProposalWorkflow.PROPOSE"}] @label "What may the agent do?" @description "The declared inputs it may fire and the entities it may read, as the signed-in person. An importing app restates the list with PROPOSE addressed by its local orbital name, which the agent can never propose without." @synonyms "allowlist, abilities, permissions" @tier "domain"
|
|
14297
|
+
workingLabel : string = "Working out a proposal…" @label "While the agent works" @tier "presentation"
|
|
14298
|
+
}
|
|
14299
|
+
override-surface : (entity fields extend pages omit only config events roles entities mounts)
|
|
14300
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-proposal.orb orbitals[0])"
|
|
14301
|
+
}
|
|
14302
|
+
|
|
14190
14303
|
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-session.orb orbitals[1])
|
|
14191
14304
|
orbital std-agent-session.orbitals.AgentChatsOrbital {
|
|
14192
14305
|
alias : AgentSession
|
|
@@ -14207,6 +14320,48 @@ orbital std-agent-session.orbitals.AgentSessionOrbital {
|
|
|
14207
14320
|
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-session.orb orbitals[0])"
|
|
14208
14321
|
}
|
|
14209
14322
|
|
|
14323
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[1])
|
|
14324
|
+
orbital std-agent-suggestions.orbitals.AgentSuggestionRecordsOrbital {
|
|
14325
|
+
alias : AgentSuggestions
|
|
14326
|
+
entity : AgentSuggestion
|
|
14327
|
+
traits : (AgentSuggestionHistory)
|
|
14328
|
+
pages : ("/agent-suggestions/history")
|
|
14329
|
+
override-surface : (entity fields extend pages omit only config events roles entities mounts)
|
|
14330
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[1])"
|
|
14331
|
+
}
|
|
14332
|
+
|
|
14333
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[0])
|
|
14334
|
+
orbital std-agent-suggestions.orbitals.AgentSuggestionsOrbital {
|
|
14335
|
+
alias : AgentSuggestions
|
|
14336
|
+
entity : AgentSuggestionsHost
|
|
14337
|
+
traits : (AgentSuggestionProposer AgentSuggestionInbox AgentSuggestionTrigger AgentSuggestionRunner AgentSuggestionLoop = Loop.traits.AgentToolLoop)
|
|
14338
|
+
pages : ("/agent-suggestions")
|
|
14339
|
+
config {
|
|
14340
|
+
acceptLabel : string = "Accept" @label "Accept button" @tier "presentation"
|
|
14341
|
+
actions : [string] = [] @label "Which actions may a suggestion carry?" @description "When listed, a proposal carrying any other action, or none, is refused (SUGGESTION_REJECTED). Empty accepts any action." @tier "domain"
|
|
14342
|
+
analyzeLabel : string = "Look for suggestions" @label "Look-again button" @description "Shown in the empty inbox; asks the agent to look again." @tier "presentation"
|
|
14343
|
+
closeLabel : string = "Close" @label "Close button" @tier "presentation"
|
|
14344
|
+
cooldownMinutes : number = 60 @label "Minutes between proactive runs" @description "A trigger starts a run only when this long has passed since the person's last run. 0 runs on every trigger." @tier "policy"
|
|
14345
|
+
dismissLabel : string = "Dismiss" @label "Dismiss button" @tier "presentation"
|
|
14346
|
+
emptyDescription : string = "" @label "Empty inbox hint" @tier "presentation"
|
|
14347
|
+
emptyTitle : string = "No suggestions right now" @label "Empty inbox title" @tier "presentation"
|
|
14348
|
+
historyHref : string = "/agent-suggestions/history" @label "Where past suggestions are listed" @description "The page the inbox links to for accepted and dismissed suggestions; empty hides the link. The history page of an app that imports this orbital is its own page over its retargeted entity." @tier "presentation"
|
|
14349
|
+
historyLabel : string = "Past suggestions" @label "Past-suggestions link" @tier "presentation"
|
|
14350
|
+
icon : string = "lightbulb" @label "Inbox icon" @tier "presentation"
|
|
14351
|
+
instructions : string = "You propose next steps to the signed-in person. Look things up with the tools, then call the proposal tool once for each suggestion worth making, with the reason in its body. When a proposal is refused as a duplicate or the pending limit is reached, do not propose again. Propose nothing when nothing is worth suggesting." @label "How should the agent behave?" @description "Standing instructions sent with every proactive run." @tier "domain"
|
|
14352
|
+
kinds : [string] = [] @label "Which kinds may be proposed?" @description "When listed, a proposal of any other kind is refused (SUGGESTION_REJECTED). Empty accepts any kind." @tier "domain"
|
|
14353
|
+
maxPending : number = 5 @label "How many suggestions may wait at once?" @description "A proposal is refused (SUGGESTION_LIMIT_REACHED) while this many are pending. 0 refuses every proposal." @tier "policy"
|
|
14354
|
+
maxSteps : number = 8 @label "Model round-trips per run" @tier "policy"
|
|
14355
|
+
panelSlot : slot = "main" @label "Where the inbox renders" @description "`main` for the content of a launcher or page; `modal` or `drawer` for an overlay opened with OPEN (a notification bell)." @tier "presentation"
|
|
14356
|
+
prompt : string = "Look at what I have been doing and propose what I could do next, one suggestion at a time." @label "What does the agent look into?" @description "The request each proactive run answers." @tier "domain"
|
|
14357
|
+
startOpen : boolean = true @label "Show the inbox as soon as it mounts?" @description "Off for an overlay that waits for OPEN." @tier "presentation"
|
|
14358
|
+
title : string = "Suggestions" @label "Inbox heading" @tier "presentation"
|
|
14359
|
+
tools : [AgentTool] = [{"event":"AgentSuggestionProposer.PROPOSE_SUGGESTION"}] @label "What may the agent do?" @description "The declared inputs it may fire and the entities it may read, as the signed-in person. An importing app restates the list with the proposal input addressed by its local orbital name (`{ event: Suggestions.AgentSuggestionProposer.PROPOSE_SUGGESTION }`), which the agent can never propose without." @tier "domain"
|
|
14360
|
+
}
|
|
14361
|
+
override-surface : (entity fields extend pages omit only config events roles entities mounts)
|
|
14362
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[0])"
|
|
14363
|
+
}
|
|
14364
|
+
|
|
14210
14365
|
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-tool-call.orb orbitals[0])
|
|
14211
14366
|
orbital std-agent-tool-call.orbitals.AgentToolCallOrbital {
|
|
14212
14367
|
alias : AgentToolCall
|
|
@@ -14567,6 +14722,16 @@ orbital std-detail-layout.orbitals.DetailLayoutOrbital {
|
|
|
14567
14722
|
source : "@almadar/std (behaviors/registry/ui/core/atoms/std-detail-layout.orb orbitals[0])"
|
|
14568
14723
|
}
|
|
14569
14724
|
|
|
14725
|
+
;; From @almadar/std (behaviors/registry/ui/core/atoms/std-doc-page.orb orbitals[0])
|
|
14726
|
+
orbital std-doc-page.orbitals.DocPageOrbital {
|
|
14727
|
+
alias : DocPage
|
|
14728
|
+
entity : DocPageView
|
|
14729
|
+
traits : (DocPageRender)
|
|
14730
|
+
pages : ("/doc")
|
|
14731
|
+
override-surface : (entity fields extend pages omit only config events roles entities mounts)
|
|
14732
|
+
source : "@almadar/std (behaviors/registry/ui/core/atoms/std-doc-page.orb orbitals[0])"
|
|
14733
|
+
}
|
|
14734
|
+
|
|
14570
14735
|
;; From @almadar/std (behaviors/registry/ui/game/atoms/std-dungeon-combat.orb orbitals[0])
|
|
14571
14736
|
orbital std-dungeon-combat.orbitals.DungeonCombatOrbital {
|
|
14572
14737
|
alias : DungeonCombat
|
|
@@ -15397,6 +15562,46 @@ orbital std-pad-lock.orbitals.PadLockOrbital {
|
|
|
15397
15562
|
source : "@almadar/std (behaviors/registry/ui/game/atoms/std-pad-lock.orb orbitals[0])"
|
|
15398
15563
|
}
|
|
15399
15564
|
|
|
15565
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-open.orb orbitals[0])
|
|
15566
|
+
orbital std-page-open.orbitals.PageOpenOrbital {
|
|
15567
|
+
alias : PageOpen
|
|
15568
|
+
entity : PageOpenRecord
|
|
15569
|
+
traits : (PageOpen)
|
|
15570
|
+
pages : ("/page-open")
|
|
15571
|
+
override-surface : (entity fields extend pages omit only config events roles entities mounts)
|
|
15572
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-open.orb orbitals[0])"
|
|
15573
|
+
}
|
|
15574
|
+
|
|
15575
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-search.orb orbitals[0])
|
|
15576
|
+
orbital std-page-search.orbitals.PageSearchOrbital {
|
|
15577
|
+
alias : PageSearch
|
|
15578
|
+
entity : PageSearchRecord
|
|
15579
|
+
traits : (PageSearch)
|
|
15580
|
+
pages : ("/page-search")
|
|
15581
|
+
override-surface : (entity fields extend pages omit only config events roles entities mounts)
|
|
15582
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-search.orb orbitals[0])"
|
|
15583
|
+
}
|
|
15584
|
+
|
|
15585
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-treat.orb orbitals[0])
|
|
15586
|
+
orbital std-page-treat.orbitals.PageTreatOrbital {
|
|
15587
|
+
alias : PageTreat
|
|
15588
|
+
entity : PageTreatRecord
|
|
15589
|
+
traits : (PageTreat)
|
|
15590
|
+
pages : ("/page-treat")
|
|
15591
|
+
override-surface : (entity fields extend pages omit only config events roles entities mounts)
|
|
15592
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-treat.orb orbitals[0])"
|
|
15593
|
+
}
|
|
15594
|
+
|
|
15595
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-watch.orb orbitals[0])
|
|
15596
|
+
orbital std-page-watch.orbitals.PageWatchOrbital {
|
|
15597
|
+
alias : PageWatch
|
|
15598
|
+
entity : PageWatchRecord
|
|
15599
|
+
traits : (PageWatch)
|
|
15600
|
+
pages : ("/page-watch")
|
|
15601
|
+
override-surface : (entity fields extend pages omit only config events roles entities mounts)
|
|
15602
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-watch.orb orbitals[0])"
|
|
15603
|
+
}
|
|
15604
|
+
|
|
15400
15605
|
;; From @almadar/std (behaviors/registry/ui/core/atoms/std-pagination.orb orbitals[0])
|
|
15401
15606
|
orbital std-pagination.orbitals.PagedItemOrbital {
|
|
15402
15607
|
alias : Pagination
|
|
@@ -16037,6 +16242,16 @@ orbital ui-avl-state-machine.orbitals.AvlStateMachineOrbital {
|
|
|
16037
16242
|
source : "@almadar/std (behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb orbitals[0])"
|
|
16038
16243
|
}
|
|
16039
16244
|
|
|
16245
|
+
;; From @almadar/std (behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb orbitals[0])
|
|
16246
|
+
orbital ui-avl-transition-explainer.orbitals.AvlTransitionExplainerOrbital {
|
|
16247
|
+
alias : UiAvlTransitionExplainer
|
|
16248
|
+
entity : AvlTransitionExplainerItem
|
|
16249
|
+
traits : (AvlTransitionExplainerRender)
|
|
16250
|
+
pages : ("/avl-transition-explainer")
|
|
16251
|
+
override-surface : (entity fields extend pages omit only config events roles entities mounts)
|
|
16252
|
+
source : "@almadar/std (behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb orbitals[0])"
|
|
16253
|
+
}
|
|
16254
|
+
|
|
16040
16255
|
;; From @almadar/std (behaviors/registry/ui/core/atoms/ui-badge.orb orbitals[0])
|
|
16041
16256
|
orbital ui-badge.orbitals.BadgeOrbital {
|
|
16042
16257
|
alias : UiBadge
|
|
@@ -16962,7 +17177,7 @@ entity std-agent-context.entity {
|
|
|
16962
17177
|
alias : AgentContext
|
|
16963
17178
|
name : AgentContextWindow
|
|
16964
17179
|
persistence : runtime
|
|
16965
|
-
fields : (id! pendingMessages lastSize)
|
|
17180
|
+
fields : (id! pendingMessages lastSize pendingInstructions pendingTools pendingEphemeral)
|
|
16966
17181
|
override-surface : (extends name fields persistence collection)
|
|
16967
17182
|
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-context.orb orbitals[0].entity)"
|
|
16968
17183
|
}
|
|
@@ -16998,6 +17213,16 @@ entity std-agent-planner.entity {
|
|
|
16998
17213
|
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-planner.orb orbitals[0].entity)"
|
|
16999
17214
|
}
|
|
17000
17215
|
|
|
17216
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-proposal.orb orbitals[0].entity)
|
|
17217
|
+
entity std-agent-proposal.entity {
|
|
17218
|
+
alias : AgentProposal
|
|
17219
|
+
name : AgentProposalRun
|
|
17220
|
+
persistence : runtime
|
|
17221
|
+
fields : (id! input context request feedback summary items error)
|
|
17222
|
+
override-surface : (extends name fields persistence collection)
|
|
17223
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-proposal.orb orbitals[0].entity)"
|
|
17224
|
+
}
|
|
17225
|
+
|
|
17001
17226
|
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-session.orb orbitals[1].entity)
|
|
17002
17227
|
entity std-agent-session.entity {
|
|
17003
17228
|
alias : AgentSession
|
|
@@ -17020,6 +17245,27 @@ entity std-agent-session.entity {
|
|
|
17020
17245
|
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-session.orb orbitals[0].entity)"
|
|
17021
17246
|
}
|
|
17022
17247
|
|
|
17248
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[1].entity)
|
|
17249
|
+
entity std-agent-suggestions.entity {
|
|
17250
|
+
alias : AgentSuggestions
|
|
17251
|
+
name : AgentSuggestion
|
|
17252
|
+
persistence : persistent
|
|
17253
|
+
collection : agentSuggestions
|
|
17254
|
+
fields : (id! ownerId! kind title body action href payload subject signature status createdAt resolvedAt pendingProposal)
|
|
17255
|
+
override-surface : (extends name fields persistence collection)
|
|
17256
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[1].entity)"
|
|
17257
|
+
}
|
|
17258
|
+
|
|
17259
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[0].entity)
|
|
17260
|
+
entity std-agent-suggestions.entity {
|
|
17261
|
+
alias : AgentSuggestions
|
|
17262
|
+
name : AgentSuggestionsHost
|
|
17263
|
+
persistence : runtime
|
|
17264
|
+
fields : (id!)
|
|
17265
|
+
override-surface : (extends name fields persistence collection)
|
|
17266
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[0].entity)"
|
|
17267
|
+
}
|
|
17268
|
+
|
|
17023
17269
|
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-tool-call.orb orbitals[0].entity)
|
|
17024
17270
|
entity std-agent-tool-call.entity {
|
|
17025
17271
|
alias : AgentToolCall
|
|
@@ -17035,7 +17281,7 @@ entity std-agent-tool-loop.entity {
|
|
|
17035
17281
|
alias : AgentToolLoop
|
|
17036
17282
|
name : AgentTurn
|
|
17037
17283
|
persistence : runtime
|
|
17038
|
-
fields : (id! status reply error)
|
|
17284
|
+
fields : (id! status reply error ephemeral)
|
|
17039
17285
|
override-surface : (extends name fields persistence collection)
|
|
17040
17286
|
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-tool-loop.orb orbitals[0].entity)"
|
|
17041
17287
|
}
|
|
@@ -17390,6 +17636,16 @@ entity std-detail-layout.entity {
|
|
|
17390
17636
|
source : "@almadar/std (behaviors/registry/ui/core/atoms/std-detail-layout.orb orbitals[0].entity)"
|
|
17391
17637
|
}
|
|
17392
17638
|
|
|
17639
|
+
;; From @almadar/std (behaviors/registry/ui/core/atoms/std-doc-page.orb orbitals[0].entity)
|
|
17640
|
+
entity std-doc-page.entity {
|
|
17641
|
+
alias : DocPage
|
|
17642
|
+
name : DocPageView
|
|
17643
|
+
persistence : runtime
|
|
17644
|
+
fields : (id!)
|
|
17645
|
+
override-surface : (extends name fields persistence collection)
|
|
17646
|
+
source : "@almadar/std (behaviors/registry/ui/core/atoms/std-doc-page.orb orbitals[0].entity)"
|
|
17647
|
+
}
|
|
17648
|
+
|
|
17393
17649
|
;; From @almadar/std (behaviors/registry/ui/game/atoms/std-dungeon-combat.orb orbitals[0].entity)
|
|
17394
17650
|
entity std-dungeon-combat.entity {
|
|
17395
17651
|
alias : DungeonCombat
|
|
@@ -17680,7 +17936,7 @@ entity std-learn-arrangement.entity {
|
|
|
17680
17936
|
alias : LearnArrangement
|
|
17681
17937
|
name : LearnArrangementScene
|
|
17682
17938
|
persistence : runtime
|
|
17683
|
-
fields : (id! active title totalItems placedIds checked correctCount verdict slotShapes)
|
|
17939
|
+
fields : (id! active items title totalItems placedIds checked correctCount verdict slotShapes)
|
|
17684
17940
|
override-surface : (extends name fields persistence collection)
|
|
17685
17941
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-arrangement.orb orbitals[0].entity)"
|
|
17686
17942
|
}
|
|
@@ -17690,7 +17946,7 @@ entity std-learn-classify.entity {
|
|
|
17690
17946
|
alias : LearnClassify
|
|
17691
17947
|
name : LearnClassifyScene
|
|
17692
17948
|
persistence : runtime
|
|
17693
|
-
fields : (id! active title itemIndex itemText itemHint itemExplanation correctCategory selectedCategory feedback verdict correctCount attemptedCount totalItems roundComplete running elapsedMs score categoryStats backdropShapes roundView)
|
|
17949
|
+
fields : (id! active items categories title itemIndex itemText itemHint itemExplanation correctCategory selectedCategory feedback verdict correctCount attemptedCount totalItems roundComplete running elapsedMs score categoryStats backdropShapes roundView)
|
|
17694
17950
|
override-surface : (extends name fields persistence collection)
|
|
17695
17951
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-classify.orb orbitals[0].entity)"
|
|
17696
17952
|
}
|
|
@@ -17710,7 +17966,7 @@ entity std-learn-coupled-sim.entity {
|
|
|
17710
17966
|
alias : LearnCoupledSim
|
|
17711
17967
|
name : CoupledSimScene
|
|
17712
17968
|
persistence : runtime
|
|
17713
|
-
fields : (id! active title t p q coefA coefB running speed pSamples qSamples curves)
|
|
17969
|
+
fields : (id! active title taskText kind pLabel qLabel pStart qStart coefALabel coefBLabel t p q coefA coefB running speed pSamples qSamples curves)
|
|
17714
17970
|
override-surface : (extends name fields persistence collection)
|
|
17715
17971
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-coupled-sim.orb orbitals[0].entity)"
|
|
17716
17972
|
}
|
|
@@ -17720,7 +17976,7 @@ entity std-learn-derivation.entity {
|
|
|
17720
17976
|
alias : LearnDerivation
|
|
17721
17977
|
name : LearnDerivationScene
|
|
17722
17978
|
persistence : runtime
|
|
17723
|
-
fields : (id! active title lines feedback goalReached running elapsedMs narration renderChildren)
|
|
17979
|
+
fields : (id! active premises candidates title lines feedback goalReached running elapsedMs narration renderChildren)
|
|
17724
17980
|
override-surface : (extends name fields persistence collection)
|
|
17725
17981
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-derivation.orb orbitals[0].entity)"
|
|
17726
17982
|
}
|
|
@@ -17740,7 +17996,7 @@ entity std-learn-doser.entity {
|
|
|
17740
17996
|
alias : LearnDoser
|
|
17741
17997
|
name : DoserScene
|
|
17742
17998
|
persistence : runtime
|
|
17743
|
-
fields : (id! active title done running elapsedMs dose bandLabel bandColor narration containers readouts doseSeries)
|
|
17999
|
+
fields : (id! active title done running elapsedMs dose bandLabel bandColor narration containers readouts doseSeries bands)
|
|
17744
18000
|
override-surface : (extends name fields persistence collection)
|
|
17745
18001
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-doser.orb orbitals[0].entity)"
|
|
17746
18002
|
}
|
|
@@ -17750,7 +18006,7 @@ entity std-learn-estimate.entity {
|
|
|
17750
18006
|
alias : LearnEstimate
|
|
17751
18007
|
name : EstimateScene
|
|
17752
18008
|
persistence : runtime
|
|
17753
|
-
fields : (id! active title promptIndex totalPrompts estimate locked band score done promptText promptHint answer unit feedback view)
|
|
18009
|
+
fields : (id! active title prompts promptIndex totalPrompts estimate locked band score done promptText promptHint answer unit feedback view)
|
|
17754
18010
|
override-surface : (extends name fields persistence collection)
|
|
17755
18011
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-estimate.orb orbitals[0].entity)"
|
|
17756
18012
|
}
|
|
@@ -17770,7 +18026,7 @@ entity std-learn-goal-seek.entity {
|
|
|
17770
18026
|
alias : LearnGoalSeek
|
|
17771
18027
|
name : GoalSeekScene
|
|
17772
18028
|
persistence : runtime
|
|
17773
|
-
fields : (id! active title curveKind paramA paramB paramALabel paramBLabel targetSamples curves distance attempts solved feedback resultRow yMin yMax)
|
|
18029
|
+
fields : (id! active title curveKind goalText targetA targetB paramA paramB paramALabel paramBLabel targetSamples curves distance attempts solved feedback resultRow yMin yMax)
|
|
17774
18030
|
override-surface : (extends name fields persistence collection)
|
|
17775
18031
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-goal-seek.orb orbitals[0].entity)"
|
|
17776
18032
|
}
|
|
@@ -17780,7 +18036,7 @@ entity std-learn-grid-sim.entity {
|
|
|
17780
18036
|
alias : LearnGridSim
|
|
17781
18037
|
name : GridSimScene
|
|
17782
18038
|
persistence : runtime
|
|
17783
|
-
fields : (id! active title cells generation aliveCount running speed elapsedMs cellShapes)
|
|
18039
|
+
fields : (id! active title taskText rule rows cols seeds cells generation aliveCount running speed elapsedMs cellShapes)
|
|
17784
18040
|
override-surface : (extends name fields persistence collection)
|
|
17785
18041
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-grid-sim.orb orbitals[0].entity)"
|
|
17786
18042
|
}
|
|
@@ -17790,7 +18046,7 @@ entity std-learn-hotspot.entity {
|
|
|
17790
18046
|
alias : LearnHotspot
|
|
17791
18047
|
name : HotspotScene
|
|
17792
18048
|
persistence : runtime
|
|
17793
|
-
fields : (id! active title promptIndex totalPrompts score tries found done promptText targetId explanation feedback canvasShapes view)
|
|
18049
|
+
fields : (id! active title shapes prompts promptIndex totalPrompts score tries found done promptText targetId explanation feedback canvasShapes view)
|
|
17794
18050
|
override-surface : (extends name fields persistence collection)
|
|
17795
18051
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-hotspot.orb orbitals[0].entity)"
|
|
17796
18052
|
}
|
|
@@ -17800,7 +18056,7 @@ entity std-learn-live-sim.entity {
|
|
|
17800
18056
|
alias : LearnLiveSim
|
|
17801
18057
|
name : LiveSimScene
|
|
17802
18058
|
persistence : runtime
|
|
17803
|
-
fields : (id! active title bodies running gravity damping tickCount sampleSpeed)
|
|
18059
|
+
fields : (id! active title bodies loadedBodies running gravity damping tickCount sampleSpeed)
|
|
17804
18060
|
override-surface : (extends name fields persistence collection)
|
|
17805
18061
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-live-sim.orb orbitals[0].entity)"
|
|
17806
18062
|
}
|
|
@@ -17840,7 +18096,7 @@ entity std-learn-predict.entity {
|
|
|
17840
18096
|
alias : LearnPredict
|
|
17841
18097
|
name : PredictScene
|
|
17842
18098
|
persistence : runtime
|
|
17843
|
-
fields : (id! active title scenarioIndex totalScenarios phase chosenIndex frames frameIndex frameCaption frameValue revealSamples revealCurves score done setupText question options correctIndex explanation feedback view)
|
|
18099
|
+
fields : (id! active title scenarios scenarioIndex totalScenarios phase chosenIndex frames frameIndex frameCaption frameValue revealSamples revealCurves score done setupText question options correctIndex explanation feedback view)
|
|
17844
18100
|
override-surface : (extends name fields persistence collection)
|
|
17845
18101
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-predict.orb orbitals[0].entity)"
|
|
17846
18102
|
}
|
|
@@ -17860,7 +18116,7 @@ entity std-learn-sandbox.entity {
|
|
|
17860
18116
|
alias : LearnSandbox
|
|
17861
18117
|
name : LearnSandboxScene
|
|
17862
18118
|
persistence : runtime
|
|
17863
|
-
fields : (id! active title enabledIds total holds readout nodes edges)
|
|
18119
|
+
fields : (id! active title elements links enabledIds total holds readout nodes edges)
|
|
17864
18120
|
override-surface : (extends name fields persistence collection)
|
|
17865
18121
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-sandbox.orb orbitals[0].entity)"
|
|
17866
18122
|
}
|
|
@@ -17870,7 +18126,7 @@ entity std-learn-scatter-fit.entity {
|
|
|
17870
18126
|
alias : LearnScatterFit
|
|
17871
18127
|
name : LearnScatterFitScene
|
|
17872
18128
|
persistence : runtime
|
|
17873
|
-
fields : (id! active title points slope intercept r rSquared guessSlope guessIntercept guessScore revealed running done curves narration)
|
|
18129
|
+
fields : (id! active title initialPoints points slope intercept r rSquared guessSlope guessIntercept guessScore revealed running done curves narration)
|
|
17874
18130
|
override-surface : (extends name fields persistence collection)
|
|
17875
18131
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-scatter-fit.orb orbitals[0].entity)"
|
|
17876
18132
|
}
|
|
@@ -17880,7 +18136,7 @@ entity std-learn-scenario.entity {
|
|
|
17880
18136
|
alias : LearnScenario
|
|
17881
18137
|
name : ScenarioScene
|
|
17882
18138
|
persistence : runtime
|
|
17883
|
-
fields : (id! active title currentId situation choices metricA metricB stepCount path done feedback view)
|
|
18139
|
+
fields : (id! active title nodes startId currentId situation choices metricA metricB stepCount path done feedback view)
|
|
17884
18140
|
override-surface : (extends name fields persistence collection)
|
|
17885
18141
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-scenario.orb orbitals[0].entity)"
|
|
17886
18142
|
}
|
|
@@ -17910,7 +18166,7 @@ entity std-learn-speed-drill.entity {
|
|
|
17910
18166
|
alias : LearnSpeedDrill
|
|
17911
18167
|
name : SpeedDrillScene
|
|
17912
18168
|
persistence : runtime
|
|
17913
|
-
fields : (id! active title itemIndex totalItems remaining running verdict score streak bestStreak done promptText options correctIndex feedback pickedIndex view)
|
|
18169
|
+
fields : (id! active title items itemIndex totalItems remaining running verdict score streak bestStreak done promptText options correctIndex feedback pickedIndex view)
|
|
17914
18170
|
override-surface : (extends name fields persistence collection)
|
|
17915
18171
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-speed-drill.orb orbitals[0].entity)"
|
|
17916
18172
|
}
|
|
@@ -17920,7 +18176,7 @@ entity std-learn-stepper.entity {
|
|
|
17920
18176
|
alias : LearnStepper
|
|
17921
18177
|
name : LearnStepperScene
|
|
17922
18178
|
persistence : runtime
|
|
17923
|
-
fields : (id! active title cursorIndex activeFilter narration currentStageLabel currentStageDescription categoryTally tallyItems visibleThreadNote shapes filterButtons)
|
|
18179
|
+
fields : (id! active title stages categories categorySummaries cursorIndex activeFilter narration currentStageLabel currentStageDescription categoryTally tallyItems visibleThreadNote shapes filterButtons)
|
|
17924
18180
|
override-surface : (extends name fields persistence collection)
|
|
17925
18181
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-stepper.orb orbitals[0].entity)"
|
|
17926
18182
|
}
|
|
@@ -17940,7 +18196,7 @@ entity std-learn-trace-player.entity {
|
|
|
17940
18196
|
alias : LearnTracePlayer
|
|
17941
18197
|
name : TracePlayerScene
|
|
17942
18198
|
persistence : runtime
|
|
17943
|
-
fields : (id! active title frameIndex running speed elapsedMs bars frameLabel frameCaption statusNote)
|
|
18199
|
+
fields : (id! active title frames frameIndex running speed elapsedMs bars frameLabel frameCaption statusNote)
|
|
17944
18200
|
override-surface : (extends name fields persistence collection)
|
|
17945
18201
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-trace-player.orb orbitals[0].entity)"
|
|
17946
18202
|
}
|
|
@@ -17960,7 +18216,7 @@ entity std-learn-tree.entity {
|
|
|
17960
18216
|
alias : LearnTree
|
|
17961
18217
|
name : LearnTreeScene
|
|
17962
18218
|
persistence : runtime
|
|
17963
|
-
fields : (id! active title nodes edges entries cursor pending descending trail curId curVal curRank curRankOffset depth maxDepth count traversing traversalOrder sweptIds done running narration)
|
|
18219
|
+
fields : (id! active title values nodes edges entries cursor pending descending trail curId curVal curRank curRankOffset depth maxDepth count traversing traversalOrder sweptIds done running narration)
|
|
17964
18220
|
override-surface : (extends name fields persistence collection)
|
|
17965
18221
|
source : "@almadar/std (behaviors/registry/ui/learning/atoms/std-learn-tree.orb orbitals[0].entity)"
|
|
17966
18222
|
}
|
|
@@ -18232,6 +18488,46 @@ entity std-pad-lock.entity {
|
|
|
18232
18488
|
source : "@almadar/std (behaviors/registry/ui/game/atoms/std-pad-lock.orb orbitals[0].entity)"
|
|
18233
18489
|
}
|
|
18234
18490
|
|
|
18491
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-open.orb orbitals[0].entity)
|
|
18492
|
+
entity std-page-open.entity {
|
|
18493
|
+
alias : PageOpen
|
|
18494
|
+
name : PageOpenRecord
|
|
18495
|
+
persistence : runtime
|
|
18496
|
+
fields : (opened errorMessage)
|
|
18497
|
+
override-surface : (extends name fields persistence collection)
|
|
18498
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-open.orb orbitals[0].entity)"
|
|
18499
|
+
}
|
|
18500
|
+
|
|
18501
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-search.orb orbitals[0].entity)
|
|
18502
|
+
entity std-page-search.entity {
|
|
18503
|
+
alias : PageSearch
|
|
18504
|
+
name : PageSearchRecord
|
|
18505
|
+
persistence : runtime
|
|
18506
|
+
fields : (query tab errorMessage status)
|
|
18507
|
+
override-surface : (extends name fields persistence collection)
|
|
18508
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-search.orb orbitals[0].entity)"
|
|
18509
|
+
}
|
|
18510
|
+
|
|
18511
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-treat.orb orbitals[0].entity)
|
|
18512
|
+
entity std-page-treat.entity {
|
|
18513
|
+
alias : PageTreat
|
|
18514
|
+
name : PageTreatRecord
|
|
18515
|
+
persistence : runtime
|
|
18516
|
+
fields : (treated errorMessage)
|
|
18517
|
+
override-surface : (extends name fields persistence collection)
|
|
18518
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-treat.orb orbitals[0].entity)"
|
|
18519
|
+
}
|
|
18520
|
+
|
|
18521
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-watch.orb orbitals[0].entity)
|
|
18522
|
+
entity std-page-watch.entity {
|
|
18523
|
+
alias : PageWatch
|
|
18524
|
+
name : PageWatchRecord
|
|
18525
|
+
persistence : runtime
|
|
18526
|
+
fields : (watchId found errorMessage status)
|
|
18527
|
+
override-surface : (extends name fields persistence collection)
|
|
18528
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-watch.orb orbitals[0].entity)"
|
|
18529
|
+
}
|
|
18530
|
+
|
|
18235
18531
|
;; From @almadar/std (behaviors/registry/ui/core/atoms/std-pagination.orb orbitals[0].entity)
|
|
18236
18532
|
entity std-pagination.entity {
|
|
18237
18533
|
alias : Pagination
|
|
@@ -18885,6 +19181,16 @@ entity ui-avl-state-machine.entity {
|
|
|
18885
19181
|
source : "@almadar/std (behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb orbitals[0].entity)"
|
|
18886
19182
|
}
|
|
18887
19183
|
|
|
19184
|
+
;; From @almadar/std (behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb orbitals[0].entity)
|
|
19185
|
+
entity ui-avl-transition-explainer.entity {
|
|
19186
|
+
alias : UiAvlTransitionExplainer
|
|
19187
|
+
name : AvlTransitionExplainerItem
|
|
19188
|
+
persistence : runtime
|
|
19189
|
+
fields : (id!)
|
|
19190
|
+
override-surface : (extends name fields persistence collection)
|
|
19191
|
+
source : "@almadar/std (behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb orbitals[0].entity)"
|
|
19192
|
+
}
|
|
19193
|
+
|
|
18888
19194
|
;; From @almadar/std (behaviors/registry/ui/core/atoms/ui-badge.orb orbitals[0].entity)
|
|
18889
19195
|
entity ui-badge.entity {
|
|
18890
19196
|
alias : UiBadge
|
|
@@ -19881,7 +20187,7 @@ trait std-agent-memory.traits.AgentMemoryRecall {
|
|
|
19881
20187
|
category : lifecycle
|
|
19882
20188
|
states : (ready* recalling remembering)
|
|
19883
20189
|
events : (INIT MEMORY_STORED LIST MemoriesForList MemoryListFailed RECALL REMEMBER MemoryEmbedded MemoriesForRecall MemoryEmbedFailed AgentMemoriesLoadFailed RECALLED ASSISTANT_MEMORIES_LOADED)
|
|
19884
|
-
transitions : ((ready -> ready on INIT) (ready -> ready on MEMORY_STORED) (ready -> ready on LIST) (ready -> ready on MemoriesForList) (ready -> ready on MemoryListFailed) (ready -> recalling on RECALL) (ready -> remembering on REMEMBER) (recalling -> recalling on MemoryEmbedded) (recalling -> ready on MemoriesForRecall) (recalling -> ready on MemoryEmbedFailed) (recalling -> ready on AgentMemoriesLoadFailed) (remembering -> ready on MemoryEmbedded) (remembering -> ready on MemoryEmbedFailed))
|
|
20190
|
+
transitions : ((ready -> ready on INIT) (ready -> ready on MEMORY_STORED) (ready -> ready on LIST) (ready -> ready on MemoriesForList) (ready -> ready on MemoryListFailed) (ready -> ready on RECALL) (ready -> recalling on RECALL) (ready -> ready on REMEMBER) (ready -> remembering on REMEMBER) (recalling -> recalling on MemoryEmbedded) (recalling -> ready on MemoriesForRecall) (recalling -> ready on MemoryEmbedFailed) (recalling -> ready on AgentMemoriesLoadFailed) (remembering -> ready on MemoryEmbedded) (remembering -> ready on MemoryEmbedFailed))
|
|
19885
20191
|
emits : (RECALLED ASSISTANT_MEMORIES_LOADED MemoriesForList MemoryListFailed MEMORY_STORED AgentMemoriesLoadFailed MemoriesForRecall MemoryEmbedded MemoryEmbedFailed)
|
|
19886
20192
|
config {
|
|
19887
20193
|
recallLimit : number = 3 @label "Memories recalled per request" @description "How many of the closest memories go to the model with each request." @tier "policy"
|
|
@@ -19915,6 +20221,39 @@ trait std-agent-planner.traits.PlannerListener {
|
|
|
19915
20221
|
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-planner.orb orbitals[0].traits[1])"
|
|
19916
20222
|
}
|
|
19917
20223
|
|
|
20224
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-proposal.orb orbitals[0].traits[0])
|
|
20225
|
+
trait std-agent-proposal.traits.AgentProposalWorkflow {
|
|
20226
|
+
alias : AgentProposal
|
|
20227
|
+
linkedEntity : AgentProposalRun
|
|
20228
|
+
category : interaction
|
|
20229
|
+
states : (idle* working review failed)
|
|
20230
|
+
events : (PROPOSE INIT INPUT_CHANGED CLOSE START_TYPED PROPOSAL_REQUESTED PROPOSAL_LOOP_REPLIED PROPOSAL_LOOP_FAILED CANCEL FEEDBACK_CHANGED APPROVE REVISE DISCARD RETRY PROPOSAL_APPROVED PROPOSAL_DISCARDED PROPOSAL_CANCELLED PROPOSAL_RUN_REQUESTED)
|
|
20231
|
+
transitions : ((idle -> idle on PROPOSE) (idle -> idle on INIT) (idle -> idle on INIT) (idle -> idle on INPUT_CHANGED) (idle -> idle on CLOSE) (idle -> working on START_TYPED) (idle -> working on PROPOSAL_REQUESTED) (working -> review on PROPOSE) (working -> failed on PROPOSAL_LOOP_REPLIED) (working -> failed on PROPOSAL_LOOP_FAILED) (working -> idle on CANCEL) (working -> idle on CANCEL) (working -> idle on CLOSE) (review -> review on FEEDBACK_CHANGED) (review -> review on PROPOSE) (review -> idle on APPROVE) (review -> idle on APPROVE) (review -> working on REVISE) (review -> review on REVISE) (review -> idle on DISCARD) (review -> idle on DISCARD) (review -> idle on CLOSE) (failed -> working on RETRY) (failed -> idle on DISCARD) (failed -> idle on DISCARD) (failed -> idle on CLOSE))
|
|
20232
|
+
emits : (PROPOSAL_APPROVED PROPOSAL_DISCARDED PROPOSAL_CANCELLED PROPOSAL_RUN_REQUESTED)
|
|
20233
|
+
config {
|
|
20234
|
+
approveButton : string = "@config.approveLabel" @label "Approve button" @tier "presentation"
|
|
20235
|
+
cancelButton : string = "@config.cancelLabel" @label "Cancel button" @tier "presentation"
|
|
20236
|
+
discardButton : string = "@config.discardLabel" @label "Discard button" @tier "presentation"
|
|
20237
|
+
feedbackText : string = "@config.feedbackLabel" @label "Revision feedback label" @tier "presentation"
|
|
20238
|
+
fieldsForItems : [ProposalField] = "@config.itemFields" @label "Which item values are shown?" @tier "domain"
|
|
20239
|
+
framing : string = "@config.prompt" @label "What is the agent asked to do?" @description "The request that precedes the person's input." @synonyms "task, goal, brief" @tier "domain"
|
|
20240
|
+
heading : string = "@config.title" @label "Panel heading" @tier "presentation"
|
|
20241
|
+
headingIcon : string = "@config.icon" @label "Panel icon" @tier "presentation"
|
|
20242
|
+
inputText : string = "@config.inputLabel" @label "Start form label" @tier "presentation"
|
|
20243
|
+
itemsTitle : string = "@config.itemsHeading" @label "Items heading" @tier "presentation"
|
|
20244
|
+
patternForItems : pattern = "@config.itemPattern" @label "How are the proposed items drawn?" @tier "presentation"
|
|
20245
|
+
retryButton : string = "@config.retryLabel" @label "Retry button" @tier "presentation"
|
|
20246
|
+
reviseButton : string = "@config.reviseLabel" @label "Revise button" @tier "presentation"
|
|
20247
|
+
slot : slot = "@config.panelSlot" @label "Where the panel renders" @tier "internal"
|
|
20248
|
+
startButton : string = "@config.startLabel" @label "Start button" @tier "presentation"
|
|
20249
|
+
summaryTitle : string = "@config.summaryHeading" @label "Summary heading" @tier "presentation"
|
|
20250
|
+
withInputForm : boolean = "@config.showInputForm" @label "Show a start form?" @tier "presentation"
|
|
20251
|
+
workingText : string = "@config.workingLabel" @label "While the agent works" @tier "presentation"
|
|
20252
|
+
}
|
|
20253
|
+
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
20254
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-proposal.orb orbitals[0].traits[0])"
|
|
20255
|
+
}
|
|
20256
|
+
|
|
19918
20257
|
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-session.orb orbitals[1].traits[0])
|
|
19919
20258
|
trait std-agent-session.traits.AgentChatKeeper {
|
|
19920
20259
|
alias : AgentSession
|
|
@@ -19951,14 +20290,15 @@ trait std-agent-session.traits.AgentConversation {
|
|
|
19951
20290
|
linkedEntity : AgentConversationView
|
|
19952
20291
|
category : interaction
|
|
19953
20292
|
states : (idle*)
|
|
19954
|
-
events : (INIT THREAD_LOADED ASK STEP REPLIED NEW_CHAT_CLICKED OPEN_CHATS_CLICKED CHATS_LISTED CHAT_PICKED OPEN_MEMORY_CLICKED MEMORIES_LISTED BACK_TO_CHAT REPLY_FAILED ASSISTANT_HISTORY_REQUESTED ASSISTANT_NEW_CHAT ASSISTANT_SEND ASSISTANT_CHATS_REQUESTED ASSISTANT_CHAT_SELECTED ASSISTANT_MEMORIES_REQUESTED)
|
|
19955
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on THREAD_LOADED) (idle -> idle on ASK) (idle -> idle on STEP) (idle -> idle on REPLIED) (idle -> idle on NEW_CHAT_CLICKED) (idle -> idle on OPEN_CHATS_CLICKED) (idle -> idle on CHATS_LISTED) (idle -> idle on CHAT_PICKED) (idle -> idle on OPEN_MEMORY_CLICKED) (idle -> idle on MEMORIES_LISTED) (idle -> idle on BACK_TO_CHAT) (idle -> idle on REPLY_FAILED))
|
|
19956
|
-
emits : (ASSISTANT_HISTORY_REQUESTED ASSISTANT_NEW_CHAT NEW_CHAT_CLICKED ASSISTANT_SEND ASSISTANT_CHATS_REQUESTED ASSISTANT_CHAT_SELECTED ASSISTANT_MEMORIES_REQUESTED OPEN_CHATS_CLICKED OPEN_MEMORY_CLICKED CHAT_PICKED ASK)
|
|
20293
|
+
events : (INIT THREAD_LOADED ASK START_CHAT STEP REPLIED NEW_CHAT_CLICKED OPEN_CHATS_CLICKED CHATS_LISTED CHAT_PICKED OPEN_MEMORY_CLICKED MEMORIES_LISTED BACK_TO_CHAT REPLY_FAILED ASSISTANT_HISTORY_REQUESTED ASSISTANT_NEW_CHAT ASSISTANT_EPHEMERAL_SEND ASSISTANT_SEND ASSISTANT_CHATS_REQUESTED ASSISTANT_CHAT_SELECTED ASSISTANT_MEMORIES_REQUESTED)
|
|
20294
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on INIT) (idle -> idle on THREAD_LOADED) (idle -> idle on ASK) (idle -> idle on ASK) (idle -> idle on START_CHAT) (idle -> idle on STEP) (idle -> idle on REPLIED) (idle -> idle on NEW_CHAT_CLICKED) (idle -> idle on OPEN_CHATS_CLICKED) (idle -> idle on CHATS_LISTED) (idle -> idle on CHAT_PICKED) (idle -> idle on OPEN_MEMORY_CLICKED) (idle -> idle on MEMORIES_LISTED) (idle -> idle on BACK_TO_CHAT) (idle -> idle on REPLY_FAILED))
|
|
20295
|
+
emits : (ASSISTANT_HISTORY_REQUESTED ASSISTANT_NEW_CHAT NEW_CHAT_CLICKED ASSISTANT_EPHEMERAL_SEND ASSISTANT_SEND ASSISTANT_CHATS_REQUESTED ASSISTANT_CHAT_SELECTED ASSISTANT_MEMORIES_REQUESTED OPEN_CHATS_CLICKED OPEN_MEMORY_CLICKED CHAT_PICKED ASK)
|
|
19957
20296
|
config {
|
|
19958
20297
|
backLabel : string = "Back" @label "Back to the conversation" @tier "presentation"
|
|
19959
20298
|
chatsEmptyTitle : string = "No conversations yet" @label "Empty conversation list" @tier "presentation"
|
|
19960
20299
|
chatsLabel : string = "Conversations" @label "Past conversations button" @description "Shows the person's past conversations in place of the chat; picking one reopens it." @tier "presentation"
|
|
19961
20300
|
emptyTitle : string = "Ask me to do something in this app" @label "Empty conversation title" @tier "presentation"
|
|
20301
|
+
ephemeral : boolean = false @label "Ephemeral conversation?" @description "A self-contained conversation: it runs under the instructions, tools, greeting and header the app starts it with (ASSISTANT_CHAT_START), is never stored among the person's conversations or remembered, shows no conversation, past-chat or memory buttons, and ignores the assistant's own replies." @synonyms "private, one-off, scoped chat, own persona, not saved" @tier "domain"
|
|
19962
20302
|
links : [AgentLink] = [{"href":"/agent-session/chats","label":"All conversations"}] @label "Links above the conversation" @description "Related pages (e.g. the run history)." @tier "presentation"
|
|
19963
20303
|
memoryEmptyTitle : string = "Nothing remembered yet" @label "Empty memory list" @tier "presentation"
|
|
19964
20304
|
memoryLabel : string = "What I remember" @label "Memory button" @description "Shows what the assistant remembers for this person in place of the chat." @tier "presentation"
|
|
@@ -19983,6 +20323,99 @@ trait std-agent-session.traits.AgentThread {
|
|
|
19983
20323
|
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-session.orb orbitals[0].traits[0])"
|
|
19984
20324
|
}
|
|
19985
20325
|
|
|
20326
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[1].traits[0])
|
|
20327
|
+
trait std-agent-suggestions.traits.AgentSuggestionHistory {
|
|
20328
|
+
alias : AgentSuggestions
|
|
20329
|
+
linkedEntity : AgentSuggestion
|
|
20330
|
+
category : interaction
|
|
20331
|
+
states : (browsing*)
|
|
20332
|
+
events : (INIT SuggestionsLoaded SuggestionsLoadFailed)
|
|
20333
|
+
transitions : ((browsing -> browsing on INIT) (browsing -> browsing on SuggestionsLoaded) (browsing -> browsing on SuggestionsLoadFailed))
|
|
20334
|
+
emits : (SuggestionsLoaded SuggestionsLoadFailed)
|
|
20335
|
+
config {
|
|
20336
|
+
emptyHeading : string = "Nothing suggested yet" @label "What shows when nothing was ever suggested?" @tier "presentation"
|
|
20337
|
+
}
|
|
20338
|
+
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
20339
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[1].traits[0])"
|
|
20340
|
+
}
|
|
20341
|
+
|
|
20342
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[0].traits[1])
|
|
20343
|
+
trait std-agent-suggestions.traits.AgentSuggestionInbox {
|
|
20344
|
+
alias : AgentSuggestions
|
|
20345
|
+
linkedEntity : AgentSuggestion
|
|
20346
|
+
category : interaction
|
|
20347
|
+
states : (closed* open)
|
|
20348
|
+
events : (INIT OPEN SuggestionsLoaded SuggestionsLoadFailed SuggestionResolveFailed REFRESH ANALYZE ACCEPT SuggestionForAccept SuggestionAccepted DISMISS SuggestionForDismiss SuggestionDismissed CLOSE SUGGESTION_ACCEPTED SUGGESTION_DISMISSED SUGGESTIONS_ANALYZE_REQUESTED)
|
|
20349
|
+
transitions : ((closed -> open on INIT) (closed -> closed on INIT) (closed -> open on OPEN) (open -> open on SuggestionsLoaded) (open -> open on SuggestionsLoadFailed) (open -> open on SuggestionResolveFailed) (open -> open on REFRESH) (open -> open on OPEN) (open -> open on ANALYZE) (open -> open on ACCEPT) (open -> open on SuggestionForAccept) (open -> open on SuggestionAccepted) (open -> open on SuggestionAccepted) (open -> open on DISMISS) (open -> open on SuggestionForDismiss) (open -> open on SuggestionDismissed) (open -> closed on CLOSE))
|
|
20350
|
+
emits : (SUGGESTION_ACCEPTED SUGGESTION_DISMISSED SUGGESTIONS_ANALYZE_REQUESTED SuggestionsLoaded SuggestionsLoadFailed SuggestionResolveFailed SuggestionForAccept SuggestionForDismiss SuggestionAccepted SuggestionDismissed)
|
|
20351
|
+
config {
|
|
20352
|
+
approveLabel : string = "@config.acceptLabel" @label "Accept button label" @synonyms "approve, yes, do it" @tier "presentation"
|
|
20353
|
+
closeButtonLabel : string = "@config.closeLabel" @label "Close button label" @synonyms "back, hide" @tier "presentation"
|
|
20354
|
+
declineLabel : string = "@config.dismissLabel" @label "Dismiss button label" @synonyms "reject, no thanks, hide" @tier "presentation"
|
|
20355
|
+
emptyHeading : string = "@config.emptyTitle" @label "What shows when nothing is pending?" @synonyms "empty state, no suggestions" @tier "presentation"
|
|
20356
|
+
emptyHint : string = "@config.emptyDescription" @label "Hint under the empty heading" @tier "presentation"
|
|
20357
|
+
heading : string = "@config.title" @label "Inbox heading" @description "Heading at the top of the inbox." @synonyms "panel title, suggestions title" @tier "presentation"
|
|
20358
|
+
headingIcon : string = "@config.icon" @label "Inbox icon" @description "Lucide icon name shown beside the heading." @synonyms "header icon" @tier "presentation"
|
|
20359
|
+
historyLink : string = "@config.historyHref" @label "Past-suggestions page" @description "Where accepted and dismissed suggestions are listed; empty hides the link." @tier "presentation"
|
|
20360
|
+
historyLinkLabel : string = "@config.historyLabel" @label "Past-suggestions link label" @synonyms "history, archive, earlier suggestions" @tier "presentation"
|
|
20361
|
+
inboxSlot : slot = "@config.panelSlot" @label "Where the inbox renders" @description "`main` inline; `modal` or `drawer` for an overlay opened with OPEN." @tier "internal"
|
|
20362
|
+
lookAgainLabel : string = "@config.analyzeLabel" @label "Look-again button label" @description "The empty inbox's button, which asks the agent to look again." @synonyms "refresh, find suggestions, analyze" @tier "presentation"
|
|
20363
|
+
showOnMount : boolean = "@config.startOpen" @label "Show the inbox as soon as it mounts?" @description "Off for an overlay that waits for OPEN." @tier "presentation"
|
|
20364
|
+
}
|
|
20365
|
+
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
20366
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[0].traits[1])"
|
|
20367
|
+
}
|
|
20368
|
+
|
|
20369
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[0].traits[0])
|
|
20370
|
+
trait std-agent-suggestions.traits.AgentSuggestionProposer {
|
|
20371
|
+
alias : AgentSuggestions
|
|
20372
|
+
linkedEntity : AgentSuggestion
|
|
20373
|
+
category : lifecycle
|
|
20374
|
+
states : (ready*)
|
|
20375
|
+
events : (INIT PROPOSE_SUGGESTION SuggestionsForPropose SuggestionCheckFailed SuggestionSaveFailed SUGGESTION_ADDED SUGGESTION_DUPLICATE SUGGESTION_LIMIT_REACHED SUGGESTION_REJECTED)
|
|
20376
|
+
transitions : ((ready -> ready on INIT) (ready -> ready on PROPOSE_SUGGESTION) (ready -> ready on PROPOSE_SUGGESTION) (ready -> ready on PROPOSE_SUGGESTION) (ready -> ready on SuggestionsForPropose) (ready -> ready on SuggestionsForPropose) (ready -> ready on SuggestionsForPropose) (ready -> ready on SuggestionCheckFailed) (ready -> ready on SuggestionSaveFailed))
|
|
20377
|
+
emits : (SUGGESTION_ADDED SUGGESTION_DUPLICATE SUGGESTION_LIMIT_REACHED SUGGESTION_REJECTED SuggestionsForPropose SuggestionCheckFailed SuggestionSaveFailed)
|
|
20378
|
+
config {
|
|
20379
|
+
allowedActions : [string] = "@config.actions" @label "Which actions may a suggestion carry?" @description "When listed, any other action is refused. Empty accepts any." @synonyms "allowed actions, commands, events" @tier "domain"
|
|
20380
|
+
allowedKinds : [string] = "@config.kinds" @label "Which kinds may be proposed?" @description "When listed, any other kind is refused. Empty accepts any." @synonyms "types, categories, allowed kinds" @tier "domain"
|
|
20381
|
+
pendingLimit : number = "@config.maxPending" @label "How many suggestions may wait at once?" @description "A proposal is refused (SUGGESTION_LIMIT_REACHED) while this many are pending." @synonyms "limit, cap, queue size" @tier "policy"
|
|
20382
|
+
}
|
|
20383
|
+
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
20384
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[0].traits[0])"
|
|
20385
|
+
}
|
|
20386
|
+
|
|
20387
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[0].traits[3])
|
|
20388
|
+
trait std-agent-suggestions.traits.AgentSuggestionRunner {
|
|
20389
|
+
alias : AgentSuggestions
|
|
20390
|
+
linkedEntity : AgentSuggestionRun
|
|
20391
|
+
category : lifecycle
|
|
20392
|
+
states : (ready* starting analyzing)
|
|
20393
|
+
events : (INIT START RunRecorded RunRecordFailed LOOP_REPLIED LOOP_FAILED SUGGESTION_RUN_STARTED SUGGESTION_RUN_DONE SUGGESTION_RUN_FAILED)
|
|
20394
|
+
transitions : ((ready -> ready on INIT) (ready -> starting on START) (starting -> analyzing on RunRecorded) (starting -> ready on RunRecordFailed) (analyzing -> ready on LOOP_REPLIED) (analyzing -> ready on LOOP_FAILED))
|
|
20395
|
+
emits : (SUGGESTION_RUN_STARTED SUGGESTION_RUN_DONE SUGGESTION_RUN_FAILED RunRecorded RunRecordFailed)
|
|
20396
|
+
config {
|
|
20397
|
+
request : string = "@config.prompt" @label "What does the agent look into?" @description "The request each proactive run answers." @synonyms "task, goal, question, brief" @tier "domain"
|
|
20398
|
+
}
|
|
20399
|
+
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
20400
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[0].traits[3])"
|
|
20401
|
+
}
|
|
20402
|
+
|
|
20403
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[0].traits[2])
|
|
20404
|
+
trait std-agent-suggestions.traits.AgentSuggestionTrigger {
|
|
20405
|
+
alias : AgentSuggestions
|
|
20406
|
+
linkedEntity : AgentSuggestionRun
|
|
20407
|
+
category : lifecycle
|
|
20408
|
+
states : (ready*)
|
|
20409
|
+
events : (INIT TRIGGERED RunsForTrigger RunsLoadFailed SUGGESTION_RUN_ALLOWED)
|
|
20410
|
+
transitions : ((ready -> ready on INIT) (ready -> ready on TRIGGERED) (ready -> ready on RunsForTrigger) (ready -> ready on RunsForTrigger) (ready -> ready on RunsLoadFailed))
|
|
20411
|
+
emits : (SUGGESTION_RUN_ALLOWED RunsForTrigger RunsLoadFailed)
|
|
20412
|
+
config {
|
|
20413
|
+
gapMinutes : number = "@config.cooldownMinutes" @label "Minutes between proactive runs" @description "A trigger starts a run only when this long has passed since the person's last run." @synonyms "throttle, rate limit, interval, frequency" @tier "policy"
|
|
20414
|
+
}
|
|
20415
|
+
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
20416
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[0].traits[2])"
|
|
20417
|
+
}
|
|
20418
|
+
|
|
19986
20419
|
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-tool-call.orb orbitals[0].traits[0])
|
|
19987
20420
|
trait std-agent-tool-call.traits.ToolCallExecution {
|
|
19988
20421
|
alias : AgentToolCall
|
|
@@ -20014,12 +20447,14 @@ trait std-agent-tool-loop.traits.AgentToolLoop {
|
|
|
20014
20447
|
linkedEntity : AgentTurn
|
|
20015
20448
|
category : interaction
|
|
20016
20449
|
states : (idle* thinking)
|
|
20017
|
-
events : (INIT CONVERSE ANSWERED ASK_FAILED ASSISTANT_STEP ASSISTANT_REPLIED ASSISTANT_REPLY_FAILED)
|
|
20018
|
-
transitions : ((idle -> idle on INIT) (idle -> thinking on CONVERSE) (thinking -> idle on ANSWERED) (thinking -> idle on ASK_FAILED))
|
|
20450
|
+
events : (INIT CONVERSE CANCEL ANSWERED ASK_FAILED ASSISTANT_STEP ASSISTANT_REPLIED ASSISTANT_REPLY_FAILED)
|
|
20451
|
+
transitions : ((idle -> idle on INIT) (idle -> thinking on CONVERSE) (idle -> thinking on CONVERSE) (idle -> thinking on CONVERSE) (thinking -> idle on CANCEL) (thinking -> idle on ANSWERED) (thinking -> idle on ASK_FAILED) (thinking -> idle on ASK_FAILED))
|
|
20019
20452
|
emits : (ASSISTANT_STEP ASSISTANT_REPLIED ASSISTANT_REPLY_FAILED ANSWERED ASK_FAILED)
|
|
20020
20453
|
config {
|
|
20454
|
+
cancelKey : string = "agent-tool-loop" @label "Cancel key" @description "The key this instance's model call runs under, so CANCEL aborts it. Give each instance of the loop in one app its own." @synonyms "call key, abort key" @tier "internal"
|
|
20021
20455
|
instructions : string = "You operate this app for the signed-in user. Use the tools to act and to look things up; when a tool reports that something was refused or denied, say so plainly." @label "How should the assistant behave?" @description "Standing instructions sent with every conversation." @synonyms "system prompt, persona, guidance" @tier "domain"
|
|
20022
20456
|
maxSteps : number = 8 @label "Model round-trips per request" @description "How many model calls one request may take before it fails." @tier "policy"
|
|
20457
|
+
quiet : boolean = false @label "Run in the background?" @description "No live ASSISTANT_STEP stream and no failure toast: the request is reported only through ASSISTANT_REPLIED and ASSISTANT_REPLY_FAILED. For a run nobody is watching, such as one the app starts on its own." @synonyms "silent, background, no toast, suppress errors, headless run" @tier "policy"
|
|
20023
20458
|
tools : [AgentTool] = [] @label "What may the assistant do?" @description "The declared inputs it may fire (`{ event: Trait.EVENT }`) and the entities it may read (`{ read: Entity }`), as the signed-in user." @synonyms "allowlist, abilities, actions, permissions" @tier "domain"
|
|
20024
20459
|
}
|
|
20025
20460
|
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
@@ -20084,12 +20519,15 @@ trait std-app-layout.traits.AppLayout {
|
|
|
20084
20519
|
contentClassName : string = "max-w-5xl mx-auto w-full" @label "Content wrapper class" @description "CSS class applied to the content area wrapper." @tier "internal"
|
|
20085
20520
|
contentTrait : trait @label "Content trait" @description "Trait rendered inside the app layout content area" @tier "presentation"
|
|
20086
20521
|
currentPath : string = "" @label "Current path" @description "Nav-highlight ONLY: which nav item to mark active. This is NOT the page route — it does not change what page loads or where the orbital lives. To set the landing route or a page path, use the orbital's pagePath / page path, not this knob. When omitted, the layout reads the current route." @synonyms "active nav item, highlighted nav link, which menu item is selected, nav highlight" @tier "internal"
|
|
20087
|
-
layoutMode : string = "sidebar" @label "Where should navigation be placed?" @description "sidebar = left rail; topnav = top bar; bottomnav = mobile tab bar; minimal = no nav." @synonyms "nav position, navigation style, menu placement, layout style" @tier "presentation" @values (sidebar topnav bottomnav minimal)
|
|
20522
|
+
layoutMode : string = "sidebar" @label "Where should navigation be placed?" @description "sidebar = left rail; topnav = top bar; bottomnav = mobile tab bar; minimal = no nav; drawer = navigation behind a menu button at every width, content full width." @synonyms "nav position, navigation style, menu placement, layout style" @tier "presentation" @values (sidebar topnav bottomnav minimal drawer)
|
|
20088
20523
|
layoutPattern : pattern = "dashboard-layout" @label "Layout pattern" @description "UI pattern used to render the application chrome" @tier "internal"
|
|
20524
|
+
logoSrc : string = "" @label "Logo image" @description "Address of the logo shown beside the app name in the chrome header (an image URL or an inline data: SVG); empty shows the name's first letter." @synonyms "logo, brand mark, app icon, logo url" @tier "presentation"
|
|
20089
20525
|
navItems : [NavItem] = "@pages" @label "Which sections appear in the sidebar?" @description "Top-level navigation links shown on the left rail." @synonyms "nav links, menu items, sidebar sections, navigation entries, pages" @tier "presentation"
|
|
20090
20526
|
notificationClickEvent : event = "NOTIFY_CLICK" @label "Notification click event" @description "Event emitted when the user picks a notification" @tier "internal"
|
|
20091
20527
|
notifications : [NotificationSpec] = [] @label "What notifications should appear?" @description "Items shown in the notifications dropdown." @synonyms "alerts, messages, notices, notification items, bell items" @tier "presentation"
|
|
20092
20528
|
searchEvent : event = "SEARCH" @label "Search event" @description "Event emitted when the user runs a global search" @tier "internal"
|
|
20529
|
+
showSearch : boolean = true @label "Show the search box?" @description "The top-bar search box; turn off for apps whose pages carry their own search." @synonyms "search bar, top search, hide search" @tier "presentation"
|
|
20530
|
+
showThemeToggle : boolean = true @label "Show the light/dark toggle?" @description "The theme toggle in the top bar; turn off when the app offers it elsewhere, such as a settings page." @synonyms "dark mode button, theme switch, hide theme toggle" @tier "presentation"
|
|
20093
20531
|
sidebarTrait : trait @label "Sidebar trait" @description "Optional trait rendered in the sidebar between the nav links and the footer — the Notion/Confluence-style always-visible page tree; scrolls independently. Unset renders plain nav only." @synonyms "sidebar tree, nav tree, page tree in sidebar, hierarchy rail" @tier "presentation"
|
|
20094
20532
|
theme : string = "@currentTheme" @label "Theme" @description "Data-theme attribute applied to the layout root (e.g. almadar-website-dark)." @tier "presentation"
|
|
20095
20533
|
topBarActions : [ItemAction] = [] @label "What shortcuts go in the top bar?" @description "Icon buttons shown on the right side of the top bar (e.g. cart, help, profile)." @synonyms "toolbar buttons, header actions, shortcut icons, quick actions" @tier "presentation"
|
|
@@ -20324,7 +20762,7 @@ trait std-book-reader.traits.BookReaderRead {
|
|
|
20324
20762
|
category : interaction
|
|
20325
20763
|
states : (cover* reading)
|
|
20326
20764
|
events : (INIT START_READING OPEN_CHAPTER NEXT_CHAPTER PREV_CHAPTER BACK_TO_COVER CHAPTER_OPENED)
|
|
20327
|
-
transitions : ((cover -> cover on INIT) (cover -> reading on START_READING) (cover -> reading on OPEN_CHAPTER) (reading -> reading on INIT) (reading -> reading on OPEN_CHAPTER) (reading -> reading on NEXT_CHAPTER) (reading -> reading on PREV_CHAPTER) (reading -> cover on BACK_TO_COVER))
|
|
20765
|
+
transitions : ((cover -> cover on INIT) (cover -> reading on INIT) (cover -> reading on START_READING) (cover -> reading on OPEN_CHAPTER) (reading -> reading on INIT) (reading -> reading on OPEN_CHAPTER) (reading -> reading on NEXT_CHAPTER) (reading -> reading on PREV_CHAPTER) (reading -> cover on BACK_TO_COVER))
|
|
20328
20766
|
emits : (CHAPTER_OPENED)
|
|
20329
20767
|
config {
|
|
20330
20768
|
author : string = "" @label "Author" @tier "presentation"
|
|
@@ -20335,8 +20773,9 @@ trait std-book-reader.traits.BookReaderRead {
|
|
|
20335
20773
|
coverLabel : string = "Cover" @label "Back-to-cover label" @tier "presentation"
|
|
20336
20774
|
direction : string = "ltr" @label "Text direction" @description "rtl for Arabic, Hebrew and other right-to-left books" @synonyms "right to left, arabic book" @tier "presentation" @values (ltr rtl)
|
|
20337
20775
|
nextLabel : string = "Next" @label "Next button label" @tier "presentation"
|
|
20776
|
+
opensAt : string = "cover" @label "Opens at" @description "Where the reader opens: the cover, or straight into the first chapter (an article read in place)" @tier "presentation" @values (cover reading)
|
|
20338
20777
|
previousLabel : string = "Previous" @label "Previous button label" @tier "presentation"
|
|
20339
|
-
readingContent : render-ui = {"children":[{"children":[{"children":[{"align":"start","children":[{"action":"BACK_TO_COVER","label":"@config.coverLabel","leftIcon":"book-open","type":"button","variant":"link"},{"className":"pt-2","content":"@config.contentsLabel","type":"typography","variant":"label","weight":"semibold"},{"align":"start","children":["array/map","@config.chapters",["fn","chapter",{"action":"OPEN_CHAPTER","actionPayload":{"index":"@index"},"aria-current":["if",["==","@index","@entity.chapterIndex"],"page","false"],"className":["if",["==","@index","@entity.chapterIndex"],"h-auto justify-start text-start text-foreground font-semibold","h-auto justify-start text-start"],"label":["object/get","@chapter","title",""],"type":"button","variant":"link"}]],"direction":"vertical","gap":"none","type":"stack"}],"className":"lg:sticky lg:top-6 self-start","direction":"vertical","gap":"xs","type":"stack"},{"children":[{"children":[{"color":"muted","content":"@entity.progressLabel","type":"typography","variant":"caption"},{"className":"tracking-tight","content":"@entity.chapterTitle","size":"3xl","type":"typography","variant":"h1","weight":"bold"}],"direction":"vertical","gap":"lg","role":"status","type":"stack"},{"content":"@entity.chapterContent","direction":"@config.direction","type":"markdown-content"},{"type":"divider"},{"children":[{"action":"PREV_CHAPTER","disabled":"@entity.isFirst","label":"@config.previousLabel","leftIcon":["if",["==","@config.direction","rtl"],"chevron-right","chevron-left"],"type":"button","variant":"secondary"},{"action":"NEXT_CHAPTER","disabled":"@entity.isLast","label":"@config.nextLabel","rightIcon":["if",["==","@config.direction","rtl"],"chevron-left","chevron-right"],"type":"button","variant":"primary"}],"direction":"horizontal","gap":"md","justify":"between","type":"stack"}],"direction":"vertical","gap":"lg","type":"stack"}],"gap":"xl","ratio":"1:3","type":"split"}],"maxWidth":"xl","padding":"lg","size":"xl","type":"container"}],"dir":"@config.direction","fullWidth":true,"paddingY":"xl","type":"box"} @label "Reading body" @tier "internal"
|
|
20778
|
+
readingContent : render-ui = {"children":[{"children":[{"children":[{"align":"start","children":[{"className":"text-balance","content":"@config.title","type":"typography","variant":"h5","weight":"semibold"},{"className":["if",["==","@config.author",""],"hidden","pb-2"],"color":"muted","content":"@config.author","type":"typography","variant":"caption"},{"action":"BACK_TO_COVER","label":"@config.coverLabel","leftIcon":"book-open","type":"button","variant":"link"},{"className":"pt-2","content":"@config.contentsLabel","type":"typography","variant":"label","weight":"semibold"},{"align":"start","children":["array/map","@config.chapters",["fn","chapter",{"action":"OPEN_CHAPTER","actionPayload":{"index":"@index"},"aria-current":["if",["==","@index","@entity.chapterIndex"],"page","false"],"className":["if",["==","@index","@entity.chapterIndex"],"h-auto justify-start text-start text-foreground font-semibold","h-auto justify-start text-start"],"label":["object/get","@chapter","title",""],"type":"button","variant":"link"}]],"direction":"vertical","gap":"none","type":"stack"}],"className":"lg:sticky lg:top-6 self-start","direction":"vertical","gap":"xs","type":"stack"},{"children":[{"children":[{"color":"muted","content":"@entity.progressLabel","type":"typography","variant":"caption"},{"className":"tracking-tight","content":"@entity.chapterTitle","size":"3xl","type":"typography","variant":"h1","weight":"bold"}],"direction":"vertical","gap":"lg","role":"status","type":"stack"},{"content":"@entity.chapterContent","direction":"@config.direction","type":"markdown-content"},{"type":"divider"},{"children":[{"action":"PREV_CHAPTER","disabled":"@entity.isFirst","label":"@config.previousLabel","leftIcon":["if",["==","@config.direction","rtl"],"chevron-right","chevron-left"],"type":"button","variant":"secondary"},{"action":"NEXT_CHAPTER","disabled":"@entity.isLast","label":"@config.nextLabel","rightIcon":["if",["==","@config.direction","rtl"],"chevron-left","chevron-right"],"type":"button","variant":"primary"}],"direction":"horizontal","gap":"md","justify":"between","type":"stack"}],"direction":"vertical","gap":"lg","type":"stack"}],"gap":"xl","ratio":"1:3","type":"split"}],"maxWidth":"xl","padding":"lg","size":"xl","type":"container"}],"dir":"@config.direction","fullWidth":true,"paddingY":"xl","type":"box"} @label "Reading body" @tier "internal"
|
|
20340
20779
|
startLabel : string = "Start reading" @label "Start button label" @tier "presentation"
|
|
20341
20780
|
subtitle : string = "" @label "Subtitle" @tier "presentation"
|
|
20342
20781
|
title : string = "Untitled book" @label "Title" @tier "presentation"
|
|
@@ -20426,9 +20865,9 @@ trait std-calendar.traits.CalendarEventCalendar {
|
|
|
20426
20865
|
config {
|
|
20427
20866
|
agendaGroupBy : string = "date" @label "Agenda group-by field" @description "Row field the agenda list groups its day sections by. Rebound hosts point this at their own timestamp column (e.g. startTime, scheduledAt)." @synonyms "group field, section field, day field" @tier "presentation"
|
|
20428
20867
|
agendaItemActions : [ItemAction] = [] @label "Agenda item actions" @description "Per-item action buttons on agenda-list rows — data-list itemActions descriptors (label/event/icon/variant). Consumers override to wire their own row actions (View/Edit/Delete) so agenda hosts never need a second table for actions." @synonyms "agenda actions, row actions, event actions, list actions" @tier "presentation"
|
|
20429
|
-
agendaListBodyContent : render-ui = {"children":[{"align":"center","children":[{"align":"center","children":[{"name":"list","size":"xl","type":"icon"},{"content":"
|
|
20868
|
+
agendaListBodyContent : render-ui = {"children":[{"align":"center","children":[{"align":"center","children":[{"name":"list","size":"xl","type":"icon"},{"content":"@config.title","type":"typography","variant":"h2"}],"direction":"horizontal","gap":"sm","type":"stack"},{"onSelect":"SELECT_DAY","selected":"@entity.selectedRange","type":"date-range-selector"}],"direction":"horizontal","gap":"md","justify":"between","type":"stack","wrap":true},["if","@config.bodySearch",{"children":[{"className":"w-full max-w-md","clearable":true,"event":"REFETCH_QUERY","placeholder":"@config.searchPlaceholder","type":"search-input"}],"direction":"horizontal","gap":"sm","type":"stack"},{"children":[],"gap":"none","type":"stack"}],["if",[">",["array/len","@config.filters"],0],{"children":[{"entity":"CalendarEvent","event":"REFETCH_FILTER","filters":"@config.filters","look":"@config.filterBarLook","type":"filter-group"}],"direction":"horizontal","gap":"sm","type":"stack"},{"children":[],"gap":"none","type":"stack"}],{"type":"divider"},{"entity":"@payload.data","fields":[],"gap":"md","groupBy":"@config.agendaGroupBy","groupFormat":"date","itemActions":["array/filter","@config.agendaItemActions",["fn","action",["or",["=",["array/len",["object/get","@action","roles",[]]],0],["array/includes",["object/get","@action","roles",[]],"@config.viewerRole"]]]],"renderItem":["fn","item",{"children":[{"align":"start","children":[{"align":"center","children":[{"color":"muted","content":"@config.timeBinding","format":"time","type":"typography","variant":"overline"},{"className":"hidden sm:block","color":"muted","name":"clock","size":"sm","type":"icon"}],"className":"w-14 sm:w-16 shrink-0","direction":"vertical","gap":"xs","type":"stack"},{"className":"hidden sm:block","orientation":"vertical","type":"divider"},{"children":[{"align":"center","children":[{"className":"min-w-[8rem] flex-1 line-clamp-2 break-words","content":"@config.titleBinding","type":"typography","variant":"h4","weight":"medium"},{"className":"shrink-0 whitespace-nowrap","label":"@config.badgeBinding","size":"sm","type":"badge","variant":"default"}],"direction":"horizontal","gap":"sm","justify":"between","type":"stack","wrap":true},{"className":"truncate","color":"muted","content":"@config.descriptionBinding","type":"typography","variant":"body2"}],"className":"flex-1 min-w-0","direction":"vertical","gap":"xs","type":"stack"}],"direction":"horizontal","gap":"md","type":"stack"}],"look":"flat-bordered","padding":"md","type":"card"}],"surface":"none","type":"data-list","variant":"default"}],"className":"w-full p-card-md","direction":"vertical","gap":"lg","type":"stack"} @label "Agenda list body content tree" @description "Render-ui SExpr for calendarLook='agenda-list' — events grouped by day with overline day headers (Today, Tomorrow, …) and a time marker per event." @tier "internal"
|
|
20430
20869
|
badgeBinding : string = "@item.status" @label "Badge binding" @description "Per-row binding for the event status/badge slot." @tier "presentation"
|
|
20431
|
-
bodyContent : render-ui = {"children":[{"align":"center","children":[{"align":"center","children":[{"name":"calendar","size":"xl","type":"icon"},{"content":"@config.title","type":"typography","variant":"h2"}],"direction":"horizontal","gap":"sm","type":"stack"},{"onSelect":"SELECT_DAY","selected":"@entity.selectedRange","type":"date-range-selector"}],"direction":"horizontal","gap":"md","justify":"between","type":"stack"},["if","@config.bodySearch",{"children":[{"className":"w-full max-w-md","clearable":true,"event":"REFETCH_QUERY","placeholder":"@config.searchPlaceholder","type":"search-input"}],"direction":"horizontal","gap":"sm","type":"stack"},{"children":[],"gap":"none","type":"stack"}],["if",[">",["array/len","@config.filters"],0],{"children":[{"entity":"CalendarEvent","event":"REFETCH_FILTER","filters":"@config.filters","look":"@config.filterBarLook","type":"filter-group"}],"direction":"horizontal","gap":"sm","type":"stack"},{"children":[],"gap":"none","type":"stack"}],{"type":"divider"},{"events":"@payload.data","onEventClick":"@config.onEventClick","renderItem":["fn","item",{"content":"@config.titleBinding","type":"typography","variant":"small"}],"startField":"@config.startField","type":"calendar-grid"},{"type":"divider"},{"content":"Upcoming Events","type":"typography","variant":"h4"},{"entity":"@payload.data","fields":"@config.fields","itemActions":["array/filter","@config.agendaItemActions",["fn","action",["or",["=",["array/len",["object/get","@action","roles",[]]],0],["array/includes",["object/get","@action","roles",[]],"@config.viewerRole"]]]],"look":"@config.tableLook","type":"data-list"}],"direction":"vertical","gap":"lg","type":"stack"} @label "Body content tree" @description "Render-ui SExpr rendered after events load for calendarLook='month' — the month-grid + upcoming-events list. calendarLook='agenda-list' / 'week-timeline' render agendaListBodyContent / weekTimelineBodyContent instead; all three share this trait's state machine, emits, and listens." @tier "internal"
|
|
20870
|
+
bodyContent : render-ui = {"children":[{"align":"center","children":[{"align":"center","children":[{"name":"calendar","size":"xl","type":"icon"},{"content":"@config.title","type":"typography","variant":"h2"}],"direction":"horizontal","gap":"sm","type":"stack"},{"onSelect":"SELECT_DAY","selected":"@entity.selectedRange","type":"date-range-selector"}],"direction":"horizontal","gap":"md","justify":"between","type":"stack","wrap":true},["if","@config.bodySearch",{"children":[{"className":"w-full max-w-md","clearable":true,"event":"REFETCH_QUERY","placeholder":"@config.searchPlaceholder","type":"search-input"}],"direction":"horizontal","gap":"sm","type":"stack"},{"children":[],"gap":"none","type":"stack"}],["if",[">",["array/len","@config.filters"],0],{"children":[{"entity":"CalendarEvent","event":"REFETCH_FILTER","filters":"@config.filters","look":"@config.filterBarLook","type":"filter-group"}],"direction":"horizontal","gap":"sm","type":"stack"},{"children":[],"gap":"none","type":"stack"}],{"type":"divider"},{"events":"@payload.data","onEventClick":"@config.onEventClick","renderItem":["fn","item",{"content":"@config.titleBinding","type":"typography","variant":"small"}],"startField":"@config.startField","type":"calendar-grid"},{"type":"divider"},{"content":"Upcoming Events","type":"typography","variant":"h4"},{"entity":"@payload.data","fields":"@config.fields","itemActions":["array/filter","@config.agendaItemActions",["fn","action",["or",["=",["array/len",["object/get","@action","roles",[]]],0],["array/includes",["object/get","@action","roles",[]],"@config.viewerRole"]]]],"look":"@config.tableLook","type":"data-list"}],"direction":"vertical","gap":"lg","type":"stack"} @label "Body content tree" @description "Render-ui SExpr rendered after events load for calendarLook='month' — the month-grid + upcoming-events list. calendarLook='agenda-list' / 'week-timeline' render agendaListBodyContent / weekTimelineBodyContent instead; all three share this trait's state machine, emits, and listens." @tier "internal"
|
|
20432
20871
|
bodySearch : boolean = false @label "Show the calendar's own search box?" @description "Embeds a title search box in the toolbar above the calendar body (all three calendarLook trees). Defaults false: std-calendar has never had a search box, so an untouched consumer's surface is unchanged; the primary path is composing std-search beside this atom and wiring XSearch.SEARCH -> REFETCH_QUERY. Set true only for a standalone calendar with no page-level search affordance." @synonyms "inline search, calendar search, built-in search, show search, duplicate search" @tier "presentation"
|
|
20433
20872
|
calendarLook : string = "month" @label "Calendar look" @description "Layer 3 body layout: default month-grid + upcoming-events list ('month'), day-grouped agenda list ('agenda-list'), or 7-column week timeline ('week-timeline')." @tier "presentation" @values (month agenda-list week-timeline)
|
|
20434
20873
|
descriptionBinding : string = "@item.description" @label "Description binding" @description "Per-row binding for the event description slot." @tier "presentation"
|
|
@@ -20445,7 +20884,7 @@ trait std-calendar.traits.CalendarEventCalendar {
|
|
|
20445
20884
|
title : string = "Calendar" @label "Title" @description "Header text shown above the calendar body." @tier "presentation"
|
|
20446
20885
|
titleBinding : string = "@item.name" @label "Title binding" @description "Per-row binding for the event title slot." @tier "presentation"
|
|
20447
20886
|
viewerRole : string = "" @label "Viewer's role" @description "The signed-in viewer's role that each action's `roles` is checked against. Bind it explicitly at the call site (e.g. `viewerRole: @user.role`) in an app whose identity carries a role; left empty, only actions with no `roles` show." @tier "policy"
|
|
20448
|
-
weekTimelineBodyContent : render-ui = {"children":[{"align":"center","children":[{"align":"center","children":[{"name":"calendar","size":"xl","type":"icon"},{"content":"
|
|
20887
|
+
weekTimelineBodyContent : render-ui = {"children":[{"align":"center","children":[{"align":"center","children":[{"name":"calendar","size":"xl","type":"icon"},{"content":"@config.title","type":"typography","variant":"h2"}],"direction":"horizontal","gap":"sm","type":"stack"},{"align":"center","children":[{"action":"CALENDAR_PREV_WEEK","icon":"chevron-left","label":"Previous week","type":"button","variant":"ghost"},{"color":"muted","content":["time/format","@entity.weekAnchor","MMM D, YYYY"],"type":"typography","variant":"caption"},{"action":"CALENDAR_NEXT_WEEK","icon":"chevron-right","label":"Next week","type":"button","variant":"ghost"}],"direction":"horizontal","gap":"xs","type":"stack"},{"onSelect":"SELECT_DAY","selected":"@entity.selectedRange","type":"date-range-selector"}],"direction":"horizontal","gap":"md","justify":"between","type":"stack","wrap":true},["if","@config.bodySearch",{"children":[{"className":"w-full max-w-md","clearable":true,"event":"REFETCH_QUERY","placeholder":"@config.searchPlaceholder","type":"search-input"}],"direction":"horizontal","gap":"sm","type":"stack"},{"children":[],"gap":"none","type":"stack"}],["if",[">",["array/len","@config.filters"],0],{"children":[{"entity":"CalendarEvent","event":"REFETCH_FILTER","filters":"@config.filters","look":"@config.filterBarLook","type":"filter-group"}],"direction":"horizontal","gap":"sm","type":"stack"},{"children":[],"gap":"none","type":"stack"}],{"type":"divider"},{"className":"w-full","dayWindow":7,"events":"@payload.data","onEventClick":"@config.onEventClick","renderItem":["fn","item",{"content":"@config.titleBinding","type":"typography","variant":"small"}],"startField":"@config.startField","swipeLeftEvent":"CALENDAR_NEXT_WEEK","swipeRightEvent":"CALENDAR_PREV_WEEK","type":"calendar-grid","weekStart":"@entity.weekAnchor"}],"direction":"vertical","gap":"md","type":"stack"} @label "Week timeline body content tree" @description "Render-ui SExpr for calendarLook='week-timeline' — events grouped by weekday in a 7-column timeline window." @tier "internal"
|
|
20449
20888
|
}
|
|
20450
20889
|
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
20451
20890
|
source : "@almadar/std (behaviors/registry/ui/core/atoms/std-calendar.orb orbitals[0].traits[0])"
|
|
@@ -20820,6 +21259,31 @@ trait std-detail-layout.traits.DetailLayout {
|
|
|
20820
21259
|
source : "@almadar/std (behaviors/registry/ui/core/atoms/std-detail-layout.orb orbitals[0].traits[0])"
|
|
20821
21260
|
}
|
|
20822
21261
|
|
|
21262
|
+
;; From @almadar/std (behaviors/registry/ui/core/atoms/std-doc-page.orb orbitals[0].traits[0])
|
|
21263
|
+
trait std-doc-page.traits.DocPageRender {
|
|
21264
|
+
alias : DocPage
|
|
21265
|
+
linkedEntity : DocPageView
|
|
21266
|
+
category : interaction
|
|
21267
|
+
states : (idle*)
|
|
21268
|
+
events : (INIT)
|
|
21269
|
+
transitions : ((idle -> idle on INIT))
|
|
21270
|
+
config {
|
|
21271
|
+
content : render-ui = {"children":[],"direction":"vertical","gap":"lg","type":"stack"} @label "Content" @description "The page body: markdown, code and live behaviors (trait references) in reading order" @tier "presentation"
|
|
21272
|
+
crumbs : [DocCrumb] = [] @label "Breadcrumb" @description "Ancestors first, the current page last without a link; empty hides it" @tier "presentation"
|
|
21273
|
+
direction : string = "ltr" @label "Direction" @tier "presentation" @values (ltr rtl)
|
|
21274
|
+
lede : string = "" @label "Lede" @description "One or two sentences under the title; empty hides it" @tier "presentation"
|
|
21275
|
+
navItems : [DocNavItem] = [] @label "Sidebar" @description "The documentation tree; mark the current page active" @tier "presentation"
|
|
21276
|
+
next : DocLink = {"href":"","label":""} @label "Next page" @description "Empty href hides it" @tier "presentation"
|
|
21277
|
+
prev : DocLink = {"href":"","label":""} @label "Previous page" @description "Empty href hides it" @tier "presentation"
|
|
21278
|
+
sidebarLabel : string = "Documentation" @label "Sidebar label" @tier "presentation"
|
|
21279
|
+
title : string = "Untitled page" @label "Title" @tier "presentation"
|
|
21280
|
+
toc : [DocTocEntry] = [] @label "On this page" @description "Anchors of the page's sections (each section declares the same id); empty hides it" @tier "presentation"
|
|
21281
|
+
tocLabel : string = "On this page" @label "Contents label" @tier "presentation"
|
|
21282
|
+
}
|
|
21283
|
+
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
21284
|
+
source : "@almadar/std (behaviors/registry/ui/core/atoms/std-doc-page.orb orbitals[0].traits[0])"
|
|
21285
|
+
}
|
|
21286
|
+
|
|
20823
21287
|
;; From @almadar/std (behaviors/registry/ui/game/atoms/std-dungeon-combat.orb orbitals[0].traits[0])
|
|
20824
21288
|
trait std-dungeon-combat.traits.DungeonCombat {
|
|
20825
21289
|
alias : DungeonCombat
|
|
@@ -21319,10 +21783,12 @@ trait std-hero.traits.HeroRender {
|
|
|
21319
21783
|
emits : (CTA_PRIMARY CTA_SECONDARY)
|
|
21320
21784
|
config {
|
|
21321
21785
|
alignment : string = "center" @label "Alignment" @description "Center the copy, or align it to the start edge" @tier "presentation" @values (center start)
|
|
21786
|
+
backdropContent : render-ui = {"className":"hidden","type":"box"} @label "Backdrop" @description "A scene behind the whole block, such as an animated canvas; it fills the block, never takes clicks, and the copy stays on top. Empty by default." @tier "presentation"
|
|
21322
21787
|
command : string = "" @label "Command" @description "A shell command shown in a copyable code box under the actions, e.g. an install one-liner; empty hides it" @synonyms "install command, cli, terminal snippet" @tier "presentation"
|
|
21323
21788
|
copyContent : render-ui = {"align":["if",["==","@config.alignment","center"],"center","start"],"children":[{"label":"@config.eyebrow","size":"md","type":"badge","variant":"primary"},{"align":["if",["==","@config.alignment","center"],"center","left"],"className":"tracking-tight text-balance","content":"@config.headline","type":"typography","variant":["if",["==","@config.look","banner"],"h2","h1"],"weight":"bold"},{"align":["if",["==","@config.alignment","center"],"center","left"],"className":["if",["==","@config.lede",""],"hidden","max-w-2xl text-pretty"],"color":"muted","content":"@config.lede","type":"typography","variant":"large"},{"children":[{"action":"HERO_PRIMARY","actionPayload":{"href":"@config.primaryHref"},"className":["if",["==","@config.primaryLabel",""],"hidden",""],"href":"@config.primaryHref","label":"@config.primaryLabel","size":"lg","type":"button","variant":"primary"},{"action":"HERO_SECONDARY","actionPayload":{"href":"@config.secondaryHref"},"className":["if",["==","@config.secondaryLabel",""],"hidden",""],"href":"@config.secondaryHref","label":"@config.secondaryLabel","size":"lg","type":"button","variant":"secondary"}],"className":["if",["==","@config.primaryLabel",""],["if",["==","@config.secondaryLabel",""],"hidden","pt-2"],"pt-2"],"direction":"horizontal","gap":"md","justify":["if",["==","@config.alignment","center"],"center","start"],"type":"stack","wrap":true},{"children":[{"code":"@config.command","language":"bash","showCopyButton":true,"showLanguageBadge":false,"type":"code-block"}],"className":["if",["==","@config.command",""],"hidden","max-w-xl"],"fullWidth":true,"type":"box"}],"direction":"vertical","gap":"lg","type":"stack"} @label "Copy block" @tier "internal"
|
|
21324
21789
|
eyebrow : string = "" @label "Eyebrow" @description "Small badge above the headline; empty hides it" @synonyms "tag, kicker, label above title" @tier "presentation"
|
|
21325
21790
|
headline : string = "Build what you mean" @label "Headline" @description "Main headline" @synonyms "title, heading" @tier "presentation"
|
|
21791
|
+
height : string = "auto" @label "Height" @description "auto fits the copy; tall fills most of the screen with the copy centred, for a hero over a backdrop scene" @tier "presentation" @values (auto tall)
|
|
21326
21792
|
lede : string = "" @label "Supporting text" @description "One or two sentences under the headline; empty hides it" @synonyms "subtitle, subheading, description, tagline" @tier "presentation"
|
|
21327
21793
|
look : string = "hero" @label "Look" @description "hero = full-width page opener with an h1; banner = contained call-to-action card with an h2" @synonyms "cta banner, call to action, callout, page header, masthead" @tier "presentation" @values (hero banner)
|
|
21328
21794
|
mediaAlt : string = "" @label "Media alt text" @tier "presentation"
|
|
@@ -21333,8 +21799,8 @@ trait std-hero.traits.HeroRender {
|
|
|
21333
21799
|
primaryLabel : string = "Get started" @label "Primary action label" @description "Empty hides the primary action" @tier "presentation"
|
|
21334
21800
|
secondaryHref : string = "" @label "Secondary action link" @description "In-app path, #anchor, or absolute URL" @tier "presentation"
|
|
21335
21801
|
secondaryLabel : string = "" @label "Secondary action label" @description "Empty hides the secondary action" @tier "presentation"
|
|
21336
|
-
sideContent : render-ui = {"bg":["if",["==","@config.surface","muted"],"muted","transparent"],"children":[{"children":[{"bg":["if",["==","@config.look","banner"],"muted","transparent"],"border":["==","@config.look","banner"],"children":[{"align":"center","children":["@config.copyContent","@config.mediaContent"],"gap":"xl","ratio":"1:1","type":"split"}],"padding":["if",["==","@config.look","banner"],"xl","none"],"rounded":["if",["==","@config.look","banner"],"2xl","none"],"type":"box"}],"maxWidth":"xl","padding":"lg","size":"xl","type":"container"}],"fullWidth":true,"paddingY":["if",["==","@config.look","banner"],"xl","2xl"],"type":"box"} @label "Side-by-side body" @tier "internal"
|
|
21337
|
-
stackedContent : render-ui = {"bg":["if",["==","@config.surface","muted"],"muted","transparent"],"children":[{"children":[{"bg":["if",["==","@config.look","banner"],"muted","transparent"],"border":["==","@config.look","banner"],"children":[{"align":["if",["==","@config.alignment","center"],"center","stretch"],"children":["@config.copyContent","@config.mediaContent"],"direction":"vertical","gap":"2xl","type":"stack"}],"padding":["if",["==","@config.look","banner"],"xl","none"],"rounded":["if",["==","@config.look","banner"],"2xl","none"],"type":"box"}],"maxWidth":"xl","padding":"lg","size":"xl","type":"container"}],"fullWidth":true,"paddingY":["if",["==","@config.look","banner"],"xl","2xl"],"type":"box"} @label "Stacked body" @tier "internal"
|
|
21802
|
+
sideContent : render-ui = {"bg":["if",["==","@config.surface","muted"],"muted","transparent"],"children":[{"aria-hidden":true,"children":["@config.backdropContent"],"className":"inset-0 pointer-events-none","position":"absolute","type":"box"},{"children":[{"children":[{"bg":["if",["==","@config.look","banner"],"muted","transparent"],"border":["==","@config.look","banner"],"children":[{"align":"center","children":["@config.copyContent","@config.mediaContent"],"gap":"xl","ratio":"1:1","type":"split"}],"padding":["if",["==","@config.look","banner"],"xl","none"],"rounded":["if",["==","@config.look","banner"],"2xl","none"],"type":"box"}],"maxWidth":"xl","padding":"lg","size":"xl","type":"container"}],"fullWidth":true,"position":"relative","type":"box"}],"className":["if",["==","@config.height","tall"],"flex min-h-[80vh] items-center",""],"fullWidth":true,"overflow":"hidden","paddingY":["if",["==","@config.look","banner"],"xl","2xl"],"position":"relative","type":"box"} @label "Side-by-side body" @tier "internal"
|
|
21803
|
+
stackedContent : render-ui = {"bg":["if",["==","@config.surface","muted"],"muted","transparent"],"children":[{"aria-hidden":true,"children":["@config.backdropContent"],"className":"inset-0 pointer-events-none","position":"absolute","type":"box"},{"children":[{"children":[{"bg":["if",["==","@config.look","banner"],"muted","transparent"],"border":["==","@config.look","banner"],"children":[{"align":["if",["==","@config.alignment","center"],"center","stretch"],"children":["@config.copyContent","@config.mediaContent"],"direction":"vertical","gap":"2xl","type":"stack"}],"padding":["if",["==","@config.look","banner"],"xl","none"],"rounded":["if",["==","@config.look","banner"],"2xl","none"],"type":"box"}],"maxWidth":"xl","padding":"lg","size":"xl","type":"container"}],"fullWidth":true,"position":"relative","type":"box"}],"className":["if",["==","@config.height","tall"],"flex min-h-[80vh] items-center",""],"fullWidth":true,"overflow":"hidden","paddingY":["if",["==","@config.look","banner"],"xl","2xl"],"position":"relative","type":"box"} @label "Stacked body" @tier "internal"
|
|
21338
21804
|
surface : string = "plain" @label "Surface" @description "Background behind the block" @tier "presentation" @values (plain muted)
|
|
21339
21805
|
}
|
|
21340
21806
|
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
@@ -21442,8 +21908,8 @@ trait std-learn-arrangement.traits.LearnArrangementSim {
|
|
|
21442
21908
|
linkedEntity : LearnArrangementScene
|
|
21443
21909
|
category : interaction
|
|
21444
21910
|
states : (idle*)
|
|
21445
|
-
events : (INIT MODE_SELECTED PLACE UNDO CHECK RETRY ARRANGEMENT_CHECKED ARRANGEMENT_RESET LEARN_ROUND_COMPLETE)
|
|
21446
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on PLACE) (idle -> idle on UNDO) (idle -> idle on CHECK) (idle -> idle on RETRY))
|
|
21911
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED PLACE UNDO CHECK RETRY ARRANGEMENT_CHECKED ARRANGEMENT_RESET LEARN_ROUND_COMPLETE)
|
|
21912
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on PLACE) (idle -> idle on UNDO) (idle -> idle on CHECK) (idle -> idle on RETRY))
|
|
21447
21913
|
emits : (ARRANGEMENT_CHECKED ARRANGEMENT_RESET LEARN_ROUND_COMPLETE)
|
|
21448
21914
|
config {
|
|
21449
21915
|
animate : boolean = false @label "Animate" @description "Enable continuous redraw loop." @tier "presentation"
|
|
@@ -21457,6 +21923,7 @@ trait std-learn-arrangement.traits.LearnArrangementSim {
|
|
|
21457
21923
|
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
21458
21924
|
pendingColor : string = "series-2" @label "Pending Slot Color" @description "Fill color for a filled slot before grading." @tier "presentation"
|
|
21459
21925
|
retryLabel : string = "Retry" @label "Retry Button Label" @tier "presentation"
|
|
21926
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the roster comes from: config reads the items knob(s) at INIT; event waits for ROSTER_LOADED and takes the roster from its payload." @tier "domain" @values (config event)
|
|
21460
21927
|
slotBorderColor : string = "ink" @label "Slot Border Color" @tier "presentation"
|
|
21461
21928
|
slotFontSize : string = "sm" @label "Slot Text Size" @description "Slot label size role: xs, sm, base or lg." @tier "presentation"
|
|
21462
21929
|
slotHeight : number = 60 @label "Slot Height (px)" @tier "presentation"
|
|
@@ -21480,8 +21947,8 @@ trait std-learn-classify.traits.LearnClassifySim {
|
|
|
21480
21947
|
linkedEntity : LearnClassifyScene
|
|
21481
21948
|
category : interaction
|
|
21482
21949
|
states : (idle*)
|
|
21483
|
-
events : (INIT MODE_SELECTED PICK ADVANCE RETRY TOGGLE_RUN CLASSIFY_UPDATED LEARN_ROUND_COMPLETE)
|
|
21484
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on PICK) (idle -> idle on ADVANCE) (idle -> idle on RETRY) (idle -> idle on TOGGLE_RUN))
|
|
21950
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED PICK ADVANCE RETRY TOGGLE_RUN CLASSIFY_UPDATED LEARN_ROUND_COMPLETE)
|
|
21951
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on PICK) (idle -> idle on ADVANCE) (idle -> idle on RETRY) (idle -> idle on TOGGLE_RUN))
|
|
21485
21952
|
emits : (CLASSIFY_UPDATED LEARN_ROUND_COMPLETE)
|
|
21486
21953
|
config {
|
|
21487
21954
|
advanceLabel : string = "Next" @label "Advance Button Label" @description "Label text for the button that advances to the next item." @tier "presentation"
|
|
@@ -21502,6 +21969,7 @@ trait std-learn-classify.traits.LearnClassifySim {
|
|
|
21502
21969
|
penaltyPerMiss : number = 0 @label "Penalty Per Miss" @description "Rubric points subtracted for each incorrect pick (score never drops below 0)." @tier "domain"
|
|
21503
21970
|
pointsPerCorrect : number = 1 @label "Points Per Correct" @description "Rubric points added to the score for each correct pick; at the default 1 with no penalty, the plain correct/attempted counts render instead of the rubric score." @tier "domain"
|
|
21504
21971
|
retryLabel : string = "Retry Round" @label "Retry Button Label" @description "Label text for the button that restarts the round from the end-of-round summary." @tier "presentation"
|
|
21972
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the roster comes from: config reads the items/categories knob(s) at INIT; event waits for ROSTER_LOADED and takes the roster from its payload." @tier "domain" @values (config event)
|
|
21505
21973
|
scoreCap : number = 0 @label "Score Cap" @description "Upper bound on the rubric score; 0 means uncapped." @tier "domain"
|
|
21506
21974
|
showHint : boolean = true @label "Show Hint" @description "Show each item's hint line beneath the prompt before the learner picks; hide for a harder drill." @tier "domain"
|
|
21507
21975
|
summary : string = "" @label "Concept" @description "One line under the title saying what is being classified (keep it under ~65 characters). Empty shows no line." @tier "presentation"
|
|
@@ -21562,8 +22030,8 @@ trait std-learn-coupled-sim.traits.CoupledSimSim {
|
|
|
21562
22030
|
linkedEntity : CoupledSimScene
|
|
21563
22031
|
category : interaction
|
|
21564
22032
|
states : (idle*)
|
|
21565
|
-
events : (INIT MODE_SELECTED TOGGLE_RUN SPEED_SET RUN PAUSE RESET SET_A SET_B SHOCK RUN_TOGGLED SIM_RESET COEFS_CHANGED SHOCK_APPLIED)
|
|
21566
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on TOGGLE_RUN) (idle -> idle on SPEED_SET) (idle -> idle on RUN) (idle -> idle on PAUSE) (idle -> idle on RESET) (idle -> idle on SET_A) (idle -> idle on SET_B) (idle -> idle on SHOCK))
|
|
22033
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED TOGGLE_RUN SPEED_SET RUN PAUSE RESET SET_A SET_B SHOCK RUN_TOGGLED SIM_RESET COEFS_CHANGED SHOCK_APPLIED)
|
|
22034
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on TOGGLE_RUN) (idle -> idle on SPEED_SET) (idle -> idle on RUN) (idle -> idle on PAUSE) (idle -> idle on RESET) (idle -> idle on SET_A) (idle -> idle on SET_B) (idle -> idle on SHOCK))
|
|
21567
22035
|
emits : (RUN_TOGGLED SIM_RESET COEFS_CHANGED SHOCK_APPLIED)
|
|
21568
22036
|
config {
|
|
21569
22037
|
autoRun : boolean = true @label "Auto Run" @description "Whether the simulation starts running immediately on load." @tier "domain"
|
|
@@ -21583,13 +22051,14 @@ trait std-learn-coupled-sim.traits.CoupledSimSim {
|
|
|
21583
22051
|
gridStep : number = 50 @label "Grid Step" @tier "presentation"
|
|
21584
22052
|
height : number = 360 @label "Height" @tier "presentation"
|
|
21585
22053
|
kind : string = "predator-prey" @label "Interaction Family" @description "Which coupled dynamics govern the two quantities: predator-prey (oscillating cycles), epidemic (S and I with transmission and recovery), or kinetics (A decaying into B)." @synonyms "predator prey, Lotka-Volterra, SIR, epidemic, reaction kinetics, coupled ODE" @tier "domain"
|
|
21586
|
-
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
22054
|
+
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT (or on ROSTER_LOADED when rosterSource is event)." @tier "presentation"
|
|
21587
22055
|
pColor : string = "series-1" @label "P Color" @tier "presentation"
|
|
21588
22056
|
pLabel : string = "Prey" @label "P Label" @description "Display name of the first quantity." @tier "domain"
|
|
21589
22057
|
pStart : number = 120 @label "P Start" @tier "domain"
|
|
21590
22058
|
qColor : string = "series-2" @label "Q Color" @tier "presentation"
|
|
21591
22059
|
qLabel : string = "Predators" @label "Q Label" @description "Display name of the second quantity." @tier "domain"
|
|
21592
22060
|
qStart : number = 40 @label "Q Start" @tier "domain"
|
|
22061
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the system definition (taskText, kind, pLabel, qLabel, pStart, qStart, coefALabel, coefBLabel) comes from: config reads those knobs at INIT; event waits for ROSTER_LOADED and takes them from its payload." @tier "domain" @values (config event)
|
|
21593
22062
|
shockDownLabel : string = "− Prey cull" @label "Shock Down Label" @tier "presentation"
|
|
21594
22063
|
shockSize : number = 40 @label "Shock Size" @description "How much of the first quantity a shock button injects or removes." @tier "domain"
|
|
21595
22064
|
shockUpLabel : string = "+ Prey burst" @label "Shock Up Label" @tier "presentation"
|
|
@@ -21610,8 +22079,8 @@ trait std-learn-derivation.traits.LearnDerivationSim {
|
|
|
21610
22079
|
linkedEntity : LearnDerivationScene
|
|
21611
22080
|
category : interaction
|
|
21612
22081
|
states : (idle*)
|
|
21613
|
-
events : (INIT MODE_SELECTED APPLY_STEP TOGGLE_RUN RESET DERIVATION_UPDATED LEARN_ROUND_COMPLETE)
|
|
21614
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on APPLY_STEP) (idle -> idle on TOGGLE_RUN) (idle -> idle on RESET))
|
|
22082
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED APPLY_STEP TOGGLE_RUN RESET DERIVATION_UPDATED LEARN_ROUND_COMPLETE)
|
|
22083
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on APPLY_STEP) (idle -> idle on TOGGLE_RUN) (idle -> idle on RESET))
|
|
21615
22084
|
emits : (DERIVATION_UPDATED LEARN_ROUND_COMPLETE)
|
|
21616
22085
|
config {
|
|
21617
22086
|
autoApplyIntervalMs : number = 800 @label "Auto-Apply Interval (ms)" @description "Milliseconds of running clock per automatic candidate application — the 32ms base tick accumulates elapsed time and applies the first applicable candidate each time this interval elapses." @tier "domain"
|
|
@@ -21628,6 +22097,7 @@ trait std-learn-derivation.traits.LearnDerivationSim {
|
|
|
21628
22097
|
noStepAvailableMessage : string = "No further steps are available yet." @label "No Step Available Message" @description "Feedback shown when the auto-apply tick finds no applicable candidate." @tier "presentation"
|
|
21629
22098
|
premises : [LearnDerivationLine] = [{"badgeLabel":"GIVEN","badgeVariant":"neutral","id":"given-a","kind":"fact","label":"A","negated":false,"subject":"A"},{"badgeLabel":"RULE","badgeVariant":"info","id":"given-a-implies-b","kind":"link","label":"A → B","leftNegated":false,"leftSubject":"A","rightNegated":false,"rightSubject":"B"}] @label "Premises" @description "The starting lines of the derivation: plain facts (subject/negated) and two-sided links (leftSubject/leftNegated/rightSubject/rightNegated) the learner combines with candidate steps. Each line carries its own badgeLabel/badgeVariant." @synonyms "premise, given, starting line, hypothesis, starting statement" @tier "domain"
|
|
21630
22099
|
resetLabel : string = "Reset" @label "Reset Button Label" @description "Label text for the button that restores the starting premises." @tier "presentation"
|
|
22100
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the roster comes from: config reads the premises/candidates knob(s) at INIT; event waits for ROSTER_LOADED and takes the roster from its payload." @tier "domain" @values (config event)
|
|
21631
22101
|
summary : string = "" @label "Concept" @description "One line under the title saying what is being derived (keep it under ~65 characters). Empty shows no line." @tier "presentation"
|
|
21632
22102
|
title : string = "Derivation Lab" @label "Title" @description "Title shown above the derivation panel." @tier "presentation"
|
|
21633
22103
|
width : number = 600 @label "Width" @description "Maximum width of the panel, in pixels." @tier "presentation"
|
|
@@ -21642,8 +22112,8 @@ trait std-learn-diagram.traits.LearnDiagramSim {
|
|
|
21642
22112
|
linkedEntity : LearnDiagramScene
|
|
21643
22113
|
category : interaction
|
|
21644
22114
|
states : (idle*)
|
|
21645
|
-
events : (INIT MODE_SELECTED SELECT_PART CLEAR_PART PART_SELECTED SELECTION_CLEARED)
|
|
21646
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on SELECT_PART) (idle -> idle on CLEAR_PART))
|
|
22115
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED SELECT_PART CLEAR_PART PART_SELECTED SELECTION_CLEARED)
|
|
22116
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on SELECT_PART) (idle -> idle on CLEAR_PART))
|
|
21647
22117
|
emits : (PART_SELECTED SELECTION_CLEARED)
|
|
21648
22118
|
config {
|
|
21649
22119
|
backgroundColor : string = "" @label "Background Color" @description "Canvas ground. Empty uses the theme drawing ground." @tier "presentation"
|
|
@@ -21654,6 +22124,7 @@ trait std-learn-diagram.traits.LearnDiagramSim {
|
|
|
21654
22124
|
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
21655
22125
|
overviewText : string = "Select a part below to learn what it does." @label "Overview Text" @description "Caption card text shown when no part is selected." @tier "presentation"
|
|
21656
22126
|
parts : [LearnDiagramPart] = [{"color":"series-1","description":"Receives raw data or requests from the outside world and hands them to the processor.","id":"input","label":"Input","radius":34,"x":120,"y":200},{"color":"series-2","description":"The central component that transforms incoming data according to the system's rules.","id":"processor","label":"Processor","radius":46,"x":300,"y":200},{"color":"series-3","description":"Persists data so it can be retrieved later, even after the system restarts.","id":"storage","label":"Storage","radius":34,"x":300,"y":320},{"color":"series-4","description":"Delivers the processor's results back out to users or other systems.","id":"output","label":"Output","radius":34,"x":480,"y":200},{"color":"series-5","description":"Coordinates timing and configuration for the processor without touching the data itself.","id":"controller","label":"Controller","radius":26,"x":300,"y":80}] @label "Parts" @description "Roster of labeled parts (id, label, description, x, y, radius, color) the diagram renders as circles; the learner selects one to see its description." @synonyms "part, node, component, label, annotation" @tier "domain"
|
|
22127
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the parts and links roster comes from: config reads the parts and links knobs at INIT; event waits for ROSTER_LOADED and takes the roster from its payload." @tier "domain" @values (config event)
|
|
21657
22128
|
summary : string = "" @label "Concept" @description "One line under the title saying what the learner is looking at (keep it under ~65 characters). Empty shows no line." @tier "presentation"
|
|
21658
22129
|
title : string = "System Diagram" @label "Title" @description "Title shown above the diagram." @tier "presentation"
|
|
21659
22130
|
width : number = 600 @label "Width" @description "Canvas width in pixels." @tier "presentation"
|
|
@@ -21668,8 +22139,8 @@ trait std-learn-doser.traits.LearnDoserSim {
|
|
|
21668
22139
|
linkedEntity : DoserScene
|
|
21669
22140
|
category : interaction
|
|
21670
22141
|
states : (idle*)
|
|
21671
|
-
events : (INIT MODE_SELECTED ADD_SMALL ADD_LARGE TOGGLE_DRIP RESET DOSE_ADDED DOSE_RESET DOSER_UPDATED LEARN_ROUND_COMPLETE)
|
|
21672
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ADD_SMALL) (idle -> idle on ADD_LARGE) (idle -> idle on TOGGLE_DRIP) (idle -> idle on RESET))
|
|
22142
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED ADD_SMALL ADD_LARGE TOGGLE_DRIP RESET DOSE_ADDED DOSE_RESET DOSER_UPDATED LEARN_ROUND_COMPLETE)
|
|
22143
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ADD_SMALL) (idle -> idle on ADD_LARGE) (idle -> idle on TOGGLE_DRIP) (idle -> idle on RESET))
|
|
21673
22144
|
emits : (DOSE_ADDED DOSE_RESET DOSER_UPDATED LEARN_ROUND_COMPLETE)
|
|
21674
22145
|
config {
|
|
21675
22146
|
autoDrip : boolean = false @label "Auto Drip" @description "When true, INIT/MODE_SELECTED/Reset start the drip clock adding a small increment each interval; toggle live with the Auto-dose/Pause button." @tier "domain"
|
|
@@ -21682,6 +22153,7 @@ trait std-learn-doser.traits.LearnDoserSim {
|
|
|
21682
22153
|
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
21683
22154
|
quantityLabel : string = "Dose" @label "Quantity Label" @description "Label used for the accumulated-quantity readout and in the narration line." @synonyms "quantity, amount, dose, volume, level" @tier "domain"
|
|
21684
22155
|
reservoirLabel : string = "Reservoir" @label "Reservoir Label" @description "Label for the vessel that fills as dose accumulates." @synonyms "reservoir, beaker, tank, container, receiving vessel" @tier "presentation"
|
|
22156
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the band roster comes from: config reads the bands knob at INIT; event waits for ROSTER_LOADED and takes the roster from its payload." @tier "domain" @values (config event)
|
|
21685
22157
|
series : [string] = [] @label "Palette" @description "Overrides the theme's categorical palette on the canvas (series-1…N) — a subject's real-world color convention, such as indicator colors. Empty uses the theme's palette." @tier "presentation"
|
|
21686
22158
|
showCanvas : boolean = true @label "Show Canvas" @description "When true (the default, standalone use) the instrument renders its own reservoir/source canvas and narration below the control strip. Set false when a domain sibling trait composes this atom via @rebindable and owns the accurate scene render itself — then only the control strip (add/drip/reset buttons) embeds via @trait.<name>, avoiding a duplicate canvas." @tier "presentation"
|
|
21687
22159
|
sourceColor : string = "series-1" @label "Source Color" @description "Tone name for the source vessel fill (for example series-1)." @tier "presentation"
|
|
@@ -21704,8 +22176,8 @@ trait std-learn-estimate.traits.EstimateSim {
|
|
|
21704
22176
|
linkedEntity : EstimateScene
|
|
21705
22177
|
category : interaction
|
|
21706
22178
|
states : (idle*)
|
|
21707
|
-
events : (INIT MODE_SELECTED SET_ESTIMATE LOCK_IN NEXT RETRY ESTIMATE_JUDGED PROMPT_ADVANCED ROUND_RESTARTED LEARN_ROUND_COMPLETE)
|
|
21708
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on SET_ESTIMATE) (idle -> idle on LOCK_IN) (idle -> idle on NEXT) (idle -> idle on RETRY))
|
|
22179
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED SET_ESTIMATE LOCK_IN NEXT RETRY ESTIMATE_JUDGED PROMPT_ADVANCED ROUND_RESTARTED LEARN_ROUND_COMPLETE)
|
|
22180
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on SET_ESTIMATE) (idle -> idle on LOCK_IN) (idle -> idle on NEXT) (idle -> idle on RETRY))
|
|
21709
22181
|
emits : (ESTIMATE_JUDGED PROMPT_ADVANCED ROUND_RESTARTED LEARN_ROUND_COMPLETE)
|
|
21710
22182
|
config {
|
|
21711
22183
|
closePct : number = 0.25 @label "Close Band" @description "Relative error at or below this fraction (but above the exact band) counts as close (partial points)." @tier "domain"
|
|
@@ -21717,6 +22189,7 @@ trait std-learn-estimate.traits.EstimateSim {
|
|
|
21717
22189
|
nextLabel : string = "Next" @label "Next Label" @tier "presentation"
|
|
21718
22190
|
prompts : [EstimatePrompt] = [{"answer":300,"hint":"Light covers 300,000 km every second.","prompt":"How many meters does light travel in one microsecond?","unit":"m"},{"answer":212,"hint":"It is 100 °C.","prompt":"What is the boiling point of water at sea level, in Fahrenheit?","unit":"°F"},{"answer":11.6,"hint":"A day is 86,400 seconds.","prompt":"Roughly how many days is one million seconds?","unit":"days"}] @label "Prompts" @description "The question roster; each prompt carries the true numeric answer, an optional unit, and an optional hint. Realizations declare their own subject's quantities here." @tier "domain"
|
|
21719
22191
|
retryLabel : string = "Try Again" @label "Retry Label" @tier "presentation"
|
|
22192
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the prompt roster comes from: config reads the prompts knob at INIT; event waits for ROSTER_LOADED and takes the roster from its payload." @tier "domain" @values (config event)
|
|
21720
22193
|
sliderDefault : number = 100 @label "Slider Default" @description "Starting position of the estimate slider for each prompt." @tier "domain"
|
|
21721
22194
|
sliderMax : number = 500 @label "Slider Max" @description "Upper bound of the estimate slider." @tier "domain"
|
|
21722
22195
|
sliderMin : number = 0 @label "Slider Min" @description "Lower bound of the estimate slider." @tier "domain"
|
|
@@ -21758,8 +22231,8 @@ trait std-learn-goal-seek.traits.GoalSeekSim {
|
|
|
21758
22231
|
linkedEntity : GoalSeekScene
|
|
21759
22232
|
category : interaction
|
|
21760
22233
|
states : (idle*)
|
|
21761
|
-
events : (INIT MODE_SELECTED SET_PARAM_A SET_PARAM_B CHECK RESET PARAMS_CHANGED GOAL_CHECKED GOAL_RESET LEARN_ROUND_COMPLETE)
|
|
21762
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on SET_PARAM_A) (idle -> idle on SET_PARAM_B) (idle -> idle on CHECK) (idle -> idle on RESET))
|
|
22234
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED SET_PARAM_A SET_PARAM_B CHECK RESET PARAMS_CHANGED GOAL_CHECKED GOAL_RESET LEARN_ROUND_COMPLETE)
|
|
22235
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on SET_PARAM_A) (idle -> idle on SET_PARAM_B) (idle -> idle on CHECK) (idle -> idle on RESET))
|
|
21763
22236
|
emits : (PARAMS_CHANGED GOAL_CHECKED GOAL_RESET LEARN_ROUND_COMPLETE)
|
|
21764
22237
|
config {
|
|
21765
22238
|
checkLabel : string = "Check" @label "Check Label" @tier "presentation"
|
|
@@ -21769,7 +22242,7 @@ trait std-learn-goal-seek.traits.GoalSeekSim {
|
|
|
21769
22242
|
height : number = 400 @label "Height" @tier "presentation"
|
|
21770
22243
|
learnerColor : string = "series-2" @label "Learner Color" @tier "presentation"
|
|
21771
22244
|
learnerLabel : string = "Yours" @label "Learner Label" @tier "presentation"
|
|
21772
|
-
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
22245
|
+
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT (or on ROSTER_LOADED when rosterSource is event)." @tier "presentation"
|
|
21773
22246
|
paramADefault : number = 1 @label "Parameter A Default" @description "Starting value of the learner's first parameter." @tier "domain"
|
|
21774
22247
|
paramALabel : string = "A" @label "Parameter A Label" @description "Display label for the first parameter." @tier "presentation"
|
|
21775
22248
|
paramAMax : number = 5 @label "Parameter A Max" @tier "domain"
|
|
@@ -21780,6 +22253,7 @@ trait std-learn-goal-seek.traits.GoalSeekSim {
|
|
|
21780
22253
|
paramBMax : number = 5 @label "Parameter B Max" @tier "domain"
|
|
21781
22254
|
paramBMin : number = -5 @label "Parameter B Min" @tier "domain"
|
|
21782
22255
|
paramBStep : number = 0.1 @label "Parameter B Step" @tier "presentation"
|
|
22256
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the problem definition (goalText, curveKind, targetA, targetB) comes from: config reads those knobs at INIT; event waits for ROSTER_LOADED and takes them from its payload." @tier "domain" @values (config event)
|
|
21783
22257
|
showAxes : boolean = true @label "Show Axes" @tier "presentation"
|
|
21784
22258
|
showGrid : boolean = true @label "Show Grid" @tier "presentation"
|
|
21785
22259
|
showLiveDistance : boolean = true @label "Show Live Distance" @description "When true the RMS distance updates live as the learner tunes (warmer/colder); when false only attempts are shown, for a harder variant." @tier "domain"
|
|
@@ -21804,8 +22278,8 @@ trait std-learn-grid-sim.traits.GridSimSim {
|
|
|
21804
22278
|
linkedEntity : GridSimScene
|
|
21805
22279
|
category : interaction
|
|
21806
22280
|
states : (idle*)
|
|
21807
|
-
events : (INIT MODE_SELECTED TOGGLE_RUN SPEED_SET RUN PAUSE STEP TAP_CELL RESET RUN_TOGGLED GRID_STEPPED CELL_TOGGLED GRID_RESET)
|
|
21808
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on TOGGLE_RUN) (idle -> idle on SPEED_SET) (idle -> idle on RUN) (idle -> idle on PAUSE) (idle -> idle on STEP) (idle -> idle on TAP_CELL) (idle -> idle on RESET))
|
|
22281
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED TOGGLE_RUN SPEED_SET RUN PAUSE STEP TAP_CELL RESET RUN_TOGGLED GRID_STEPPED CELL_TOGGLED GRID_RESET)
|
|
22282
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on TOGGLE_RUN) (idle -> idle on SPEED_SET) (idle -> idle on RUN) (idle -> idle on PAUSE) (idle -> idle on STEP) (idle -> idle on TAP_CELL) (idle -> idle on RESET))
|
|
21809
22283
|
emits : (RUN_TOGGLED GRID_STEPPED CELL_TOGGLED GRID_RESET)
|
|
21810
22284
|
config {
|
|
21811
22285
|
autoRun : boolean = false @label "Auto Run" @description "Whether the evolution starts running immediately on load." @tier "domain"
|
|
@@ -21816,10 +22290,11 @@ trait std-learn-grid-sim.traits.GridSimSim {
|
|
|
21816
22290
|
diffuseRate : number = 0.5 @label "Diffuse Rate" @description "Diffusion rule only: how strongly a cell moves toward its neighbourhood average each generation." @tier "domain"
|
|
21817
22291
|
height : number = 332 @label "Height" @tier "presentation"
|
|
21818
22292
|
lowColor : string = "muted" @label "Low Color" @tier "presentation"
|
|
21819
|
-
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
22293
|
+
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT (or on ROSTER_LOADED when rosterSource is event)." @tier "presentation"
|
|
21820
22294
|
midColor : string = "series-3" @label "Mid Color" @tier "presentation"
|
|
21821
22295
|
offColor : string = "fill" @label "Off Color" @tier "presentation"
|
|
21822
22296
|
onColor : string = "series-2" @label "On Color" @tier "presentation"
|
|
22297
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the world definition (taskText, rule, rows, cols, seeds) comes from: config reads those knobs at INIT; event waits for ROSTER_LOADED and takes them from its payload." @tier "domain" @values (config event)
|
|
21823
22298
|
rows : number = 12 @label "Rows" @tier "domain"
|
|
21824
22299
|
rule : string = "life" @label "Rule" @description "The local update rule: life (Conway birth-3 survive-2-3), spread (an active 4-neighbour activates a cell), or diffusion (cells relax toward the neighbourhood average with decay)." @synonyms "game of life, contagion, wavefront, heat diffusion, cellular automaton rule" @tier "domain"
|
|
21825
22300
|
seeds : [number] = [1,18,32,33,34,88,89,90] @label "Seeds" @description "Flat cell indexes (row·cols + col) active at the start — the default plants a glider and a blinker. Realizations declare their own starting pattern here." @tier "domain"
|
|
@@ -21839,8 +22314,8 @@ trait std-learn-hotspot.traits.HotspotSim {
|
|
|
21839
22314
|
linkedEntity : HotspotScene
|
|
21840
22315
|
category : interaction
|
|
21841
22316
|
states : (idle*)
|
|
21842
|
-
events : (INIT MODE_SELECTED TAP_SHAPE NEXT RETRY TAP_JUDGED PROMPT_ADVANCED ROUND_RESTARTED LEARN_ROUND_COMPLETE)
|
|
21843
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on TAP_SHAPE) (idle -> idle on NEXT) (idle -> idle on RETRY))
|
|
22317
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED TAP_SHAPE NEXT RETRY TAP_JUDGED PROMPT_ADVANCED ROUND_RESTARTED LEARN_ROUND_COMPLETE)
|
|
22318
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on TAP_SHAPE) (idle -> idle on NEXT) (idle -> idle on RETRY))
|
|
21844
22319
|
emits : (TAP_JUDGED PROMPT_ADVANCED ROUND_RESTARTED LEARN_ROUND_COMPLETE)
|
|
21845
22320
|
config {
|
|
21846
22321
|
backgroundColor : string = "" @label "Background Color" @tier "presentation"
|
|
@@ -21850,6 +22325,7 @@ trait std-learn-hotspot.traits.HotspotSim {
|
|
|
21850
22325
|
nextLabel : string = "Next" @label "Next Label" @tier "presentation"
|
|
21851
22326
|
prompts : [HotspotPrompt] = [{"explanation":"The nucleus holds the DNA.","prompt":"Tap the part that stores the cell's genetic material.","targetId":"nucleus"},{"explanation":"Mitochondria run cellular respiration.","prompt":"Tap the part that produces the cell's energy.","targetId":"mitochondrion"},{"explanation":"Ribosomes translate mRNA into protein.","prompt":"Tap the part that builds proteins.","targetId":"ribosome"}] @label "Prompts" @description "The question roster; each prompt names a target hotspot id and an explanation revealed on a hit." @tier "domain"
|
|
21852
22327
|
retryLabel : string = "Try Again" @label "Retry Label" @tier "presentation"
|
|
22328
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the shapes and prompts roster comes from: config reads the shapes and prompts knobs at INIT; event waits for ROSTER_LOADED and takes the roster from its payload." @tier "domain" @values (config event)
|
|
21853
22329
|
shapes : [HotspotShape] = [{"color":"series-1","id":"nucleus","label":"Nucleus","radius":34,"x":300,"y":170},{"color":"series-2","id":"membrane","label":"Membrane","radius":26,"x":130,"y":120},{"color":"series-3","id":"mitochondrion","label":"Mitochondrion","radius":24,"x":460,"y":120},{"color":"series-4","id":"ribosome","label":"Ribosome","radius":18,"x":200,"y":280},{"color":"series-5","id":"vacuole","label":"Vacuole","radius":28,"x":420,"y":280}] @label "Hotspots" @description "The labeled parts of the scene; each carries an id, display label, canvas position, radius, and color. Realizations declare their own subject's parts here." @tier "domain"
|
|
21854
22330
|
summary : string = "" @label "Concept" @description "One line under the title saying what is being identified (keep it under ~65 characters). Empty shows no line." @tier "presentation"
|
|
21855
22331
|
title : string = "Tap the Part" @label "Title" @description "Title shown above the canvas." @tier "presentation"
|
|
@@ -21865,17 +22341,18 @@ trait std-learn-live-sim.traits.LiveSimSim {
|
|
|
21865
22341
|
linkedEntity : LiveSimScene
|
|
21866
22342
|
category : interaction
|
|
21867
22343
|
states : (idle*)
|
|
21868
|
-
events : (INIT MODE_SELECTED TOGGLE_RUN RUN PAUSE RESET SET_GRAVITY SET_DAMPING RUN_TOGGLED SIM_RESET)
|
|
21869
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on TOGGLE_RUN) (idle -> idle on RUN) (idle -> idle on PAUSE) (idle -> idle on RESET) (idle -> idle on SET_GRAVITY) (idle -> idle on SET_DAMPING))
|
|
22344
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED TOGGLE_RUN RUN PAUSE RESET SET_GRAVITY SET_DAMPING RUN_TOGGLED SIM_RESET)
|
|
22345
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on TOGGLE_RUN) (idle -> idle on RUN) (idle -> idle on PAUSE) (idle -> idle on RESET) (idle -> idle on SET_GRAVITY) (idle -> idle on SET_DAMPING))
|
|
21870
22346
|
emits : (RUN_TOGGLED SIM_RESET)
|
|
21871
22347
|
config {
|
|
21872
22348
|
backgroundColor : string = "" @label "Background Color" @description "Canvas ground override; empty uses the theme's drawing ground." @tier "presentation"
|
|
21873
|
-
bodies : [LiveSimBody] = [{"color":"series-1","id":"ball-a","radius":14,"vx":4,"vy":0,"x":100,"y":60},{"color":"series-2","id":"ball-b","radius":18,"vx":-3,"vy":2,"x":260,"y":90},{"color":"series-3","id":"ball-c","radius":11,"vx":2,"vy":-1,"x":420,"y":40}] @label "Bodies" @description "Initial bodies; each carries position (x,y), radius, color, and velocity (vx,vy). Restored on Reset." @tier "presentation"
|
|
22349
|
+
bodies : [LiveSimBody] = [{"color":"series-1","id":"ball-a","radius":14,"vx":4,"vy":0,"x":100,"y":60},{"color":"series-2","id":"ball-b","radius":18,"vx":-3,"vy":2,"x":260,"y":90},{"color":"series-3","id":"ball-c","radius":11,"vx":2,"vy":-1,"x":420,"y":40}] @label "Bodies" @description "Initial bodies; each carries position (x,y), radius, color, and velocity (vx,vy). Restored on Reset. Used when rosterSource is config." @tier "presentation"
|
|
21874
22350
|
damping : number = 0.995 @label "Damping" @description "Initial fraction of velocity retained each tick (air resistance); adjustable live via the Damping slider." @tier "domain"
|
|
21875
22351
|
gravity : number = 0.4 @label "Gravity" @description "Initial downward acceleration added to each body's vy every tick; adjustable live via the Gravity slider." @tier "domain"
|
|
21876
22352
|
height : number = 400 @label "Height" @description "Simulation height in pixels; bounds the bounce." @tier "presentation"
|
|
21877
|
-
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
22353
|
+
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT (or on ROSTER_LOADED when rosterSource is event)." @tier "presentation"
|
|
21878
22354
|
restitution : number = 0.78 @label "Restitution" @description "Fraction of speed kept when a body bounces off a wall." @tier "domain"
|
|
22355
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the body roster comes from: config reads the bodies knob at INIT; event waits for ROSTER_LOADED and takes the bodies from its payload." @tier "domain" @values (config event)
|
|
21879
22356
|
running : boolean = false @label "Running" @description "Whether the simulation starts already running on INIT." @tier "domain"
|
|
21880
22357
|
showVelocity : boolean = true @label "Show Velocity" @description "Draw each body's velocity vector as an arrow." @tier "presentation"
|
|
21881
22358
|
summary : string = "" @label "Concept" @description "One line under the title saying what the learner is looking at (keep it under ~65 characters). Empty shows no line." @tier "presentation"
|
|
@@ -22007,8 +22484,8 @@ trait std-learn-predict.traits.PredictSim {
|
|
|
22007
22484
|
linkedEntity : PredictScene
|
|
22008
22485
|
category : interaction
|
|
22009
22486
|
states : (idle*)
|
|
22010
|
-
events : (INIT MODE_SELECTED PREDICT NEXT RETRY PREDICTION_COMMITTED SCENARIO_ADVANCED ROUND_RESTARTED LEARN_ROUND_COMPLETE)
|
|
22011
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on PREDICT) (idle -> idle on NEXT) (idle -> idle on RETRY))
|
|
22487
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED PREDICT NEXT RETRY PREDICTION_COMMITTED SCENARIO_ADVANCED ROUND_RESTARTED LEARN_ROUND_COMPLETE)
|
|
22488
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on PREDICT) (idle -> idle on NEXT) (idle -> idle on RETRY))
|
|
22012
22489
|
emits : (PREDICTION_COMMITTED SCENARIO_ADVANCED ROUND_RESTARTED LEARN_ROUND_COMPLETE)
|
|
22013
22490
|
config {
|
|
22014
22491
|
gridStep : number = 25 @label "Grid Step" @tier "presentation"
|
|
@@ -22018,6 +22495,7 @@ trait std-learn-predict.traits.PredictSim {
|
|
|
22018
22495
|
retryLabel : string = "Try Again" @label "Retry Label" @tier "presentation"
|
|
22019
22496
|
revealColor : string = "series-1" @label "Reveal Color" @tier "presentation"
|
|
22020
22497
|
revealLabel : string = "Outcome" @label "Reveal Label" @tier "presentation"
|
|
22498
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the scenario roster comes from: config reads the scenarios knob at INIT; event waits for ROSTER_LOADED and takes the roster from its payload." @tier "domain" @values (config event)
|
|
22021
22499
|
scenarios : [PredictScenario] = [{"correctIndex":1,"explanation":"With no limiting factor yet, growth compounds each season.","frames":[{"caption":"Season 1: 40 rabbits","value":40},{"caption":"Season 2: 52 rabbits","value":52},{"caption":"Season 3: 68 rabbits","value":68},{"caption":"Season 4: 88 rabbits","value":88},{"caption":"Season 5: 114 rabbits","value":114},{"caption":"Season 6: 148 rabbits — still accelerating","value":148}],"options":["It levels off","It keeps accelerating","It collapses"],"question":"What happens to the population over the next six seasons?","setup":"A small island hosts 40 rabbits with unlimited grass and no predators."},{"correctIndex":1,"explanation":"Predation and food limits impose a carrying capacity.","frames":[{"caption":"Season 1: 148 rabbits","value":148},{"caption":"Season 2: 160 rabbits","value":160},{"caption":"Season 3: 166 rabbits","value":166},{"caption":"Season 4: 169 rabbits","value":169},{"caption":"Season 5: 170 rabbits — the curve flattens","value":170}],"options":["It keeps accelerating","It levels off near a ceiling","It grows linearly"],"question":"What happens to the rabbit population now?","setup":"The same island now has foxes, and grass is running short."}] @label "Scenarios" @description "The scenario roster; each carries a setup, the question, the offered predictions with the correct index, an explanation, and the reveal frames (caption + value) that play out after the learner commits. Realizations declare their own subject's scenarios here." @tier "domain"
|
|
22022
22500
|
summary : string = "" @label "Concept" @description "One line under the title saying what is being predicted (keep it under ~65 characters). Empty shows no line." @tier "presentation"
|
|
22023
22501
|
title : string = "Predict, Then Watch" @label "Title" @description "Title shown above the instrument." @tier "presentation"
|
|
@@ -22060,8 +22538,8 @@ trait std-learn-sandbox.traits.LearnSandboxSim {
|
|
|
22060
22538
|
linkedEntity : LearnSandboxScene
|
|
22061
22539
|
category : interaction
|
|
22062
22540
|
states : (idle*)
|
|
22063
|
-
events : (INIT MODE_SELECTED TOGGLE RESET SYSTEM_CHANGED SANDBOX_RESET)
|
|
22064
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on TOGGLE) (idle -> idle on RESET))
|
|
22541
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED TOGGLE RESET SYSTEM_CHANGED SANDBOX_RESET)
|
|
22542
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on TOGGLE) (idle -> idle on RESET))
|
|
22065
22543
|
emits : (SYSTEM_CHANGED SANDBOX_RESET)
|
|
22066
22544
|
config {
|
|
22067
22545
|
animate : boolean = false @label "Animate" @description "Enable continuous redraw loop." @tier "presentation"
|
|
@@ -22074,10 +22552,11 @@ trait std-learn-sandbox.traits.LearnSandboxSim {
|
|
|
22074
22552
|
height : number = 320 @label "Height" @description "Canvas height in pixels." @tier "presentation"
|
|
22075
22553
|
interactive : boolean = false @label "Interactive" @description "Enable pointer interaction on the canvas." @tier "presentation"
|
|
22076
22554
|
links : [LearnSandboxLink] = [{"from":"a","to":"b"},{"from":"b","to":"c"},{"from":"a","to":"d"},{"from":"d","to":"e"}] @label "Links" @description "Declared relationships drawn between elements; a link dims when either endpoint is disabled." @synonyms "link, edge, connection, dependency, relationship" @tier "domain"
|
|
22077
|
-
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
22555
|
+
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT, or on ROSTER_LOADED when rosterSource is event." @tier "presentation"
|
|
22078
22556
|
nodeRadius : number = 34 @label "Node Radius" @tier "presentation"
|
|
22079
22557
|
outcomeLabel : string = "System Status" @label "Outcome Label" @description "Label prefix used in the readout describing the derived total and hold status." @tier "presentation"
|
|
22080
22558
|
resetLabel : string = "Reset" @label "Reset Button Label" @tier "presentation"
|
|
22559
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the roster comes from: config reads elements and links knobs at INIT; event waits for ROSTER_LOADED and takes the roster from its payload." @tier "domain" @values (config event)
|
|
22081
22560
|
summary : string = "" @label "Concept" @description "One line under the title saying what the system models (keep it under ~65 characters). Empty shows no line." @tier "presentation"
|
|
22082
22561
|
threshold : number = 60 @label "Threshold" @description "The summed weight of enabled elements must reach this value for the system to hold." @synonyms "threshold, tipping point, sufficient total" @tier "domain"
|
|
22083
22562
|
title : string = "System Sandbox" @label "Title" @description "Title shown above the instrument." @tier "presentation"
|
|
@@ -22093,8 +22572,8 @@ trait std-learn-scatter-fit.traits.LearnScatterFitSim {
|
|
|
22093
22572
|
linkedEntity : LearnScatterFitScene
|
|
22094
22573
|
category : interaction
|
|
22095
22574
|
states : (idle*)
|
|
22096
|
-
events : (INIT MODE_SELECTED ADD_POINT DRAG_POINT GUESS_LINE REVEAL_FIT TOGGLE_RUN RESET LEARN_SCATTER_FIT_UPDATED LEARN_ROUND_COMPLETE)
|
|
22097
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ADD_POINT) (idle -> idle on DRAG_POINT) (idle -> idle on GUESS_LINE) (idle -> idle on REVEAL_FIT) (idle -> idle on TOGGLE_RUN) (idle -> idle on RESET))
|
|
22575
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED ADD_POINT DRAG_POINT GUESS_LINE REVEAL_FIT TOGGLE_RUN RESET LEARN_SCATTER_FIT_UPDATED LEARN_ROUND_COMPLETE)
|
|
22576
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ADD_POINT) (idle -> idle on DRAG_POINT) (idle -> idle on GUESS_LINE) (idle -> idle on REVEAL_FIT) (idle -> idle on TOGGLE_RUN) (idle -> idle on RESET))
|
|
22098
22577
|
emits : (LEARN_SCATTER_FIT_UPDATED LEARN_ROUND_COMPLETE)
|
|
22099
22578
|
config {
|
|
22100
22579
|
addPointLabel : string = "Add Point" @label "Add Point Button Label" @tier "presentation"
|
|
@@ -22121,7 +22600,7 @@ trait std-learn-scatter-fit.traits.LearnScatterFitSim {
|
|
|
22121
22600
|
height : number = 400 @label "Height" @description "Canvas height in pixels." @tier "presentation"
|
|
22122
22601
|
initialPoints : [LearnScatterFitPoint] = [{"color":"ink","id":"p0","label":"","radius":5,"x":15,"y":25},{"color":"ink","id":"p1","label":"","radius":5,"x":32,"y":40},{"color":"ink","id":"p2","label":"","radius":5,"x":48,"y":44},{"color":"ink","id":"p3","label":"","radius":5,"x":63,"y":62},{"color":"ink","id":"p4","label":"","radius":5,"x":80,"y":70}] @label "Initial Points" @description "Scatter points the canvas starts with, in axis data coordinates; Reset reseeds from this roster." @synonyms "seed points, dataset, scatter data, sample" @tier "domain"
|
|
22123
22602
|
interactive : boolean = true @label "Interactive" @description "Enable pointer interaction on the canvas — required for dragging points." @tier "presentation"
|
|
22124
|
-
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
22603
|
+
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT, or on ROSTER_LOADED when rosterSource is event." @tier "presentation"
|
|
22125
22604
|
maxPoints : number = 20 @label "Max Points" @description "Cap on accumulated scatter points; Add Point and the auto-run tick stop once reached, until Reset." @tier "domain"
|
|
22126
22605
|
narrationAddedTemplate : string = "point added" @label "Added Narration Template" @description "Narration phrase after a point is added (button or tick), assembled as \"<template> <n> — r = .., R² = ..\"." @tier "domain"
|
|
22127
22606
|
narrationAutoAddingTemplate : string = "Auto-adding — tick adds a new point." @label "Auto-Adding Narration" @description "Narration shown after Run is pressed." @tier "domain"
|
|
@@ -22139,6 +22618,7 @@ trait std-learn-scatter-fit.traits.LearnScatterFitSim {
|
|
|
22139
22618
|
residualColor : string = "guide" @label "Residual Color" @tier "presentation"
|
|
22140
22619
|
residualDash : string = "dashed" @label "Residual Dash Style" @tier "presentation" @values (dashed dotted)
|
|
22141
22620
|
revealLabel : string = "Reveal Fit" @label "Reveal Fit Button Label" @tier "presentation"
|
|
22621
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the roster comes from: config reads initialPoints knob at INIT; event waits for ROSTER_LOADED and takes the roster from its payload." @tier "domain" @values (config event)
|
|
22142
22622
|
runLabel : string = "Run" @label "Run Button Label" @tier "presentation"
|
|
22143
22623
|
showAxes : boolean = true @label "Show Axes" @tier "presentation"
|
|
22144
22624
|
showGrid : boolean = true @label "Show Grid" @tier "presentation"
|
|
@@ -22159,17 +22639,18 @@ trait std-learn-scenario.traits.ScenarioSim {
|
|
|
22159
22639
|
linkedEntity : ScenarioScene
|
|
22160
22640
|
category : interaction
|
|
22161
22641
|
states : (idle*)
|
|
22162
|
-
events : (INIT MODE_SELECTED CHOOSE RESTART CHOICE_MADE SCENARIO_RESTARTED)
|
|
22163
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on CHOOSE) (idle -> idle on RESTART))
|
|
22642
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED CHOOSE RESTART CHOICE_MADE SCENARIO_RESTARTED)
|
|
22643
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on CHOOSE) (idle -> idle on RESTART))
|
|
22164
22644
|
emits : (CHOICE_MADE SCENARIO_RESTARTED)
|
|
22165
22645
|
config {
|
|
22166
|
-
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
22646
|
+
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT, or on ROSTER_LOADED when rosterSource is event." @tier "presentation"
|
|
22167
22647
|
metricALabel : string = "Budget" @label "Metric A Label" @description "Display name of the first tracked consequence metric." @tier "domain"
|
|
22168
22648
|
metricAStart : number = 100 @label "Metric A Start" @tier "domain"
|
|
22169
22649
|
metricBLabel : string = "Support" @label "Metric B Label" @description "Display name of the second tracked consequence metric." @tier "domain"
|
|
22170
22650
|
metricBStart : number = 50 @label "Metric B Start" @tier "domain"
|
|
22171
22651
|
nodes : [ScenarioNode] = [{"choices":[{"deltaA":-60,"deltaB":10,"label":"Build a levee now","next":"levee","note":"Fast protection, most of the budget gone."},{"deltaA":-25,"deltaB":-5,"label":"Restore the upstream wetlands","next":"wetlands","note":"Cheaper and greener, but slower to work."}],"id":"start","situation":"Your town's river floods every spring. The council asks you to lead the response."},{"choices":[{"deltaA":-30,"deltaB":-10,"label":"Raise the levee again","next":"end-lock-in","note":"Costs keep compounding."},{"deltaA":-20,"deltaB":15,"label":"Add wetlands as a second line","next":"end-hybrid","note":"Late, but it eases the pressure."}],"id":"levee","situation":"The levee holds the first spring, but silt builds up and the river rises higher each year."},{"choices":[{"deltaA":-15,"deltaB":25,"label":"Expand the wetland corridor","next":"end-green","note":"The town rallies behind the project."},{"deltaA":10,"deltaB":5,"label":"Bank the savings","next":"end-thrifty","note":"Prudent, though the corridor stays small."}],"id":"wetlands","situation":"Two springs pass; the wetlands now absorb most floods, and wildlife is returning."},{"choices":[],"id":"end-lock-in","situation":"You are locked into an arms race with the river: protected, but at ever-growing cost."},{"choices":[],"id":"end-hybrid","situation":"The hybrid defense works: the levee buys time and the wetlands cut the peak floods."},{"choices":[],"id":"end-green","situation":"The restored river corridor protects the town and becomes its most loved public space."},{"choices":[],"id":"end-thrifty","situation":"The town stays safe in normal years, with savings in reserve for a bigger flood."}] @label "Nodes" @description "The decision graph; each node carries a situation and its choices, each choice naming the next node, metric deltas, and a consequence note. A node with no choices ends the run. Realizations declare their own subject's decision tree here." @tier "domain"
|
|
22172
22652
|
restartLabel : string = "Play Again" @label "Restart Label" @tier "presentation"
|
|
22653
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the roster comes from: config reads nodes and startId knobs at INIT; event waits for ROSTER_LOADED and takes the roster from its payload." @tier "domain" @values (config event)
|
|
22173
22654
|
startId : string = "start" @label "Start Node" @description "Id of the node the scenario opens on." @tier "domain"
|
|
22174
22655
|
summary : string = "" @label "Concept" @description "One line under the title saying what the scenario explores (keep it under ~65 characters). Empty shows no line." @tier "presentation"
|
|
22175
22656
|
title : string = "Decision Scenario" @label "Title" @description "Title shown above the scenario." @tier "presentation"
|
|
@@ -22223,15 +22704,16 @@ trait std-learn-speed-drill.traits.SpeedDrillSim {
|
|
|
22223
22704
|
linkedEntity : SpeedDrillScene
|
|
22224
22705
|
category : interaction
|
|
22225
22706
|
states : (idle*)
|
|
22226
|
-
events : (INIT MODE_SELECTED ANSWER NEXT RETRY ANSWER_JUDGED PROMPT_ADVANCED ROUND_RESTARTED LEARN_ROUND_COMPLETE)
|
|
22227
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ANSWER) (idle -> idle on NEXT) (idle -> idle on RETRY))
|
|
22707
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED ANSWER NEXT RETRY ANSWER_JUDGED PROMPT_ADVANCED ROUND_RESTARTED LEARN_ROUND_COMPLETE)
|
|
22708
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ANSWER) (idle -> idle on NEXT) (idle -> idle on RETRY))
|
|
22228
22709
|
emits : (ANSWER_JUDGED PROMPT_ADVANCED ROUND_RESTARTED LEARN_ROUND_COMPLETE)
|
|
22229
22710
|
config {
|
|
22230
22711
|
basePoints : number = 10 @label "Base Points" @description "Points for a correct answer regardless of speed." @tier "domain"
|
|
22231
22712
|
items : [SpeedDrillItem] = [{"correctIndex":1,"options":["54","56","63","48"],"prompt":"7 × 8"},{"correctIndex":0,"options":["54","56","45","63"],"prompt":"9 × 6"},{"correctIndex":2,"options":["124","132","144","148"],"prompt":"12 × 12"}] @label "Items" @description "The drill roster; each item carries a prompt, its options, and the index of the correct option. Realizations declare their own subject's items here." @tier "domain"
|
|
22232
|
-
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
22713
|
+
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT, or on ROSTER_LOADED when rosterSource is event." @tier "presentation"
|
|
22233
22714
|
nextLabel : string = "Next" @label "Next Label" @tier "presentation"
|
|
22234
22715
|
retryLabel : string = "Try Again" @label "Retry Label" @tier "presentation"
|
|
22716
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the roster comes from: config reads items knob at INIT; event waits for ROSTER_LOADED and takes the roster from its payload." @tier "domain" @values (config event)
|
|
22235
22717
|
speedBonus : number = 10 @label "Speed Bonus" @description "Maximum extra points awarded in proportion to the time left on the clock." @tier "domain"
|
|
22236
22718
|
summary : string = "" @label "Concept" @description "One line under the title saying what is being drilled (keep it under ~65 characters). Empty shows no line." @tier "presentation"
|
|
22237
22719
|
timeLimit : number = 6 @label "Time Limit" @description "Seconds the learner has to answer each item before it counts as a miss." @tier "domain"
|
|
@@ -22247,8 +22729,8 @@ trait std-learn-stepper.traits.LearnStepperSim {
|
|
|
22247
22729
|
linkedEntity : LearnStepperScene
|
|
22248
22730
|
category : interaction
|
|
22249
22731
|
states : (idle*)
|
|
22250
|
-
events : (INIT MODE_SELECTED NEXT PREV FILTER_CATEGORY RESET_STEPPER STEPPER_ADVANCED)
|
|
22251
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on NEXT) (idle -> idle on PREV) (idle -> idle on FILTER_CATEGORY) (idle -> idle on RESET_STEPPER))
|
|
22732
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED NEXT PREV FILTER_CATEGORY RESET_STEPPER STEPPER_ADVANCED)
|
|
22733
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on NEXT) (idle -> idle on PREV) (idle -> idle on FILTER_CATEGORY) (idle -> idle on RESET_STEPPER))
|
|
22252
22734
|
emits : (STEPPER_ADVANCED)
|
|
22253
22735
|
config {
|
|
22254
22736
|
allLabel : string = "All" @label "All Filter Label" @tier "presentation"
|
|
@@ -22268,6 +22750,7 @@ trait std-learn-stepper.traits.LearnStepperSim {
|
|
|
22268
22750
|
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
22269
22751
|
maxPosition : number = 4 @label "Max Position" @description "Latest position on the axis (after the last stage)." @tier "domain"
|
|
22270
22752
|
minPosition : number = 0 @label "Min Position" @description "Earliest position on the axis (before the first stage)." @tier "domain"
|
|
22753
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the stages, categories and category summaries come from: config reads those knobs at INIT; event waits for ROSTER_LOADED and takes them from its payload. The axis range (minPosition/maxPosition) stays config." @tier "domain" @values (config event)
|
|
22271
22754
|
stages : [LearnStepperStage] = [{"category":"a","description":"First stage in the sequence.","id":"stage-1","label":"Stage One","position":1},{"category":"b","description":"Second stage in the sequence.","id":"stage-2","label":"Stage Two","position":2},{"category":"a","description":"Third stage in the sequence.","id":"stage-3","label":"Stage Three","position":3}] @label "Stages" @description "Ordered roster of stages (position, label, category, description) stepped through by NEXT/PREV and filtered by FILTER_CATEGORY. Sorted ascending by position." @synonyms "stage roster, sequence, timeline, cycle, phase, event roster, ordered stages" @tier "domain"
|
|
22272
22755
|
startPrompt : string = "Press Next to begin." @label "Start Prompt" @description "Narration shown before the learner has advanced past the first stage." @tier "presentation"
|
|
22273
22756
|
summary : string = "" @label "Concept" @description "One line under the title saying what the learner is looking at (keep it under ~65 characters). Empty shows no line." @tier "presentation"
|
|
@@ -22285,8 +22768,8 @@ trait std-learn-tour-3d.traits.Learn3DTourSim {
|
|
|
22285
22768
|
linkedEntity : Learn3DTourScene
|
|
22286
22769
|
category : interaction
|
|
22287
22770
|
states : (idle*)
|
|
22288
|
-
events : (INIT MODE_SELECTED TOUR SELECT_STATION RESET SYNC_STATIONS TOUR_3D_UPDATED LEARN_ROUND_COMPLETE)
|
|
22289
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on TOUR) (idle -> idle on SELECT_STATION) (idle -> idle on RESET) (idle -> idle on SYNC_STATIONS))
|
|
22771
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED TOUR SELECT_STATION RESET SYNC_STATIONS TOUR_3D_UPDATED LEARN_ROUND_COMPLETE)
|
|
22772
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on TOUR) (idle -> idle on SELECT_STATION) (idle -> idle on RESET) (idle -> idle on SYNC_STATIONS))
|
|
22290
22773
|
emits : (TOUR_3D_UPDATED LEARN_ROUND_COMPLETE)
|
|
22291
22774
|
config {
|
|
22292
22775
|
azimuth : number = 0.6 @label "Azimuth" @description "Camera orbit azimuth in radians; the learner can orbit freely on top of this." @tier "presentation"
|
|
@@ -22299,6 +22782,7 @@ trait std-learn-tour-3d.traits.Learn3DTourSim {
|
|
|
22299
22782
|
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
22300
22783
|
post : Post3D = {} @label "Post Processing" @description "3D post-processing stack (bloom/vignette) as data; empty object disables it." @tier "presentation"
|
|
22301
22784
|
resetLabel : string = "Reset" @label "Reset Button Label" @description "Label text for the button that returns the tour to the first station." @tier "presentation"
|
|
22785
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the stations, edges and backdrop come from: config reads those knobs at INIT; event waits for ROSTER_LOADED and takes them from its payload." @tier "domain" @values (config event)
|
|
22302
22786
|
stations : [Learn3DStation] = [{"caption":"The first stop on the tour — the camera retargets here and the narration reads its caption.","color":"series-1","id":"alpha","name":"Station Alpha","opacity":1,"radius":1,"shape":"sphere","x":0,"y":0,"z":0},{"caption":"The second stop — press Tour again or click a shape to advance the selection.","color":"series-2","id":"beta","name":"Station Beta","opacity":1,"radius":0.8,"shape":"sphere","x":3,"y":1,"z":-1},{"caption":"The final stop — once every station has been visited the tour marks itself complete.","color":"series-3","id":"gamma","name":"Station Gamma","opacity":1,"radius":0.8,"shape":"sphere","x":-3,"y":-1,"z":1}] @label "Stations" @description "The station roster in didactic tour order — each with scene position, mesh shape, and a caption. Tour and clicks enlarge the selected station, retarget the camera onto its x/y/z, and narrate its caption." @synonyms "station, stop, waypoint, tour, landmark, 3d" @tier "domain"
|
|
22303
22787
|
summary : string = "" @label "Concept" @description "One line under the title saying what the learner is looking at (keep it under ~65 characters). Empty shows no line." @tier "presentation"
|
|
22304
22788
|
title : string = "3D Guided Tour" @label "Title" @description "Title shown above the canvas." @tier "presentation"
|
|
@@ -22316,8 +22800,8 @@ trait std-learn-trace-player.traits.TracePlayerSim {
|
|
|
22316
22800
|
linkedEntity : TracePlayerScene
|
|
22317
22801
|
category : interaction
|
|
22318
22802
|
states : (idle*)
|
|
22319
|
-
events : (INIT MODE_SELECTED TOGGLE_RUN SPEED_SET PLAY PAUSE RESTART FRAME_ADVANCED TRACE_DONE)
|
|
22320
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on TOGGLE_RUN) (idle -> idle on SPEED_SET) (idle -> idle on PLAY) (idle -> idle on PAUSE) (idle -> idle on RESTART))
|
|
22803
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED TOGGLE_RUN SPEED_SET PLAY PAUSE RESTART FRAME_ADVANCED TRACE_DONE)
|
|
22804
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on TOGGLE_RUN) (idle -> idle on SPEED_SET) (idle -> idle on PLAY) (idle -> idle on PAUSE) (idle -> idle on RESTART))
|
|
22321
22805
|
emits : (FRAME_ADVANCED TRACE_DONE)
|
|
22322
22806
|
config {
|
|
22323
22807
|
backgroundColor : string = "" @label "Background Color" @description "Canvas ground override; empty uses the theme's drawing ground." @tier "presentation"
|
|
@@ -22327,6 +22811,7 @@ trait std-learn-trace-player.traits.TracePlayerSim {
|
|
|
22327
22811
|
highlightColor : string = "highlight" @label "Highlight Bar Color" @description "Color of bars whose index appears in the current frame's highlights." @tier "presentation"
|
|
22328
22812
|
loop : boolean = false @label "Loop" @description "When true, autoplay wraps from the last frame back to the first instead of stopping and emitting TRACE_DONE." @tier "domain"
|
|
22329
22813
|
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
22814
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the frame roster comes from: config reads the frames knob at INIT; event waits for ROSTER_LOADED and takes the roster from its payload." @tier "domain" @values (config event)
|
|
22330
22815
|
summary : string = "" @label "Concept" @description "One line under the title saying what the learner is looking at (keep it under ~65 characters). Empty shows no line." @tier "presentation"
|
|
22331
22816
|
tickMs : number = 500 @label "Tick Milliseconds" @description "Milliseconds per frame shown in the readout; the autoplay cadence." @tier "presentation"
|
|
22332
22817
|
title : string = "Trace Player" @label "Title" @description "The instrument's name, the header's one hero." @tier "presentation"
|
|
@@ -22350,7 +22835,7 @@ trait std-learn-transport.traits.LearnTransportSim {
|
|
|
22350
22835
|
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
22351
22836
|
stepIntervalMs : number = 500 @label "Step Interval (ms)" @description "Milliseconds of running clock per domain step — the 32ms base tick accumulates elapsed time and fires LEARN_STEP each time this interval elapses. 300-900 suits narrated steppers; 32 fires every frame for continuous sims." @tier "domain"
|
|
22352
22837
|
summary : string = "" @label "Concept" @description "One line under the title saying what the learner is looking at (keep it under ~65 characters). Empty shows no line." @tier "presentation"
|
|
22353
|
-
title : string = "Learning Instrument" @label "Title" @description "The instrument's name, the header's one hero." @tier "presentation"
|
|
22838
|
+
title : string = "Learning Instrument" @label "Title" @description "The instrument's name, the header's one hero. Empty shows no title." @tier "presentation"
|
|
22354
22839
|
totalSteps : int = 0 @label "Total Steps" @description "When the walk has a known length, the step counter reads 'Step N of M'. 0 means open-ended." @tier "presentation"
|
|
22355
22840
|
}
|
|
22356
22841
|
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
@@ -22363,8 +22848,8 @@ trait std-learn-tree.traits.LearnTreeSim {
|
|
|
22363
22848
|
linkedEntity : LearnTreeScene
|
|
22364
22849
|
category : interaction
|
|
22365
22850
|
states : (idle*)
|
|
22366
|
-
events : (INIT MODE_SELECTED INSERT_VALUE DELETE_VALUE RUN_TRAVERSAL TOGGLE_RUN RESET TREE_UPDATED)
|
|
22367
|
-
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on INSERT_VALUE) (idle -> idle on DELETE_VALUE) (idle -> idle on RUN_TRAVERSAL) (idle -> idle on TOGGLE_RUN) (idle -> idle on RESET))
|
|
22851
|
+
events : (INIT MODE_SELECTED ROSTER_LOADED INSERT_VALUE DELETE_VALUE RUN_TRAVERSAL TOGGLE_RUN RESET TREE_UPDATED)
|
|
22852
|
+
transitions : ((idle -> idle on INIT) (idle -> idle on MODE_SELECTED) (idle -> idle on MODE_SELECTED) (idle -> idle on ROSTER_LOADED) (idle -> idle on ROSTER_LOADED) (idle -> idle on INSERT_VALUE) (idle -> idle on DELETE_VALUE) (idle -> idle on RUN_TRAVERSAL) (idle -> idle on TOGGLE_RUN) (idle -> idle on RESET))
|
|
22368
22853
|
emits : (TREE_UPDATED)
|
|
22369
22854
|
config {
|
|
22370
22855
|
autoRun : boolean = false @label "Auto Run" @description "When true, the tick auto-steps the traversal sweep started by Traverse; toggle live with the Run/Pause button. Has no effect on Insert/Delete, which stay manual." @synonyms "auto run, auto step, auto play" @tier "domain"
|
|
@@ -22372,6 +22857,7 @@ trait std-learn-tree.traits.LearnTreeSim {
|
|
|
22372
22857
|
balanced : boolean = false @label "Balance Readout" @description "When true, each insert's narration reports the tree's current height against its node count so the learner can judge balance; no auto-rotation is performed." @synonyms "balance, height, balance readout" @tier "domain"
|
|
22373
22858
|
height : number = 400 @label "Height" @description "Canvas height in pixels." @tier "presentation"
|
|
22374
22859
|
matchMode : string = "" @label "Match Mode" @description "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT." @tier "presentation"
|
|
22860
|
+
rosterSource : string = "config" @label "Roster Source" @description "Where the insertion values come from: config reads the values knob at INIT; event waits for ROSTER_LOADED and takes them from its payload." @tier "domain" @values (config event)
|
|
22375
22861
|
showComparisons : boolean = true @label "Show Comparisons" @description "Include each left/right comparison in the narration while a value descends; turn off for a terse attach-only narration." @synonyms "comparisons, narration detail" @tier "presentation"
|
|
22376
22862
|
summary : string = "" @label "Concept" @description "One line under the title saying what the learner is looking at (keep it under ~65 characters). Empty shows no line." @tier "presentation"
|
|
22377
22863
|
title : string = "Ordered Tree" @label "Title" @description "Title shown above the canvas." @tier "presentation"
|
|
@@ -22969,6 +23455,81 @@ trait std-pad-lock.traits.PadLock {
|
|
|
22969
23455
|
source : "@almadar/std (behaviors/registry/ui/game/atoms/std-pad-lock.orb orbitals[0].traits[0])"
|
|
22970
23456
|
}
|
|
22971
23457
|
|
|
23458
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-open.orb orbitals[0].traits[0])
|
|
23459
|
+
trait std-page-open.traits.PageOpen {
|
|
23460
|
+
alias : PageOpen
|
|
23461
|
+
linkedEntity : PageOpenRecord
|
|
23462
|
+
category : interaction
|
|
23463
|
+
states : (ready*)
|
|
23464
|
+
events : (INIT OPEN TAB_OPENED OPEN_CALL_FAILED OPENED OPEN_FAILED)
|
|
23465
|
+
transitions : ((ready -> ready on INIT) (ready -> ready on OPEN) (ready -> ready on TAB_OPENED) (ready -> ready on OPEN_CALL_FAILED))
|
|
23466
|
+
emits : (TAB_OPENED OPEN_CALL_FAILED OPENED OPEN_FAILED)
|
|
23467
|
+
config {
|
|
23468
|
+
statusSlot : slot = "main" @label "Status slot" @description "Where the atom shows its one-line status; an organism running it in the background sends it to `system`" @synonyms "status area, slot" @tier "presentation"
|
|
23469
|
+
}
|
|
23470
|
+
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
23471
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-open.orb orbitals[0].traits[0])"
|
|
23472
|
+
}
|
|
23473
|
+
|
|
23474
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-search.orb orbitals[0].traits[0])
|
|
23475
|
+
trait std-page-search.traits.PageSearch {
|
|
23476
|
+
alias : PageSearch
|
|
23477
|
+
linkedEntity : PageSearchRecord
|
|
23478
|
+
category : interaction
|
|
23479
|
+
states : (idle* searching)
|
|
23480
|
+
events : (INIT SEARCH TAB_OPENED RESULTS_READ SEARCH_CALL_FAILED RESULTS SEARCH_FAILED)
|
|
23481
|
+
transitions : ((idle -> idle on INIT) (idle -> searching on SEARCH) (searching -> searching on INIT) (searching -> searching on TAB_OPENED) (searching -> idle on RESULTS_READ) (searching -> idle on SEARCH_CALL_FAILED) (searching -> idle on SEARCH_CALL_FAILED))
|
|
23482
|
+
emits : (TAB_OPENED RESULTS_READ SEARCH_CALL_FAILED RESULTS SEARCH_FAILED)
|
|
23483
|
+
config {
|
|
23484
|
+
fields : Map<string,PageField> = {} @label "Fields" @description "Field name to how to read it from each result: `selector` (a descendant; absent reads the result itself), `attr` (an attribute; absent reads the text) , `resolve` (the value is a URL: return it absolute), `template` (compose the value from other fields, `{name}` per field; empty when any is empty) and `required` (leave the result out until this field reads non-empty)" @synonyms "columns, properties, extract" @tier "domain"
|
|
23485
|
+
maxResults : number = 10 @label "Results per search" @description "Most results read from one search" @synonyms "limit, count, how many" @tier "policy"
|
|
23486
|
+
queryParam : string = "q" @label "Query parameter" @description "Name of the URL parameter that carries the search terms" @synonyms "query key, search parameter" @tier "domain"
|
|
23487
|
+
resultSelector : string = ".result" @label "Result selector" @description "CSS selector of one result on the results page" @synonyms "result, item, card, tile" @tier "domain"
|
|
23488
|
+
resultsMatch : string = "https://example.com/search*" @label "Results pages" @description "URL match pattern the results page lies in (Chrome match-pattern syntax); the search page must match it, and the extension asks for access to exactly these pages" @synonyms "site, url pattern, results url" @tier "domain"
|
|
23489
|
+
searchUrl : string = "https://example.com/search" @label "Search page" @description "URL of the site's search results page, without the query" @synonyms "search url, results page, endpoint" @tier "domain"
|
|
23490
|
+
statusSlot : slot = "main" @label "Status slot" @description "Where the atom shows its one-line status; an organism running it in the background sends it to `system`" @synonyms "status area, slot" @tier "presentation"
|
|
23491
|
+
waitMs : number = 8000 @label "Wait for results (ms)" @description "How long to wait for the results page to load and its first result to appear" @synonyms "timeout, wait, patience" @tier "infra"
|
|
23492
|
+
}
|
|
23493
|
+
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
23494
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-search.orb orbitals[0].traits[0])"
|
|
23495
|
+
}
|
|
23496
|
+
|
|
23497
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-treat.orb orbitals[0].traits[0])
|
|
23498
|
+
trait std-page-treat.traits.PageTreat {
|
|
23499
|
+
alias : PageTreat
|
|
23500
|
+
linkedEntity : PageTreatRecord
|
|
23501
|
+
category : interaction
|
|
23502
|
+
states : (ready*)
|
|
23503
|
+
events : (INIT TREAT APPLIED TREAT_MANY APPLIED_MANY APPLY_FAILED TREATED TREATED_MANY TREAT_FAILED)
|
|
23504
|
+
transitions : ((ready -> ready on INIT) (ready -> ready on TREAT) (ready -> ready on APPLIED) (ready -> ready on TREAT_MANY) (ready -> ready on APPLIED_MANY) (ready -> ready on APPLY_FAILED))
|
|
23505
|
+
emits : (APPLIED APPLIED_MANY APPLY_FAILED TREATED TREATED_MANY TREAT_FAILED)
|
|
23506
|
+
config {
|
|
23507
|
+
statusSlot : slot = "main" @label "Status slot" @description "Where the atom shows its one-line status; an organism running it in the background sends it to `system`" @synonyms "status area, slot" @tier "presentation"
|
|
23508
|
+
}
|
|
23509
|
+
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
23510
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-treat.orb orbitals[0].traits[0])"
|
|
23511
|
+
}
|
|
23512
|
+
|
|
23513
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-watch.orb orbitals[0].traits[0])
|
|
23514
|
+
trait std-page-watch.traits.PageWatch {
|
|
23515
|
+
alias : PageWatch
|
|
23516
|
+
linkedEntity : PageWatchRecord
|
|
23517
|
+
category : lifecycle
|
|
23518
|
+
states : (active*)
|
|
23519
|
+
events : (INIT WATCHING WATCH_FAILED ITEM_FOUND ITEM)
|
|
23520
|
+
transitions : ((active -> active on INIT) (active -> active on WATCHING) (active -> active on WATCH_FAILED) (active -> active on ITEM_FOUND))
|
|
23521
|
+
emits : (WATCHING WATCH_FAILED ITEM)
|
|
23522
|
+
config {
|
|
23523
|
+
fields : Map<string,PageField> = {} @label "Fields" @description "Field name to how to read it from each element: `selector` (a descendant; absent reads the element itself), `attr` (an attribute; absent reads the text) , `resolve` (the value is a URL: return it absolute), `template` (compose the value from other fields, `{name}` per field; empty when any is empty) and `required` (leave the element out until this field reads non-empty — a placeholder is reported once it fills in)" @synonyms "columns, properties, extract, read" @tier "domain"
|
|
23524
|
+
itemEvent : event = "PageWatch.ITEM_FOUND" @label "Item input" @description "The declared input each element arrives as; it follows the trait when a composer renames it" @tier "internal"
|
|
23525
|
+
itemSelector : string = ".item" @label "Item selector" @description "CSS selector of the elements to report" @synonyms "selector, element, card, tile, row" @tier "domain"
|
|
23526
|
+
match : string = "https://example.com/*" @label "Pages" @description "URL match pattern of the tabs to watch, in Chrome match-pattern syntax (`<scheme>://<host>/<path>` with `*` wildcards)" @synonyms "site, url pattern, pages, domain" @tier "domain"
|
|
23527
|
+
statusSlot : slot = "main" @label "Status slot" @description "Where the atom shows its one-line status; an organism running it in the background sends it to `system`" @synonyms "status area, slot" @tier "presentation"
|
|
23528
|
+
}
|
|
23529
|
+
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
23530
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-watch.orb orbitals[0].traits[0])"
|
|
23531
|
+
}
|
|
23532
|
+
|
|
22972
23533
|
;; From @almadar/std (behaviors/registry/ui/core/atoms/std-pagination.orb orbitals[0].traits[0])
|
|
22973
23534
|
trait std-pagination.traits.PagedItemPagination {
|
|
22974
23535
|
alias : Pagination
|
|
@@ -24599,6 +25160,7 @@ trait ui-avl-state-machine.traits.AvlStateMachineRender {
|
|
|
24599
25160
|
config {
|
|
24600
25161
|
activeState : string @label "Active State" @description "State execution is currently in." @tier "presentation"
|
|
24601
25162
|
activeTransition : number @label "Active Transition" @description "`index` of the transition that just fired." @tier "presentation"
|
|
25163
|
+
annotations : AvlStateMachineAnnotations = {"effects":{"persist":{"body":"Saves the order."}},"states":{"pending":{"body":"Every order starts here.","title":"Unpaid"}},"transitions":{"PAY":{"body":"Only fires when the amount is positive."}}} @label "Annotations" @description "Author explanations shown in a popover on hover: a note per state name, per transition event and per effect type." @tier "presentation"
|
|
24602
25164
|
ariaBusy : boolean @label "Aria-busy" @description "This region is updating; assistive technology waits before announcing it." @synonyms "aria-busy" @tier "presentation"
|
|
24603
25165
|
ariaCurrent : string @label "Aria-current" @description "Marks the current item in a set: the current page, step, location, date or time." @synonyms "aria-current" @tier "presentation" @values (page step location date time true false)
|
|
24604
25166
|
ariaDescribedby : string @label "Aria-describedby" @description "Id of the element whose text describes this one (help text, error)." @synonyms "aria-describedby" @tier "presentation"
|
|
@@ -24633,6 +25195,42 @@ trait ui-avl-state-machine.traits.AvlStateMachineRender {
|
|
|
24633
25195
|
source : "@almadar/std (behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb orbitals[0].traits[0])"
|
|
24634
25196
|
}
|
|
24635
25197
|
|
|
25198
|
+
;; From @almadar/std (behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb orbitals[0].traits[0])
|
|
25199
|
+
trait ui-avl-transition-explainer.traits.AvlTransitionExplainerRender {
|
|
25200
|
+
alias : UiAvlTransitionExplainer
|
|
25201
|
+
linkedEntity : AvlTransitionExplainerItem
|
|
25202
|
+
category : interaction
|
|
25203
|
+
states : (idle*)
|
|
25204
|
+
events : (INIT)
|
|
25205
|
+
transitions : ((idle -> idle on INIT))
|
|
25206
|
+
config {
|
|
25207
|
+
annotations : AvlTransitionExplainerAnnotations = {"effects":{"persist":{"body":"Saves the order."}},"transitions":{"PAY":{"body":"The customer pays the order total.","title":"Paying"}}} @label "Annotations" @description "Author explanations shown in a popover on hover: the event's note and per-effect-type notes." @tier "presentation"
|
|
25208
|
+
ariaBusy : boolean @label "Aria-busy" @description "This region is updating; assistive technology waits before announcing it." @synonyms "aria-busy" @tier "presentation"
|
|
25209
|
+
ariaCurrent : string @label "Aria-current" @description "Marks the current item in a set: the current page, step, location, date or time." @synonyms "aria-current" @tier "presentation" @values (page step location date time true false)
|
|
25210
|
+
ariaDescribedby : string @label "Aria-describedby" @description "Id of the element whose text describes this one (help text, error)." @synonyms "aria-describedby" @tier "presentation"
|
|
25211
|
+
ariaExpanded : boolean @label "Aria-expanded" @description "Whether the element it controls is expanded." @synonyms "aria-expanded" @tier "presentation"
|
|
25212
|
+
ariaHidden : boolean @label "Aria-hidden" @description "Hide from assistive technology (decorative content only)." @synonyms "aria-hidden" @tier "presentation"
|
|
25213
|
+
ariaLabel : string @label "Aria-label" @description "Accessible name read by screen readers when the visible text is missing or not descriptive (e.g. an icon-only control)." @synonyms "aria-label" @tier "presentation"
|
|
25214
|
+
ariaLabelledby : string @label "Aria-labelledby" @description "Id of the element whose text names this one." @synonyms "aria-labelledby" @tier "presentation"
|
|
25215
|
+
ariaLive : string @label "Aria-live" @description "Announce changes to this region: polite waits for a pause, assertive interrupts." @synonyms "aria-live" @tier "presentation" @values (off polite assertive)
|
|
25216
|
+
ariaPressed : string @label "Aria-pressed" @description "Toggle-button state." @synonyms "aria-pressed" @tier "presentation" @values (true false mixed)
|
|
25217
|
+
ariaSelected : boolean @label "Aria-selected" @description "Whether this item is selected (tabs, options, grid cells)." @synonyms "aria-selected" @tier "presentation"
|
|
25218
|
+
className : string @label "Class Name" @description "className prop" @tier "presentation"
|
|
25219
|
+
dir : string @label "Dir" @description "Text direction of this element's content." @tier "presentation" @values (ltr rtl auto)
|
|
25220
|
+
enter : string @label "Enter" @description "How this element animates in when it mounts (theme-styled); overrides the theme's default slot entry. `none` opts out." @tier "presentation" @values (none fade rise scale slide)
|
|
25221
|
+
enterDelay : number @label "Enter Delay" @description "Stagger step for the entry: waits this many `--motion-enter-stagger` steps before animating." @tier "presentation"
|
|
25222
|
+
lang : string @label "Lang" @description "Language of this element's content (BCP 47, e.g. ar, sl, en)." @tier "presentation"
|
|
25223
|
+
orbitalName : string = "" @label "Orbital Name" @description "Orbital the transition belongs to." @tier "presentation"
|
|
25224
|
+
role : string @label "Role" @description "WAI-ARIA role when the element's native semantics don't describe it." @tier "presentation" @values (alert alertdialog application article banner blockquote button caption cell checkbox code columnheader combobox complementary contentinfo definition deletion dialog document emphasis feed figure form generic grid gridcell group heading img insertion link list listbox listitem log main marquee math menu menubar menuitem menuitemcheckbox menuitemradio meter navigation none note option paragraph presentation progressbar radio radiogroup region row rowgroup rowheader scrollbar search searchbox separator slider spinbutton status strong subscript superscript switch tab table tablist tabpanel term textbox time timer toolbar tooltip tree treegrid treeitem)
|
|
25225
|
+
skeleton : string @label "Skeleton" @description "Skeleton shown while this element's server render is in flight: a shape (`table`, `list`, …), `{ variant, rows?, columns?, fields? }`, or `none`." @tier "presentation" @values (header table list grid detail stats form card text none)
|
|
25226
|
+
tabIndex : number @label "Tab Index" @description "0 puts the element in the Tab order; -1 makes it focusable only programmatically." @tier "presentation"
|
|
25227
|
+
traitName : string = "" @label "Trait Name" @description "Trait the transition belongs to." @tier "presentation"
|
|
25228
|
+
transition : AvlTransitionExplainerTransition = {"effects":[{"args":[],"type":"set"},{"args":[],"type":"persist"}],"event":"PAY","from":"pending","index":0,"to":"paid"} @label "Transition" @description "The transition to explain." @tier "presentation"
|
|
25229
|
+
}
|
|
25230
|
+
override-surface : (linkedEntity name events effects listens emitsScope config)
|
|
25231
|
+
source : "@almadar/std (behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb orbitals[0].traits[0])"
|
|
25232
|
+
}
|
|
25233
|
+
|
|
24636
25234
|
;; From @almadar/std (behaviors/registry/ui/core/atoms/ui-badge.orb orbitals[0].traits[0])
|
|
24637
25235
|
trait ui-badge.traits.BadgeRender {
|
|
24638
25236
|
alias : UiBadge
|
|
@@ -26440,6 +27038,7 @@ trait ui-module-card.traits.ModuleCardRender {
|
|
|
26440
27038
|
events : (INIT)
|
|
26441
27039
|
transitions : ((idle -> idle on INIT))
|
|
26442
27040
|
config {
|
|
27041
|
+
annotations : Map<string,ModuleCardAnnotationsValue> = {"item":{}} @label "Annotations" @description "Author explanations per trait name (states, transition events, effect types), shown in a popover on hover." @tier "presentation"
|
|
26443
27042
|
ariaBusy : boolean @label "Aria-busy" @description "This region is updating; assistive technology waits before announcing it." @synonyms "aria-busy" @tier "presentation"
|
|
26444
27043
|
ariaCurrent : string @label "Aria-current" @description "Marks the current item in a set: the current page, step, location, date or time." @synonyms "aria-current" @tier "presentation" @values (page step location date time true false)
|
|
26445
27044
|
ariaDescribedby : string @label "Aria-describedby" @description "Id of the element whose text describes this one (help text, error)." @synonyms "aria-describedby" @tier "presentation"
|
|
@@ -28240,6 +28839,15 @@ page std-agent-planner.pages.AgentPlannerPage {
|
|
|
28240
28839
|
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-planner.orb orbitals[0].pages[0])"
|
|
28241
28840
|
}
|
|
28242
28841
|
|
|
28842
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-proposal.orb orbitals[0].pages[0])
|
|
28843
|
+
page std-agent-proposal.pages.AgentProposalPage {
|
|
28844
|
+
alias : AgentProposal
|
|
28845
|
+
defaultPath : /agent-proposal
|
|
28846
|
+
traits : (AgentProposalWorkflow AgentProposalLoop)
|
|
28847
|
+
override-surface : (path linkedEntity traits)
|
|
28848
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-proposal.orb orbitals[0].pages[0])"
|
|
28849
|
+
}
|
|
28850
|
+
|
|
28243
28851
|
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-session.orb orbitals[1].pages[0])
|
|
28244
28852
|
page std-agent-session.pages.AgentChatsPage {
|
|
28245
28853
|
alias : AgentSession
|
|
@@ -28258,6 +28866,24 @@ page std-agent-session.pages.AgentSessionPage {
|
|
|
28258
28866
|
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-session.orb orbitals[0].pages[0])"
|
|
28259
28867
|
}
|
|
28260
28868
|
|
|
28869
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[1].pages[0])
|
|
28870
|
+
page std-agent-suggestions.pages.AgentSuggestionHistoryPage {
|
|
28871
|
+
alias : AgentSuggestions
|
|
28872
|
+
defaultPath : /agent-suggestions/history
|
|
28873
|
+
traits : (AgentSuggestionHistory)
|
|
28874
|
+
override-surface : (path linkedEntity traits)
|
|
28875
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[1].pages[0])"
|
|
28876
|
+
}
|
|
28877
|
+
|
|
28878
|
+
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[0].pages[0])
|
|
28879
|
+
page std-agent-suggestions.pages.AgentSuggestionsPage {
|
|
28880
|
+
alias : AgentSuggestions
|
|
28881
|
+
defaultPath : /agent-suggestions
|
|
28882
|
+
traits : (AgentSuggestionInbox AgentSuggestionProposer AgentSuggestionTrigger AgentSuggestionRunner AgentSuggestionLoop)
|
|
28883
|
+
override-surface : (path linkedEntity traits)
|
|
28884
|
+
source : "@almadar/std (behaviors/registry/agent/atoms/std-agent-suggestions.orb orbitals[0].pages[0])"
|
|
28885
|
+
}
|
|
28886
|
+
|
|
28261
28887
|
;; From @almadar/std (behaviors/registry/agent/atoms/std-agent-tool-call.orb orbitals[0].pages[0])
|
|
28262
28888
|
page std-agent-tool-call.pages.AgentToolCallPage {
|
|
28263
28889
|
alias : AgentToolCall
|
|
@@ -28582,6 +29208,15 @@ page std-detail-layout.pages.DetailLayoutPage {
|
|
|
28582
29208
|
source : "@almadar/std (behaviors/registry/ui/core/atoms/std-detail-layout.orb orbitals[0].pages[0])"
|
|
28583
29209
|
}
|
|
28584
29210
|
|
|
29211
|
+
;; From @almadar/std (behaviors/registry/ui/core/atoms/std-doc-page.orb orbitals[0].pages[0])
|
|
29212
|
+
page std-doc-page.pages.DocPage {
|
|
29213
|
+
alias : DocPage
|
|
29214
|
+
defaultPath : /doc
|
|
29215
|
+
traits : (DocPageRender)
|
|
29216
|
+
override-surface : (path linkedEntity traits)
|
|
29217
|
+
source : "@almadar/std (behaviors/registry/ui/core/atoms/std-doc-page.orb orbitals[0].pages[0])"
|
|
29218
|
+
}
|
|
29219
|
+
|
|
28585
29220
|
;; From @almadar/std (behaviors/registry/ui/game/atoms/std-dungeon-combat.orb orbitals[0].pages[0])
|
|
28586
29221
|
page std-dungeon-combat.pages.DungeonCombatPage {
|
|
28587
29222
|
alias : DungeonCombat
|
|
@@ -29348,6 +29983,42 @@ page std-pad-lock.pages.PadLockPage {
|
|
|
29348
29983
|
source : "@almadar/std (behaviors/registry/ui/game/atoms/std-pad-lock.orb orbitals[0].pages[0])"
|
|
29349
29984
|
}
|
|
29350
29985
|
|
|
29986
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-open.orb orbitals[0].pages[0])
|
|
29987
|
+
page std-page-open.pages.PageOpenPage {
|
|
29988
|
+
alias : PageOpen
|
|
29989
|
+
defaultPath : /page-open
|
|
29990
|
+
traits : (PageOpen)
|
|
29991
|
+
override-surface : (path linkedEntity traits)
|
|
29992
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-open.orb orbitals[0].pages[0])"
|
|
29993
|
+
}
|
|
29994
|
+
|
|
29995
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-search.orb orbitals[0].pages[0])
|
|
29996
|
+
page std-page-search.pages.PageSearchPage {
|
|
29997
|
+
alias : PageSearch
|
|
29998
|
+
defaultPath : /page-search
|
|
29999
|
+
traits : (PageSearch)
|
|
30000
|
+
override-surface : (path linkedEntity traits)
|
|
30001
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-search.orb orbitals[0].pages[0])"
|
|
30002
|
+
}
|
|
30003
|
+
|
|
30004
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-treat.orb orbitals[0].pages[0])
|
|
30005
|
+
page std-page-treat.pages.PageTreatPage {
|
|
30006
|
+
alias : PageTreat
|
|
30007
|
+
defaultPath : /page-treat
|
|
30008
|
+
traits : (PageTreat)
|
|
30009
|
+
override-surface : (path linkedEntity traits)
|
|
30010
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-treat.orb orbitals[0].pages[0])"
|
|
30011
|
+
}
|
|
30012
|
+
|
|
30013
|
+
;; From @almadar/std (behaviors/registry/infra/atoms/std-page-watch.orb orbitals[0].pages[0])
|
|
30014
|
+
page std-page-watch.pages.PageWatchPage {
|
|
30015
|
+
alias : PageWatch
|
|
30016
|
+
defaultPath : /page-watch
|
|
30017
|
+
traits : (PageWatch)
|
|
30018
|
+
override-surface : (path linkedEntity traits)
|
|
30019
|
+
source : "@almadar/std (behaviors/registry/infra/atoms/std-page-watch.orb orbitals[0].pages[0])"
|
|
30020
|
+
}
|
|
30021
|
+
|
|
29351
30022
|
;; From @almadar/std (behaviors/registry/ui/core/atoms/std-pagination.orb orbitals[0].pages[0])
|
|
29352
30023
|
page std-pagination.pages.PagedItemPaginationPage {
|
|
29353
30024
|
alias : Pagination
|
|
@@ -29933,6 +30604,15 @@ page ui-avl-state-machine.pages.AvlStateMachinePage {
|
|
|
29933
30604
|
source : "@almadar/std (behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb orbitals[0].pages[0])"
|
|
29934
30605
|
}
|
|
29935
30606
|
|
|
30607
|
+
;; From @almadar/std (behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb orbitals[0].pages[0])
|
|
30608
|
+
page ui-avl-transition-explainer.pages.AvlTransitionExplainerPage {
|
|
30609
|
+
alias : UiAvlTransitionExplainer
|
|
30610
|
+
defaultPath : /avl-transition-explainer
|
|
30611
|
+
traits : (AvlTransitionExplainerRender)
|
|
30612
|
+
override-surface : (path linkedEntity traits)
|
|
30613
|
+
source : "@almadar/std (behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb orbitals[0].pages[0])"
|
|
30614
|
+
}
|
|
30615
|
+
|
|
29936
30616
|
;; From @almadar/std (behaviors/registry/ui/core/atoms/ui-badge.orb orbitals[0].pages[0])
|
|
29937
30617
|
page ui-badge.pages.BadgePage {
|
|
29938
30618
|
alias : UiBadge
|
|
@@ -35402,6 +36082,7 @@ trait ui-data-list.traits.DataListRender {
|
|
|
35402
36082
|
fields : [DataListFieldsItem] = [] @label "Fields" @description "Field definitions for rendering each row. The pattern contract in `@almadar/core/patterns` documents `columns` as the wire-format alias the compiler emits — both names resolve to the same shape here. Pass either." @tier "presentation"
|
|
35403
36083
|
gap : string = "none" @label "Gap" @description "Gap between rows" @tier "presentation" @values (none sm md lg)
|
|
35404
36084
|
groupBy : string @label "Group By" @description "Group items by a field value (renders section headers between groups)" @tier "presentation"
|
|
36085
|
+
groupFormat : string @label "Group Format" @description "How a `groupBy` value is bucketed and labelled (`date` = one section per day)" @tier "presentation" @values (date time datetime currency number boolean percent)
|
|
35405
36086
|
hasMore : boolean @label "Has More" @description "Whether more items are available for infinite scroll" @tier "presentation"
|
|
35406
36087
|
infiniteScroll : boolean @label "Infinite Scroll" @description "Enable infinite scroll loading" @tier "presentation"
|
|
35407
36088
|
isLoading : boolean = false @label "Is Loading" @description "Loading state" @tier "presentation"
|
|
@@ -37302,9 +37983,12 @@ trait ui-markdown-content.traits.MarkdownContentRender {
|
|
|
37302
37983
|
linkedEntity : MarkdownContentItem
|
|
37303
37984
|
category : interaction
|
|
37304
37985
|
states : (idle*)
|
|
37305
|
-
events : (INIT)
|
|
37986
|
+
events : (INIT @config.askEvent @config.noteEvent @config.annotationEvent)
|
|
37306
37987
|
transitions : ((idle -> idle on INIT))
|
|
37988
|
+
emits : (@config.askEvent @config.noteEvent @config.annotationEvent)
|
|
37307
37989
|
config {
|
|
37990
|
+
annotationEvent : event = "ANNOTATION" @label "Annotation Event" @description "Event emitted when a highlighted passage is clicked (as `UI:<annotationEvent>`)" @tier "presentation"
|
|
37991
|
+
annotations : [MarkdownContentAnnotationsItem] = [] @label "Annotations" @description "Passages to highlight. Each `text` is matched exactly, first occurrence in document order inside a single rendered text node (outside code); a passage that spans formatting boundaries is not highlighted." @tier "presentation"
|
|
37308
37992
|
ariaBusy : boolean @label "Aria-busy" @description "This region is updating; assistive technology waits before announcing it." @synonyms "aria-busy" @tier "presentation"
|
|
37309
37993
|
ariaCurrent : string @label "Aria-current" @description "Marks the current item in a set: the current page, step, location, date or time." @synonyms "aria-current" @tier "presentation" @values (page step location date time true false)
|
|
37310
37994
|
ariaDescribedby : string @label "Aria-describedby" @description "Id of the element whose text describes this one (help text, error)." @synonyms "aria-describedby" @tier "presentation"
|
|
@@ -37315,6 +37999,8 @@ trait ui-markdown-content.traits.MarkdownContentRender {
|
|
|
37315
37999
|
ariaLive : string @label "Aria-live" @description "Announce changes to this region: polite waits for a pause, assertive interrupts." @synonyms "aria-live" @tier "presentation" @values (off polite assertive)
|
|
37316
38000
|
ariaPressed : string @label "Aria-pressed" @description "Toggle-button state." @synonyms "aria-pressed" @tier "presentation" @values (true false mixed)
|
|
37317
38001
|
ariaSelected : boolean @label "Aria-selected" @description "Whether this item is selected (tabs, options, grid cells)." @synonyms "aria-selected" @tier "presentation"
|
|
38002
|
+
askEvent : event = "ASK" @label "Ask Event" @description "Event emitted when the reader picks Ask on selected text (as `UI:<askEvent>`)" @tier "presentation"
|
|
38003
|
+
askLabel : string @label "Ask Label" @description "Ask action label (default: translated)" @tier "presentation"
|
|
37318
38004
|
className : string @label "Class Name" @description "Additional CSS classes" @tier "presentation"
|
|
37319
38005
|
content : string = "" @label "Content" @description "The markdown content to render" @tier "presentation"
|
|
37320
38006
|
dir : string @label "Dir" @description "Text direction of this element's content." @tier "presentation" @values (ltr rtl auto)
|
|
@@ -37322,6 +38008,8 @@ trait ui-markdown-content.traits.MarkdownContentRender {
|
|
|
37322
38008
|
enter : string @label "Enter" @description "How this element animates in when it mounts (theme-styled); overrides the theme's default slot entry. `none` opts out." @tier "presentation" @values (none fade rise scale slide)
|
|
37323
38009
|
enterDelay : number @label "Enter Delay" @description "Stagger step for the entry: waits this many `--motion-enter-stagger` steps before animating." @tier "presentation"
|
|
37324
38010
|
lang : string @label "Lang" @description "Language of this element's content (BCP 47, e.g. ar, sl, en)." @tier "presentation"
|
|
38011
|
+
noteEvent : event = "NOTE" @label "Note Event" @description "Event emitted when the reader picks Note on selected text (as `UI:<noteEvent>`)" @tier "presentation"
|
|
38012
|
+
noteLabel : string @label "Note Label" @description "Note action label (default: translated)" @tier "presentation"
|
|
37325
38013
|
role : string @label "Role" @description "WAI-ARIA role when the element's native semantics don't describe it." @tier "presentation" @values (alert alertdialog application article banner blockquote button caption cell checkbox code columnheader combobox complementary contentinfo definition deletion dialog document emphasis feed figure form generic grid gridcell group heading img insertion link list listbox listitem log main marquee math menu menubar menuitem menuitemcheckbox menuitemradio meter navigation none note option paragraph presentation progressbar radio radiogroup region row rowgroup rowheader scrollbar search searchbox separator slider spinbutton status strong subscript superscript switch tab table tablist tabpanel term textbox time timer toolbar tooltip tree treegrid treeitem)
|
|
37326
38014
|
skeleton : string @label "Skeleton" @description "Skeleton shown while this element's server render is in flight: a shape (`table`, `list`, …), `{ variant, rows?, columns?, fields? }`, or `none`." @tier "presentation" @values (header table list grid detail stats form card text none)
|
|
37327
38015
|
tabIndex : number @label "Tab Index" @description "0 puts the element in the Tab order; -1 makes it focusable only programmatically." @tier "presentation"
|
|
@@ -39111,6 +39799,7 @@ trait ui-upload-drop-zone.traits.UploadDropZoneRender {
|
|
|
39111
39799
|
lang : string @label "Lang" @description "Language of this element's content (BCP 47, e.g. ar, sl, en)." @tier "presentation"
|
|
39112
39800
|
maxFiles : number = 1 @label "Max Files" @description "Max number of files" @tier "presentation"
|
|
39113
39801
|
maxSize : number @label "Max Size" @description "Max file size in bytes" @tier "presentation"
|
|
39802
|
+
readAs : string = "dataUrl" @label "Read As" @description "How the file is read into `content`: a base64 data URL (default) or its UTF-8 text" @tier "presentation" @values (dataUrl text)
|
|
39114
39803
|
role : string @label "Role" @description "WAI-ARIA role when the element's native semantics don't describe it." @tier "presentation" @values (alert alertdialog application article banner blockquote button caption cell checkbox code columnheader combobox complementary contentinfo definition deletion dialog document emphasis feed figure form generic grid gridcell group heading img insertion link list listbox listitem log main marquee math menu menubar menuitem menuitemcheckbox menuitemradio meter navigation none note option paragraph presentation progressbar radio radiogroup region row rowgroup rowheader scrollbar search searchbox separator slider spinbutton status strong subscript superscript switch tab table tablist tabpanel term textbox time timer toolbar tooltip tree treegrid treeitem)
|
|
39115
39804
|
skeleton : string @label "Skeleton" @description "Skeleton shown while this element's server render is in flight: a shape (`table`, `list`, …), `{ variant, rows?, columns?, fields? }`, or `none`." @tier "presentation" @values (header table list grid detail stats form card text none)
|
|
39116
39805
|
tabIndex : number @label "Tab Index" @description "0 puts the element in the Tab order; -1 makes it focusable only programmatically." @tier "presentation"
|
|
@@ -42560,9 +43249,13 @@ trait ui-segment-renderer.traits.SegmentRendererRender {
|
|
|
42560
43249
|
linkedEntity : SegmentRendererItem
|
|
42561
43250
|
category : interaction
|
|
42562
43251
|
states : (idle*)
|
|
42563
|
-
events : (INIT)
|
|
43252
|
+
events : (INIT @config.activationSaveEvent @config.reflectionSaveEvent @config.bloomAnswerEvent @config.askEvent @config.noteEvent @config.annotationEvent)
|
|
42564
43253
|
transitions : ((idle -> idle on INIT))
|
|
43254
|
+
emits : (@config.activationSaveEvent @config.reflectionSaveEvent @config.bloomAnswerEvent @config.askEvent @config.noteEvent @config.annotationEvent)
|
|
42565
43255
|
config {
|
|
43256
|
+
activationSaveEvent : event = "ACTIVATION_SAVE" @label "Activation Save Event" @description "Event emitted when the activation prompt is saved or skipped (as `UI:<activationSaveEvent>`)" @tier "presentation"
|
|
43257
|
+
annotationEvent : event = "ANNOTATION" @label "Annotation Event" @description "Event emitted when a highlighted passage is clicked (as `UI:<annotationEvent>`)" @tier "presentation"
|
|
43258
|
+
annotations : [SegmentRendererAnnotationsItem] = [] @label "Annotations" @description "Passages to highlight. Each `text` is matched exactly against the markdown segments, first segment whose source contains it, first occurrence inside one rendered text node (outside code); one that spans formatting is not highlighted." @tier "presentation"
|
|
42566
43259
|
ariaBusy : boolean @label "Aria-busy" @description "This region is updating; assistive technology waits before announcing it." @synonyms "aria-busy" @tier "presentation"
|
|
42567
43260
|
ariaCurrent : string @label "Aria-current" @description "Marks the current item in a set: the current page, step, location, date or time." @synonyms "aria-current" @tier "presentation" @values (page step location date time true false)
|
|
42568
43261
|
ariaDescribedby : string @label "Aria-describedby" @description "Id of the element whose text describes this one (help text, error)." @synonyms "aria-describedby" @tier "presentation"
|
|
@@ -42573,14 +43266,21 @@ trait ui-segment-renderer.traits.SegmentRendererRender {
|
|
|
42573
43266
|
ariaLive : string @label "Aria-live" @description "Announce changes to this region: polite waits for a pause, assertive interrupts." @synonyms "aria-live" @tier "presentation" @values (off polite assertive)
|
|
42574
43267
|
ariaPressed : string @label "Aria-pressed" @description "Toggle-button state." @synonyms "aria-pressed" @tier "presentation" @values (true false mixed)
|
|
42575
43268
|
ariaSelected : boolean @label "Aria-selected" @description "Whether this item is selected (tabs, options, grid cells)." @synonyms "aria-selected" @tier "presentation"
|
|
43269
|
+
askEvent : event = "ASK" @label "Ask Event" @description "Event emitted when the reader picks Ask on selected text (as `UI:<askEvent>`)" @tier "presentation"
|
|
43270
|
+
askLabel : string @label "Ask Label" @description "Ask action label (default: translated)" @tier "presentation"
|
|
43271
|
+
bloomAnswerEvent : event = "BLOOM_ANSWER" @label "Bloom Answer Event" @description "Event emitted on the first reveal of a Bloom question (as `UI:<bloomAnswerEvent>`)" @tier "presentation"
|
|
42576
43272
|
className : string @label "Class Name" @description "Additional CSS classes for the root container" @tier "presentation"
|
|
42577
43273
|
containerClassName : string @label "Container Class Name" @description "CSS classes for the outer wrapping div" @tier "presentation"
|
|
42578
43274
|
dir : string @label "Dir" @description "Text direction of this element's content." @tier "presentation" @values (ltr rtl auto)
|
|
42579
43275
|
enter : string @label "Enter" @description "How this element animates in when it mounts (theme-styled); overrides the theme's default slot entry. `none` opts out." @tier "presentation" @values (none fade rise scale slide)
|
|
42580
43276
|
enterDelay : number @label "Enter Delay" @description "Stagger step for the entry: waits this many `--motion-enter-stagger` steps before animating." @tier "presentation"
|
|
42581
43277
|
lang : string @label "Lang" @description "Language of this element's content (BCP 47, e.g. ar, sl, en)." @tier "presentation"
|
|
43278
|
+
lesson : string @label "Lesson" @description "Raw lesson markdown with learning tags; parsed with `parseLessonSegments` and rendered" @tier "presentation"
|
|
43279
|
+
noteEvent : event = "NOTE" @label "Note Event" @description "Event emitted when the reader picks Note on selected text (as `UI:<noteEvent>`)" @tier "presentation"
|
|
43280
|
+
noteLabel : string @label "Note Label" @description "Note action label (default: translated)" @tier "presentation"
|
|
43281
|
+
reflectionSaveEvent : event = "REFLECTION_SAVE" @label "Reflection Save Event" @description "Event emitted when a reflection note is saved (as `UI:<reflectionSaveEvent>`)" @tier "presentation"
|
|
42582
43282
|
role : string @label "Role" @description "WAI-ARIA role when the element's native semantics don't describe it." @tier "presentation" @values (alert alertdialog application article banner blockquote button caption cell checkbox code columnheader combobox complementary contentinfo definition deletion dialog document emphasis feed figure form generic grid gridcell group heading img insertion link list listbox listitem log main marquee math menu menubar menuitem menuitemcheckbox menuitemradio meter navigation none note option paragraph presentation progressbar radio radiogroup region row rowgroup rowheader scrollbar search searchbox separator slider spinbutton status strong subscript superscript switch tab table tablist tabpanel term textbox time timer toolbar tooltip tree treegrid treeitem)
|
|
42583
|
-
segments : [SegmentRendererSegmentsItem] = [
|
|
43283
|
+
segments : [SegmentRendererSegmentsItem] = [] @label "Segments" @description "Parsed lesson segments (see `parseLessonSegments`). Ignored when `lesson` is given." @tier "presentation"
|
|
42584
43284
|
skeleton : string @label "Skeleton" @description "Skeleton shown while this element's server render is in flight: a shape (`table`, `list`, …), `{ variant, rows?, columns?, fields? }`, or `none`." @tier "presentation" @values (header table list grid detail stats form card text none)
|
|
42585
43285
|
tabIndex : number @label "Tab Index" @description "0 puts the element in the Tab order; -1 makes it focusable only programmatically." @tier "presentation"
|
|
42586
43286
|
userProgress : SegmentRendererUserProgress @label "User Progress" @description "User progress for restoring activation/reflection state" @tier "presentation"
|