@ixo/editor 5.15.0 → 5.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
- import { a5 as ActionDefinition, a6 as ActionServices, Z as FlowAgentCommand, $ as FlowAgentContext, _ as FlowAgentCommandResult, a0 as FlowAgentExecutor, a2 as FlowAgentNodeSnapshot, a7 as FlowAgentBlockerCause, a3 as FlowAgentPublicNodeState } from '../store-CEGM2mJP.mjs';
2
- export { aj as AcquireFlowAgentLeaseParams, a9 as ActionContext, aa as ActionResult, ax as ActorConstraint, A as AuthorizationResult, B as BaseUcanFlow, X as BuildFlowAgentContextParams, aA as CompiledBlock, aB as CompiledEdge, v as CompiledFlow, aC as CompiledFlowNode, C as CompilerRegistry, aw as ConditionRef, ak as CreateAgentCommandParams, al as EvaluateFlowAgentPolicyParams, E as ExecuteNodeParams, f as ExecutionContext, d as ExecutionOutcome, Y as FlowAgentActor, ao as FlowAgentCommandBase, ap as FlowAgentCommandStatus, aq as FlowAgentCommandType, a1 as FlowAgentLease, ar as FlowAgentLedgerEvent, as as FlowAgentLedgerEventType, at as FlowAgentMaps, am as FlowAgentOrchestratorOptions, au as FlowAgentPolicyDecision, av as FlowAgentRunPhase, x as FlowAgentService, an as FlowAgentServiceOptions, a4 as FlowAgentTickResult, u as FlowCapability, F as FlowRuntimeStateManager, w as FlowStrategy, M as MergeResult, N as NodeActionResult, ab as OutputSchemaField, R as ReadFlowOptions, q as ReadFlowResult, az as RuntimeRef, S as SetupFlowOptions, p as SetupFlowResult, ay as TTLConstraint, aD as TriggerSpec, y as acquireFlowAgentLease, z as appendAgentLedgerEvent, a as buildAuthzFromProps, D as buildFlowAgentContext, b as buildFlowNodeFromBlock, ac as canMatches, G as cleanupExpiredFlowAgentLeases, a8 as clearRuntimeForTemplateClone, l as compileBaseUcanFlow, ad as computeAgentCommandId, H as createAgentCommand, c as createRuntimeStateManager, o as decompileToBaseUcanFlow, I as evaluateFlowAgentPolicy, e as executeNode, J as executeQueuedAgentCommands, k as getActiveEditor, K as getFlowAgentMaps, i as isAuthorized, ae as isCapabilityMatch, af as isExternalMutation, aE as isRuntimeRef, n as mergeCompiledFlows, L as planRalphLoopCommands, O as queueAgentCommand, P as readAgentLedgerEvents, m as readCompiledFlowFromYDoc, h as readFlow, r as readFlowAsBaseUcan, g as readFlowFromEditor, Q as readQueuedAgentCommands, T as releaseFlowAgentLease, ag as requiredCapabilityForCommand, ah as resourceMatches, j as setActiveEditor, s as setupFlowFromBaseUcan, U as tickFlowAgent, ai as updateAgentCommand, V as validateAgentCommand, W as validateFlowAgentLease } from '../store-CEGM2mJP.mjs';
3
- import { W as IxoEditorType, f as UcanService, U as UcanDelegationStore, S as StoredDelegation, I as InvocationStore, X as FlowNodeRuntimeState, Y as FlowMetadata, Z as FlowNode } from '../index-1Y4fIZa7.mjs';
4
- export { $ as ClaimCollectionURI, aa as CreateDelegationParams, ab as CreateInvocationParams, a9 as CreateRootDelegationParams, _ as DID, D as DelegationChainValidationResult, k as DelegationGrant, a0 as EvaluationStatus, a7 as ExecutionWithInvocationResult, a8 as FindProofsResult, a2 as FlowNodeAuthzExtension, a4 as FlowNodeBase, a5 as InvocationRequest, a6 as InvocationResult, a1 as LinkedClaim, a3 as NodeState, j as StoredInvocation, i as UcanCapability, g as UcanServiceConfig, h as UcanServiceHandlers, b as createInvocationStore, d as createMemoryInvocationStore, a as createMemoryUcanDelegationStore, c as createUcanDelegationStore, e as createUcanService } from '../index-1Y4fIZa7.mjs';
1
+ import { a5 as ActionDefinition, a6 as ActionServices, Z as FlowAgentCommand, $ as FlowAgentContext, _ as FlowAgentCommandResult, a0 as FlowAgentExecutor, a2 as FlowAgentNodeSnapshot, a7 as FlowAgentBlockerCause, a3 as FlowAgentPublicNodeState } from '../store-DZobLMG3.mjs';
2
+ export { aj as AcquireFlowAgentLeaseParams, a9 as ActionContext, aa as ActionResult, ax as ActorConstraint, A as AuthorizationResult, B as BaseUcanFlow, X as BuildFlowAgentContextParams, aA as CompiledBlock, aB as CompiledEdge, v as CompiledFlow, aC as CompiledFlowNode, C as CompilerRegistry, aw as ConditionRef, ak as CreateAgentCommandParams, al as EvaluateFlowAgentPolicyParams, E as ExecuteNodeParams, f as ExecutionContext, d as ExecutionOutcome, Y as FlowAgentActor, ao as FlowAgentCommandBase, ap as FlowAgentCommandStatus, aq as FlowAgentCommandType, a1 as FlowAgentLease, ar as FlowAgentLedgerEvent, as as FlowAgentLedgerEventType, at as FlowAgentMaps, am as FlowAgentOrchestratorOptions, au as FlowAgentPolicyDecision, av as FlowAgentRunPhase, x as FlowAgentService, an as FlowAgentServiceOptions, a4 as FlowAgentTickResult, u as FlowCapability, F as FlowRuntimeStateManager, w as FlowStrategy, M as MergeResult, N as NodeActionResult, ab as OutputSchemaField, R as ReadFlowOptions, q as ReadFlowResult, az as RuntimeRef, S as SetupFlowOptions, p as SetupFlowResult, ay as TTLConstraint, aD as TriggerSpec, y as acquireFlowAgentLease, z as appendAgentLedgerEvent, a as buildAuthzFromProps, D as buildFlowAgentContext, b as buildFlowNodeFromBlock, ac as canMatches, G as cleanupExpiredFlowAgentLeases, a8 as clearRuntimeForTemplateClone, l as compileBaseUcanFlow, ad as computeAgentCommandId, H as createAgentCommand, c as createRuntimeStateManager, o as decompileToBaseUcanFlow, I as evaluateFlowAgentPolicy, e as executeNode, J as executeQueuedAgentCommands, k as getActiveEditor, K as getFlowAgentMaps, i as isAuthorized, ae as isCapabilityMatch, af as isExternalMutation, aE as isRuntimeRef, n as mergeCompiledFlows, L as planRalphLoopCommands, O as queueAgentCommand, P as readAgentLedgerEvents, m as readCompiledFlowFromYDoc, h as readFlow, r as readFlowAsBaseUcan, g as readFlowFromEditor, Q as readQueuedAgentCommands, T as releaseFlowAgentLease, ag as requiredCapabilityForCommand, ah as resourceMatches, j as setActiveEditor, s as setupFlowFromBaseUcan, U as tickFlowAgent, ai as updateAgentCommand, V as validateAgentCommand, W as validateFlowAgentLease } from '../store-DZobLMG3.mjs';
3
+ import { W as IxoEditorType, f as UcanService, U as UcanDelegationStore, S as StoredDelegation, I as InvocationStore, X as FlowNodeRuntimeState, Y as FlowMetadata, Z as FlowNode } from '../index-BoRWeiDg.mjs';
4
+ export { $ as ClaimCollectionURI, aa as CreateDelegationParams, ab as CreateInvocationParams, a9 as CreateRootDelegationParams, _ as DID, D as DelegationChainValidationResult, k as DelegationGrant, a0 as EvaluationStatus, a7 as ExecutionWithInvocationResult, a8 as FindProofsResult, a2 as FlowNodeAuthzExtension, a4 as FlowNodeBase, a5 as InvocationRequest, a6 as InvocationResult, a1 as LinkedClaim, a3 as NodeState, j as StoredInvocation, i as UcanCapability, g as UcanServiceConfig, h as UcanServiceHandlers, b as createInvocationStore, d as createMemoryInvocationStore, a as createMemoryUcanDelegationStore, c as createUcanDelegationStore, e as createUcanService } from '../index-BoRWeiDg.mjs';
5
5
  import * as Y from 'yjs';
6
6
  import 'matrix-js-sdk';
7
7
  import '@blocknote/core';
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveRuntimeRefs
3
- } from "../chunk-ODJ2JOGF.mjs";
3
+ } from "../chunk-K4YAG7AQ.mjs";
4
4
  import {
5
5
  FlowAgentService,
6
6
  RUN_RECORD_AUDIT_TYPE,
@@ -77,7 +77,7 @@ import {
77
77
  validateAgentCommand,
78
78
  validateFlowAgentLease,
79
79
  writeRunRecordAndReconcile
80
- } from "../chunk-YK3XJ5HK.mjs";
80
+ } from "../chunk-67477PYU.mjs";
81
81
  import {
82
82
  computeCID,
83
83
  computeJsonCID
@@ -1,5 +1,5 @@
1
1
  import * as _blocknote_core from '@blocknote/core';
2
- import { ac as IxoBlockProps, l as IxoEditorOptions, W as IxoEditorType, p as IxoCollaborativeEditorOptions, w as BlocknoteHandlers, y as BlockRequirements, aj as UnlMapConfig, af as DynamicListDataProvider, ag as DynamicListPanelRenderer, ah as DomainCardRenderer, R as Translate, k as DelegationGrant } from './index-1Y4fIZa7.mjs';
2
+ import { ac as IxoBlockProps, l as IxoEditorOptions, W as IxoEditorType, p as IxoCollaborativeEditorOptions, w as BlocknoteHandlers, y as BlockRequirements, aj as UnlMapConfig, af as DynamicListDataProvider, ag as DynamicListPanelRenderer, ah as DomainCardRenderer, R as Translate, k as DelegationGrant } from './index-BoRWeiDg.mjs';
3
3
  import { Text, Doc, Map, Array as Array$1 } from 'yjs';
4
4
  import React__default from 'react';
5
5
 
@@ -566,7 +566,12 @@ interface VoteResponse {
566
566
  vote?: VoteInfo | null;
567
567
  }
568
568
  interface User {
569
+ /** Bare blockchain address (bech32) — e.g. ixo1abc… */
569
570
  address: string;
571
+ /** Full IXO DID (e.g. did:ixo:ixo1abc…) — required for UCAN signing.
572
+ * Optional for backward-compat; callers that need a DID should fall back
573
+ * to `did:ixo:${address}` when this field is absent. */
574
+ did?: string;
570
575
  }
571
576
  type AwarenessDocActor = {
572
577
  name: string;
@@ -1360,6 +1365,21 @@ interface BlocknoteHandlers {
1360
1365
  getVote: (proposalContractAddress: string, proposalId: string, userAddress: string) => Promise<VoteResponse>;
1361
1366
  getProposal: (proposalContractAddress: string, proposalId: string) => Promise<ProposalResponse>;
1362
1367
  getCurrentUser: () => User;
1368
+ /**
1369
+ * The companion (chat) oracle's DID for the active network. This is the
1370
+ * ENTITY DID (display, lookup, routing). Use `getOracleAuthDid` instead when
1371
+ * you need a UCAN audience. Returns "" when the host doesn't expose one.
1372
+ */
1373
+ getOracleDid?: () => string;
1374
+ /**
1375
+ * The companion oracle's signing/auth DID — the value that UCAN delegations
1376
+ * targeting the oracle MUST use as their audience. Resolved from the entity
1377
+ * DID via the `#orz` linked resource (or returned as-is if the active DID
1378
+ * is already a `did:ixo:ixo1…` account DID, e.g. the local-dev override).
1379
+ * Async because the resolution may need a blocksync round trip. The result
1380
+ * is cached by the host, so repeat calls are cheap.
1381
+ */
1382
+ getOracleAuthDid?: () => Promise<string>;
1363
1383
  getRoomMembers: (roomId: string, mx: MatrixClient) => Promise<AwarenessDocActor[]>;
1364
1384
  getMatrixInfoPerDid: (did: string) => Promise<IUserMatrixProfile>;
1365
1385
  getDaoGroupsIds: () => Promise<string[] | undefined>;
@@ -1681,6 +1701,10 @@ interface BlocknoteHandlers {
1681
1701
  invokerType: 'entity' | 'user';
1682
1702
  /** Entity room ID (required if invokerType is 'entity') */
1683
1703
  entityRoomId?: string;
1704
+ /** DID of the audience (typically the service worker's did:web).
1705
+ * The invocation is addressed to this DID — the worker rejects the
1706
+ * invocation if the audience does not match its own DID. */
1707
+ audience: string;
1684
1708
  /** Capability to invoke */
1685
1709
  capability: {
1686
1710
  can: string;
@@ -1832,6 +1856,11 @@ interface BlocknoteHandlers {
1832
1856
  createDomain?: (params: {
1833
1857
  /** Entity type from survey (e.g., 'dao', 'protocol') */
1834
1858
  entityType: string;
1859
+ /** Entity context entries (e.g., class = selected blueprint DID) */
1860
+ context?: Array<{
1861
+ key: string;
1862
+ val: string;
1863
+ }>;
1835
1864
  /** Linked resources to attach to the entity (includes domain card) */
1836
1865
  linkedResource: Array<{
1837
1866
  id: string;
@@ -1860,6 +1889,44 @@ interface BlocknoteHandlers {
1860
1889
  /** Transaction hash */
1861
1890
  transactionHash: string;
1862
1891
  }>;
1892
+ /**
1893
+ * Build a MsgAddLinkedResource transaction message without signing or broadcasting it.
1894
+ */
1895
+ createAddLinkedResourceMessage?: (params: {
1896
+ /** Entity DID to update. Host may default to the current entity context. */
1897
+ entityDid?: string;
1898
+ /** Linked resource to add when absent. */
1899
+ linkedResource: {
1900
+ id: string;
1901
+ type: string;
1902
+ description?: string;
1903
+ serviceEndpoint: string;
1904
+ proof?: string;
1905
+ mediaType?: string;
1906
+ encrypted?: string | boolean;
1907
+ right?: string;
1908
+ };
1909
+ /** Optional signer override. Host may default to the connected wallet address. */
1910
+ signer?: string;
1911
+ }) => Promise<{
1912
+ typeUrl: string;
1913
+ value: unknown;
1914
+ }>;
1915
+ /**
1916
+ * Sign and broadcast transaction messages built by host-provided message factories.
1917
+ */
1918
+ executeTransaction?: (params: {
1919
+ messages: Array<{
1920
+ typeUrl: string;
1921
+ value: unknown;
1922
+ }>;
1923
+ memo?: string;
1924
+ }) => Promise<{
1925
+ transactionHash?: string;
1926
+ code?: number;
1927
+ rawLog?: string;
1928
+ [key: string]: unknown;
1929
+ }>;
1863
1930
  /**
1864
1931
  * List available email templates from Mailgun
1865
1932
  */
@@ -2019,6 +2086,37 @@ interface BlocknoteHandlers {
2019
2086
  icon?: string;
2020
2087
  description?: string;
2021
2088
  }>>;
2089
+ /**
2090
+ * List IID-backed entities from Blocksync.
2091
+ * Used by the POD setup flow to list parent DAOs/PODs controlled by the current user.
2092
+ */
2093
+ getIids?: (params?: {
2094
+ ids?: string[];
2095
+ /** Controller DIDs to filter by. */
2096
+ controllers?: string[];
2097
+ entityTypes?: string[];
2098
+ pagination?: {
2099
+ page?: number;
2100
+ pageSize?: number;
2101
+ offset?: number;
2102
+ limit?: number;
2103
+ };
2104
+ fields?: string[];
2105
+ }) => Promise<{
2106
+ nodes: Array<{
2107
+ id: string;
2108
+ type: string;
2109
+ iid: {
2110
+ id?: string;
2111
+ controller?: string[];
2112
+ alsoKnownAs?: string;
2113
+ service?: Service[];
2114
+ linkedResource?: LinkedResource[];
2115
+ [key: string]: unknown;
2116
+ };
2117
+ }>;
2118
+ totalCount?: number;
2119
+ }>;
2022
2120
  /**
2023
2121
  * List flow templates available for a given blueprint entity.
2024
2122
  * Used by the POD setup flow to let the user select startup flows.
@@ -4055,6 +4153,9 @@ declare const blockSpecs: {
4055
4153
  readonly paymentError: {
4056
4154
  readonly default: "";
4057
4155
  };
4156
+ readonly payments: {
4157
+ readonly default: "[]";
4158
+ };
4058
4159
  };
4059
4160
  readonly content: "none";
4060
4161
  };
@@ -4121,6 +4222,9 @@ declare const blockSpecs: {
4121
4222
  readonly paymentError: {
4122
4223
  readonly default: "";
4123
4224
  };
4225
+ readonly payments: {
4226
+ readonly default: "[]";
4227
+ };
4124
4228
  };
4125
4229
  readonly content: "none";
4126
4230
  }, any, _blocknote_core.InlineContentSchema, _blocknote_core.StyleSchema>;
@@ -4661,6 +4765,8 @@ interface CreateInvocationParams {
4661
4765
  invokerType: 'entity' | 'user';
4662
4766
  /** Entity room ID if signing as entity */
4663
4767
  entityRoomId?: string;
4768
+ /** DID of the audience */
4769
+ audience?: string;
4664
4770
  /** Capability to invoke */
4665
4771
  capability: UcanCapability;
4666
4772
  /** CIDs of proof delegations */
@@ -5276,8 +5382,15 @@ interface IxoCollaborativeUser {
5276
5382
  name: string;
5277
5383
  color: string;
5278
5384
  accessToken: string;
5385
+ /** Bare blockchain address (bech32, e.g. ixo1abc…) */
5279
5386
  address: string;
5387
+ /** Matrix user ID (e.g. @did-ixo-ixo1abc:server) — used for collaborative
5388
+ * awareness and Matrix room operations. NOT a UCAN-compatible DID. */
5280
5389
  id: string;
5390
+ /** Full IXO DID (e.g. did:ixo:ixo1abc…). Used for UCAN signing — must
5391
+ * start with `did:` so dag-ucan / ucanto can parse it. Optional only for
5392
+ * backward-compat with hosts that haven't updated yet. */
5393
+ did?: string;
5281
5394
  /** Optional avatar image URL for presence indicators */
5282
5395
  avatar?: string;
5283
5396
  }
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
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, r as Entity, s as EntityResponse, f as EntitySigningSetup, t as EntityVariables, E as EvaluationTab, e as EvaluationTabState, 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-BjgWToqz.mjs';
2
- export { A as AuthorizationResult, B as BaseUcanFlow, X as BuildFlowAgentContextParams, v as CompiledFlow, C as CompilerRegistry, E as ExecuteNodeParams, f as ExecutionContext, d as ExecutionOutcome, Y as FlowAgentActor, Z as FlowAgentCommand, _ as FlowAgentCommandResult, $ as FlowAgentContext, a0 as FlowAgentExecutor, a1 as FlowAgentLease, a2 as FlowAgentNodeSnapshot, a3 as FlowAgentPublicNodeState, x as FlowAgentService, a4 as FlowAgentTickResult, u as FlowCapability, F as FlowRuntimeStateManager, w as FlowStrategy, M as MergeResult, N as NodeActionResult, R as ReadFlowOptions, q as ReadFlowResult, t as ReadableEditor, S as SetupFlowOptions, p as SetupFlowResult, y as acquireFlowAgentLease, z as appendAgentLedgerEvent, a as buildAuthzFromProps, D as buildFlowAgentContext, b as buildFlowNodeFromBlock, G as cleanupExpiredFlowAgentLeases, l as compileBaseUcanFlow, H as createAgentCommand, c as createRuntimeStateManager, o as decompileToBaseUcanFlow, I as evaluateFlowAgentPolicy, e as executeNode, J as executeQueuedAgentCommands, k as getActiveEditor, K as getFlowAgentMaps, i as isAuthorized, n as mergeCompiledFlows, L as planRalphLoopCommands, O as queueAgentCommand, P as readAgentLedgerEvents, m as readCompiledFlowFromYDoc, h as readFlow, r as readFlowAsBaseUcan, g as readFlowFromEditor, Q as readQueuedAgentCommands, T as releaseFlowAgentLease, j as setActiveEditor, s as setupFlowFromBaseUcan, U as tickFlowAgent, V as validateAgentCommand, W as validateFlowAgentLease } from './store-CEGM2mJP.mjs';
3
- export { H as Addr, A as AuthzExecActionTypes, y as BlockRequirements, x as BlocknoteContextValue, w as BlocknoteHandlers, B as BlocknoteProvider, O as CosmosMsgForEmpty, D as DelegationChainValidationResult, k as DelegationGrant, K as Expiration, I as InvocationStore, 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, S as StoredDelegation, j as StoredInvocation, M as Threshold, T as Timestamp, R as Translate, i as UcanCapability, U as UcanDelegationStore, f as UcanService, g as UcanServiceConfig, h as UcanServiceHandlers, J as Uint128, G as User, V as ValidatorActionType, F as Vote, E as VoteInfo, C as VoteResponse, N as Votes, q as blockSpecs, b as createInvocationStore, d as createMemoryInvocationStore, a as createMemoryUcanDelegationStore, c as createUcanDelegationStore, e as createUcanService, r as getExtraSlashMenuItems, u as useBlocknoteContext, s as useBlocknoteHandlers, t as useTranslate } from './index-1Y4fIZa7.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, r as Entity, s as EntityResponse, f as EntitySigningSetup, t as EntityVariables, E as EvaluationTab, e as EvaluationTabState, 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';
2
+ export { A as AuthorizationResult, B as BaseUcanFlow, X as BuildFlowAgentContextParams, v as CompiledFlow, C as CompilerRegistry, E as ExecuteNodeParams, f as ExecutionContext, d as ExecutionOutcome, Y as FlowAgentActor, Z as FlowAgentCommand, _ as FlowAgentCommandResult, $ as FlowAgentContext, a0 as FlowAgentExecutor, a1 as FlowAgentLease, a2 as FlowAgentNodeSnapshot, a3 as FlowAgentPublicNodeState, x as FlowAgentService, a4 as FlowAgentTickResult, u as FlowCapability, F as FlowRuntimeStateManager, w as FlowStrategy, M as MergeResult, N as NodeActionResult, R as ReadFlowOptions, q as ReadFlowResult, t as ReadableEditor, S as SetupFlowOptions, p as SetupFlowResult, y as acquireFlowAgentLease, z as appendAgentLedgerEvent, a as buildAuthzFromProps, D as buildFlowAgentContext, b as buildFlowNodeFromBlock, G as cleanupExpiredFlowAgentLeases, l as compileBaseUcanFlow, H as createAgentCommand, c as createRuntimeStateManager, o as decompileToBaseUcanFlow, I as evaluateFlowAgentPolicy, e as executeNode, J as executeQueuedAgentCommands, k as getActiveEditor, K as getFlowAgentMaps, i as isAuthorized, n as mergeCompiledFlows, L as planRalphLoopCommands, O as queueAgentCommand, P as readAgentLedgerEvents, m as readCompiledFlowFromYDoc, h as readFlow, r as readFlowAsBaseUcan, g as readFlowFromEditor, Q as readQueuedAgentCommands, T as releaseFlowAgentLease, j as setActiveEditor, s as setupFlowFromBaseUcan, U as tickFlowAgent, V as validateAgentCommand, W as validateFlowAgentLease } from './store-DZobLMG3.mjs';
3
+ export { H as Addr, A as AuthzExecActionTypes, y as BlockRequirements, x as BlocknoteContextValue, w as BlocknoteHandlers, B as BlocknoteProvider, O as CosmosMsgForEmpty, D as DelegationChainValidationResult, k as DelegationGrant, K as Expiration, I as InvocationStore, 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, S as StoredDelegation, j as StoredInvocation, M as Threshold, T as Timestamp, R as Translate, i as UcanCapability, U as UcanDelegationStore, f as UcanService, g as UcanServiceConfig, h as UcanServiceHandlers, J as Uint128, G as User, V as ValidatorActionType, F as Vote, E as VoteInfo, C as VoteResponse, N as Votes, q as blockSpecs, b as createInvocationStore, d as createMemoryInvocationStore, a as createMemoryUcanDelegationStore, c as createUcanDelegationStore, e as createUcanService, r as getExtraSlashMenuItems, u as useBlocknoteContext, s as useBlocknoteHandlers, t as useTranslate } from './index-BoRWeiDg.mjs';
4
4
  export { Block, BlockNoteEditor, BlockNoteSchema, DefaultBlockSchema, DefaultInlineContentSchema, DefaultStyleSchema, PartialBlock } from '@blocknote/core';
5
5
  export { CloneDocumentResult, cloneDocument } from '@ixo/matrix-crdt';
6
6
  import 'yjs';
package/dist/index.mjs CHANGED
@@ -28,8 +28,8 @@ import {
28
28
  useCreateIxoEditor,
29
29
  useTrackBlockFocus,
30
30
  useTranslate
31
- } from "./chunk-J4M6XUX7.mjs";
32
- import "./chunk-ODJ2JOGF.mjs";
31
+ } from "./chunk-TZBRXBBJ.mjs";
32
+ import "./chunk-K4YAG7AQ.mjs";
33
33
  import {
34
34
  FlowAgentService,
35
35
  acquireFlowAgentLease,
@@ -68,7 +68,7 @@ import {
68
68
  tickFlowAgent,
69
69
  validateAgentCommand,
70
70
  validateFlowAgentLease
71
- } from "./chunk-YK3XJ5HK.mjs";
71
+ } from "./chunk-67477PYU.mjs";
72
72
 
73
73
  // src/index.ts
74
74
  import { cloneDocument } from "@ixo/matrix-crdt";
@@ -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-BjgWToqz.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-xxQMIQzo.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-1Y4fIZa7.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-1Y4fIZa7.mjs';
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';
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-J4M6XUX7.mjs";
57
+ } from "../chunk-TZBRXBBJ.mjs";
54
58
  import {
55
59
  didToMatrixUserId,
56
60
  findOrCreateDMRoom,
57
61
  getHomeserver,
58
62
  sendDirectMessage
59
- } from "../chunk-YK3XJ5HK.mjs";
63
+ } from "../chunk-67477PYU.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-1Y4fIZa7.mjs';
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';
2
2
  import * as Y from 'yjs';
3
3
  import { Doc, Map } from 'yjs';
4
4
  import { MatrixClient } from 'matrix-js-sdk';
@@ -418,6 +418,7 @@ interface ActionServices {
418
418
  }) => Promise<any>;
419
419
  getCurrentUser: () => {
420
420
  address: string;
421
+ did?: string;
421
422
  };
422
423
  createUdid?: (params: any) => Promise<any>;
423
424
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ixo/editor",
3
- "version": "5.15.0",
3
+ "version": "5.19.0",
4
4
  "description": "A custom BlockNote editor wrapper for IXO team",
5
5
  "main": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",
@@ -37,7 +37,7 @@
37
37
  "build": "tsup && node scripts/rename-dts.mjs",
38
38
  "dev": "nodemon --watch src --ext ts,tsx --exec \"tsup\"",
39
39
  "clean": "rimraf dist style.css",
40
- "prepare": "husky install && npm run clean && npm run build",
40
+ "prepare": "husky install && pnpm run clean && pnpm run build",
41
41
  "type-check": "tsc --noEmit",
42
42
  "test": "vitest run --passWithNoTests",
43
43
  "test:watch": "vitest",
@@ -70,7 +70,7 @@
70
70
  "@blocknote/mantine": "0.29.1",
71
71
  "@blocknote/react": "0.29.1",
72
72
  "@dnd-kit/core": "^6.3.1",
73
- "@ixo/ucan": "^1.0.1",
73
+ "@ixo/ucan": "^1.2.3",
74
74
  "@tabler/icons-react": "3.35.0",
75
75
  "@tiptap/core": "^2.26.1",
76
76
  "@tiptap/extension-code": "^2.26.1",