@uru-intelligence/cli 0.3.59 → 0.3.61

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
@@ -108,7 +108,7 @@ bun src/index.ts complete fish
108
108
  ```
109
109
 
110
110
  Generated MCP configs use non-interactive `npx -y` and pin
111
- `uru-mcp@3.7.1`. Pass `--package <package@version>` only for an intentional,
111
+ `uru-mcp@3.7.2`. Pass `--package <package@version>` only for an intentional,
112
112
  explicit bridge override.
113
113
 
114
114
  Gem Version commands save and inspect frozen checkpoints that group coherent
package/dist/library.mjs CHANGED
@@ -6864,7 +6864,10 @@ var zConnectionAdoptionRequest = strictObject({});
6864
6864
  var zConnectionApproval = object({
6865
6865
  adoptionId: string2().nullish(),
6866
6866
  connectionDisplayName: string2(),
6867
+ connectionIconUrl: string2().nullish(),
6867
6868
  connectionId: string2(),
6869
+ connectionIntegrationId: string2(),
6870
+ connectionServiceName: string2(),
6868
6871
  effectiveCapabilityIds: array(string2()),
6869
6872
  id: string2(),
6870
6873
  kind: _enum(["offer", "adoption"]),
@@ -7707,6 +7710,14 @@ var zExternalMemberInviteRequest = object({
7707
7710
  permissions: zExternalPermissions.optional(),
7708
7711
  role: string2().optional().default("member")
7709
7712
  });
7713
+ var zFeatureFlagSnapshot = object({
7714
+ collections: boolean2(),
7715
+ distribution_publishing: boolean2(),
7716
+ folder_sharing: boolean2()
7717
+ });
7718
+ var zFeatureFlagsResponse = object({
7719
+ flags: zFeatureFlagSnapshot
7720
+ });
7710
7721
  var zFilePreviewImageResponse = object({
7711
7722
  fileId: string2(),
7712
7723
  height: int().nullish(),
@@ -10786,7 +10797,10 @@ var zWorkspaceConnectionOffer = object({
10786
10797
  canWithdraw: boolean2(),
10787
10798
  connectionDisplayName: string2(),
10788
10799
  connectionHealth: _enum(["healthy", "unhealthy", "unknown"]),
10800
+ connectionIconUrl: string2().nullish(),
10789
10801
  connectionId: string2(),
10802
+ connectionIntegrationId: string2(),
10803
+ connectionServiceName: string2(),
10790
10804
  connectionStatus: string2(),
10791
10805
  createdAt: string2().nullish(),
10792
10806
  currentAdoptionId: string2().nullish(),
@@ -12279,7 +12293,8 @@ var zAuthorizeApiOauthAuthorizeGetQuery = object({
12279
12293
  state: string2().max(2048).nullish(),
12280
12294
  code_challenge: string2().min(43).max(128),
12281
12295
  code_challenge_method: string2().optional().default("S256"),
12282
- resource: url()
12296
+ resource: url(),
12297
+ prompt: _enum(["consent"]).optional()
12283
12298
  });
12284
12299
  var zAuthorizeApiOauthAuthorizeGetResponse = record(string2(), unknown());
12285
12300
  var zAuthorizeDecisionApiOauthAuthorizeDecisionPostResponse = record(string2(), string2());
@@ -14277,7 +14292,8 @@ var zAuthorizeOauthAuthorizeGetQuery = object({
14277
14292
  state: string2().max(2048).nullish(),
14278
14293
  code_challenge: string2().min(43).max(128),
14279
14294
  code_challenge_method: string2().optional().default("S256"),
14280
- resource: url()
14295
+ resource: url(),
14296
+ prompt: _enum(["consent"]).optional()
14281
14297
  });
14282
14298
  var zAuthorizeOauthAuthorizeGetResponse = record(string2(), unknown());
14283
14299
  var zAuthorizeDecisionOauthAuthorizeDecisionPostResponse = record(string2(), string2());
@@ -14323,7 +14339,7 @@ function pickString(record2, keys) {
14323
14339
  // package.json
14324
14340
  var package_default = {
14325
14341
  name: "@uru-intelligence/cli",
14326
- version: "0.3.59",
14342
+ version: "0.3.61",
14327
14343
  private: false,
14328
14344
  description: "Uru full-platform command line interface",
14329
14345
  repository: {
@@ -14332,7 +14348,7 @@ var package_default = {
14332
14348
  directory: "apps/cli"
14333
14349
  },
14334
14350
  uru: {
14335
- mcpPackage: "uru-mcp@3.7.1"
14351
+ mcpPackage: "uru-mcp@3.7.2"
14336
14352
  },
14337
14353
  type: "module",
14338
14354
  bin: {
@@ -14457,16 +14473,18 @@ class UruApiClient {
14457
14473
  method: "GET"
14458
14474
  });
14459
14475
  }
14460
- async runTool(name, parameters) {
14476
+ async runTool(name, parameters, operation) {
14461
14477
  return this.request(`/api/platform/tools/${encodeURIComponent(name)}/execute`, {
14462
14478
  method: "POST",
14463
- body: { parameters }
14479
+ body: { parameters },
14480
+ ...operation === undefined ? {} : { cliOperation: operation }
14464
14481
  });
14465
14482
  }
14466
- async streamTool(name, parameters, onEvent) {
14483
+ async streamTool(name, parameters, onEvent, operation) {
14467
14484
  return this.requestStream(`/api/platform/tools/${encodeURIComponent(name)}/execute`, {
14468
14485
  method: "POST",
14469
- body: { parameters }
14486
+ body: { parameters },
14487
+ ...operation === undefined ? {} : { cliOperation: operation }
14470
14488
  }, onEvent);
14471
14489
  }
14472
14490
  async api(path, options) {
@@ -14479,6 +14497,9 @@ class UruApiClient {
14479
14497
  headers: {
14480
14498
  Authorization: `Bearer ${this.token}`,
14481
14499
  Accept: "application/json",
14500
+ "X-Uru-Client-Name": "uru-cli",
14501
+ "X-Uru-Client-Version": CLI_VERSION,
14502
+ ...options.cliOperation === undefined ? {} : { "X-Uru-Client-Operation": options.cliOperation },
14482
14503
  ...this.workspaceId === undefined ? {} : { "X-Uru-Workspace-Id": this.workspaceId },
14483
14504
  ...options.body === undefined ? {} : { "Content-Type": "application/json" }
14484
14505
  },
@@ -14499,6 +14520,9 @@ class UruApiClient {
14499
14520
  headers: {
14500
14521
  Authorization: `Bearer ${this.token}`,
14501
14522
  Accept: "application/x-ndjson, application/json",
14523
+ "X-Uru-Client-Name": "uru-cli",
14524
+ "X-Uru-Client-Version": CLI_VERSION,
14525
+ ...options.cliOperation === undefined ? {} : { "X-Uru-Client-Operation": options.cliOperation },
14502
14526
  ...this.workspaceId === undefined ? {} : { "X-Uru-Workspace-Id": this.workspaceId },
14503
14527
  ...options.body === undefined ? {} : { "Content-Type": "application/json" }
14504
14528
  },
package/dist/uru.mjs CHANGED
@@ -20,7 +20,7 @@ import { spawn as spawn3 } from "node:child_process";
20
20
  // package.json
21
21
  var package_default = {
22
22
  name: "@uru-intelligence/cli",
23
- version: "0.3.59",
23
+ version: "0.3.61",
24
24
  private: false,
25
25
  description: "Uru full-platform command line interface",
26
26
  repository: {
@@ -29,7 +29,7 @@ var package_default = {
29
29
  directory: "apps/cli"
30
30
  },
31
31
  uru: {
32
- mcpPackage: "uru-mcp@3.7.1"
32
+ mcpPackage: "uru-mcp@3.7.2"
33
33
  },
34
34
  type: "module",
35
35
  bin: {
@@ -1086,17 +1086,7 @@ function datasetPathSpecs() {
1086
1086
  valueFlag("--filter-json"),
1087
1087
  valueFlag("--select"),
1088
1088
  enumFlag("--response-format", ["detailed", "concise"])
1089
- ]),
1090
- pathSpec(["datasets", "history"], "datasets", datasetId, [
1091
- ...pageFlags,
1092
- valueFlag("--version-id")
1093
- ]),
1094
- pathSpec(["datasets", "jobs"], "datasets", datasetId, pageFlags),
1095
- pathSpec(["datasets", "job"], "datasets", [
1096
- required("dataset-id"),
1097
- required("job-id")
1098
- ]),
1099
- pathSpec(["datasets", "cancel-job"], "datasets", [required("dataset-id"), required("job-id")], [booleanFlag("--yes")])
1089
+ ])
1100
1090
  ];
1101
1091
  }
1102
1092
  function libraryPathSpecs() {
@@ -1304,7 +1294,6 @@ function gemPathSpecs() {
1304
1294
  pathSpec(["gems", "links", "create"], "gems", [optional("gem")], [
1305
1295
  valueFlag("--name"),
1306
1296
  valueFlag("--version"),
1307
- booleanFlag("--pin"),
1308
1297
  valueFlag("--idempotency-key"),
1309
1298
  ...gemRefFlags
1310
1299
  ]),
@@ -1664,7 +1653,7 @@ var cliRootHelpGroups = [
1664
1653
  {
1665
1654
  command: "datasets",
1666
1655
  lines: [
1667
- " uru datasets get|query|history|jobs|job|cancel-job",
1656
+ " uru datasets get|query",
1668
1657
  " uru datasets create|update|rows|restore|sql|sql-write --params-json {...}",
1669
1658
  " Use the canonical Dataset tools"
1670
1659
  ]
@@ -8757,7 +8746,10 @@ var zConnectionAdoptionRequest = strictObject({});
8757
8746
  var zConnectionApproval = object({
8758
8747
  adoptionId: string2().nullish(),
8759
8748
  connectionDisplayName: string2(),
8749
+ connectionIconUrl: string2().nullish(),
8760
8750
  connectionId: string2(),
8751
+ connectionIntegrationId: string2(),
8752
+ connectionServiceName: string2(),
8761
8753
  effectiveCapabilityIds: array(string2()),
8762
8754
  id: string2(),
8763
8755
  kind: _enum(["offer", "adoption"]),
@@ -9600,6 +9592,14 @@ var zExternalMemberInviteRequest = object({
9600
9592
  permissions: zExternalPermissions.optional(),
9601
9593
  role: string2().optional().default("member")
9602
9594
  });
9595
+ var zFeatureFlagSnapshot = object({
9596
+ collections: boolean2(),
9597
+ distribution_publishing: boolean2(),
9598
+ folder_sharing: boolean2()
9599
+ });
9600
+ var zFeatureFlagsResponse = object({
9601
+ flags: zFeatureFlagSnapshot
9602
+ });
9603
9603
  var zFilePreviewImageResponse = object({
9604
9604
  fileId: string2(),
9605
9605
  height: int().nullish(),
@@ -12679,7 +12679,10 @@ var zWorkspaceConnectionOffer = object({
12679
12679
  canWithdraw: boolean2(),
12680
12680
  connectionDisplayName: string2(),
12681
12681
  connectionHealth: _enum(["healthy", "unhealthy", "unknown"]),
12682
+ connectionIconUrl: string2().nullish(),
12682
12683
  connectionId: string2(),
12684
+ connectionIntegrationId: string2(),
12685
+ connectionServiceName: string2(),
12683
12686
  connectionStatus: string2(),
12684
12687
  createdAt: string2().nullish(),
12685
12688
  currentAdoptionId: string2().nullish(),
@@ -14172,7 +14175,8 @@ var zAuthorizeApiOauthAuthorizeGetQuery = object({
14172
14175
  state: string2().max(2048).nullish(),
14173
14176
  code_challenge: string2().min(43).max(128),
14174
14177
  code_challenge_method: string2().optional().default("S256"),
14175
- resource: url()
14178
+ resource: url(),
14179
+ prompt: _enum(["consent"]).optional()
14176
14180
  });
14177
14181
  var zAuthorizeApiOauthAuthorizeGetResponse = record(string2(), unknown());
14178
14182
  var zAuthorizeDecisionApiOauthAuthorizeDecisionPostResponse = record(string2(), string2());
@@ -16170,7 +16174,8 @@ var zAuthorizeOauthAuthorizeGetQuery = object({
16170
16174
  state: string2().max(2048).nullish(),
16171
16175
  code_challenge: string2().min(43).max(128),
16172
16176
  code_challenge_method: string2().optional().default("S256"),
16173
- resource: url()
16177
+ resource: url(),
16178
+ prompt: _enum(["consent"]).optional()
16174
16179
  });
16175
16180
  var zAuthorizeOauthAuthorizeGetResponse = record(string2(), unknown());
16176
16181
  var zAuthorizeDecisionOauthAuthorizeDecisionPostResponse = record(string2(), string2());
@@ -16263,16 +16268,18 @@ class UruApiClient {
16263
16268
  method: "GET"
16264
16269
  });
16265
16270
  }
16266
- async runTool(name, parameters) {
16271
+ async runTool(name, parameters, operation) {
16267
16272
  return this.request(`/api/platform/tools/${encodeURIComponent(name)}/execute`, {
16268
16273
  method: "POST",
16269
- body: { parameters }
16274
+ body: { parameters },
16275
+ ...operation === undefined ? {} : { cliOperation: operation }
16270
16276
  });
16271
16277
  }
16272
- async streamTool(name, parameters, onEvent) {
16278
+ async streamTool(name, parameters, onEvent, operation) {
16273
16279
  return this.requestStream(`/api/platform/tools/${encodeURIComponent(name)}/execute`, {
16274
16280
  method: "POST",
16275
- body: { parameters }
16281
+ body: { parameters },
16282
+ ...operation === undefined ? {} : { cliOperation: operation }
16276
16283
  }, onEvent);
16277
16284
  }
16278
16285
  async api(path, options) {
@@ -16285,6 +16292,9 @@ class UruApiClient {
16285
16292
  headers: {
16286
16293
  Authorization: `Bearer ${this.token}`,
16287
16294
  Accept: "application/json",
16295
+ "X-Uru-Client-Name": "uru-cli",
16296
+ "X-Uru-Client-Version": CLI_VERSION,
16297
+ ...options.cliOperation === undefined ? {} : { "X-Uru-Client-Operation": options.cliOperation },
16288
16298
  ...this.workspaceId === undefined ? {} : { "X-Uru-Workspace-Id": this.workspaceId },
16289
16299
  ...options.body === undefined ? {} : { "Content-Type": "application/json" }
16290
16300
  },
@@ -16305,6 +16315,9 @@ class UruApiClient {
16305
16315
  headers: {
16306
16316
  Authorization: `Bearer ${this.token}`,
16307
16317
  Accept: "application/x-ndjson, application/json",
16318
+ "X-Uru-Client-Name": "uru-cli",
16319
+ "X-Uru-Client-Version": CLI_VERSION,
16320
+ ...options.cliOperation === undefined ? {} : { "X-Uru-Client-Operation": options.cliOperation },
16308
16321
  ...this.workspaceId === undefined ? {} : { "X-Uru-Workspace-Id": this.workspaceId },
16309
16322
  ...options.body === undefined ? {} : { "Content-Type": "application/json" }
16310
16323
  },
@@ -16779,17 +16792,14 @@ Create and inspect hosted Releases for explicit Versions. A Release never change
16779
16792
  a Link. Embedded Gems are link-ready without a Release.
16780
16793
  `,
16781
16794
  "gems links": `Usage: uru gems links list [library/name.gem]
16782
- uru gems links create [library/name.gem] --name <name> [--pin --version <version>]
16795
+ uru gems links create [library/name.gem] --name <name> --version <version>
16783
16796
  uru gems links set-version [library/name.gem] <link> <version>
16784
16797
  uru gems links set-access [library/name.gem] <link> --gate <gate>
16785
16798
  uru gems links set-notifications [library/name.gem] <link> <mode>
16786
16799
  uru gems links rotate|revoke [library/name.gem] <link>
16787
16800
 
16788
- A new Link FOLLOWS the Gem: it serves whatever the Gem's current Version is, and
16789
- needs no Version named. Add --pin --version <version> to freeze it on one
16790
- Version instead. --version on its own is refused, because a following Link would
16791
- discard it and publish something else. Changing one Link does not move any other
16792
- Link.
16801
+ A new Link opens one exact ready Version. Use set-version to move only that Link.
16802
+ Changing one Link does not move any other Link.
16793
16803
  `,
16794
16804
  "gems runs": `Usage: uru gems runs list [library/name.gem] [--cursor <cursor>] [--limit <n>] [--status <status>]
16795
16805
  uru gems runs show [library/name.gem] <run>
@@ -16819,10 +16829,6 @@ visible Library paths. For binary files, use library_upload through
16819
16829
  `,
16820
16830
  datasets: `Usage: uru datasets query <dataset-id> [--limit 100] [--cursor <cursor>] [--filter-json '{...}'] [--select name,status]
16821
16831
  uru datasets get <dataset-id>
16822
- uru datasets history <dataset-id> [--limit 100] [--cursor <cursor>] [--version-id <id>]
16823
- uru datasets jobs <dataset-id> [--cursor <cursor>]
16824
- uru datasets job <dataset-id> <job-id>
16825
- uru datasets cancel-job <dataset-id> <job-id> --yes
16826
16832
  uru datasets create|update|rows|restore|sql|sql-write --params-json '{...}'
16827
16833
 
16828
16834
  Dataset commands use stable identities, bounded server work, and the same tools
@@ -17017,7 +17023,7 @@ async function executeOperationStream(ctx, operationId, params, onEvent, options
17017
17023
  const response = await client(ctx).streamTool(operation.backendToolName, toolParams, (event) => {
17018
17024
  assertToolResultSuccess(event);
17019
17025
  onEvent(event);
17020
- });
17026
+ }, operationId);
17021
17027
  if (response.payload !== undefined) {
17022
17028
  assertToolResultSuccess(response.payload);
17023
17029
  }
@@ -17039,7 +17045,7 @@ async function executeOperation(ctx, operationId, params, options = {}) {
17039
17045
  if (operation.backendOp !== undefined) {
17040
17046
  toolParams["op"] = operation.backendOp;
17041
17047
  }
17042
- const result = await client(ctx).runTool(operation.backendToolName, toolParams);
17048
+ const result = await client(ctx).runTool(operation.backendToolName, toolParams, operationId);
17043
17049
  assertToolResultSuccess(result);
17044
17050
  return result;
17045
17051
  }
@@ -20989,6 +20995,7 @@ async function dispatchMcp(ctx, sub, args) {
20989
20995
  const flags = parseLocalFlags(args, ["mcp", sub]);
20990
20996
  const config2 = mcpServerConfig({
20991
20997
  apiKey: flags.values["--api-key"] ?? ctx.token,
20998
+ workspaceId: ctx.workspace,
20992
20999
  serverName: flags.values["--server-name"] ?? "uru",
20993
21000
  packageName: flags.values["--package"] ?? DEFAULT_MCP_PACKAGE
20994
21001
  });
@@ -21229,6 +21236,13 @@ function extractLibraryTextContent(value) {
21229
21236
  return typeof text === "string" ? text : undefined;
21230
21237
  }
21231
21238
  async function dispatchDatasets(ctx, sub, args) {
21239
+ if (sub === "get") {
21240
+ const flags2 = parseLocalFlags(args);
21241
+ await emitTool(ctx, "dataset.get", {
21242
+ dataset_id: requireCommandValue(flags2.positionals[0], "Usage: uru datasets get <dataset-id>")
21243
+ });
21244
+ return;
21245
+ }
21232
21246
  if (sub !== "query") {
21233
21247
  await dispatchRegistryFamily(ctx, "datasets", sub, args);
21234
21248
  return;
@@ -21390,7 +21404,10 @@ function mcpServerConfig(args) {
21390
21404
  [args.serverName]: {
21391
21405
  command: "npx",
21392
21406
  args: ["-y", args.packageName],
21393
- env: { URU_API_KEY: apiKey }
21407
+ env: {
21408
+ URU_API_KEY: apiKey,
21409
+ ...args.workspaceId === undefined ? {} : { URU_WORKSPACE_ID: args.workspaceId }
21410
+ }
21394
21411
  }
21395
21412
  }
21396
21413
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uru-intelligence/cli",
3
- "version": "0.3.59",
3
+ "version": "0.3.61",
4
4
  "private": false,
5
5
  "description": "Uru full-platform command line interface",
6
6
  "repository": {
@@ -9,7 +9,7 @@
9
9
  "directory": "apps/cli"
10
10
  },
11
11
  "uru": {
12
- "mcpPackage": "uru-mcp@3.7.1"
12
+ "mcpPackage": "uru-mcp@3.7.2"
13
13
  },
14
14
  "type": "module",
15
15
  "bin": {