@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.
@@ -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;AA+CxC,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,GAAG,GAChB,IAAI,CA2HN"}
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,CAwHN"}
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: opts.slugs !== undefined
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,CAgTN"}
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,CA4bN"}
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 # set the workspace up as code",
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, scaffold a CDK project, explore in
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" for a CDK project, "cli" for the palette, "demo" for the guided tour, or "none"')
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 it up as code",
409
- hint: "scaffold a CDK project with cargo-ai cdk init",
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("Cargo CDK — define resources in code and deploy them (plan/deploy)"), getApi);
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.
@@ -123,8 +123,8 @@ export function pinnedRows(input) {
123
123
  },
124
124
  {
125
125
  value: CODE,
126
- label: "Set up as code",
127
- hint: "scaffold a CDK project",
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.90",
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.78",
70
+ "@cargo-ai/api": "^1.0.81",
71
71
  "@cargo-ai/app-sdk": "^1.0.10",
72
- "@cargo-ai/cdk": "^1.0.73",
73
- "@cargo-ai/types": "^1.0.75",
74
- "@cargo-ai/utils": "^1.0.28",
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",