@uru-intelligence/cli 0.4.14 → 0.4.17
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/CHANGELOG.md +12 -0
- package/dist/library.mjs +23 -18
- package/dist/uru.mjs +6125 -4797
- package/package.json +4 -6
package/CHANGELOG.md
CHANGED
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
|
|
19
19
|
### Added
|
|
20
20
|
|
|
21
|
+
- A tool call that parks for approval now names itself, and uru tools approve <question-id> --accept|--decline answers it from the shell. — surfaces: cli; reference: URU-1362
|
|
22
|
+
- Action: A parked call prints its named status (approval_required or refused_by_policy), its question id, and its write class. Answer it with uru tools approve <question-id> --accept or --decline. The id is the durable approval row's own id, so the same answer settles the card in chat. Running the command twice is safe: it prints the answer that won.
|
|
21
23
|
- Add `uru link --verify` for local link diagnostics and `uru gems links create --verify` to run browser verification after link creation. — surfaces: cli, docs; reference: apps/cli/src/workspace-commands.ts
|
|
22
24
|
- Action: Use `uru link --verify` to confirm `.uru/project.json` and the remote Gem still resolve before source work. After `uru gems links create`, add `--verify` to run `gem.browser_verify` on the new Link's Gem.
|
|
23
25
|
- Add a side-effect-free internal CLI library entrypoint with a typed whoami foundation. _(internal)_ — surfaces: cli, sdk; reference: docs/plans/cli-sdk-native-release-modernization/DECISION_RECORDS.md
|
|
@@ -40,6 +42,10 @@
|
|
|
40
42
|
- Action: Use uru tools inspect <name> or uru operations inspect <operation-id> to print a contract. Pass --params-json @path.json or --params-json @- to load parameters from a file or stdin.
|
|
41
43
|
- Make uru update compare this CLI to the latest npm version and add --check --json. — surfaces: cli; reference: apps/cli/src/update-check.ts
|
|
42
44
|
- Action: No action is required. uru update never installs itself. Run uru update --check --json for machine output, or npm install -g @uru-intelligence/cli@latest to install.
|
|
45
|
+
- uru tools reads the whole tool catalog — platform, personal, adopted, company and external MCP — and runs a connector tool through the MCP proxy. — surfaces: cli, docs; reference: URU-1363
|
|
46
|
+
- Action: Name a tool by its <provider>.<owner>.<connection>.<tool> address; the flat <namespace>__<tool> wire name still resolves. Use uru tools search "<task>", uru tools ls, uru tools <partial address> --help, uru tools schema|inspect <address>, uru tools run <address> -d '{...}' with --get-schema, --dry-run or --parallel, and uru tools connections. Every refusal carries a name: no_match, catalog_unavailable, namespace_unavailable, not_connected, not_adopted, approval_required, refused_by_policy.
|
|
47
|
+
- uru tools search takes --offset, so a second page of matches no longer means re-reading the first. — surfaces: cli; reference: https://linear.app/uru-intelligence/issue/URU-1361
|
|
48
|
+
- Action: Pass --offset with the nextOffset the previous result printed. An offset past the end prints an empty page with the real total rather than refusing as no match.
|
|
43
49
|
|
|
44
50
|
### Changed
|
|
45
51
|
|
|
@@ -48,6 +54,10 @@
|
|
|
48
54
|
|
|
49
55
|
### Fixed
|
|
50
56
|
|
|
57
|
+
- A connector call the host parked or refused now reaches the shell with its status and its resumable question id, instead of a sentence the CLI had to read for the word approval. — surfaces: cli; reference: https://linear.app/uru-intelligence/issue/URU-1362
|
|
58
|
+
- Action: Answer a parked call with uru tools approve <question-id> --accept or --decline. The id is printed with the refusal.
|
|
59
|
+
- Clear automation runs-list usage when automation_id is missing, skip confirm on delete --preview, accept snake_case registry aliases, emit structured token create JSON, and register sharing.labels_list / sharing.label_create ops. — surfaces: cli, docs; reference: apps/cli/src/local-commands.ts
|
|
60
|
+
- Action: uru automations runs ls now requires <automation-id> and prints usage instead of an opaque schema error. Preview deletes no longer need --yes. Prefer published CLI >= 0.4.15 for labels aliases, snake_case registry params, and token create JSON id.
|
|
51
61
|
- JSON output for destructive CLI operations refused without `--yes` now includes `confirmationRequired: true` and a copy-paste `suggestedCommand` with `--yes` appended. — surfaces: cli; reference: apps/cli/src/cli-runtime.ts
|
|
52
62
|
- Action: No action is required. Agents and scripts can read `suggestedCommand` from JSON errors instead of guessing the confirmation flag.
|
|
53
63
|
- Keep the CLI login when you switch workspace. A leftover workspace from a previous switch no longer poisons the next login. `uru switch` marks the current workspace in the list. — surfaces: cli; reference: apps/cli/src/oauth-credential.ts
|
|
@@ -62,6 +72,8 @@
|
|
|
62
72
|
- Action: No action is required. `uru doctor` gains a `data access` check and fails when a credential validates but cannot execute tools; a token supplied through `--token` or `URU_TOKEN` is no longer told to run `uru login`.
|
|
63
73
|
- Send scope on uru automations create, honor --output/--json on uru tools run, and keep errorId plus httpStatus on JSON errors. — surfaces: cli; reference: apps/cli/src/local-commands.ts
|
|
64
74
|
- Action: uru automations create now sends scope=workspace by default. Pass --scope personal when creating a personal automation. JSON errors include errorId and httpStatus when the API provides them.
|
|
75
|
+
- Tip library_fs read refusals toward library_query, and ship labels/list aliases that need a live catalog with list_labels/create_label. — surfaces: cli, docs; reference: PR #5379 CF001; PR #5381 staging labels catalog
|
|
76
|
+
- Action: Prefer published CLI >= 0.4.15. Use uru sharing labels_list / label_create (or operations sharing.labels_list / sharing.label_create). library_fs read ops should point callers at library_query instead of an opaque safety refusal.
|
|
65
77
|
- Use the shared SemVer contract when deciding whether to show a CLI update notice. — surfaces: cli, release; reference: docs/plans/cli-sdk-native-release-modernization/PLAN.md
|
|
66
78
|
- Action: No action is required; prerelease and malformed registry versions now follow the same validation and ordering rules as release publication.
|
|
67
79
|
|
package/dist/library.mjs
CHANGED
|
@@ -6846,6 +6846,7 @@ var zBulkPermissionsUpdateResponse = object({
|
|
|
6846
6846
|
updatedCount: int()
|
|
6847
6847
|
});
|
|
6848
6848
|
var zCanonicalToolCatalogEntry = object({
|
|
6849
|
+
address: string2(),
|
|
6849
6850
|
agentAliasFragment: string2().nullish(),
|
|
6850
6851
|
agentVisibleNamespace: string2().nullish(),
|
|
6851
6852
|
annotations: record(string2(), unknown()).nullish(),
|
|
@@ -6867,6 +6868,7 @@ var zCanonicalToolCatalogEntry = object({
|
|
|
6867
6868
|
namespace: string2(),
|
|
6868
6869
|
normalizedSubtoolName: string2(),
|
|
6869
6870
|
outputSchema: record(string2(), unknown()).nullish(),
|
|
6871
|
+
owner: _enum(["platform", "personal", "adopted", "company"]),
|
|
6870
6872
|
ownerUserId: uuid2().nullable(),
|
|
6871
6873
|
personaLinkId: uuid2().nullish(),
|
|
6872
6874
|
personaName: string2().nullish(),
|
|
@@ -6875,6 +6877,8 @@ var zCanonicalToolCatalogEntry = object({
|
|
|
6875
6877
|
serviceSlug: string2(),
|
|
6876
6878
|
sourceUserName: string2().nullish(),
|
|
6877
6879
|
title: string2().nullish(),
|
|
6880
|
+
type: _enum(["platform", "composio", "managed_mcp", "external_mcp", "company"]),
|
|
6881
|
+
typeLabel: string2(),
|
|
6878
6882
|
visibilitySource: string2().nullish(),
|
|
6879
6883
|
workspaceId: uuid2().nullable(),
|
|
6880
6884
|
wrapperToolName: string2()
|
|
@@ -16708,6 +16712,9 @@ var zListAvailableToolDefinitionsApiToolControlPlaneAvailableGetQuery = object({
|
|
|
16708
16712
|
enabledOnly: _enum(["true", "false"]).optional().default("true")
|
|
16709
16713
|
});
|
|
16710
16714
|
var zListAvailableToolDefinitionsApiToolControlPlaneAvailableGetResponse = array(zToolDefinitionResponse);
|
|
16715
|
+
var zListCatalogApiToolControlPlaneCatalogGetHeaders = object({
|
|
16716
|
+
"X-Uru-Workspace-Id": string2().min(1).optional()
|
|
16717
|
+
});
|
|
16711
16718
|
var zListCatalogApiToolControlPlaneCatalogGetQuery = object({
|
|
16712
16719
|
enabledOnly: _enum(["true", "false"]).optional().default("true")
|
|
16713
16720
|
});
|
|
@@ -16903,7 +16910,7 @@ function pickString(record2, keys) {
|
|
|
16903
16910
|
// package.json
|
|
16904
16911
|
var package_default = {
|
|
16905
16912
|
name: "@uru-intelligence/cli",
|
|
16906
|
-
version: "0.4.
|
|
16913
|
+
version: "0.4.17",
|
|
16907
16914
|
private: false,
|
|
16908
16915
|
description: "Uru full-platform command line interface",
|
|
16909
16916
|
repository: {
|
|
@@ -16928,14 +16935,12 @@ var package_default = {
|
|
|
16928
16935
|
access: "public"
|
|
16929
16936
|
},
|
|
16930
16937
|
scripts: {
|
|
16931
|
-
lint: "node ../../scripts/run-with-repo-node.mjs oxlint --type-aware --deny-warnings -c ../../oxlint.
|
|
16932
|
-
"lint:fix": "node ../../scripts/run-with-repo-node.mjs oxlint --type-aware --deny-warnings -c ../../oxlint.
|
|
16938
|
+
lint: "node ../../scripts/run-with-repo-node.mjs oxlint --type-aware --deny-warnings -c ../../oxlint.config.mts .",
|
|
16939
|
+
"lint:fix": "node ../../scripts/run-with-repo-node.mjs oxlint --type-aware --deny-warnings -c ../../oxlint.config.mts --fix .",
|
|
16933
16940
|
"type-check": "tsc --noEmit",
|
|
16934
16941
|
test: "bun test",
|
|
16935
16942
|
"test:unit": "bun test",
|
|
16936
|
-
|
|
16937
|
-
"format:check": "prettier --check . --ignore-path ../../.prettierignore",
|
|
16938
|
-
ci: "bun run lint && bun run type-check && bun run test:unit && bun run docs:check && bun run changelog:check && bun run format:check && bun run build && bun run smoke:package && bun run smoke:binaries",
|
|
16943
|
+
ci: "bun run lint && bun run type-check && bun run test:unit && bun run docs:check && bun run changelog:check && bun run build && bun run smoke:package && bun run smoke:binaries",
|
|
16939
16944
|
build: "node scripts/build.mjs",
|
|
16940
16945
|
prepack: "bun run build",
|
|
16941
16946
|
"docs:generate": "bun scripts/generate-docs.mjs",
|
|
@@ -17019,8 +17024,16 @@ function defaultCliErrorCode(exitCode) {
|
|
|
17019
17024
|
}
|
|
17020
17025
|
}
|
|
17021
17026
|
|
|
17022
|
-
// src/
|
|
17023
|
-
|
|
17027
|
+
// src/gem-panel-client.ts
|
|
17028
|
+
function stripTerminalControl(value) {
|
|
17029
|
+
let out = "";
|
|
17030
|
+
for (const ch of value) {
|
|
17031
|
+
const code = ch.codePointAt(0) ?? 0;
|
|
17032
|
+
const isControl = code < 32 && code !== 10 && code !== 9 || code === 127 || code >= 128 && code <= 159;
|
|
17033
|
+
out += isControl ? "�" : ch;
|
|
17034
|
+
}
|
|
17035
|
+
return out;
|
|
17036
|
+
}
|
|
17024
17037
|
|
|
17025
17038
|
// ../../packages/types/src/mcp/gemResult.ts
|
|
17026
17039
|
var GEM_RESULT_SCHEMA_V1 = "uru.gem.result.v1";
|
|
@@ -17086,16 +17099,8 @@ function requiredString(record2, key, label) {
|
|
|
17086
17099
|
return value;
|
|
17087
17100
|
}
|
|
17088
17101
|
|
|
17089
|
-
// src/
|
|
17090
|
-
|
|
17091
|
-
let out = "";
|
|
17092
|
-
for (const ch of value) {
|
|
17093
|
-
const code = ch.codePointAt(0) ?? 0;
|
|
17094
|
-
const isControl = code < 32 && code !== 10 && code !== 9 || code === 127 || code >= 128 && code <= 159;
|
|
17095
|
-
out += isControl ? "�" : ch;
|
|
17096
|
-
}
|
|
17097
|
-
return out;
|
|
17098
|
-
}
|
|
17102
|
+
// src/oauth-credential.ts
|
|
17103
|
+
var SESSION_REFRESH_LEEWAY_MS = 5 * 60 * 1000;
|
|
17099
17104
|
|
|
17100
17105
|
// src/client.ts
|
|
17101
17106
|
class UruApiClient {
|