@synergenius/flow-weaver 0.32.2 → 0.33.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/README.md +2 -0
- package/dist/api/compile.d.ts +2 -0
- package/dist/api/compile.js +2 -1
- package/dist/chevrotain-parser/path-parser.d.ts +7 -3
- package/dist/chevrotain-parser/path-parser.js +26 -4
- package/dist/cli/flow-weaver.mjs +174 -20
- package/dist/constants.js +4 -0
- package/dist/diagram/theme.js +51 -0
- package/dist/generated-version.d.ts +1 -1
- package/dist/generated-version.js +1 -1
- package/dist/jsdoc-parser.js +7 -5
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.js +1 -0
- package/dist/mcp/server.js +2 -0
- package/dist/mcp/tools-export.js +2 -2
- package/dist/mcp/tools-model.js +35 -9
- package/dist/mcp/tools-query.js +4 -1
- package/dist/mcp/tools-resources.d.ts +9 -0
- package/dist/mcp/tools-resources.js +41 -0
- package/dist/validator.js +6 -0
- package/docs/reference/advanced-annotations.md +16 -0
- package/docs/reference/jsdoc-grammar.md +11 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -58,6 +58,8 @@ Breaking changes may still occur between minor versions during beta. Pin your ve
|
|
|
58
58
|
|
|
59
59
|
**Extensible pack system:** Node types, deploy targets, CLI commands, and MCP tools are contributed by npm packages. Install community packs or build and publish your own.
|
|
60
60
|
|
|
61
|
+
**OpenClaw integration:** Use Flow Weaver inside [OpenClaw](https://openclaw.ai) with the native plugin. Build deterministic workflows through conversation. [Plugin](https://clawhub.ai/plugins/%40synergenius%2Fflow-weaver-openclaw) | [npm](https://www.npmjs.com/package/@synergenius/flow-weaver-openclaw) 🦞
|
|
62
|
+
|
|
61
63
|
## Quick Start
|
|
62
64
|
|
|
63
65
|
```bash
|
package/dist/api/compile.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export interface CompileOptions {
|
|
|
21
21
|
write?: boolean;
|
|
22
22
|
/** Whether to save AST alongside the generated file (default: false) */
|
|
23
23
|
saveAST?: boolean;
|
|
24
|
+
/** Validation mode: 'draft' suppresses STUB_NODE errors */
|
|
25
|
+
validationMode?: 'strict' | 'draft';
|
|
24
26
|
}
|
|
25
27
|
/**
|
|
26
28
|
* Result of workflow compilation
|
package/dist/api/compile.js
CHANGED
|
@@ -38,7 +38,8 @@ export async function compileWorkflow(filePath, options = {}) {
|
|
|
38
38
|
}
|
|
39
39
|
// Validate before generating
|
|
40
40
|
const { validateWorkflow } = await import('./validate.js');
|
|
41
|
-
const
|
|
41
|
+
const validationMode = options.validationMode;
|
|
42
|
+
const validationResult = validateWorkflow(parseResult.ast, validationMode ? { mode: validationMode } : undefined);
|
|
42
43
|
if (validationResult.errors.length > 0) {
|
|
43
44
|
const errorMessages = validationResult.errors.map((e) => typeof e === 'string' ? e : e.message);
|
|
44
45
|
throw new Error(`Validation errors:\n${errorMessages.join('\n')}`);
|
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Syntax:
|
|
7
7
|
* @path Start -> validator:ok -> classifier -> urgencyRouter:fail -> escalate -> Exit
|
|
8
|
+
* @path Start -> A -> C -> Exit, Start -> B -> C
|
|
8
9
|
*
|
|
9
|
-
* Steps separated by ->, each is NodeName optionally followed by :ok or :fail
|
|
10
|
+
* Steps separated by ->, each is NodeName optionally followed by :ok or :fail.
|
|
11
|
+
* Multiple paths can be comma-separated within a single @path tag.
|
|
10
12
|
*/
|
|
11
13
|
export interface PathStep {
|
|
12
14
|
node: string;
|
|
@@ -17,10 +19,12 @@ export interface PathParseResult {
|
|
|
17
19
|
steps: PathStep[];
|
|
18
20
|
}
|
|
19
21
|
/**
|
|
20
|
-
* Parse a @path line and return structured
|
|
22
|
+
* Parse a @path line and return structured results.
|
|
23
|
+
* Supports comma-separated parallel paths in a single @path tag:
|
|
24
|
+
* @path Start -> A -> C -> Exit, Start -> B -> C
|
|
21
25
|
* Returns null if the line is not a valid @path declaration.
|
|
22
26
|
*/
|
|
23
|
-
export declare function parsePathLine(input: string, warnings: string[]): PathParseResult | null;
|
|
27
|
+
export declare function parsePathLine(input: string, warnings: string[]): PathParseResult[] | null;
|
|
24
28
|
/**
|
|
25
29
|
* Get serialized grammar for documentation/diagram generation.
|
|
26
30
|
*/
|
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Syntax:
|
|
7
7
|
* @path Start -> validator:ok -> classifier -> urgencyRouter:fail -> escalate -> Exit
|
|
8
|
+
* @path Start -> A -> C -> Exit, Start -> B -> C
|
|
8
9
|
*
|
|
9
|
-
* Steps separated by ->, each is NodeName optionally followed by :ok or :fail
|
|
10
|
+
* Steps separated by ->, each is NodeName optionally followed by :ok or :fail.
|
|
11
|
+
* Multiple paths can be comma-separated within a single @path tag.
|
|
10
12
|
*/
|
|
11
13
|
import { CstParser } from 'chevrotain';
|
|
12
|
-
import { JSDocLexer, PathTag, Identifier, Arrow, Colon, allTokens, } from './tokens.js';
|
|
14
|
+
import { JSDocLexer, PathTag, Identifier, Arrow, Colon, Comma, allTokens, } from './tokens.js';
|
|
13
15
|
// =============================================================================
|
|
14
16
|
// Parser Definition
|
|
15
17
|
// =============================================================================
|
|
@@ -18,9 +20,17 @@ class PathParser extends CstParser {
|
|
|
18
20
|
super(allTokens);
|
|
19
21
|
this.performSelfAnalysis();
|
|
20
22
|
}
|
|
21
|
-
// Entry rule: @path
|
|
23
|
+
// Entry rule: @path pathSequence (Comma pathSequence)*
|
|
22
24
|
pathLine = this.RULE('pathLine', () => {
|
|
23
25
|
this.CONSUME(PathTag);
|
|
26
|
+
this.SUBRULE(this.pathSequence, { LABEL: 'firstSequence' });
|
|
27
|
+
this.MANY(() => {
|
|
28
|
+
this.CONSUME(Comma);
|
|
29
|
+
this.SUBRULE2(this.pathSequence, { LABEL: 'nextSequence' });
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
// pathSequence: pathStep (Arrow pathStep)+
|
|
33
|
+
pathSequence = this.RULE('pathSequence', () => {
|
|
24
34
|
this.SUBRULE(this.pathStep, { LABEL: 'firstStep' });
|
|
25
35
|
this.AT_LEAST_ONE(() => {
|
|
26
36
|
this.CONSUME(Arrow);
|
|
@@ -54,6 +64,16 @@ class PathVisitor extends BaseVisitor {
|
|
|
54
64
|
this.warnings = warnings;
|
|
55
65
|
}
|
|
56
66
|
pathLine(ctx) {
|
|
67
|
+
const results = [];
|
|
68
|
+
results.push(this.pathSequence(ctx.firstSequence[0].children));
|
|
69
|
+
if (ctx.nextSequence) {
|
|
70
|
+
for (const seqCst of ctx.nextSequence) {
|
|
71
|
+
results.push(this.pathSequence(seqCst.children));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return results;
|
|
75
|
+
}
|
|
76
|
+
pathSequence(ctx) {
|
|
57
77
|
const steps = [];
|
|
58
78
|
steps.push(this.pathStep(ctx.firstStep[0].children));
|
|
59
79
|
for (const stepCst of ctx.nextStep) {
|
|
@@ -81,7 +101,9 @@ const visitorInstance = new PathVisitor();
|
|
|
81
101
|
// Public API
|
|
82
102
|
// =============================================================================
|
|
83
103
|
/**
|
|
84
|
-
* Parse a @path line and return structured
|
|
104
|
+
* Parse a @path line and return structured results.
|
|
105
|
+
* Supports comma-separated parallel paths in a single @path tag:
|
|
106
|
+
* @path Start -> A -> C -> Exit, Start -> B -> C
|
|
85
107
|
* Returns null if the line is not a valid @path declaration.
|
|
86
108
|
*/
|
|
87
109
|
export function parsePathLine(input, warnings) {
|
package/dist/cli/flow-weaver.mjs
CHANGED
|
@@ -5987,7 +5987,7 @@ var VERSION;
|
|
|
5987
5987
|
var init_generated_version = __esm({
|
|
5988
5988
|
"src/generated-version.ts"() {
|
|
5989
5989
|
"use strict";
|
|
5990
|
-
VERSION = "0.
|
|
5990
|
+
VERSION = "0.33.0";
|
|
5991
5991
|
}
|
|
5992
5992
|
});
|
|
5993
5993
|
|
|
@@ -6084,6 +6084,8 @@ var init_constants = __esm({
|
|
|
6084
6084
|
"input",
|
|
6085
6085
|
"output",
|
|
6086
6086
|
"step",
|
|
6087
|
+
// Async is auto-detected from the TS signature but accepted as an explicit annotation
|
|
6088
|
+
"async",
|
|
6087
6089
|
// Deployment annotations
|
|
6088
6090
|
"deploy"
|
|
6089
6091
|
]);
|
|
@@ -6111,6 +6113,8 @@ var init_constants = __esm({
|
|
|
6111
6113
|
"param",
|
|
6112
6114
|
"return",
|
|
6113
6115
|
"returns",
|
|
6116
|
+
// Async is auto-detected from the TS signature but accepted as an explicit annotation
|
|
6117
|
+
"async",
|
|
6114
6118
|
// Deployment annotations
|
|
6115
6119
|
"deploy"
|
|
6116
6120
|
]);
|
|
@@ -25394,9 +25398,17 @@ var init_path_parser = __esm({
|
|
|
25394
25398
|
super(allTokens);
|
|
25395
25399
|
this.performSelfAnalysis();
|
|
25396
25400
|
}
|
|
25397
|
-
// Entry rule: @path
|
|
25401
|
+
// Entry rule: @path pathSequence (Comma pathSequence)*
|
|
25398
25402
|
pathLine = this.RULE("pathLine", () => {
|
|
25399
25403
|
this.CONSUME(PathTag);
|
|
25404
|
+
this.SUBRULE(this.pathSequence, { LABEL: "firstSequence" });
|
|
25405
|
+
this.MANY(() => {
|
|
25406
|
+
this.CONSUME(Comma);
|
|
25407
|
+
this.SUBRULE2(this.pathSequence, { LABEL: "nextSequence" });
|
|
25408
|
+
});
|
|
25409
|
+
});
|
|
25410
|
+
// pathSequence: pathStep (Arrow pathStep)+
|
|
25411
|
+
pathSequence = this.RULE("pathSequence", () => {
|
|
25400
25412
|
this.SUBRULE(this.pathStep, { LABEL: "firstStep" });
|
|
25401
25413
|
this.AT_LEAST_ONE(() => {
|
|
25402
25414
|
this.CONSUME(Arrow);
|
|
@@ -25424,6 +25436,16 @@ var init_path_parser = __esm({
|
|
|
25424
25436
|
this.warnings = warnings;
|
|
25425
25437
|
}
|
|
25426
25438
|
pathLine(ctx) {
|
|
25439
|
+
const results = [];
|
|
25440
|
+
results.push(this.pathSequence(ctx.firstSequence[0].children));
|
|
25441
|
+
if (ctx.nextSequence) {
|
|
25442
|
+
for (const seqCst of ctx.nextSequence) {
|
|
25443
|
+
results.push(this.pathSequence(seqCst.children));
|
|
25444
|
+
}
|
|
25445
|
+
}
|
|
25446
|
+
return results;
|
|
25447
|
+
}
|
|
25448
|
+
pathSequence(ctx) {
|
|
25427
25449
|
const steps = [];
|
|
25428
25450
|
steps.push(this.pathStep(ctx.firstStep[0].children));
|
|
25429
25451
|
for (const stepCst of ctx.nextStep) {
|
|
@@ -26971,15 +26993,17 @@ var init_jsdoc_parser = __esm({
|
|
|
26971
26993
|
*/
|
|
26972
26994
|
parsePathTag(tag, config2, warnings) {
|
|
26973
26995
|
const comment = tag.getCommentText() || "";
|
|
26974
|
-
const
|
|
26975
|
-
if (!
|
|
26996
|
+
const results = parsePathLine(`@path ${comment}`, warnings);
|
|
26997
|
+
if (!results) {
|
|
26976
26998
|
warnings.push(`Invalid @path tag format: ${comment}`);
|
|
26977
26999
|
return;
|
|
26978
27000
|
}
|
|
26979
27001
|
config2.paths = config2.paths || [];
|
|
26980
|
-
|
|
26981
|
-
|
|
26982
|
-
|
|
27002
|
+
for (const result of results) {
|
|
27003
|
+
config2.paths.push({
|
|
27004
|
+
steps: result.steps
|
|
27005
|
+
});
|
|
27006
|
+
}
|
|
26983
27007
|
}
|
|
26984
27008
|
parseFanOutTag(tag, config2, warnings) {
|
|
26985
27009
|
const comment = tag.getCommentText() || "";
|
|
@@ -30711,7 +30735,58 @@ var init_theme = __esm({
|
|
|
30711
30735
|
backup: "M260.72-151.87q-94.37 0-161.25-65.15T32.59-376.28q0-80.39 47.36-143.67 47.35-63.27 125.03-80.75 26.43-92.95 102.63-150.19Q383.8-808.13 480-808.13q118.2 0 201.25 81.74t85.68 199.69q69.72 10.63 115.1 63.81 45.38 53.17 45.38 123.61 0 78.09-55.01 132.75t-133.12 54.66H529.09q-37.54 0-64.27-26.73-26.73-26.73-26.73-64.27v-191.41l-65.68 64.15-58.63-58.39L480-594.98l166.22 166.46-58.63 58.39-65.68-64.15v191.41h217.37q40.57 0 68.85-28.28 28.28-28.28 28.28-68.85 0-40.57-28.28-68.85-28.28-28.28-68.85-28.28h-62.87v-83.59q0-81.51-57.45-138.96T480-717.13q-82.04 0-139.23 58.74-57.18 58.74-57.18 141.26h-22.87q-56.81 0-96.97 40.16T123.59-380q0 56.8 40.16 96.97 40.16 40.16 96.97 40.16h97.37v91h-97.37ZM480-434.5Z",
|
|
30712
30736
|
cloudDone: "m412.8-279.76 228.63-228.63-60.39-60.39-169 169-84.24-84.24-59.39 59.63L412.8-279.76ZM260.72-151.87q-94.35 0-161.24-65.15-66.89-65.15-66.89-159.26 0-80.39 47.36-143.67 47.35-63.27 125.03-80.75 26.43-92.95 102.63-150.19Q383.8-808.13 480-808.13q118.2 0 201.25 81.74t85.68 199.69q69.72 10.63 115.1 63.81 45.38 53.17 45.38 123.61 0 78.11-54.65 132.76-54.65 54.65-132.76 54.65H260.72Zm0-91h478.56q40.57 0 68.85-28.28 28.28-28.28 28.28-68.85 0-40.57-28.28-68.85-28.28-28.28-68.85-28.28h-62.87v-83.59q0-81.56-57.42-138.99-57.42-57.42-138.99-57.42-82.04 0-139.23 58.74-57.18 58.74-57.18 141.26h-22.87q-56.81 0-96.97 40.16-40.16 40.17-40.16 96.97t40.16 96.97q40.16 40.16 96.97 40.16ZM480-480Z",
|
|
30713
30737
|
lock: "M242.87-72.59q-37.54 0-64.27-26.73-26.73-26.73-26.73-64.27v-394.26q0-37.54 26.73-64.27 26.73-26.73 64.27-26.73h33.54v-73.06q0-84.92 59.46-144.61 59.46-59.7 144.13-59.7 84.67 0 144.13 59.7 59.46 59.69 59.46 144.61v73.06h33.54q37.54 0 64.27 26.73 26.73 26.73 26.73 64.27v394.26q0 37.54-26.73 64.27-26.73 26.73-64.27 26.73H242.87Zm0-91h474.26v-394.26H242.87v394.26ZM536.5-304.22q23.5-23.5 23.5-56.5t-23.5-56.5q-23.5-23.5-56.5-23.5t-56.5 23.5q-23.5 23.5-23.5 56.5t23.5 56.5q23.5 23.5 56.5 23.5t56.5-23.5ZM367.41-648.85h225.18v-73.06q0-47.21-32.73-80.26-32.73-33.05-79.86-33.05t-79.86 33.05q-32.73 33.05-32.73 80.26v73.06ZM242.87-163.59v-394.26 394.26Z",
|
|
30714
|
-
lockOpen: "M242.87-648.85h349.72v-73.06q0-47.21-32.73-80.26-32.73-33.05-79.86-33.05t-79.86 33.05q-32.73 33.05-32.73 80.26h-91q0-84.92 59.46-144.61 59.46-59.7 144.13-59.7 84.67 0 144.13 59.7 59.46 59.69 59.46 144.61v73.06h33.54q37.54 0 64.27 26.73 26.73 26.73 26.73 64.27v394.26q0 37.54-26.73 64.27-26.73 26.73-64.27 26.73H242.87q-37.54 0-64.27-26.73-26.73-26.73-26.73-64.27v-394.26q0-37.54 26.73-64.27 26.73-26.73 64.27-26.73Zm0 485.26h474.26v-394.26H242.87v394.26ZM536.5-304.22q23.5-23.5 23.5-56.5t-23.5-56.5q-23.5-23.5-56.5-23.5t-56.5 23.5q-23.5 23.5-23.5 56.5t23.5 56.5q23.5 23.5 56.5 23.5t56.5-23.5ZM242.87-163.59v-394.26 394.26Z"
|
|
30738
|
+
lockOpen: "M242.87-648.85h349.72v-73.06q0-47.21-32.73-80.26-32.73-33.05-79.86-33.05t-79.86 33.05q-32.73 33.05-32.73 80.26h-91q0-84.92 59.46-144.61 59.46-59.7 144.13-59.7 84.67 0 144.13 59.7 59.46 59.69 59.46 144.61v73.06h33.54q37.54 0 64.27 26.73 26.73 26.73 26.73 64.27v394.26q0 37.54-26.73 64.27-26.73 26.73-64.27 26.73H242.87q-37.54 0-64.27-26.73-26.73-26.73-26.73-64.27v-394.26q0-37.54 26.73-64.27 26.73-26.73 64.27-26.73Zm0 485.26h474.26v-394.26H242.87v394.26ZM536.5-304.22q23.5-23.5 23.5-56.5t-23.5-56.5q-23.5-23.5-56.5-23.5t-56.5 23.5q-23.5 23.5-23.5 56.5t23.5 56.5q23.5 23.5 56.5 23.5t56.5-23.5ZM242.87-163.59v-394.26 394.26Z",
|
|
30739
|
+
// ---- Platform catalog sync (icons available in the platform's node icon picker) ----
|
|
30740
|
+
addAuthorization: "M480-73.78q-140.58-32.67-233.28-158.97-92.7-126.29-92.7-289.29v-243.14L480-887.22l326.22 122.15v277.66q-16.15-8.92-34-15.4-17.85-6.47-34.37-8.67v-206.05L480-812.61l-257.85 95v195.51q0 76.58 24.62 140.22t62.5 111.42q37.88 47.79 83.16 79.07 45.29 31.28 86.61 44.56 6.24 14.87 19.92 32.15 13.67 17.27 24.78 26.22-10.44 5.72-21.87 8.58-11.44 2.86-21.87 6.1ZM692.5-80Q615-80 560-135.5T505-267q0-78.43 54.99-133.72Q614.98-456 693-456q77 0 132.5 55.28Q881-345.43 881-267q0 76-55.5 131.5T692.5-80ZM480-479.72Zm195.37 318.76h38.26v-86.41h86.41v-38.26h-86.41v-86.41h-38.26v86.41h-86.41v38.26h86.41v86.41Z",
|
|
30741
|
+
alarm: "M479-76.02q-75.2 0-141.77-28.48-66.58-28.48-116.03-77.82-49.46-49.33-78.32-115.91-28.86-66.57-28.86-142.5T142.88-583q28.86-66.35 78.32-116.18 49.45-49.84 116.03-78.44 66.57-28.6 141.77-28.6 75.2 0 141.77 28.6 66.58 28.6 116.41 78.44 49.84 49.83 78.44 116.18 28.6 66.34 28.6 142.27t-28.6 142.5q-28.6 66.58-78.44 115.97-49.84 49.4-116.41 77.82Q554.2-76.02 479-76.02ZM479-439Zm119.57 162.43 44.39-44.39-129.53-129.52V-640h-62.86v215.43l148 148Zm-387.2-598.08 44.15 44.15L86.5-667.48l-43.91-44.15 168.78-163.02Zm535.26 0 169.02 163.02-44.15 44.15L702.48-830.5l44.15-44.15ZM479-144.15q124.04 0 210.45-86.4 86.4-86.41 86.4-210.45 0-124.04-86.4-210.45-86.41-86.4-210.45-86.4-124.04 0-210.45 86.4-86.4 86.41-86.4 210.45 0 124.04 86.4 210.45 86.41 86.4 210.45 86.4Z",
|
|
30742
|
+
allInclusive: "M211.89-255.93q-91.56 0-153.76-66.7-62.2-66.7-62.2-159.37 0-91.67 62.7-156.87t153.26-65.2q36.72 0 70.96 12.24 34.24 12.23 60.78 37.72l90.85 87.61-48.22 47.5-85.81-83.87q-17.51-17.52-40.46-25.29t-47.98-7.77q-62.45 0-105.19 45.27-42.75 45.27-42.75 108.75 0 64.48 42.24 111.16 42.25 46.68 105.69 46.68 24.28 0 47.12-7.76 22.83-7.77 41.25-24.28l316-298q26.54-25.49 60.78-37.72 34.24-12.24 69.96-12.24 91.56 0 154.26 65.2 62.7 65.2 62.7 156.87 0 92.67-62.7 159.37t-154.26 66.7q-35.72 0-70.46-11.74-34.74-11.73-60.28-37.22l-88.61-87.61 47.98-47.5 83.88 83.89q16.53 16.52 39.81 24.28 23.29 7.76 47.57 7.76 63.44 0 106.19-46.72 42.74-46.72 42.74-111.13 0-63.41-43.24-108.71-43.25-45.3-105.69-45.3-24.28 0-47.12 8.76-22.83 8.77-40.25 25.28l-316 298q-26.54 24.49-61.28 36.22-34.74 11.74-70.46 11.74Z",
|
|
30743
|
+
analytics: "M285.2-277h60v-205h-60v205Zm329.84 0h60v-420h-60v420ZM450-277h60v-118h-60v118Zm0-205h60v-60h-60v60ZM182.15-114.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-595.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h595.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v595.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-595.7Zm0-68.13h595.7v-595.7h-595.7v595.7Zm0-595.7v595.7-595.7Z",
|
|
30744
|
+
assignment: "M182.15-114.02q-28.1 0-48.12-20.01-20.01-20.02-20.01-48.12v-595.7q0-28.2 20.01-48.28 20.02-20.09 48.12-20.09h199.02q6.44-35 34.16-57.5 27.71-22.5 64.67-22.5t64.67 22.5q27.72 22.5 34.16 57.5h199.02q28.2 0 48.28 20.09 20.09 20.08 20.09 48.28v595.7q0 28.1-20.09 48.12-20.08 20.01-48.28 20.01h-595.7Zm0-68.13h595.7v-595.7h-595.7v595.7Zm100-100h270.37v-60H282.15v60Zm0-167.85h395.7v-60h-395.7v60Zm0-167.85h395.7v-60h-395.7v60ZM480-795.57q14.83 0 25.63-10.8 10.8-10.8 10.8-25.63 0-14.83-10.8-25.63-10.8-10.8-25.63-10.8-14.83 0-25.63 10.8-10.8 10.8-10.8 25.63 0 14.83 10.8 25.63 10.8 10.8 25.63 10.8ZM182.15-182.15v-595.7 595.7Z",
|
|
30745
|
+
barChart: "M660.48-154.02v-288.61h145.74v288.61H660.48Zm-253.11 0v-652.2h145.26v652.2H407.37Zm-253.35 0v-452.2h145.5v452.2h-145.5Z",
|
|
30746
|
+
calendar: "M182.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-615.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34H245v-60h69.07v60h331.86v-60H715v60h62.85q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v256.65h-68.37V-570h-595.7v427.85h316.89v68.13H182.15Zm0-555.98h595.7v-127.85h-595.7V-630Zm0 0v-127.85V-630ZM559.04-74.02v-128.02L781-423q9.51-9.63 21.13-13.91 11.62-4.29 23.5-4.29 12.48 0 24.21 4.86T871.02-422l37 37q9.44 9.48 13.82 21.12 4.38 11.63 4.38 23.27 0 11.96-4.86 24.06-4.86 12.09-14.25 21.57L687.07-74.02H559.04Zm303.59-266.59-37-37 37 37Zm-240 203h38l120.28-121.23-18-19.02-19-18.03-121.28 120.22v38.06Zm140.28-140.28-19-18 37 37-18-19Z",
|
|
30747
|
+
changeCircle: "M482-198.09 597.91-313 482.24-427.91 438.09-384l41.32 41.33q-26.8.28-52.11-9.48-25.3-9.76-45.34-29.81-19.76-19.76-30.14-45.52-10.39-25.76-10.39-51.52 0-16.76 4.5-34t12.74-33.48l-45.91-45.67q-17.48 25.95-25.84 54.43-8.35 28.48-8.35 57.72 0 38.48 15 75.6t44.47 66.36q28.53 28.76 63.93 43.26 35.4 14.5 72.92 15.74L438.09-242 482-198.09Zm165.48-169.76q17.24-25.95 25.6-54.43 8.35-28.48 8.35-57.72 0-38.48-14.61-75.98-14.62-37.5-43.86-66.98-28.76-28.52-64.55-42.64-35.78-14.12-73.06-14.6l36.56-37.8L478-761.91 362.09-647l115.67 114.91L521.91-576l-42.08-42.33q25.8.72 52.37 10.86 26.56 10.14 45.84 29.43 19.76 19.76 30.14 45.52 10.39 25.76 10.39 51.52 0 16.76-4.5 34t-12.74 33.24l46.15 45.91ZM480-74.02q-83.43 0-157.51-31.86-74.08-31.86-129.41-87.2-55.34-55.33-87.2-129.41T74.02-480q0-84.43 31.86-158.51 31.86-74.08 87.2-128.91 55.33-54.84 129.41-86.82 74.08-31.98 157.51-31.98 84.43 0 158.51 31.98 74.08 31.98 128.91 86.82 54.84 54.83 86.82 128.91 31.98 74.08 31.98 158.51 0 83.43-31.98 157.51-31.98 74.08-86.82 129.41-54.83 55.34-128.91 87.2T480-74.02Zm0-68.13q141.04 0 239.45-98.78 98.4-98.79 98.4-239.07 0-141.04-98.4-239.45-98.41-98.4-239.45-98.4-140.28 0-239.07 98.4-98.78 98.41-98.78 239.45 0 140.28 98.78 239.07 98.79 98.78 239.07 98.78ZM480-480Z",
|
|
30748
|
+
chat: "M240-399h313v-60H240v60Zm0-130h480v-60H240v60Zm0-130h480v-60H240v60ZM74.02-74.02v-743.83q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h675.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v515.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27H234.02l-160 160Zm134-228.13h609.83v-515.7h-675.7v587.57l65.87-71.87Zm-65.87 0v-515.7 515.7Z",
|
|
30749
|
+
checklist: "M222.96-208.26 74.98-356l47.98-47.74 100 99 179-179.24L449.7-435 222.96-208.26Zm0-320L74.98-676l47.98-47.74 100 99 179-179.24L449.7-755 222.96-528.26Zm298 242.33v-68.14h364.06v68.14H520.96Zm0-320v-68.14h364.06v68.14H520.96Z",
|
|
30750
|
+
cloudStorage: "M251.48-154.02q-90.17 0-153.57-63.1-63.41-63.1-63.41-153.4 0-79.44 50.24-140.23 50.24-60.79 128.43-73.27 20.96-97.72 95.96-159.46 75-61.74 172.94-61.74 112.89 0 191.08 81.74 78.2 81.74 80.11 196.46v24q72.72.15 122.48 49.89 49.76 49.75 49.76 124.61 0 71.61-51.44 123.05-51.45 51.45-123.06 51.45H251.48Zm0-68.13h499.04q43.87 0 75.36-31.4 31.49-31.41 31.49-75.45 0-44.04-31.49-75.45-31.49-31.4-75.36-31.4h-65.15v-86.63q0-89.91-60.2-152.14-60.2-62.23-147.06-62.23-87.39 0-147.94 63.12-60.54 63.12-60.54 153.88h-21.15q-61.11 0-103.48 42.86-42.37 42.85-42.37 105.94 0 62.09 43.37 105.5 43.37 43.4 105.48 43.4ZM480-480Z",
|
|
30751
|
+
compareArrows: "m311.5-154.02-47.74-47.74 116.94-116.7H74.02v-68.37H380.7L263.76-503.76l47.74-47.74 198.98 198.74L311.5-154.02Zm337-254.72L449.76-607.48 648.5-806.22l47.74 47.74-116.7 116.94h306.68v68.37H579.54l116.7 116.69-47.74 47.74Z",
|
|
30752
|
+
construction: "M770.39-114.02 517-367.17l60.83-61.07 253.39 253.39-60.83 60.83Zm-585.78 0-60.83-60.83 292.39-292.39-107.71-107.48-23 23-41.37-41.37v82.61l-25.2 25.2L91.63-612.54l25.2-25.2h83.6l-45.6-45.61 132.91-132.91q17.48-17.48 38.31-23.72 20.84-6.24 45.56-6.24 24.48 0 45.31 8.86 20.84 8.86 38.56 26.1L347.28-703.3l47.76 47.76-24 24 104.72 104.71 122-121.76q-7.76-12.76-12.26-29.76t-4.5-35.76q0-53.96 39.34-93.41 39.33-39.46 93.29-39.46 15.96 0 27.29 3.36 11.34 3.36 19.06 9.08l-85 85.24 73.09 73.08 85-85.24q5.95 8.48 9.93 21.06 3.98 12.57 3.98 28.29 0 54.2-39.58 93.41-39.57 39.22-93.77 39.22-17.76 0-30.52-2.38-12.76-2.38-23.52-7.14L184.61-114.02Z",
|
|
30753
|
+
dataArray: "M596.41-154.02v-67.89h141.68v-516.18H596.41v-68.13h209.81v652.2H596.41Zm-442.39 0v-652.2h209.57v68.13H221.91v516.18h141.68v67.89H154.02Z",
|
|
30754
|
+
deviceHub: "M115.93-115.93v-188.14h157.83l173.61-173.6v-143.74q-35.74-12.79-58.59-42.23-22.85-29.43-22.85-66.36 0-47.53 33.31-80.8 33.3-33.27 80.88-33.27 47.57 0 80.76 33.27 33.19 33.27 33.19 80.8 0 36.93-22.85 66.36-22.85 29.44-58.59 42.23v143.74l173.85 173.6h157.59v188.14H655.93v-121.5L480-413.37 304.07-237.43v121.5H115.93Z",
|
|
30755
|
+
engineering: "M36.26-114.26v-98.15q0-36.94 17.56-60.63 17.55-23.7 46.79-37.7 54-26 116.81-43.24 62.82-17.24 140.94-17.24t140.81 17q62.7 17 116.94 43 29 14.24 46.55 38.07 17.56 23.84 17.56 60.76v98.13H36.26Zm68.37-68.37h507.46v-29.13q0-15-8.5-24.14t-20.5-14.14q-43-19-95.52-36.03-52.53-17.02-129.21-17.02-76.69 0-129.21 17.14-52.52 17.15-95.52 35.96-12.24 4.95-20.62 14.09t-8.38 24.14v29.13Zm253.73-248.59q-68.51 0-112.31-44.61-43.79-44.61-43.79-110.17h-10q-8.75 0-15.21-6.48-6.46-6.47-6.46-15.25 0-8.67 6.46-15.15 6.46-6.47 15.21-6.47h10q0-41.19 21.32-74.51 21.31-33.31 55.94-53.08v39.15q0 6.33 4.45 10.71 4.44 4.38 10.79 4.38 6.76 0 11-4.36t4.24-10.57v-51.83q8.08-1.76 22.18-3.38 14.09-1.62 27.2-1.62 12.86 0 26.86 1.62t22.19 3.37v51.84q0 6.21 4.26 10.57 4.27 4.36 11.27 4.36 6.24 0 10.74-4.38t4.5-10.62v-39.24q34.39 19.77 54.7 53.07 20.32 33.31 20.32 74.52h10q8.75 0 15.21 6.46 6.46 6.45 6.46 15.19 0 8.74-6.46 15.22T524.22-586h-10q0 65.67-43.68 110.23-43.67 44.55-112.18 44.55Zm.11-68.37q40.81 0 64.21-24.37 23.41-24.36 23.41-63.48H270.63q0 39.05 23.37 63.45 23.36 24.4 64.47 24.4ZM358.48-182.63Z",
|
|
30756
|
+
fileCopy: "M782.63-162.63H269.8q-27.69 0-48.03-20.34-20.34-20.33-20.34-48.03v-626.37q0-27.6 20.34-47.86 20.34-20.27 48.03-20.27h345.37l235.59 235.59V-231q0 27.7-20.39 48.03-20.39 20.34-47.74 20.34Zm-202-496.74v-198H269.8V-231h512.83v-428.37h-202ZM141.43-34.5q-27.59 0-47.86-20.27Q73.3-75.03 73.3-102.63v-616.85h68.13v616.85h499.68v68.13H141.43ZM269.8-857.37v198-198V-231v-626.37Z",
|
|
30757
|
+
filePresent: "M222.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-675.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h357.89l226.18 226.18v517.89q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Zm0-68.13h515.7V-634H554v-183.85H222.15v675.7Zm258.11-80q58.5 0 99.12-41.13Q620-304.4 620-362.22v-139.21h-40v139.2q0 42.03-28.75 71.05-28.75 29.03-71.25 29.03-42 0-71-29.02t-29-71.04v-219.3q0-17.97 11.5-28.95 11.5-10.97 28.5-10.97 18 0 29 10.98t11 28.96v199.34h40v-199.21q0-33.63-23.08-56.85-23.07-23.22-56.57-23.22-33.59 0-56.97 23.21Q340-615 340-581.37v219.18q0 57.79 41.2 98.91 41.21 41.13 99.06 41.13Zm-258.11-595.7V-634v-183.85 675.7-675.7Z",
|
|
30758
|
+
forum: "M890.28-70 729.61-230.67H305.02q-28.35 0-48.24-19.96-19.89-19.97-19.89-48.41v-80h436.89q28.1 0 48.12-19.89 20.01-19.9 20.01-48.24v-276.66h80q28.45 0 48.41 19.96 19.96 19.97 19.96 48.41V-70ZM138.09-440.54l66.63-66.63h409.06v-315.46H138.09v382.09ZM69.72-276.17v-546.46q0-28.45 19.96-48.41Q109.64-891 138.09-891h475.69q28.1 0 48.12 19.96 20.01 19.96 20.01 48.41v315.46q0 28.34-20.01 48.24-20.02 19.89-48.12 19.89H232.59L69.72-276.17Zm68.37-231v-315.46 315.46Z",
|
|
30759
|
+
history: "M476.77-114.02q-151.88 0-257.6-107.16Q113.45-328.33 113.78-481h68.13q.28 124.12 85.53 211.48 85.24 87.37 209.32 87.37 125.81 0 213.33-88.36 87.52-88.36 87.52-214.45 0-123.08-88.37-207.99-88.38-84.9-212.48-84.9-66.09 0-124.15 29.45-58.07 29.44-101.35 78.29h99.98V-607H137.46v-212.54h62.63v103.37q52.71-60.53 124.45-95.29 71.74-34.76 152.22-34.76 76.2 0 143.27 28.6 67.08 28.6 117.47 77.94 50.4 49.34 79.32 115.41Q845.74-558.2 845.74-482q0 76.2-28.92 143.27-28.92 67.07-79.32 116.91-50.39 49.84-117.47 78.82-67.07 28.98-143.26 28.98ZM603.8-315.57l-154-152V-683h62.63v189l136.53 133.28-45.16 45.15Z",
|
|
30760
|
+
hourglassEmpty: "M310.15-142.15h339.7V-267q0-71.04-49.4-119.95-49.41-48.9-120.45-48.9t-120.45 48.9q-49.4 48.91-49.4 119.95v124.85Zm169.85-382q71.04 0 120.45-49.4 49.4-49.41 49.4-120.45v-123.85h-339.7V-694q0 71.04 49.4 120.45 49.41 49.4 120.45 49.4ZM154.02-74.02v-68.13h88V-267q0-70.28 38.93-128.04Q319.87-452.8 384.43-480q-64.56-28.2-103.48-85.96-38.93-57.76-38.93-128.04v-123.85h-88v-68.37h652.2v68.37h-88V-694q0 70.28-38.93 128.04Q640.37-508.2 575.8-480q64.57 27.2 103.49 84.96 38.93 57.76 38.93 128.04v124.85h88v68.13h-652.2Z",
|
|
30761
|
+
hub: "M232.55-31.87q-49.64 0-84.44-34.94-34.81-34.94-34.81-84.57 0-49.64 34.87-84.45 34.86-34.8 84.4-34.8 13.93 0 25.09 2.38 11.15 2.38 21.86 7.14l81.65-102.65q-18.28-22.76-28.28-52.02t-5.24-60.45l-116.93-40.86q-15.48 25.24-40.87 39.48-25.39 14.24-58.48 14.24-49.63 0-84.57-34.86-34.93-34.87-34.93-84.4 0-49.63 34.94-84.69 34.94-35.05 84.57-35.05q49.64 0 84.45 35.05 34.8 35.06 34.8 84.73v3.24l117.7 42q18-31.52 43.38-48.4 25.38-16.88 55.66-24.21v-125.08q-39-11.24-62.94-44.44-23.93-33.19-23.93-70.67 0-49.55 34.94-84.6t84.57-35.05q49.64 0 84.57 35.05 34.92 35.05 34.92 84.6 0 37.48-24.32 70.67-24.31 33.2-62.55 44.44v125.17q30.28 7.24 56.16 24.24 25.88 17 44.22 48.28l116.36-42v-3.28q0-49.63 34.86-84.69 34.87-35.05 84.4-35.05 49.63 0 84.69 35.06 35.05 35.06 35.05 84.69 0 49.64-35.05 84.45-35.06 34.8-84.77 34.8-32.97 0-58.88-14.24-25.91-14.24-40.63-39.72l-116.69 41q4.28 31.53-4.98 60.67-9.26 29.14-28.54 51.9l81.89 103.13q10.7-5 21.74-7.5t24.54-2.5q50.47 0 85.2 34.86 34.73 34.87 34.73 84.4 0 49.63-34.98 84.57-34.98 34.93-84.52 34.93-49.63 0-84.56-34.87-34.94-34.88-34.94-84.7 0-20.7 5.62-37.39t15.62-31.93l-81.41-102.41q-32.13 16.28-68.32 16.28-36.2 0-67.96-16.28l-80.65 103.41q10 15.24 15.62 31.43 5.62 16.19 5.62 36.89 0 49.82-34.94 84.7-34.94 34.87-84.58 34.87ZM480-460Z",
|
|
30762
|
+
integration: "M359.35-114.02H180q-26.47 0-46.22-19.76-19.76-19.75-19.76-46.22v-179.35q41.85-4.76 71.68-33.51 29.82-28.76 29.82-70.11 0-41.36-29.82-70.14-29.83-28.78-71.68-33.78V-746q0-26.4 19.76-46.31 19.75-19.91 46.22-19.91h171.74q12.91-40.95 42.73-68.07 29.81-27.12 70.53-27.12t70.53 27.12q29.82 27.12 42.73 68.07H746q26.4 0 46.31 19.91 19.91 19.91 19.91 46.31v167.74q40.95 12.91 66.57 44.73 25.62 31.81 25.62 72.53t-25.62 69.03q-25.62 28.32-66.57 41.23V-180q0 26.47-19.91 46.22-19.91 19.76-46.31 19.76H566.89q-5.24-46.81-34.78-75.47-29.54-28.66-69.17-28.66-39.62 0-69.11 28.66-29.48 28.66-34.48 75.47ZM465-461Z",
|
|
30763
|
+
leaderboard: "M142.15-182.15h180.07v-355.7H142.15v355.7Zm248.2 0h179.3v-595.7h-179.3v595.7Zm247.43 0h180.07v-275.7H637.78v275.7ZM74.02-114.02v-492.2h248.2v-240h315.56v320h248.44v412.2H74.02Z",
|
|
30764
|
+
loop: "M360-118.26 311.26-166l70.17-70.17h-31.8q-115.28-1.92-194.49-84.99Q75.93-404.24 75.93-520q0-117.67 81.7-200.87T357-804.07h246q117.67 0 199.37 83.2T884.07-520q0 118.43-81.98 201.25t-199.94 82.82v-68.14q89.61 0 151.7-62.92 62.08-62.92 62.08-153.01 0-89.57-61.3-152.75-61.3-63.18-150.63-63.18H356q-89.33 0-150.63 63.18T144.07-520q0 86.93 58.95 149.4 58.96 62.47 145.41 64.14h31.13L312.02-374 360-421.98l151.98 151.74L360-118.26Z",
|
|
30765
|
+
newFile: "M450-232.09h60v-129h130v-60H510v-130h-60v130H320v60h130v129ZM222.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-675.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h361.48l222.59 222.59v521.48q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Zm326.7-557.83v-186h-326.7v675.7h515.7v-489.7h-189Zm-326.7-186v186-186 675.7-675.7Z",
|
|
30766
|
+
pieChart: "M514.07-514.07h301.82q-11.24-118.65-96.71-206.11-85.46-87.47-205.11-95.71v301.82Zm-68.14 369.96v-671.78q-128.6 12.19-216.19 109-87.59 96.8-87.59 226.89 0 130.09 87.59 226.89 87.59 96.81 216.19 109Zm68.14 0q119.65-8.48 205-95.82 85.34-87.35 96.82-206H514.07v301.82ZM480-480Zm.03 405.98q-84.2 0-158.29-31.86-74.09-31.86-129.04-86.82-54.96-54.95-86.82-129.02-31.86-74.06-31.86-158.27 0-84.21 31.86-158.28 31.86-74.08 86.79-129.05 54.92-54.97 129.02-86.93 74.09-31.97 158.33-31.97 84.41 0 158.44 32 74.02 31.99 128.91 86.81 54.89 54.82 86.87 128.87Q886.22-564.5 886.22-480q0 84.51-32.01 158.57-32.01 74.07-86.88 128.86-54.87 54.79-128.96 86.67-74.1 31.88-158.34 31.88Z",
|
|
30767
|
+
public: "M480.21-74.02Q396-74.02 321.95-106q-74.06-31.98-129.03-86.87-54.97-54.88-86.93-128.92-31.97-74.04-31.97-158.22 0-84.19 31.97-158.21 31.96-74.02 86.93-128.91 54.97-54.89 129.06-86.99 74.08-32.1 158.31-32.1 84.24 0 158.18 32.1 73.95 32.1 128.87 86.94 54.92 54.83 86.9 128.9 31.98 74.06 31.98 158.27 0 84.21-31.96 158.25-31.95 74.05-86.9 128.96-54.96 54.92-129 86.85-74.04 31.93-158.15 31.93Zm-42.73-69.13v-81.76q-35 0-58.77-25.86-23.76-25.86-23.76-60.66v-43.77L151.39-558.76q-5 20-7 39.26-2 19.26-2 39.13 0 129.1 83.9 225.78 83.91 96.68 211.19 111.44Zm292.11-107.28q43.74-47.53 66-106.84 22.26-59.31 22.26-123.11 0-105.23-57.52-191.09-57.53-85.86-153.81-125.62v17.76q0 34.71-24.03 60.5-24.04 25.79-58.74 25.79h-86.27v86.45q0 17.07-13.5 27.95-13.5 10.88-30.57 10.88H311.2v87.28h256.37q16.9 0 27.92 13.04 11.03 13.03 11.03 29.9v126.11h42.52q28.76 0 50.67 17t29.88 44Z",
|
|
30768
|
+
publish: "M445.93-154.02v-359.52l-118.56 118.8-48.98-48.5L480-644.85l201.61 201.61-48.98 48.5-118.56-118.8v359.52h-68.14ZM154.02-594.85v-143q0-27.58 20.27-47.98 20.26-20.39 47.86-20.39h515.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v143h-68.37v-143h-515.7v143h-68.13Z",
|
|
30769
|
+
rssFeed: "M190.41-114.02q-31.67 0-54.03-22.59t-22.36-54.32q0-31.72 22.48-54.2 22.48-22.48 54.04-22.48 31.76 0 54.42 22.52 22.65 22.53 22.65 54.32t-22.68 54.27q-22.67 22.48-54.52 22.48Zm527.48 0q0-125.65-47.07-234.77-47.08-109.12-129.87-192.04-83.04-82.67-192.23-129.75-109.2-47.07-234.7-47.07v-95.74q145.83 0 272.39 54.53 126.55 54.53 222.24 150.21 95.68 95.69 150.21 222.24 54.53 126.56 54.53 272.39h-95.5Zm-269 0q0-70.48-26.04-132.56-26.03-62.07-71.68-109.59-45.47-47.24-106.11-73.98-60.64-26.74-131.04-26.74v-95.5q90.74 0 168.76 34.22 78.02 34.21 136.36 94.21 58.34 60.01 91.92 139.6 33.57 79.59 33.57 170.34h-95.74Z",
|
|
30770
|
+
schema: "M153.3-29v-231h100v-104.5h-100v-231h100V-700h-100v-231h269.33v231h-100v104.5h100v81.43h154.74v-81.43h269.56v231H577.37v-81.43H422.63v81.43h-100V-260h100v231H153.3Zm68.13-68.37H354.5v-94.5H221.43v94.5Zm0-335.26H354.5v-94.74H221.43v94.74Zm424.07 0h133.07v-94.74H645.5v94.74ZM221.43-768.37H354.5v-94.26H221.43v94.26Z",
|
|
30771
|
+
showChart: "M126-214.26 74.26-266 380-571.74l159.76 160.52 298-335 47.98 46.74-345.26 390.46L380-468.26l-254 254Z",
|
|
30772
|
+
sms: "M303.16-520.85q17.93 0 30.02-12.12 12.1-12.13 12.1-30.06t-12.12-30.02q-12.13-12.1-30.06-12.1t-30.02 12.12q-12.1 12.13-12.1 30.06t12.13 30.02q12.12 12.1 30.05 12.1Zm179.87 0q17.93 0 30.02-12.12 12.1-12.13 12.1-30.06t-12.12-30.02q-12.13-12.1-30.06-12.1t-30.02 12.12q-12.1 12.13-12.1 30.06t12.12 30.02q12.13 12.1 30.06 12.1Zm172.87 0q17.93 0 30.02-12.12 12.1-12.13 12.1-30.06t-12.13-30.02q-12.12-12.1-30.05-12.1t-30.02 12.12q-12.1 12.13-12.1 30.06t12.12 30.02q12.13 12.1 30.06 12.1ZM74.02-74.02v-743.83q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h675.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v515.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27H234.02l-160 160Zm134-228.13h609.83v-515.7h-675.7v587.57l65.87-71.87Zm-65.87 0v-515.7 515.7Z",
|
|
30773
|
+
source: "M74.5-111.87v-675.5l200.5-130 200.5 130v109.74h410v565.76h-811Zm65.5-65.5h105v-105H140v105Zm0-165h105v-105H140v105Zm0-165h105v-105H140v105Zm0-165h105v-105H140v105Zm165 0h105v-105H305v105Zm0 495h515v-435H305v435Zm245-270v-60h165v60H550Zm0 165v-60h165v60H550Zm-140-165v-60h60v60h-60Zm0 165v-60h60v60h-60Z",
|
|
30774
|
+
swapHoriz: "M272.76-154.02 74.02-352.76 272.76-551.5l47.74 47.74-116.7 116.93h306.68v68.37H203.8l116.7 116.7-47.74 47.74Zm414.48-254.72-47.74-47.74 116.93-116.69H449.76v-68.37h306.67L639.5-758.48l47.74-47.74 198.98 198.74-198.98 198.74Z",
|
|
30775
|
+
syncAlt: "M273.39-106.85 74.02-306.46l200.37-200.37 47.98 47.74L203.8-340.52h642.42v68.37H203.8l117.57 117.56-47.98 47.74Zm413.22-346.32-47.74-47.74 117.56-117.57H114.02v-68.37h642.41l-118.56-118.8 47.74-47.74 200.61 200.61-199.61 199.61Z",
|
|
30776
|
+
taskAlt: "M480.12-74.02q-86.32 0-160.51-31t-128.89-85.7q-54.7-54.7-85.7-128.89-31-74.19-31-160.51 0-85.31 30.94-159.4t85.7-128.9q54.76-54.8 128.95-86.3T480-886.22q75 0 140 23.65t117.48 65.4l-49.46 49.21q-42.8-33.32-95.27-51.61-52.46-18.28-112.75-18.28-144.11 0-240.98 96.74-96.87 96.74-96.87 241.07 0 144.32 96.86 241.11 96.86 96.78 240.95 96.78 144.08 0 240.99-96.76 96.9-96.75 96.9-241.09 0-28.88-4.38-56.27-4.38-27.38-12.9-53.19l52.93-53.17q16.24 37.72 24.48 78.28 8.24 40.57 8.24 84.17 0 86.38-31.5 160.57t-86.3 128.95q-54.81 54.76-128.9 85.7-74.09 30.94-159.4 30.94Zm-59.6-220.39L252.89-463.04l49.78-50.03 117.85 117.85L836.2-810.89l51.02 50.02-466.7 466.46Z",
|
|
30777
|
+
trendingUp: "m122.76-234.74-48.74-48.74 298.94-297.69 167 167 231.91-232.4H647.02v-68.36h239.2v239.19h-67.37v-121.09L538.96-316.7l-167-167-249.2 248.96Z",
|
|
30778
|
+
update: "M483.19-114.02q-76.07 0-143.3-28.98-67.24-28.98-117.46-78.82-50.21-49.83-79.31-116.91-29.1-67.07-29.1-143.27 0-76.2 29.1-142.27 29.1-66.08 79.31-115.41 50.22-49.34 117.47-77.94 67.25-28.6 143.34-28.6 80.24 0 151.98 34.76t124.69 95.29v-103.37h62.63V-607H608.76v-63.11h99.98q-43.59-48.91-101.62-78.32-58.03-29.42-123.88-29.42-124.28 0-212.57 84.86-88.28 84.86-88.28 207.95 0 126.08 87.37 214.49 87.38 88.4 213.48 88.4 123.8 0 209.18-87.37 85.37-87.36 85.67-211.48h68.13q0 152.63-105.68 259.8-105.67 107.18-257.35 107.18ZM603.8-315.57l-154-152V-683h62.63v189l136.53 133.28-45.16 45.15Z",
|
|
30779
|
+
uploadFile: "M452-203.43h60v-201.96l82.48 82.48 42-42L480-517.15 325.76-362.91l42 42L452-405.39v201.96ZM222.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-675.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h361.48l222.59 222.59v521.48q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Zm326.7-557.83v-186h-326.7v675.7h515.7v-489.7h-189Zm-326.7-186v186-186 675.7-675.7Z",
|
|
30780
|
+
// ---- Aliases (platform names that map to existing core icons) ----
|
|
30781
|
+
adminPanel: "M480-73.78q-142.59-35.67-234.27-164.87-91.69-129.2-91.69-283.27v-242.26L480-886.22l326.22 122.05V-522q0 80.87-22.94 158.57-22.93 77.69-76.93 143.69l-144.31-138.3q-18.76 10.52-39.68 17.28Q501.44-334 480-334q-62 0-105.5-43T331-482.5q0-62.5 43.5-106T480-632q62 0 105.5 43.5T629-482q0 20.76-5.7 41.52t-18.34 37.28l85.61 81.85q24-42.52 35.64-94.66 11.64-52.14 11.64-105.94v-196.86L480-812.61l-257.85 93.92v196.65q0 130.08 72.02 234.51Q366.2-183.11 480.2-143.91q27.6-7.76 67.67-31.81 40.06-24.04 62.87-46.32l48.22 48.74q-35.24 32-84.22 60.38Q525.76-84.54 480-73.78Zm.24-322.85q35.56 0 60.85-24.81 25.28-24.82 25.28-61.09t-25.52-61.56q-25.52-25.28-61.09-25.28-35.56 0-60.85 25.31-25.28 25.32-25.28 61.59t25.52 61.06q25.52 24.78 61.09 24.78Zm2.35-82.83Z",
|
|
30782
|
+
ai: "M352.39-107.15 307-253.85l-148.85-44.54 148.85-44.78L352.39-490l45.15 147.43L544.63-298.4l-147.09 44.56-45.15 146.69Zm370-290.85-28.52-92.39-94.24-28.24 94.24-28.48 28.52-92.15 28.28 92.15 94.72 28.48-94.72 28.24-28.28 92.39ZM192.15-502.52l-17.76-58.52-58.52-18.72 58.52-17.48 17.76-59.24 18.48 59.24 58.52 17.48-58.52 18.72-18.48 58.52Z",
|
|
30783
|
+
lockClosed: "M242.87-72.59q-37.54 0-64.27-26.73-26.73-26.73-26.73-64.27v-394.26q0-37.54 26.73-64.27 26.73-26.73 64.27-26.73h33.54v-73.06q0-84.92 59.46-144.61 59.46-59.7 144.13-59.7 84.67 0 144.13 59.7 59.46 59.69 59.46 144.61v73.06h33.54q37.54 0 64.27 26.73 26.73 26.73 26.73 64.27v394.26q0 37.54-26.73 64.27-26.73 26.73-64.27 26.73H242.87Zm0-91h474.26v-394.26H242.87v394.26ZM536.5-304.22q23.5-23.5 23.5-56.5t-23.5-56.5q-23.5-23.5-56.5-23.5t-56.5 23.5q-23.5 23.5-23.5 56.5t23.5 56.5q23.5 23.5 56.5 23.5t56.5-23.5ZM367.41-648.85h225.18v-73.06q0-47.21-32.73-80.26-32.73-33.05-79.86-33.05t-79.86 33.05q-32.73 33.05-32.73 80.26v73.06ZM242.87-163.59v-394.26 394.26Z",
|
|
30784
|
+
lockOpened: "M242.87-648.85h349.72v-73.06q0-47.21-32.73-80.26-32.73-33.05-79.86-33.05t-79.86 33.05q-32.73 33.05-32.73 80.26h-91q0-84.92 59.46-144.61 59.46-59.7 144.13-59.7 84.67 0 144.13 59.7 59.46 59.69 59.46 144.61v73.06h33.54q37.54 0 64.27 26.73 26.73 26.73 26.73 64.27v394.26q0 37.54-26.73 64.27-26.73 26.73-64.27 26.73H242.87q-37.54 0-64.27-26.73-26.73-26.73-26.73-64.27v-394.26q0-37.54 26.73-64.27 26.73-26.73 64.27-26.73Zm0 485.26h474.26v-394.26H242.87v394.26ZM536.5-304.22q23.5-23.5 23.5-56.5t-23.5-56.5q-23.5-23.5-56.5-23.5t-56.5 23.5q-23.5 23.5-23.5 56.5t23.5 56.5q23.5 23.5 56.5 23.5t56.5-23.5ZM242.87-163.59v-394.26 394.26Z",
|
|
30785
|
+
insights: "M285.2-277h60v-205h-60v205Zm329.84 0h60v-420h-60v420ZM450-277h60v-118h-60v118Zm0-205h60v-60h-60v60ZM182.15-114.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-595.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h595.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v595.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-595.7Zm0-68.13h595.7v-595.7h-595.7v595.7Zm0-595.7v595.7-595.7Z",
|
|
30786
|
+
file: "M222.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-675.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h357.89l226.18 226.18v517.89q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Zm0-68.13h515.7V-634H554v-183.85H222.15v675.7Zm0-675.7V-634v-183.85 675.7-675.7Z",
|
|
30787
|
+
outlinedSettings: "M370-74.02l-16-127.48q-17-6.76-34.5-16.5T287.5-237l-118 53-110-192 104-77q-1-8-1.5-20.5t-.5-20.5q0-8.76.5-21.38T163-536l-104-77 110-192 118 53q14.5-8.98 33.18-19.49T355-787.5l16-126.48h220l16 126.72q17 6.76 34.5 16.5T674-753l118-53 110 192-104 77q1 8 1.5 20.5t.5 20.5q0 8-.5 20.5T798-455l104 77-110 192-118-53q-14.5 9-32 19.5T607-202.5L591-74.02H370ZM480-330q63 0 106.5-43.5T630-480q0-63-43.5-106.5T480-630q-63 0-106.5 43.5T330-480q0 63 43.5 106.5T480-330Z",
|
|
30788
|
+
scheduled: "M573.61-114.02q-97.63 0-165.84-68.12-68.22-68.12-68.22-165.61 0-97.48 68.22-165.6 68.21-68.12 165.84-68.12 97.62 0 165.59 68.12 67.98 68.12 67.98 165.6 0 97.49-67.98 165.61-67.97 68.12-165.59 68.12ZM114.02-580.83v-68.14h233.13v68.14H114.02ZM573.8-182.15q70.2 0 119.74-49.35 49.53-49.35 49.53-119.55t-49.72-120.16q-49.72-49.96-119.92-49.96t-119.55 49.78q-49.35 49.77-49.35 120.48 0 70.48 49.53 119.62 49.54 49.14 119.74 49.14Zm48.72-72.81L573.8-304.2v-111.41h43.72V-321l37.72 37.72-32.72 28.32ZM74.02-419.63v-68.14h188.13v68.14H74.02Z",
|
|
30789
|
+
watchLater: "M573.61-114.02q-97.63 0-165.84-68.12-68.22-68.12-68.22-165.61 0-97.48 68.22-165.6 68.21-68.12 165.84-68.12 97.62 0 165.59 68.12 67.98 68.12 67.98 165.6 0 97.49-67.98 165.61-67.97 68.12-165.59 68.12ZM114.02-580.83v-68.14h233.13v68.14H114.02ZM573.8-182.15q70.2 0 119.74-49.35 49.53-49.35 49.53-119.55t-49.72-120.16q-49.72-49.96-119.92-49.96t-119.55 49.78q-49.35 49.77-49.35 120.48 0 70.48 49.53 119.62 49.54 49.14 119.74 49.14Zm48.72-72.81L573.8-304.2v-111.41h43.72V-321l37.72 37.72-32.72 28.32ZM74.02-419.63v-68.14h188.13v68.14H74.02Z"
|
|
30715
30790
|
};
|
|
30716
30791
|
VALID_NODE_ICONS = Object.keys(NODE_ICON_PATHS);
|
|
30717
30792
|
}
|
|
@@ -31502,6 +31577,10 @@ Add '@param ${fromPort}' to the workflow JSDoc and include it in the params obje
|
|
|
31502
31577
|
});
|
|
31503
31578
|
exitPortConnections.forEach((connections, portName) => {
|
|
31504
31579
|
if (connections.length > 1) {
|
|
31580
|
+
const exitPort = workflow.exitPorts[portName];
|
|
31581
|
+
if (exitPort?.isControlFlow || exitPort?.dataType === "STEP") {
|
|
31582
|
+
return;
|
|
31583
|
+
}
|
|
31505
31584
|
const sourceNodes = connections.map((c) => c.from.node);
|
|
31506
31585
|
if (this.areMutuallyExclusive(sourceNodes, workflow, instanceMap)) {
|
|
31507
31586
|
return;
|
|
@@ -32865,7 +32944,8 @@ async function compileWorkflow(filePath, options = {}) {
|
|
|
32865
32944
|
${parseResult.errors.join("\n")}`);
|
|
32866
32945
|
}
|
|
32867
32946
|
const { validateWorkflow: validateWorkflow2 } = await Promise.resolve().then(() => (init_validate(), validate_exports));
|
|
32868
|
-
const
|
|
32947
|
+
const validationMode = options.validationMode;
|
|
32948
|
+
const validationResult = validateWorkflow2(parseResult.ast, validationMode ? { mode: validationMode } : void 0);
|
|
32869
32949
|
if (validationResult.errors.length > 0) {
|
|
32870
32950
|
const errorMessages = validationResult.errors.map(
|
|
32871
32951
|
(e) => typeof e === "string" ? e : e.message
|
|
@@ -78778,7 +78858,8 @@ ${parseResult.errors.join("\n")}`
|
|
|
78778
78858
|
"Validate a workflow file and return errors/warnings.",
|
|
78779
78859
|
{
|
|
78780
78860
|
filePath: external_exports.string().describe("Path to the workflow file"),
|
|
78781
|
-
workflowName: external_exports.string().optional().describe("Specific workflow name")
|
|
78861
|
+
workflowName: external_exports.string().optional().describe("Specific workflow name"),
|
|
78862
|
+
draft: external_exports.boolean().optional().describe("Draft mode - suppresses STUB_NODE errors for unimplemented nodes (default: false)")
|
|
78782
78863
|
},
|
|
78783
78864
|
async (args) => {
|
|
78784
78865
|
try {
|
|
@@ -78812,7 +78893,7 @@ ${parseResult.errors.join("\n")}`
|
|
|
78812
78893
|
warnings: parseResult.warnings
|
|
78813
78894
|
});
|
|
78814
78895
|
}
|
|
78815
|
-
const result = validateWorkflow(parseResult.ast);
|
|
78896
|
+
const result = validateWorkflow(parseResult.ast, args.draft ? { mode: "draft" } : void 0);
|
|
78816
78897
|
const errors2 = result.errors.map((e) => ({
|
|
78817
78898
|
message: e.message,
|
|
78818
78899
|
severity: e.type,
|
|
@@ -78858,7 +78939,8 @@ ${parseResult.errors.join("\n")}`
|
|
|
78858
78939
|
framework: external_exports.enum(["next", "express", "hono", "fastify", "remix"]).optional().describe("Framework adapter for serve handler (requires serve=true)"),
|
|
78859
78940
|
typedEvents: external_exports.boolean().optional().describe("Generate Zod event schemas from workflow @param annotations"),
|
|
78860
78941
|
retries: external_exports.number().int().min(0).optional().describe("Number of retries per function. Overrides @retries annotation."),
|
|
78861
|
-
timeout: external_exports.string().optional().describe('Function timeout (e.g. "30m", "1h"). Overrides @timeout annotation.')
|
|
78942
|
+
timeout: external_exports.string().optional().describe('Function timeout (e.g. "30m", "1h"). Overrides @timeout annotation.'),
|
|
78943
|
+
draft: external_exports.boolean().optional().describe("Draft mode - suppresses STUB_NODE validation errors so partially implemented workflows can compile (default: false)")
|
|
78862
78944
|
},
|
|
78863
78945
|
async (args) => {
|
|
78864
78946
|
try {
|
|
@@ -78917,7 +78999,8 @@ ${parseResult.errors.join("\n")}`);
|
|
|
78917
78999
|
const result = await compileWorkflow(filePath, {
|
|
78918
79000
|
write: args.write ?? true,
|
|
78919
79001
|
parse: { workflowName: args.workflowName },
|
|
78920
|
-
generate: { production: args.production ?? false }
|
|
79002
|
+
generate: { production: args.production ?? false },
|
|
79003
|
+
validationMode: args.draft ? "draft" : void 0
|
|
78921
79004
|
});
|
|
78922
79005
|
return makeToolResult({
|
|
78923
79006
|
outputFile: result.metadata?.outputFile ?? filePath,
|
|
@@ -82093,7 +82176,7 @@ function registerExportTools(mcp) {
|
|
|
82093
82176
|
{
|
|
82094
82177
|
filePath: external_exports.string().describe("Path to the workflow .ts file"),
|
|
82095
82178
|
target: external_exports.string().describe("Deployment target platform. Run with --list-targets to see installed targets."),
|
|
82096
|
-
outputDir: external_exports.string().describe("Output directory for generated files"),
|
|
82179
|
+
outputDir: external_exports.string().optional().describe("Output directory for generated files (default: ./dist relative to workflow)"),
|
|
82097
82180
|
serviceName: external_exports.string().optional().describe("Service name (default: derived from filename)"),
|
|
82098
82181
|
workflows: external_exports.array(external_exports.string()).optional().describe("Specific workflow function names to include (default: all)"),
|
|
82099
82182
|
nodeTypes: external_exports.array(external_exports.string()).optional().describe("Specific node type names to include"),
|
|
@@ -82104,7 +82187,9 @@ function registerExportTools(mcp) {
|
|
|
82104
82187
|
async (args) => {
|
|
82105
82188
|
try {
|
|
82106
82189
|
const filePath = path29.resolve(args.filePath);
|
|
82107
|
-
const outputDir = path29.resolve(
|
|
82190
|
+
const outputDir = path29.resolve(
|
|
82191
|
+
args.outputDir || path29.join(path29.dirname(filePath), "dist")
|
|
82192
|
+
);
|
|
82108
82193
|
const preview = args.preview ?? false;
|
|
82109
82194
|
const includeDocs = args.includeDocs ?? true;
|
|
82110
82195
|
try {
|
|
@@ -82972,9 +83057,26 @@ function registerModelTools(mcp) {
|
|
|
82972
83057
|
lines.push(`declare function ${step.name}(${params}): ${returnType};`);
|
|
82973
83058
|
lines.push("");
|
|
82974
83059
|
}
|
|
82975
|
-
const flowSteps = args.flow.split("->").map((s) => s.trim()).filter(Boolean);
|
|
82976
83060
|
const nodeAnnotations = args.steps.map((step) => `@node ${step.name} ${step.name}`);
|
|
82977
|
-
const
|
|
83061
|
+
const pathAnnotations = args.flow.split(",").map((segment) => {
|
|
83062
|
+
const steps = segment.split("->").map((s) => s.trim()).filter(Boolean);
|
|
83063
|
+
return `@path ${steps.join(" -> ")}`;
|
|
83064
|
+
});
|
|
83065
|
+
const stepMap = new Map(args.steps.map((s) => [s.name, s]));
|
|
83066
|
+
const connectAnnotations = [];
|
|
83067
|
+
for (const segment of args.flow.split(",")) {
|
|
83068
|
+
const flowNodes = segment.split("->").map((s) => s.trim()).filter(Boolean);
|
|
83069
|
+
for (let i = 0; i < flowNodes.length - 1; i++) {
|
|
83070
|
+
const fromStep = stepMap.get(flowNodes[i]);
|
|
83071
|
+
const toStep = stepMap.get(flowNodes[i + 1]);
|
|
83072
|
+
if (!fromStep || !toStep) continue;
|
|
83073
|
+
for (const outputName of Object.keys(fromStep.outputs)) {
|
|
83074
|
+
if (outputName in toStep.inputs) {
|
|
83075
|
+
connectAnnotations.push(`@connect ${fromStep.name}.${outputName} -> ${toStep.name}.${outputName}`);
|
|
83076
|
+
}
|
|
83077
|
+
}
|
|
83078
|
+
}
|
|
83079
|
+
}
|
|
82978
83080
|
const jsdocLines = ["/**"];
|
|
82979
83081
|
if (args.description) {
|
|
82980
83082
|
jsdocLines.push(` * ${args.description}`);
|
|
@@ -82984,9 +83086,16 @@ function registerModelTools(mcp) {
|
|
|
82984
83086
|
for (const nodeAnn of nodeAnnotations) {
|
|
82985
83087
|
jsdocLines.push(` * ${nodeAnn}`);
|
|
82986
83088
|
}
|
|
82987
|
-
|
|
83089
|
+
for (const pathAnn of pathAnnotations) {
|
|
83090
|
+
jsdocLines.push(` * ${pathAnn}`);
|
|
83091
|
+
}
|
|
83092
|
+
for (const connAnn of connectAnnotations) {
|
|
83093
|
+
jsdocLines.push(` * ${connAnn}`);
|
|
83094
|
+
}
|
|
82988
83095
|
jsdocLines.push(" */");
|
|
82989
|
-
jsdocLines.push(`export
|
|
83096
|
+
jsdocLines.push(`export async function ${args.name}() {`);
|
|
83097
|
+
jsdocLines.push(` // stub - compile to generate workflow body`);
|
|
83098
|
+
jsdocLines.push(`}`);
|
|
82990
83099
|
lines.push(...jsdocLines);
|
|
82991
83100
|
lines.push("");
|
|
82992
83101
|
const content = lines.join("\n");
|
|
@@ -84185,6 +84294,49 @@ var init_tools_context = __esm({
|
|
|
84185
84294
|
}
|
|
84186
84295
|
});
|
|
84187
84296
|
|
|
84297
|
+
// src/mcp/tools-resources.ts
|
|
84298
|
+
function registerResourceTools(mcp) {
|
|
84299
|
+
mcp.tool(
|
|
84300
|
+
"fw_list_resources",
|
|
84301
|
+
"List available icons, colors, and annotation tags for use in workflow definitions.",
|
|
84302
|
+
{
|
|
84303
|
+
type: external_exports.enum(["icons", "colors", "tags", "all"]).default("all").describe("Resource type to list (default: all)")
|
|
84304
|
+
},
|
|
84305
|
+
async (args) => {
|
|
84306
|
+
const type2 = args.type ?? "all";
|
|
84307
|
+
switch (type2) {
|
|
84308
|
+
case "icons":
|
|
84309
|
+
return makeToolResult([...VALID_NODE_ICONS]);
|
|
84310
|
+
case "colors":
|
|
84311
|
+
return makeToolResult([...VALID_NODE_COLORS]);
|
|
84312
|
+
case "tags":
|
|
84313
|
+
return makeToolResult({
|
|
84314
|
+
nodeType: [...KNOWN_NODETYPE_TAGS],
|
|
84315
|
+
workflow: [...KNOWN_WORKFLOW_TAGS]
|
|
84316
|
+
});
|
|
84317
|
+
case "all":
|
|
84318
|
+
return makeToolResult({
|
|
84319
|
+
icons: [...VALID_NODE_ICONS],
|
|
84320
|
+
colors: [...VALID_NODE_COLORS],
|
|
84321
|
+
tags: {
|
|
84322
|
+
nodeType: [...KNOWN_NODETYPE_TAGS],
|
|
84323
|
+
workflow: [...KNOWN_WORKFLOW_TAGS]
|
|
84324
|
+
}
|
|
84325
|
+
});
|
|
84326
|
+
}
|
|
84327
|
+
}
|
|
84328
|
+
);
|
|
84329
|
+
}
|
|
84330
|
+
var init_tools_resources = __esm({
|
|
84331
|
+
"src/mcp/tools-resources.ts"() {
|
|
84332
|
+
"use strict";
|
|
84333
|
+
init_zod();
|
|
84334
|
+
init_theme();
|
|
84335
|
+
init_constants();
|
|
84336
|
+
init_response_utils();
|
|
84337
|
+
}
|
|
84338
|
+
});
|
|
84339
|
+
|
|
84188
84340
|
// src/mcp/prompts.ts
|
|
84189
84341
|
function registerPrompts(mcp) {
|
|
84190
84342
|
mcp.registerPrompt("flow-weaver-nocode", {
|
|
@@ -84341,6 +84493,7 @@ async function startMcpServer(options) {
|
|
|
84341
84493
|
registerModelTools(mcp);
|
|
84342
84494
|
registerDebugTools(mcp);
|
|
84343
84495
|
registerContextTools(mcp);
|
|
84496
|
+
registerResourceTools(mcp);
|
|
84344
84497
|
registerPrompts(mcp);
|
|
84345
84498
|
await registerPackMcpTools(mcp);
|
|
84346
84499
|
if (options.stdio) {
|
|
@@ -84376,6 +84529,7 @@ var init_server3 = __esm({
|
|
|
84376
84529
|
init_tools_model();
|
|
84377
84530
|
init_tools_debug();
|
|
84378
84531
|
init_tools_context();
|
|
84532
|
+
init_tools_resources();
|
|
84379
84533
|
init_prompts();
|
|
84380
84534
|
init_pack_tools();
|
|
84381
84535
|
}
|
|
@@ -88937,7 +89091,7 @@ function parseIntStrict(value) {
|
|
|
88937
89091
|
// src/cli/index.ts
|
|
88938
89092
|
init_logger();
|
|
88939
89093
|
init_error_utils();
|
|
88940
|
-
var version2 = true ? "0.
|
|
89094
|
+
var version2 = true ? "0.33.0" : "0.0.0-dev";
|
|
88941
89095
|
var program2 = new Command();
|
|
88942
89096
|
program2.name("fw").description("Flow Weaver Annotations - Compile and validate workflow files").option("-v, --version", "Output the current version").option("--no-color", "Disable colors").option("--color", "Force colors").on("option:version", () => {
|
|
88943
89097
|
logger.banner(version2);
|
package/dist/constants.js
CHANGED
|
@@ -134,6 +134,8 @@ export const VALID_NODE_COLORS = [
|
|
|
134
134
|
export const KNOWN_NODETYPE_TAGS = new Set([
|
|
135
135
|
'flowWeaver', 'name', 'label', 'description', 'color', 'icon', 'tag',
|
|
136
136
|
'executeWhen', 'scope', 'expression', 'pullExecution', 'input', 'output', 'step',
|
|
137
|
+
// Async is auto-detected from the TS signature but accepted as an explicit annotation
|
|
138
|
+
'async',
|
|
137
139
|
// Deployment annotations
|
|
138
140
|
'deploy',
|
|
139
141
|
]);
|
|
@@ -142,6 +144,8 @@ export const KNOWN_WORKFLOW_TAGS = new Set([
|
|
|
142
144
|
'node', 'position', 'connect', 'scope', 'map', 'path', 'fanOut', 'fanIn',
|
|
143
145
|
'coerce', 'trigger', 'cancelOn', 'retries', 'timeout', 'throttle', 'param',
|
|
144
146
|
'return', 'returns',
|
|
147
|
+
// Async is auto-detected from the TS signature but accepted as an explicit annotation
|
|
148
|
+
'async',
|
|
145
149
|
// Deployment annotations
|
|
146
150
|
'deploy',
|
|
147
151
|
]);
|
package/dist/diagram/theme.js
CHANGED
|
@@ -215,6 +215,57 @@ export const NODE_ICON_PATHS = {
|
|
|
215
215
|
cloudDone: 'm412.8-279.76 228.63-228.63-60.39-60.39-169 169-84.24-84.24-59.39 59.63L412.8-279.76ZM260.72-151.87q-94.35 0-161.24-65.15-66.89-65.15-66.89-159.26 0-80.39 47.36-143.67 47.35-63.27 125.03-80.75 26.43-92.95 102.63-150.19Q383.8-808.13 480-808.13q118.2 0 201.25 81.74t85.68 199.69q69.72 10.63 115.1 63.81 45.38 53.17 45.38 123.61 0 78.11-54.65 132.76-54.65 54.65-132.76 54.65H260.72Zm0-91h478.56q40.57 0 68.85-28.28 28.28-28.28 28.28-68.85 0-40.57-28.28-68.85-28.28-28.28-68.85-28.28h-62.87v-83.59q0-81.56-57.42-138.99-57.42-57.42-138.99-57.42-82.04 0-139.23 58.74-57.18 58.74-57.18 141.26h-22.87q-56.81 0-96.97 40.16-40.16 40.17-40.16 96.97t40.16 96.97q40.16 40.16 96.97 40.16ZM480-480Z',
|
|
216
216
|
lock: 'M242.87-72.59q-37.54 0-64.27-26.73-26.73-26.73-26.73-64.27v-394.26q0-37.54 26.73-64.27 26.73-26.73 64.27-26.73h33.54v-73.06q0-84.92 59.46-144.61 59.46-59.7 144.13-59.7 84.67 0 144.13 59.7 59.46 59.69 59.46 144.61v73.06h33.54q37.54 0 64.27 26.73 26.73 26.73 26.73 64.27v394.26q0 37.54-26.73 64.27-26.73 26.73-64.27 26.73H242.87Zm0-91h474.26v-394.26H242.87v394.26ZM536.5-304.22q23.5-23.5 23.5-56.5t-23.5-56.5q-23.5-23.5-56.5-23.5t-56.5 23.5q-23.5 23.5-23.5 56.5t23.5 56.5q23.5 23.5 56.5 23.5t56.5-23.5ZM367.41-648.85h225.18v-73.06q0-47.21-32.73-80.26-32.73-33.05-79.86-33.05t-79.86 33.05q-32.73 33.05-32.73 80.26v73.06ZM242.87-163.59v-394.26 394.26Z',
|
|
217
217
|
lockOpen: 'M242.87-648.85h349.72v-73.06q0-47.21-32.73-80.26-32.73-33.05-79.86-33.05t-79.86 33.05q-32.73 33.05-32.73 80.26h-91q0-84.92 59.46-144.61 59.46-59.7 144.13-59.7 84.67 0 144.13 59.7 59.46 59.69 59.46 144.61v73.06h33.54q37.54 0 64.27 26.73 26.73 26.73 26.73 64.27v394.26q0 37.54-26.73 64.27-26.73 26.73-64.27 26.73H242.87q-37.54 0-64.27-26.73-26.73-26.73-26.73-64.27v-394.26q0-37.54 26.73-64.27 26.73-26.73 64.27-26.73Zm0 485.26h474.26v-394.26H242.87v394.26ZM536.5-304.22q23.5-23.5 23.5-56.5t-23.5-56.5q-23.5-23.5-56.5-23.5t-56.5 23.5q-23.5 23.5-23.5 56.5t23.5 56.5q23.5 23.5 56.5 23.5t56.5-23.5ZM242.87-163.59v-394.26 394.26Z',
|
|
218
|
+
// ---- Platform catalog sync (icons available in the platform's node icon picker) ----
|
|
219
|
+
addAuthorization: 'M480-73.78q-140.58-32.67-233.28-158.97-92.7-126.29-92.7-289.29v-243.14L480-887.22l326.22 122.15v277.66q-16.15-8.92-34-15.4-17.85-6.47-34.37-8.67v-206.05L480-812.61l-257.85 95v195.51q0 76.58 24.62 140.22t62.5 111.42q37.88 47.79 83.16 79.07 45.29 31.28 86.61 44.56 6.24 14.87 19.92 32.15 13.67 17.27 24.78 26.22-10.44 5.72-21.87 8.58-11.44 2.86-21.87 6.1ZM692.5-80Q615-80 560-135.5T505-267q0-78.43 54.99-133.72Q614.98-456 693-456q77 0 132.5 55.28Q881-345.43 881-267q0 76-55.5 131.5T692.5-80ZM480-479.72Zm195.37 318.76h38.26v-86.41h86.41v-38.26h-86.41v-86.41h-38.26v86.41h-86.41v38.26h86.41v86.41Z',
|
|
220
|
+
alarm: 'M479-76.02q-75.2 0-141.77-28.48-66.58-28.48-116.03-77.82-49.46-49.33-78.32-115.91-28.86-66.57-28.86-142.5T142.88-583q28.86-66.35 78.32-116.18 49.45-49.84 116.03-78.44 66.57-28.6 141.77-28.6 75.2 0 141.77 28.6 66.58 28.6 116.41 78.44 49.84 49.83 78.44 116.18 28.6 66.34 28.6 142.27t-28.6 142.5q-28.6 66.58-78.44 115.97-49.84 49.4-116.41 77.82Q554.2-76.02 479-76.02ZM479-439Zm119.57 162.43 44.39-44.39-129.53-129.52V-640h-62.86v215.43l148 148Zm-387.2-598.08 44.15 44.15L86.5-667.48l-43.91-44.15 168.78-163.02Zm535.26 0 169.02 163.02-44.15 44.15L702.48-830.5l44.15-44.15ZM479-144.15q124.04 0 210.45-86.4 86.4-86.41 86.4-210.45 0-124.04-86.4-210.45-86.41-86.4-210.45-86.4-124.04 0-210.45 86.4-86.4 86.41-86.4 210.45 0 124.04 86.4 210.45 86.41 86.4 210.45 86.4Z',
|
|
221
|
+
allInclusive: 'M211.89-255.93q-91.56 0-153.76-66.7-62.2-66.7-62.2-159.37 0-91.67 62.7-156.87t153.26-65.2q36.72 0 70.96 12.24 34.24 12.23 60.78 37.72l90.85 87.61-48.22 47.5-85.81-83.87q-17.51-17.52-40.46-25.29t-47.98-7.77q-62.45 0-105.19 45.27-42.75 45.27-42.75 108.75 0 64.48 42.24 111.16 42.25 46.68 105.69 46.68 24.28 0 47.12-7.76 22.83-7.77 41.25-24.28l316-298q26.54-25.49 60.78-37.72 34.24-12.24 69.96-12.24 91.56 0 154.26 65.2 62.7 65.2 62.7 156.87 0 92.67-62.7 159.37t-154.26 66.7q-35.72 0-70.46-11.74-34.74-11.73-60.28-37.22l-88.61-87.61 47.98-47.5 83.88 83.89q16.53 16.52 39.81 24.28 23.29 7.76 47.57 7.76 63.44 0 106.19-46.72 42.74-46.72 42.74-111.13 0-63.41-43.24-108.71-43.25-45.3-105.69-45.3-24.28 0-47.12 8.76-22.83 8.77-40.25 25.28l-316 298q-26.54 24.49-61.28 36.22-34.74 11.74-70.46 11.74Z',
|
|
222
|
+
analytics: 'M285.2-277h60v-205h-60v205Zm329.84 0h60v-420h-60v420ZM450-277h60v-118h-60v118Zm0-205h60v-60h-60v60ZM182.15-114.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-595.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h595.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v595.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-595.7Zm0-68.13h595.7v-595.7h-595.7v595.7Zm0-595.7v595.7-595.7Z',
|
|
223
|
+
assignment: 'M182.15-114.02q-28.1 0-48.12-20.01-20.01-20.02-20.01-48.12v-595.7q0-28.2 20.01-48.28 20.02-20.09 48.12-20.09h199.02q6.44-35 34.16-57.5 27.71-22.5 64.67-22.5t64.67 22.5q27.72 22.5 34.16 57.5h199.02q28.2 0 48.28 20.09 20.09 20.08 20.09 48.28v595.7q0 28.1-20.09 48.12-20.08 20.01-48.28 20.01h-595.7Zm0-68.13h595.7v-595.7h-595.7v595.7Zm100-100h270.37v-60H282.15v60Zm0-167.85h395.7v-60h-395.7v60Zm0-167.85h395.7v-60h-395.7v60ZM480-795.57q14.83 0 25.63-10.8 10.8-10.8 10.8-25.63 0-14.83-10.8-25.63-10.8-10.8-25.63-10.8-14.83 0-25.63 10.8-10.8 10.8-10.8 25.63 0 14.83 10.8 25.63 10.8 10.8 25.63 10.8ZM182.15-182.15v-595.7 595.7Z',
|
|
224
|
+
barChart: 'M660.48-154.02v-288.61h145.74v288.61H660.48Zm-253.11 0v-652.2h145.26v652.2H407.37Zm-253.35 0v-452.2h145.5v452.2h-145.5Z',
|
|
225
|
+
calendar: 'M182.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-615.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34H245v-60h69.07v60h331.86v-60H715v60h62.85q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v256.65h-68.37V-570h-595.7v427.85h316.89v68.13H182.15Zm0-555.98h595.7v-127.85h-595.7V-630Zm0 0v-127.85V-630ZM559.04-74.02v-128.02L781-423q9.51-9.63 21.13-13.91 11.62-4.29 23.5-4.29 12.48 0 24.21 4.86T871.02-422l37 37q9.44 9.48 13.82 21.12 4.38 11.63 4.38 23.27 0 11.96-4.86 24.06-4.86 12.09-14.25 21.57L687.07-74.02H559.04Zm303.59-266.59-37-37 37 37Zm-240 203h38l120.28-121.23-18-19.02-19-18.03-121.28 120.22v38.06Zm140.28-140.28-19-18 37 37-18-19Z',
|
|
226
|
+
changeCircle: 'M482-198.09 597.91-313 482.24-427.91 438.09-384l41.32 41.33q-26.8.28-52.11-9.48-25.3-9.76-45.34-29.81-19.76-19.76-30.14-45.52-10.39-25.76-10.39-51.52 0-16.76 4.5-34t12.74-33.48l-45.91-45.67q-17.48 25.95-25.84 54.43-8.35 28.48-8.35 57.72 0 38.48 15 75.6t44.47 66.36q28.53 28.76 63.93 43.26 35.4 14.5 72.92 15.74L438.09-242 482-198.09Zm165.48-169.76q17.24-25.95 25.6-54.43 8.35-28.48 8.35-57.72 0-38.48-14.61-75.98-14.62-37.5-43.86-66.98-28.76-28.52-64.55-42.64-35.78-14.12-73.06-14.6l36.56-37.8L478-761.91 362.09-647l115.67 114.91L521.91-576l-42.08-42.33q25.8.72 52.37 10.86 26.56 10.14 45.84 29.43 19.76 19.76 30.14 45.52 10.39 25.76 10.39 51.52 0 16.76-4.5 34t-12.74 33.24l46.15 45.91ZM480-74.02q-83.43 0-157.51-31.86-74.08-31.86-129.41-87.2-55.34-55.33-87.2-129.41T74.02-480q0-84.43 31.86-158.51 31.86-74.08 87.2-128.91 55.33-54.84 129.41-86.82 74.08-31.98 157.51-31.98 84.43 0 158.51 31.98 74.08 31.98 128.91 86.82 54.84 54.83 86.82 128.91 31.98 74.08 31.98 158.51 0 83.43-31.98 157.51-31.98 74.08-86.82 129.41-54.83 55.34-128.91 87.2T480-74.02Zm0-68.13q141.04 0 239.45-98.78 98.4-98.79 98.4-239.07 0-141.04-98.4-239.45-98.41-98.4-239.45-98.4-140.28 0-239.07 98.4-98.78 98.41-98.78 239.45 0 140.28 98.78 239.07 98.79 98.78 239.07 98.78ZM480-480Z',
|
|
227
|
+
chat: 'M240-399h313v-60H240v60Zm0-130h480v-60H240v60Zm0-130h480v-60H240v60ZM74.02-74.02v-743.83q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h675.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v515.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27H234.02l-160 160Zm134-228.13h609.83v-515.7h-675.7v587.57l65.87-71.87Zm-65.87 0v-515.7 515.7Z',
|
|
228
|
+
checklist: 'M222.96-208.26 74.98-356l47.98-47.74 100 99 179-179.24L449.7-435 222.96-208.26Zm0-320L74.98-676l47.98-47.74 100 99 179-179.24L449.7-755 222.96-528.26Zm298 242.33v-68.14h364.06v68.14H520.96Zm0-320v-68.14h364.06v68.14H520.96Z',
|
|
229
|
+
cloudStorage: 'M251.48-154.02q-90.17 0-153.57-63.1-63.41-63.1-63.41-153.4 0-79.44 50.24-140.23 50.24-60.79 128.43-73.27 20.96-97.72 95.96-159.46 75-61.74 172.94-61.74 112.89 0 191.08 81.74 78.2 81.74 80.11 196.46v24q72.72.15 122.48 49.89 49.76 49.75 49.76 124.61 0 71.61-51.44 123.05-51.45 51.45-123.06 51.45H251.48Zm0-68.13h499.04q43.87 0 75.36-31.4 31.49-31.41 31.49-75.45 0-44.04-31.49-75.45-31.49-31.4-75.36-31.4h-65.15v-86.63q0-89.91-60.2-152.14-60.2-62.23-147.06-62.23-87.39 0-147.94 63.12-60.54 63.12-60.54 153.88h-21.15q-61.11 0-103.48 42.86-42.37 42.85-42.37 105.94 0 62.09 43.37 105.5 43.37 43.4 105.48 43.4ZM480-480Z',
|
|
230
|
+
compareArrows: 'm311.5-154.02-47.74-47.74 116.94-116.7H74.02v-68.37H380.7L263.76-503.76l47.74-47.74 198.98 198.74L311.5-154.02Zm337-254.72L449.76-607.48 648.5-806.22l47.74 47.74-116.7 116.94h306.68v68.37H579.54l116.7 116.69-47.74 47.74Z',
|
|
231
|
+
construction: 'M770.39-114.02 517-367.17l60.83-61.07 253.39 253.39-60.83 60.83Zm-585.78 0-60.83-60.83 292.39-292.39-107.71-107.48-23 23-41.37-41.37v82.61l-25.2 25.2L91.63-612.54l25.2-25.2h83.6l-45.6-45.61 132.91-132.91q17.48-17.48 38.31-23.72 20.84-6.24 45.56-6.24 24.48 0 45.31 8.86 20.84 8.86 38.56 26.1L347.28-703.3l47.76 47.76-24 24 104.72 104.71 122-121.76q-7.76-12.76-12.26-29.76t-4.5-35.76q0-53.96 39.34-93.41 39.33-39.46 93.29-39.46 15.96 0 27.29 3.36 11.34 3.36 19.06 9.08l-85 85.24 73.09 73.08 85-85.24q5.95 8.48 9.93 21.06 3.98 12.57 3.98 28.29 0 54.2-39.58 93.41-39.57 39.22-93.77 39.22-17.76 0-30.52-2.38-12.76-2.38-23.52-7.14L184.61-114.02Z',
|
|
232
|
+
dataArray: 'M596.41-154.02v-67.89h141.68v-516.18H596.41v-68.13h209.81v652.2H596.41Zm-442.39 0v-652.2h209.57v68.13H221.91v516.18h141.68v67.89H154.02Z',
|
|
233
|
+
deviceHub: 'M115.93-115.93v-188.14h157.83l173.61-173.6v-143.74q-35.74-12.79-58.59-42.23-22.85-29.43-22.85-66.36 0-47.53 33.31-80.8 33.3-33.27 80.88-33.27 47.57 0 80.76 33.27 33.19 33.27 33.19 80.8 0 36.93-22.85 66.36-22.85 29.44-58.59 42.23v143.74l173.85 173.6h157.59v188.14H655.93v-121.5L480-413.37 304.07-237.43v121.5H115.93Z',
|
|
234
|
+
engineering: 'M36.26-114.26v-98.15q0-36.94 17.56-60.63 17.55-23.7 46.79-37.7 54-26 116.81-43.24 62.82-17.24 140.94-17.24t140.81 17q62.7 17 116.94 43 29 14.24 46.55 38.07 17.56 23.84 17.56 60.76v98.13H36.26Zm68.37-68.37h507.46v-29.13q0-15-8.5-24.14t-20.5-14.14q-43-19-95.52-36.03-52.53-17.02-129.21-17.02-76.69 0-129.21 17.14-52.52 17.15-95.52 35.96-12.24 4.95-20.62 14.09t-8.38 24.14v29.13Zm253.73-248.59q-68.51 0-112.31-44.61-43.79-44.61-43.79-110.17h-10q-8.75 0-15.21-6.48-6.46-6.47-6.46-15.25 0-8.67 6.46-15.15 6.46-6.47 15.21-6.47h10q0-41.19 21.32-74.51 21.31-33.31 55.94-53.08v39.15q0 6.33 4.45 10.71 4.44 4.38 10.79 4.38 6.76 0 11-4.36t4.24-10.57v-51.83q8.08-1.76 22.18-3.38 14.09-1.62 27.2-1.62 12.86 0 26.86 1.62t22.19 3.37v51.84q0 6.21 4.26 10.57 4.27 4.36 11.27 4.36 6.24 0 10.74-4.38t4.5-10.62v-39.24q34.39 19.77 54.7 53.07 20.32 33.31 20.32 74.52h10q8.75 0 15.21 6.46 6.46 6.45 6.46 15.19 0 8.74-6.46 15.22T524.22-586h-10q0 65.67-43.68 110.23-43.67 44.55-112.18 44.55Zm.11-68.37q40.81 0 64.21-24.37 23.41-24.36 23.41-63.48H270.63q0 39.05 23.37 63.45 23.36 24.4 64.47 24.4ZM358.48-182.63Z',
|
|
235
|
+
fileCopy: 'M782.63-162.63H269.8q-27.69 0-48.03-20.34-20.34-20.33-20.34-48.03v-626.37q0-27.6 20.34-47.86 20.34-20.27 48.03-20.27h345.37l235.59 235.59V-231q0 27.7-20.39 48.03-20.39 20.34-47.74 20.34Zm-202-496.74v-198H269.8V-231h512.83v-428.37h-202ZM141.43-34.5q-27.59 0-47.86-20.27Q73.3-75.03 73.3-102.63v-616.85h68.13v616.85h499.68v68.13H141.43ZM269.8-857.37v198-198V-231v-626.37Z',
|
|
236
|
+
filePresent: 'M222.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-675.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h357.89l226.18 226.18v517.89q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Zm0-68.13h515.7V-634H554v-183.85H222.15v675.7Zm258.11-80q58.5 0 99.12-41.13Q620-304.4 620-362.22v-139.21h-40v139.2q0 42.03-28.75 71.05-28.75 29.03-71.25 29.03-42 0-71-29.02t-29-71.04v-219.3q0-17.97 11.5-28.95 11.5-10.97 28.5-10.97 18 0 29 10.98t11 28.96v199.34h40v-199.21q0-33.63-23.08-56.85-23.07-23.22-56.57-23.22-33.59 0-56.97 23.21Q340-615 340-581.37v219.18q0 57.79 41.2 98.91 41.21 41.13 99.06 41.13Zm-258.11-595.7V-634v-183.85 675.7-675.7Z',
|
|
237
|
+
forum: 'M890.28-70 729.61-230.67H305.02q-28.35 0-48.24-19.96-19.89-19.97-19.89-48.41v-80h436.89q28.1 0 48.12-19.89 20.01-19.9 20.01-48.24v-276.66h80q28.45 0 48.41 19.96 19.96 19.97 19.96 48.41V-70ZM138.09-440.54l66.63-66.63h409.06v-315.46H138.09v382.09ZM69.72-276.17v-546.46q0-28.45 19.96-48.41Q109.64-891 138.09-891h475.69q28.1 0 48.12 19.96 20.01 19.96 20.01 48.41v315.46q0 28.34-20.01 48.24-20.02 19.89-48.12 19.89H232.59L69.72-276.17Zm68.37-231v-315.46 315.46Z',
|
|
238
|
+
history: 'M476.77-114.02q-151.88 0-257.6-107.16Q113.45-328.33 113.78-481h68.13q.28 124.12 85.53 211.48 85.24 87.37 209.32 87.37 125.81 0 213.33-88.36 87.52-88.36 87.52-214.45 0-123.08-88.37-207.99-88.38-84.9-212.48-84.9-66.09 0-124.15 29.45-58.07 29.44-101.35 78.29h99.98V-607H137.46v-212.54h62.63v103.37q52.71-60.53 124.45-95.29 71.74-34.76 152.22-34.76 76.2 0 143.27 28.6 67.08 28.6 117.47 77.94 50.4 49.34 79.32 115.41Q845.74-558.2 845.74-482q0 76.2-28.92 143.27-28.92 67.07-79.32 116.91-50.39 49.84-117.47 78.82-67.07 28.98-143.26 28.98ZM603.8-315.57l-154-152V-683h62.63v189l136.53 133.28-45.16 45.15Z',
|
|
239
|
+
hourglassEmpty: 'M310.15-142.15h339.7V-267q0-71.04-49.4-119.95-49.41-48.9-120.45-48.9t-120.45 48.9q-49.4 48.91-49.4 119.95v124.85Zm169.85-382q71.04 0 120.45-49.4 49.4-49.41 49.4-120.45v-123.85h-339.7V-694q0 71.04 49.4 120.45 49.41 49.4 120.45 49.4ZM154.02-74.02v-68.13h88V-267q0-70.28 38.93-128.04Q319.87-452.8 384.43-480q-64.56-28.2-103.48-85.96-38.93-57.76-38.93-128.04v-123.85h-88v-68.37h652.2v68.37h-88V-694q0 70.28-38.93 128.04Q640.37-508.2 575.8-480q64.57 27.2 103.49 84.96 38.93 57.76 38.93 128.04v124.85h88v68.13h-652.2Z',
|
|
240
|
+
hub: 'M232.55-31.87q-49.64 0-84.44-34.94-34.81-34.94-34.81-84.57 0-49.64 34.87-84.45 34.86-34.8 84.4-34.8 13.93 0 25.09 2.38 11.15 2.38 21.86 7.14l81.65-102.65q-18.28-22.76-28.28-52.02t-5.24-60.45l-116.93-40.86q-15.48 25.24-40.87 39.48-25.39 14.24-58.48 14.24-49.63 0-84.57-34.86-34.93-34.87-34.93-84.4 0-49.63 34.94-84.69 34.94-35.05 84.57-35.05q49.64 0 84.45 35.05 34.8 35.06 34.8 84.73v3.24l117.7 42q18-31.52 43.38-48.4 25.38-16.88 55.66-24.21v-125.08q-39-11.24-62.94-44.44-23.93-33.19-23.93-70.67 0-49.55 34.94-84.6t84.57-35.05q49.64 0 84.57 35.05 34.92 35.05 34.92 84.6 0 37.48-24.32 70.67-24.31 33.2-62.55 44.44v125.17q30.28 7.24 56.16 24.24 25.88 17 44.22 48.28l116.36-42v-3.28q0-49.63 34.86-84.69 34.87-35.05 84.4-35.05 49.63 0 84.69 35.06 35.05 35.06 35.05 84.69 0 49.64-35.05 84.45-35.06 34.8-84.77 34.8-32.97 0-58.88-14.24-25.91-14.24-40.63-39.72l-116.69 41q4.28 31.53-4.98 60.67-9.26 29.14-28.54 51.9l81.89 103.13q10.7-5 21.74-7.5t24.54-2.5q50.47 0 85.2 34.86 34.73 34.87 34.73 84.4 0 49.63-34.98 84.57-34.98 34.93-84.52 34.93-49.63 0-84.56-34.87-34.94-34.88-34.94-84.7 0-20.7 5.62-37.39t15.62-31.93l-81.41-102.41q-32.13 16.28-68.32 16.28-36.2 0-67.96-16.28l-80.65 103.41q10 15.24 15.62 31.43 5.62 16.19 5.62 36.89 0 49.82-34.94 84.7-34.94 34.87-84.58 34.87ZM480-460Z',
|
|
241
|
+
integration: 'M359.35-114.02H180q-26.47 0-46.22-19.76-19.76-19.75-19.76-46.22v-179.35q41.85-4.76 71.68-33.51 29.82-28.76 29.82-70.11 0-41.36-29.82-70.14-29.83-28.78-71.68-33.78V-746q0-26.4 19.76-46.31 19.75-19.91 46.22-19.91h171.74q12.91-40.95 42.73-68.07 29.81-27.12 70.53-27.12t70.53 27.12q29.82 27.12 42.73 68.07H746q26.4 0 46.31 19.91 19.91 19.91 19.91 46.31v167.74q40.95 12.91 66.57 44.73 25.62 31.81 25.62 72.53t-25.62 69.03q-25.62 28.32-66.57 41.23V-180q0 26.47-19.91 46.22-19.91 19.76-46.31 19.76H566.89q-5.24-46.81-34.78-75.47-29.54-28.66-69.17-28.66-39.62 0-69.11 28.66-29.48 28.66-34.48 75.47ZM465-461Z',
|
|
242
|
+
leaderboard: 'M142.15-182.15h180.07v-355.7H142.15v355.7Zm248.2 0h179.3v-595.7h-179.3v595.7Zm247.43 0h180.07v-275.7H637.78v275.7ZM74.02-114.02v-492.2h248.2v-240h315.56v320h248.44v412.2H74.02Z',
|
|
243
|
+
loop: 'M360-118.26 311.26-166l70.17-70.17h-31.8q-115.28-1.92-194.49-84.99Q75.93-404.24 75.93-520q0-117.67 81.7-200.87T357-804.07h246q117.67 0 199.37 83.2T884.07-520q0 118.43-81.98 201.25t-199.94 82.82v-68.14q89.61 0 151.7-62.92 62.08-62.92 62.08-153.01 0-89.57-61.3-152.75-61.3-63.18-150.63-63.18H356q-89.33 0-150.63 63.18T144.07-520q0 86.93 58.95 149.4 58.96 62.47 145.41 64.14h31.13L312.02-374 360-421.98l151.98 151.74L360-118.26Z',
|
|
244
|
+
newFile: 'M450-232.09h60v-129h130v-60H510v-130h-60v130H320v60h130v129ZM222.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-675.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h361.48l222.59 222.59v521.48q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Zm326.7-557.83v-186h-326.7v675.7h515.7v-489.7h-189Zm-326.7-186v186-186 675.7-675.7Z',
|
|
245
|
+
pieChart: 'M514.07-514.07h301.82q-11.24-118.65-96.71-206.11-85.46-87.47-205.11-95.71v301.82Zm-68.14 369.96v-671.78q-128.6 12.19-216.19 109-87.59 96.8-87.59 226.89 0 130.09 87.59 226.89 87.59 96.81 216.19 109Zm68.14 0q119.65-8.48 205-95.82 85.34-87.35 96.82-206H514.07v301.82ZM480-480Zm.03 405.98q-84.2 0-158.29-31.86-74.09-31.86-129.04-86.82-54.96-54.95-86.82-129.02-31.86-74.06-31.86-158.27 0-84.21 31.86-158.28 31.86-74.08 86.79-129.05 54.92-54.97 129.02-86.93 74.09-31.97 158.33-31.97 84.41 0 158.44 32 74.02 31.99 128.91 86.81 54.89 54.82 86.87 128.87Q886.22-564.5 886.22-480q0 84.51-32.01 158.57-32.01 74.07-86.88 128.86-54.87 54.79-128.96 86.67-74.1 31.88-158.34 31.88Z',
|
|
246
|
+
public: 'M480.21-74.02Q396-74.02 321.95-106q-74.06-31.98-129.03-86.87-54.97-54.88-86.93-128.92-31.97-74.04-31.97-158.22 0-84.19 31.97-158.21 31.96-74.02 86.93-128.91 54.97-54.89 129.06-86.99 74.08-32.1 158.31-32.1 84.24 0 158.18 32.1 73.95 32.1 128.87 86.94 54.92 54.83 86.9 128.9 31.98 74.06 31.98 158.27 0 84.21-31.96 158.25-31.95 74.05-86.9 128.96-54.96 54.92-129 86.85-74.04 31.93-158.15 31.93Zm-42.73-69.13v-81.76q-35 0-58.77-25.86-23.76-25.86-23.76-60.66v-43.77L151.39-558.76q-5 20-7 39.26-2 19.26-2 39.13 0 129.1 83.9 225.78 83.91 96.68 211.19 111.44Zm292.11-107.28q43.74-47.53 66-106.84 22.26-59.31 22.26-123.11 0-105.23-57.52-191.09-57.53-85.86-153.81-125.62v17.76q0 34.71-24.03 60.5-24.04 25.79-58.74 25.79h-86.27v86.45q0 17.07-13.5 27.95-13.5 10.88-30.57 10.88H311.2v87.28h256.37q16.9 0 27.92 13.04 11.03 13.03 11.03 29.9v126.11h42.52q28.76 0 50.67 17t29.88 44Z',
|
|
247
|
+
publish: 'M445.93-154.02v-359.52l-118.56 118.8-48.98-48.5L480-644.85l201.61 201.61-48.98 48.5-118.56-118.8v359.52h-68.14ZM154.02-594.85v-143q0-27.58 20.27-47.98 20.26-20.39 47.86-20.39h515.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v143h-68.37v-143h-515.7v143h-68.13Z',
|
|
248
|
+
rssFeed: 'M190.41-114.02q-31.67 0-54.03-22.59t-22.36-54.32q0-31.72 22.48-54.2 22.48-22.48 54.04-22.48 31.76 0 54.42 22.52 22.65 22.53 22.65 54.32t-22.68 54.27q-22.67 22.48-54.52 22.48Zm527.48 0q0-125.65-47.07-234.77-47.08-109.12-129.87-192.04-83.04-82.67-192.23-129.75-109.2-47.07-234.7-47.07v-95.74q145.83 0 272.39 54.53 126.55 54.53 222.24 150.21 95.68 95.69 150.21 222.24 54.53 126.56 54.53 272.39h-95.5Zm-269 0q0-70.48-26.04-132.56-26.03-62.07-71.68-109.59-45.47-47.24-106.11-73.98-60.64-26.74-131.04-26.74v-95.5q90.74 0 168.76 34.22 78.02 34.21 136.36 94.21 58.34 60.01 91.92 139.6 33.57 79.59 33.57 170.34h-95.74Z',
|
|
249
|
+
schema: 'M153.3-29v-231h100v-104.5h-100v-231h100V-700h-100v-231h269.33v231h-100v104.5h100v81.43h154.74v-81.43h269.56v231H577.37v-81.43H422.63v81.43h-100V-260h100v231H153.3Zm68.13-68.37H354.5v-94.5H221.43v94.5Zm0-335.26H354.5v-94.74H221.43v94.74Zm424.07 0h133.07v-94.74H645.5v94.74ZM221.43-768.37H354.5v-94.26H221.43v94.26Z',
|
|
250
|
+
showChart: 'M126-214.26 74.26-266 380-571.74l159.76 160.52 298-335 47.98 46.74-345.26 390.46L380-468.26l-254 254Z',
|
|
251
|
+
sms: 'M303.16-520.85q17.93 0 30.02-12.12 12.1-12.13 12.1-30.06t-12.12-30.02q-12.13-12.1-30.06-12.1t-30.02 12.12q-12.1 12.13-12.1 30.06t12.13 30.02q12.12 12.1 30.05 12.1Zm179.87 0q17.93 0 30.02-12.12 12.1-12.13 12.1-30.06t-12.12-30.02q-12.13-12.1-30.06-12.1t-30.02 12.12q-12.1 12.13-12.1 30.06t12.12 30.02q12.13 12.1 30.06 12.1Zm172.87 0q17.93 0 30.02-12.12 12.1-12.13 12.1-30.06t-12.13-30.02q-12.12-12.1-30.05-12.1t-30.02 12.12q-12.1 12.13-12.1 30.06t12.12 30.02q12.13 12.1 30.06 12.1ZM74.02-74.02v-743.83q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h675.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v515.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27H234.02l-160 160Zm134-228.13h609.83v-515.7h-675.7v587.57l65.87-71.87Zm-65.87 0v-515.7 515.7Z',
|
|
252
|
+
source: 'M74.5-111.87v-675.5l200.5-130 200.5 130v109.74h410v565.76h-811Zm65.5-65.5h105v-105H140v105Zm0-165h105v-105H140v105Zm0-165h105v-105H140v105Zm0-165h105v-105H140v105Zm165 0h105v-105H305v105Zm0 495h515v-435H305v435Zm245-270v-60h165v60H550Zm0 165v-60h165v60H550Zm-140-165v-60h60v60h-60Zm0 165v-60h60v60h-60Z',
|
|
253
|
+
swapHoriz: 'M272.76-154.02 74.02-352.76 272.76-551.5l47.74 47.74-116.7 116.93h306.68v68.37H203.8l116.7 116.7-47.74 47.74Zm414.48-254.72-47.74-47.74 116.93-116.69H449.76v-68.37h306.67L639.5-758.48l47.74-47.74 198.98 198.74-198.98 198.74Z',
|
|
254
|
+
syncAlt: 'M273.39-106.85 74.02-306.46l200.37-200.37 47.98 47.74L203.8-340.52h642.42v68.37H203.8l117.57 117.56-47.98 47.74Zm413.22-346.32-47.74-47.74 117.56-117.57H114.02v-68.37h642.41l-118.56-118.8 47.74-47.74 200.61 200.61-199.61 199.61Z',
|
|
255
|
+
taskAlt: 'M480.12-74.02q-86.32 0-160.51-31t-128.89-85.7q-54.7-54.7-85.7-128.89-31-74.19-31-160.51 0-85.31 30.94-159.4t85.7-128.9q54.76-54.8 128.95-86.3T480-886.22q75 0 140 23.65t117.48 65.4l-49.46 49.21q-42.8-33.32-95.27-51.61-52.46-18.28-112.75-18.28-144.11 0-240.98 96.74-96.87 96.74-96.87 241.07 0 144.32 96.86 241.11 96.86 96.78 240.95 96.78 144.08 0 240.99-96.76 96.9-96.75 96.9-241.09 0-28.88-4.38-56.27-4.38-27.38-12.9-53.19l52.93-53.17q16.24 37.72 24.48 78.28 8.24 40.57 8.24 84.17 0 86.38-31.5 160.57t-86.3 128.95q-54.81 54.76-128.9 85.7-74.09 30.94-159.4 30.94Zm-59.6-220.39L252.89-463.04l49.78-50.03 117.85 117.85L836.2-810.89l51.02 50.02-466.7 466.46Z',
|
|
256
|
+
trendingUp: 'm122.76-234.74-48.74-48.74 298.94-297.69 167 167 231.91-232.4H647.02v-68.36h239.2v239.19h-67.37v-121.09L538.96-316.7l-167-167-249.2 248.96Z',
|
|
257
|
+
update: 'M483.19-114.02q-76.07 0-143.3-28.98-67.24-28.98-117.46-78.82-50.21-49.83-79.31-116.91-29.1-67.07-29.1-143.27 0-76.2 29.1-142.27 29.1-66.08 79.31-115.41 50.22-49.34 117.47-77.94 67.25-28.6 143.34-28.6 80.24 0 151.98 34.76t124.69 95.29v-103.37h62.63V-607H608.76v-63.11h99.98q-43.59-48.91-101.62-78.32-58.03-29.42-123.88-29.42-124.28 0-212.57 84.86-88.28 84.86-88.28 207.95 0 126.08 87.37 214.49 87.38 88.4 213.48 88.4 123.8 0 209.18-87.37 85.37-87.36 85.67-211.48h68.13q0 152.63-105.68 259.8-105.67 107.18-257.35 107.18ZM603.8-315.57l-154-152V-683h62.63v189l136.53 133.28-45.16 45.15Z',
|
|
258
|
+
uploadFile: 'M452-203.43h60v-201.96l82.48 82.48 42-42L480-517.15 325.76-362.91l42 42L452-405.39v201.96ZM222.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-675.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h361.48l222.59 222.59v521.48q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Zm326.7-557.83v-186h-326.7v675.7h515.7v-489.7h-189Zm-326.7-186v186-186 675.7-675.7Z',
|
|
259
|
+
// ---- Aliases (platform names that map to existing core icons) ----
|
|
260
|
+
adminPanel: 'M480-73.78q-142.59-35.67-234.27-164.87-91.69-129.2-91.69-283.27v-242.26L480-886.22l326.22 122.05V-522q0 80.87-22.94 158.57-22.93 77.69-76.93 143.69l-144.31-138.3q-18.76 10.52-39.68 17.28Q501.44-334 480-334q-62 0-105.5-43T331-482.5q0-62.5 43.5-106T480-632q62 0 105.5 43.5T629-482q0 20.76-5.7 41.52t-18.34 37.28l85.61 81.85q24-42.52 35.64-94.66 11.64-52.14 11.64-105.94v-196.86L480-812.61l-257.85 93.92v196.65q0 130.08 72.02 234.51Q366.2-183.11 480.2-143.91q27.6-7.76 67.67-31.81 40.06-24.04 62.87-46.32l48.22 48.74q-35.24 32-84.22 60.38Q525.76-84.54 480-73.78Zm.24-322.85q35.56 0 60.85-24.81 25.28-24.82 25.28-61.09t-25.52-61.56q-25.52-25.28-61.09-25.28-35.56 0-60.85 25.31-25.28 25.32-25.28 61.59t25.52 61.06q25.52 24.78 61.09 24.78Zm2.35-82.83Z',
|
|
261
|
+
ai: 'M352.39-107.15 307-253.85l-148.85-44.54 148.85-44.78L352.39-490l45.15 147.43L544.63-298.4l-147.09 44.56-45.15 146.69Zm370-290.85-28.52-92.39-94.24-28.24 94.24-28.48 28.52-92.15 28.28 92.15 94.72 28.48-94.72 28.24-28.28 92.39ZM192.15-502.52l-17.76-58.52-58.52-18.72 58.52-17.48 17.76-59.24 18.48 59.24 58.52 17.48-58.52 18.72-18.48 58.52Z',
|
|
262
|
+
lockClosed: 'M242.87-72.59q-37.54 0-64.27-26.73-26.73-26.73-26.73-64.27v-394.26q0-37.54 26.73-64.27 26.73-26.73 64.27-26.73h33.54v-73.06q0-84.92 59.46-144.61 59.46-59.7 144.13-59.7 84.67 0 144.13 59.7 59.46 59.69 59.46 144.61v73.06h33.54q37.54 0 64.27 26.73 26.73 26.73 26.73 64.27v394.26q0 37.54-26.73 64.27-26.73 26.73-64.27 26.73H242.87Zm0-91h474.26v-394.26H242.87v394.26ZM536.5-304.22q23.5-23.5 23.5-56.5t-23.5-56.5q-23.5-23.5-56.5-23.5t-56.5 23.5q-23.5 23.5-23.5 56.5t23.5 56.5q23.5 23.5 56.5 23.5t56.5-23.5ZM367.41-648.85h225.18v-73.06q0-47.21-32.73-80.26-32.73-33.05-79.86-33.05t-79.86 33.05q-32.73 33.05-32.73 80.26v73.06ZM242.87-163.59v-394.26 394.26Z',
|
|
263
|
+
lockOpened: 'M242.87-648.85h349.72v-73.06q0-47.21-32.73-80.26-32.73-33.05-79.86-33.05t-79.86 33.05q-32.73 33.05-32.73 80.26h-91q0-84.92 59.46-144.61 59.46-59.7 144.13-59.7 84.67 0 144.13 59.7 59.46 59.69 59.46 144.61v73.06h33.54q37.54 0 64.27 26.73 26.73 26.73 26.73 64.27v394.26q0 37.54-26.73 64.27-26.73 26.73-64.27 26.73H242.87q-37.54 0-64.27-26.73-26.73-26.73-26.73-64.27v-394.26q0-37.54 26.73-64.27 26.73-26.73 64.27-26.73Zm0 485.26h474.26v-394.26H242.87v394.26ZM536.5-304.22q23.5-23.5 23.5-56.5t-23.5-56.5q-23.5-23.5-56.5-23.5t-56.5 23.5q-23.5 23.5-23.5 56.5t23.5 56.5q23.5 23.5 56.5 23.5t56.5-23.5ZM242.87-163.59v-394.26 394.26Z',
|
|
264
|
+
insights: 'M285.2-277h60v-205h-60v205Zm329.84 0h60v-420h-60v420ZM450-277h60v-118h-60v118Zm0-205h60v-60h-60v60ZM182.15-114.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-595.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h595.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v595.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-595.7Zm0-68.13h595.7v-595.7h-595.7v595.7Zm0-595.7v595.7-595.7Z',
|
|
265
|
+
file: 'M222.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-675.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h357.89l226.18 226.18v517.89q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Zm0-68.13h515.7V-634H554v-183.85H222.15v675.7Zm0-675.7V-634v-183.85 675.7-675.7Z',
|
|
266
|
+
outlinedSettings: 'M370-74.02l-16-127.48q-17-6.76-34.5-16.5T287.5-237l-118 53-110-192 104-77q-1-8-1.5-20.5t-.5-20.5q0-8.76.5-21.38T163-536l-104-77 110-192 118 53q14.5-8.98 33.18-19.49T355-787.5l16-126.48h220l16 126.72q17 6.76 34.5 16.5T674-753l118-53 110 192-104 77q1 8 1.5 20.5t.5 20.5q0 8-.5 20.5T798-455l104 77-110 192-118-53q-14.5 9-32 19.5T607-202.5L591-74.02H370ZM480-330q63 0 106.5-43.5T630-480q0-63-43.5-106.5T480-630q-63 0-106.5 43.5T330-480q0 63 43.5 106.5T480-330Z',
|
|
267
|
+
scheduled: 'M573.61-114.02q-97.63 0-165.84-68.12-68.22-68.12-68.22-165.61 0-97.48 68.22-165.6 68.21-68.12 165.84-68.12 97.62 0 165.59 68.12 67.98 68.12 67.98 165.6 0 97.49-67.98 165.61-67.97 68.12-165.59 68.12ZM114.02-580.83v-68.14h233.13v68.14H114.02ZM573.8-182.15q70.2 0 119.74-49.35 49.53-49.35 49.53-119.55t-49.72-120.16q-49.72-49.96-119.92-49.96t-119.55 49.78q-49.35 49.77-49.35 120.48 0 70.48 49.53 119.62 49.54 49.14 119.74 49.14Zm48.72-72.81L573.8-304.2v-111.41h43.72V-321l37.72 37.72-32.72 28.32ZM74.02-419.63v-68.14h188.13v68.14H74.02Z',
|
|
268
|
+
watchLater: 'M573.61-114.02q-97.63 0-165.84-68.12-68.22-68.12-68.22-165.61 0-97.48 68.22-165.6 68.21-68.12 165.84-68.12 97.62 0 165.59 68.12 67.98 68.12 67.98 165.6 0 97.49-67.98 165.61-67.97 68.12-165.59 68.12ZM114.02-580.83v-68.14h233.13v68.14H114.02ZM573.8-182.15q70.2 0 119.74-49.35 49.53-49.35 49.53-119.55t-49.72-120.16q-49.72-49.96-119.92-49.96t-119.55 49.78q-49.35 49.77-49.35 120.48 0 70.48 49.53 119.62 49.54 49.14 119.74 49.14Zm48.72-72.81L573.8-304.2v-111.41h43.72V-321l37.72 37.72-32.72 28.32ZM74.02-419.63v-68.14h188.13v68.14H74.02Z',
|
|
218
269
|
};
|
|
219
270
|
/** All valid icon names (keys of NODE_ICON_PATHS) */
|
|
220
271
|
export const VALID_NODE_ICONS = Object.keys(NODE_ICON_PATHS);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.
|
|
1
|
+
export declare const VERSION = "0.33.0";
|
|
2
2
|
//# sourceMappingURL=generated-version.d.ts.map
|
package/dist/jsdoc-parser.js
CHANGED
|
@@ -994,15 +994,17 @@ export class JSDocParser {
|
|
|
994
994
|
*/
|
|
995
995
|
parsePathTag(tag, config, warnings) {
|
|
996
996
|
const comment = tag.getCommentText() || '';
|
|
997
|
-
const
|
|
998
|
-
if (!
|
|
997
|
+
const results = parsePathLine(`@path ${comment}`, warnings);
|
|
998
|
+
if (!results) {
|
|
999
999
|
warnings.push(`Invalid @path tag format: ${comment}`);
|
|
1000
1000
|
return;
|
|
1001
1001
|
}
|
|
1002
1002
|
config.paths = config.paths || [];
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1003
|
+
for (const result of results) {
|
|
1004
|
+
config.paths.push({
|
|
1005
|
+
steps: result.steps,
|
|
1006
|
+
});
|
|
1007
|
+
}
|
|
1006
1008
|
}
|
|
1007
1009
|
parseFanOutTag(tag, config, warnings) {
|
|
1008
1010
|
const comment = tag.getCommentText() || '';
|
package/dist/mcp/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export { registerQueryTools } from './tools-query.js';
|
|
|
5
5
|
export { registerTemplateTools } from './tools-template.js';
|
|
6
6
|
export { registerPatternTools } from './tools-pattern.js';
|
|
7
7
|
export { registerDebugTools } from './tools-debug.js';
|
|
8
|
+
export { registerResourceTools } from './tools-resources.js';
|
|
8
9
|
export { registerPrompts } from './prompts.js';
|
|
9
10
|
export { startMcpServer, mcpServerCommand } from './server.js';
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/mcp/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export { registerQueryTools } from './tools-query.js';
|
|
|
4
4
|
export { registerTemplateTools } from './tools-template.js';
|
|
5
5
|
export { registerPatternTools } from './tools-pattern.js';
|
|
6
6
|
export { registerDebugTools } from './tools-debug.js';
|
|
7
|
+
export { registerResourceTools } from './tools-resources.js';
|
|
7
8
|
export { registerPrompts } from './prompts.js';
|
|
8
9
|
export { startMcpServer, mcpServerCommand } from './server.js';
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
package/dist/mcp/server.js
CHANGED
|
@@ -12,6 +12,7 @@ import { registerDocsTools } from './tools-docs.js';
|
|
|
12
12
|
import { registerModelTools } from './tools-model.js';
|
|
13
13
|
import { registerDebugTools } from './tools-debug.js';
|
|
14
14
|
import { registerContextTools } from './tools-context.js';
|
|
15
|
+
import { registerResourceTools } from './tools-resources.js';
|
|
15
16
|
import { registerPrompts } from './prompts.js';
|
|
16
17
|
import { registerPackMcpTools } from './pack-tools.js';
|
|
17
18
|
export async function startMcpServer(options) {
|
|
@@ -31,6 +32,7 @@ export async function startMcpServer(options) {
|
|
|
31
32
|
registerModelTools(mcp);
|
|
32
33
|
registerDebugTools(mcp);
|
|
33
34
|
registerContextTools(mcp);
|
|
35
|
+
registerResourceTools(mcp);
|
|
34
36
|
registerPrompts(mcp);
|
|
35
37
|
await registerPackMcpTools(mcp);
|
|
36
38
|
// Connect transport (only in stdio MCP mode)
|
package/dist/mcp/tools-export.js
CHANGED
|
@@ -16,7 +16,7 @@ export function registerExportTools(mcp) {
|
|
|
16
16
|
target: z
|
|
17
17
|
.string()
|
|
18
18
|
.describe('Deployment target platform. Run with --list-targets to see installed targets.'),
|
|
19
|
-
outputDir: z.string().describe('Output directory for generated files'),
|
|
19
|
+
outputDir: z.string().optional().describe('Output directory for generated files (default: ./dist relative to workflow)'),
|
|
20
20
|
serviceName: z
|
|
21
21
|
.string()
|
|
22
22
|
.optional()
|
|
@@ -44,7 +44,7 @@ export function registerExportTools(mcp) {
|
|
|
44
44
|
}, async (args) => {
|
|
45
45
|
try {
|
|
46
46
|
const filePath = path.resolve(args.filePath);
|
|
47
|
-
const outputDir = path.resolve(args.outputDir);
|
|
47
|
+
const outputDir = path.resolve(args.outputDir || path.join(path.dirname(filePath), 'dist'));
|
|
48
48
|
const preview = args.preview ?? false;
|
|
49
49
|
const includeDocs = args.includeDocs ?? true;
|
|
50
50
|
// 1. Validate file exists
|
package/dist/mcp/tools-model.js
CHANGED
|
@@ -62,15 +62,34 @@ export function registerModelTools(mcp) {
|
|
|
62
62
|
lines.push(`declare function ${step.name}(${params}): ${returnType};`);
|
|
63
63
|
lines.push('');
|
|
64
64
|
}
|
|
65
|
-
// Parse the flow string — use full function names as instance IDs
|
|
66
|
-
const flowSteps = args.flow
|
|
67
|
-
.split('->')
|
|
68
|
-
.map((s) => s.trim())
|
|
69
|
-
.filter(Boolean);
|
|
70
65
|
// Build @node annotations using full name as both ID and type
|
|
71
66
|
const nodeAnnotations = args.steps.map((step) => `@node ${step.name} ${step.name}`);
|
|
72
|
-
//
|
|
73
|
-
const
|
|
67
|
+
// Split comma-separated flow into separate @path annotations
|
|
68
|
+
const pathAnnotations = args.flow.split(',').map((segment) => {
|
|
69
|
+
const steps = segment
|
|
70
|
+
.split('->')
|
|
71
|
+
.map((s) => s.trim())
|
|
72
|
+
.filter(Boolean);
|
|
73
|
+
return `@path ${steps.join(' -> ')}`;
|
|
74
|
+
});
|
|
75
|
+
// Generate @connect annotations for DATA ports between adjacent steps in the flow
|
|
76
|
+
const stepMap = new Map(args.steps.map((s) => [s.name, s]));
|
|
77
|
+
const connectAnnotations = [];
|
|
78
|
+
for (const segment of args.flow.split(',')) {
|
|
79
|
+
const flowNodes = segment.split('->').map((s) => s.trim()).filter(Boolean);
|
|
80
|
+
for (let i = 0; i < flowNodes.length - 1; i++) {
|
|
81
|
+
const fromStep = stepMap.get(flowNodes[i]);
|
|
82
|
+
const toStep = stepMap.get(flowNodes[i + 1]);
|
|
83
|
+
if (!fromStep || !toStep)
|
|
84
|
+
continue;
|
|
85
|
+
// Connect matching output->input port names
|
|
86
|
+
for (const outputName of Object.keys(fromStep.outputs)) {
|
|
87
|
+
if (outputName in toStep.inputs) {
|
|
88
|
+
connectAnnotations.push(`@connect ${fromStep.name}.${outputName} -> ${toStep.name}.${outputName}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
74
93
|
// Generate workflow annotation
|
|
75
94
|
const jsdocLines = ['/**'];
|
|
76
95
|
if (args.description) {
|
|
@@ -81,9 +100,16 @@ export function registerModelTools(mcp) {
|
|
|
81
100
|
for (const nodeAnn of nodeAnnotations) {
|
|
82
101
|
jsdocLines.push(` * ${nodeAnn}`);
|
|
83
102
|
}
|
|
84
|
-
|
|
103
|
+
for (const pathAnn of pathAnnotations) {
|
|
104
|
+
jsdocLines.push(` * ${pathAnn}`);
|
|
105
|
+
}
|
|
106
|
+
for (const connAnn of connectAnnotations) {
|
|
107
|
+
jsdocLines.push(` * ${connAnn}`);
|
|
108
|
+
}
|
|
85
109
|
jsdocLines.push(' */');
|
|
86
|
-
jsdocLines.push(`export
|
|
110
|
+
jsdocLines.push(`export async function ${args.name}() {`);
|
|
111
|
+
jsdocLines.push(` // stub - compile to generate workflow body`);
|
|
112
|
+
jsdocLines.push(`}`);
|
|
87
113
|
lines.push(...jsdocLines);
|
|
88
114
|
lines.push('');
|
|
89
115
|
const content = lines.join('\n');
|
package/dist/mcp/tools-query.js
CHANGED
|
@@ -66,6 +66,7 @@ export function registerQueryTools(mcp) {
|
|
|
66
66
|
mcp.tool('fw_validate', 'Validate a workflow file and return errors/warnings.', {
|
|
67
67
|
filePath: z.string().describe('Path to the workflow file'),
|
|
68
68
|
workflowName: z.string().optional().describe('Specific workflow name'),
|
|
69
|
+
draft: z.boolean().optional().describe('Draft mode - suppresses STUB_NODE errors for unimplemented nodes (default: false)'),
|
|
69
70
|
}, async (args) => {
|
|
70
71
|
try {
|
|
71
72
|
const filePath = path.resolve(args.filePath);
|
|
@@ -102,7 +103,7 @@ export function registerQueryTools(mcp) {
|
|
|
102
103
|
warnings: parseResult.warnings,
|
|
103
104
|
});
|
|
104
105
|
}
|
|
105
|
-
const result = validateWorkflow(parseResult.ast);
|
|
106
|
+
const result = validateWorkflow(parseResult.ast, args.draft ? { mode: 'draft' } : undefined);
|
|
106
107
|
const errors = result.errors.map((e) => ({
|
|
107
108
|
message: e.message,
|
|
108
109
|
severity: e.type,
|
|
@@ -148,6 +149,7 @@ export function registerQueryTools(mcp) {
|
|
|
148
149
|
typedEvents: z.boolean().optional().describe('Generate Zod event schemas from workflow @param annotations'),
|
|
149
150
|
retries: z.number().int().min(0).optional().describe('Number of retries per function. Overrides @retries annotation.'),
|
|
150
151
|
timeout: z.string().optional().describe('Function timeout (e.g. "30m", "1h"). Overrides @timeout annotation.'),
|
|
152
|
+
draft: z.boolean().optional().describe('Draft mode - suppresses STUB_NODE validation errors so partially implemented workflows can compile (default: false)'),
|
|
151
153
|
}, async (args) => {
|
|
152
154
|
try {
|
|
153
155
|
const filePath = path.resolve(args.filePath);
|
|
@@ -210,6 +212,7 @@ export function registerQueryTools(mcp) {
|
|
|
210
212
|
write: args.write ?? true,
|
|
211
213
|
parse: { workflowName: args.workflowName },
|
|
212
214
|
generate: { production: args.production ?? false },
|
|
215
|
+
validationMode: args.draft ? 'draft' : undefined,
|
|
213
216
|
});
|
|
214
217
|
return makeToolResult({
|
|
215
218
|
outputFile: result.metadata?.outputFile ?? filePath,
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Resource Tool - fw_list_resources
|
|
3
|
+
*
|
|
4
|
+
* Returns available icons, colors, and annotation tags so AI agents
|
|
5
|
+
* can use valid values when building workflows.
|
|
6
|
+
*/
|
|
7
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
8
|
+
export declare function registerResourceTools(mcp: McpServer): void;
|
|
9
|
+
//# sourceMappingURL=tools-resources.d.ts.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Resource Tool - fw_list_resources
|
|
3
|
+
*
|
|
4
|
+
* Returns available icons, colors, and annotation tags so AI agents
|
|
5
|
+
* can use valid values when building workflows.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { VALID_NODE_ICONS } from '../diagram/theme.js';
|
|
9
|
+
import { VALID_NODE_COLORS, KNOWN_NODETYPE_TAGS, KNOWN_WORKFLOW_TAGS } from '../constants.js';
|
|
10
|
+
import { makeToolResult } from './response-utils.js';
|
|
11
|
+
export function registerResourceTools(mcp) {
|
|
12
|
+
mcp.tool('fw_list_resources', 'List available icons, colors, and annotation tags for use in workflow definitions.', {
|
|
13
|
+
type: z
|
|
14
|
+
.enum(['icons', 'colors', 'tags', 'all'])
|
|
15
|
+
.default('all')
|
|
16
|
+
.describe('Resource type to list (default: all)'),
|
|
17
|
+
}, async (args) => {
|
|
18
|
+
const type = args.type ?? 'all';
|
|
19
|
+
switch (type) {
|
|
20
|
+
case 'icons':
|
|
21
|
+
return makeToolResult([...VALID_NODE_ICONS]);
|
|
22
|
+
case 'colors':
|
|
23
|
+
return makeToolResult([...VALID_NODE_COLORS]);
|
|
24
|
+
case 'tags':
|
|
25
|
+
return makeToolResult({
|
|
26
|
+
nodeType: [...KNOWN_NODETYPE_TAGS],
|
|
27
|
+
workflow: [...KNOWN_WORKFLOW_TAGS],
|
|
28
|
+
});
|
|
29
|
+
case 'all':
|
|
30
|
+
return makeToolResult({
|
|
31
|
+
icons: [...VALID_NODE_ICONS],
|
|
32
|
+
colors: [...VALID_NODE_COLORS],
|
|
33
|
+
tags: {
|
|
34
|
+
nodeType: [...KNOWN_NODETYPE_TAGS],
|
|
35
|
+
workflow: [...KNOWN_WORKFLOW_TAGS],
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=tools-resources.js.map
|
package/dist/validator.js
CHANGED
|
@@ -829,6 +829,12 @@ export class WorkflowValidator {
|
|
|
829
829
|
// Check for multiple connections to the same Exit port
|
|
830
830
|
exitPortConnections.forEach((connections, portName) => {
|
|
831
831
|
if (connections.length > 1) {
|
|
832
|
+
// Skip control flow ports — multiple STEP connections to Exit.onSuccess
|
|
833
|
+
// is the standard convergence pattern for parallel terminal nodes
|
|
834
|
+
const exitPort = workflow.exitPorts[portName];
|
|
835
|
+
if (exitPort?.isControlFlow || exitPort?.dataType === 'STEP') {
|
|
836
|
+
return;
|
|
837
|
+
}
|
|
832
838
|
const sourceNodes = connections.map((c) => c.from.node);
|
|
833
839
|
if (this.areMutuallyExclusive(sourceNodes, workflow, instanceMap)) {
|
|
834
840
|
return; // Suppress — mutually exclusive branches
|
|
@@ -311,6 +311,22 @@ Use `:ok` or `:fail` suffixes to route through `onSuccess` or `onFailure`:
|
|
|
311
311
|
|
|
312
312
|
Without a suffix, `:ok` (onSuccess) is the default. Duplicate connections from overlapping paths are automatically deduplicated.
|
|
313
313
|
|
|
314
|
+
### Comma-Separated Paths
|
|
315
|
+
|
|
316
|
+
Multiple paths can be declared in a single `@path` tag using commas. This is equivalent to separate `@path` tags:
|
|
317
|
+
|
|
318
|
+
```typescript
|
|
319
|
+
/**
|
|
320
|
+
* @flowWeaver workflow @autoConnect
|
|
321
|
+
* @node enrichCompany enrichCompany
|
|
322
|
+
* @node enrichContact enrichContact
|
|
323
|
+
* @node scoreLead scoreLead
|
|
324
|
+
* @path Start -> enrichCompany -> scoreLead -> Exit, Start -> enrichContact -> scoreLead
|
|
325
|
+
*/
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
This creates a parallel fork from Start to both `enrichCompany` and `enrichContact`, then both converge on `scoreLead`.
|
|
329
|
+
|
|
314
330
|
### Path Validation
|
|
315
331
|
|
|
316
332
|
The sugar optimizer validates that all nodes referenced in `@path` exist and that the expected control-flow connections are still valid. Stale paths are automatically filtered during parse-regenerate round-trips.
|
|
@@ -276,12 +276,15 @@ The first form is the standard `node.port` reference with optional `:scope` suff
|
|
|
276
276
|
## @path
|
|
277
277
|
|
|
278
278
|
```
|
|
279
|
-
pathTag ::= "@path"
|
|
279
|
+
pathTag ::= "@path" pathSequence ( "," pathSequence )*
|
|
280
|
+
pathSequence ::= pathStep ( "->" pathStep )+
|
|
280
281
|
pathStep ::= IDENTIFIER [ ":" ( "ok" | "fail" ) ]
|
|
281
282
|
```
|
|
282
283
|
|
|
283
284
|
Declare a complete execution route through the graph with scope walking for data ports. Steps separated by `->`, each optionally suffixed with `:ok` (default) or `:fail` to select `onSuccess` or `onFailure`.
|
|
284
285
|
|
|
286
|
+
Multiple paths can be declared in a single `@path` tag using commas, or as separate `@path` tags. Both forms are equivalent.
|
|
287
|
+
|
|
285
288
|
**Examples:**
|
|
286
289
|
|
|
287
290
|
```
|
|
@@ -289,10 +292,17 @@ Declare a complete execution route through the graph with scope walking for data
|
|
|
289
292
|
@path Start -> validator:ok -> processor -> Exit
|
|
290
293
|
```
|
|
291
294
|
|
|
295
|
+
Comma-separated (equivalent to two `@path` tags):
|
|
296
|
+
|
|
297
|
+
```
|
|
298
|
+
@path Start -> enrichCompany -> scoreLead -> Exit, Start -> enrichContact -> scoreLead
|
|
299
|
+
```
|
|
300
|
+
|
|
292
301
|
- `:ok` follows `onSuccess` (default when no suffix)
|
|
293
302
|
- `:fail` follows `onFailure`
|
|
294
303
|
- Data ports auto-resolve by walking backward through the path to the nearest ancestor with a same-name output port (scope walking)
|
|
295
304
|
- Multiple `@path` lines can coexist; overlapping prefixes are deduplicated
|
|
305
|
+
- Comma-separated paths within a single `@path` are expanded to separate paths
|
|
296
306
|
- Manual `@connect` lines can supplement for cross-named ports
|
|
297
307
|
|
|
298
308
|
## @position
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synergenius/flow-weaver",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.33.0",
|
|
4
4
|
"description": "Flow Weaver: deterministic TypeScript workflow compiler. Define workflows with JSDoc annotations, compile to standalone functions with zero runtime dependencies.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|