@ixo/editor 5.18.0 → 5.20.0-experimental.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-7OOTFDLP.mjs → chunk-IALS3KWH.mjs} +2788 -5108
- package/dist/chunk-IALS3KWH.mjs.map +1 -0
- package/dist/chunk-OK2W66I7.mjs +1 -0
- package/dist/chunk-OK2W66I7.mjs.map +1 -0
- package/dist/{chunk-67477PYU.mjs → chunk-XGQRYGA3.mjs} +1200 -217
- package/dist/chunk-XGQRYGA3.mjs.map +1 -0
- package/dist/core/index.d.ts +57 -45
- package/dist/core/index.mjs +3 -4
- package/dist/core/index.mjs.map +1 -1
- package/dist/{graphql-client-xxQMIQzo.d.ts → graphql-client-Dhxgv06u.d.ts} +1 -1
- package/dist/{index-BoRWeiDg.d.ts → index-DMNPdv6v.d.ts} +112 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.mjs +3 -3
- package/dist/index.mjs.map +1 -1
- package/dist/mantine/index.d.ts +131 -4
- package/dist/mantine/index.mjs +10 -2
- package/dist/{store-DZobLMG3.d.ts → store-Bx5ezUFS.d.ts} +76 -67
- package/package.json +1 -1
- package/dist/chunk-67477PYU.mjs.map +0 -1
- package/dist/chunk-7OOTFDLP.mjs.map +0 -1
- package/dist/chunk-K4YAG7AQ.mjs +0 -63
- package/dist/chunk-K4YAG7AQ.mjs.map +0 -1
package/dist/mantine/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export { n as ApiRequestBlockProps, h as ApiRequestBlockSpec, A as AuthorizationTab, d as AuthorizationTabState, B as BlockPresenceUser, i as CheckboxBlockProps, g as CheckboxBlockSpec, C as CoverImage, c as CoverImageProps, D as DevUcanGrantButton, J as DropPosition, r as Entity, s as EntityResponse, f as EntitySigningSetup, t as EntityVariables, E as EvaluationTab, e as EvaluationTabState, z as ExternalDropZone, F as FlowPermissionsPanel, G as GrantPermissionModal, v as GraphQLClient, y as GraphQLRequest, x as GraphQLResponse, H as HttpMethod, I as IxoEditor, b as IxoEditorProps, K as KeyValuePair, k as ListBlockProps, j as ListBlockSettings, L as ListBlockSpec, O as OverviewBlock, l as OverviewBlockProps, m as ProposalBlockProps, P as ProposalBlockSpec, q as getEntity, w as ixoGraphQLClient, o as useBlockPresence, a as useCreateCollaborativeIxoEditor, u as useCreateIxoEditor, p as useTrackBlockFocus } from '../graphql-client-
|
|
1
|
+
export { n as ApiRequestBlockProps, h as ApiRequestBlockSpec, A as AuthorizationTab, d as AuthorizationTabState, B as BlockPresenceUser, i as CheckboxBlockProps, g as CheckboxBlockSpec, C as CoverImage, c as CoverImageProps, D as DevUcanGrantButton, J as DropPosition, r as Entity, s as EntityResponse, f as EntitySigningSetup, t as EntityVariables, E as EvaluationTab, e as EvaluationTabState, z as ExternalDropZone, F as FlowPermissionsPanel, G as GrantPermissionModal, v as GraphQLClient, y as GraphQLRequest, x as GraphQLResponse, H as HttpMethod, I as IxoEditor, b as IxoEditorProps, K as KeyValuePair, k as ListBlockProps, j as ListBlockSettings, L as ListBlockSpec, O as OverviewBlock, l as OverviewBlockProps, m as ProposalBlockProps, P as ProposalBlockSpec, q as getEntity, w as ixoGraphQLClient, o as useBlockPresence, a as useCreateCollaborativeIxoEditor, u as useCreateIxoEditor, p as useTrackBlockFocus } from '../graphql-client-Dhxgv06u.mjs';
|
|
2
2
|
import React__default, { PropsWithChildren } from 'react';
|
|
3
|
-
import {
|
|
4
|
-
export { H as Addr, A as AuthzExecActionTypes, y as BlockRequirements, x as BlocknoteContextValue, B as BlocknoteProvider, O as CosmosMsgForEmpty,
|
|
3
|
+
import { ao as IxoBlockProps, a4 as IxoEditorType, w as BlocknoteHandlers, a5 as FlowNodeRuntimeState } from '../index-DMNPdv6v.mjs';
|
|
4
|
+
export { H as Addr, A as AuthzExecActionTypes, y as BlockRequirements, x as BlocknoteContextValue, B as BlocknoteProvider, O as CosmosMsgForEmpty, au as DomainCardData, at as DomainCardRenderer, aq as DynamicListData, ar as DynamicListDataProvider, as as DynamicListPanelRenderer, K as Expiration, Z as ImportProtocolTemplateResult, Y as ImportProtocolTemplatesToSpaceParams, p as IxoCollaborativeEditorOptions, o as IxoCollaborativeUser, n as IxoEditorConfig, l as IxoEditorOptions, m as IxoEditorTheme, R as ListProtocolDeedsWithTemplatesParams, _ as MatrixPrivacySettings, $ as MatrixRoom, a0 as MatrixSpace, a2 as MatrixSpaceStructure, a1 as MatrixSubspace, Q as ProposalAction, P as ProposalResponse, W as ProtocolDeedWithTemplates, X as ProtocolTemplateSummary, z as SingleChoiceProposal, v as StakeType, v as StakeTypeValue, L as Status, M as Threshold, T as Timestamp, J as Uint128, G as User, V as ValidatorActionType, ap as VisualizationRenderer, F as Vote, E as VoteInfo, C as VoteResponse, N as Votes, q as blockSpecs, r as getExtraSlashMenuItems, u as useBlocknoteContext, s as useBlocknoteHandlers } from '../index-DMNPdv6v.mjs';
|
|
5
5
|
import * as zustand from 'zustand';
|
|
6
|
+
import { SurveyModel } from '@ixo/surveys';
|
|
6
7
|
import * as _blocknote_core from '@blocknote/core';
|
|
7
8
|
export { Block, BlockNoteEditor, BlockNoteSchema, DefaultBlockSchema, DefaultInlineContentSchema, DefaultStyleSchema, PartialBlock } from '@blocknote/core';
|
|
8
9
|
import { MatrixClient } from 'matrix-js-sdk';
|
|
@@ -202,6 +203,132 @@ declare const usePanel: (panelId: string, content: React.ReactNode) => {
|
|
|
202
203
|
close: () => void;
|
|
203
204
|
};
|
|
204
205
|
|
|
206
|
+
/**
|
|
207
|
+
* Registry for ephemeral SurveyJS forms — the right-side panels (claim
|
|
208
|
+
* submission, bid submission) whose schema and answers do NOT live in
|
|
209
|
+
* BlockNote state. The oracle reaches these via the `list_open_surveys` /
|
|
210
|
+
* `fill_open_survey` browser tools. Forms whose answers are persisted to
|
|
211
|
+
* `block.props.answers` are NOT registered here; the oracle updates those
|
|
212
|
+
* directly through the Matrix CRDT via the existing block tools.
|
|
213
|
+
*/
|
|
214
|
+
interface OpenSurveyContext {
|
|
215
|
+
deedId?: string;
|
|
216
|
+
deedTitle?: string;
|
|
217
|
+
collectionId?: string;
|
|
218
|
+
blockId?: string;
|
|
219
|
+
blockTitle?: string;
|
|
220
|
+
blockType?: string;
|
|
221
|
+
pageRoomId?: string;
|
|
222
|
+
flowType?: string;
|
|
223
|
+
[key: string]: unknown;
|
|
224
|
+
}
|
|
225
|
+
interface OpenSurveyEntry {
|
|
226
|
+
/** Stable id the LLM uses to address this survey. */
|
|
227
|
+
id: string;
|
|
228
|
+
/** Human-readable label for disambiguation when multiple are open. */
|
|
229
|
+
title: string;
|
|
230
|
+
/** Where the survey lives in the UI. */
|
|
231
|
+
source: 'panel' | 'block-config';
|
|
232
|
+
/** Original survey schema (the JSON passed into `new SurveyModel(...)`). */
|
|
233
|
+
schema: unknown;
|
|
234
|
+
/** Context the LLM may need to fill correctly (deed/collection/page ids). */
|
|
235
|
+
context: OpenSurveyContext;
|
|
236
|
+
/** Read-only view (e.g. evaluator viewing a submitted claim). */
|
|
237
|
+
readonly: boolean;
|
|
238
|
+
/** Live SurveyJS model. Not serialized over the wire. */
|
|
239
|
+
model: SurveyModel;
|
|
240
|
+
}
|
|
241
|
+
interface OpenSurveyStore {
|
|
242
|
+
surveys: Map<string, OpenSurveyEntry>;
|
|
243
|
+
register: (entry: OpenSurveyEntry) => void;
|
|
244
|
+
unregister: (id: string) => void;
|
|
245
|
+
}
|
|
246
|
+
declare const useOpenSurveyStore: zustand.UseBoundStore<zustand.StoreApi<OpenSurveyStore>>;
|
|
247
|
+
/** Snapshot of a question's contract, sent to the oracle so it can fill correctly. */
|
|
248
|
+
interface OpenSurveyQuestionSummary {
|
|
249
|
+
name: string;
|
|
250
|
+
type: string;
|
|
251
|
+
title?: string;
|
|
252
|
+
description?: string;
|
|
253
|
+
isRequired: boolean;
|
|
254
|
+
visible: boolean;
|
|
255
|
+
readOnly: boolean;
|
|
256
|
+
inputType?: string;
|
|
257
|
+
/** Resolved choices the dropdown will accept. For `choicesByUrl`-driven
|
|
258
|
+
* questions this is `visibleChoices` from the live SurveyJS model — it
|
|
259
|
+
* reflects already-loaded async options. May be empty if those options
|
|
260
|
+
* haven't loaded yet. */
|
|
261
|
+
choices?: Array<{
|
|
262
|
+
value: unknown;
|
|
263
|
+
text: string;
|
|
264
|
+
}>;
|
|
265
|
+
/** Present when the question pulls choices from a URL. `loaded: true`
|
|
266
|
+
* means async choices have arrived; `false` means the consumer should
|
|
267
|
+
* expect choices to be populated shortly. */
|
|
268
|
+
choicesByUrl?: {
|
|
269
|
+
url: string;
|
|
270
|
+
valueName?: string;
|
|
271
|
+
titleName?: string;
|
|
272
|
+
loaded: boolean;
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
/** Wire-safe view of a registered survey returned by `list_open_surveys`. */
|
|
276
|
+
interface OpenSurveySnapshot {
|
|
277
|
+
id: string;
|
|
278
|
+
title: string;
|
|
279
|
+
source: 'panel' | 'block-config';
|
|
280
|
+
context: OpenSurveyContext;
|
|
281
|
+
readonly: boolean;
|
|
282
|
+
questions: OpenSurveyQuestionSummary[];
|
|
283
|
+
currentAnswers: Record<string, unknown>;
|
|
284
|
+
/** Full schema, only included when `includeSchema: true`. */
|
|
285
|
+
schema?: unknown;
|
|
286
|
+
}
|
|
287
|
+
interface FillOpenSurveyResult {
|
|
288
|
+
applied: Record<string, unknown>;
|
|
289
|
+
rejected: Array<{
|
|
290
|
+
field: string;
|
|
291
|
+
reason: string;
|
|
292
|
+
}>;
|
|
293
|
+
validation: Array<{
|
|
294
|
+
field: string;
|
|
295
|
+
message: string;
|
|
296
|
+
}>;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Build the wire-safe snapshot for a registered survey. Pulls the live
|
|
300
|
+
* answers from the SurveyJS model at call-time, so the oracle always sees
|
|
301
|
+
* what the user currently has typed.
|
|
302
|
+
*/
|
|
303
|
+
declare function snapshotOpenSurvey(entry: OpenSurveyEntry, opts?: {
|
|
304
|
+
includeSchema?: boolean;
|
|
305
|
+
}): OpenSurveySnapshot;
|
|
306
|
+
/**
|
|
307
|
+
* Apply an answer patch to a registered survey. Per-field via `setValue` so
|
|
308
|
+
* SurveyJS's conditional visibility / dependent rules fire correctly. Does
|
|
309
|
+
* NOT submit — the user reviews and submits manually.
|
|
310
|
+
*/
|
|
311
|
+
declare function fillOpenSurvey(entry: OpenSurveyEntry, patch: Record<string, unknown>, opts?: {
|
|
312
|
+
merge?: boolean;
|
|
313
|
+
}): FillOpenSurveyResult;
|
|
314
|
+
interface UseRegisterOpenSurveyParams {
|
|
315
|
+
id: string;
|
|
316
|
+
title: string;
|
|
317
|
+
source: 'panel' | 'block-config';
|
|
318
|
+
schema: unknown;
|
|
319
|
+
context: OpenSurveyContext;
|
|
320
|
+
model: SurveyModel | null | undefined;
|
|
321
|
+
readonly?: boolean;
|
|
322
|
+
/** Set to false to temporarily skip registration without unmounting. */
|
|
323
|
+
enabled?: boolean;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Registers a SurveyJS form with the open-survey registry while mounted.
|
|
327
|
+
* Re-registers if the model identity changes (e.g. schema reload).
|
|
328
|
+
* Auto-cleans on unmount.
|
|
329
|
+
*/
|
|
330
|
+
declare function useRegisterOpenSurvey({ id, title, source, schema, context, model, readonly, enabled, }: UseRegisterOpenSurveyParams): void;
|
|
331
|
+
|
|
205
332
|
/**
|
|
206
333
|
* Reactive hook that subscribes to a single node's runtime state in yDoc.runtime.
|
|
207
334
|
*
|
|
@@ -449,4 +576,4 @@ declare function setDMNotificationRecord(runtimeMap: Map$1<any>, blockId: string
|
|
|
449
576
|
*/
|
|
450
577
|
declare function shouldNotify(state: DMNotificationState, blockId: string, currentAssignedDid: string): boolean;
|
|
451
578
|
|
|
452
|
-
export { BaseIconPicker, type BlockActionDefinition, BlocknoteHandlers, type CollapseEvent, type ColumnPosition, type DMNotificationRecord, type DMNotificationState, type DataSource, DebugButton, type DynamicListAction, type DynamicListBlockProps, DynamicListBlockSpec, type DynamicListColumn, type DynamicListPanelConfig, type HookedActionInstanceConfig, type HookedActionType, type HookedActionsConfig, HookedActionsTab, IxoEditorType, type ListBlocksUIContextValue, type Listener, PageHeader, type PageHeaderMenuItem, type PageHeaderProps, PageTitle, type PageTitleProps, type PayloadField, didToMatrixUserId, findOrCreateDMRoom, getAllHookedActionTypes, getBlockActions, getDMNotificationState, getHomeserver, getHookedActionType, initializeHookedActions, registerBlockActions, registerBuiltInActionTypes, registerHookedActionType, sendDirectMessage, setDMNotificationRecord, shouldNotify, useHookedActions, useListBlocksUI, useListBlocksUIStore, useNodeRuntime, usePanel, usePanelStore };
|
|
579
|
+
export { BaseIconPicker, type BlockActionDefinition, BlocknoteHandlers, type CollapseEvent, type ColumnPosition, type DMNotificationRecord, type DMNotificationState, type DataSource, DebugButton, type DynamicListAction, type DynamicListBlockProps, DynamicListBlockSpec, type DynamicListColumn, type DynamicListPanelConfig, type FillOpenSurveyResult, type HookedActionInstanceConfig, type HookedActionType, type HookedActionsConfig, HookedActionsTab, IxoEditorType, type ListBlocksUIContextValue, type Listener, type OpenSurveyContext, type OpenSurveyEntry, type OpenSurveyQuestionSummary, type OpenSurveySnapshot, PageHeader, type PageHeaderMenuItem, type PageHeaderProps, PageTitle, type PageTitleProps, type PayloadField, didToMatrixUserId, fillOpenSurvey, findOrCreateDMRoom, getAllHookedActionTypes, getBlockActions, getDMNotificationState, getHomeserver, getHookedActionType, initializeHookedActions, registerBlockActions, registerBuiltInActionTypes, registerHookedActionType, sendDirectMessage, setDMNotificationRecord, shouldNotify, snapshotOpenSurvey, useHookedActions, useListBlocksUI, useListBlocksUIStore, useNodeRuntime, useOpenSurveyStore, usePanel, usePanelStore, useRegisterOpenSurvey };
|
package/dist/mantine/index.mjs
CHANGED
|
@@ -25,6 +25,7 @@ import {
|
|
|
25
25
|
StakeType,
|
|
26
26
|
ValidatorActionType,
|
|
27
27
|
blockSpecs,
|
|
28
|
+
fillOpenSurvey,
|
|
28
29
|
getAllHookedActionTypes,
|
|
29
30
|
getBlockActions,
|
|
30
31
|
getDMNotificationState,
|
|
@@ -38,6 +39,7 @@ import {
|
|
|
38
39
|
registerHookedActionType,
|
|
39
40
|
setDMNotificationRecord,
|
|
40
41
|
shouldNotify,
|
|
42
|
+
snapshotOpenSurvey,
|
|
41
43
|
useBlockPresence,
|
|
42
44
|
useBlocknoteContext,
|
|
43
45
|
useBlocknoteHandlers,
|
|
@@ -47,16 +49,18 @@ import {
|
|
|
47
49
|
useListBlocksUI,
|
|
48
50
|
useListBlocksUIStore,
|
|
49
51
|
useNodeRuntime,
|
|
52
|
+
useOpenSurveyStore,
|
|
50
53
|
usePanel,
|
|
51
54
|
usePanelStore,
|
|
55
|
+
useRegisterOpenSurvey,
|
|
52
56
|
useTrackBlockFocus
|
|
53
|
-
} from "../chunk-
|
|
57
|
+
} from "../chunk-IALS3KWH.mjs";
|
|
54
58
|
import {
|
|
55
59
|
didToMatrixUserId,
|
|
56
60
|
findOrCreateDMRoom,
|
|
57
61
|
getHomeserver,
|
|
58
62
|
sendDirectMessage
|
|
59
|
-
} from "../chunk-
|
|
63
|
+
} from "../chunk-XGQRYGA3.mjs";
|
|
60
64
|
export {
|
|
61
65
|
ApiRequestBlockSpec,
|
|
62
66
|
AuthorizationTab,
|
|
@@ -85,6 +89,7 @@ export {
|
|
|
85
89
|
ValidatorActionType,
|
|
86
90
|
blockSpecs,
|
|
87
91
|
didToMatrixUserId,
|
|
92
|
+
fillOpenSurvey,
|
|
88
93
|
findOrCreateDMRoom,
|
|
89
94
|
getAllHookedActionTypes,
|
|
90
95
|
getBlockActions,
|
|
@@ -101,6 +106,7 @@ export {
|
|
|
101
106
|
sendDirectMessage,
|
|
102
107
|
setDMNotificationRecord,
|
|
103
108
|
shouldNotify,
|
|
109
|
+
snapshotOpenSurvey,
|
|
104
110
|
useBlockPresence,
|
|
105
111
|
useBlocknoteContext,
|
|
106
112
|
useBlocknoteHandlers,
|
|
@@ -110,8 +116,10 @@ export {
|
|
|
110
116
|
useListBlocksUI,
|
|
111
117
|
useListBlocksUIStore,
|
|
112
118
|
useNodeRuntime,
|
|
119
|
+
useOpenSurveyStore,
|
|
113
120
|
usePanel,
|
|
114
121
|
usePanelStore,
|
|
122
|
+
useRegisterOpenSurvey,
|
|
115
123
|
useTrackBlockFocus
|
|
116
124
|
};
|
|
117
125
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a7 as FlowNode, ac as FlowNodeAuthzExtension, a5 as FlowNodeRuntimeState, a4 as IxoEditorType, f as UcanService, I as InvocationStore, aa as EvaluationStatus, i as UcanCapability, U as UcanDelegationStore, S as StoredDelegation } from './index-DMNPdv6v.mjs';
|
|
2
2
|
import * as Y from 'yjs';
|
|
3
3
|
import { Doc, Map } from 'yjs';
|
|
4
4
|
import { MatrixClient } from 'matrix-js-sdk';
|
|
@@ -219,71 +219,6 @@ declare const createRuntimeStateManager: (editor?: IxoEditorType | null) => Flow
|
|
|
219
219
|
*/
|
|
220
220
|
declare function clearRuntimeForTemplateClone(yDoc: Doc): void;
|
|
221
221
|
|
|
222
|
-
interface NodeActionResult {
|
|
223
|
-
claimId?: string;
|
|
224
|
-
evaluationStatus?: EvaluationStatus;
|
|
225
|
-
submittedByDid?: string;
|
|
226
|
-
payload?: any;
|
|
227
|
-
}
|
|
228
|
-
interface ExecutionContext {
|
|
229
|
-
runtime: FlowRuntimeStateManager;
|
|
230
|
-
/** UCAN service — optional for v0.x flows, required for v1.0.0+ */
|
|
231
|
-
ucanService?: UcanService;
|
|
232
|
-
/** Invocation store — optional for v0.x flows */
|
|
233
|
-
invocationStore?: InvocationStore;
|
|
234
|
-
flowUri: string;
|
|
235
|
-
flowId: string;
|
|
236
|
-
flowOwnerDid: string;
|
|
237
|
-
/** Flow schema version. When set, controls whether UCAN is enforced. */
|
|
238
|
-
schemaVersion?: string;
|
|
239
|
-
now?: () => number;
|
|
240
|
-
}
|
|
241
|
-
interface ExecutionOutcome {
|
|
242
|
-
success: boolean;
|
|
243
|
-
stage: 'authorization' | 'claim' | 'action' | 'complete';
|
|
244
|
-
error?: string;
|
|
245
|
-
result?: NodeActionResult;
|
|
246
|
-
capabilityId?: string;
|
|
247
|
-
invocationCid?: string;
|
|
248
|
-
}
|
|
249
|
-
interface ExecuteNodeParams {
|
|
250
|
-
node: FlowNode;
|
|
251
|
-
actorDid: string;
|
|
252
|
-
actorType: 'entity' | 'user';
|
|
253
|
-
entityRoomId?: string;
|
|
254
|
-
context: ExecutionContext;
|
|
255
|
-
action: () => Promise<NodeActionResult>;
|
|
256
|
-
pin: string;
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* Execute a node.
|
|
260
|
-
*
|
|
261
|
-
* The pipeline adapts based on the flow's schema version (via context.schemaVersion):
|
|
262
|
-
*
|
|
263
|
-
* **v0.x (legacy):** activation → action → runtime update.
|
|
264
|
-
* UCAN authorization and invocations are skipped when ucanService is not available.
|
|
265
|
-
*
|
|
266
|
-
* **v1.0.0+:** activation → UCAN authorization → invocation → action → runtime update.
|
|
267
|
-
* Requires a configured ucanService with valid delegation chains.
|
|
268
|
-
*/
|
|
269
|
-
declare const executeNode: ({ node, actorDid, actorType, entityRoomId, context, action, pin }: ExecuteNodeParams) => Promise<ExecutionOutcome>;
|
|
270
|
-
|
|
271
|
-
interface AuthorizationResult {
|
|
272
|
-
authorized: boolean;
|
|
273
|
-
reason?: string;
|
|
274
|
-
capabilityId?: string;
|
|
275
|
-
proofCids?: string[];
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Check if an actor is authorized to execute a block.
|
|
279
|
-
*
|
|
280
|
-
* Behaviour depends on the flow's schema version:
|
|
281
|
-
* - v0.x (or no version): UCAN is optional. If ucanService is unavailable,
|
|
282
|
-
* execution is allowed without a delegation chain.
|
|
283
|
-
* - v1.0.0+: UCAN is required. A valid delegation chain must exist.
|
|
284
|
-
*/
|
|
285
|
-
declare const isAuthorized: (blockId: string, actorDid: string, ucanService: UcanService | undefined, flowUri: string, schemaVersion?: string) => Promise<AuthorizationResult>;
|
|
286
|
-
|
|
287
222
|
interface ActionContext {
|
|
288
223
|
actorDid: string;
|
|
289
224
|
flowId: string;
|
|
@@ -294,6 +229,7 @@ interface ActionContext {
|
|
|
294
229
|
flowUri?: string;
|
|
295
230
|
handlers?: any;
|
|
296
231
|
editor?: any;
|
|
232
|
+
pendingInvocation?: any;
|
|
297
233
|
}
|
|
298
234
|
interface ActionServices {
|
|
299
235
|
http?: {
|
|
@@ -755,8 +691,79 @@ interface ActionResult {
|
|
|
755
691
|
name: string;
|
|
756
692
|
payload: Record<string, any>;
|
|
757
693
|
}>;
|
|
694
|
+
completion?: {
|
|
695
|
+
state?: 'completed' | 'awaiting_readback';
|
|
696
|
+
readBack?: Record<string, any>;
|
|
697
|
+
};
|
|
758
698
|
}
|
|
759
699
|
|
|
700
|
+
interface NodeActionResult {
|
|
701
|
+
claimId?: string;
|
|
702
|
+
evaluationStatus?: EvaluationStatus;
|
|
703
|
+
submittedByDid?: string;
|
|
704
|
+
payload?: any;
|
|
705
|
+
}
|
|
706
|
+
interface ExecutionContext {
|
|
707
|
+
runtime: FlowRuntimeStateManager;
|
|
708
|
+
/** UCAN service — optional for v0.x flows, required for v1.0.0+ */
|
|
709
|
+
ucanService?: UcanService;
|
|
710
|
+
/** Invocation store — optional for v0.x flows */
|
|
711
|
+
invocationStore?: InvocationStore;
|
|
712
|
+
flowUri: string;
|
|
713
|
+
flowId: string;
|
|
714
|
+
flowOwnerDid: string;
|
|
715
|
+
/** Flow schema version. When set, controls whether UCAN is enforced. */
|
|
716
|
+
schemaVersion?: string;
|
|
717
|
+
now?: () => number;
|
|
718
|
+
}
|
|
719
|
+
interface ExecutionOutcome {
|
|
720
|
+
success: boolean;
|
|
721
|
+
stage: 'authorization' | 'claim' | 'action' | 'complete';
|
|
722
|
+
error?: string;
|
|
723
|
+
result?: NodeActionResult;
|
|
724
|
+
capabilityId?: string;
|
|
725
|
+
invocationCid?: string;
|
|
726
|
+
}
|
|
727
|
+
interface ExecuteNodeParams {
|
|
728
|
+
node: FlowNode;
|
|
729
|
+
actorDid: string;
|
|
730
|
+
actorType: 'entity' | 'user';
|
|
731
|
+
entityRoomId?: string;
|
|
732
|
+
context: ExecutionContext;
|
|
733
|
+
action: () => Promise<NodeActionResult>;
|
|
734
|
+
pin: string;
|
|
735
|
+
}
|
|
736
|
+
/**
|
|
737
|
+
* Execute a node.
|
|
738
|
+
*
|
|
739
|
+
* The pipeline adapts based on the flow's schema version (via context.schemaVersion):
|
|
740
|
+
*
|
|
741
|
+
* **v0.x (legacy):** activation → action → runtime update.
|
|
742
|
+
* UCAN authorization and invocations are skipped when ucanService is not available.
|
|
743
|
+
*
|
|
744
|
+
* **v1.0.0+:** activation → UCAN authorization → invocation → action → runtime update.
|
|
745
|
+
* Requires a configured ucanService with valid delegation chains.
|
|
746
|
+
*/
|
|
747
|
+
declare const executeNode: ({ node, actorDid, actorType, entityRoomId, context, action, pin }: ExecuteNodeParams) => Promise<ExecutionOutcome>;
|
|
748
|
+
|
|
749
|
+
type ActionExecutionCompletionState = 'completed' | 'failed' | 'awaiting_readback';
|
|
750
|
+
|
|
751
|
+
interface AuthorizationResult {
|
|
752
|
+
authorized: boolean;
|
|
753
|
+
reason?: string;
|
|
754
|
+
capabilityId?: string;
|
|
755
|
+
proofCids?: string[];
|
|
756
|
+
}
|
|
757
|
+
/**
|
|
758
|
+
* Check if an actor is authorized to execute a block.
|
|
759
|
+
*
|
|
760
|
+
* Behaviour depends on the flow's schema version:
|
|
761
|
+
* - v0.x (or no version): UCAN is optional. If ucanService is unavailable,
|
|
762
|
+
* execution is allowed without a delegation chain.
|
|
763
|
+
* - v1.0.0+: UCAN is required. A valid delegation chain must exist.
|
|
764
|
+
*/
|
|
765
|
+
declare const isAuthorized: (blockId: string, actorDid: string, ucanService: UcanService | undefined, flowUri: string, schemaVersion?: string) => Promise<AuthorizationResult>;
|
|
766
|
+
|
|
760
767
|
/** Registry interface expected by the compiler (keeps it pure / testable). */
|
|
761
768
|
interface CompilerRegistry {
|
|
762
769
|
getActionByCan(can: string): ActionDefinition | undefined;
|
|
@@ -959,7 +966,7 @@ type FlowAgentPublicNodeState = 'Pending' | 'Blocked' | 'Overdue' | 'Done';
|
|
|
959
966
|
type FlowAgentRunPhase = 'Running' | 'Validating' | 'Failed' | 'Archived';
|
|
960
967
|
type FlowAgentBlockerCause = 'missing_input' | 'failed_upstream' | 'missing_ucan' | 'stale_config' | 'service_error' | 'external_confirmation_pending' | 'validation_mismatch' | 'unknown';
|
|
961
968
|
type FlowAgentCommandType = 'diagnose_blocker' | 'assign_actor' | 'notify_actor' | 'execute_action' | 'validate_external_state' | 'submit_claim' | 'watch_udid' | 'archive_flow' | 'propose_config_change';
|
|
962
|
-
type FlowAgentCommandStatus = 'queued' | 'leased' | 'running' | 'confirmed' | 'failed' | 'skipped';
|
|
969
|
+
type FlowAgentCommandStatus = 'queued' | 'leased' | 'running' | 'confirmed' | 'awaiting_readback' | 'failed' | 'skipped';
|
|
963
970
|
type FlowAgentLedgerEventType = 'agent.decision' | 'agent.command' | 'agent.validation' | 'agent.escalation' | 'agent.memory';
|
|
964
971
|
interface FlowAgentActor {
|
|
965
972
|
did: string;
|
|
@@ -1040,6 +1047,8 @@ interface FlowAgentCommandResult {
|
|
|
1040
1047
|
success: boolean;
|
|
1041
1048
|
output?: Record<string, unknown>;
|
|
1042
1049
|
confirmed?: boolean;
|
|
1050
|
+
completionState?: ActionExecutionCompletionState;
|
|
1051
|
+
status?: FlowAgentCommandStatus;
|
|
1043
1052
|
error?: string;
|
|
1044
1053
|
}
|
|
1045
1054
|
interface FlowAgentExecutor {
|