@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.
@@ -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-xxQMIQzo.mjs';
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 { ac as IxoBlockProps, W as IxoEditorType, w as BlocknoteHandlers, X as FlowNodeRuntimeState } from '../index-BoRWeiDg.mjs';
4
- export { H as Addr, A as AuthzExecActionTypes, y as BlockRequirements, x as BlocknoteContextValue, B as BlocknoteProvider, O as CosmosMsgForEmpty, ai as DomainCardData, ah as DomainCardRenderer, ae as DynamicListData, af as DynamicListDataProvider, ag as DynamicListPanelRenderer, K as Expiration, p as IxoCollaborativeEditorOptions, o as IxoCollaborativeUser, n as IxoEditorConfig, l as IxoEditorOptions, m as IxoEditorTheme, Q as ProposalAction, P as ProposalResponse, 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, ad 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-BoRWeiDg.mjs';
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 };
@@ -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-7OOTFDLP.mjs";
57
+ } from "../chunk-IALS3KWH.mjs";
54
58
  import {
55
59
  didToMatrixUserId,
56
60
  findOrCreateDMRoom,
57
61
  getHomeserver,
58
62
  sendDirectMessage
59
- } from "../chunk-67477PYU.mjs";
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 { Z as FlowNode, a2 as FlowNodeAuthzExtension, X as FlowNodeRuntimeState, W as IxoEditorType, f as UcanService, I as InvocationStore, a0 as EvaluationStatus, i as UcanCapability, U as UcanDelegationStore, S as StoredDelegation } from './index-BoRWeiDg.mjs';
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 {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ixo/editor",
3
- "version": "5.18.0",
3
+ "version": "5.20.0-experimental.1",
4
4
  "description": "A custom BlockNote editor wrapper for IXO team",
5
5
  "main": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",