larkci 0.2.1 → 0.2.3
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 +86 -24
- package/dist/api/client.d.ts +16 -2
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +29 -4
- package/dist/api/client.js.map +1 -1
- package/dist/api/types.d.ts +41 -3
- package/dist/api/types.d.ts.map +1 -1
- package/dist/commands/create-workflow.d.ts +3 -0
- package/dist/commands/create-workflow.d.ts.map +1 -0
- package/dist/commands/create-workflow.js +37 -0
- package/dist/commands/create-workflow.js.map +1 -0
- package/dist/commands/execution.d.ts.map +1 -1
- package/dist/commands/execution.js +48 -0
- package/dist/commands/execution.js.map +1 -1
- package/dist/commands/invoke.d.ts.map +1 -1
- package/dist/commands/invoke.js +13 -2
- package/dist/commands/invoke.js.map +1 -1
- package/dist/commands/list-workflows.d.ts.map +1 -1
- package/dist/commands/list-workflows.js +9 -4
- package/dist/commands/list-workflows.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# LarkCI CLI
|
|
2
2
|
|
|
3
|
-
Command-line interface for invoking and managing LarkCI testing workflows.
|
|
3
|
+
Command-line interface for creating, invoking, and managing [LarkCI](https://getlark.ai) testing workflows.
|
|
4
4
|
|
|
5
5
|
## Quickstart
|
|
6
6
|
|
|
@@ -28,6 +28,8 @@ export LARKCI_API_KEY=your-api-key
|
|
|
28
28
|
|
|
29
29
|
Alternatively, pass it inline with the `--api-key` flag (see [Global Options](#global-options)).
|
|
30
30
|
|
|
31
|
+
The CLI also supports a `.env` file in the current directory.
|
|
32
|
+
|
|
31
33
|
## Usage
|
|
32
34
|
|
|
33
35
|
```bash
|
|
@@ -44,53 +46,110 @@ larkci [options] <command>
|
|
|
44
46
|
|
|
45
47
|
### Commands
|
|
46
48
|
|
|
47
|
-
####
|
|
49
|
+
#### `workflows create` — Create a workflow
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
larkci workflows create --name "login-flow" --description "Test the login process end-to-end"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
| Flag | Required | Description | Default |
|
|
56
|
+
| --------------------------------- | -------- | ----------------------------------------------- | ------------ |
|
|
57
|
+
| `--name <name>` | Yes | Workflow name | |
|
|
58
|
+
| `--description <description>` | Yes | Workflow description | |
|
|
59
|
+
| `--mode <mode>` | No | Execution mode: `ai_driven` or `deterministic` | `ai_driven` |
|
|
60
|
+
| `--secret-contexts <contexts...>` | No | Secret contexts to attach to the workflow | |
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Create a deterministic workflow with secret contexts
|
|
64
|
+
larkci workflows create \
|
|
65
|
+
--name "checkout-flow" \
|
|
66
|
+
--description "Test the full checkout process" \
|
|
67
|
+
--mode deterministic \
|
|
68
|
+
--secret-contexts production staging
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
#### `workflows list` — List workflows
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
larkci workflows list
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
| Flag | Description | Default |
|
|
78
|
+
| ------------------ | ------------------------------- | ------- |
|
|
79
|
+
| `--limit <number>` | Max workflows to return (1–100) | `10` |
|
|
80
|
+
| `--offset <number>`| Number of workflows to skip | `0` |
|
|
81
|
+
|
|
82
|
+
#### `workflows invoke` — Invoke workflows
|
|
48
83
|
|
|
49
84
|
```bash
|
|
50
85
|
# Invoke all workflows and wait (up to 5 minutes) for completion
|
|
51
86
|
larkci workflows invoke --all --wait --timeout 300
|
|
52
87
|
|
|
53
|
-
# Invoke specific workflows and wait
|
|
54
|
-
larkci workflows invoke --workflow-ids wf_abc123 wf_def456
|
|
88
|
+
# Invoke specific workflows and wait
|
|
89
|
+
larkci workflows invoke --workflow-ids wf_abc123 wf_def456 --wait --timeout 300
|
|
55
90
|
```
|
|
56
91
|
|
|
57
|
-
| Flag
|
|
58
|
-
|
|
|
59
|
-
| `--workflow-ids <id...>`
|
|
60
|
-
| `--all`
|
|
61
|
-
| `--wait`
|
|
62
|
-
| `--timeout <seconds>`
|
|
63
|
-
| `--verbose`
|
|
92
|
+
| Flag | Description |
|
|
93
|
+
| ------------------------- | -------------------------------------------------------------------------------- |
|
|
94
|
+
| `--workflow-ids <id...>` | The IDs of the workflows to invoke |
|
|
95
|
+
| `--all` | Invoke all workflows |
|
|
96
|
+
| `--wait` | Wait for the execution to finish (successfully or unsuccessfully) before exiting |
|
|
97
|
+
| `--timeout <seconds>` | Maximum time to wait in seconds (default: 600, requires `--wait`) |
|
|
98
|
+
| `--verbose` | Print verbose output (includes logs) |
|
|
99
|
+
|
|
100
|
+
Either `--workflow-ids` or `--all` is required.
|
|
64
101
|
|
|
65
102
|
Exit codes: `0` = success, `1` = workflow failure, `2` = timeout, `3` = unexpected error.
|
|
66
103
|
|
|
67
|
-
####
|
|
104
|
+
#### `workflows executions list` — List executions
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
larkci workflows executions list <workflow_id>
|
|
108
|
+
```
|
|
68
109
|
|
|
69
|
-
|
|
110
|
+
| Flag | Description | Default |
|
|
111
|
+
| ------------------ | -------------------------------- | ------- |
|
|
112
|
+
| `--limit <number>` | Max executions to return (1–100) | `10` |
|
|
113
|
+
| `--offset <number>`| Number of executions to skip | `0` |
|
|
114
|
+
|
|
115
|
+
#### `workflows executions get` — Get execution details
|
|
70
116
|
|
|
71
117
|
```bash
|
|
72
118
|
larkci workflows executions get <workflow_id> <execution_id>
|
|
73
119
|
```
|
|
74
120
|
|
|
75
|
-
#### Get execution logs
|
|
76
|
-
|
|
77
|
-
Retrieve logs for a specific execution:
|
|
121
|
+
#### `workflows executions logs` — Get execution logs
|
|
78
122
|
|
|
79
123
|
```bash
|
|
80
124
|
larkci workflows executions logs <workflow_id> <execution_id>
|
|
81
125
|
```
|
|
82
126
|
|
|
127
|
+
#### `workflows executions cancel` — Cancel a running execution
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
larkci workflows executions cancel <workflow_id> <execution_id>
|
|
131
|
+
```
|
|
132
|
+
|
|
83
133
|
### Examples
|
|
84
134
|
|
|
85
135
|
```bash
|
|
136
|
+
# Create a workflow
|
|
137
|
+
larkci workflows create --name "signup-flow" --description "Test user signup"
|
|
138
|
+
|
|
139
|
+
# List your workflows
|
|
140
|
+
larkci workflows list --limit 20
|
|
141
|
+
|
|
86
142
|
# Invoke a workflow but don't wait for completion
|
|
87
|
-
larkci workflows invoke wf_abc123
|
|
143
|
+
larkci workflows invoke --workflow-ids wf_abc123
|
|
88
144
|
|
|
89
145
|
# Invoke and wait for completion (10 min default timeout)
|
|
90
|
-
larkci workflows invoke wf_abc123 --wait
|
|
146
|
+
larkci workflows invoke --workflow-ids wf_abc123 --wait
|
|
147
|
+
|
|
148
|
+
# Invoke and wait (up to 5 minutes) with verbose logs
|
|
149
|
+
larkci workflows invoke --workflow-ids wf_abc123 --wait --timeout 300 --verbose
|
|
91
150
|
|
|
92
|
-
#
|
|
93
|
-
larkci workflows
|
|
151
|
+
# List recent executions for a workflow
|
|
152
|
+
larkci workflows executions list wf_abc123
|
|
94
153
|
|
|
95
154
|
# Check execution status
|
|
96
155
|
larkci workflows executions get wf_abc123 exec_xyz789
|
|
@@ -98,17 +157,20 @@ larkci workflows executions get wf_abc123 exec_xyz789
|
|
|
98
157
|
# Fetch execution logs
|
|
99
158
|
larkci workflows executions logs wf_abc123 exec_xyz789
|
|
100
159
|
|
|
160
|
+
# Cancel a running execution
|
|
161
|
+
larkci workflows executions cancel wf_abc123 exec_xyz789
|
|
162
|
+
|
|
101
163
|
# Override API key inline
|
|
102
|
-
larkci --api-key sk-test-key workflows invoke wf_abc123
|
|
164
|
+
larkci --api-key sk-test-key workflows invoke --workflow-ids wf_abc123
|
|
103
165
|
```
|
|
104
166
|
|
|
105
167
|
## CI Pipeline Usage
|
|
106
168
|
|
|
107
|
-
The `--wait` flag makes it easy to use in CI pipelines. The command will block until the workflow completes and exit with a non-zero code on failure
|
|
169
|
+
The `--wait` flag makes it easy to use in CI pipelines. The command will block until the workflow completes and exit with a non-zero code on failure.
|
|
108
170
|
|
|
109
171
|
### GitHub Actions Example
|
|
110
172
|
|
|
111
|
-
|
|
173
|
+
Set the `LARKCI_API_KEY` environment variable in GitHub Actions secrets.
|
|
112
174
|
|
|
113
175
|
```yaml
|
|
114
176
|
- name: Run LarkCI Tests
|
|
@@ -119,7 +181,7 @@ Be sure to set the `LARKCI_API_KEY` environment variable in GitHub Actions secre
|
|
|
119
181
|
|
|
120
182
|
### CircleCI Example
|
|
121
183
|
|
|
122
|
-
|
|
184
|
+
Set the `LARKCI_API_KEY` environment variable in CircleCI.
|
|
123
185
|
|
|
124
186
|
```yaml
|
|
125
187
|
larkci_tests:
|
package/dist/api/client.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Config } from "../config.js";
|
|
2
|
-
import type { WorkflowExecutionResource, WorkflowResource } from "./types.js";
|
|
2
|
+
import type { ListWorkflowExecutionsResponse, ListWorkflowsResponse, WorkflowExecutionResource, WorkflowResource } from "./types.js";
|
|
3
3
|
export declare class TimeoutError extends Error {
|
|
4
4
|
constructor(message: string);
|
|
5
5
|
}
|
|
@@ -13,10 +13,24 @@ export declare class LarkCIClient {
|
|
|
13
13
|
private apiKey;
|
|
14
14
|
constructor(config: Config);
|
|
15
15
|
private request;
|
|
16
|
+
createWorkflow(options: {
|
|
17
|
+
name: string;
|
|
18
|
+
description: string;
|
|
19
|
+
secret_contexts?: string[];
|
|
20
|
+
mode?: "ai_driven" | "deterministic";
|
|
21
|
+
}): Promise<WorkflowResource>;
|
|
16
22
|
invokeWorkflow(workflowId: string): Promise<WorkflowExecutionResource>;
|
|
17
|
-
listWorkflows(
|
|
23
|
+
listWorkflows(options?: {
|
|
24
|
+
limit?: number;
|
|
25
|
+
offset?: number;
|
|
26
|
+
}): Promise<ListWorkflowsResponse>;
|
|
27
|
+
listWorkflowExecutions(workflowId: string, options?: {
|
|
28
|
+
limit?: number;
|
|
29
|
+
offset?: number;
|
|
30
|
+
}): Promise<ListWorkflowExecutionsResponse>;
|
|
18
31
|
getWorkflowExecution(workflowId: string, executionId: string): Promise<WorkflowExecutionResource>;
|
|
19
32
|
getWorkflowExecutionLogs(workflowId: string, executionId: string): Promise<string[]>;
|
|
33
|
+
cancelWorkflowExecution(workflowId: string, executionId: string): Promise<WorkflowExecutionResource>;
|
|
20
34
|
pollWorkflowExecution(workflowId: string, executionId: string, options: PollOptions): Promise<WorkflowExecutionResource>;
|
|
21
35
|
}
|
|
22
36
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EACV,8BAA8B,EAC9B,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,CACP,SAAS,EAAE,yBAAyB,EACpC,SAAS,EAAE,MAAM,KACd,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;YAKZ,OAAO;IAyCf,cAAc,CAAC,OAAO,EAAE;QAC5B,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,EAAE,WAAW,GAAG,eAAe,CAAC;KACtC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIvB,cAAc,CAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,yBAAyB,CAAC;IAQ/B,aAAa,CAAC,OAAO,CAAC,EAAE;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAW5B,sBAAsB,CAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,8BAA8B,CAAC;IAapC,oBAAoB,CACxB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,yBAAyB,CAAC;IAO/B,wBAAwB,CAC5B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,EAAE,CAAC;IAOd,uBAAuB,CAC3B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,yBAAyB,CAAC;IAO/B,qBAAqB,CACzB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,yBAAyB,CAAC;CA+BtC"}
|
package/dist/api/client.js
CHANGED
|
@@ -42,12 +42,33 @@ export class LarkCIClient {
|
|
|
42
42
|
}
|
|
43
43
|
return (await response.json());
|
|
44
44
|
}
|
|
45
|
+
async createWorkflow(options) {
|
|
46
|
+
return this.request("POST", "/workflows", options);
|
|
47
|
+
}
|
|
45
48
|
async invokeWorkflow(workflowId) {
|
|
46
49
|
return this.request("POST", `/workflows/${workflowId}/invoke`, {});
|
|
47
50
|
}
|
|
48
|
-
async listWorkflows() {
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
+
async listWorkflows(options) {
|
|
52
|
+
const params = new URLSearchParams();
|
|
53
|
+
if (options?.limit !== undefined)
|
|
54
|
+
params.set("limit", String(options.limit));
|
|
55
|
+
if (options?.offset !== undefined)
|
|
56
|
+
params.set("offset", String(options.offset));
|
|
57
|
+
const query = params.toString();
|
|
58
|
+
const path = query ? `/workflows?${query}` : "/workflows";
|
|
59
|
+
return this.request("GET", path);
|
|
60
|
+
}
|
|
61
|
+
async listWorkflowExecutions(workflowId, options) {
|
|
62
|
+
const params = new URLSearchParams();
|
|
63
|
+
if (options?.limit !== undefined)
|
|
64
|
+
params.set("limit", String(options.limit));
|
|
65
|
+
if (options?.offset !== undefined)
|
|
66
|
+
params.set("offset", String(options.offset));
|
|
67
|
+
const query = params.toString();
|
|
68
|
+
const path = query
|
|
69
|
+
? `/workflows/${workflowId}/executions?${query}`
|
|
70
|
+
: `/workflows/${workflowId}/executions`;
|
|
71
|
+
return this.request("GET", path);
|
|
51
72
|
}
|
|
52
73
|
async getWorkflowExecution(workflowId, executionId) {
|
|
53
74
|
return this.request("GET", `/workflows/${workflowId}/executions/${executionId}`);
|
|
@@ -55,15 +76,19 @@ export class LarkCIClient {
|
|
|
55
76
|
async getWorkflowExecutionLogs(workflowId, executionId) {
|
|
56
77
|
return this.request("GET", `/workflows/${workflowId}/executions/${executionId}/logs`);
|
|
57
78
|
}
|
|
79
|
+
async cancelWorkflowExecution(workflowId, executionId) {
|
|
80
|
+
return this.request("POST", `/workflows/${workflowId}/executions/${executionId}/cancel`);
|
|
81
|
+
}
|
|
58
82
|
async pollWorkflowExecution(workflowId, executionId, options) {
|
|
59
83
|
const { timeoutMs, pollIntervalMs, onPoll } = options;
|
|
60
84
|
const startTime = Date.now();
|
|
61
85
|
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
86
|
+
const terminalStatuses = new Set(["success", "failure", "cancelled"]);
|
|
62
87
|
while (true) {
|
|
63
88
|
const execution = await this.getWorkflowExecution(workflowId, executionId);
|
|
64
89
|
const elapsedMs = Date.now() - startTime;
|
|
65
90
|
await onPoll?.(execution, elapsedMs);
|
|
66
|
-
if (
|
|
91
|
+
if (terminalStatuses.has(execution.status)) {
|
|
67
92
|
return execution;
|
|
68
93
|
}
|
|
69
94
|
if (elapsedMs >= timeoutMs) {
|
package/dist/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAWD,MAAM,OAAO,YAAY;IACf,OAAO,CAAS;IAChB,MAAM,CAAS;IAEvB,YAAY,MAAc;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,IAAY,EACZ,IAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QAErC,MAAM,OAAO,GAA2B;YACtC,WAAW,EAAE,IAAI,CAAC,MAAM;SACzB,CAAC;QACF,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAE9C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;YAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/D,MAAM,IAAI,KAAK,CACb,wBAAwB,IAAI,CAAC,OAAO,KAAK,KAAK,2DAA2D,CAC1G,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,OAAO,GAAG,QAAQ,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC/D,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA4B,CAAC;gBAChE,OAAO,GAAG,GAAG,OAAO,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,CAAC;YAAC,MAAM,CAAC;gBACP,sDAAsD;YACxD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAKpB;QACC,OAAO,IAAI,CAAC,OAAO,CAAmB,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,UAAkB;QAElB,OAAO,IAAI,CAAC,OAAO,CACjB,MAAM,EACN,cAAc,UAAU,SAAS,EACjC,EAAE,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAGnB;QACC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS;YAC9B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS;YAC/B,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAwB,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,UAAkB,EAClB,OAA6C;QAE7C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS;YAC9B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS;YAC/B,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,KAAK;YAChB,CAAC,CAAC,cAAc,UAAU,eAAe,KAAK,EAAE;YAChD,CAAC,CAAC,cAAc,UAAU,aAAa,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAiC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,UAAkB,EAClB,WAAmB;QAEnB,OAAO,IAAI,CAAC,OAAO,CACjB,KAAK,EACL,cAAc,UAAU,eAAe,WAAW,EAAE,CACrD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,UAAkB,EAClB,WAAmB;QAEnB,OAAO,IAAI,CAAC,OAAO,CACjB,KAAK,EACL,cAAc,UAAU,eAAe,WAAW,OAAO,CAC1D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC3B,UAAkB,EAClB,WAAmB;QAEnB,OAAO,IAAI,CAAC,OAAO,CACjB,MAAM,EACN,cAAc,UAAU,eAAe,WAAW,SAAS,CAC5D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,UAAkB,EAClB,WAAmB,EACnB,OAAoB;QAEpB,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAC3B,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAE1D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;QAEtE,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAC/C,UAAU,EACV,WAAW,CACZ,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAEzC,MAAM,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAErC,IAAI,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3C,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,YAAY,CACpB,mBAAmB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,2BAA2B,WAAW,8BAA8B,SAAS,CAAC,MAAM,GAAG,CACvI,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF"}
|
package/dist/api/types.d.ts
CHANGED
|
@@ -1,17 +1,38 @@
|
|
|
1
|
+
export interface DeterministicWorkflowDetailsResource {
|
|
2
|
+
executable_test_artifact: string | null;
|
|
3
|
+
executable_test_artifact_download_url: string | null;
|
|
4
|
+
}
|
|
1
5
|
export interface WorkflowResource {
|
|
2
6
|
id: string;
|
|
3
7
|
name: string;
|
|
8
|
+
status: "active" | "generating" | "generation_successful" | "generation_failed" | "archived";
|
|
4
9
|
description: string;
|
|
5
|
-
|
|
10
|
+
secret_contexts: string[] | null;
|
|
11
|
+
mode: "ai_driven" | "deterministic";
|
|
12
|
+
deterministic_details: DeterministicWorkflowDetailsResource | null;
|
|
13
|
+
last_execution_id: string | null;
|
|
14
|
+
last_execution_started_at: string | null;
|
|
15
|
+
last_execution_stopped_at: string | null;
|
|
16
|
+
last_execution_result_type: "success" | "failure" | null;
|
|
17
|
+
archived_at: string | null;
|
|
6
18
|
created_at: string;
|
|
7
19
|
updated_at: string;
|
|
8
20
|
}
|
|
21
|
+
export interface ListWorkflowsResponse {
|
|
22
|
+
workflows: WorkflowResource[];
|
|
23
|
+
has_more: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface FrictionPointInterface {
|
|
26
|
+
friction_point: string;
|
|
27
|
+
friction_score: number;
|
|
28
|
+
}
|
|
9
29
|
export interface WorkflowExecutionStepResource {
|
|
10
30
|
step: string;
|
|
11
31
|
result: boolean;
|
|
32
|
+
friction_points: FrictionPointInterface[] | null;
|
|
12
33
|
}
|
|
13
34
|
export interface WorkflowExecutionArtifactResource {
|
|
14
|
-
artifact_type: "screenshot" | "video";
|
|
35
|
+
artifact_type: "screenshot" | "video" | "javascript" | "python" | "shellscript";
|
|
15
36
|
filename: string;
|
|
16
37
|
presigned_url: string;
|
|
17
38
|
presigned_url_expires_at: string;
|
|
@@ -21,7 +42,8 @@ export interface WorkflowExecutionArtifactResource {
|
|
|
21
42
|
export interface WorkflowExecutionResource {
|
|
22
43
|
id: string;
|
|
23
44
|
workflow_id: string;
|
|
24
|
-
status: "pending" | "running" | "success" | "failure";
|
|
45
|
+
status: "pending" | "running" | "success" | "failure" | "cancelled";
|
|
46
|
+
type: string | null;
|
|
25
47
|
artifacts: WorkflowExecutionArtifactResource[];
|
|
26
48
|
steps: WorkflowExecutionStepResource[] | null;
|
|
27
49
|
summary: string | null;
|
|
@@ -30,6 +52,22 @@ export interface WorkflowExecutionResource {
|
|
|
30
52
|
created_at: string;
|
|
31
53
|
updated_at: string;
|
|
32
54
|
}
|
|
55
|
+
export interface ListedWorkflowExecutionResource {
|
|
56
|
+
id: string;
|
|
57
|
+
workflow_id: string;
|
|
58
|
+
status: "pending" | "running" | "success" | "failure" | "cancelled";
|
|
59
|
+
type: string | null;
|
|
60
|
+
steps: WorkflowExecutionStepResource[] | null;
|
|
61
|
+
summary: string | null;
|
|
62
|
+
started_at: string | null;
|
|
63
|
+
stopped_at: string | null;
|
|
64
|
+
created_at: string;
|
|
65
|
+
updated_at: string;
|
|
66
|
+
}
|
|
67
|
+
export interface ListWorkflowExecutionsResponse {
|
|
68
|
+
workflow_executions: ListedWorkflowExecutionResource[];
|
|
69
|
+
has_more: boolean;
|
|
70
|
+
}
|
|
33
71
|
export interface ApiErrorResponse {
|
|
34
72
|
detail: string;
|
|
35
73
|
}
|
package/dist/api/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-workflow.d.ts","sourceRoot":"","sources":["../../src/commands/create-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAIjD,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,OAAO,GACf,IAAI,CA6CN"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Option } from "commander";
|
|
2
|
+
import { LarkCIClient } from "../api/client.js";
|
|
3
|
+
import { getConfig } from "../config.js";
|
|
4
|
+
export function registerCreateWorkflowCommand(workflows, program) {
|
|
5
|
+
workflows
|
|
6
|
+
.command("create")
|
|
7
|
+
.description("Create a new workflow")
|
|
8
|
+
.requiredOption("--name <name>", "Name of the workflow")
|
|
9
|
+
.requiredOption("--description <description>", "Description of the workflow")
|
|
10
|
+
.addOption(new Option("--mode <mode>", "Execution mode")
|
|
11
|
+
.choices(["ai_driven", "deterministic"])
|
|
12
|
+
.default("ai_driven"))
|
|
13
|
+
.option("--secret-contexts <contexts...>", "Secret contexts to attach to the workflow")
|
|
14
|
+
.action(async (cmdOpts) => {
|
|
15
|
+
const opts = program.opts();
|
|
16
|
+
const config = getConfig({
|
|
17
|
+
apiKey: opts.apiKey,
|
|
18
|
+
apiUrl: opts.apiUrl,
|
|
19
|
+
});
|
|
20
|
+
const client = new LarkCIClient(config);
|
|
21
|
+
try {
|
|
22
|
+
const workflow = await client.createWorkflow({
|
|
23
|
+
name: cmdOpts.name,
|
|
24
|
+
description: cmdOpts.description,
|
|
25
|
+
mode: cmdOpts.mode,
|
|
26
|
+
secret_contexts: cmdOpts.secretContexts,
|
|
27
|
+
});
|
|
28
|
+
console.log(JSON.stringify(workflow, null, 2));
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
32
|
+
console.error(`Error: ${message}`);
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=create-workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-workflow.js","sourceRoot":"","sources":["../../src/commands/create-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,6BAA6B,CAC3C,SAAkB,EAClB,OAAgB;IAEhB,SAAS;SACN,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uBAAuB,CAAC;SACpC,cAAc,CAAC,eAAe,EAAE,sBAAsB,CAAC;SACvD,cAAc,CAAC,6BAA6B,EAAE,6BAA6B,CAAC;SAC5E,SAAS,CACR,IAAI,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;SAC1C,OAAO,CAAC,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SACvC,OAAO,CAAC,WAAW,CAAC,CACxB;SACA,MAAM,CACL,iCAAiC,EACjC,2CAA2C,CAC5C;SACA,MAAM,CACL,KAAK,EAAE,OAKN,EAAE,EAAE;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC;gBAC3C,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,eAAe,EAAE,OAAO,CAAC,cAAc;aACxC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CACF,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/commands/execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,OAAO,GACf,IAAI,
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/commands/execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,OAAO,GACf,IAAI,CAmHN"}
|
|
@@ -4,6 +4,32 @@ export function registerExecutionCommand(workflows, program) {
|
|
|
4
4
|
const executions = workflows
|
|
5
5
|
.command("executions")
|
|
6
6
|
.description("Manage workflow executions");
|
|
7
|
+
executions
|
|
8
|
+
.command("list")
|
|
9
|
+
.description("List executions for a workflow")
|
|
10
|
+
.argument("<workflow_id>", "The ID of the workflow")
|
|
11
|
+
.option("--limit <number>", "Max number of executions to return (1-100)", "10")
|
|
12
|
+
.option("--offset <number>", "Number of executions to skip", "0")
|
|
13
|
+
.action(async (workflowId, cmdOpts) => {
|
|
14
|
+
const opts = program.opts();
|
|
15
|
+
const config = getConfig({
|
|
16
|
+
apiKey: opts.apiKey,
|
|
17
|
+
apiUrl: opts.apiUrl,
|
|
18
|
+
});
|
|
19
|
+
const client = new LarkCIClient(config);
|
|
20
|
+
try {
|
|
21
|
+
const result = await client.listWorkflowExecutions(workflowId, {
|
|
22
|
+
limit: parseInt(cmdOpts.limit, 10),
|
|
23
|
+
offset: parseInt(cmdOpts.offset, 10),
|
|
24
|
+
});
|
|
25
|
+
console.log(JSON.stringify(result, null, 2));
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
29
|
+
console.error(`Error: ${message}`);
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
7
33
|
executions
|
|
8
34
|
.command("get")
|
|
9
35
|
.description("Get details of a specific workflow execution")
|
|
@@ -50,5 +76,27 @@ export function registerExecutionCommand(workflows, program) {
|
|
|
50
76
|
process.exit(1);
|
|
51
77
|
}
|
|
52
78
|
});
|
|
79
|
+
executions
|
|
80
|
+
.command("cancel")
|
|
81
|
+
.description("Cancel a running workflow execution")
|
|
82
|
+
.argument("<workflow_id>", "The ID of the workflow")
|
|
83
|
+
.argument("<execution_id>", "The ID of the execution")
|
|
84
|
+
.action(async (workflowId, executionId) => {
|
|
85
|
+
const opts = program.opts();
|
|
86
|
+
const config = getConfig({
|
|
87
|
+
apiKey: opts.apiKey,
|
|
88
|
+
apiUrl: opts.apiUrl,
|
|
89
|
+
});
|
|
90
|
+
const client = new LarkCIClient(config);
|
|
91
|
+
try {
|
|
92
|
+
const result = await client.cancelWorkflowExecution(workflowId, executionId);
|
|
93
|
+
console.log(JSON.stringify(result, null, 2));
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
97
|
+
console.error(`Error: ${message}`);
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
53
101
|
}
|
|
54
102
|
//# sourceMappingURL=execution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/commands/execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,wBAAwB,CACtC,SAAkB,EAClB,OAAgB;IAEhB,MAAM,UAAU,GAAG,SAAS;SACzB,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,4BAA4B,CAAC,CAAC;IAE7C,UAAU;SACP,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,8CAA8C,CAAC;SAC3D,QAAQ,CAAC,eAAe,EAAE,wBAAwB,CAAC;SACnD,QAAQ,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,WAAmB,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAC9C,UAAU,EACV,WAAW,CACZ,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,UAAU;SACP,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4CAA4C,CAAC;SACzD,QAAQ,CAAC,eAAe,EAAE,wBAAwB,CAAC;SACnD,QAAQ,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,WAAmB,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAChD,UAAU,EACV,WAAW,CACZ,CAAC;YACF,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/commands/execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,wBAAwB,CACtC,SAAkB,EAClB,OAAgB;IAEhB,MAAM,UAAU,GAAG,SAAS;SACzB,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,4BAA4B,CAAC,CAAC;IAE7C,UAAU;SACP,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,gCAAgC,CAAC;SAC7C,QAAQ,CAAC,eAAe,EAAE,wBAAwB,CAAC;SACnD,MAAM,CAAC,kBAAkB,EAAE,4CAA4C,EAAE,IAAI,CAAC;SAC9E,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,EAAE,GAAG,CAAC;SAChE,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,OAA0C,EAAE,EAAE;QAC/E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE;gBAC7D,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBAClC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;aACrC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,UAAU;SACP,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,8CAA8C,CAAC;SAC3D,QAAQ,CAAC,eAAe,EAAE,wBAAwB,CAAC;SACnD,QAAQ,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,WAAmB,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAC9C,UAAU,EACV,WAAW,CACZ,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,UAAU;SACP,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4CAA4C,CAAC;SACzD,QAAQ,CAAC,eAAe,EAAE,wBAAwB,CAAC;SACnD,QAAQ,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,WAAmB,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAChD,UAAU,EACV,WAAW,CACZ,CAAC;YACF,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,UAAU;SACP,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,qCAAqC,CAAC;SAClD,QAAQ,CAAC,eAAe,EAAE,wBAAwB,CAAC;SACnD,QAAQ,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,WAAmB,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,uBAAuB,CACjD,UAAU,EACV,WAAW,CACZ,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../src/commands/invoke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AA4EjD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,OAAO,GACf,IAAI,
|
|
1
|
+
{"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../src/commands/invoke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AA4EjD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,OAAO,GACf,IAAI,CAgKN"}
|
package/dist/commands/invoke.js
CHANGED
|
@@ -66,8 +66,8 @@ export function registerInvokeCommand(workflows, program) {
|
|
|
66
66
|
const verbose = cmdOpts.verbose ?? false;
|
|
67
67
|
let workflowIds = [];
|
|
68
68
|
if (cmdOpts.all) {
|
|
69
|
-
const
|
|
70
|
-
workflowIds = workflows.map((workflow) => workflow.id);
|
|
69
|
+
const response = await client.listWorkflows();
|
|
70
|
+
workflowIds = response.workflows.map((workflow) => workflow.id);
|
|
71
71
|
}
|
|
72
72
|
else if (cmdOpts.workflowIds) {
|
|
73
73
|
workflowIds = cmdOpts.workflowIds;
|
|
@@ -109,6 +109,7 @@ export function registerInvokeCommand(workflows, program) {
|
|
|
109
109
|
workflowExecutionResults = await Promise.allSettled(workflowExecutionPromises);
|
|
110
110
|
}
|
|
111
111
|
const failedWorkflowIds = [];
|
|
112
|
+
const cancelledWorkflowIds = [];
|
|
112
113
|
for (const result of workflowExecutionResults) {
|
|
113
114
|
if (result.status === "fulfilled") {
|
|
114
115
|
if (result.value.status === "success") {
|
|
@@ -118,15 +119,25 @@ export function registerInvokeCommand(workflows, program) {
|
|
|
118
119
|
console.error(`Workflow ${result.value.workflow_id} executed with failure. Execution ID: ${result.value.id}. Summary: ${result.value.summary}`);
|
|
119
120
|
failedWorkflowIds.push(result.value.workflow_id);
|
|
120
121
|
}
|
|
122
|
+
else if (result.value.status === "cancelled") {
|
|
123
|
+
console.error(`Workflow ${result.value.workflow_id} was cancelled. Execution ID: ${result.value.id}`);
|
|
124
|
+
cancelledWorkflowIds.push(result.value.workflow_id);
|
|
125
|
+
}
|
|
121
126
|
}
|
|
122
127
|
else {
|
|
123
128
|
console.error(`Error: ${result.reason}`);
|
|
124
129
|
}
|
|
125
130
|
}
|
|
131
|
+
if (cancelledWorkflowIds.length > 0) {
|
|
132
|
+
console.error(`Workflows cancelled: ${cancelledWorkflowIds.join(", ")}`);
|
|
133
|
+
}
|
|
126
134
|
if (failedWorkflowIds.length > 0) {
|
|
127
135
|
console.error(`Workflows finished with status "failure": ${failedWorkflowIds.join(", ")}`);
|
|
128
136
|
process.exit(1);
|
|
129
137
|
}
|
|
138
|
+
if (cancelledWorkflowIds.length > 0) {
|
|
139
|
+
process.exit(1);
|
|
140
|
+
}
|
|
130
141
|
process.exit(0);
|
|
131
142
|
}
|
|
132
143
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../src/commands/invoke.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../src/commands/invoke.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-workflows.d.ts","sourceRoot":"","sources":["../../src/commands/list-workflows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,OAAO,GACf,IAAI,
|
|
1
|
+
{"version":3,"file":"list-workflows.d.ts","sourceRoot":"","sources":["../../src/commands/list-workflows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,OAAO,GACf,IAAI,CAmCN"}
|
|
@@ -4,7 +4,9 @@ export function registerListWorkflowsCommand(workflows, program) {
|
|
|
4
4
|
workflows
|
|
5
5
|
.command("list")
|
|
6
6
|
.description("List non-archived workflows")
|
|
7
|
-
.
|
|
7
|
+
.option("--limit <number>", "Max number of workflows to return (1-100)", "10")
|
|
8
|
+
.option("--offset <number>", "Number of workflows to skip", "0")
|
|
9
|
+
.action(async (cmdOpts) => {
|
|
8
10
|
const opts = program.opts();
|
|
9
11
|
const config = getConfig({
|
|
10
12
|
apiKey: opts.apiKey,
|
|
@@ -12,9 +14,12 @@ export function registerListWorkflowsCommand(workflows, program) {
|
|
|
12
14
|
});
|
|
13
15
|
const client = new LarkCIClient(config);
|
|
14
16
|
try {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
const response = await client.listWorkflows({
|
|
18
|
+
limit: parseInt(cmdOpts.limit, 10),
|
|
19
|
+
offset: parseInt(cmdOpts.offset, 10),
|
|
20
|
+
});
|
|
21
|
+
const activeWorkflows = response.workflows.filter((workflow) => !workflow.archived_at);
|
|
22
|
+
console.log(JSON.stringify({ workflows: activeWorkflows, has_more: response.has_more }, null, 2));
|
|
18
23
|
}
|
|
19
24
|
catch (error) {
|
|
20
25
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-workflows.js","sourceRoot":"","sources":["../../src/commands/list-workflows.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,4BAA4B,CAC1C,SAAkB,EAClB,OAAgB;IAEhB,SAAS;SACN,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"list-workflows.js","sourceRoot":"","sources":["../../src/commands/list-workflows.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,4BAA4B,CAC1C,SAAkB,EAClB,OAAgB;IAEhB,SAAS;SACN,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,kBAAkB,EAAE,2CAA2C,EAAE,IAAI,CAAC;SAC7E,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,EAAE,GAAG,CAAC;SAC/D,MAAM,CAAC,KAAK,EAAE,OAA0C,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;gBAC1C,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBAClC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;aACrC,CAAC,CAAC;YACH,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAC/C,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CACpC,CAAC;YACF,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAC3D,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import { Command, Option } from "commander";
|
|
|
3
3
|
import { registerInvokeCommand } from "./commands/invoke.js";
|
|
4
4
|
import { registerExecutionCommand } from "./commands/execution.js";
|
|
5
5
|
import { registerListWorkflowsCommand } from "./commands/list-workflows.js";
|
|
6
|
+
import { registerCreateWorkflowCommand } from "./commands/create-workflow.js";
|
|
6
7
|
const program = new Command();
|
|
7
8
|
program
|
|
8
9
|
.name("larkci")
|
|
@@ -12,6 +13,7 @@ program
|
|
|
12
13
|
.addOption(new Option("--api-url <url>", "API base URL (overrides LARKCI_API_URL env var)").hideHelp());
|
|
13
14
|
const workflows = program.command("workflows").description("Manage workflows");
|
|
14
15
|
registerListWorkflowsCommand(workflows, program);
|
|
16
|
+
registerCreateWorkflowCommand(workflows, program);
|
|
15
17
|
registerInvokeCommand(workflows, program);
|
|
16
18
|
registerExecutionCommand(workflows, program);
|
|
17
19
|
program.parse();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAE9E,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CACV,kEAAkE,CACnE;KACA,OAAO,CAAC,OAAO,CAAC;KAChB,SAAS,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;KACzE,SAAS,CACR,IAAI,MAAM,CACR,iBAAiB,EACjB,iDAAiD,CAClD,CAAC,QAAQ,EAAE,CACb,CAAC;AAEJ,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AAE/E,4BAA4B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjD,6BAA6B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAClD,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC1C,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAE7C,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "larkci",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "LarkCI CLI - Invoke testing workflows and manage test executions",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "",
|
|
@@ -39,4 +39,4 @@
|
|
|
39
39
|
"tsx": "^4.19.0",
|
|
40
40
|
"typescript": "^5.7.0"
|
|
41
41
|
}
|
|
42
|
-
}
|
|
42
|
+
}
|