digitalsee-ai-flow-cli 0.1.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.
Files changed (75) hide show
  1. package/README.md +631 -0
  2. package/dist/api/client.d.ts.map +1 -0
  3. package/dist/api/client.js +87 -0
  4. package/dist/api/client.js.map +1 -0
  5. package/dist/api/flow.d.ts.map +1 -0
  6. package/dist/api/flow.js +61 -0
  7. package/dist/api/flow.js.map +1 -0
  8. package/dist/api/knowledge.d.ts.map +1 -0
  9. package/dist/api/knowledge.js +32 -0
  10. package/dist/api/knowledge.js.map +1 -0
  11. package/dist/api/node.d.ts.map +1 -0
  12. package/dist/api/node.js +65 -0
  13. package/dist/api/node.js.map +1 -0
  14. package/dist/api/variables.d.ts.map +1 -0
  15. package/dist/api/variables.js +24 -0
  16. package/dist/api/variables.js.map +1 -0
  17. package/dist/commands/config.d.ts.map +1 -0
  18. package/dist/commands/config.js +73 -0
  19. package/dist/commands/config.js.map +1 -0
  20. package/dist/commands/flow/account.d.ts.map +1 -0
  21. package/dist/commands/flow/account.js +41 -0
  22. package/dist/commands/flow/account.js.map +1 -0
  23. package/dist/commands/flow/analyze.d.ts.map +1 -0
  24. package/dist/commands/flow/analyze.js +109 -0
  25. package/dist/commands/flow/analyze.js.map +1 -0
  26. package/dist/commands/flow/edge.d.ts.map +1 -0
  27. package/dist/commands/flow/edge.js +167 -0
  28. package/dist/commands/flow/edge.js.map +1 -0
  29. package/dist/commands/flow/helpers.d.ts.map +1 -0
  30. package/dist/commands/flow/helpers.js +213 -0
  31. package/dist/commands/flow/helpers.js.map +1 -0
  32. package/dist/commands/flow/list.d.ts.map +1 -0
  33. package/dist/commands/flow/list.js +40 -0
  34. package/dist/commands/flow/list.js.map +1 -0
  35. package/dist/commands/flow/node.d.ts.map +1 -0
  36. package/dist/commands/flow/node.js +425 -0
  37. package/dist/commands/flow/node.js.map +1 -0
  38. package/dist/commands/flow/test.d.ts.map +1 -0
  39. package/dist/commands/flow/test.js +55 -0
  40. package/dist/commands/flow/test.js.map +1 -0
  41. package/dist/commands/flow/variables.d.ts.map +1 -0
  42. package/dist/commands/flow/variables.js +177 -0
  43. package/dist/commands/flow/variables.js.map +1 -0
  44. package/dist/commands/flow.d.ts.map +1 -0
  45. package/dist/commands/flow.js +23 -0
  46. package/dist/commands/flow.js.map +1 -0
  47. package/dist/commands/knowledge.d.ts.map +1 -0
  48. package/dist/commands/knowledge.js +196 -0
  49. package/dist/commands/knowledge.js.map +1 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +74 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/services/flowAnalyzer.d.ts.map +1 -0
  54. package/dist/services/flowAnalyzer.js +366 -0
  55. package/dist/services/flowAnalyzer.js.map +1 -0
  56. package/dist/services/skillGenerator.d.ts.map +1 -0
  57. package/dist/services/skillGenerator.js +241 -0
  58. package/dist/services/skillGenerator.js.map +1 -0
  59. package/dist/types/index.d.ts.map +1 -0
  60. package/dist/types/index.js +3 -0
  61. package/dist/types/index.js.map +1 -0
  62. package/dist/utils/config.d.ts.map +1 -0
  63. package/dist/utils/config.js +114 -0
  64. package/dist/utils/config.js.map +1 -0
  65. package/dist/utils/encoding.d.ts.map +1 -0
  66. package/dist/utils/encoding.js +21 -0
  67. package/dist/utils/encoding.js.map +1 -0
  68. package/dist/utils/format.d.ts.map +1 -0
  69. package/dist/utils/format.js +375 -0
  70. package/dist/utils/format.js.map +1 -0
  71. package/dist/utils/output.d.ts.map +1 -0
  72. package/dist/utils/output.js +115 -0
  73. package/dist/utils/output.js.map +1 -0
  74. package/package.json +27 -0
  75. package/tsconfig.json +22 -0
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getClient = getClient;
7
+ exports.resetClient = resetClient;
8
+ exports.apiGet = apiGet;
9
+ exports.apiPost = apiPost;
10
+ exports.apiPatch = apiPatch;
11
+ exports.apiDelete = apiDelete;
12
+ const https_1 = __importDefault(require("https"));
13
+ const axios_1 = __importDefault(require("axios"));
14
+ const config_1 = require("../utils/config");
15
+ let clientInstance = null;
16
+ function buildClient() {
17
+ const config = (0, config_1.loadConfig)();
18
+ const httpsAgent = new https_1.default.Agent({ rejectUnauthorized: !config.insecure });
19
+ const instance = axios_1.default.create({
20
+ baseURL: config.baseUrl,
21
+ httpsAgent,
22
+ headers: {
23
+ "Content-Type": "application/json",
24
+ },
25
+ timeout: 30000,
26
+ });
27
+ instance.interceptors.request.use((reqConfig) => {
28
+ const cfg = (0, config_1.loadConfig)();
29
+ if (cfg.token) {
30
+ reqConfig.headers.Authorization = `Bearer ${cfg.token}`;
31
+ }
32
+ return reqConfig;
33
+ });
34
+ instance.interceptors.response.use((response) => {
35
+ const body = response.data;
36
+ if (body && typeof body === "object" && "data" in body) {
37
+ response.data = body.data;
38
+ }
39
+ return response;
40
+ }, (error) => {
41
+ if (error.response) {
42
+ const body = error.response.data;
43
+ const msg = body?.data?.message ||
44
+ body?.data?.error ||
45
+ error.response.data?.message ||
46
+ error.response.data?.error ||
47
+ JSON.stringify(error.response.data);
48
+ const status = error.response.status;
49
+ throw new Error(`[${status}] ${msg}`);
50
+ }
51
+ if (error.code === "ECONNREFUSED") {
52
+ throw new Error(`无法连接到服务器,请检查 baseUrl 配置: ${config.baseUrl}`);
53
+ }
54
+ throw error;
55
+ });
56
+ return instance;
57
+ }
58
+ function getClient() {
59
+ if (!clientInstance) {
60
+ clientInstance = buildClient();
61
+ }
62
+ return clientInstance;
63
+ }
64
+ function resetClient() {
65
+ clientInstance = null;
66
+ }
67
+ async function apiGet(url, params) {
68
+ const client = getClient();
69
+ const response = await client.get(url, { params });
70
+ return response.data;
71
+ }
72
+ async function apiPost(url, data, config) {
73
+ const client = getClient();
74
+ const response = await client.post(url, data, config);
75
+ return response.data;
76
+ }
77
+ async function apiPatch(url, data, config) {
78
+ const client = getClient();
79
+ const response = await client.patch(url, data, config);
80
+ return response.data;
81
+ }
82
+ async function apiDelete(url) {
83
+ const client = getClient();
84
+ const response = await client.delete(url);
85
+ return response.data;
86
+ }
87
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/api/flow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGxD,wBAAsB,WAAW,CAAC,MAAM,EAAE;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE5B;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA0BvE;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,GAAG,CAAC,CAMd;AAED,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAE1D;AAED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAE3D;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAE5D;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAEhE"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFlowList = getFlowList;
4
+ exports.getFlowDetail = getFlowDetail;
5
+ exports.updateFlow = updateFlow;
6
+ exports.runFlow = runFlow;
7
+ exports.stopFlow = stopFlow;
8
+ exports.checkFlow = checkFlow;
9
+ exports.getFlowOutput = getFlowOutput;
10
+ const client_1 = require("./client");
11
+ const encoding_1 = require("../utils/encoding");
12
+ async function getFlowList(params) {
13
+ return (0, client_1.apiGet)("/acm/flows/list/v2", params);
14
+ }
15
+ async function getFlowDetail(flowId) {
16
+ const data = await (0, client_1.apiGet)(`/acm/flows/v2/${flowId}`);
17
+ if (!data) {
18
+ return { id: flowId, name: "", nodes: [], edges: [], op_status: "" };
19
+ }
20
+ if (!data.edges && Array.isArray(data.connections)) {
21
+ data.edges = data.connections.map((c) => ({
22
+ id: c.id || "",
23
+ source: c.source || c.main?.source || "",
24
+ target: c.target || c.main?.target || "",
25
+ sourceHandle: c.sourceHandle || c.main?.sourceHandle || "output",
26
+ targetHandle: c.targetHandle || c.main?.targetHandle || "input",
27
+ type: c.type || c.main?.type || "main",
28
+ label: c.label,
29
+ }));
30
+ }
31
+ if (!Array.isArray(data.edges)) {
32
+ data.edges = [];
33
+ }
34
+ if (!Array.isArray(data.nodes)) {
35
+ data.nodes = [];
36
+ }
37
+ if (!Array.isArray(data.connections)) {
38
+ data.connections = [];
39
+ }
40
+ return data;
41
+ }
42
+ async function updateFlow(flowId, data) {
43
+ return (0, client_1.apiPatch)(`/acm/flows/v2/${flowId}`, (0, encoding_1.encodeBase64)(data), {
44
+ headers: {
45
+ "Content-Type": "text/plain",
46
+ },
47
+ });
48
+ }
49
+ async function runFlow(flowId) {
50
+ return (0, client_1.apiPost)(`/acm/flows/run/v2/${flowId}`);
51
+ }
52
+ async function stopFlow(flowId) {
53
+ return (0, client_1.apiPost)(`/acm/flows/stop/v2/${flowId}`);
54
+ }
55
+ async function checkFlow(flowId) {
56
+ return (0, client_1.apiPost)(`/acm/flows/check/${flowId}`);
57
+ }
58
+ async function getFlowOutput(flowId) {
59
+ return (0, client_1.apiGet)(`/acm/flows/output/${flowId}`);
60
+ }
61
+ //# sourceMappingURL=flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/api/flow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/api/knowledge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE7D,wBAAsB,iBAAiB,CAAC,MAAM,CAAC,EAAE;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAE1B;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAW/B;AAED,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAE1E;AAED,wBAAsB,gBAAgB,CAAC,MAAM,CAAC,EAAE;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,GAAG,CAAC,CAEf"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNodeCategories = getNodeCategories;
4
+ exports.searchNodesByCategory = searchNodesByCategory;
5
+ exports.getConnectorDetail = getConnectorDetail;
6
+ exports.getAllConnectors = getAllConnectors;
7
+ const client_1 = require("./client");
8
+ async function getNodeCategories(params) {
9
+ return (0, client_1.apiGet)("/acm/links/domain/v2", { type: params?.type });
10
+ }
11
+ async function searchNodesByCategory(params) {
12
+ const body = {
13
+ page: params.page || 1,
14
+ size: params.size || 50,
15
+ trigger: params.trigger,
16
+ };
17
+ if (params.name)
18
+ body.name = params.name;
19
+ if (params.flow_id)
20
+ body.flow_id = params.flow_id;
21
+ if (params.app_domain_category)
22
+ body.app_domain_category = params.app_domain_category;
23
+ const data = await (0, client_1.apiPost)("/acm/links/search", body);
24
+ return data || { items: [], total: 0, page: params.page || 1, size: params.size || 50 };
25
+ }
26
+ async function getConnectorDetail(connectorId) {
27
+ return (0, client_1.apiGet)(`/acm/links/${connectorId}`);
28
+ }
29
+ async function getAllConnectors(params) {
30
+ return (0, client_1.apiGet)("/acm/allLinks", params);
31
+ }
32
+ //# sourceMappingURL=knowledge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/api/knowledge.ts"],"names":[],"mappings":";;AAGA,8CAIC;AAED,sDAkBC;AAED,gDAEC;AAED,4CAKC;AAtCD,qCAA2C;AAGpC,KAAK,UAAU,iBAAiB,CAAC,MAEvC;IACC,OAAO,IAAA,eAAM,EAAiB,sBAAsB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAChF,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,MAO3C;IACC,MAAM,IAAI,GAAwB;QAChC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC;IACF,IAAI,MAAM,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzC,IAAI,MAAM,CAAC,OAAO;QAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAClD,IAAI,MAAM,CAAC,mBAAmB;QAAE,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;IACtF,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAO,EAAsB,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAC3E,OAAO,IAAI,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;AAC1F,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,WAAmB;IAC1D,OAAO,IAAA,eAAM,EAAC,cAAc,WAAW,EAAE,CAAC,CAAC;AAC7C,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,MAGtC;IACC,OAAO,IAAA,eAAM,EAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/api/node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAGxE,wBAAsB,UAAU,CAAC,MAAM,EAAE;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAOvB;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAEhE;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,GAAG,CAAC,CAMd;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,GAAG,CAAC,CAMd;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,GAAG,EAAE,CAAC,CAShB;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAE7D;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAOzE"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getActions = getActions;
4
+ exports.getNodeDetail = getNodeDetail;
5
+ exports.createNode = createNode;
6
+ exports.updateNode = updateNode;
7
+ exports.getAccountInstances = getAccountInstances;
8
+ exports.deleteNode = deleteNode;
9
+ exports.testRunNode = testRunNode;
10
+ const client_1 = require("./client");
11
+ const encoding_1 = require("../utils/encoding");
12
+ async function getActions(params) {
13
+ const data = await (0, client_1.apiGet)("/acm/actions/v2", params);
14
+ if (Array.isArray(data))
15
+ return data;
16
+ if (data && Array.isArray(data.items))
17
+ return data.items;
18
+ if (data && Array.isArray(data.actions))
19
+ return data.actions;
20
+ if (data && Array.isArray(data.data))
21
+ return data.data;
22
+ return [];
23
+ }
24
+ async function getNodeDetail(nodeId) {
25
+ return (0, client_1.apiGet)(`/acm/flows/nodes/${nodeId}`);
26
+ }
27
+ async function createNode(data) {
28
+ return (0, client_1.apiPost)(`/acm/flows/nodes/v2`, (0, encoding_1.encodeBase64)(data), {
29
+ headers: {
30
+ "Content-Type": "text/plain",
31
+ },
32
+ });
33
+ }
34
+ async function updateNode(nodeId, data) {
35
+ return (0, client_1.apiPatch)(`/acm/flows/nodes/v2/${nodeId}`, (0, encoding_1.encodeBase64)(data), {
36
+ headers: {
37
+ "Content-Type": "text/plain",
38
+ },
39
+ });
40
+ }
41
+ async function getAccountInstances(linkId, accountSchemaId) {
42
+ const params = { linkId };
43
+ if (accountSchemaId) {
44
+ params.account_schema_id = accountSchemaId;
45
+ }
46
+ const data = await (0, client_1.apiGet)("/acm/accountInstance", params);
47
+ if (Array.isArray(data))
48
+ return data;
49
+ if (data && Array.isArray(data.items))
50
+ return data.items;
51
+ return [];
52
+ }
53
+ async function deleteNode(nodeId) {
54
+ return (0, client_1.apiDelete)(`/acm/flows/nodes/v2/${nodeId}`);
55
+ }
56
+ async function testRunNode(nodeId) {
57
+ try {
58
+ const data = await (0, client_1.apiPost)(`/acm/flows/nodes/run/v2/${nodeId}`, {});
59
+ return { success: true, data };
60
+ }
61
+ catch (error) {
62
+ return { success: false, error: error.message };
63
+ }
64
+ }
65
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/api/node.ts"],"names":[],"mappings":";;AAIA,gCAcC;AAED,sCAEC;AAED,gCAQC;AAED,gCASC;AAED,kDAYC;AAED,gCAEC;AAED,kCAOC;AAtED,qCAAgE;AAEhE,gDAAiD;AAE1C,KAAK,UAAU,UAAU,CAAC,MAOhC;IACC,MAAM,IAAI,GAAG,MAAM,IAAA,eAAM,EAAM,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IACzD,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC;IAC7D,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IACvD,OAAO,EAAE,CAAC;AACZ,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,OAAO,IAAA,eAAM,EAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;AAC9C,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,IAAuB;IAEvB,OAAO,IAAA,gBAAO,EAAC,qBAAqB,EAAE,IAAA,uBAAY,EAAC,IAAI,CAAC,EAAE;QACxD,OAAO,EAAE;YACP,cAAc,EAAE,YAAY;SAC7B;KACF,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,MAAc,EACd,IAAS;IAET,OAAO,IAAA,iBAAQ,EAAC,uBAAuB,MAAM,EAAE,EAAE,IAAA,uBAAY,EAAC,IAAI,CAAC,EAAE;QACnE,OAAO,EAAE;YACP,cAAc,EAAE,YAAY;SAC7B;KACF,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,eAAwB;IAExB,MAAM,MAAM,GAA2B,EAAE,MAAM,EAAE,CAAC;IAClD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,iBAAiB,GAAG,eAAe,CAAC;IAC7C,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,IAAA,eAAM,EAAM,sBAAsB,EAAE,MAAM,CAAC,CAAC;IAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IACzD,OAAO,EAAE,CAAC;AACZ,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,MAAc;IAC7C,OAAO,IAAA,kBAAS,EAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,MAAc;IAC9C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAO,EAAC,2BAA2B,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACpE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAClD,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../src/api/variables.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,cAAc,EACf,MAAM,UAAU,CAAC;AAGlB,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAK9E;AAGD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,cAAc,EAAE,CAAC,CAO3B"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getGlobalVariables = getGlobalVariables;
4
+ exports.getFlowOutputTree = getFlowOutputTree;
5
+ const client_1 = require("./client");
6
+ const encoding_1 = require("../utils/encoding");
7
+ async function getGlobalVariables() {
8
+ return (0, client_1.apiGet)("/acm/api/globalVariables/list", {
9
+ page: 1,
10
+ size: 1000,
11
+ });
12
+ }
13
+ async function getFlowOutputTree(flowId, data) {
14
+ const raw = await (0, client_1.apiPost)(`/acm/flows/outputTree/v2/${flowId}`, data);
15
+ const result = (0, encoding_1.decodeBase64)(raw);
16
+ if (Array.isArray(result))
17
+ return result;
18
+ if (result && Array.isArray(result.data))
19
+ return result.data;
20
+ if (result && Array.isArray(result.items))
21
+ return result.items;
22
+ return [];
23
+ }
24
+ //# sourceMappingURL=variables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variables.js","sourceRoot":"","sources":["../../src/api/variables.ts"],"names":[],"mappings":";;AAQA,gDAKC;AAGD,8CAUC;AA1BD,qCAA2C;AAM3C,gDAAiD;AAE1C,KAAK,UAAU,kBAAkB;IACtC,OAAO,IAAA,eAAM,EAA6B,+BAA+B,EAAE;QACzE,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC;AAGM,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,IAA2B;IAE3B,MAAM,GAAG,GAAG,MAAM,IAAA,gBAAO,EAAM,4BAA4B,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,IAAA,uBAAY,EAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IAC7D,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IAC/D,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoE5D"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerConfigCommand = registerConfigCommand;
4
+ const config_1 = require("@/utils/config");
5
+ const output_1 = require("@/utils/output");
6
+ function registerConfigCommand(program) {
7
+ const configCmd = program
8
+ .command("config")
9
+ .description("管理 CLI 配置");
10
+ configCmd
11
+ .command("show")
12
+ .description("显示当前配置")
13
+ .action(() => {
14
+ const config = (0, config_1.loadConfig)();
15
+ (0, output_1.printHeader)("当前配置");
16
+ (0, output_1.printKeyValue)([
17
+ ["baseUrl", config.baseUrl],
18
+ ["token", (0, output_1.truncateToken)(config.token) || "(未设置)"],
19
+ ["insecure", String(config.insecure)],
20
+ ]);
21
+ });
22
+ configCmd
23
+ .command("set")
24
+ .description("设置配置项")
25
+ .option("--base-url <url>", "API 服务地址")
26
+ .option("--token <token>", "认证 Token")
27
+ .option("--insecure", "跳过 SSL 证书验证")
28
+ .option("--project", "保存到项目级配置(.ai-flowrc)")
29
+ .action((options) => {
30
+ const updates = {};
31
+ if (options.baseUrl)
32
+ updates.baseUrl = options.baseUrl;
33
+ if (options.token)
34
+ updates.token = options.token;
35
+ if (options.insecure !== undefined)
36
+ updates.insecure = true;
37
+ if (Object.keys(updates).length === 0) {
38
+ (0, output_1.printWarning)("未指定任何配置项。使用 ai-flow config set --help 查看选项。");
39
+ return;
40
+ }
41
+ if (options.project) {
42
+ (0, config_1.saveProjectConfig)(updates);
43
+ (0, output_1.printSuccess)("已保存到项目级配置 (.ai-flowrc)");
44
+ }
45
+ else {
46
+ (0, config_1.saveGlobalConfig)(updates);
47
+ (0, output_1.printSuccess)("已保存到全局配置 (~/.ai-flow-cli/config.json)");
48
+ }
49
+ if (options.baseUrl) {
50
+ (0, output_1.printInfo)(`baseUrl: ${options.baseUrl}`);
51
+ }
52
+ if (options.token) {
53
+ (0, output_1.printInfo)(`token: ${(0, output_1.truncateToken)(options.token)}`);
54
+ }
55
+ if (options.insecure) {
56
+ (0, output_1.printWarning)("SSL 证书验证已禁用");
57
+ }
58
+ });
59
+ configCmd
60
+ .command("reset")
61
+ .description("重置配置")
62
+ .option("--project", "重置项目级配置")
63
+ .action((options) => {
64
+ (0, config_1.resetConfig)(options.project ? "project" : "global");
65
+ if (options.project) {
66
+ (0, output_1.printSuccess)("已重置项目级配置");
67
+ }
68
+ else {
69
+ (0, output_1.printSuccess)("已重置全局配置");
70
+ }
71
+ });
72
+ }
73
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/commands/flow/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkC1D"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerFlowAccount = registerFlowAccount;
4
+ const node_1 = require("@/api/node");
5
+ const output_1 = require("@/utils/output");
6
+ function registerFlowAccount(flowCmd) {
7
+ const accountCmd = flowCmd
8
+ .command("account")
9
+ .description("账号操作");
10
+ accountCmd
11
+ .command("list <connectorId>")
12
+ .description("列出连接器的可用账号实例")
13
+ .option("--account-schema-id <id>", "按账号模型过滤")
14
+ .option("--format <format>", "输出格式: table | json", "table")
15
+ .action(async (connectorId, options) => {
16
+ try {
17
+ const accounts = await (0, node_1.getAccountInstances)(connectorId, options.accountSchemaId);
18
+ if (options.format === "json") {
19
+ (0, output_1.printJson)(accounts);
20
+ return;
21
+ }
22
+ if (accounts.length === 0) {
23
+ (0, output_1.printWarning)("无可用账号实例");
24
+ return;
25
+ }
26
+ (0, output_1.printHeader)(`账号实例 (${accounts.length})`);
27
+ const headers = ["ID", "名称", "认证类型", "连接器"];
28
+ const rows = accounts.map((a) => [
29
+ a.id || "-",
30
+ a.name || "-",
31
+ a.auth_type || "-",
32
+ a.connector_id || connectorId || "-",
33
+ ]);
34
+ (0, output_1.printTable)(headers, rows);
35
+ }
36
+ catch (error) {
37
+ (0, output_1.printError)(`获取账号实例失败: ${error.message}`);
38
+ }
39
+ });
40
+ }
41
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/commands/flow/account.ts"],"names":[],"mappings":";;AAUA,kDAkCC;AA3CD,qCAAiD;AACjD,2CAMwB;AAExB,SAAgB,mBAAmB,CAAC,OAAgB;IAClD,MAAM,UAAU,GAAG,OAAO;SACvB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,MAAM,CAAC,CAAC;IAEvB,UAAU;SACP,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,cAAc,CAAC;SAC3B,MAAM,CAAC,0BAA0B,EAAE,SAAS,CAAC;SAC7C,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,OAAO,CAAC;SAC1D,MAAM,CAAC,KAAK,EAAE,WAAmB,EAAE,OAAO,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAmB,EAAC,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;YACjF,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC9B,IAAA,kBAAS,EAAC,QAAQ,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAA,qBAAY,EAAC,SAAS,CAAC,CAAC;gBACxB,OAAO;YACT,CAAC;YACD,IAAA,oBAAW,EAAC,SAAS,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACzC,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC;gBACpC,CAAC,CAAC,EAAE,IAAI,GAAG;gBACX,CAAC,CAAC,IAAI,IAAI,GAAG;gBACb,CAAC,CAAC,SAAS,IAAI,GAAG;gBAClB,CAAC,CAAC,YAAY,IAAI,WAAW,IAAI,GAAG;aACrC,CAAC,CAAC;YACH,IAAA,mBAAU,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAA,mBAAU,EAAC,aAAa,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../../src/commands/flow/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2G1D"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerFlowAnalyze = registerFlowAnalyze;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const flow_1 = require("@/api/flow");
9
+ const flowAnalyzer_1 = require("@/services/flowAnalyzer");
10
+ const helpers_1 = require("./helpers");
11
+ const output_1 = require("@/utils/output");
12
+ function registerFlowAnalyze(flowCmd) {
13
+ flowCmd
14
+ .command("analyze <flowId>")
15
+ .description("分析连接流的所有节点及执行顺序")
16
+ .option("--format <format>", "输出格式: table | brief | graph | json", "table")
17
+ .action(async (flowId, options) => {
18
+ try {
19
+ (0, output_1.printInfo)(`正在获取连接流 ${flowId} 的详情...`);
20
+ const flow = await (0, flow_1.getFlowDetail)(flowId);
21
+ if (options.format === "json") {
22
+ return;
23
+ }
24
+ const analysis = (0, flowAnalyzer_1.analyzeFlow)(flow);
25
+ (0, output_1.printHeader)(`连接流分析: ${analysis.flowInfo.name}`);
26
+ (0, output_1.printKeyValue)([
27
+ ["ID", analysis.flowInfo.id],
28
+ ["名称", analysis.flowInfo.name],
29
+ ["描述", analysis.flowInfo.description || "(无)"],
30
+ ["状态", (0, helpers_1.formatOpStatus)(analysis.flowInfo.opStatus)],
31
+ ["节点数", String(analysis.flowInfo.nodeCount)],
32
+ ["边数", String(analysis.flowInfo.edgeCount)],
33
+ ["创建时间", (0, helpers_1.formatDate)(analysis.flowInfo.createdAt)],
34
+ ["更新时间", (0, helpers_1.formatDate)(analysis.flowInfo.updatedAt)],
35
+ ]);
36
+ if (options.format === "graph") {
37
+ (0, output_1.printSubHeader)("流程图");
38
+ console.log(analysis.flowchart);
39
+ (0, output_1.printSuccess)("分析完成");
40
+ return;
41
+ }
42
+ try {
43
+ (0, output_1.printSubHeader)("节点清单");
44
+ const headers = ["节点ID", "名称", "类型", "Connector", "状态"];
45
+ const rows = analysis.nodes.map((node) => [
46
+ String(node.n_id || node.id || ""),
47
+ String(node.connector_name || node.action_name || "-"),
48
+ String((0, flowAnalyzer_1.formatNodeType)(node.node_type)),
49
+ String(node.connector_id || "-"),
50
+ node.closed === 1 ? "已禁用" : String(node.status || "正常"),
51
+ ]);
52
+ (0, output_1.printTable)(headers, rows);
53
+ }
54
+ catch (e) {
55
+ (0, output_1.printError)(`节点清单渲染失败: ${e.message}`);
56
+ }
57
+ (0, output_1.printSubHeader)("执行顺序(拓扑排序)");
58
+ if (analysis.executionOrder.length > 0) {
59
+ analysis.executionOrder.forEach((nid, i) => {
60
+ const node = analysis.nodes.find((n) => (n.n_id || n.id) === nid);
61
+ const name = node?.connector_name || node?.action_name || nid;
62
+ console.log(` ${chalk_1.default.gray(String(i + 1).padStart(3))}. ${chalk_1.default.cyan(nid)} ${chalk_1.default.white(`[${name}]`)}`);
63
+ });
64
+ }
65
+ else {
66
+ (0, output_1.printWarning)("无法确定执行顺序(可能包含循环依赖或孤立节点)");
67
+ }
68
+ if (options.format === "brief") {
69
+ (0, output_1.printSuccess)("分析完成");
70
+ return;
71
+ }
72
+ (0, output_1.printSubHeader)("依赖关系图");
73
+ console.log(analysis.dependencyGraph);
74
+ (0, output_1.printSubHeader)("节点分组统计");
75
+ (0, output_1.printKeyValue)([
76
+ ["触发器", String(analysis.nodeGroups.triggers.length)],
77
+ ["动作节点", String(analysis.nodeGroups.actions.length)],
78
+ ["条件/分支", String(analysis.nodeGroups.conditions.length)],
79
+ ["循环节点", String(analysis.nodeGroups.loops.length)],
80
+ ["AI 节点", String(analysis.nodeGroups.aiNodes.length)],
81
+ ["其他", String(analysis.nodeGroups.others.length)],
82
+ ]);
83
+ (0, output_1.printSubHeader)("节点配置详情");
84
+ for (const node of analysis.nodes) {
85
+ (0, helpers_1.printNodeConfigDetail)(node);
86
+ }
87
+ (0, output_1.printSubHeader)("Edges 详情");
88
+ if (analysis.edges.length > 0) {
89
+ const edgeHeaders = ["Edge ID", "Source", "Source Handle", "Target", "Target Handle"];
90
+ const edgeRows = analysis.edges.map((e) => [
91
+ String(e.id || "-"),
92
+ String(e.source || ""),
93
+ String(e.sourceHandle || "-"),
94
+ String(e.target || ""),
95
+ String(e.targetHandle || "-"),
96
+ ]);
97
+ (0, output_1.printTable)(edgeHeaders, edgeRows);
98
+ }
99
+ else {
100
+ (0, output_1.printInfo)("无连接边");
101
+ }
102
+ (0, output_1.printSuccess)(`分析完成`);
103
+ }
104
+ catch (error) {
105
+ (0, output_1.printError)(`分析失败: ${error.message}`);
106
+ }
107
+ });
108
+ }
109
+ //# sourceMappingURL=analyze.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../src/commands/flow/analyze.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../../src/commands/flow/edge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8IvD"}