@soku-ai/cli 0.1.0-alpha.17 → 0.1.0-alpha.19
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 +33 -22
- package/dist/commands/auth.d.ts +1 -3
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +18 -3
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/automation.d.ts +46 -0
- package/dist/commands/automation.d.ts.map +1 -1
- package/dist/commands/automation.js +150 -0
- package/dist/commands/automation.js.map +1 -1
- package/dist/commands/brand-skill.d.ts +23 -0
- package/dist/commands/brand-skill.d.ts.map +1 -1
- package/dist/commands/brand-skill.js +82 -0
- package/dist/commands/brand-skill.js.map +1 -1
- package/dist/commands/changelog.d.ts +79 -0
- package/dist/commands/changelog.d.ts.map +1 -0
- package/dist/commands/changelog.js +123 -0
- package/dist/commands/changelog.js.map +1 -0
- package/dist/commands/context.d.ts +54 -0
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +362 -43
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/egress.d.ts +49 -1
- package/dist/commands/egress.d.ts.map +1 -1
- package/dist/commands/egress.js +287 -33
- package/dist/commands/egress.js.map +1 -1
- package/dist/commands/generated.d.ts +8 -3
- package/dist/commands/generated.d.ts.map +1 -1
- package/dist/commands/generated.js +10 -3
- package/dist/commands/generated.js.map +1 -1
- package/dist/commands/live-surface.d.ts +15 -0
- package/dist/commands/live-surface.d.ts.map +1 -0
- package/dist/commands/live-surface.js +96 -0
- package/dist/commands/live-surface.js.map +1 -0
- package/dist/commands/workspace.d.ts +13 -0
- package/dist/commands/workspace.d.ts.map +1 -1
- package/dist/commands/workspace.js +34 -7
- package/dist/commands/workspace.js.map +1 -1
- package/dist/generated/capabilities.json +7710 -2318
- package/dist/generated/changelog.json +2232 -0
- package/dist/http/client.d.ts +17 -0
- package/dist/http/client.d.ts.map +1 -1
- package/dist/http/client.js +34 -5
- package/dist/http/client.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/output/envelope.d.ts +2 -1
- package/dist/output/envelope.d.ts.map +1 -1
- package/dist/output/envelope.js +2 -2
- package/dist/output/envelope.js.map +1 -1
- package/dist/upload-journal.d.ts +46 -0
- package/dist/upload-journal.d.ts.map +1 -0
- package/dist/upload-journal.js +102 -0
- package/dist/upload-journal.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +6 -5
- package/skills/soku/SKILL.md +74 -12
- package/skills/soku/agents/openai.yaml +4 -0
- package/skills/soku/references/ads-write.md +12 -6
- package/skills/soku/references/auth-workspace.md +27 -12
- package/skills/soku/references/data-capabilities.md +22 -1
- package/skills/soku/references/egress-security.md +63 -0
- package/skills/soku/references/seo-automation-files.md +67 -3
- package/skills/soku/references/skills-updates.md +54 -0
package/README.md
CHANGED
|
@@ -1,25 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
<a href="https://nodejs.org/"><img src="https://img.shields.io/badge/Node.js-%3E%3D20-339933?logo=node.js&logoColor=white" alt="Node.js 20 or newer" /></a>
|
|
14
|
-
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-black.svg" alt="MIT license" /></a>
|
|
15
|
-
</p>
|
|
16
|
-
<p>
|
|
17
|
-
<a href="https://soku.ai">Website</a> ·
|
|
18
|
-
<a href="https://soku.ai/cli/skill.md">Agent guide</a> ·
|
|
19
|
-
<a href="https://www.npmjs.com/package/@soku-ai/cli">npm</a> ·
|
|
20
|
-
<a href="./CONTRIBUTING.md">Contributing</a>
|
|
21
|
-
</p>
|
|
22
|
-
</div>
|
|
1
|
+
# Soku CLI
|
|
2
|
+
|
|
3
|
+
**Give any AI agent a secure command line to your growth stack.**
|
|
4
|
+
|
|
5
|
+
Query marketing data, manage campaigns, publish SEO content, and automate
|
|
6
|
+
recurring work from Claude Code, Codex, Cursor, or any terminal.
|
|
7
|
+
|
|
8
|
+
[](https://www.npmjs.com/package/@soku-ai/cli)
|
|
9
|
+
[](https://nodejs.org/)
|
|
10
|
+
[](./LICENSE)
|
|
11
|
+
|
|
12
|
+
[Website](https://soku.ai) · [Agent guide](https://soku.ai/cli/skill.md) · [npm](https://www.npmjs.com/package/@soku-ai/cli) · [Contributing](./CONTRIBUTING.md)
|
|
23
13
|
|
|
24
14
|
---
|
|
25
15
|
|
|
@@ -77,6 +67,27 @@ soku --help
|
|
|
77
67
|
|
|
78
68
|
No global install needed? Start with `npx @soku-ai/cli --help`.
|
|
79
69
|
|
|
70
|
+
### Install as a plugin
|
|
71
|
+
|
|
72
|
+
This repository is also a marketplace plugin for Claude Code, Cursor, and Codex.
|
|
73
|
+
The plugin teaches the agent how to install, sign in to, and use the Soku CLI;
|
|
74
|
+
it does not bundle the CLI itself, so `npm install -g @soku-ai/cli` still runs on
|
|
75
|
+
your machine (the plugin's skill walks the agent through it).
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# Claude Code
|
|
79
|
+
claude plugin marketplace add About-Intelligence/soku-cli
|
|
80
|
+
claude plugin install soku@soku
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
- **Claude Cowork**: the Claude plugin also registers Soku's remote MCP server (`https://api.soku.ai/mcp`), so hosts without a shell can still read, research and prepare review-gated changes. Sign in when Cowork asks to authorize the `soku` connector.
|
|
84
|
+
- **Cursor**: open **Customize → Plugins**, import `https://github.com/About-Intelligence/soku-cli`, and install `soku` at user or project scope.
|
|
85
|
+
- **Codex / ChatGPT**: clone this repository; its `.agents/plugins/marketplace.json` registers the `soku` plugin in the local Plugins Directory.
|
|
86
|
+
|
|
87
|
+
Business skills (`soku-ads-report`, `soku-google-ads`, …) are not part of the
|
|
88
|
+
plugin. Install them on demand with `soku skill install <slug>`; `soku update
|
|
89
|
+
skills` keeps them current.
|
|
90
|
+
|
|
80
91
|
## What can you do with it?
|
|
81
92
|
|
|
82
93
|
### Turn ad data into answers
|
package/dist/commands/auth.d.ts
CHANGED
|
@@ -2,12 +2,10 @@
|
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import { type TokenWorkspace } from '../auth/device.js';
|
|
4
4
|
export declare function registerAuthCommands(program: Command): void;
|
|
5
|
-
/** `/api/cli/me` response.
|
|
6
|
-
* compatible with servers that predate the field. */
|
|
5
|
+
/** `/api/cli/me` response. */
|
|
7
6
|
export interface AuthStatusMe {
|
|
8
7
|
owner_id: string;
|
|
9
8
|
scope_type: string;
|
|
10
|
-
is_platform_admin?: boolean;
|
|
11
9
|
}
|
|
12
10
|
/** JSON envelope payload for `auth status`; passes server fields through. */
|
|
13
11
|
export declare function authStatusPayload(me: AuthStatusMe): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAM1B,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2F3D;AAED;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAM1B,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2F3D;AAED,8BAA8B;AAC9B,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,GAAG;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,GAAG,YAAY,CAEtF;AAED,8CAA8C;AAC9C,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAMxD;AAkDD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAOlF"}
|
package/dist/commands/auth.js
CHANGED
|
@@ -94,8 +94,11 @@ export function authStatusPayload(me) {
|
|
|
94
94
|
}
|
|
95
95
|
/** Human (TTY) renderer for `auth status`. */
|
|
96
96
|
export function renderAuthStatus(d) {
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
return [
|
|
98
|
+
`${green('✓')} Signed in ${dim(`(${d.scope_type})`)}`,
|
|
99
|
+
` owner: ${cyan(d.owner_id)}`,
|
|
100
|
+
dim(' Reaches every brand this account can access; `soku brand list` shows them.'),
|
|
101
|
+
].join('\n');
|
|
99
102
|
}
|
|
100
103
|
async function pollAndStore(opts) {
|
|
101
104
|
const outcome = await pollForToken(opts);
|
|
@@ -114,7 +117,19 @@ async function pollAndStore(opts) {
|
|
|
114
117
|
scope: outcome.token.scope,
|
|
115
118
|
workspace_configured: workspaceConfigured,
|
|
116
119
|
workspace: outcome.token.workspace ?? null,
|
|
117
|
-
|
|
120
|
+
// The brand picked during approval is a starting point, not a grant
|
|
121
|
+
// boundary. Stating it here is the cheapest place to stop the reading
|
|
122
|
+
// that "I authorized one brand, so why can I see others?".
|
|
123
|
+
brand_scope: 'session',
|
|
124
|
+
}, () => [
|
|
125
|
+
`${green('✓')} Signed in ${dim(`(token valid ~${days} days)`)}`,
|
|
126
|
+
workspaceConfigured
|
|
127
|
+
? dim(' The brand you picked is where the CLI starts, not the limit of this session.')
|
|
128
|
+
: '',
|
|
129
|
+
` ${dim(workspaceConfigured ? 'Next: soku ads list-ad-accounts' : 'Next: soku org list')}`,
|
|
130
|
+
]
|
|
131
|
+
.filter(Boolean)
|
|
132
|
+
.join('\n'));
|
|
118
133
|
}
|
|
119
134
|
export function storeTokenWorkspace(workspace) {
|
|
120
135
|
if (!workspace?.organization_id || !workspace?.brand_id)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,50 @@ interface AutomationCreateOptions {
|
|
|
22
22
|
onceAt?: string;
|
|
23
23
|
timezone?: string;
|
|
24
24
|
}
|
|
25
|
+
/** Every field is optional: an update sends only what the caller passed, so an
|
|
26
|
+
* omitted field keeps its stored value instead of being reset. */
|
|
27
|
+
interface AutomationUpdateOptions {
|
|
28
|
+
name?: string;
|
|
29
|
+
prompt?: string;
|
|
30
|
+
cron?: string;
|
|
31
|
+
intervalSeconds?: string;
|
|
32
|
+
onceAt?: string;
|
|
33
|
+
timezone?: string;
|
|
34
|
+
status?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface AutomationUpdatePayload {
|
|
37
|
+
name?: string;
|
|
38
|
+
prompt?: string;
|
|
39
|
+
status?: AutomationStatus;
|
|
40
|
+
scheduleContract?: ScheduleContract;
|
|
41
|
+
}
|
|
42
|
+
export type AutomationStatus = 'active' | 'paused' | 'completed';
|
|
43
|
+
export interface AutomationDeleteResponse {
|
|
44
|
+
deleted: boolean;
|
|
45
|
+
automationId: string;
|
|
46
|
+
}
|
|
47
|
+
export interface AutomationAttachmentDependency {
|
|
48
|
+
id: string;
|
|
49
|
+
status: 'ok' | 'missing';
|
|
50
|
+
name?: string | null;
|
|
51
|
+
sizeBytes?: number | null;
|
|
52
|
+
contentType?: string | null;
|
|
53
|
+
}
|
|
54
|
+
export interface AutomationContextReferenceDependency {
|
|
55
|
+
id: string;
|
|
56
|
+
type: string;
|
|
57
|
+
name?: string | null;
|
|
58
|
+
brandPinned: boolean;
|
|
59
|
+
}
|
|
60
|
+
export interface AutomationDependencies {
|
|
61
|
+
automationId: string;
|
|
62
|
+
brandId: string;
|
|
63
|
+
attachments: AutomationAttachmentDependency[];
|
|
64
|
+
contextReferences: AutomationContextReferenceDependency[];
|
|
65
|
+
missingAttachmentCount: number;
|
|
66
|
+
brandPinnedReferenceCount: number;
|
|
67
|
+
ready: boolean;
|
|
68
|
+
}
|
|
25
69
|
export interface AutomationCreatePayload {
|
|
26
70
|
name: string;
|
|
27
71
|
prompt: string;
|
|
@@ -71,8 +115,10 @@ export declare function automationRunsPath(automationId: string, opts: {
|
|
|
71
115
|
export declare function resolveWebBase(): string;
|
|
72
116
|
export declare function conversationUrl(path?: string | null, base?: string): string | null;
|
|
73
117
|
export declare function buildAutomationCreatePayload(opts: AutomationCreateOptions): AutomationCreatePayload;
|
|
118
|
+
export declare function buildAutomationUpdatePayload(opts: AutomationUpdateOptions): AutomationUpdatePayload;
|
|
74
119
|
export declare function renderAutomations(data: AutomationListResponse): string;
|
|
75
120
|
export declare function renderAutomation(item: AutomationItem): string;
|
|
121
|
+
export declare function renderAutomationDependencies(data: AutomationDependencies): string;
|
|
76
122
|
export declare function runsWithConversationUrls(data: AutomationRunsResponse): AutomationRunsResponse;
|
|
77
123
|
export declare function renderAutomationRuns(data: AutomationRunsResponse): string;
|
|
78
124
|
export declare function registerAutomationCommands(program: Command): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automation.d.ts","sourceRoot":"","sources":["../../src/commands/automation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"automation.d.ts","sourceRoot":"","sources":["../../src/commands/automation.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { apiRequest } from '../http/client.js';
|
|
|
3
3
|
import { bold, cyan, dim, emitError, emitSuccess, ExitCode, table } from '../output/envelope.js';
|
|
4
4
|
const AUTOMATIONS_PATH = '/api/cli/automations';
|
|
5
5
|
const DEFAULT_WEB_BASE = 'https://app.soku.ai';
|
|
6
|
+
const AUTOMATION_STATUSES = ['active', 'paused', 'completed'];
|
|
6
7
|
export class AutomationUsageError extends Error {
|
|
7
8
|
hint;
|
|
8
9
|
constructor(message, hint) {
|
|
@@ -46,6 +47,37 @@ export function buildAutomationCreatePayload(opts) {
|
|
|
46
47
|
scheduleContract: buildScheduleContract(opts),
|
|
47
48
|
};
|
|
48
49
|
}
|
|
50
|
+
export function buildAutomationUpdatePayload(opts) {
|
|
51
|
+
const scheduleSources = [opts.cron, opts.intervalSeconds, opts.onceAt].filter((value) => value !== undefined);
|
|
52
|
+
if (scheduleSources.length > 1) {
|
|
53
|
+
throw new AutomationUsageError('Provide at most one schedule option.', 'Use --cron, --interval-seconds, or --once-at.');
|
|
54
|
+
}
|
|
55
|
+
// --timezone alone cannot be honored: the server rebuilds the stored schedule
|
|
56
|
+
// from a whole contract, so a lone timezone would silently do nothing.
|
|
57
|
+
if (opts.timezone !== undefined && opts.cron === undefined) {
|
|
58
|
+
throw new AutomationUsageError('--timezone only applies together with --cron.', 'Re-send the cron expression: --cron "<expr>" --timezone <iana>.');
|
|
59
|
+
}
|
|
60
|
+
const payload = {};
|
|
61
|
+
if (opts.name !== undefined)
|
|
62
|
+
payload.name = requiredText(opts.name, '--name');
|
|
63
|
+
if (opts.prompt !== undefined)
|
|
64
|
+
payload.prompt = requiredText(opts.prompt, '--prompt');
|
|
65
|
+
if (opts.status !== undefined)
|
|
66
|
+
payload.status = parseStatus(opts.status);
|
|
67
|
+
if (scheduleSources.length === 1)
|
|
68
|
+
payload.scheduleContract = buildScheduleContract(opts);
|
|
69
|
+
if (Object.keys(payload).length === 0) {
|
|
70
|
+
throw new AutomationUsageError('Nothing to update.', 'Pass at least one of --name, --prompt, --status, --cron, --interval-seconds, --once-at.');
|
|
71
|
+
}
|
|
72
|
+
return payload;
|
|
73
|
+
}
|
|
74
|
+
function parseStatus(raw) {
|
|
75
|
+
const value = raw.trim();
|
|
76
|
+
if (!AUTOMATION_STATUSES.includes(value)) {
|
|
77
|
+
throw new AutomationUsageError(`--status must be one of: ${AUTOMATION_STATUSES.join(', ')}.`);
|
|
78
|
+
}
|
|
79
|
+
return value;
|
|
80
|
+
}
|
|
49
81
|
function buildScheduleContract(opts) {
|
|
50
82
|
if (opts.cron !== undefined) {
|
|
51
83
|
const timezone = (opts.timezone || 'UTC').trim();
|
|
@@ -118,6 +150,47 @@ export function renderAutomation(item) {
|
|
|
118
150
|
`${bold('Timezone')}: ${item.timezone ?? '-'}`,
|
|
119
151
|
].join('\n');
|
|
120
152
|
}
|
|
153
|
+
export function renderAutomationDependencies(data) {
|
|
154
|
+
const lines = [
|
|
155
|
+
`${bold('Automation')}: ${cyan(data.automationId)}`,
|
|
156
|
+
`${bold('Dependencies')}: ${data.ready ? 'all attachments resolve' : `${data.missingAttachmentCount} missing`}`,
|
|
157
|
+
];
|
|
158
|
+
lines.push('');
|
|
159
|
+
lines.push(bold('Attachments'));
|
|
160
|
+
lines.push(data.attachments.length === 0
|
|
161
|
+
? dim(' (none)')
|
|
162
|
+
: table(data.attachments.map((item) => ({
|
|
163
|
+
status: item.status,
|
|
164
|
+
id: item.id,
|
|
165
|
+
name: item.name ?? '',
|
|
166
|
+
size: item.sizeBytes ?? '',
|
|
167
|
+
})), [
|
|
168
|
+
{ key: 'status', header: 'STATUS' },
|
|
169
|
+
{ key: 'id', header: 'ID' },
|
|
170
|
+
{ key: 'name', header: 'NAME' },
|
|
171
|
+
{ key: 'size', header: 'BYTES' },
|
|
172
|
+
]));
|
|
173
|
+
lines.push('');
|
|
174
|
+
lines.push(bold('Context references'));
|
|
175
|
+
lines.push(data.contextReferences.length === 0
|
|
176
|
+
? dim(' (none)')
|
|
177
|
+
: table(data.contextReferences.map((item) => ({
|
|
178
|
+
scope: item.brandPinned ? 'brand-pinned' : 'portable',
|
|
179
|
+
type: item.type,
|
|
180
|
+
id: item.id,
|
|
181
|
+
name: item.name ?? '',
|
|
182
|
+
})), [
|
|
183
|
+
{ key: 'scope', header: 'SCOPE' },
|
|
184
|
+
{ key: 'type', header: 'TYPE' },
|
|
185
|
+
{ key: 'id', header: 'ID' },
|
|
186
|
+
{ key: 'name', header: 'NAME' },
|
|
187
|
+
]));
|
|
188
|
+
if (data.brandPinnedReferenceCount > 0) {
|
|
189
|
+
lines.push('');
|
|
190
|
+
lines.push(dim(`${data.brandPinnedReferenceCount} reference(s) point at rows inside this brand and must be re-picked if this automation is recreated elsewhere.`));
|
|
191
|
+
}
|
|
192
|
+
return lines.join('\n');
|
|
193
|
+
}
|
|
121
194
|
export function runsWithConversationUrls(data) {
|
|
122
195
|
return {
|
|
123
196
|
...data,
|
|
@@ -187,6 +260,83 @@ export function registerAutomationCommands(program) {
|
|
|
187
260
|
});
|
|
188
261
|
emitSuccess(data, renderAutomation);
|
|
189
262
|
});
|
|
263
|
+
automation
|
|
264
|
+
.command('get <automation_id>')
|
|
265
|
+
.description('Show one automation in the active brand')
|
|
266
|
+
.action(async (automationId) => {
|
|
267
|
+
const data = await apiRequest(automationPath(automationId), {
|
|
268
|
+
workspace: true,
|
|
269
|
+
});
|
|
270
|
+
emitSuccess(data, renderAutomation);
|
|
271
|
+
});
|
|
272
|
+
automation
|
|
273
|
+
.command('update <automation_id>')
|
|
274
|
+
.description('Edit an existing automation in place (name, prompt, schedule, or status)')
|
|
275
|
+
.option('--name <name>', 'New automation name')
|
|
276
|
+
.option('--prompt <prompt>', 'New prompt')
|
|
277
|
+
.option('--cron <expr>', 'Five-field cron expression, e.g. "* * * * *"')
|
|
278
|
+
.option('--interval-seconds <seconds>', 'Interval schedule in seconds (>= 3600 and divisible by 60)')
|
|
279
|
+
.option('--once-at <iso>', 'Run once at this UTC ISO timestamp')
|
|
280
|
+
.option('--timezone <tz>', 'IANA timezone; only valid together with --cron')
|
|
281
|
+
.option(`--status <status>`, `One of: ${AUTOMATION_STATUSES.join(', ')}`)
|
|
282
|
+
.action(async (automationId, opts) => {
|
|
283
|
+
let payload;
|
|
284
|
+
try {
|
|
285
|
+
payload = buildAutomationUpdatePayload(opts);
|
|
286
|
+
}
|
|
287
|
+
catch (err) {
|
|
288
|
+
usageError(err);
|
|
289
|
+
}
|
|
290
|
+
const data = await apiRequest(automationPath(automationId), {
|
|
291
|
+
method: 'PATCH',
|
|
292
|
+
workspace: true,
|
|
293
|
+
body: payload,
|
|
294
|
+
});
|
|
295
|
+
emitSuccess(data, renderAutomation);
|
|
296
|
+
});
|
|
297
|
+
automation
|
|
298
|
+
.command('pause <automation_id>')
|
|
299
|
+
.description('Pause an automation without deleting it (clears its next run)')
|
|
300
|
+
.action(async (automationId) => {
|
|
301
|
+
const data = await apiRequest(automationPath(automationId), {
|
|
302
|
+
method: 'PATCH',
|
|
303
|
+
workspace: true,
|
|
304
|
+
body: { status: 'paused' },
|
|
305
|
+
});
|
|
306
|
+
emitSuccess(data, renderAutomation);
|
|
307
|
+
});
|
|
308
|
+
automation
|
|
309
|
+
.command('resume <automation_id>')
|
|
310
|
+
.description('Resume a paused automation and recompute its next run')
|
|
311
|
+
.action(async (automationId) => {
|
|
312
|
+
const data = await apiRequest(automationPath(automationId), {
|
|
313
|
+
method: 'PATCH',
|
|
314
|
+
workspace: true,
|
|
315
|
+
body: { status: 'active' },
|
|
316
|
+
});
|
|
317
|
+
emitSuccess(data, renderAutomation);
|
|
318
|
+
});
|
|
319
|
+
automation
|
|
320
|
+
.command('delete <automation_id>')
|
|
321
|
+
.description('Delete an automation from the active brand')
|
|
322
|
+
.option('--confirm', 'Confirm the delete')
|
|
323
|
+
.action(async (automationId, opts) => {
|
|
324
|
+
if (!opts.confirm) {
|
|
325
|
+
emitError('confirmation_required', 'Delete requires explicit confirmation.', ExitCode.USAGE, 'Re-run with --confirm.');
|
|
326
|
+
}
|
|
327
|
+
const data = await apiRequest(automationPath(automationId), {
|
|
328
|
+
method: 'DELETE',
|
|
329
|
+
workspace: true,
|
|
330
|
+
});
|
|
331
|
+
emitSuccess(data, (d) => `${bold('Deleted')}: ${cyan(d.automationId)}`);
|
|
332
|
+
});
|
|
333
|
+
automation
|
|
334
|
+
.command('deps <automation_id>')
|
|
335
|
+
.description('Check whether this automation\'s attachments and references still resolve')
|
|
336
|
+
.action(async (automationId) => {
|
|
337
|
+
const data = await apiRequest(automationPath(automationId, 'dependencies'), { workspace: true });
|
|
338
|
+
emitSuccess(data, renderAutomationDependencies);
|
|
339
|
+
});
|
|
190
340
|
automation
|
|
191
341
|
.command('trigger <automation_id>')
|
|
192
342
|
.description('Trigger one manual run for an automation')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automation.js","sourceRoot":"","sources":["../../src/commands/automation.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAI5E,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAEhG,MAAM,gBAAgB,GAAG,sBAAsB,CAAA;AAC/C,MAAM,gBAAgB,GAAG,qBAAqB,CAAA;AA4E9C,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACP;IAAtC,YAAY,OAAe,EAAW,IAAa;QACjD,KAAK,CAAC,OAAO,CAAC,CAAA;QADsB,SAAI,GAAJ,IAAI,CAAS;IAEnD,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,YAAqB,EAAE,MAAe;IACnE,IAAI,CAAC,YAAY;QAAE,OAAO,gBAAgB,CAAA;IAC1C,MAAM,OAAO,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAA;IAChD,OAAO,GAAG,gBAAgB,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AACtE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,YAAoB,EAAE,IAAyC;IAChG,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;IACpC,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/C,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;IAC/B,OAAO,GAAG,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AAC7E,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAoB,EAAE,IAAI,GAAG,cAAc,EAAE;IAC3E,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC1C,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,IAA6B;IACxE,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3E,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAC/B,CAAA;IACD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,oBAAoB,CAC5B,sCAAsC,EACtC,+CAA+C,CAChD,CAAA;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;QACvC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC;QAC7C,gBAAgB,EAAE,qBAAqB,CAAC,IAAI,CAAC;KAC9C,CAAA;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAA6B;IAC1D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,oBAAoB,CAAC,6BAA6B,CAAC,CAAA;QAC5E,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;YACvC,QAAQ;YACR,MAAM,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO;SACpD,CAAA;IACH,CAAC;IACD,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAC/D,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IAC5D,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IACjG,CAAC;IACD,MAAM,IAAI,oBAAoB,CAAC,0BAA0B,CAAC,CAAA;AAC5D,CAAC;AAED,SAAS,YAAY,CAAC,KAAyB,EAAE,IAAY;IAC3D,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAA;IAC7B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,oBAAoB,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAA;IACxE,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW,EAAE,IAAY;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACzB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,oBAAoB,CAAC,GAAG,IAAI,8BAA8B,CAAC,CAAA;IACvE,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAA;IACzD,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,oBAAoB,CAC5B,+DAA+D,EAC/D,4EAA4E,CAC7E,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,UAAU,CAAC,KAAyC;IAC3D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAA;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;IACnE,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAA4B;IAC5D,OAAO,KAAK,CACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxB,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;QAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;KAC9B,CAAC,CAAC,EACH;QACE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAC3B,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;QAC/B,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;QACnC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;QACnC,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;KACxC,CACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,OAAO;QACL,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QACjC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;QAC/B,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;QACnC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;QACtD,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,GAAG,EAAE;KAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAA4B;IACnE,OAAO;QACL,GAAG,IAAI;QACP,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5B,GAAG,GAAG;YACN,eAAe,EAAE,GAAG,CAAC,eAAe,IAAI,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC;SAC9E,CAAC,CAAC;KACJ,CAAA;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAA4B;IAC/D,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC,cAAc,CAAC,CAAA;IACtD,OAAO,KAAK,CACV,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACtB,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,SAAS,EAAE,GAAG,CAAC,YAAY;QAC3B,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;QAClC,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;QAC1B,IAAI,EAAE,GAAG,CAAC,eAAe,IAAI,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE;KACzE,CAAC,CAAC,EACH;QACE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC/B,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;QACnC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE;QACzC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;QACrC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;QACrC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;KAChC,CACF,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;QAC1C,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAC/D,CAAC;IACD,MAAM,KAAK,CAAA;AACb,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,MAAM,UAAU,GAAG,OAAO;SACvB,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,yCAAyC,CAAC,CAAA;IAEzD,UAAU;SACP,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAyB,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5F,WAAW,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEJ,UAAU;SACP,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,0CAA0C,CAAC;SACvD,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;SAClD,cAAc,CAAC,mBAAmB,EAAE,0CAA0C,CAAC;SAC/E,MAAM,CAAC,eAAe,EAAE,8CAA8C,CAAC;SACvE,MAAM,CAAC,8BAA8B,EAAE,4DAA4D,CAAC;SACpG,MAAM,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;SAC/D,MAAM,CAAC,iBAAiB,EAAE,oCAAoC,EAAE,KAAK,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,IAA6B,EAAE,EAAE;QAC9C,IAAI,OAAgC,CAAA;QACpC,IAAI,CAAC;YACH,OAAO,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAA;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,UAAU,CAAC,GAAG,CAAC,CAAA;QACjB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAiB,cAAc,EAAE,EAAE;YAC9D,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,OAAO;SACd,CAAC,CAAA;QACF,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEJ,UAAU;SACP,OAAO,CAAC,yBAAyB,CAAC;SAClC,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,YAAoB,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,MAAM,UAAU,CAA4B,cAAc,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE;YAChG,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,IAAI;SAChB,CAAC,CAAA;QACF,WAAW,CACT,IAAI,EACJ,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,IAAI,GAAG,EAAE,CAC/F,CAAA;IACH,CAAC,CAAC,CAAA;IAEJ,UAAU;SACP,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,aAAa,EAAE,gCAAgC,EAAE,IAAI,CAAC;SAC7D,MAAM,CAAC,cAAc,EAAE,mBAAmB,EAAE,GAAG,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,YAAoB,EAAE,IAAyC,EAAE,EAAE;QAChF,MAAM,IAAI,GAAG,MAAM,UAAU,CAAyB,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE;YAC5F,SAAS,EAAE,IAAI;SAChB,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAA;QAC/C,WAAW,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;AACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"automation.js","sourceRoot":"","sources":["../../src/commands/automation.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,29 @@ interface CatalogSkill {
|
|
|
40
40
|
installed: boolean;
|
|
41
41
|
modified: boolean;
|
|
42
42
|
}
|
|
43
|
+
interface CommunitySkill {
|
|
44
|
+
slug: string;
|
|
45
|
+
name: string;
|
|
46
|
+
version: string;
|
|
47
|
+
publisher_org_name: string;
|
|
48
|
+
status: string;
|
|
49
|
+
price_credits: number;
|
|
50
|
+
entitlement: string | null;
|
|
51
|
+
installed_version: string | null;
|
|
52
|
+
update_available: boolean;
|
|
53
|
+
pending_version?: {
|
|
54
|
+
version: string;
|
|
55
|
+
review_status: string;
|
|
56
|
+
review_note?: string | null;
|
|
57
|
+
} | null;
|
|
58
|
+
}
|
|
59
|
+
interface CommunitySkillListResponse {
|
|
60
|
+
brand_id: string;
|
|
61
|
+
skills: CommunitySkill[];
|
|
62
|
+
count: number;
|
|
63
|
+
total: number;
|
|
64
|
+
}
|
|
65
|
+
export declare function renderCommunitySkills(data: CommunitySkillListResponse): string;
|
|
43
66
|
interface BrandSkillListResponse {
|
|
44
67
|
brand_id: string;
|
|
45
68
|
installed: InstalledSkill[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-skill.d.ts","sourceRoot":"","sources":["../../src/commands/brand-skill.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAY5E,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"brand-skill.d.ts","sourceRoot":"","sources":["../../src/commands/brand-skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,42 @@
|
|
|
1
1
|
/** `soku brand skill ...` — manage skills in the active brand workspace. */
|
|
2
2
|
import { existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, writeFileSync, } from 'node:fs';
|
|
3
3
|
import { basename, dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
|
|
4
|
+
import { InvalidArgumentError, Option } from 'commander';
|
|
4
5
|
import { zipSync } from 'fflate';
|
|
5
6
|
import { apiRequest } from '../http/client.js';
|
|
6
7
|
import { bold, cyan, dim, emitError, emitSuccess, ExitCode, green, table } from '../output/envelope.js';
|
|
7
8
|
import { isSafeSlug } from './skill.js';
|
|
8
9
|
const BRAND_SKILLS_PATH = '/api/cli/brand-skills';
|
|
10
|
+
function integerOption(min, max = Number.MAX_SAFE_INTEGER) {
|
|
11
|
+
return (raw) => {
|
|
12
|
+
const value = Number(raw);
|
|
13
|
+
if (!/^\d+$/.test(raw) || !Number.isSafeInteger(value) || value < min || value > max) {
|
|
14
|
+
throw new InvalidArgumentError(`Expected an integer from ${min} to ${max}.`);
|
|
15
|
+
}
|
|
16
|
+
return value;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function renderCommunitySkills(data) {
|
|
20
|
+
return `${table(data.skills.map((skill) => ({
|
|
21
|
+
slug: skill.slug,
|
|
22
|
+
name: skill.name,
|
|
23
|
+
version: skill.version,
|
|
24
|
+
publisher: skill.publisher_org_name,
|
|
25
|
+
credits: skill.price_credits,
|
|
26
|
+
entitlement: skill.entitlement ?? 'purchase required',
|
|
27
|
+
installed: skill.installed_version ?? '',
|
|
28
|
+
update: skill.update_available ? 'available' : '',
|
|
29
|
+
})), [
|
|
30
|
+
{ key: 'slug', header: 'SLUG' },
|
|
31
|
+
{ key: 'name', header: 'NAME' },
|
|
32
|
+
{ key: 'version', header: 'VERSION' },
|
|
33
|
+
{ key: 'publisher', header: 'PUBLISHER' },
|
|
34
|
+
{ key: 'credits', header: 'CREDITS' },
|
|
35
|
+
{ key: 'entitlement', header: 'ENTITLEMENT' },
|
|
36
|
+
{ key: 'installed', header: 'INSTALLED' },
|
|
37
|
+
{ key: 'update', header: 'UPDATE' },
|
|
38
|
+
])}\nShowing ${data.count} of ${data.total}; use --offset to see more.`;
|
|
39
|
+
}
|
|
9
40
|
export function brandSkillFilePath(slug, relPath) {
|
|
10
41
|
validateSkillRelPath(relPath);
|
|
11
42
|
return `${BRAND_SKILLS_PATH}/uploaded/${encodeURIComponent(slug)}/files/${encodeSkillPath(relPath)}`;
|
|
@@ -192,6 +223,57 @@ export function registerBrandSkillCommands(brand) {
|
|
|
192
223
|
const skill = brand
|
|
193
224
|
.command('skill')
|
|
194
225
|
.description('Manage skills in the active brand workspace (requires brand-skills)');
|
|
226
|
+
const community = skill.command('community').description('Browse and install community skills');
|
|
227
|
+
community.command('list')
|
|
228
|
+
.description('List community skills with prices, purchase eligibility, and brand install state')
|
|
229
|
+
.option('--query <text>', 'Search name and description')
|
|
230
|
+
.option('--category <slug>', 'Filter by category')
|
|
231
|
+
.addOption(new Option('--sort <order>', 'Sort order').choices(['recent', 'installs']).default('recent'))
|
|
232
|
+
.option('--limit <n>', 'Page size (1-100)', integerOption(1, 100), 30)
|
|
233
|
+
.option('--offset <n>', 'Pagination offset', integerOption(0), 0)
|
|
234
|
+
.action(async (opts) => {
|
|
235
|
+
const query = new URLSearchParams({ sort: opts.sort, limit: String(opts.limit), offset: String(opts.offset) });
|
|
236
|
+
if (opts.query !== undefined)
|
|
237
|
+
query.set('q', opts.query);
|
|
238
|
+
if (opts.category !== undefined)
|
|
239
|
+
query.set('category', opts.category);
|
|
240
|
+
const data = await apiRequest(`${BRAND_SKILLS_PATH}/community?${query}`, { workspace: true });
|
|
241
|
+
emitSuccess(data, renderCommunitySkills);
|
|
242
|
+
});
|
|
243
|
+
community.command('install <slug>')
|
|
244
|
+
.description('Install or upgrade a community skill; a paid purchase requires an explicitly agreed price')
|
|
245
|
+
.option('--expected-price-credits <credits>', 'Authorize this one-time purchase at the exact agreed price', integerOption(0))
|
|
246
|
+
.action(async (slug, opts) => {
|
|
247
|
+
validateSlug(slug);
|
|
248
|
+
const data = await apiRequest(`${BRAND_SKILLS_PATH}/community/${encodeURIComponent(slug)}/install`, {
|
|
249
|
+
method: 'POST', workspace: true,
|
|
250
|
+
body: opts.expectedPriceCredits === undefined ? undefined : { expected_price_credits: opts.expectedPriceCredits },
|
|
251
|
+
});
|
|
252
|
+
emitSuccess(data, (result) => `${renderMutation(result)} (${result.upgraded ? 'upgraded' : 'installed'})`);
|
|
253
|
+
});
|
|
254
|
+
skill.command('publish <slug>')
|
|
255
|
+
.description('Publish an uploaded private skill; paid versions require review before going live')
|
|
256
|
+
.option('--categories <slugs>', 'Comma-separated listing categories (at most 4)')
|
|
257
|
+
.option('--price-credits <credits>', '0 for free or 100-20000; omit to preserve the listing price', (raw) => {
|
|
258
|
+
const value = integerOption(0, 20000)(raw);
|
|
259
|
+
if (value > 0 && value < 100)
|
|
260
|
+
throw new InvalidArgumentError('Price must be 0 or at least 100 credits.');
|
|
261
|
+
return value;
|
|
262
|
+
})
|
|
263
|
+
.action(async (slug, opts) => {
|
|
264
|
+
validateSlug(slug);
|
|
265
|
+
const body = {};
|
|
266
|
+
if (opts.categories !== undefined) {
|
|
267
|
+
body.categories = [...new Set(opts.categories.split(',').map((value) => value.trim().toLowerCase()))];
|
|
268
|
+
if (body.categories.length > 4 || body.categories.some((value) => !/^[a-z][a-z0-9_-]{0,63}$/.test(value))) {
|
|
269
|
+
emitError('usage', 'Provide one to four lowercase category slugs.', ExitCode.USAGE);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
if (opts.priceCredits !== undefined)
|
|
273
|
+
body.price_credits = opts.priceCredits;
|
|
274
|
+
const data = await apiRequest(`${BRAND_SKILLS_PATH}/uploaded/${encodeURIComponent(slug)}/publish`, { method: 'POST', workspace: true, body });
|
|
275
|
+
emitSuccess(data);
|
|
276
|
+
});
|
|
195
277
|
skill
|
|
196
278
|
.command('list')
|
|
197
279
|
.description('List installed catalog skills and uploaded private skills')
|