@zocomputer/system-api 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generate/cli.d.ts +1 -0
- package/dist/generate/cli.js +22 -4
- package/dist/generated/catalog.js +25 -19
- package/dist/generated/manifest.json +26 -21
- package/dist/generated/operations.d.ts +729 -17
- package/dist/generated/schema.json +3369 -434
- package/dist/json/index.d.ts +1 -1
- package/dist/json/index.js +15 -2
- package/openapi.json +3369 -434
- package/package.json +1 -1
package/dist/generate/cli.d.ts
CHANGED
|
@@ -29,6 +29,7 @@ declare function readToken(): Promise<string>;
|
|
|
29
29
|
interface FetchExportOptions {
|
|
30
30
|
readonly timeoutMs?: number;
|
|
31
31
|
readonly maxBytes?: number;
|
|
32
|
+
readonly cachedBytes?: Uint8Array;
|
|
32
33
|
}
|
|
33
34
|
declare function fetchExport(baseUrl: URL, workspace: string, catalog: string | undefined, token: string, options?: FetchExportOptions): Promise<Uint8Array>;
|
|
34
35
|
/**
|
package/dist/generate/cli.js
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
import { createHash } from "node:crypto";
|
|
19
19
|
import { realpathSync } from "node:fs";
|
|
20
20
|
import { existsSync, readFileSync, readdirSync } from "node:fs";
|
|
21
|
-
import { mkdir, readFile, rename, rm, writeFile } from "node:fs/promises";
|
|
21
|
+
import { lstat, mkdir, readFile, rename, rm, writeFile, } from "node:fs/promises";
|
|
22
22
|
import { dirname, join, resolve } from "node:path";
|
|
23
23
|
import { argv } from "node:process";
|
|
24
24
|
import { fileURLToPath } from "node:url";
|
|
@@ -131,10 +131,16 @@ async function fetchExport(baseUrl, workspace, catalog, token, options = {}) {
|
|
|
131
131
|
endpoint.searchParams.set("workspace_id", workspace);
|
|
132
132
|
if (catalog !== undefined)
|
|
133
133
|
endpoint.searchParams.set("catalog", catalog);
|
|
134
|
+
const cached = options.cachedBytes;
|
|
135
|
+
const etag = cached && cached.byteLength <= maxBytes ? `"${digest(cached)}"` : undefined;
|
|
134
136
|
let response;
|
|
135
137
|
try {
|
|
136
138
|
response = await fetch(endpoint, {
|
|
137
|
-
headers: {
|
|
139
|
+
headers: {
|
|
140
|
+
authorization: `Bearer ${token}`,
|
|
141
|
+
accept: "application/json",
|
|
142
|
+
...(etag ? { "If-None-Match": etag } : {}),
|
|
143
|
+
},
|
|
138
144
|
redirect: "manual",
|
|
139
145
|
signal: AbortSignal.timeout(timeoutMs),
|
|
140
146
|
});
|
|
@@ -147,8 +153,15 @@ async function fetchExport(baseUrl, workspace, catalog, token, options = {}) {
|
|
|
147
153
|
// With redirect:"manual", undici surfaces a 3xx as an opaque redirect: refuse
|
|
148
154
|
// it rather than let fetch resend the Authorization header to a new origin.
|
|
149
155
|
if (response.type === "opaqueredirect" ||
|
|
150
|
-
(response.status >= 300 && response.status < 400))
|
|
156
|
+
(response.status >= 300 && response.status < 400 && response.status !== 304))
|
|
151
157
|
throw new CliError("catalog export endpoint returned a redirect; refusing to follow it");
|
|
158
|
+
if (response.status === 304) {
|
|
159
|
+
if (cached === undefined ||
|
|
160
|
+
etag === undefined ||
|
|
161
|
+
response.headers.get("etag") !== etag)
|
|
162
|
+
throw new CliError("catalog export returned 304 without matching saved bytes");
|
|
163
|
+
return cached;
|
|
164
|
+
}
|
|
152
165
|
if (!response.ok)
|
|
153
166
|
throw new CliError(`catalog export request failed with HTTP ${response.status}`);
|
|
154
167
|
return readBounded(response, maxBytes);
|
|
@@ -288,7 +301,12 @@ async function runGenerate(args) {
|
|
|
288
301
|
const baseUrl = validateBaseUrl(args.baseUrl);
|
|
289
302
|
if (args.workspace === undefined || args.workspace === "")
|
|
290
303
|
throw new CliError("--workspace <id> is required when fetching from --base-url");
|
|
291
|
-
|
|
304
|
+
const savedPath = join(resolve(args.out), "schema.json");
|
|
305
|
+
const savedStat = await lstat(savedPath).catch(() => undefined);
|
|
306
|
+
const savedBytes = savedStat?.isFile() && savedStat.size <= MAX_EXPORT_BYTES
|
|
307
|
+
? new Uint8Array(await readFile(savedPath))
|
|
308
|
+
: undefined;
|
|
309
|
+
schemaBytes = await fetchExport(baseUrl, args.workspace, args.catalog, await readToken(), { cachedBytes: savedBytes });
|
|
292
310
|
}
|
|
293
311
|
// generateBundle snapshots schemaBytes and derives the model internally, so the
|
|
294
312
|
// emitted types and persisted schema.json always come from one immutable source.
|
|
@@ -43,7 +43,7 @@ export const catalog = defineCatalog({
|
|
|
43
43
|
"zo.agent.list_messages": {
|
|
44
44
|
defaultVersion: 1,
|
|
45
45
|
versions: {
|
|
46
|
-
1: { digest: "sha256:
|
|
46
|
+
1: { digest: "sha256:983f22ac6e48618bb3290155e3d7723ae1be7e885f78f9135f3ee0f37e5d0d16" },
|
|
47
47
|
},
|
|
48
48
|
},
|
|
49
49
|
"zo.agent.send": {
|
|
@@ -61,25 +61,25 @@ export const catalog = defineCatalog({
|
|
|
61
61
|
"zo.agent_session.get": {
|
|
62
62
|
defaultVersion: 1,
|
|
63
63
|
versions: {
|
|
64
|
-
1: { digest: "sha256:
|
|
64
|
+
1: { digest: "sha256:c9a0287765cc63f5c2681159cfbf66c1546a423fd3fdb2c21684169de7f29680" },
|
|
65
65
|
},
|
|
66
66
|
},
|
|
67
67
|
"zo.agent_session.history": {
|
|
68
68
|
defaultVersion: 1,
|
|
69
69
|
versions: {
|
|
70
|
-
1: { digest: "sha256:
|
|
70
|
+
1: { digest: "sha256:0ec9eeab9cf92d991c5586cbb00eb01a9c56a9b0f81b1b3b8d372e2e70b9419a" },
|
|
71
71
|
},
|
|
72
72
|
},
|
|
73
73
|
"zo.agent_session.list": {
|
|
74
74
|
defaultVersion: 1,
|
|
75
75
|
versions: {
|
|
76
|
-
1: { digest: "sha256:
|
|
76
|
+
1: { digest: "sha256:77d2dc953e6259fb131c0d2e219299589c4fbfdab41f4db90140108e91e661ca" },
|
|
77
77
|
},
|
|
78
78
|
},
|
|
79
79
|
"zo.agent_session.list_workspace": {
|
|
80
80
|
defaultVersion: 1,
|
|
81
81
|
versions: {
|
|
82
|
-
1: { digest: "sha256:
|
|
82
|
+
1: { digest: "sha256:332ee8b48ca75d74d5e09e4b71c030bca6ad9c3950b1d02ce532dfbb041116db" },
|
|
83
83
|
},
|
|
84
84
|
},
|
|
85
85
|
"zo.billing.list_rates": {
|
|
@@ -127,13 +127,13 @@ export const catalog = defineCatalog({
|
|
|
127
127
|
"zo.connection.get": {
|
|
128
128
|
defaultVersion: 1,
|
|
129
129
|
versions: {
|
|
130
|
-
1: { digest: "sha256:
|
|
130
|
+
1: { digest: "sha256:888acd2e1feba5b19c1905857e5125329737f23ec450b85a4d63e1879b585cf2" },
|
|
131
131
|
},
|
|
132
132
|
},
|
|
133
133
|
"zo.connection.list": {
|
|
134
134
|
defaultVersion: 1,
|
|
135
135
|
versions: {
|
|
136
|
-
1: { digest: "sha256:
|
|
136
|
+
1: { digest: "sha256:980544a4939be631e0b12a1930bd7fa07266ee893055cb2187a97e75e791c6d7" },
|
|
137
137
|
},
|
|
138
138
|
},
|
|
139
139
|
"zo.connection.register_resource": {
|
|
@@ -309,13 +309,13 @@ export const catalog = defineCatalog({
|
|
|
309
309
|
"zo.function.get": {
|
|
310
310
|
defaultVersion: 1,
|
|
311
311
|
versions: {
|
|
312
|
-
1: { digest: "sha256:
|
|
312
|
+
1: { digest: "sha256:a7003bbcae500ade1da64eb0f61f5442119a59ec2ab0c8c402c9627b3d1dfffb" },
|
|
313
313
|
},
|
|
314
314
|
},
|
|
315
315
|
"zo.function.get_run": {
|
|
316
316
|
defaultVersion: 1,
|
|
317
317
|
versions: {
|
|
318
|
-
1: { digest: "sha256:
|
|
318
|
+
1: { digest: "sha256:e2ffa72539a3742262be01ce613f5da85c900f4d2c1a30358fbf3d08b6bc6ba0" },
|
|
319
319
|
},
|
|
320
320
|
},
|
|
321
321
|
"zo.function.invoke": {
|
|
@@ -333,7 +333,7 @@ export const catalog = defineCatalog({
|
|
|
333
333
|
"zo.function.list_runs": {
|
|
334
334
|
defaultVersion: 1,
|
|
335
335
|
versions: {
|
|
336
|
-
1: { digest: "sha256:
|
|
336
|
+
1: { digest: "sha256:4c4ca436fc7e5ef58880efeace4433508105f2f749b9609eb799609ffd648fa2" },
|
|
337
337
|
},
|
|
338
338
|
},
|
|
339
339
|
"zo.function.publish_contract": {
|
|
@@ -471,7 +471,13 @@ export const catalog = defineCatalog({
|
|
|
471
471
|
"zo.message.get": {
|
|
472
472
|
defaultVersion: 1,
|
|
473
473
|
versions: {
|
|
474
|
-
1: { digest: "sha256:
|
|
474
|
+
1: { digest: "sha256:ac04dbbd2642ad79c98bfd056cdef95a2db7538415dba5987ffc4adb2e4868dd" },
|
|
475
|
+
},
|
|
476
|
+
},
|
|
477
|
+
"zo.model.generate_text": {
|
|
478
|
+
defaultVersion: 1,
|
|
479
|
+
versions: {
|
|
480
|
+
1: { digest: "sha256:3b53f6bc7b92dbda22ad01a97d1c69baaf567234ef35d364297f96c979bca184" },
|
|
475
481
|
},
|
|
476
482
|
},
|
|
477
483
|
"zo.model.list": {
|
|
@@ -483,7 +489,7 @@ export const catalog = defineCatalog({
|
|
|
483
489
|
"zo.oauth_app.create": {
|
|
484
490
|
defaultVersion: 1,
|
|
485
491
|
versions: {
|
|
486
|
-
1: { digest: "sha256:
|
|
492
|
+
1: { digest: "sha256:d9216f3b7e1c6aa991dfd4572f88a4eff1f97e0bbd08bcaa9b28827d7536a828" },
|
|
487
493
|
},
|
|
488
494
|
},
|
|
489
495
|
"zo.oauth_app.delete": {
|
|
@@ -507,7 +513,7 @@ export const catalog = defineCatalog({
|
|
|
507
513
|
"zo.oauth_app.update": {
|
|
508
514
|
defaultVersion: 1,
|
|
509
515
|
versions: {
|
|
510
|
-
1: { digest: "sha256:
|
|
516
|
+
1: { digest: "sha256:4b2d3c01b760b5007430f546a25fc645ad587fcc8aac0aacaf61bfcdab6c3d1f" },
|
|
511
517
|
},
|
|
512
518
|
},
|
|
513
519
|
"zo.quota.get": {
|
|
@@ -727,7 +733,7 @@ export const catalog = defineCatalog({
|
|
|
727
733
|
"zo.website.create": {
|
|
728
734
|
defaultVersion: 1,
|
|
729
735
|
versions: {
|
|
730
|
-
1: { digest: "sha256:
|
|
736
|
+
1: { digest: "sha256:1a383ed93cdc7acb59c8937a36be01157a90dba7923afc6ffc8304a5080475f2" },
|
|
731
737
|
},
|
|
732
738
|
},
|
|
733
739
|
"zo.website.delete": {
|
|
@@ -739,19 +745,19 @@ export const catalog = defineCatalog({
|
|
|
739
745
|
"zo.website.get": {
|
|
740
746
|
defaultVersion: 1,
|
|
741
747
|
versions: {
|
|
742
|
-
1: { digest: "sha256:
|
|
748
|
+
1: { digest: "sha256:2ecc0a4426f4cb62d99e7953c7cc2905417f1a97996ed79ad8b2fa5e539aea9c" },
|
|
743
749
|
},
|
|
744
750
|
},
|
|
745
751
|
"zo.website.list": {
|
|
746
752
|
defaultVersion: 1,
|
|
747
753
|
versions: {
|
|
748
|
-
1: { digest: "sha256:
|
|
754
|
+
1: { digest: "sha256:a4c5d48b532bc4a9323278889bc14679b58e50f189225e2b191408b16cf0e5b2" },
|
|
749
755
|
},
|
|
750
756
|
},
|
|
751
757
|
"zo.website.update": {
|
|
752
758
|
defaultVersion: 1,
|
|
753
759
|
versions: {
|
|
754
|
-
1: { digest: "sha256:
|
|
760
|
+
1: { digest: "sha256:954824c368536054d6b91ed7131afba47b09abd1e5f9cacfc7a89479f2f37133" },
|
|
755
761
|
},
|
|
756
762
|
},
|
|
757
763
|
"zo.website_route.create": {
|
|
@@ -829,7 +835,7 @@ export const catalog = defineCatalog({
|
|
|
829
835
|
"zo.workflow.get_run": {
|
|
830
836
|
defaultVersion: 1,
|
|
831
837
|
versions: {
|
|
832
|
-
1: { digest: "sha256:
|
|
838
|
+
1: { digest: "sha256:3064b3976db41d34bcabbdc4d709195eb7cb0fa9e5b3dfd7b55cf682e91720ab" },
|
|
833
839
|
},
|
|
834
840
|
},
|
|
835
841
|
"zo.workflow.invoke": {
|
|
@@ -847,7 +853,7 @@ export const catalog = defineCatalog({
|
|
|
847
853
|
"zo.workflow.list_runs": {
|
|
848
854
|
defaultVersion: 1,
|
|
849
855
|
versions: {
|
|
850
|
-
1: { digest: "sha256:
|
|
856
|
+
1: { digest: "sha256:ac1c9dc13fa389ef7a7458da1b2d7a749e7532264aa9f17c14028806fe7be968" },
|
|
851
857
|
},
|
|
852
858
|
},
|
|
853
859
|
"zo.workflow.publish": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"generatorVersion": "0.1.0",
|
|
3
|
-
"schemaDigest": "sha256:
|
|
4
|
-
"bundleDigest": "sha256:
|
|
3
|
+
"schemaDigest": "sha256:5efcff731683bd222f815032f63155a41134ba7ed47b8b63caa7736a2e5950a3",
|
|
4
|
+
"bundleDigest": "sha256:40f79e00f48091e3d1f779cea67334314930fe718bc9ce549b2385ea29c2a16e",
|
|
5
5
|
"actions": [
|
|
6
6
|
{
|
|
7
7
|
"action": "zo.activity.list",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
{
|
|
37
37
|
"action": "zo.agent.list_messages",
|
|
38
38
|
"version": 1,
|
|
39
|
-
"digest": "sha256:
|
|
39
|
+
"digest": "sha256:983f22ac6e48618bb3290155e3d7723ae1be7e885f78f9135f3ee0f37e5d0d16"
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
"action": "zo.agent.send",
|
|
@@ -51,22 +51,22 @@
|
|
|
51
51
|
{
|
|
52
52
|
"action": "zo.agent_session.get",
|
|
53
53
|
"version": 1,
|
|
54
|
-
"digest": "sha256:
|
|
54
|
+
"digest": "sha256:c9a0287765cc63f5c2681159cfbf66c1546a423fd3fdb2c21684169de7f29680"
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
"action": "zo.agent_session.history",
|
|
58
58
|
"version": 1,
|
|
59
|
-
"digest": "sha256:
|
|
59
|
+
"digest": "sha256:0ec9eeab9cf92d991c5586cbb00eb01a9c56a9b0f81b1b3b8d372e2e70b9419a"
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
"action": "zo.agent_session.list",
|
|
63
63
|
"version": 1,
|
|
64
|
-
"digest": "sha256:
|
|
64
|
+
"digest": "sha256:77d2dc953e6259fb131c0d2e219299589c4fbfdab41f4db90140108e91e661ca"
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
67
|
"action": "zo.agent_session.list_workspace",
|
|
68
68
|
"version": 1,
|
|
69
|
-
"digest": "sha256:
|
|
69
|
+
"digest": "sha256:332ee8b48ca75d74d5e09e4b71c030bca6ad9c3950b1d02ce532dfbb041116db"
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
72
|
"action": "zo.billing.list_rates",
|
|
@@ -106,12 +106,12 @@
|
|
|
106
106
|
{
|
|
107
107
|
"action": "zo.connection.get",
|
|
108
108
|
"version": 1,
|
|
109
|
-
"digest": "sha256:
|
|
109
|
+
"digest": "sha256:888acd2e1feba5b19c1905857e5125329737f23ec450b85a4d63e1879b585cf2"
|
|
110
110
|
},
|
|
111
111
|
{
|
|
112
112
|
"action": "zo.connection.list",
|
|
113
113
|
"version": 1,
|
|
114
|
-
"digest": "sha256:
|
|
114
|
+
"digest": "sha256:980544a4939be631e0b12a1930bd7fa07266ee893055cb2187a97e75e791c6d7"
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
117
|
"action": "zo.connection.register_resource",
|
|
@@ -266,12 +266,12 @@
|
|
|
266
266
|
{
|
|
267
267
|
"action": "zo.function.get",
|
|
268
268
|
"version": 1,
|
|
269
|
-
"digest": "sha256:
|
|
269
|
+
"digest": "sha256:a7003bbcae500ade1da64eb0f61f5442119a59ec2ab0c8c402c9627b3d1dfffb"
|
|
270
270
|
},
|
|
271
271
|
{
|
|
272
272
|
"action": "zo.function.get_run",
|
|
273
273
|
"version": 1,
|
|
274
|
-
"digest": "sha256:
|
|
274
|
+
"digest": "sha256:e2ffa72539a3742262be01ce613f5da85c900f4d2c1a30358fbf3d08b6bc6ba0"
|
|
275
275
|
},
|
|
276
276
|
{
|
|
277
277
|
"action": "zo.function.invoke",
|
|
@@ -286,7 +286,7 @@
|
|
|
286
286
|
{
|
|
287
287
|
"action": "zo.function.list_runs",
|
|
288
288
|
"version": 1,
|
|
289
|
-
"digest": "sha256:
|
|
289
|
+
"digest": "sha256:4c4ca436fc7e5ef58880efeace4433508105f2f749b9609eb799609ffd648fa2"
|
|
290
290
|
},
|
|
291
291
|
{
|
|
292
292
|
"action": "zo.function.publish_contract",
|
|
@@ -401,7 +401,12 @@
|
|
|
401
401
|
{
|
|
402
402
|
"action": "zo.message.get",
|
|
403
403
|
"version": 1,
|
|
404
|
-
"digest": "sha256:
|
|
404
|
+
"digest": "sha256:ac04dbbd2642ad79c98bfd056cdef95a2db7538415dba5987ffc4adb2e4868dd"
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"action": "zo.model.generate_text",
|
|
408
|
+
"version": 1,
|
|
409
|
+
"digest": "sha256:3b53f6bc7b92dbda22ad01a97d1c69baaf567234ef35d364297f96c979bca184"
|
|
405
410
|
},
|
|
406
411
|
{
|
|
407
412
|
"action": "zo.model.list",
|
|
@@ -411,7 +416,7 @@
|
|
|
411
416
|
{
|
|
412
417
|
"action": "zo.oauth_app.create",
|
|
413
418
|
"version": 1,
|
|
414
|
-
"digest": "sha256:
|
|
419
|
+
"digest": "sha256:d9216f3b7e1c6aa991dfd4572f88a4eff1f97e0bbd08bcaa9b28827d7536a828"
|
|
415
420
|
},
|
|
416
421
|
{
|
|
417
422
|
"action": "zo.oauth_app.delete",
|
|
@@ -431,7 +436,7 @@
|
|
|
431
436
|
{
|
|
432
437
|
"action": "zo.oauth_app.update",
|
|
433
438
|
"version": 1,
|
|
434
|
-
"digest": "sha256:
|
|
439
|
+
"digest": "sha256:4b2d3c01b760b5007430f546a25fc645ad587fcc8aac0aacaf61bfcdab6c3d1f"
|
|
435
440
|
},
|
|
436
441
|
{
|
|
437
442
|
"action": "zo.quota.get",
|
|
@@ -631,7 +636,7 @@
|
|
|
631
636
|
{
|
|
632
637
|
"action": "zo.website.create",
|
|
633
638
|
"version": 1,
|
|
634
|
-
"digest": "sha256:
|
|
639
|
+
"digest": "sha256:1a383ed93cdc7acb59c8937a36be01157a90dba7923afc6ffc8304a5080475f2"
|
|
635
640
|
},
|
|
636
641
|
{
|
|
637
642
|
"action": "zo.website.delete",
|
|
@@ -641,17 +646,17 @@
|
|
|
641
646
|
{
|
|
642
647
|
"action": "zo.website.get",
|
|
643
648
|
"version": 1,
|
|
644
|
-
"digest": "sha256:
|
|
649
|
+
"digest": "sha256:2ecc0a4426f4cb62d99e7953c7cc2905417f1a97996ed79ad8b2fa5e539aea9c"
|
|
645
650
|
},
|
|
646
651
|
{
|
|
647
652
|
"action": "zo.website.list",
|
|
648
653
|
"version": 1,
|
|
649
|
-
"digest": "sha256:
|
|
654
|
+
"digest": "sha256:a4c5d48b532bc4a9323278889bc14679b58e50f189225e2b191408b16cf0e5b2"
|
|
650
655
|
},
|
|
651
656
|
{
|
|
652
657
|
"action": "zo.website.update",
|
|
653
658
|
"version": 1,
|
|
654
|
-
"digest": "sha256:
|
|
659
|
+
"digest": "sha256:954824c368536054d6b91ed7131afba47b09abd1e5f9cacfc7a89479f2f37133"
|
|
655
660
|
},
|
|
656
661
|
{
|
|
657
662
|
"action": "zo.website_route.create",
|
|
@@ -716,7 +721,7 @@
|
|
|
716
721
|
{
|
|
717
722
|
"action": "zo.workflow.get_run",
|
|
718
723
|
"version": 1,
|
|
719
|
-
"digest": "sha256:
|
|
724
|
+
"digest": "sha256:3064b3976db41d34bcabbdc4d709195eb7cb0fa9e5b3dfd7b55cf682e91720ab"
|
|
720
725
|
},
|
|
721
726
|
{
|
|
722
727
|
"action": "zo.workflow.invoke",
|
|
@@ -731,7 +736,7 @@
|
|
|
731
736
|
{
|
|
732
737
|
"action": "zo.workflow.list_runs",
|
|
733
738
|
"version": 1,
|
|
734
|
-
"digest": "sha256:
|
|
739
|
+
"digest": "sha256:ac1c9dc13fa389ef7a7458da1b2d7a749e7532264aa9f17c14028806fe7be968"
|
|
735
740
|
},
|
|
736
741
|
{
|
|
737
742
|
"action": "zo.workflow.publish",
|