@cargo-ai/cli 1.0.90 → 1.0.92
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/build/commands/connection/action.d.ts.map +1 -1
- package/build/commands/connection/action.js +5 -0
- package/build/commands/connection/integration.d.ts.map +1 -1
- package/build/commands/connection/integration.js +20 -6
- package/build/commands/orchestration/action.d.ts.map +1 -1
- package/build/commands/orchestration/action.js +4 -0
- package/build/commands/orchestration/record.d.ts.map +1 -1
- package/build/commands/orchestration/record.js +9 -0
- package/build/commands/start/brief.js +1 -1
- package/build/commands/start/index.js +4 -4
- package/build/index.js +1 -1
- package/build/paletteLayout.js +2 -2
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/commands/connection/action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/commands/connection/action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAkDxC,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,GAAG,GAChB,IAAI,CAoIN"}
|
|
@@ -12,6 +12,7 @@ export function registerActionSearchCommands(parent, getApi) {
|
|
|
12
12
|
.option("--category <engagement|marketing|sales|finance|analytics|freeform|success|support|enrichment|storage|custom>", "Filter by integration category")
|
|
13
13
|
.option("--integration <slug>", "Filter by integration slug (string)")
|
|
14
14
|
.option("--credits-only", "Only return credits-based (paid) actions (presence flag)")
|
|
15
|
+
.option("--is-deprecated <bool>", 'Search the actions of retired integrations instead (string: "true" or "false", default: "false"). They cannot be connected any more, but they keep running for the workspaces already on them')
|
|
15
16
|
.option("--limit <n>", `Maximum results to return (integer, default: ${String(DEFAULT_LIMIT)})`, String(DEFAULT_LIMIT))
|
|
16
17
|
.addHelpText("after", `
|
|
17
18
|
All query terms must match somewhere (action slug/name, integration, or description).
|
|
@@ -35,6 +36,9 @@ Examples:
|
|
|
35
36
|
hasActions: true,
|
|
36
37
|
category: opts.category,
|
|
37
38
|
slugs: opts.integration !== undefined ? [opts.integration] : undefined,
|
|
39
|
+
// What this search returns is what gets picked, so a retired
|
|
40
|
+
// integration in it reads as connectable.
|
|
41
|
+
isDeprecated: opts.isDeprecated === "true",
|
|
38
42
|
}));
|
|
39
43
|
const terms = queryTerms
|
|
40
44
|
.flatMap((term) => term.split(/\s+/))
|
|
@@ -64,6 +68,7 @@ Examples:
|
|
|
64
68
|
integrationSlug: integration.slug,
|
|
65
69
|
integrationName: integration.name,
|
|
66
70
|
category: integration.category,
|
|
71
|
+
isDeprecated: integration.isDeprecated,
|
|
67
72
|
actionSlug,
|
|
68
73
|
name: actionDef.name,
|
|
69
74
|
description: truncate(actionDef.description),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../../src/commands/connection/integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGxC,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,GAAG,GAChB,IAAI,
|
|
1
|
+
{"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../../src/commands/connection/integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGxC,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,GAAG,GAChB,IAAI,CAoJN"}
|
|
@@ -12,16 +12,23 @@ export function registerIntegrationCommands(parent, getApi) {
|
|
|
12
12
|
.option("--has-actions <bool>", 'Filter by presence of actions (string: "true" or "false")')
|
|
13
13
|
.option("--has-extractors <bool>", 'Filter by presence of extractors (string: "true" or "false")')
|
|
14
14
|
.option("--summary", "Only slug, name, and category — drops actions/schemas so pickers stay under the palette capture limit")
|
|
15
|
+
.option("--is-deprecated <bool>", 'Filter by deprecation status (string: "true" or "false", default: "false")')
|
|
16
|
+
.addHelpText("after", `
|
|
17
|
+
Retired integrations are left out unless --is-deprecated true is passed, including
|
|
18
|
+
when they are named through --slugs. They cannot be connected any more, but they
|
|
19
|
+
keep running for the workspaces already on them, and \`integration get <slug>\`
|
|
20
|
+
always returns one.`)
|
|
15
21
|
.action(async (opts) => {
|
|
16
22
|
const api = getApi();
|
|
23
|
+
const slugs = opts.slugs !== undefined
|
|
24
|
+
? opts.slugs
|
|
25
|
+
.split(",")
|
|
26
|
+
.map((slug) => slug.trim())
|
|
27
|
+
.filter((slug) => slug.length > 0)
|
|
28
|
+
: undefined;
|
|
17
29
|
const result = await handleApiCall(() => api.connection.integration.list({
|
|
18
30
|
category: opts.category,
|
|
19
|
-
slugs
|
|
20
|
-
? opts.slugs
|
|
21
|
-
.split(",")
|
|
22
|
-
.map((slug) => slug.trim())
|
|
23
|
-
.filter((slug) => slug.length > 0)
|
|
24
|
-
: undefined,
|
|
31
|
+
slugs,
|
|
25
32
|
search: opts.search,
|
|
26
33
|
hasActions: opts.hasActions === "true"
|
|
27
34
|
? true
|
|
@@ -33,6 +40,10 @@ export function registerIntegrationCommands(parent, getApi) {
|
|
|
33
40
|
: opts.hasExtractors === "false"
|
|
34
41
|
? false
|
|
35
42
|
: undefined,
|
|
43
|
+
// Unlike its siblings, this one defaults to filtering rather than to
|
|
44
|
+
// not: the list is what a picker offers, so a retired integration in
|
|
45
|
+
// it reads as connectable. `integration get` looks one up by name.
|
|
46
|
+
isDeprecated: opts.isDeprecated === "true",
|
|
36
47
|
}));
|
|
37
48
|
// Full `integration.list` is multi-megabyte (every action schema). The
|
|
38
49
|
// palette captures at most 2MB; without this trim, JSON truncates and
|
|
@@ -43,6 +54,7 @@ export function registerIntegrationCommands(parent, getApi) {
|
|
|
43
54
|
slug: integration.slug,
|
|
44
55
|
name: integration.name,
|
|
45
56
|
category: integration.category,
|
|
57
|
+
isDeprecated: integration.isDeprecated,
|
|
46
58
|
})),
|
|
47
59
|
});
|
|
48
60
|
return;
|
|
@@ -70,10 +82,12 @@ export function registerIntegrationCommands(parent, getApi) {
|
|
|
70
82
|
.description("Complete OAuth flow for an integration")
|
|
71
83
|
.requiredOption("--slug <slug>", "Integration slug (string, required)")
|
|
72
84
|
.requiredOption("--params <json>", "OAuth callback parameters (JSON object, required)")
|
|
85
|
+
.option("--connector-uuid <uuid>", "Existing connector UUID")
|
|
73
86
|
.action(async (opts) => {
|
|
74
87
|
const api = getApi();
|
|
75
88
|
const result = await handleApiCall(() => api.connection.integration.completeOauth({
|
|
76
89
|
slug: opts.slug,
|
|
90
|
+
connectorUuid: opts.connectorUuid,
|
|
77
91
|
params: parseJson(opts.params, "--params"),
|
|
78
92
|
}));
|
|
79
93
|
outputJson(result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/commands/orchestration/action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAaxC,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,GAAG,GAChB,IAAI,
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/commands/orchestration/action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAaxC,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,GAAG,GAChB,IAAI,CAwTN"}
|
|
@@ -25,6 +25,7 @@ To debug a node inside an existing workflow instead, use
|
|
|
25
25
|
.option("--kind <connector|native|tool|agent>", "Restrict to one kind")
|
|
26
26
|
.option("--integration-slug <slug>", "Restrict connector actions to this integration (string)")
|
|
27
27
|
.option("--category <engagement|marketing|sales|finance|analytics|freeform|success|support|enrichment|storage|custom>", "Restrict connector actions to integrations in this category")
|
|
28
|
+
.option("--is-deprecated <bool>", 'List the actions of retired integrations instead (string: "true" or "false", default: "false"). They cannot be connected any more, but they keep running for the workspaces already on them')
|
|
28
29
|
.option("--limit <n>", "Maximum results to return (integer). Omit to return all results.")
|
|
29
30
|
.addHelpText("after", `
|
|
30
31
|
Each result includes an 'action' object you can pass to execute, execute-batch,
|
|
@@ -68,6 +69,9 @@ Examples:
|
|
|
68
69
|
kind,
|
|
69
70
|
integrationSlug: opts.integrationSlug,
|
|
70
71
|
category: opts.category,
|
|
72
|
+
// What this list returns is what gets picked, so a retired
|
|
73
|
+
// integration in it reads as connectable.
|
|
74
|
+
isDeprecated: opts.isDeprecated === "true",
|
|
71
75
|
limit,
|
|
72
76
|
}));
|
|
73
77
|
outputJson(result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../src/commands/orchestration/record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAIxC,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,GAAG,GAChB,IAAI,
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../src/commands/orchestration/record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAIxC,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,GAAG,GAChB,IAAI,CA+cN"}
|
|
@@ -168,6 +168,13 @@ export function registerRecordCommands(parent, getApi) {
|
|
|
168
168
|
.option("--executions-filter <json>", 'Executions filter (JSON, e.g. {"conjonction":"and","groups":[{"conjonction":"and","conditions":[{"kind":"node","nodeSlug":"...","status":"pending"}]}]})')
|
|
169
169
|
.option("--created-after <date>", "Created after date")
|
|
170
170
|
.option("--created-before <date>", "Created before date")
|
|
171
|
+
.option("--limit <n>", "Max records to include in the export (integer)")
|
|
172
|
+
.option("--offset <n>", "Number of records to skip before exporting (integer)")
|
|
173
|
+
.addHelpText("after", `
|
|
174
|
+
Examples:
|
|
175
|
+
$ cargo-ai orchestration record download-outputs --workflow-uuid 550e8400-... --output-node-slug my-output
|
|
176
|
+
$ cargo-ai orchestration record download-outputs --workflow-uuid 550e8400-... --output-node-slug my-output --format json
|
|
177
|
+
$ cargo-ai orchestration record download-outputs --workflow-uuid 550e8400-... --output-node-slug my-output --limit 1000 --offset 2000`)
|
|
171
178
|
.action(async (opts) => {
|
|
172
179
|
const api = getApi();
|
|
173
180
|
const result = await handleApiCall(() => api.orchestration.record.downloadOutputs({
|
|
@@ -193,6 +200,8 @@ export function registerRecordCommands(parent, getApi) {
|
|
|
193
200
|
: undefined,
|
|
194
201
|
createdAfter: opts.createdAfter,
|
|
195
202
|
createdBefore: opts.createdBefore,
|
|
203
|
+
limit: opts.limit !== undefined ? parseInt(opts.limit, 10) : undefined,
|
|
204
|
+
offset: opts.offset !== undefined ? parseInt(opts.offset, 10) : undefined,
|
|
196
205
|
}));
|
|
197
206
|
outputJson(result);
|
|
198
207
|
});
|
|
@@ -171,7 +171,7 @@ export function formatStartNextSteps(facts) {
|
|
|
171
171
|
"Next steps:",
|
|
172
172
|
" cargo-ai whoami # confirm the workspace",
|
|
173
173
|
" cargo-ai orchestration action list enrich # find something to run",
|
|
174
|
-
" cargo-ai cdk init #
|
|
174
|
+
" cargo-ai cdk init # define this workspace in a repo",
|
|
175
175
|
" cargo-ai # the command palette",
|
|
176
176
|
];
|
|
177
177
|
if (facts.skillsInstalled === false) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// `cargo-ai start` — and what a bare `cargo-ai` opens when nobody is signed in
|
|
2
2
|
// yet.
|
|
3
3
|
//
|
|
4
|
-
// Open a coding agent, run the guided demo,
|
|
4
|
+
// Open a coding agent, run the guided demo, set up a project, explore in
|
|
5
5
|
// the palette, or nothing. Each is a value of `--continue`, so the whole flow
|
|
6
6
|
// runs headless. `onboard` survives as an alias for anything already written
|
|
7
7
|
// down.
|
|
@@ -56,7 +56,7 @@ export function registerStartCommand(program, getApi, deps) {
|
|
|
56
56
|
.option("--oauth [true|false]", "Sign in via browser", parseBooleanOption)
|
|
57
57
|
.option("--workspace-name <name>", "Workspace to use, created if it does not exist")
|
|
58
58
|
.option("--workspace-uuid <uuid>", "Workspace to use")
|
|
59
|
-
.option("--continue <where>", 'Where to continue: a coding agent ("claude", "cursor", "codex", "gemini"), "code"
|
|
59
|
+
.option("--continue <where>", 'Where to continue: a coding agent ("claude", "cursor", "codex", "gemini"), "code" to set up a project, "cli" for the palette, "demo" for the guided tour, or "none"')
|
|
60
60
|
.option("--directory <path>", "Directory to scaffold into, for `--continue code`. Required when there is nobody to ask; supplying it also skips the project wizard, the way `cdk init <directory>` does")
|
|
61
61
|
.option("--icp <description>", "Who you sell to, used to brief the guided demo")
|
|
62
62
|
.option("--base-url <url>", "Cargo API base URL")
|
|
@@ -405,8 +405,8 @@ async function askDestination() {
|
|
|
405
405
|
},
|
|
406
406
|
{
|
|
407
407
|
value: "code",
|
|
408
|
-
label: "Set
|
|
409
|
-
hint: "
|
|
408
|
+
label: "Set up a Cargo project",
|
|
409
|
+
hint: "a repo that defines this workspace in code",
|
|
410
410
|
},
|
|
411
411
|
{
|
|
412
412
|
value: "demo",
|
package/build/index.js
CHANGED
|
@@ -250,7 +250,7 @@ registerMailboxManagementCommands(program, getApi);
|
|
|
250
250
|
registerMcpCommand(program, getApi);
|
|
251
251
|
registerCdkCommands(program
|
|
252
252
|
.command("cdk")
|
|
253
|
-
.description("
|
|
253
|
+
.description("Define this workspace in a repo and deploy it (init/plan/deploy)"), getApi);
|
|
254
254
|
// Bare `cargo-ai` in a terminal opens the palette instead of printing the help
|
|
255
255
|
// wall: twenty command groups is a list to navigate, not one to read. Anything
|
|
256
256
|
// non-interactive (a pipe, CI, an agent) keeps the help it has always had.
|
package/build/paletteLayout.js
CHANGED
|
@@ -123,8 +123,8 @@ export function pinnedRows(input) {
|
|
|
123
123
|
},
|
|
124
124
|
{
|
|
125
125
|
value: CODE,
|
|
126
|
-
label: "Set up
|
|
127
|
-
hint: "
|
|
126
|
+
label: "Set up a Cargo project",
|
|
127
|
+
hint: "a repo that defines this workspace in code",
|
|
128
128
|
argv: [ENTRANCE, "--continue", "code"],
|
|
129
129
|
},
|
|
130
130
|
];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cargo-ai/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.92",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"homepage": "https://getcargo.ai",
|
|
@@ -67,11 +67,11 @@
|
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@ai-sdk/harness": "^1.0.95",
|
|
69
69
|
"@ai-sdk/harness-claude-code": "^1.0.99",
|
|
70
|
-
"@cargo-ai/api": "^1.0.
|
|
70
|
+
"@cargo-ai/api": "^1.0.81",
|
|
71
71
|
"@cargo-ai/app-sdk": "^1.0.10",
|
|
72
|
-
"@cargo-ai/cdk": "^1.0.
|
|
73
|
-
"@cargo-ai/types": "^1.0.
|
|
74
|
-
"@cargo-ai/utils": "^1.0.
|
|
72
|
+
"@cargo-ai/cdk": "^1.0.78",
|
|
73
|
+
"@cargo-ai/types": "^1.0.77",
|
|
74
|
+
"@cargo-ai/utils": "^1.0.30",
|
|
75
75
|
"@cargo-ai/worker-sdk": "^1.0.17",
|
|
76
76
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
77
77
|
"ai": "^7.0.84",
|