@ankhorage/runtime 4.1.2 → 5.0.2

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.
Files changed (86) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +6 -6
  3. package/dist/RuntimeRenderer.d.ts +7 -7
  4. package/dist/RuntimeRenderer.d.ts.map +1 -1
  5. package/dist/RuntimeRenderer.js +40 -80
  6. package/dist/RuntimeRenderer.js.map +1 -1
  7. package/dist/RuntimeRendererConfig.d.ts +7 -22
  8. package/dist/RuntimeRendererConfig.d.ts.map +1 -1
  9. package/dist/RuntimeRendererConfig.js +5 -8
  10. package/dist/RuntimeRendererConfig.js.map +1 -1
  11. package/dist/RuntimeScreen.d.ts.map +1 -1
  12. package/dist/RuntimeScreen.js +10 -5
  13. package/dist/RuntimeScreen.js.map +1 -1
  14. package/dist/bindings.d.ts +4 -8
  15. package/dist/bindings.d.ts.map +1 -1
  16. package/dist/bindings.js +2 -4
  17. package/dist/bindings.js.map +1 -1
  18. package/dist/index.d.ts +10 -12
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +5 -6
  21. package/dist/index.js.map +1 -1
  22. package/dist/runtimeActionRegistry.d.ts +19 -24
  23. package/dist/runtimeActionRegistry.d.ts.map +1 -1
  24. package/dist/runtimeActionRegistry.js +90 -306
  25. package/dist/runtimeActionRegistry.js.map +1 -1
  26. package/dist/runtimeApiCapabilities.d.ts +11 -0
  27. package/dist/runtimeApiCapabilities.d.ts.map +1 -0
  28. package/dist/runtimeApiCapabilities.js +67 -0
  29. package/dist/runtimeApiCapabilities.js.map +1 -0
  30. package/dist/runtimeBindings.d.ts +28 -17
  31. package/dist/runtimeBindings.d.ts.map +1 -1
  32. package/dist/runtimeBindings.js +157 -197
  33. package/dist/runtimeBindings.js.map +1 -1
  34. package/dist/runtimeCapabilityExecutor.d.ts +8 -0
  35. package/dist/runtimeCapabilityExecutor.d.ts.map +1 -0
  36. package/dist/runtimeCapabilityExecutor.js +21 -0
  37. package/dist/runtimeCapabilityExecutor.js.map +1 -0
  38. package/dist/runtimeEventExecution.d.ts +1 -4
  39. package/dist/runtimeEventExecution.d.ts.map +1 -1
  40. package/dist/runtimeEventExecution.js.map +1 -1
  41. package/dist/runtimeEventOperationLifecycle.d.ts +4 -3
  42. package/dist/runtimeEventOperationLifecycle.d.ts.map +1 -1
  43. package/dist/runtimeEventOperationLifecycle.js +5 -5
  44. package/dist/runtimeEventOperationLifecycle.js.map +1 -1
  45. package/dist/runtimeNodeProps.d.ts +12 -24
  46. package/dist/runtimeNodeProps.d.ts.map +1 -1
  47. package/dist/runtimeNodeProps.js +27 -121
  48. package/dist/runtimeNodeProps.js.map +1 -1
  49. package/dist/runtimeRepeat.d.ts +6 -2
  50. package/dist/runtimeRepeat.d.ts.map +1 -1
  51. package/dist/runtimeRepeat.js +29 -108
  52. package/dist/runtimeRepeat.js.map +1 -1
  53. package/dist/runtimeScreenLoaders.d.ts +27 -42
  54. package/dist/runtimeScreenLoaders.d.ts.map +1 -1
  55. package/dist/runtimeScreenLoaders.js +113 -273
  56. package/dist/runtimeScreenLoaders.js.map +1 -1
  57. package/package.json +12 -6
  58. package/paradox/badges/npm.svg +3 -3
  59. package/paradox/components.md +6 -7
  60. package/paradox/diagrams/architecture-overview.mmd +25 -79
  61. package/paradox/diagrams/export-graph.mmd +67 -105
  62. package/paradox/diagrams/module-relationships.mmd +19 -59
  63. package/paradox/diagrams/sequences/apply-runtime-binding-data-path.mmd +14 -0
  64. package/paradox/diagrams/sequences/create-component-event-from-handler-args.mmd +0 -13
  65. package/paradox/diagrams/sequences/create-runtime-screen-loader-request-key.mmd +5 -0
  66. package/paradox/diagrams/sequences/execute-runtime-binding-invocation.mmd +19 -0
  67. package/paradox/diagrams/sequences/resolve-binding-input-map-sync.mmd +5 -0
  68. package/paradox/diagrams/sequences/resolve-binding-input-map.mmd +5 -0
  69. package/paradox/diagrams/sequences/runtime-screen.mmd +6 -3
  70. package/paradox/diagrams/sequences/use-runtime-screen-operation-loaders.mmd +6 -3
  71. package/paradox/exports.json +610 -848
  72. package/paradox/exports.md +280 -308
  73. package/paradox/index.html +1120 -2266
  74. package/paradox/paradox.json +2724 -5528
  75. package/dist/runtimeApiOperations.d.ts +0 -8
  76. package/dist/runtimeApiOperations.d.ts.map +0 -1
  77. package/dist/runtimeApiOperations.js +0 -38
  78. package/dist/runtimeApiOperations.js.map +0 -1
  79. package/dist/runtimeApiSelection.d.ts +0 -8
  80. package/dist/runtimeApiSelection.d.ts.map +0 -1
  81. package/dist/runtimeApiSelection.js +0 -52
  82. package/dist/runtimeApiSelection.js.map +0 -1
  83. package/dist/runtimeDbPersist.d.ts +0 -34
  84. package/dist/runtimeDbPersist.d.ts.map +0 -1
  85. package/dist/runtimeDbPersist.js +0 -73
  86. package/dist/runtimeDbPersist.js.map +0 -1
@@ -1,16 +1,45 @@
1
1
  # Public API
2
2
 
3
+ ## applyRuntimeBindingDataPath
4
+
5
+ Kind: `function`
6
+ Module: `src/runtimeBindings.ts`
7
+ Source: `src/runtimeBindings.ts:206:1`
8
+
9
+ Applies a dotted path to a serializable binding value.
10
+
11
+ ### Signatures
12
+
13
+ - `(value: import("@ankhorage/contracts").SerializableValue | undefined, path: string | undefined) => import("@ankhorage/contracts").SerializableValue | undefined`
14
+ - path: `string | undefined`
15
+ - value: `import("@ankhorage/contracts").SerializableValue | undefined`
16
+ - returns: `import("@ankhorage/contracts").SerializableValue | undefined`
17
+
3
18
  ## ComponentRegistry
4
19
 
5
20
  Kind: `unknown`
6
21
  Module: `src/componentRegistry.ts`
7
22
  Source: `src/componentRegistry.ts:3:1`
8
23
 
24
+ ## composeRuntimeCapabilityExecutor
25
+
26
+ Kind: `function`
27
+ Module: `src/runtimeCapabilityExecutor.ts`
28
+ Source: `src/runtimeCapabilityExecutor.ts:13:1`
29
+
30
+ Routes manifest-owned API capabilities before delegating application-owned capabilities.
31
+
32
+ ### Signatures
33
+
34
+ - `(composition: RuntimeCapabilityExecutorComposition) => RuntimeCapabilityExecutor`
35
+ - composition: `RuntimeCapabilityExecutorComposition`
36
+ - returns: `RuntimeCapabilityExecutor`
37
+
9
38
  ## composeRuntimeNodePropsResolver
10
39
 
11
40
  Kind: `function`
12
41
  Module: `src/RuntimeRendererConfig.tsx`
13
- Source: `src/RuntimeRendererConfig.tsx:98:1`
42
+ Source: `src/RuntimeRendererConfig.tsx:79:1`
14
43
 
15
44
  ### Signatures
16
45
 
@@ -23,7 +52,7 @@ Source: `src/RuntimeRendererConfig.tsx:98:1`
23
52
 
24
53
  Kind: `function`
25
54
  Module: `src/RuntimeRendererConfig.tsx`
26
- Source: `src/RuntimeRendererConfig.tsx:83:1`
55
+ Source: `src/RuntimeRendererConfig.tsx:64:1`
27
56
 
28
57
  ### Signatures
29
58
 
@@ -36,12 +65,14 @@ Source: `src/RuntimeRendererConfig.tsx:83:1`
36
65
 
37
66
  Kind: `function`
38
67
  Module: `src/runtimeActionRegistry.ts`
39
- Source: `src/runtimeActionRegistry.ts:235:1`
68
+ Source: `src/runtimeActionRegistry.ts:179:1`
69
+
70
+ Maps a platform callback invocation to the portable component event representation.
40
71
 
41
72
  ### Signatures
42
73
 
43
- - `(args: { readonly node: UiNode; readonly eventName: string; readonly handlerArgs: readonly unknown[]; }) => ComponentEventDto<string, RuntimeEventPayload>`
44
- - args: `{ readonly node: UiNode; readonly eventName: string; readonly handlerArgs: readonly unknown[]; }`
74
+ - `(args: { readonly capability?: Capability["id"]; readonly node: UiNode; readonly eventName: string; readonly handlerArgs: readonly unknown[]; }) => ComponentEventDto<string, RuntimeEventPayload>`
75
+ - args: `{ readonly capability?: Capability["id"]; readonly node: UiNode; readonly eventName: string; readonly handlerArgs: readonly unknown[]; }`
45
76
  - returns: `ComponentEventDto<string, RuntimeEventPayload>`
46
77
 
47
78
  ## createComponentRegistry
@@ -56,35 +87,13 @@ Source: `src/componentRegistry.ts:5:1`
56
87
  - registries: `readonly Readonly<Record<string, React.ElementType<any, keyof React.JSX.IntrinsicElements>>>[]` (optional)
57
88
  - returns: `Readonly<Record<string, React.ElementType<any, keyof React.JSX.IntrinsicElements>>>`
58
89
 
59
- ## createDbPersistActionHandler
60
-
61
- Kind: `function`
62
- Module: `src/runtimeDbPersist.ts`
63
- Source: `src/runtimeDbPersist.ts:36:1`
64
-
65
- ### Signatures
66
-
67
- - `(args: { readonly dbAdapter: DbAdapter; readonly onResult?: (result: RuntimeDbPersistExecutionResult) => void; }) => RuntimeActionHandler`
68
- - args: `{ readonly dbAdapter: DbAdapter; readonly onResult?: (result: RuntimeDbPersistExecutionResult) => void; }`
69
- - returns: `RuntimeActionHandler`
70
-
71
- ## createDbPersistAdapterError
72
-
73
- Kind: `function`
74
- Module: `src/runtimeDbPersist.ts`
75
- Source: `src/runtimeDbPersist.ts:126:1`
76
-
77
- ### Signatures
78
-
79
- - `(error: RuntimeDbPersistError) => DbAdapterError`
80
- - error: `RuntimeDbPersistError`
81
- - returns: `DbAdapterError`
82
-
83
90
  ## createPendingRuntimeScreenOperationLoaderState
84
91
 
85
92
  Kind: `function`
86
93
  Module: `src/runtimeScreenLoaders.ts`
87
- Source: `src/runtimeScreenLoaders.ts:82:1`
94
+ Source: `src/runtimeScreenLoaders.ts:85:1`
95
+
96
+ Constructs a pending state for capability-backed screen loaders.
88
97
 
89
98
  ### Signatures
90
99
 
@@ -96,43 +105,35 @@ Source: `src/runtimeScreenLoaders.ts:82:1`
96
105
 
97
106
  Kind: `function`
98
107
  Module: `src/runtimeActionRegistry.ts`
99
- Source: `src/runtimeActionRegistry.ts:73:1`
108
+ Source: `src/runtimeActionRegistry.ts:69:1`
109
+
110
+ Creates a registry that dispatches every authored event through one capability executor.
100
111
 
101
112
  ### Signatures
102
113
 
103
- - `(options?: { actionHandlers?: RuntimeActionHandlers; apis?: ApiDefinitionRegistry; dataBindings?: ComponentDataBindingRegistry; executeAction?: RuntimeActionHandler; executeOperation?: RuntimeBindingOperationExecutor; eventOperationLifecycle?: RuntimeEventOperationLifecycle; operationResults?: RuntimeBindingOperationResultCache; writeOperationResult?: RuntimeBindingOperationResultWriter; }) => RuntimeActionRegistry`
104
- - options: `{ actionHandlers?: RuntimeActionHandlers; apis?: ApiDefinitionRegistry; dataBindings?: ComponentDataBindingRegistry; executeAction?: RuntimeActionHandler; executeOperation?: RuntimeBindingOperationExecutor; eventOperationLifecycle?: RuntimeEventOperationLifecycle; operationResults?: RuntimeBindingOperationResultCache; writeOperationResult?: RuntimeBindingOperationResultWriter; }` (optional)
114
+ - `(options?: Pick<RuntimeComponentEventDispatchArgs, "dataBindings" | "eventOperationLifecycle" | "executeCapability" | "resultSlots" | "writeResultSlot">) => RuntimeActionRegistry`
115
+ - options: `Pick<RuntimeComponentEventDispatchArgs, "dataBindings" | "eventOperationLifecycle" | "executeCapability" | "resultSlots" | "writeResultSlot">` (optional)
105
116
  - returns: `RuntimeActionRegistry`
106
117
 
107
- ## createRuntimeApiOperationExecutor
118
+ ## createRuntimeApiCapabilityExecutor
108
119
 
109
120
  Kind: `function`
110
- Module: `src/runtimeApiOperations.ts`
111
- Source: `src/runtimeApiOperations.ts:12:1`
112
-
113
- ### Signatures
114
-
115
- - `(options: RuntimeApiOperationExecutorOptions) => RuntimeBindingOperationExecutor`
116
- - options: `RuntimeApiOperationExecutorOptions`
117
- - returns: `RuntimeBindingOperationExecutor`
118
-
119
- ## createRuntimeBindingOperationKey
121
+ Module: `src/runtimeApiCapabilities.ts`
122
+ Source: `src/runtimeApiCapabilities.ts:23:1`
120
123
 
121
- Kind: `function`
122
- Module: `src/runtimeBindings.ts`
123
- Source: `src/runtimeBindings.ts:166:1`
124
+ Creates the canonical API capability adapter over Runtime's existing data-operation executor.
124
125
 
125
126
  ### Signatures
126
127
 
127
- - `(operation: BindingOperationRef) => string`
128
- - operation: `BindingOperationRef`
129
- - returns: `string`
128
+ - `(options: RuntimeApiCapabilityExecutorOptions) => RuntimeCapabilityExecutor`
129
+ - options: `RuntimeApiCapabilityExecutorOptions`
130
+ - returns: `RuntimeCapabilityExecutor`
130
131
 
131
132
  ## createRuntimeEventOperationBindingContext
132
133
 
133
134
  Kind: `function`
134
135
  Module: `src/runtimeEventOperationLifecycle.ts`
135
- Source: `src/runtimeEventOperationLifecycle.ts:92:1`
136
+ Source: `src/runtimeEventOperationLifecycle.ts:93:1`
136
137
 
137
138
  ### Signatures
138
139
 
@@ -145,7 +146,7 @@ Source: `src/runtimeEventOperationLifecycle.ts:92:1`
145
146
 
146
147
  Kind: `function`
147
148
  Module: `src/runtimeEventOperationLifecycle.ts`
148
- Source: `src/runtimeEventOperationLifecycle.ts:39:1`
149
+ Source: `src/runtimeEventOperationLifecycle.ts:40:1`
149
150
 
150
151
  ### Signatures
151
152
 
@@ -169,67 +170,91 @@ Source: `src/runtimeStateAdapter.ts:18:1`
169
170
 
170
171
  Kind: `function`
171
172
  Module: `src/runtimeScreenLoaders.ts`
172
- Source: `src/runtimeScreenLoaders.ts:49:1`
173
+ Source: `src/runtimeScreenLoaders.ts:65:1`
174
+
175
+ Creates a deterministic loader request key from resolved inputs and declared result slots.
173
176
 
174
177
  ### Signatures
175
178
 
176
- - `(args: { readonly screenId: string; readonly loaders: readonly OperationScreenDataLoaderDefinition[]; readonly bindingContext?: Record<string, unknown>; readonly operationResults?: RuntimeBindingOperationResultCache; }) => string`
177
- - args: `{ readonly screenId: string; readonly loaders: readonly OperationScreenDataLoaderDefinition[]; readonly bindingContext?: Record<string, unknown>; readonly operationResults?: RuntimeBindingOperationResultCache; }`
179
+ - `(args: { readonly screenId: string; readonly loaders: readonly ScreenDataLoaderDefinition[]; readonly bindingContext?: Record<string, unknown>; readonly resultSlots?: RuntimeBindingResultCache; }) => string`
180
+ - args: `{ readonly screenId: string; readonly loaders: readonly ScreenDataLoaderDefinition[]; readonly bindingContext?: Record<string, unknown>; readonly resultSlots?: RuntimeBindingResultCache; }`
178
181
  - returns: `string`
179
182
 
183
+ ## createRuntimeScreenOperationLoaderRequestLifecycle
184
+
185
+ Kind: `function`
186
+ Module: `src/runtimeScreenLoaders.ts`
187
+ Source: `src/runtimeScreenLoaders.ts:37:1`
188
+
189
+ Tracks one active screen-loader request per effective dependency key.
190
+
191
+ ### Signatures
192
+
193
+ - `() => RuntimeScreenOperationLoaderRequestLifecycle`
194
+ - returns: `RuntimeScreenOperationLoaderRequestLifecycle`
195
+
180
196
  ## dispatchRuntimeComponentEvent
181
197
 
182
198
  Kind: `function`
183
199
  Module: `src/runtimeActionRegistry.ts`
184
- Source: `src/runtimeActionRegistry.ts:111:1`
200
+ Source: `src/runtimeActionRegistry.ts:87:1`
201
+
202
+ Executes every matching event invocation through the canonical capability path.
185
203
 
186
204
  ### Signatures
187
205
 
188
- - `(args: RuntimeComponentEventDispatchArgs & { readonly actionHandlers?: RuntimeActionHandlers; }) => Promise<readonly DataSourceDiagnostic[]>`
189
- - args: `RuntimeComponentEventDispatchArgs & { readonly actionHandlers?: RuntimeActionHandlers; }`
206
+ - `(args: RuntimeComponentEventDispatchArgs) => Promise<readonly DataSourceDiagnostic[]>`
207
+ - args: `RuntimeComponentEventDispatchArgs`
190
208
  - returns: `Promise<readonly DataSourceDiagnostic[]>`
191
209
 
192
210
  ## dispatchRuntimeComponentEventWithReporting
193
211
 
194
212
  Kind: `function`
195
213
  Module: `src/runtimeEventExecution.ts`
196
- Source: `src/runtimeEventExecution.ts:14:1`
214
+ Source: `src/runtimeEventExecution.ts:13:1`
197
215
 
198
216
  ### Signatures
199
217
 
200
- - `(args: RuntimeComponentEventDispatchArgs & RuntimeEventDiagnosticsReporter & { readonly actionHandlers?: RuntimeActionHandlers; }) => Promise<readonly DataSourceDiagnostic[]>`
201
- - args: `RuntimeComponentEventDispatchArgs & RuntimeEventDiagnosticsReporter & { readonly actionHandlers?: RuntimeActionHandlers; }`
218
+ - `(args: RuntimeComponentEventDispatchArgs & RuntimeEventDiagnosticsReporter) => Promise<readonly DataSourceDiagnostic[]>`
219
+ - args: `RuntimeComponentEventDispatchArgs & RuntimeEventDiagnosticsReporter`
202
220
  - returns: `Promise<readonly DataSourceDiagnostic[]>`
203
221
 
204
- ## executeDbPersistAction
222
+ ## executeRuntimeBindingInvocation
205
223
 
206
224
  Kind: `function`
207
- Module: `src/runtimeDbPersist.ts`
208
- Source: `src/runtimeDbPersist.ts:48:1`
225
+ Module: `src/runtimeBindings.ts`
226
+ Source: `src/runtimeBindings.ts:179:1`
227
+
228
+ Invokes one capability and records its structured result under its declared local slot.
209
229
 
210
230
  ### Signatures
211
231
 
212
- - `(args: { readonly dbAdapter: DbAdapter; readonly handlerArgs: RuntimeActionHandlerArgs; }) => Promise<RuntimeDbPersistExecutionResult>`
213
- - args: `{ readonly dbAdapter: DbAdapter; readonly handlerArgs: RuntimeActionHandlerArgs; }`
214
- - returns: `Promise<RuntimeDbPersistExecutionResult>`
232
+ - `(invocation: BindingInvocation, context: RuntimeBindingResolutionContext, args?: Pick<RuntimeCapabilityExecutionArgs, "event" | "node">, diagnostics?: DataSourceDiagnostic[]) => Promise<RuntimeCapabilityExecutionResult | undefined>`
233
+ - args: `Pick<RuntimeCapabilityExecutionArgs, "event" | "node">` (optional)
234
+ - context: `RuntimeBindingResolutionContext`
235
+ - diagnostics: `DataSourceDiagnostic[]` (optional)
236
+ - invocation: `BindingInvocation`
237
+ - returns: `Promise<RuntimeCapabilityExecutionResult | undefined>`
215
238
 
216
239
  ## executeRuntimeScreenOperationLoaders
217
240
 
218
241
  Kind: `function`
219
242
  Module: `src/runtimeScreenLoaders.ts`
220
- Source: `src/runtimeScreenLoaders.ts:178:1`
243
+ Source: `src/runtimeScreenLoaders.ts:98:1`
244
+
245
+ Executes screen loaders through the same invocation and result-slot machinery as events.
221
246
 
222
247
  ### Signatures
223
248
 
224
- - `(args: { readonly bindingContext?: Record<string, unknown>; readonly apis?: RuntimeBindingResolutionContext["apis"]; readonly executeOperation?: RuntimeBindingOperationExecutor; readonly operationResults?: RuntimeBindingOperationResultCache; readonly screen: ScreenSpec; readonly loaders: readonly OperationScreenDataLoaderDefinition[]; }) => Promise<RuntimeScreenOperationLoaderExecutionResult>`
225
- - args: `{ readonly bindingContext?: Record<string, unknown>; readonly apis?: RuntimeBindingResolutionContext["apis"]; readonly executeOperation?: RuntimeBindingOperationExecutor; readonly operationResults?: RuntimeBindingOperationResultCache; readonly screen: ScreenSpec; readonly loaders: readonly OperationScreenDataLoaderDefinition[]; }`
249
+ - `(args: { readonly bindingContext?: Record<string, unknown>; readonly executeCapability?: RuntimeCapabilityExecutor; readonly resultSlots?: RuntimeBindingResultCache; readonly screen: ScreenSpec; readonly loaders: readonly ScreenDataLoaderDefinition[]; }) => Promise<RuntimeScreenOperationLoaderExecutionResult>`
250
+ - args: `{ readonly bindingContext?: Record<string, unknown>; readonly executeCapability?: RuntimeCapabilityExecutor; readonly resultSlots?: RuntimeBindingResultCache; readonly screen: ScreenSpec; readonly loaders: readonly ScreenDataLoaderDefinition[]; }`
226
251
  - returns: `Promise<RuntimeScreenOperationLoaderExecutionResult>`
227
252
 
228
253
  ## IDLE_RUNTIME_EVENT_OPERATION_STATE
229
254
 
230
255
  Kind: `value`
231
256
  Module: `src/runtimeEventOperationLifecycle.ts`
232
- Source: `src/runtimeEventOperationLifecycle.ts:27:14`
257
+ Source: `src/runtimeEventOperationLifecycle.ts:28:14`
233
258
 
234
259
  ## isRuntimeContextCapabilityOutputPath
235
260
 
@@ -267,7 +292,7 @@ Source: `src/ManifestContext.tsx:12:1`
267
292
 
268
293
  Kind: `function`
269
294
  Module: `src/RuntimeRendererConfig.tsx`
270
- Source: `src/RuntimeRendererConfig.tsx:116:1`
295
+ Source: `src/RuntimeRendererConfig.tsx:97:1`
271
296
 
272
297
  ### Signatures
273
298
 
@@ -280,59 +305,88 @@ Source: `src/RuntimeRendererConfig.tsx:116:1`
280
305
 
281
306
  Kind: `function`
282
307
  Module: `src/runtimeBindings.ts`
283
- Source: `src/runtimeBindings.ts:132:1`
308
+ Source: `src/runtimeBindings.ts:159:1`
309
+
310
+ Resolves an invocation input map recursively.
284
311
 
285
312
  ### Signatures
286
313
 
287
- - `(input: Readonly<Record<string, BindingInputValue>> | undefined, context: RuntimeBindingResolutionContext, diagnostics?: DataSourceDiagnostic[]) => Promise<import("@ankhorage/contracts").SerializableValue | undefined>`
314
+ - `(input: Readonly<Record<string, BindingExpression>> | undefined, context: RuntimeBindingResolutionContext, diagnostics?: DataSourceDiagnostic[]) => Promise<import("@ankhorage/contracts").SerializableValue | undefined>`
288
315
  - context: `RuntimeBindingResolutionContext`
289
316
  - diagnostics: `DataSourceDiagnostic[]` (optional)
290
- - input: `Readonly<Record<string, BindingInputValue>> | undefined`
317
+ - input: `Readonly<Record<string, BindingExpression>> | undefined`
291
318
  - returns: `Promise<import("@ankhorage/contracts").SerializableValue | undefined>`
292
319
 
293
- ## resolveDbPersistInput
320
+ ## resolveBindingInputMapSync
294
321
 
295
322
  Kind: `function`
296
- Module: `src/runtimeDbPersist.ts`
297
- Source: `src/runtimeDbPersist.ts:68:1`
323
+ Module: `src/runtimeBindings.ts`
324
+ Source: `src/runtimeBindings.ts:170:1`
325
+
326
+ Resolves an invocation input map without executing a capability.
298
327
 
299
328
  ### Signatures
300
329
 
301
- - `(payload: object | undefined) => { readonly ok: true; readonly data: DbInsertInput; } | { readonly ok: false; readonly error: RuntimeDbPersistError; }`
302
- - payload: `object | undefined`
303
- - returns: `{ readonly ok: true; readonly data: DbInsertInput; } | { readonly ok: false; readonly error: RuntimeDbPersistError; }`
330
+ - `(input: Readonly<Record<string, BindingExpression>> | undefined, context: RuntimeBindingResolutionContext, diagnostics?: DataSourceDiagnostic[]) => import("@ankhorage/contracts").SerializableValue | undefined`
331
+ - context: `RuntimeBindingResolutionContext`
332
+ - diagnostics: `DataSourceDiagnostic[]` (optional)
333
+ - input: `Readonly<Record<string, BindingExpression>> | undefined`
334
+ - returns: `import("@ankhorage/contracts").SerializableValue | undefined`
304
335
 
305
- ## resolveRuntimeActionPayload
336
+ ## resolveRuntimeActionValue
306
337
 
307
338
  Kind: `function`
308
339
  Module: `src/runtimeActionRegistry.ts`
309
- Source: `src/runtimeActionRegistry.ts:249:1`
340
+ Source: `src/runtimeActionRegistry.ts:193:1`
341
+
342
+ Resolves an authored expression-shaped payload for imperative consumers.
310
343
 
311
344
  ### Signatures
312
345
 
313
- - `(payload: object | undefined, args: RuntimeActionResolutionArgs) => object | undefined`
346
+ - `(value: BindingExpression, args: RuntimeActionResolutionArgs) => import("@ankhorage/contracts").SerializableValue | undefined`
314
347
  - args: `RuntimeActionResolutionArgs`
315
- - payload: `object | undefined`
316
- - returns: `object | undefined`
348
+ - value: `BindingExpression`
349
+ - returns: `import("@ankhorage/contracts").SerializableValue | undefined`
317
350
 
318
- ## resolveRuntimeActionValue
351
+ ## resolveRuntimeBindingExpression
319
352
 
320
353
  Kind: `function`
321
- Module: `src/runtimeActionRegistry.ts`
322
- Source: `src/runtimeActionRegistry.ts:260:1`
354
+ Module: `src/runtimeBindings.ts`
355
+ Source: `src/runtimeBindings.ts:90:1`
356
+
357
+ Resolves one recursive Contracts expression, executing a capability only when needed.
323
358
 
324
359
  ### Signatures
325
360
 
326
- - `(value: unknown, args: RuntimeActionResolutionArgs) => object | undefined`
327
- - args: `RuntimeActionResolutionArgs`
328
- - value: `unknown`
329
- - returns: `object | undefined`
361
+ - `(expression: BindingExpression, context: RuntimeBindingResolutionContext, diagnostics?: DataSourceDiagnostic[]) => Promise<import("@ankhorage/contracts").SerializableValue | undefined>`
362
+ - context: `RuntimeBindingResolutionContext`
363
+ - diagnostics: `DataSourceDiagnostic[]` (optional)
364
+ - expression: `BindingExpression`
365
+ - returns: `Promise<import("@ankhorage/contracts").SerializableValue | undefined>`
366
+
367
+ ## resolveRuntimeBindingExpressionSync
368
+
369
+ Kind: `function`
370
+ Module: `src/runtimeBindings.ts`
371
+ Source: `src/runtimeBindings.ts:116:1`
372
+
373
+ Resolves one expression without side effects for synchronous rendering.
374
+
375
+ ### Signatures
376
+
377
+ - `(expression: BindingExpression, context: RuntimeBindingResolutionContext, diagnostics?: DataSourceDiagnostic[]) => import("@ankhorage/contracts").SerializableValue | undefined`
378
+ - context: `RuntimeBindingResolutionContext`
379
+ - diagnostics: `DataSourceDiagnostic[]` (optional)
380
+ - expression: `BindingExpression`
381
+ - returns: `import("@ankhorage/contracts").SerializableValue | undefined`
330
382
 
331
383
  ## resolveRuntimeBindings
332
384
 
333
385
  Kind: `function`
334
386
  Module: `src/runtimeBindings.ts`
335
- Source: `src/runtimeBindings.ts:92:1`
387
+ Source: `src/runtimeBindings.ts:76:1`
388
+
389
+ Resolves property bindings using only already materialized capability values.
336
390
 
337
391
  ### Signatures
338
392
 
@@ -344,7 +398,9 @@ Source: `src/runtimeBindings.ts:92:1`
344
398
 
345
399
  Kind: `function`
346
400
  Module: `src/runtimeBindings.ts`
347
- Source: `src/runtimeBindings.ts:77:1`
401
+ Source: `src/runtimeBindings.ts:62:1`
402
+
403
+ Resolves every property binding through the canonical expression boundary.
348
404
 
349
405
  ### Signatures
350
406
 
@@ -356,29 +412,33 @@ Source: `src/runtimeBindings.ts:77:1`
356
412
 
357
413
  Kind: `function`
358
414
  Module: `src/runtimeBindings.ts`
359
- Source: `src/runtimeBindings.ts:106:1`
415
+ Source: `src/runtimeBindings.ts:141:1`
416
+
417
+ Resolves a property binding expression.
360
418
 
361
419
  ### Signatures
362
420
 
363
- - `(binding: PropBinding, context: RuntimeBindingResolutionContext, diagnostics?: DataSourceDiagnostic[]) => Promise<unknown>`
421
+ - `(binding: PropBinding, context: RuntimeBindingResolutionContext, diagnostics?: DataSourceDiagnostic[]) => Promise<import("@ankhorage/contracts").SerializableValue | undefined>`
364
422
  - binding: `PropBinding`
365
423
  - context: `RuntimeBindingResolutionContext`
366
424
  - diagnostics: `DataSourceDiagnostic[]` (optional)
367
- - returns: `Promise<unknown>`
425
+ - returns: `Promise<import("@ankhorage/contracts").SerializableValue | undefined>`
368
426
 
369
427
  ## resolveRuntimeBindingValueSync
370
428
 
371
429
  Kind: `function`
372
430
  Module: `src/runtimeBindings.ts`
373
- Source: `src/runtimeBindings.ts:119:1`
431
+ Source: `src/runtimeBindings.ts:150:1`
432
+
433
+ Resolves a property binding expression without executing a capability.
374
434
 
375
435
  ### Signatures
376
436
 
377
- - `(binding: PropBinding, context: RuntimeBindingResolutionContext, diagnostics?: DataSourceDiagnostic[]) => unknown`
437
+ - `(binding: PropBinding, context: RuntimeBindingResolutionContext, diagnostics?: DataSourceDiagnostic[]) => import("@ankhorage/contracts").SerializableValue | undefined`
378
438
  - binding: `PropBinding`
379
439
  - context: `RuntimeBindingResolutionContext`
380
440
  - diagnostics: `DataSourceDiagnostic[]` (optional)
381
- - returns: `unknown`
441
+ - returns: `import("@ankhorage/contracts").SerializableValue | undefined`
382
442
 
383
443
  ## resolveRuntimeContextCapability
384
444
 
@@ -398,7 +458,7 @@ Materializes a Runtime-owned context capability for the active renderer scope.
398
458
 
399
459
  Kind: `function`
400
460
  Module: `src/runtimeEventOperationLifecycle.ts`
401
- Source: `src/runtimeEventOperationLifecycle.ts:113:1`
461
+ Source: `src/runtimeEventOperationLifecycle.ts:114:1`
402
462
 
403
463
  ### Signatures
404
464
 
@@ -410,26 +470,15 @@ Source: `src/runtimeEventOperationLifecycle.ts:113:1`
410
470
 
411
471
  Kind: `function`
412
472
  Module: `src/runtimeScreenLoaders.ts`
413
- Source: `src/runtimeScreenLoaders.ts:43:1`
473
+ Source: `src/runtimeScreenLoaders.ts:58:1`
474
+
475
+ Returns the portable capability invocations authored on a screen.
414
476
 
415
477
  ### Signatures
416
478
 
417
- - `(screen: ScreenSpec) => readonly OperationScreenDataLoaderDefinition[]`
479
+ - `(screen: ScreenSpec) => readonly import("@ankhorage/contracts").BindingInvocation[]`
418
480
  - screen: `ScreenSpec`
419
- - returns: `readonly OperationScreenDataLoaderDefinition[]`
420
-
421
- ## RuntimeAction
422
-
423
- Kind: `type`
424
- Module: `src/RuntimeRendererConfig.tsx`
425
- Source: `src/RuntimeRendererConfig.tsx:46:1`
426
-
427
- ### Members
428
-
429
- | Name | Kind | Type | Required | Description |
430
- | --- | --- | --- | --- | --- |
431
- | payload | property | `object \| undefined` | no | |
432
- | type | property | ``${string}.${string}`` | yes | |
481
+ - returns: `readonly import("@ankhorage/contracts").BindingInvocation[]`
433
482
 
434
483
  ## RuntimeActionDescriptor
435
484
 
@@ -446,57 +495,23 @@ Source: `src/runtimeManifest.ts:17:1`
446
495
  | description | property | `string \| undefined` | no | |
447
496
  | id | property | `string` | yes | |
448
497
 
449
- ## RuntimeActionExecutor
450
-
451
- Kind: `unknown`
452
- Module: `src/RuntimeRendererConfig.tsx`
453
- Source: `src/RuntimeRendererConfig.tsx:52:1`
454
-
455
- ## RuntimeActionHandler
456
-
457
- Kind: `unknown`
458
- Module: `src/RuntimeRendererConfig.tsx`
459
- Source: `src/RuntimeRendererConfig.tsx:50:1`
460
-
461
- ## RuntimeActionHandlerArgs
462
-
463
- Kind: `type`
464
- Module: `src/RuntimeRendererConfig.tsx`
465
- Source: `src/RuntimeRendererConfig.tsx:39:1`
466
-
467
- ### Members
468
-
469
- | Name | Kind | Type | Required | Description |
470
- | --- | --- | --- | --- | --- |
471
- | action | property | `RuntimeAction` | yes | |
472
- | event | property | `ComponentEventDto<string, object> \| undefined` | no | |
473
- | node | property | `UiNode \| undefined` | no | |
474
- | resolvedPayload | property | `object \| undefined` | no | |
475
-
476
- ## RuntimeActionHandlers
477
-
478
- Kind: `unknown`
479
- Module: `src/RuntimeRendererConfig.tsx`
480
- Source: `src/RuntimeRendererConfig.tsx:51:1`
481
-
482
498
  ## RuntimeActionRegistry
483
499
 
484
500
  Kind: `type`
485
501
  Module: `src/runtimeActionRegistry.ts`
486
- Source: `src/runtimeActionRegistry.ts:36:1`
502
+ Source: `src/runtimeActionRegistry.ts:33:1`
487
503
 
488
504
  ### Members
489
505
 
490
506
  | Name | Kind | Type | Required | Description |
491
507
  | --- | --- | --- | --- | --- |
492
508
  | dispatchComponentEvent | method | `(args: RuntimeComponentEventDispatchArgs) => Promise<void>` | yes | |
493
- | registerActionHandler | method | `(type: Capability["id"], handler: RuntimeActionHandler) => () => void` | yes | |
494
509
 
495
510
  ## RuntimeActionResolutionArgs
496
511
 
497
512
  Kind: `type`
498
513
  Module: `src/runtimeActionRegistry.ts`
499
- Source: `src/runtimeActionRegistry.ts:47:1`
514
+ Source: `src/runtimeActionRegistry.ts:43:1`
500
515
 
501
516
  ### Members
502
517
 
@@ -504,21 +519,21 @@ Source: `src/runtimeActionRegistry.ts:47:1`
504
519
  | --- | --- | --- | --- | --- |
505
520
  | context | property | `Record<string, unknown> \| undefined` | no | |
506
521
  | event | property | `ComponentEventDto<string, object>` | yes | |
507
- | operationResults | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
522
+ | resultSlots | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
508
523
  | state | property | `Record<string, unknown> \| undefined` | no | |
509
524
 
510
525
  ## RuntimeActionResolutionScope
511
526
 
512
527
  Kind: `type`
513
528
  Module: `src/runtimeActionRegistry.ts`
514
- Source: `src/runtimeActionRegistry.ts:41:1`
529
+ Source: `src/runtimeActionRegistry.ts:37:1`
515
530
 
516
531
  ### Members
517
532
 
518
533
  | Name | Kind | Type | Required | Description |
519
534
  | --- | --- | --- | --- | --- |
520
535
  | context | property | `Record<string, unknown> \| undefined` | no | |
521
- | operationResults | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
536
+ | resultSlots | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
522
537
  | state | property | `Record<string, unknown> \| undefined` | no | |
523
538
 
524
539
  ## RuntimeAdapterDescriptor
@@ -535,32 +550,20 @@ Source: `src/runtimeManifest.ts:32:1`
535
550
  | kind | property | `string` | yes | |
536
551
  | options | property | `Options \| undefined` | no | |
537
552
 
538
- ## RuntimeApiOperationExecutorOptions
553
+ ## RuntimeApiCapabilityExecutorOptions
539
554
 
540
555
  Kind: `type`
541
- Module: `src/runtimeApiOperations.ts`
542
- Source: `src/runtimeApiOperations.ts:7:1`
556
+ Module: `src/runtimeApiCapabilities.ts`
557
+ Source: `src/runtimeApiCapabilities.ts:16:1`
543
558
 
544
559
  ### Members
545
560
 
546
561
  | Name | Kind | Type | Required | Description |
547
562
  | --- | --- | --- | --- | --- |
563
+ | apis | property | `ApiDefinitionRegistry` | yes | |
548
564
  | credentialResolver | property | `EndpointTestCredentialResolver \| undefined` | no | |
549
565
  | fetch | property | `EndpointTestFetch \| undefined` | no | |
550
566
 
551
- ## RuntimeApiOperationSelection
552
-
553
- Kind: `type`
554
- Module: `src/runtimeApiSelection.ts`
555
- Source: `src/runtimeApiSelection.ts:10:1`
556
-
557
- ### Members
558
-
559
- | Name | Kind | Type | Required | Description |
560
- | --- | --- | --- | --- | --- |
561
- | api | property | `ApiDefinition` | yes | |
562
- | endpoint | property | `DataEndpointConfig` | yes | |
563
-
564
567
  ## RuntimeBindingDescriptor
565
568
 
566
569
  Kind: `type`
@@ -577,125 +580,131 @@ Source: `src/runtimeManifest.ts:24:1`
577
580
  | target | property | `string` | yes | |
578
581
  | value | property | `Value \| undefined` | no | |
579
582
 
580
- ## RuntimeBindingOperationExecutionArgs
583
+ ## RuntimeBindingResolutionArgs
581
584
 
582
585
  Kind: `type`
583
586
  Module: `src/runtimeBindings.ts`
584
- Source: `src/runtimeBindings.ts:25:1`
587
+ Source: `src/runtimeBindings.ts:51:1`
585
588
 
586
589
  ### Members
587
590
 
588
591
  | Name | Kind | Type | Required | Description |
589
592
  | --- | --- | --- | --- | --- |
590
- | api | property | `ApiDefinition` | yes | |
591
- | endpoint | property | `DataEndpointConfig` | yes | |
592
- | input | property | `import("@ankhorage/contracts").SerializableValue \| undefined` | no | |
593
- | node | property | `UiNode \| undefined` | no | |
594
- | operation | property | `BindingOperationRef` | yes | |
593
+ | capabilityValues | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
594
+ | context | property | `Record<string, unknown> \| undefined` | no | |
595
+ | dataBindings | property | `ComponentDataBindingRegistry \| undefined` | no | |
596
+ | event | property | `ComponentEventDto<string, object> \| undefined` | no | |
597
+ | executeCapability | property | `RuntimeCapabilityExecutor \| undefined` | no | |
598
+ | node | property | `UiNode` | yes | |
599
+ | props | property | `Record<string, unknown>` | yes | |
600
+ | resultSlots | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
601
+ | stateAdapter | property | `StateAdapter \| undefined` | no | |
602
+ | writeResultSlot | property | `RuntimeBindingResultWriter \| undefined` | no | |
595
603
 
596
- ## RuntimeBindingOperationExecutionResult
604
+ ## RuntimeBindingResolutionContext
597
605
 
598
- Kind: `unknown`
606
+ Kind: `type`
599
607
  Module: `src/runtimeBindings.ts`
600
- Source: `src/runtimeBindings.ts:33:1`
608
+ Source: `src/runtimeBindings.ts:40:1`
601
609
 
602
- ## RuntimeBindingOperationExecutor
610
+ ### Members
603
611
 
604
- Kind: `unknown`
605
- Module: `src/runtimeBindings.ts`
606
- Source: `src/runtimeBindings.ts:44:1`
612
+ | Name | Kind | Type | Required | Description |
613
+ | --- | --- | --- | --- | --- |
614
+ | capabilityValues | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
615
+ | context | property | `Record<string, unknown> \| undefined` | no | |
616
+ | dataBindings | property | `ComponentDataBindingRegistry \| undefined` | no | |
617
+ | event | property | `ComponentEventDto<string, object> \| undefined` | no | |
618
+ | executeCapability | property | `RuntimeCapabilityExecutor \| undefined` | no | |
619
+ | resultSlots | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
620
+ | stateAdapter | property | `StateAdapter \| undefined` | no | |
621
+ | writeResultSlot | property | `RuntimeBindingResultWriter \| undefined` | no | |
607
622
 
608
- ## RuntimeBindingOperationKey
623
+ ## RuntimeBindingResolutionResult
609
624
 
610
- Kind: `unknown`
625
+ Kind: `type`
611
626
  Module: `src/runtimeBindings.ts`
612
- Source: `src/runtimeBindings.ts:23:1`
627
+ Source: `src/runtimeBindings.ts:56:1`
613
628
 
614
- ## RuntimeBindingOperationResultCache
629
+ ### Members
630
+
631
+ | Name | Kind | Type | Required | Description |
632
+ | --- | --- | --- | --- | --- |
633
+ | diagnostics | property | `readonly DataSourceDiagnostic[]` | yes | |
634
+ | props | property | `Record<string, unknown>` | yes | |
635
+
636
+ ## RuntimeBindingResultCache
615
637
 
616
638
  Kind: `unknown`
617
639
  Module: `src/runtimeBindings.ts`
618
- Source: `src/runtimeBindings.ts:48:1`
640
+ Source: `src/runtimeBindings.ts:18:1`
619
641
 
620
- ## RuntimeBindingOperationResultWriter
642
+ ## RuntimeBindingResultWriter
621
643
 
622
644
  Kind: `unknown`
623
645
  Module: `src/runtimeBindings.ts`
624
- Source: `src/runtimeBindings.ts:52:1`
646
+ Source: `src/runtimeBindings.ts:19:1`
625
647
 
626
- ## RuntimeBindingResolutionArgs
648
+ ## RuntimeCapabilityExecutionArgs
627
649
 
628
650
  Kind: `type`
629
651
  Module: `src/runtimeBindings.ts`
630
- Source: `src/runtimeBindings.ts:67:1`
652
+ Source: `src/runtimeBindings.ts:21:1`
631
653
 
632
654
  ### Members
633
655
 
634
656
  | Name | Kind | Type | Required | Description |
635
657
  | --- | --- | --- | --- | --- |
636
- | apis | property | `ApiDefinitionRegistry \| undefined` | no | |
637
- | context | property | `Record<string, unknown> \| undefined` | no | |
638
- | dataBindings | property | `ComponentDataBindingRegistry \| undefined` | no | |
658
+ | capability | property | ``${string}.${string}`` | yes | |
639
659
  | event | property | `ComponentEventDto<string, object> \| undefined` | no | |
640
- | executeOperation | property | `RuntimeBindingOperationExecutor \| undefined` | no | |
641
- | node | property | `UiNode` | yes | |
642
- | operationResults | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
643
- | props | property | `Record<string, unknown>` | yes | |
644
- | stateAdapter | property | `StateAdapter \| undefined` | no | |
660
+ | input | property | `import("@ankhorage/contracts").SerializableValue \| undefined` | no | |
661
+ | node | property | `UiNode \| undefined` | no | |
645
662
 
646
- ## RuntimeBindingResolutionContext
663
+ ## RuntimeCapabilityExecutionResult
647
664
 
648
- Kind: `type`
665
+ Kind: `unknown`
649
666
  Module: `src/runtimeBindings.ts`
650
- Source: `src/runtimeBindings.ts:57:1`
667
+ Source: `src/runtimeBindings.ts:28:1`
651
668
 
652
- ### Members
669
+ ## RuntimeCapabilityExecutor
653
670
 
654
- | Name | Kind | Type | Required | Description |
655
- | --- | --- | --- | --- | --- |
656
- | apis | property | `ApiDefinitionRegistry \| undefined` | no | |
657
- | context | property | `Record<string, unknown> \| undefined` | no | |
658
- | dataBindings | property | `ComponentDataBindingRegistry \| undefined` | no | |
659
- | event | property | `ComponentEventDto<string, object> \| undefined` | no | |
660
- | executeOperation | property | `RuntimeBindingOperationExecutor \| undefined` | no | |
661
- | operationResults | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
662
- | stateAdapter | property | `StateAdapter \| undefined` | no | |
671
+ Kind: `unknown`
672
+ Module: `src/runtimeBindings.ts`
673
+ Source: `src/runtimeBindings.ts:36:1`
663
674
 
664
- ## RuntimeBindingResolutionResult
675
+ ## RuntimeCapabilityExecutorComposition
665
676
 
666
677
  Kind: `type`
667
- Module: `src/runtimeBindings.ts`
668
- Source: `src/runtimeBindings.ts:72:1`
678
+ Module: `src/runtimeCapabilityExecutor.ts`
679
+ Source: `src/runtimeCapabilityExecutor.ts:7:1`
669
680
 
670
681
  ### Members
671
682
 
672
683
  | Name | Kind | Type | Required | Description |
673
684
  | --- | --- | --- | --- | --- |
674
- | diagnostics | property | `readonly DataSourceDiagnostic[]` | yes | |
675
- | props | property | `Record<string, unknown>` | yes | |
685
+ | apiCapabilityExecutor | property | `RuntimeCapabilityExecutor` | yes | |
686
+ | capabilityExecutor | property | `RuntimeCapabilityExecutor \| undefined` | no | |
676
687
 
677
688
  ## RuntimeComponentEventDispatchArgs
678
689
 
679
690
  Kind: `type`
680
691
  Module: `src/runtimeActionRegistry.ts`
681
- Source: `src/runtimeActionRegistry.ts:51:1`
692
+ Source: `src/runtimeActionRegistry.ts:47:1`
682
693
 
683
694
  ### Members
684
695
 
685
696
  | Name | Kind | Type | Required | Description |
686
697
  | --- | --- | --- | --- | --- |
687
- | apis | property | `ApiDefinitionRegistry \| undefined` | no | |
688
698
  | context | property | `Record<string, unknown> \| undefined` | no | |
689
699
  | dataBindings | property | `ComponentDataBindingRegistry \| undefined` | no | |
690
700
  | event | property | `ComponentEventDto<string, object>` | yes | |
691
701
  | eventName | property | `string \| undefined` | no | |
692
702
  | eventOperationLifecycle | property | `RuntimeEventOperationLifecycle \| undefined` | no | |
693
- | executeAction | property | `RuntimeActionHandler \| undefined` | no | |
694
- | executeOperation | property | `RuntimeBindingOperationExecutor \| undefined` | no | |
703
+ | executeCapability | property | `RuntimeCapabilityExecutor \| undefined` | no | |
695
704
  | node | property | `UiNode` | yes | |
696
- | operationResults | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
705
+ | resultSlots | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
697
706
  | state | property | `Record<string, unknown> \| undefined` | no | |
698
- | writeOperationResult | property | `RuntimeBindingOperationResultWriter \| undefined` | no | |
707
+ | writeResultSlot | property | `RuntimeBindingResultWriter \| undefined` | no | |
699
708
 
700
709
  ## RuntimeContextCapabilityId
701
710
 
@@ -709,38 +718,6 @@ Kind: `unknown`
709
718
  Module: `src/capabilities/resolveRuntimeContextCapability.ts`
710
719
  Source: `src/capabilities/resolveRuntimeContextCapability.ts:8:1`
711
720
 
712
- ## RuntimeDbPersistError
713
-
714
- Kind: `type`
715
- Module: `src/runtimeDbPersist.ts`
716
- Source: `src/runtimeDbPersist.ts:16:1`
717
-
718
- ### Members
719
-
720
- | Name | Kind | Type | Required | Description |
721
- | --- | --- | --- | --- | --- |
722
- | code | property | `string` | yes | |
723
- | message | property | `string` | yes | |
724
-
725
- ## RuntimeDbPersistExecutionResult
726
-
727
- Kind: `unknown`
728
- Module: `src/runtimeDbPersist.ts`
729
- Source: `src/runtimeDbPersist.ts:21:1`
730
-
731
- ## RuntimeDbPersistResult
732
-
733
- Kind: `type`
734
- Module: `src/runtimeDbPersist.ts`
735
- Source: `src/runtimeDbPersist.ts:11:1`
736
-
737
- ### Members
738
-
739
- | Name | Kind | Type | Required | Description |
740
- | --- | --- | --- | --- | --- |
741
- | input | property | `DbInsertInput<DbRecord>` | yes | |
742
- | result | property | `DbResult<DbRecord[]>` | yes | |
743
-
744
721
  ## RuntimeDiagnostic
745
722
 
746
723
  Kind: `type`
@@ -755,11 +732,17 @@ Source: `src/runtimeManifest.ts:5:1`
755
732
  | message | property | `string` | yes | |
756
733
  | severity | property | `"error" \| "info" \| "warning"` | yes | |
757
734
 
735
+ ## RuntimeEventCapabilityResolver
736
+
737
+ Kind: `unknown`
738
+ Module: `src/runtimeActionRegistry.ts`
739
+ Source: `src/runtimeActionRegistry.ts:28:1`
740
+
758
741
  ## RuntimeEventDiagnosticsReporter
759
742
 
760
743
  Kind: `type`
761
744
  Module: `src/runtimeEventExecution.ts`
762
- Source: `src/runtimeEventExecution.ts:9:1`
745
+ Source: `src/runtimeEventExecution.ts:8:1`
763
746
 
764
747
  ### Members
765
748
 
@@ -772,7 +755,7 @@ Source: `src/runtimeEventExecution.ts:9:1`
772
755
 
773
756
  Kind: `type`
774
757
  Module: `src/runtimeEventOperationLifecycle.ts`
775
- Source: `src/runtimeEventOperationLifecycle.ts:14:1`
758
+ Source: `src/runtimeEventOperationLifecycle.ts:15:1`
776
759
 
777
760
  ### Members
778
761
 
@@ -784,43 +767,43 @@ Source: `src/runtimeEventOperationLifecycle.ts:14:1`
784
767
 
785
768
  Kind: `type`
786
769
  Module: `src/runtimeEventOperationLifecycle.ts`
787
- Source: `src/runtimeEventOperationLifecycle.ts:18:1`
770
+ Source: `src/runtimeEventOperationLifecycle.ts:19:1`
788
771
 
789
772
  ### Members
790
773
 
791
774
  | Name | Kind | Type | Required | Description |
792
775
  | --- | --- | --- | --- | --- |
793
776
  | fail | method | `(invocation: RuntimeEventOperationInvocation, message: string) => void` | yes | |
794
- | start | method | `(args: { readonly nodeId: string; readonly operation: BindingOperationRef; }) => RuntimeEventOperationInvocation \| undefined` | yes | |
777
+ | start | method | `(args: { readonly nodeId: string; readonly capability: Capability["id"]; }) => RuntimeEventOperationInvocation \| undefined` | yes | |
795
778
  | succeed | method | `(invocation: RuntimeEventOperationInvocation) => void` | yes | |
796
779
 
797
780
  ## RuntimeEventOperationState
798
781
 
799
782
  Kind: `type`
800
783
  Module: `src/runtimeEventOperationLifecycle.ts`
801
- Source: `src/runtimeEventOperationLifecycle.ts:6:1`
784
+ Source: `src/runtimeEventOperationLifecycle.ts:7:1`
802
785
 
803
786
  ### Members
804
787
 
805
788
  | Name | Kind | Type | Required | Description |
806
789
  | --- | --- | --- | --- | --- |
790
+ | capability | property | ``${string}.${string}` \| undefined` | no | |
807
791
  | errorMessage | property | `string` | yes | |
808
792
  | loading | property | `boolean` | yes | |
809
793
  | nodeId | property | `string \| undefined` | no | |
810
- | operation | property | `BindingOperationRef \| undefined` | no | |
811
794
  | status | property | `RuntimeEventOperationStatus` | yes | |
812
795
 
813
796
  ## RuntimeEventOperationStatus
814
797
 
815
798
  Kind: `unknown`
816
799
  Module: `src/runtimeEventOperationLifecycle.ts`
817
- Source: `src/runtimeEventOperationLifecycle.ts:4:1`
800
+ Source: `src/runtimeEventOperationLifecycle.ts:5:1`
818
801
 
819
802
  ## RuntimeEventPropWrapArgs
820
803
 
821
804
  Kind: `type`
822
805
  Module: `src/runtimeActionRegistry.ts`
823
- Source: `src/runtimeActionRegistry.ts:63:1`
806
+ Source: `src/runtimeActionRegistry.ts:57:1`
824
807
 
825
808
  ### Members
826
809
 
@@ -831,8 +814,9 @@ Source: `src/runtimeActionRegistry.ts:63:1`
831
814
  | disableActions | property | `boolean` | yes | |
832
815
  | dispatchComponentEvent | property | `(args: RuntimeComponentEventDispatchArgs) => Promise<void> \| void` | yes | |
833
816
  | node | property | `UiNode` | yes | |
834
- | operationResults | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
835
817
  | props | property | `Record<string, unknown>` | yes | |
818
+ | resolveEventCapability | property | `RuntimeEventCapabilityResolver \| undefined` | no | |
819
+ | resultSlots | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
836
820
  | state | property | `Record<string, unknown> \| undefined` | no | |
837
821
 
838
822
  ## RuntimeManifest
@@ -923,7 +907,7 @@ Source: `node_modules/@ankhorage/contracts/dist/runtimeCallbacks.d.ts:6:1`
923
907
 
924
908
  Kind: `function`
925
909
  Module: `src/RuntimeRenderer.tsx`
926
- Source: `src/RuntimeRenderer.tsx:81:1`
910
+ Source: `src/RuntimeRenderer.tsx:73:1`
927
911
 
928
912
  ### Signatures
929
913
 
@@ -935,14 +919,12 @@ Source: `src/RuntimeRenderer.tsx:81:1`
935
919
 
936
920
  Kind: `type`
937
921
  Module: `src/RuntimeRendererConfig.tsx`
938
- Source: `src/RuntimeRendererConfig.tsx:54:1`
922
+ Source: `src/RuntimeRendererConfig.tsx:37:1`
939
923
 
940
924
  ### Members
941
925
 
942
926
  | Name | Kind | Type | Required | Description |
943
927
  | --- | --- | --- | --- | --- |
944
- | actionHandlers | property | `Partial<Record<`${string}.${string}`, RuntimeActionHandler>> \| undefined` | no | |
945
- | apis | property | `ApiDefinitionRegistry \| undefined` | no | |
946
928
  | bindingContext | property | `Record<string, unknown> \| undefined` | no | |
947
929
  | dataBindings | property | `ComponentDataBindingRegistry \| undefined` | no | |
948
930
  | dbAdapter | property | `DbAdapter \| undefined` | no | |
@@ -950,23 +932,23 @@ Source: `src/RuntimeRendererConfig.tsx:54:1`
950
932
  | disableActions | property | `boolean \| undefined` | no | |
951
933
  | eventOperationLifecycle | property | `RuntimeEventOperationLifecycle \| undefined` | no | |
952
934
  | eventOperationState | property | `RuntimeEventOperationState \| undefined` | no | |
953
- | executeAction | property | `RuntimeActionHandler \| undefined` | no | |
954
- | executeOperation | property | `RuntimeBindingOperationExecutor \| undefined` | no | |
935
+ | executeCapability | property | `RuntimeCapabilityExecutor \| undefined` | no | |
955
936
  | mediaAssets | property | `MediaAssetRegistry \| undefined` | no | |
956
937
  | onDiagnostics | property | `((diagnostics: readonly DataSourceDiagnostic[]) => void) \| undefined` | no | |
957
- | operationResults | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
958
938
  | registry | property | `Readonly<Record<string, React.ElementType<any, keyof React.JSX.IntrinsicElements>>> \| undefined` | no | |
939
+ | resolveEventCapability | property | `RuntimeEventCapabilityResolver \| undefined` | no | |
959
940
  | resolveMediaAsset | property | `RuntimeMediaAssetResolver \| undefined` | no | |
960
941
  | resolveNodeProps | property | `RuntimeNodePropsResolver \| undefined` | no | |
942
+ | resultSlots | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
961
943
  | stateAdapter | property | `StateAdapter \| undefined` | no | |
962
944
  | wrapNode | property | `((args: RuntimeRendererWrapArgs) => React.ReactNode) \| undefined` | no | |
963
- | writeOperationResult | property | `RuntimeBindingOperationResultWriter \| undefined` | no | |
945
+ | writeResultSlot | property | `RuntimeBindingResultWriter \| undefined` | no | |
964
946
 
965
947
  ## RuntimeRendererConfigProvider
966
948
 
967
949
  Kind: `function`
968
950
  Module: `src/RuntimeRendererConfig.tsx`
969
- Source: `src/RuntimeRendererConfig.tsx:167:1`
951
+ Source: `src/RuntimeRendererConfig.tsx:139:1`
970
952
 
971
953
  ### Signatures
972
954
 
@@ -978,27 +960,26 @@ Source: `src/RuntimeRendererConfig.tsx:167:1`
978
960
 
979
961
  Kind: `type`
980
962
  Module: `src/RuntimeRenderer.tsx`
981
- Source: `src/RuntimeRenderer.tsx:61:1`
963
+ Source: `src/RuntimeRenderer.tsx:54:1`
982
964
 
983
965
  ### Members
984
966
 
985
967
  | Name | Kind | Type | Required | Description |
986
968
  | --- | --- | --- | --- | --- |
987
- | apis | property | `ApiDefinitionRegistry \| undefined` | no | |
988
969
  | bindingContext | property | `Record<string, unknown> \| undefined` | no | |
989
970
  | dataBindings | property | `ComponentDataBindingRegistry \| undefined` | no | |
990
971
  | dbAdapter | property | `DbAdapter \| undefined` | no | |
991
972
  | dbRealtimeAdapter | property | `DbRealtimeAdapter \| undefined` | no | |
992
973
  | disableActions | property | `boolean \| undefined` | no | |
993
- | executeAction | property | `import("./RuntimeRendererConfig").RuntimeActionHandler \| undefined` | no | |
994
- | executeOperation | property | `RuntimeBindingOperationExecutor \| undefined` | no | |
974
+ | executeCapability | property | `RuntimeCapabilityExecutor \| undefined` | no | |
995
975
  | isRoot | property | `boolean \| undefined` | no | |
996
976
  | mediaAssets | property | `MediaAssetRegistry \| undefined` | no | |
997
977
  | node | property | `UiNode` | yes | |
998
978
  | onDiagnostics | property | `((diagnostics: readonly DataSourceDiagnostic[]) => void) \| undefined` | no | |
999
- | operationResults | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
1000
979
  | registry | property | `Readonly<Record<string, React.ElementType<any, keyof React.JSX.IntrinsicElements>>> \| undefined` | no | |
980
+ | resolveEventCapability | property | `RuntimeEventCapabilityResolver \| undefined` | no | |
1001
981
  | resolveMediaAsset | property | `RuntimeMediaAssetResolver \| undefined` | no | |
982
+ | resultSlots | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>> \| undefined` | no | |
1002
983
  | stateAdapter | property | `StateAdapter \| undefined` | no | |
1003
984
  | wrapNode | property | `((args: RuntimeRendererWrapArgs) => React.ReactNode) \| undefined` | no | |
1004
985
 
@@ -1006,7 +987,7 @@ Source: `src/RuntimeRenderer.tsx:61:1`
1006
987
 
1007
988
  Kind: `type`
1008
989
  Module: `src/RuntimeRendererConfig.tsx`
1009
- Source: `src/RuntimeRendererConfig.tsx:33:1`
990
+ Source: `src/RuntimeRendererConfig.tsx:31:1`
1010
991
 
1011
992
  ### Members
1012
993
 
@@ -1039,7 +1020,7 @@ Source: `node_modules/@ankhorage/contracts/dist/runtimeCallbacks.d.ts:2:1`
1039
1020
 
1040
1021
  Kind: `function`
1041
1022
  Module: `src/RuntimeScreen.tsx`
1042
- Source: `src/RuntimeScreen.tsx:17:1`
1023
+ Source: `src/RuntimeScreen.tsx:19:1`
1043
1024
 
1044
1025
  ### Signatures
1045
1026
 
@@ -1051,7 +1032,7 @@ Source: `src/RuntimeScreen.tsx:17:1`
1051
1032
 
1052
1033
  Kind: `type`
1053
1034
  Module: `src/runtimeScreenLoaders.ts`
1054
- Source: `src/runtimeScreenLoaders.ts:25:1`
1035
+ Source: `src/runtimeScreenLoaders.ts:24:1`
1055
1036
 
1056
1037
  ### Members
1057
1038
 
@@ -1059,13 +1040,13 @@ Source: `src/runtimeScreenLoaders.ts:25:1`
1059
1040
  | --- | --- | --- | --- | --- |
1060
1041
  | dependencyKey | property | `string` | yes | |
1061
1042
  | diagnostics | property | `readonly DataSourceDiagnostic[]` | yes | |
1062
- | operationResults | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>>` | yes | |
1043
+ | resultSlots | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>>` | yes | |
1063
1044
 
1064
1045
  ## RuntimeScreenOperationLoaderState
1065
1046
 
1066
1047
  Kind: `type`
1067
1048
  Module: `src/runtimeScreenLoaders.ts`
1068
- Source: `src/runtimeScreenLoaders.ts:18:1`
1049
+ Source: `src/runtimeScreenLoaders.ts:17:1`
1069
1050
 
1070
1051
  ### Members
1071
1052
 
@@ -1073,14 +1054,14 @@ Source: `src/runtimeScreenLoaders.ts:18:1`
1073
1054
  | --- | --- | --- | --- | --- |
1074
1055
  | dependencyKey | property | `string` | yes | |
1075
1056
  | diagnostics | property | `readonly DataSourceDiagnostic[]` | yes | |
1076
- | operationResults | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>>` | yes | |
1077
1057
  | renderVersion | property | `number` | yes | |
1058
+ | resultSlots | property | `Readonly<Record<string, import("@ankhorage/contracts").SerializableValue \| undefined>>` | yes | |
1078
1059
 
1079
1060
  ## RuntimeScreenProps
1080
1061
 
1081
1062
  Kind: `type`
1082
1063
  Module: `src/RuntimeScreen.tsx`
1083
- Source: `src/RuntimeScreen.tsx:10:1`
1064
+ Source: `src/RuntimeScreen.tsx:12:1`
1084
1065
 
1085
1066
  ### Members
1086
1067
 
@@ -1140,7 +1121,7 @@ Source: `src/ManifestContext.tsx:38:1`
1140
1121
 
1141
1122
  Kind: `function`
1142
1123
  Module: `src/RuntimeRendererConfig.tsx`
1143
- Source: `src/RuntimeRendererConfig.tsx:180:1`
1124
+ Source: `src/RuntimeRendererConfig.tsx:152:1`
1144
1125
 
1145
1126
  ### Signatures
1146
1127
 
@@ -1151,32 +1132,23 @@ Source: `src/RuntimeRendererConfig.tsx:180:1`
1151
1132
 
1152
1133
  Kind: `function`
1153
1134
  Module: `src/runtimeScreenLoaders.ts`
1154
- Source: `src/runtimeScreenLoaders.ts:273:1`
1135
+ Source: `src/runtimeScreenLoaders.ts:146:1`
1155
1136
 
1156
- ### Signatures
1157
-
1158
- - `(args: { readonly bindingContext?: Record<string, unknown>; readonly apis?: RuntimeBindingResolutionContext["apis"]; readonly executeOperation?: RuntimeBindingOperationExecutor; readonly operationResults?: RuntimeBindingOperationResultCache; readonly onDiagnostics?: (diagnostics: readonly DataSourceDiagnostic[]) => void; readonly screen: ScreenSpec; }) => RuntimeScreenOperationLoaderState`
1159
- - args: `{ readonly bindingContext?: Record<string, unknown>; readonly apis?: RuntimeBindingResolutionContext["apis"]; readonly executeOperation?: RuntimeBindingOperationExecutor; readonly operationResults?: RuntimeBindingOperationResultCache; readonly onDiagnostics?: (diagnostics: readonly DataSourceDiagnostic[]) => void; readonly screen: ScreenSpec; }`
1160
- - returns: `RuntimeScreenOperationLoaderState`
1161
-
1162
- ## validateRuntimeBindingOperationRef
1163
-
1164
- Kind: `function`
1165
- Module: `src/runtimeApiSelection.ts`
1166
- Source: `src/runtimeApiSelection.ts:15:1`
1137
+ Runs screen capability invocations when their serialized request input changes.
1167
1138
 
1168
1139
  ### Signatures
1169
1140
 
1170
- - `(operation: BindingOperationRef, apis: ApiDefinitionRegistry | undefined) => readonly DataSourceDiagnostic[]`
1171
- - apis: `ApiDefinitionRegistry | undefined`
1172
- - operation: `BindingOperationRef`
1173
- - returns: `readonly DataSourceDiagnostic[]`
1141
+ - `(args: { readonly bindingContext?: Record<string, unknown>; readonly executeCapability?: RuntimeCapabilityExecutor; readonly resultSlots?: RuntimeBindingResultCache; readonly onDiagnostics?: (diagnostics: readonly DataSourceDiagnostic[]) => void; readonly screen: ScreenSpec; }) => RuntimeScreenOperationLoaderState`
1142
+ - args: `{ readonly bindingContext?: Record<string, unknown>; readonly executeCapability?: RuntimeCapabilityExecutor; readonly resultSlots?: RuntimeBindingResultCache; readonly onDiagnostics?: (diagnostics: readonly DataSourceDiagnostic[]) => void; readonly screen: ScreenSpec; }`
1143
+ - returns: `RuntimeScreenOperationLoaderState`
1174
1144
 
1175
1145
  ## wrapRuntimeEventProps
1176
1146
 
1177
1147
  Kind: `function`
1178
1148
  Module: `src/runtimeActionRegistry.ts`
1179
- Source: `src/runtimeActionRegistry.ts:198:1`
1149
+ Source: `src/runtimeActionRegistry.ts:149:1`
1150
+
1151
+ Wraps component callbacks so manifest event bindings retain the original callback behavior.
1180
1152
 
1181
1153
  ### Signatures
1182
1154