@spicyapi/cli 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,24 +1,116 @@
1
1
  # @spicyapi/cli
2
2
 
3
- Official standalone command-line client for SpicyAPI. The package exposes the `spicyapi` binary and
4
- depends on `@spicyapi/sdk`; it does not include the MCP server or Agent Skill.
3
+ The official command-line client for [SpicyAPI](https://spicyapi.ai). Use it to explore the model
4
+ catalog, check an exact schema, create a task and follow it to completion all before you write a
5
+ single line of integration code.
6
+
7
+ This package installs the `spicyapi` binary and depends on `@spicyapi/sdk`. It does **not** contain
8
+ the MCP server or the Agent Skill.
9
+
10
+ ## Get a key, then run it
11
+
12
+ 1. Create an account at [spicyapi.ai/register](https://spicyapi.ai/register) — accounts are opened
13
+ in batches, so you may join the waitlist first.
14
+ 2. Create a key on the [API keys page](https://spicyapi.ai/console/keys). It starts with `sk-spicy-`
15
+ and is shown once.
16
+ 3. Export it and check the connection:
5
17
 
6
18
  ```bash
7
- npx --yes --package=@spicyapi/cli spicyapi --help
8
- npx --yes --package=@spicyapi/cli spicyapi status
9
- npx --yes --package=@spicyapi/cli spicyapi --json models list --include-schema
19
+ export SPICY_API_KEY="sk-spicy-..." # paste your own key
20
+ npx @spicyapi/cli status
10
21
  ```
11
22
 
12
- Set `SPICY_API_KEY` with your process secret manager. Billable commands require interactive
13
- confirmation or an explicit `--yes`, and support stable idempotency keys.
23
+ Running it often? Install it once and drop the `npx`:
24
+
25
+ ```bash
26
+ npm install -g @spicyapi/cli
27
+ spicyapi status
28
+ ```
29
+
30
+ There is no `login` command and no config file: the CLI reads `SPICY_API_KEY` from the process
31
+ environment only. It is never accepted as a command argument, so it cannot leak into your shell
32
+ history or a process listing.
33
+
34
+ Requires Node.js 22.13 or later. Add `--json` to any command for machine-readable output.
35
+
36
+ ## Your first task, end to end
37
+
38
+ ```bash
39
+ # 1. Find a model you can call, and copy one `model` value from the output
40
+ spicyapi models list --modality image
41
+
42
+ # 2. Read that model's exact input schema — never guess the fields
43
+ spicyapi models get bytedance/seedream-5.0-pro/text-to-image
44
+
45
+ # 3. Create it and wait for the result
46
+ spicyapi tasks create \
47
+ --model bytedance/seedream-5.0-pro/text-to-image \
48
+ --input-json '{"prompt":"A cinematic night portrait"}' \
49
+ --wait
50
+ ```
51
+
52
+ Use an id from step 1; the live catalog decides what your account can call today. Ids read
53
+ `<maker>/<model>/<task>`, for example `krea/2-turbo/edit` or `alibaba/wan-3.0/image-to-video`.
54
+
55
+ Step 3 prints the estimated charge, the maximum charge and the idempotency key, then asks for
56
+ confirmation before spending anything. Pass `--yes` to confirm non-interactively in a script. The
57
+ result URL it prints stays valid for about 20 minutes; `tasks get` returns a fresh one.
58
+
59
+ ## Command reference
14
60
 
15
- Documentation: <https://spicyapi.ai/en/docs>
61
+ ### Catalog and account
16
62
 
17
- CLI and MCP currently submit and track native tasks; they do not expose live chat token streaming.
18
- Use the official OpenAI client with SpicyAPI’s compatible endpoints for a token-by-token interface,
19
- or native `jobs/stream` when you need quote confirmation and the platform event envelope.
63
+ | Command | What it does |
64
+ | --------------------- | -------------------------------------------------- |
65
+ | `status` | Check public health and readiness endpoints |
66
+ | `models list` | List enabled models and your account's prices |
67
+ | `models get <model>` | One model and its current input schema |
68
+ | `balance` | Available, held and total USD balance |
69
+ | `usage` | Settled USD usage for the current API key only |
70
+ | `docs search [query]` | Search the bundled first-party documentation index |
20
71
 
21
- [Chat streaming guide](https://spicyapi.ai/en/docs/quotes-and-compatibility)
72
+ `models list` accepts `--modality`, `--provider`, `--task`, `--search`, `--include-schema` and
73
+ `--include-examples`.
74
+
75
+ ### Tasks
76
+
77
+ | Command | What it does | Billable |
78
+ | ----------------------- | ------------------------------------------------- | -------- |
79
+ | `tasks quote` | Price the exact request without creating anything | no |
80
+ | `tasks create` | Create an asynchronous generation task | **yes** |
81
+ | `tasks retry <task-id>` | Create a new task from a failed or expired one | **yes** |
82
+ | `tasks get <task-id>` | Read one task | no |
83
+ | `tasks wait <task-id>` | Poll until a terminal state | no |
84
+ | `tasks list` | One page of task metadata for the current key | no |
85
+ | `tasks purge <task-id>` | Destroy one task's stored content, permanently | no |
86
+
87
+ `tasks create` takes `--model` plus `--input-json` or `--input-file` (use `-` for stdin), and
88
+ optionally `--callback-url`, `--idempotency-key`, `--retention`, `--yes` and `--wait`.
89
+
90
+ `--retention` shortens how long this one task's outputs and prompt are kept: `30m`, `1h`, `7d`, or a
91
+ plain number of seconds, with `0` meaning "remove the outputs as soon as the task finishes". It only
92
+ ever shortens — your account settings and the platform maximum still apply — and the deadlines that
93
+ actually took effect come back in `tasks get` under `retention`.
94
+
95
+ `tasks purge` destroys one terminal task's generated media, result payload, prompt and input text.
96
+ It asks for confirmation or an explicit `--yes`, the same gate as a billable command, because it
97
+ cannot be undone. **It destroys content, not the record of what it cost:** the charge, model, state,
98
+ timestamps and request ID stay queryable, and nothing is refunded. Afterwards `tasks get` reports
99
+ `contentState: purged` — distinct from `expired`, which means the retention rules removed it.
100
+
101
+ You do not need to run `tasks quote` first. `tasks create` fetches and binds the exact quote itself,
102
+ then asks you to confirm it. The separate quote command is for comparing prices, not a prerequisite.
103
+
104
+ ### Files and webhooks
105
+
106
+ | Command | What it does |
107
+ | ------------------------------ | --------------------------------------------------- |
108
+ | `files upload <path>` | Prepare, PUT and commit a private direct upload |
109
+ | `files download-url <task-id>` | Short-lived URL for a task output |
110
+ | `webhooks verify` | Verify a callback signature against exact raw bytes |
111
+
112
+ `webhooks verify` reads the secret from an environment variable named by `--secret-env`
113
+ (`SPICY_WEBHOOK_SECRET` by default). The secret itself is never accepted as an argument.
22
114
 
23
115
  ## Task history
24
116
 
@@ -26,9 +118,28 @@ or native `jobs/stream` when you need quote confirmation and the platform event
26
118
  spicyapi --json tasks list --from 2026-09-01 --to 2026-09-07 --state failed --limit 20
27
119
  ```
28
120
 
29
- This reads one page of current-key metadata without billable confirmation or additional task
30
- lookups. Reuse the same `--from` and `--to` dates with `--cursor` set to the returned `nextCursor`
31
- when `hasMore` is true. Dates are UTC `[from,to)`, default to seven days ending tomorrow UTC, and
32
- span at most 92 days; page size is 20 by default, up to 100. `--model` filters an exact model ID.
33
- Money stays in decimal USD strings and is final only for `settled: true`. Use `tasks get` for a
34
- selected result, and `usage` for settled spending, which includes hidden tasks excluded here.
121
+ This reads one page of metadata for the current key with no billable confirmation and no extra task
122
+ lookups. When `hasMore` is true, repeat the call with the **same** `--from` and `--to` and
123
+ `--cursor` set to the returned `nextCursor`.
124
+
125
+ - Dates are UTC `[from,to)`, default to seven days ending tomorrow UTC, and span at most 92 days.
126
+ - Page size is 20 by default, up to 100. `--model` filters an exact model ID.
127
+ - `cost` is a decimal USD string and is final only when `settled` is true.
128
+ - Hidden tasks are excluded here; use `usage` for settled spending.
129
+
130
+ Use `tasks get` for a result you actually selected, rather than expanding every row.
131
+
132
+ ## What this CLI does not do
133
+
134
+ It submits and tracks native asynchronous tasks. It does not stream chat tokens. For a
135
+ token-by-token interface use the official OpenAI client against SpicyAPI's compatible endpoints, or
136
+ native `jobs/stream` when you need quote confirmation and the platform event envelope — see the
137
+ [chat streaming guide](https://spicyapi.ai/docs/quotes-and-compatibility).
138
+
139
+ An accepted task cannot be canceled, and there is no delete operation in the public developer API.
140
+
141
+ ## More
142
+
143
+ - [Developer hub](https://spicyapi.ai/developers) · [Full documentation](https://spicyapi.ai/docs)
144
+ - Prefer to drive this from a coding agent? Use
145
+ [`@spicyapi/mcp`](https://www.npmjs.com/package/@spicyapi/mcp) instead.
@@ -1,4 +1,4 @@
1
- import type { UploadContentType } from "@spicyapi/sdk";
1
+ import type { TaskRecord, UploadContentType } from "@spicyapi/sdk";
2
2
  export declare const MAX_CLI_INPUT_BYTES = 1048576;
3
3
  export interface CliIo {
4
4
  stdout: (text: string) => void;
@@ -11,6 +11,26 @@ export interface CliIo {
11
11
  export declare function defaultCliIo(): CliIo;
12
12
  export declare function outputValue(value: unknown, json: boolean, io: CliIo): void;
13
13
  export declare function readInputObject(inputJson: string | undefined, inputFile: string | undefined, io: CliIo): Promise<Record<string, unknown>>;
14
- export declare function requireBillableConfirmation(message: string, yes: boolean, io: CliIo): Promise<void>;
14
+ /**
15
+ * 花钱与销毁内容共用同一道闸:要么是交互终端上的一次回答,要么是显式 `--yes`。
16
+ *
17
+ * 两件事的共同点是「做完就收不回来」——付过的钱和删掉的产物都一样。`kind` 只改那句
18
+ * 拒绝文案里的形容词,判据一个字都没变,所以不存在「销毁这一路比付费那一路松」的可能。
19
+ */
20
+ export declare function requireConfirmation(message: string, yes: boolean, io: CliIo, kind?: "billable" | "destructive"): Promise<void>;
21
+ /**
22
+ * `--retention` 收人写得出来的写法:`30m` / `1h` / `7d`,也收纯秒数。
23
+ *
24
+ * 不在本地判上限:平台上限只有服务端知道,照抄一份常量进 CLI 等于埋一个会过期的数字,
25
+ * 而契约明说超上限由服务端夹紧、生效值从响应的 `retention` 读回来。本地只保证这串
26
+ * 能变成一个合法的秒数。`0` 合法,含义是「任务一进终态就删产物」。
27
+ */
28
+ export declare function parseRetentionSeconds(value: string): number;
29
+ /**
30
+ * 把任务的内容状态与到期时间说成人话。
31
+ *
32
+ * 「过期了」与「你删的」必须分开说:把后者说成前者,用户会以为平台把东西弄丢了。
33
+ */
34
+ export declare function describeTaskRetention(task: TaskRecord): string[];
15
35
  export declare function parseUploadContentType(value: string): UploadContentType;
16
36
  //# sourceMappingURL=io.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../../src/cli/io.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,eAAO,MAAM,mBAAmB,UAAY,CAAC;AAE7C,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,wBAAgB,YAAY,IAAI,KAAK,CA0BpC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,GAAG,IAAI,CAc1E;AAkCD,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,EAAE,EAAE,KAAK,GACR,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiBlC;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,OAAO,EACZ,EAAE,EAAE,KAAK,GACR,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAMvE"}
1
+ {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../../src/cli/io.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEnE,eAAO,MAAM,mBAAmB,UAAY,CAAC;AAE7C,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,wBAAgB,YAAY,IAAI,KAAK,CA0BpC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,GAAG,IAAI,CAc1E;AAkCD,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,EAAE,EAAE,KAAK,GACR,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiBlC;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,OAAO,EACZ,EAAE,EAAE,KAAK,EACT,IAAI,GAAE,UAAU,GAAG,aAA0B,GAC5C,OAAO,CAAC,IAAI,CAAC,CAMf;AASD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAW3D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,CAoBhE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAmBvE"}
@@ -96,17 +96,86 @@ export async function readInputObject(inputJson, inputFile, io) {
96
96
  const raw = inputFile === "-" ? await io.readStdin() : await readFile(inputFile, "utf8");
97
97
  return parseJsonObject(raw, inputFile === "-" ? "stdin" : "--input-file");
98
98
  }
99
- export async function requireBillableConfirmation(message, yes, io) {
99
+ /**
100
+ * 花钱与销毁内容共用同一道闸:要么是交互终端上的一次回答,要么是显式 `--yes`。
101
+ *
102
+ * 两件事的共同点是「做完就收不回来」——付过的钱和删掉的产物都一样。`kind` 只改那句
103
+ * 拒绝文案里的形容词,判据一个字都没变,所以不存在「销毁这一路比付费那一路松」的可能。
104
+ */
105
+ export async function requireConfirmation(message, yes, io, kind = "billable") {
100
106
  if (yes)
101
107
  return;
102
108
  if (!io.stdinIsTTY) {
103
- throw new Error("billable command requires an interactive confirmation or --yes");
109
+ throw new Error(`${kind} command requires an interactive confirmation or --yes`);
104
110
  }
105
111
  if (!(await io.confirm(message)))
106
112
  throw new Error("operation canceled");
107
113
  }
114
+ const RETENTION_UNIT_SECONDS = {
115
+ s: 1,
116
+ m: 60,
117
+ h: 3_600,
118
+ d: 86_400,
119
+ };
120
+ /**
121
+ * `--retention` 收人写得出来的写法:`30m` / `1h` / `7d`,也收纯秒数。
122
+ *
123
+ * 不在本地判上限:平台上限只有服务端知道,照抄一份常量进 CLI 等于埋一个会过期的数字,
124
+ * 而契约明说超上限由服务端夹紧、生效值从响应的 `retention` 读回来。本地只保证这串
125
+ * 能变成一个合法的秒数。`0` 合法,含义是「任务一进终态就删产物」。
126
+ */
127
+ export function parseRetentionSeconds(value) {
128
+ const normalized = value.trim().toLowerCase();
129
+ const match = /^(\d+)(s|m|h|d)?$/.exec(normalized);
130
+ if (!match) {
131
+ throw new TypeError("--retention must be a whole number of seconds or a duration such as 30m, 1h, or 7d");
132
+ }
133
+ const seconds = Number(match[1]) * RETENTION_UNIT_SECONDS[match[2] ?? "s"];
134
+ if (!Number.isSafeInteger(seconds))
135
+ throw new TypeError("--retention is too large");
136
+ return seconds;
137
+ }
138
+ /**
139
+ * 把任务的内容状态与到期时间说成人话。
140
+ *
141
+ * 「过期了」与「你删的」必须分开说:把后者说成前者,用户会以为平台把东西弄丢了。
142
+ */
143
+ export function describeTaskRetention(task) {
144
+ const lines = [];
145
+ const retention = task.retention;
146
+ /* `purgedAt` 在 TaskRecord 顶层,不在 `retention` 里:后者说的是「按什么策略留」,
147
+ 它说的是「内容已经发生了什么」。没有逐任务留存决定的历史任务会整块省掉
148
+ `retention`,那时销毁时刻仍然要报得出来。 */
149
+ const removedOn = task.purgedAt ?? retention?.outputsExpireAt;
150
+ if (task.contentState === "purged") {
151
+ lines.push(`Content: Destroyed — you removed the outputs${removedOn ? ` on ${removedOn}` : ""}. Billing records are unaffected.`);
152
+ }
153
+ else if (task.contentState === "expired") {
154
+ lines.push(`Content: Expired — outputs were removed${removedOn ? ` on ${removedOn}` : ""} under your retention settings.`);
155
+ }
156
+ if (retention?.outputsExpireAt)
157
+ lines.push(`Outputs expire: ${retention.outputsExpireAt}`);
158
+ if (retention?.promptsExpireAt)
159
+ lines.push(`Prompts erased: ${retention.promptsExpireAt}`);
160
+ if (retention?.source)
161
+ lines.push(`Retention set by: ${retention.source}`);
162
+ return lines;
163
+ }
108
164
  export function parseUploadContentType(value) {
109
- const supported = ["image/jpeg", "image/png", "image/webp", "image/gif"];
165
+ /* 必须与契约里 `UploadURLRequest.contentType` 的枚举逐条一致。
166
+ 2026-09-12 之前这里只有四个图片类型,而服务端与 SDK 早就收音视频——
167
+ 结果是「上传 mp4 想覆盖 MIME」会被 CLI 自己挡在门口,报的还是一句
168
+ 「content type must be one of: <四个图片类型>」,看上去像平台不支持视频。 */
169
+ const supported = [
170
+ "image/jpeg",
171
+ "image/png",
172
+ "image/webp",
173
+ "image/gif",
174
+ "video/mp4",
175
+ "video/webm",
176
+ "audio/mpeg",
177
+ "audio/wav",
178
+ ];
110
179
  if (!supported.includes(value)) {
111
180
  throw new TypeError(`content type must be one of: ${supported.join(", ")}`);
112
181
  }
@@ -1 +1 @@
1
- {"version":3,"file":"io.js","sourceRoot":"","sources":["../../../src/cli/io.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"io.js","sourceRoot":"","sources":["../../../src/cli/io.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAIzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAW7C,MAAM,UAAU,YAAY;IAC1B,OAAO;QACL,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5C,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5C,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QACxC,SAAS,EAAE,KAAK,IAAI,EAAE;YACpB,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,MAAM,MAAM,GAA2B,OAAO,CAAC,KAAK,CAAC;YACrD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,IAAI,OAAO,KAAK,KAAK,QAAQ;oBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAC7C,IAAI,KAAK,YAAY,UAAU;oBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;;oBAC9E,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACzB,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACjF,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,mBAAmB,CAAC,CAAC;gBACpE,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5C,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QACD,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,IAAa,EAAE,EAAS;IAClE,IAAI,IAAI,EAAE,CAAC;QACT,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;QACxB,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IACD,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACrD,MAAM,SAAS,GACb,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YACvC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACtB,CAAC,CAAC,IAAI,KAAK,SAAS;gBAClB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,GAAG,GAAG,KAAK,SAAS,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,KAAa;IACjD,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,mBAAmB,EAAE,CAAC;QACzD,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,YAAY,mBAAmB,QAAQ,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,oBAAoB,EAAE;YAChD,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,MAAiC,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAA6B,EAC7B,SAA6B,EAC7B,EAAS;IAET,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACvD,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC/E,2CAA2C;IAC3C,0CAA0C;IAC1C,2CAA2C;IAC3C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,SAAS,CACjB,oFAAoF;YAClF,sDAAsD;YACtD,gGAAgG,CACnG,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACzF,OAAO,eAAe,CAAC,GAAG,EAAE,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,GAAY,EACZ,EAAS,EACT,OAAmC,UAAU;IAE7C,IAAI,GAAG;QAAE,OAAO;IAChB,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,wDAAwD,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,sBAAsB,GAA2B;IACrD,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,MAAM;CACV,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,SAAS,CACjB,oFAAoF,CACrF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAE,CAAC;IAC5E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACpF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAgB;IACpD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC;;oCAEgC;IAChC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE,eAAe,CAAC;IAC9D,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,+CAA+C,SAAS,CAAC,CAAC,CAAC,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,mCAAmC,CACtH,CAAC;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CACR,0CAA0C,SAAS,CAAC,CAAC,CAAC,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,iCAAiC,CAC/G,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,EAAE,eAAe;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3F,IAAI,SAAS,EAAE,eAAe;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3F,IAAI,SAAS,EAAE,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD;;;8DAG0D;IAC1D,MAAM,SAAS,GAAwB;QACrC,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,WAAW;QACX,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,WAAW;KACZ,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAA0B,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,SAAS,CAAC,gCAAgC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,KAA0B,CAAC;AACpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../src/cli/program.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAwC,MAAM,WAAW,CAAC;AAE1E,OAAO,EAGL,WAAW,EAEX,KAAK,kBAAkB,EAGxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAML,KAAK,KAAK,EACX,MAAM,SAAS,CAAC;AA+CjB,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,KAAK,CAAC;IACX,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,WAAW,CAAC;CAC7D;AAmDD,wBAAgB,SAAS,CAAC,YAAY,GAAE,eAAoB,GAAG,OAAO,CAqSrE;AAED,wBAAsB,MAAM,CAC1B,IAAI,WAAe,EACnB,YAAY,GAAE,eAAoB,GACjC,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../src/cli/program.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAwC,MAAM,WAAW,CAAC;AAE1E,OAAO,EAGL,WAAW,EAEX,KAAK,kBAAkB,EAGxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAQL,KAAK,KAAK,EACX,MAAM,SAAS,CAAC;AAoDjB,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,KAAK,CAAC;IACX,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,WAAW,CAAC;CAC7D;AA8DD,wBAAgB,SAAS,CAAC,YAAY,GAAE,eAAoB,GAAG,OAAO,CAgVrE;AAED,wBAAsB,MAAM,CAC1B,IAAI,WAAe,EACnB,YAAY,GAAE,eAAoB,GACjC,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
@@ -3,7 +3,7 @@ import { randomUUID } from "node:crypto";
3
3
  import { readFile } from "node:fs/promises";
4
4
  import { Command, CommanderError, InvalidArgumentError } from "commander";
5
5
  import { searchDocumentation, SpicyApiError, SpicyClient, verifyWebhook, } from "@spicyapi/sdk";
6
- import { defaultCliIo, outputValue, parseUploadContentType, readInputObject, requireBillableConfirmation, } from "./io.js";
6
+ import { defaultCliIo, describeTaskRetention, outputValue, parseRetentionSeconds, parseUploadContentType, readInputObject, requireConfirmation, } from "./io.js";
7
7
  function integer(value) {
8
8
  const parsed = Number(value);
9
9
  if (!Number.isSafeInteger(parsed) || parsed < 0) {
@@ -11,6 +11,17 @@ function integer(value) {
11
11
  }
12
12
  return parsed;
13
13
  }
14
+ // commander 的选项解析器约定抛 InvalidArgumentError,它才会把错误折成一句
15
+ // 「option '--retention <duration>' argument 'x' is invalid」的用法提示。
16
+ // io.ts 里那个解析函数保持纯粹(抛 TypeError),好让它脱离 commander 单测。
17
+ function retentionDuration(value) {
18
+ try {
19
+ return parseRetentionSeconds(value);
20
+ }
21
+ catch (error) {
22
+ throw new InvalidArgumentError(error instanceof Error ? error.message : "invalid duration");
23
+ }
24
+ }
14
25
  function clientOptions(program) {
15
26
  const options = program.opts();
16
27
  return {
@@ -124,7 +135,7 @@ export function createCli(dependencies = {}) {
124
135
  });
125
136
  const tasks = program
126
137
  .command("tasks")
127
- .description("list, create, inspect, retry, and wait for tasks");
138
+ .description("list, create, inspect, retry, wait for, and destroy the content of tasks");
128
139
  tasks
129
140
  .command("list")
130
141
  .description("list metadata for tasks created with the current API key; use get for a selected result")
@@ -140,9 +151,16 @@ export function createCli(dependencies = {}) {
140
151
  tasks
141
152
  .command("get")
142
153
  .argument("<task-id>")
143
- .description("get a task visible to the current API key")
154
+ .description("get a task visible to the current API key, with its content state and retention deadlines")
144
155
  .action(async (taskId) => {
145
- outputValue(await createClient(clientOptions(program)).getTask(taskId), isJson(program), io);
156
+ const task = await createClient(clientOptions(program)).getTask(taskId);
157
+ outputValue(task, isJson(program), io);
158
+ // --json 下一个字都不加:机器读的那一份就是服务端返回的记录本身。
159
+ // 人读的那一份才补一句,因为 `contentState: purged` 说不清「是谁删的」。
160
+ if (!isJson(program)) {
161
+ for (const line of describeTaskRetention(task))
162
+ io.stdout(`${line}\n`);
163
+ }
146
164
  });
147
165
  tasks
148
166
  .command("wait")
@@ -177,6 +195,7 @@ export function createCli(dependencies = {}) {
177
195
  .option("--input-file <path>", "model input JSON file; use - for stdin")
178
196
  .option("--callback-url <url>", "terminal webhook URL")
179
197
  .option("--idempotency-key <key>", "stable logical-operation key; generated when omitted")
198
+ .option("--retention <duration>", "keep this task's outputs and prompt for at most this long: 30m, 1h, 7d, or plain seconds. Only shortens; 0 removes the outputs as soon as the task finishes", retentionDuration)
180
199
  .option("--yes", "confirm the billable action non-interactively")
181
200
  .option("--wait", "wait for a terminal task after creation")
182
201
  .option("--poll-interval-ms <milliseconds>", "poll interval used with --wait", integer)
@@ -186,7 +205,7 @@ export function createCli(dependencies = {}) {
186
205
  const input = await readInputObject(options.inputJson, options.inputFile, io);
187
206
  const idempotencyKey = options.idempotencyKey ?? randomUUID();
188
207
  if (!options.yes && !io.stdinIsTTY) {
189
- await requireBillableConfirmation("Create a billable task.", false, io);
208
+ await requireConfirmation("Create a billable task.", false, io);
190
209
  }
191
210
  const client = createClient(clientOptions(program));
192
211
  const payload = {
@@ -195,10 +214,18 @@ export function createCli(dependencies = {}) {
195
214
  ...(options.callbackUrl === undefined ? {} : { callBackUrl: options.callbackUrl }),
196
215
  };
197
216
  const quote = await client.quoteTask(payload);
198
- const priceMessage = `Estimated charge: USD ${quote.estimatedCost}; maximum charge: USD ${quote.maxCharge}. Quote expires: ${quote.expiresAt}.`;
217
+ const retentionMessage = options.retention === undefined
218
+ ? ""
219
+ : options.retention === 0
220
+ ? " Retention: outputs and prompt are removed as soon as this task reaches a terminal state."
221
+ : ` Retention: outputs and prompt are kept for at most ${options.retention} seconds, or less if your account settings are shorter.`;
222
+ const priceMessage = `Estimated charge: USD ${quote.estimatedCost}; maximum charge: USD ${quote.maxCharge}. Quote expires: ${quote.expiresAt}.${retentionMessage}`;
199
223
  io.stderr(`${priceMessage}\nIdempotency-Key: ${idempotencyKey}\n`);
200
- await requireBillableConfirmation(`Create a billable task with model ${options.model}? ${priceMessage} Idempotency-Key: ${idempotencyKey}.`, Boolean(options.yes), io);
201
- const created = await client.createTask({ ...payload, quoteId: quote.quoteId, expectedCost: quote.estimatedCost }, { idempotencyKey });
224
+ await requireConfirmation(`Create a billable task with model ${options.model}? ${priceMessage} Idempotency-Key: ${idempotencyKey}.`, Boolean(options.yes), io);
225
+ const created = await client.createTask({ ...payload, quoteId: quote.quoteId, expectedCost: quote.estimatedCost }, {
226
+ idempotencyKey,
227
+ ...(options.retention === undefined ? {} : { retentionSeconds: options.retention }),
228
+ });
202
229
  if (!options.wait) {
203
230
  outputValue({ idempotencyKey, ...created }, isJson(program), io);
204
231
  return;
@@ -217,7 +244,7 @@ export function createCli(dependencies = {}) {
217
244
  .description("create a new billable task from a failed or expired task")
218
245
  .action(async (taskId, options) => {
219
246
  const idempotencyKey = options.idempotencyKey ?? randomUUID();
220
- await requireBillableConfirmation(`Retry source task ${taskId}. Current schema, price, balance, and policy will be evaluated again. Idempotency-Key: ${idempotencyKey}.`, Boolean(options.yes), io);
247
+ await requireConfirmation(`Retry source task ${taskId}. Current schema, price, balance, and policy will be evaluated again. Idempotency-Key: ${idempotencyKey}.`, Boolean(options.yes), io);
221
248
  io.stderr(`Idempotency-Key: ${idempotencyKey}\n`);
222
249
  const client = createClient(clientOptions(program));
223
250
  const created = await client.retryTask(taskId, { idempotencyKey });
@@ -228,14 +255,27 @@ export function createCli(dependencies = {}) {
228
255
  const task = await client.waitForTask(created.taskId, taskWaitOptions(options));
229
256
  outputValue({ idempotencyKey, accepted: created, task }, isJson(program), io);
230
257
  });
258
+ tasks
259
+ .command("purge")
260
+ .argument("<task-id>", "terminal task whose stored content should be destroyed")
261
+ .option("--yes", "confirm the destructive action non-interactively")
262
+ .description("permanently destroy one task's outputs, result payload, and prompt text")
263
+ .action(async (taskId, options) => {
264
+ await requireConfirmation(`Permanently destroy the stored content of task ${taskId}: generated media, result payload, prompt, and input text. This cannot be undone. Billing records are kept — the charge, model, state, timestamps, and request ID stay queryable. Only the content is destroyed.`, Boolean(options.yes), io, "destructive");
265
+ const result = await createClient(clientOptions(program)).purgeTask(taskId);
266
+ outputValue(result, isJson(program), io);
267
+ if (!isJson(program)) {
268
+ io.stdout("Content destruction requested; stored objects are removed within about a minute. Billing records were not touched.\n");
269
+ }
270
+ });
231
271
  const files = program
232
272
  .command("files")
233
273
  .description("upload inputs and create short-lived output links");
234
274
  files
235
275
  .command("upload")
236
- .argument("<path>", "JPEG, PNG, WebP, or GIF file")
276
+ .argument("<path>", "image (JPEG/PNG/WebP/GIF), video (MP4/WebM), or audio (MP3/WAV) file")
237
277
  .option("--content-type <type>", "override MIME type", parseUploadContentType)
238
- .description("prepare, PUT, and commit a private direct upload")
278
+ .description("upload a local file and print its spicy:// URI for use in model input")
239
279
  .action(async (filePath, options) => {
240
280
  outputValue(await createClient(clientOptions(program)).uploadFile(filePath, options), isJson(program), io);
241
281
  });
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAE1E,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,aAAa,GAId,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,2BAA2B,GAE5B,MAAM,SAAS,CAAC;AAoDjB,SAAS,OAAO,CAAC,KAAa;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,oBAAoB,CAAC,gCAAgC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,OAAgB;IACrC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAiB,CAAC;IAC9C,OAAO;QACL,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/E,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3F,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5E,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;KAChF,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,OAAgB;IAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAiB,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,eAAe,CAAC,OAA2D;IAIlF,OAAO;QACL,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;QACvF,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;KACrF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;QACnC,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YACzD,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACxE,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,SAAS;gBACvC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC;SACpD,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IAC9E,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,eAAgC,EAAE;IAC1D,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,IAAI,YAAY,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,oDAAoD;IACpD,uDAAuD;IACvD,sDAAsD;IACtD,wDAAwD;IACxD,2CAA2C;IAC3C,OAAO,CAAC,YAAY,EAAE,CAAC;IACvB,OAAO;SACJ,IAAI,CAAC,UAAU,CAAC;SAChB,WAAW,CAAC,0CAA0C,CAAC;SACvD,OAAO,CAAC,WAAW,CAAC;SACpB,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC;SAC9C,MAAM,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;SAC7D,MAAM,CAAC,0BAA0B,EAAE,iCAAiC,CAAC;SACrE,MAAM,CAAC,6BAA6B,EAAE,qBAAqB,EAAE,OAAO,CAAC;SACrE,MAAM,CAAC,uBAAuB,EAAE,gCAAgC,EAAE,OAAO,CAAC;SAC1E,wBAAwB,EAAE;SAC1B,eAAe,CAAC;QACf,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;QACnC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;KACpC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6CAA6C,CAAC;SAC1D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,WAAW,CAAC,MAAM,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEL,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,6CAA6C,CAAC,CAAC;IAChG,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,EAAE,EAAE,CAAC;SACzC,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,OAAO,EAAE,EAAE,CAAC;SAChE,WAAW,CAAC,oDAAoD,CAAC;SACjE,MAAM,CAAC,CAAC,KAAa,EAAE,OAA0B,EAAE,EAAE;QACpD,WAAW,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEL,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,iDAAiD,CAAC,CAAC;IAClE,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;SAC3D,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,kBAAkB,EAAE,iCAAiC,CAAC;SAC7D,MAAM,CAAC,oBAAoB,EAAE,4BAA4B,CAAC;SAC1D,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,OAAiC,EAAE,EAAE;QAClD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9E,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IACL,MAAM;SACH,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,SAAS,EAAE,uCAAuC,CAAC;SAC5D,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE;QAC9B,WAAW,CAAC,MAAM,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,6CAA6C,CAAC;SAC1D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,WAAW,CAAC,MAAM,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,qDAAqD,CAAC;SAClE,MAAM,CAAC,eAAe,EAAE,iCAAiC,CAAC;SAC1D,MAAM,CAAC,aAAa,EAAE,kDAAkD,CAAC;SACzE,MAAM,CAAC,KAAK,EAAE,OAAuC,EAAE,EAAE;QACxD,WAAW,CACT,MAAM,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC5D,MAAM,CAAC,OAAO,CAAC,EACf,EAAE,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,kDAAkD,CAAC,CAAC;IACnE,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,yFAAyF,CAC1F;SACA,MAAM,CAAC,eAAe,EAAE,yDAAyD,CAAC;SAClF,MAAM,CAAC,aAAa,EAAE,+DAA+D,CAAC;SACtF,MAAM,CAAC,iBAAiB,EAAE,0DAA0D,CAAC;SACrF,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;SACnD,MAAM,CAAC,iBAAiB,EAAE,+BAA+B,EAAE,OAAO,CAAC;SACnE,MAAM,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;SACxE,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;QAC1C,WAAW,CACT,MAAM,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAC7D,MAAM,CAAC,OAAO,CAAC,EACf,EAAE,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IACL,KAAK;SACF,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,WAAW,CAAC;SACrB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QAC/B,WAAW,CAAC,MAAM,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IACL,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,WAAW,CAAC;SACrB,MAAM,CAAC,mCAAmC,EAAE,eAAe,EAAE,OAAO,CAAC;SACrE,MAAM,CAAC,kCAAkC,EAAE,sBAAsB,EAAE,OAAO,CAAC;SAC3E,WAAW,CACV,sFAAsF,CACvF;SACA,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAgC,EAAE,EAAE;QACjE,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CACjE,MAAM,EACN,eAAe,CAAC,OAAO,CAAC,CACzB,CAAC;QACF,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IACL,KAAK;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,cAAc,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;SAChE,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;SACxD,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,CAAC;SACvE,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;SACtD,WAAW,CAAC,oEAAoE,CAAC;SACjF,MAAM,CAAC,KAAK,EAAE,OAAqD,EAAE,EAAE;QACtE,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC9E,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACjE,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK;YACL,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;SACnF,CAAC,CAAC;QACH,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IACL,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,cAAc,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;SAChE,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;SACxD,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,CAAC;SACvE,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;SACtD,MAAM,CAAC,yBAAyB,EAAE,sDAAsD,CAAC;SACzF,MAAM,CAAC,OAAO,EAAE,+CAA+C,CAAC;SAChE,MAAM,CAAC,QAAQ,EAAE,yCAAyC,CAAC;SAC3D,MAAM,CAAC,mCAAmC,EAAE,gCAAgC,EAAE,OAAO,CAAC;SACtF,MAAM,CAAC,kCAAkC,EAAE,kCAAkC,EAAE,OAAO,CAAC;SACvF,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,OAAqD,EAAE,EAAE;QACtE,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC9E,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,UAAU,EAAE,CAAC;QAC9D,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,2BAA2B,CAAC,yBAAyB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK;YACL,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;SACnF,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,yBAAyB,KAAK,CAAC,aAAa,yBAAyB,KAAK,CAAC,SAAS,oBAAoB,KAAK,CAAC,SAAS,GAAG,CAAC;QAChJ,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,sBAAsB,cAAc,IAAI,CAAC,CAAC;QACnE,MAAM,2BAA2B,CAC/B,qCAAqC,OAAO,CAAC,KAAK,KAAK,YAAY,qBAAqB,cAAc,GAAG,EACzG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EACpB,EAAE,CACH,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CACrC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,aAAa,EAAE,EACzE,EAAE,cAAc,EAAE,CACnB,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,WAAW,CAAC,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QAChF,WAAW,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IACL,KAAK;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CAAC,WAAW,EAAE,+BAA+B,CAAC;SACtD,MAAM,CAAC,yBAAyB,EAAE,sDAAsD,CAAC;SACzF,MAAM,CAAC,OAAO,EAAE,+CAA+C,CAAC;SAChE,MAAM,CAAC,QAAQ,EAAE,6BAA6B,CAAC;SAC/C,MAAM,CAAC,mCAAmC,EAAE,gCAAgC,EAAE,OAAO,CAAC;SACtF,MAAM,CAAC,kCAAkC,EAAE,kCAAkC,EAAE,OAAO,CAAC;SACvF,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAgC,EAAE,EAAE;QACjE,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,UAAU,EAAE,CAAC;QAC9D,MAAM,2BAA2B,CAC/B,qBAAqB,MAAM,0FAA0F,cAAc,GAAG,EACtI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EACpB,EAAE,CACH,CAAC;QACF,EAAE,CAAC,MAAM,CAAC,oBAAoB,cAAc,IAAI,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,WAAW,CAAC,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QAChF,WAAW,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEL,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,mDAAmD,CAAC,CAAC;IACpE,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;SAClD,MAAM,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,sBAAsB,CAAC;SAC7E,WAAW,CAAC,kDAAkD,CAAC;SAC/D,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAA4C,EAAE,EAAE;QAC/E,WAAW,CACT,MAAM,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,EACxE,MAAM,CAAC,OAAO,CAAC,EACf,EAAE,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IACL,KAAK;SACF,OAAO,CAAC,cAAc,CAAC;SACvB,QAAQ,CAAC,WAAW,CAAC;SACrB,MAAM,CAAC,aAAa,EAAE,qDAAqD,CAAC;SAC5E,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAyB,EAAE,EAAE;QAC1D,WAAW,CACT,MAAM,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,EACjF,MAAM,CAAC,OAAO,CAAC,EACf,EAAE,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,6CAA6C,CAAC,CAAC;IAC9D,QAAQ;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,cAAc,CAAC,oBAAoB,EAAE,8BAA8B,CAAC;SACpE,cAAc,CAAC,uBAAuB,EAAE,qBAAqB,CAAC;SAC9D,cAAc,CAAC,sBAAsB,EAAE,qBAAqB,CAAC;SAC7D,cAAc,CAAC,6BAA6B,EAAE,oCAAoC,EAAE,OAAO,CAAC;SAC5F,MAAM,CACL,qBAAqB,EACrB,oDAAoD,EACpD,sBAAsB,CACvB;SACA,MAAM,CAAC,+BAA+B,EAAE,qBAAqB,EAAE,OAAO,EAAE,GAAG,CAAC;SAC5E,WAAW,CAAC,4EAA4E,CAAC;SACzF,MAAM,CACL,KAAK,EAAE,OAON,EAAE,EAAE;QACH,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,SAAS,cAAc,CAAC,CAAC;QACjE,IAAI,OAAO,CAAC,cAAc,KAAK,CAAC,IAAI,OAAO,CAAC,cAAc,KAAK,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,WAAW,CACT,aAAa,CAAC;YACZ,OAAO;YACP,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,MAAM;YACN,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;SAC3C,CAAC,EACF,MAAM,CAAC,OAAO,CAAC,EACf,EAAE,CACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,IAAI,GAAG,OAAO,CAAC,IAAI,EACnB,eAAgC,EAAE;IAElC,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,IAAI,YAAY,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,GAAG,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;YACpC,qDAAqD;YACrD,qDAAqD;YACrD,mCAAmC;YACnC,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;YACnC,IAAI,MAAM,CAAC,OAAO,CAAC;gBAAE,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5E,OAAO,KAAK,CAAC,QAAQ,CAAC;QACxB,CAAC;QACD,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,MAAM,CAAC,OAAO,CAAC;YAAE,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;YAE7D,EAAE,CAAC,MAAM,CACP,UAAU,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CACzF,CAAC;QACJ,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/cli/program.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.3.2";
1
+ export declare const CLI_VERSION = "0.4.0";
2
2
  //# sourceMappingURL=package-version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // 构建时由 package.json 生成,不手动维护或提交。
2
- export const CLI_VERSION = "0.3.2";
2
+ export const CLI_VERSION = "0.4.0";
3
3
  //# sourceMappingURL=package-version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spicyapi/cli",
3
- "version": "0.3.2",
3
+ "version": "0.4.0",
4
4
  "description": "Official command-line client for SpicyAPI",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -41,7 +41,7 @@
41
41
  "typecheck": "node ../../scripts/generate-package-version.mjs cli && tsc -p tsconfig.json --noEmit"
42
42
  },
43
43
  "dependencies": {
44
- "@spicyapi/sdk": "^0.4.0",
44
+ "@spicyapi/sdk": "^0.5.0",
45
45
  "commander": "15.0.0"
46
46
  }
47
47
  }