@ixo/editor 6.17.0 → 6.18.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.
- package/dist/action-manifest.json +10 -10
- package/dist/{chunk-WMWHTVQF.js → chunk-KIRDKAO3.js} +2 -2
- package/dist/{chunk-KRBHLUGP.js → chunk-LMNQ5HT6.js} +2 -2
- package/dist/{chunk-7GS4HTDO.js → chunk-N7J2JFCX.js} +82 -1
- package/dist/chunk-N7J2JFCX.js.map +1 -0
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -3
- package/dist/mantine/index.js +2 -2
- package/dist/{store-BsdF3BVv.d.ts → store-DeTFI0Ah.d.ts} +12 -0
- package/package.json +1 -1
- package/dist/chunk-7GS4HTDO.js.map +0 -1
- /package/dist/{chunk-WMWHTVQF.js.map → chunk-KIRDKAO3.js.map} +0 -0
- /package/dist/{chunk-KRBHLUGP.js.map → chunk-LMNQ5HT6.js.map} +0 -0
|
@@ -1377,7 +1377,7 @@
|
|
|
1377
1377
|
"hasDynamicEvents": false,
|
|
1378
1378
|
"hasDynamicOutputSchema": true,
|
|
1379
1379
|
"eligibleForEventTrigger": true,
|
|
1380
|
-
"hasCustomInputValidation":
|
|
1380
|
+
"hasCustomInputValidation": true,
|
|
1381
1381
|
"can": "collection/users",
|
|
1382
1382
|
"requiredCapability": "flow/block/execute",
|
|
1383
1383
|
"inputSchema": {
|
|
@@ -1836,7 +1836,7 @@
|
|
|
1836
1836
|
"hasDynamicEvents": false,
|
|
1837
1837
|
"hasDynamicOutputSchema": false,
|
|
1838
1838
|
"eligibleForEventTrigger": true,
|
|
1839
|
-
"hasCustomInputValidation":
|
|
1839
|
+
"hasCustomInputValidation": true,
|
|
1840
1840
|
"can": "email/send",
|
|
1841
1841
|
"requiredCapability": "email/send",
|
|
1842
1842
|
"inputSchema": {
|
|
@@ -2184,7 +2184,7 @@
|
|
|
2184
2184
|
"hasDynamicEvents": false,
|
|
2185
2185
|
"hasDynamicOutputSchema": false,
|
|
2186
2186
|
"eligibleForEventTrigger": true,
|
|
2187
|
-
"hasCustomInputValidation":
|
|
2187
|
+
"hasCustomInputValidation": true,
|
|
2188
2188
|
"can": "gmail.email/send",
|
|
2189
2189
|
"requiredCapability": "flow/block/execute",
|
|
2190
2190
|
"outputSchema": [
|
|
@@ -2240,7 +2240,7 @@
|
|
|
2240
2240
|
"hasDynamicEvents": false,
|
|
2241
2241
|
"hasDynamicOutputSchema": false,
|
|
2242
2242
|
"eligibleForEventTrigger": true,
|
|
2243
|
-
"hasCustomInputValidation":
|
|
2243
|
+
"hasCustomInputValidation": true,
|
|
2244
2244
|
"can": "googlecalendar.event/create",
|
|
2245
2245
|
"requiredCapability": "flow/block/execute",
|
|
2246
2246
|
"outputSchema": [
|
|
@@ -3532,7 +3532,7 @@
|
|
|
3532
3532
|
"hasDynamicEvents": false,
|
|
3533
3533
|
"hasDynamicOutputSchema": false,
|
|
3534
3534
|
"eligibleForEventTrigger": false,
|
|
3535
|
-
"hasCustomInputValidation":
|
|
3535
|
+
"hasCustomInputValidation": true,
|
|
3536
3536
|
"can": "governance/member-proposal",
|
|
3537
3537
|
"requiredCapability": "flow/block/execute",
|
|
3538
3538
|
"outputSchema": [
|
|
@@ -3828,7 +3828,7 @@
|
|
|
3828
3828
|
"hasDynamicEvents": false,
|
|
3829
3829
|
"hasDynamicOutputSchema": false,
|
|
3830
3830
|
"eligibleForEventTrigger": false,
|
|
3831
|
-
"hasCustomInputValidation":
|
|
3831
|
+
"hasCustomInputValidation": true,
|
|
3832
3832
|
"can": "governance/settings-proposal",
|
|
3833
3833
|
"requiredCapability": "flow/block/execute",
|
|
3834
3834
|
"outputSchema": [
|
|
@@ -4284,7 +4284,7 @@
|
|
|
4284
4284
|
"hasDynamicEvents": false,
|
|
4285
4285
|
"hasDynamicOutputSchema": false,
|
|
4286
4286
|
"eligibleForEventTrigger": false,
|
|
4287
|
-
"hasCustomInputValidation":
|
|
4287
|
+
"hasCustomInputValidation": true,
|
|
4288
4288
|
"can": "governance.transaction/send-funds",
|
|
4289
4289
|
"requiredCapability": "flow/block/execute",
|
|
4290
4290
|
"outputSchema": [
|
|
@@ -4570,7 +4570,7 @@
|
|
|
4570
4570
|
"hasDynamicEvents": false,
|
|
4571
4571
|
"hasDynamicOutputSchema": false,
|
|
4572
4572
|
"eligibleForEventTrigger": true,
|
|
4573
|
-
"hasCustomInputValidation":
|
|
4573
|
+
"hasCustomInputValidation": true,
|
|
4574
4574
|
"can": "http/request",
|
|
4575
4575
|
"inputSchema": {
|
|
4576
4576
|
"type": "object",
|
|
@@ -6013,7 +6013,7 @@
|
|
|
6013
6013
|
"hasDynamicEvents": false,
|
|
6014
6014
|
"hasDynamicOutputSchema": false,
|
|
6015
6015
|
"eligibleForEventTrigger": true,
|
|
6016
|
-
"hasCustomInputValidation":
|
|
6016
|
+
"hasCustomInputValidation": true,
|
|
6017
6017
|
"can": "outlook.email/send",
|
|
6018
6018
|
"requiredCapability": "flow/block/execute",
|
|
6019
6019
|
"outputSchema": [
|
|
@@ -6796,7 +6796,7 @@
|
|
|
6796
6796
|
"hasDynamicEvents": false,
|
|
6797
6797
|
"hasDynamicOutputSchema": false,
|
|
6798
6798
|
"eligibleForEventTrigger": true,
|
|
6799
|
-
"hasCustomInputValidation":
|
|
6799
|
+
"hasCustomInputValidation": true,
|
|
6800
6800
|
"can": "slack.message/send",
|
|
6801
6801
|
"requiredCapability": "flow/block/execute",
|
|
6802
6802
|
"outputSchema": [
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
replaceBlockInFragment,
|
|
11
11
|
swapBlocksInFragment,
|
|
12
12
|
writeCompiledBlocksToFragment
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-N7J2JFCX.js";
|
|
14
14
|
|
|
15
15
|
// src/core/lib/flowCompiler/authoring.ts
|
|
16
16
|
import * as Y from "yjs";
|
|
@@ -257,4 +257,4 @@ export {
|
|
|
257
257
|
resetStepRuntime,
|
|
258
258
|
setFormAnswers
|
|
259
259
|
};
|
|
260
|
-
//# sourceMappingURL=chunk-
|
|
260
|
+
//# sourceMappingURL=chunk-KIRDKAO3.js.map
|
|
@@ -77,7 +77,7 @@ import {
|
|
|
77
77
|
verifyCompletion,
|
|
78
78
|
warnOnce,
|
|
79
79
|
writeRunRecordAndReconcile
|
|
80
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-N7J2JFCX.js";
|
|
81
81
|
|
|
82
82
|
// src/mantine/hooks/usePanel.ts
|
|
83
83
|
import { useCallback, useMemo, useEffect, useRef } from "react";
|
|
@@ -51530,4 +51530,4 @@ export {
|
|
|
51530
51530
|
ixoGraphQLClient,
|
|
51531
51531
|
getEntity
|
|
51532
51532
|
};
|
|
51533
|
-
//# sourceMappingURL=chunk-
|
|
51533
|
+
//# sourceMappingURL=chunk-LMNQ5HT6.js.map
|
|
@@ -718,6 +718,8 @@ var CAN_TO_TYPE = {
|
|
|
718
718
|
"bid/evaluate": "qi/bid.evaluate",
|
|
719
719
|
"claim/submit": "qi/claim.submit",
|
|
720
720
|
"claim/evaluate": "qi/claim.evaluate",
|
|
721
|
+
"collection/lifecycle": "qi/collection.lifecycle",
|
|
722
|
+
"collection/users": "qi/collection.users",
|
|
721
723
|
"email/send": "qi/email.send",
|
|
722
724
|
"notification/push": "qi/notification.push",
|
|
723
725
|
"matrix/dm": "qi/matrix.dm",
|
|
@@ -1681,6 +1683,15 @@ registerAction({
|
|
|
1681
1683
|
{ path: "operation", displayName: "Operation", type: "string", description: "add | remove | update-weight" },
|
|
1682
1684
|
{ path: "createdAt", displayName: "Created At", type: "string", description: "ISO timestamp of proposal creation" }
|
|
1683
1685
|
],
|
|
1686
|
+
// Mirrors run()'s throw-preamble (there is no inputSchema to declare
|
|
1687
|
+
// requiredness on): coreAddress, operation and a non-empty members list.
|
|
1688
|
+
getMissingInputs: (inputs) => {
|
|
1689
|
+
const missing = [];
|
|
1690
|
+
if (!String(inputs.coreAddress || "").trim()) missing.push("coreAddress");
|
|
1691
|
+
if (!String(inputs.operation || "").trim()) missing.push("operation");
|
|
1692
|
+
if (!Array.isArray(inputs.members) || inputs.members.length === 0) missing.push("members");
|
|
1693
|
+
return missing;
|
|
1694
|
+
},
|
|
1684
1695
|
run: async (inputs, ctx) => {
|
|
1685
1696
|
const handlers = ctx.handlers;
|
|
1686
1697
|
if (!handlers) {
|
|
@@ -1770,6 +1781,17 @@ registerAction({
|
|
|
1770
1781
|
{ path: "coreAddress", displayName: "Core Address", type: "string", description: "The DAO core contract address" },
|
|
1771
1782
|
{ path: "createdAt", displayName: "Created At", type: "string", description: "ISO timestamp of proposal creation" }
|
|
1772
1783
|
],
|
|
1784
|
+
// Mirrors run()'s throw-preamble (there is no inputSchema to declare
|
|
1785
|
+
// requiredness on): coreAddress and the three numeric voting settings.
|
|
1786
|
+
getMissingInputs: (inputs) => {
|
|
1787
|
+
const missing = [];
|
|
1788
|
+
if (!String(inputs.coreAddress || "").trim()) missing.push("coreAddress");
|
|
1789
|
+
for (const name of ["votingPeriodHours", "quorumPercent", "thresholdPercent"]) {
|
|
1790
|
+
const value = inputs[name];
|
|
1791
|
+
if (value === void 0 || value === null || String(value).trim() === "") missing.push(name);
|
|
1792
|
+
}
|
|
1793
|
+
return missing;
|
|
1794
|
+
},
|
|
1773
1795
|
run: async (inputs, ctx) => {
|
|
1774
1796
|
const handlers = ctx.handlers;
|
|
1775
1797
|
if (!handlers) {
|
|
@@ -1964,6 +1986,17 @@ registerAction({
|
|
|
1964
1986
|
{ path: "recipient", displayName: "Recipient", type: "string", description: "Destination address of the spend" },
|
|
1965
1987
|
{ path: "createdAt", displayName: "Created At", type: "string", description: "ISO timestamp of proposal creation" }
|
|
1966
1988
|
],
|
|
1989
|
+
// Mirrors run()'s throw-preamble (there is no inputSchema to declare
|
|
1990
|
+
// requiredness on): coreAddress, recipient, denom and amount.
|
|
1991
|
+
getMissingInputs: (inputs) => {
|
|
1992
|
+
const missing = [];
|
|
1993
|
+
for (const name of ["coreAddress", "recipient", "denom"]) {
|
|
1994
|
+
if (!String(inputs[name] || "").trim()) missing.push(name);
|
|
1995
|
+
}
|
|
1996
|
+
const amount = inputs.amount;
|
|
1997
|
+
if (amount === void 0 || amount === null || String(amount).trim() === "") missing.push("amount");
|
|
1998
|
+
return missing;
|
|
1999
|
+
},
|
|
1967
2000
|
run: async (inputs, ctx) => {
|
|
1968
2001
|
const handlers = ctx.handlers;
|
|
1969
2002
|
if (!handlers) {
|
|
@@ -2883,6 +2916,9 @@ registerAction({
|
|
|
2883
2916
|
body: { type: "string", description: "Request body; sent for non-GET methods. Accepts a string or an object (serialized to JSON)." }
|
|
2884
2917
|
}
|
|
2885
2918
|
},
|
|
2919
|
+
// run() accepts `endpoint` OR `url` — mirror the alias the schema's
|
|
2920
|
+
// required array can't express.
|
|
2921
|
+
getMissingInputs: (inputs) => String(inputs.endpoint || inputs.url || "").trim() ? [] : ["endpoint"],
|
|
2886
2922
|
run: async (inputs, ctx) => {
|
|
2887
2923
|
const endpoint = inputs.endpoint ?? inputs.url;
|
|
2888
2924
|
const url = typeof endpoint === "string" ? endpoint : "";
|
|
@@ -2953,6 +2989,14 @@ registerAction({
|
|
|
2953
2989
|
{ path: "messageId", displayName: "Message ID", type: "string", description: "The unique ID of the sent email" },
|
|
2954
2990
|
{ path: "sentAt", displayName: "Sent At", type: "string", description: "Timestamp when the email was sent" }
|
|
2955
2991
|
],
|
|
2992
|
+
// run() accepts `template` OR `templateName` for the template — the
|
|
2993
|
+
// schema's required array can't express the alias, so mirror the OR here.
|
|
2994
|
+
getMissingInputs: (inputs) => {
|
|
2995
|
+
const missing = [];
|
|
2996
|
+
if (!String(inputs.to || "").trim()) missing.push("to");
|
|
2997
|
+
if (!String(inputs.template || "").trim() && !String(inputs.templateName || "").trim()) missing.push("templateName");
|
|
2998
|
+
return missing;
|
|
2999
|
+
},
|
|
2956
3000
|
run: async (inputs, ctx) => {
|
|
2957
3001
|
if (!ctx.services.email) {
|
|
2958
3002
|
throw new Error("Email service not configured");
|
|
@@ -7409,6 +7453,10 @@ registerAction({
|
|
|
7409
7453
|
type: COLLECTION_LIFECYCLE_ACTION_TYPE,
|
|
7410
7454
|
can: "collection/lifecycle",
|
|
7411
7455
|
sideEffect: true,
|
|
7456
|
+
// Chain transaction signed as the entity admin — only the human in the
|
|
7457
|
+
// Portal FlowDetail holds that authority. Orchestrators gather inputs and
|
|
7458
|
+
// hand off; they must not run or delegate this.
|
|
7459
|
+
executionOwner: "human",
|
|
7412
7460
|
// Dynamic resolvers predate merge-by-default and intentionally control
|
|
7413
7461
|
// the full vocabulary (e.g. returning [] to hide the static baseline).
|
|
7414
7462
|
dynamicResolutionMode: "replace",
|
|
@@ -7671,6 +7719,10 @@ registerAction({
|
|
|
7671
7719
|
type: COLLECTION_USERS_ACTION_TYPE,
|
|
7672
7720
|
can: "collection/users",
|
|
7673
7721
|
sideEffect: true,
|
|
7722
|
+
// Authz grants signed by the entity admin — only the human in the Portal
|
|
7723
|
+
// FlowDetail holds that authority. Orchestrators gather inputs and hand
|
|
7724
|
+
// off; they must not run or delegate this.
|
|
7725
|
+
executionOwner: "human",
|
|
7674
7726
|
// Dynamic resolvers predate merge-by-default and intentionally control
|
|
7675
7727
|
// the full vocabulary (e.g. returning [] to hide the static baseline).
|
|
7676
7728
|
dynamicResolutionMode: "replace",
|
|
@@ -7707,6 +7759,16 @@ registerAction({
|
|
|
7707
7759
|
members: { type: "array", description: "Resolved members to fan the grant out to when granteeKind is group-members." }
|
|
7708
7760
|
}
|
|
7709
7761
|
},
|
|
7762
|
+
// Only the decision inputs are human-askable: `operation` selects the
|
|
7763
|
+
// branch and `collectionId` targets the collection (often filled by the
|
|
7764
|
+
// `created` event of an upstream collection.lifecycle block). adminAddress,
|
|
7765
|
+
// role and grantee fields are resolved by the host/FlowDetail, so a blank
|
|
7766
|
+
// there is not something to escalate to a human for.
|
|
7767
|
+
getMissingInputs: (inputs) => {
|
|
7768
|
+
const operation = String(inputs?.operation || "").trim();
|
|
7769
|
+
if (!operation) return ["operation"];
|
|
7770
|
+
return String(inputs?.collectionId || "").trim() ? [] : ["collectionId"];
|
|
7771
|
+
},
|
|
7710
7772
|
run: async (inputs, ctx) => {
|
|
7711
7773
|
const service = ctx.services.collectionUsers;
|
|
7712
7774
|
if (!service) {
|
|
@@ -8169,6 +8231,13 @@ function fieldValues(inputs) {
|
|
|
8169
8231
|
function missingRequired(schema, values) {
|
|
8170
8232
|
return (schema.parameters.required || []).filter((name) => !(values[name] ?? "").trim());
|
|
8171
8233
|
}
|
|
8234
|
+
function delegatedToolMissingInputs(schema, rawInputs) {
|
|
8235
|
+
const parsed = parseDelegatedToolInputs(rawInputs);
|
|
8236
|
+
const missing = [];
|
|
8237
|
+
if (!parsed.connection?.bindingId) missing.push("connection");
|
|
8238
|
+
missing.push(...missingRequired(schema, fieldValues(parsed)));
|
|
8239
|
+
return missing;
|
|
8240
|
+
}
|
|
8172
8241
|
function coerceToolArgs(schema, values) {
|
|
8173
8242
|
const out = {};
|
|
8174
8243
|
for (const [name, prop] of Object.entries(schema.parameters.properties || {})) {
|
|
@@ -8252,6 +8321,9 @@ registerAction({
|
|
|
8252
8321
|
requiredCapability: "flow/block/execute",
|
|
8253
8322
|
// Can be wired to another block's event (e.g. form submitted → send email).
|
|
8254
8323
|
eligibleForEventTrigger: true,
|
|
8324
|
+
// Mirrors executeDelegatedTool's gates: the bound connection plus the
|
|
8325
|
+
// tool schema's required fields, so orchestrators ask before run() throws.
|
|
8326
|
+
getMissingInputs: (inputs) => delegatedToolMissingInputs(GMAIL_SEND_SCHEMA, inputs),
|
|
8255
8327
|
outputSchema: GMAIL_SEND_OUTPUT_SCHEMA,
|
|
8256
8328
|
events: [
|
|
8257
8329
|
{
|
|
@@ -8329,6 +8401,9 @@ registerAction({
|
|
|
8329
8401
|
requiredCapability: "flow/block/execute",
|
|
8330
8402
|
// Can be wired to another block's event (e.g. form submitted → send email).
|
|
8331
8403
|
eligibleForEventTrigger: true,
|
|
8404
|
+
// Mirrors executeDelegatedTool's gates: the bound connection plus the
|
|
8405
|
+
// tool schema's required fields, so orchestrators ask before run() throws.
|
|
8406
|
+
getMissingInputs: (inputs) => delegatedToolMissingInputs(OUTLOOK_SEND_SCHEMA, inputs),
|
|
8332
8407
|
outputSchema: OUTLOOK_SEND_OUTPUT_SCHEMA,
|
|
8333
8408
|
events: [
|
|
8334
8409
|
{
|
|
@@ -8403,6 +8478,9 @@ registerAction({
|
|
|
8403
8478
|
requiredCapability: "flow/block/execute",
|
|
8404
8479
|
// Can be wired to another block's event (e.g. form submitted → post message).
|
|
8405
8480
|
eligibleForEventTrigger: true,
|
|
8481
|
+
// Mirrors executeDelegatedTool's gates: the bound connection plus the
|
|
8482
|
+
// tool schema's required fields, so orchestrators ask before run() throws.
|
|
8483
|
+
getMissingInputs: (inputs) => delegatedToolMissingInputs(SLACK_SEND_SCHEMA, inputs),
|
|
8406
8484
|
outputSchema: SLACK_SEND_OUTPUT_SCHEMA,
|
|
8407
8485
|
events: [
|
|
8408
8486
|
{
|
|
@@ -8479,6 +8557,9 @@ registerAction({
|
|
|
8479
8557
|
defaultRequiresConfirmation: true,
|
|
8480
8558
|
requiredCapability: "flow/block/execute",
|
|
8481
8559
|
eligibleForEventTrigger: true,
|
|
8560
|
+
// Mirrors executeDelegatedTool's gates: the bound connection plus the
|
|
8561
|
+
// tool schema's required fields, so orchestrators ask before run() throws.
|
|
8562
|
+
getMissingInputs: (inputs) => delegatedToolMissingInputs(GOOGLECALENDAR_CREATE_SCHEMA, inputs),
|
|
8482
8563
|
outputSchema: GOOGLECALENDAR_CREATE_OUTPUT_SCHEMA,
|
|
8483
8564
|
events: [
|
|
8484
8565
|
{
|
|
@@ -15221,4 +15302,4 @@ export {
|
|
|
15221
15302
|
executeQueuedFlowAgentCoreCommands,
|
|
15222
15303
|
FlowAgentService
|
|
15223
15304
|
};
|
|
15224
|
-
//# sourceMappingURL=chunk-
|
|
15305
|
+
//# sourceMappingURL=chunk-N7J2JFCX.js.map
|