preludes / viewspec-protocol.lisp
viewspec-protocol
ViewSpec protocol. Hosted ViewSpec descriptors that are not component nodes.
From the source
Purpose: Hosted ViewSpec expression, action, and non-component wire contracts. Requires: Core types; ui.lisp and viewspec.lisp supply the associated component descriptors. Used by: Hosted layout compilation, protocol generation, and snapshot checks.
Functions 39
Ordinary typed definitions that programs and elaboration hooks can call.
view-protocol-registryviewspec-protocol.lisp:10
Adapter dispatch and descriptor namespaces read by descriptor-tree-metadata.ts. meta-builtins.ts uses the registry for hosted compilation and validation. Field names and expression/action conventions already live in their consumers.
(define view-protocol-registry …)
view-component-protocolviewspec-protocol.lisp:25
(define view-component-protocol …)
view-expr-getviewspec-protocol.lisp:57
(define view-expr-get …)
view-expr-length-opviewspec-protocol.lisp:60
(define view-expr-length-op …)
view-expr-not-opviewspec-protocol.lisp:65
(define view-expr-not-op …)
view-expr-nil-opviewspec-protocol.lisp:68
(define view-expr-nil-op …)
view-expr-equals-opviewspec-protocol.lisp:71
(define view-expr-equals-op …)
view-expr-not-equals-opviewspec-protocol.lisp:74
(define view-expr-not-equals-op …)
view-expr-greater-than-opviewspec-protocol.lisp:77
(define view-expr-greater-than-op …)
view-expr-greater-than-or-equal-opviewspec-protocol.lisp:80
(define view-expr-greater-than-or-equal-op …)
view-expr-less-than-opviewspec-protocol.lisp:83
(define view-expr-less-than-op …)
view-expr-less-than-or-equal-opviewspec-protocol.lisp:86
(define view-expr-less-than-or-equal-op …)
view-expr-add-opviewspec-protocol.lisp:89
(define view-expr-add-op …)
view-expr-subtract-opviewspec-protocol.lisp:92
(define view-expr-subtract-op …)
view-expr-multiply-opviewspec-protocol.lisp:95
(define view-expr-multiply-op …)
view-expr-divide-opviewspec-protocol.lisp:98
(define view-expr-divide-op …)
view-expr-and-opviewspec-protocol.lisp:101
(define view-expr-and-op …)
view-expr-or-opviewspec-protocol.lisp:104
(define view-expr-or-op …)
view-expr-if-opviewspec-protocol.lisp:107
(define view-expr-if-op …)
view-expr-pipe-opviewspec-protocol.lisp:110
(define view-expr-pipe-op …)
protocolviewspec-protocol.lisp:443
(define protocol …)
view-expr-sourceviewspec-protocol.lisp:446
(define view-expr-source …)
view-set-state-actionviewspec-protocol.lisp:466
(define view-set-state-action …)
view-patch-state-actionviewspec-protocol.lisp:482
(define view-patch-state-action …)
view-toggle-state-actionviewspec-protocol.lisp:498
(define view-toggle-state-action …)
view-run-query-actionviewspec-protocol.lisp:514
(define view-run-query-action …)
view-run-queries-actionviewspec-protocol.lisp:530
(define view-run-queries-action …)
view-navigate-actionviewspec-protocol.lisp:546
(define view-navigate-action …)
view-show-toast-actionviewspec-protocol.lisp:562
(define view-show-toast-action …)
view-open-dialog-actionviewspec-protocol.lisp:583
(define view-open-dialog-action …)
view-close-dialog-actionviewspec-protocol.lisp:599
(define view-close-dialog-action …)
view-emit-actionviewspec-protocol.lisp:615
(define view-emit-action …)
view-execute-action-actionviewspec-protocol.lisp:631
(define view-execute-action-action …)
view-fetch-actionviewspec-protocol.lisp:648
(define view-fetch-action …)
view-tool-call-actionviewspec-protocol.lisp:669
(define view-tool-call-action …)
view-request-display-mode-actionviewspec-protocol.lisp:686
(define view-request-display-mode-action …)
view-update-context-actionviewspec-protocol.lisp:702
(define view-update-context-action …)
view-send-message-actionviewspec-protocol.lisp:721
(define view-send-message-action …)
view-open-file-picker-actionviewspec-protocol.lisp:737
(define view-open-file-picker-action …)
Types 55
Payload contracts and IR shapes, shown as authored.
ViewExprSourceviewspec-protocol.lisp:43
ViewSpec expression root source.
(type ViewExprSource
(Union
"state"
"query"
"input"
"row"
"db"
"item"
"index"
"event"
"result"
"error"
"host"))ViewExprLiteralviewspec-protocol.lisp:113
(type ViewExprLiteral {:kind "literal" :value Json})ViewExprVarviewspec-protocol.lisp:115
(type ViewExprVar
{:kind "var" :source ViewExprSource :path (Option (List String))})ViewExprBinaryviewspec-protocol.lisp:118
(type ViewExprBinary
{
:kind "binary"
:op (Union "===" "!==" ">" ">=" "<" "<=" "+" "-" "*" "/" "&&" "||")
:left ViewExpr
:right ViewExpr})ViewExprUnaryviewspec-protocol.lisp:125
(type ViewExprUnary {:kind "unary" :op (Union "!" "-") :value ViewExpr})ViewExprConditionalviewspec-protocol.lisp:127
(type ViewExprConditional
{:kind "conditional" :condition ViewExpr :then ViewExpr :else ViewExpr})ViewExprPipeviewspec-protocol.lisp:130
(type ViewExprPipe
{:kind "pipe" :name String :value ViewExpr :args (Option (List ViewExpr))})ViewExprviewspec-protocol.lisp:133
(type ViewExpr
(Union
ViewExprLiteral
ViewExprVar
ViewExprBinary
ViewExprUnary
ViewExprConditional
ViewExprPipe))ViewExprNodeviewspec-protocol.lisp:142
(type ViewExprNode ViewExpr)ViewSetStateActionviewspec-protocol.lisp:144
(type ViewSetStateAction
{
:action "setState"
:key String
:value Json
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewPatchStateActionviewspec-protocol.lisp:153
(type ViewPatchStateAction
{
:action "patchState"
:key String
:value Json
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewToggleStateActionviewspec-protocol.lisp:162
(type ViewToggleStateAction
{
:action "toggleState"
:key String
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewRunQueryActionviewspec-protocol.lisp:170
(type ViewRunQueryAction
{
:action "runQuery"
:query String
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewRunQueriesActionviewspec-protocol.lisp:178
(type ViewRunQueriesAction
{
:action "runQueries"
:queries (List String)
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewNavigateActionviewspec-protocol.lisp:186
(type ViewNavigateAction
{
:action "navigate"
:path ViewExpr
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewShowToastActionviewspec-protocol.lisp:194
(type ViewShowToastAction
{
:action "showToast"
:message ViewExpr
:description (Option ViewExpr)
:variant (Option (Union "default" "success" "error" "warning" "info"))
:duration (Option Float)
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewOpenDialogActionviewspec-protocol.lisp:205
(type ViewOpenDialogAction
{
:action "openDialog"
:dialogId String
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewCloseDialogActionviewspec-protocol.lisp:213
(type ViewCloseDialogAction
{
:action "closeDialog"
:dialogId (Option String)
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewEmitActionviewspec-protocol.lisp:221
(type ViewEmitAction
{
:action "emit"
:event String
:payload (Option Json)
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewExecuteActionActionviewspec-protocol.lisp:230
(type ViewExecuteActionAction
{
:action "executeAction"
:actionRef String
:entityId (Option ViewExpr)
:parameters (Option (Map String Json))
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewFetchActionviewspec-protocol.lisp:240
(type ViewFetchAction
{
:action "fetch"
:url ViewExpr
:method (Option (Union "GET" "POST" "PUT" "PATCH" "DELETE"))
:headers (Option (Map String Json))
:body (Option Json)
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewToolCallActionviewspec-protocol.lisp:251
(type ViewToolCallAction
{
:action "toolCall"
:tool ViewExpr
:arguments (Option (Map String Json))
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewRequestDisplayModeActionviewspec-protocol.lisp:260
(type ViewRequestDisplayModeAction
{
:action "requestDisplayMode"
:mode (Union "inline" "fullscreen" "pip")
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewUpdateContextActionviewspec-protocol.lisp:268
(type ViewUpdateContextAction
{
:action "updateContext"
:content (Option ViewExpr)
:structuredContent (Option (Map String Json))
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewSendMessageActionviewspec-protocol.lisp:277
(type ViewSendMessageAction
{
:action "sendMessage"
:content ViewExpr
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewOpenFilePickerActionviewspec-protocol.lisp:285
(type ViewOpenFilePickerAction
{
:action "openFilePicker"
:accept (Option String)
:multiple (Option Bool)
:maxSize (Option Float)
:onSuccess (Option ViewActionOrList)
:onError (Option ViewActionOrList)
:onFinally (Option ViewActionOrList)})ViewActionviewspec-protocol.lisp:295
(type ViewAction
(Union
ViewSetStateAction
ViewPatchStateAction
ViewToggleStateAction
ViewRunQueryAction
ViewRunQueriesAction
ViewNavigateAction
ViewShowToastAction
ViewOpenDialogAction
ViewCloseDialogAction
ViewEmitAction
ViewExecuteActionAction
ViewFetchAction
ViewToolCallAction
ViewRequestDisplayModeAction
ViewUpdateContextAction
ViewSendMessageAction
ViewOpenFilePickerAction))ViewClickEventMapviewspec-protocol.lisp:316
Event maps
(type ViewClickEventMap {:onClick (Option ViewActionOrList)})ViewActionButtonEventMapviewspec-protocol.lisp:318
(type ViewActionButtonEventMap
{:onClick (Option ViewActionOrList) :onSuccess (Option ViewActionOrList)})ViewRowClickEventMapviewspec-protocol.lisp:321
(type ViewRowClickEventMap {:onRowClick (Option ViewActionOrList)})ViewNodeClickEventMapviewspec-protocol.lisp:323
(type ViewNodeClickEventMap {:onNodeClick (Option ViewActionOrList)})ViewChangeEventMapviewspec-protocol.lisp:325
(type ViewChangeEventMap {:onChange (Option ViewActionOrList)})ViewSubmitEventMapviewspec-protocol.lisp:327
(type ViewSubmitEventMap {:onSubmit (Option ViewActionOrList)})ViewOpenChangeEventMapviewspec-protocol.lisp:329
(type ViewOpenChangeEventMap {:onOpenChange (Option ViewActionOrList)})ViewEventMapviewspec-protocol.lisp:331
(type ViewEventMap
{
:onClick (Option ViewActionOrList)
:onSuccess (Option ViewActionOrList)
:onRowClick (Option ViewActionOrList)
:onNodeClick (Option ViewActionOrList)
:onChange (Option ViewActionOrList)
:onSubmit (Option ViewActionOrList)
:onOpenChange (Option ViewActionOrList)})ViewScalarStateDeclviewspec-protocol.lisp:342
State declarations
(type ViewScalarStateDecl
{:kind (Union "string" "number" "boolean" "null") :initial (Option Json)})ViewListStateDeclviewspec-protocol.lisp:345
(type ViewListStateDecl
{:kind "list" :item (Option ViewStateDecl) :initial (Option (List Json))})ViewObjectStateDeclviewspec-protocol.lisp:348
(type ViewObjectStateDecl
{
:kind "object"
:fields (Option (Map String ViewStateDecl))
:initial (Option (Map String Json))})ViewJsonStateDeclviewspec-protocol.lisp:354
(type ViewJsonStateDecl {:kind "json" :initial (Option Json)})ViewComponentStateDeclviewspec-protocol.lisp:356
(type ViewComponentStateDecl
{:kind "component" :initial (Option (Union ViewNode Unit))})ViewStateDeclviewspec-protocol.lisp:359
(type ViewStateDecl
(Union
ViewScalarStateDecl
ViewListStateDecl
ViewObjectStateDecl
ViewJsonStateDecl
ViewComponentStateDecl))ViewTableColumnviewspec-protocol.lisp:368
View node support values
(type ViewTableColumn
{
:key String
:label (Option String)
:kind (Option (Union "text" "status" "severity" "priority" "date" "mono"))})ViewTableFilterviewspec-protocol.lisp:374
(type ViewTableFilter
{
:key String
:label (Option String)
:placeholder (Option String)
:op (Option (Union "ilike" "like" "=" "!=" ">" ">=" "<" "<="))})ViewTableSortviewspec-protocol.lisp:381
(type ViewTableSort {:key String :direction (Option (Union "asc" "desc"))})ViewChartSeriesviewspec-protocol.lisp:383
(type ViewChartSeries
{:dataKey String :label (Option String) :color (Option String)})ViewSelectOptionValueviewspec-protocol.lisp:386
(type ViewSelectOptionValue {:value String :label (Option String)})ViewQueryInlineBindingviewspec-protocol.lisp:389
ViewSpec envelope
(type ViewQueryInlineBinding
{
:query Json
:params (Option (Map String Json))
:dependsOn (Option (List String))})ViewQueryRefBindingviewspec-protocol.lisp:395
(type ViewQueryRefBinding
{
:queryRef String
:params (Option (Map String Json))
:dependsOn (Option (List String))})ViewQueryBindingviewspec-protocol.lisp:401
(type ViewQueryBinding (Union ViewQueryInlineBinding ViewQueryRefBinding))ViewInputParamviewspec-protocol.lisp:403
(type ViewInputParam
{:type String :description (Option String) :default (Option Json)})ViewThemeviewspec-protocol.lisp:406
(type ViewTheme
{
:background (Option String)
:foreground (Option String)
:accent (Option String)
:accentForeground (Option String)
:muted (Option String)
:border (Option String)
:fontFamily (Option String)})ViewCapabilitiesviewspec-protocol.lisp:416
(type ViewCapabilities
{
:toolCall (Option Bool)
:filePicker (Option Bool)
:displayMode (Option Bool)
:fetch (Option Bool)
:sendMessage (Option Bool)
:updateContext (Option Bool)})ViewSpecMarkerviewspec-protocol.lisp:425
(type ViewSpecMarker {:version "2"})ViewSpecviewspec-protocol.lisp:427
(type ViewSpec
{
:$viewSpec (Option ViewSpecMarker)
:description (Option String)
:input (Option (Map String ViewInputParam))
:state (Option (Map String ViewStateDecl))
:queries (Option (Map String ViewQueryBinding))
:defs (Option (Map String ViewNode))
:theme (Option ViewTheme)
:capabilities (Option ViewCapabilities)
:onMount (Option ViewActionOrList)
:keyBindings (Option (Map String ViewActionOrList))
:root ViewNode})ViewActionOrListviewspec-protocol.lisp:441
(type ViewActionOrList (Union ViewAction (List ViewAction)))