clawdi 0.14.72 → 0.14.73

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clawdi",
3
- "version": "0.14.72",
3
+ "version": "0.14.73",
4
4
  "description": "The best home for all your AI agents. Run them in the cloud or connect your own—with their context and tools in one place.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -11,7 +11,6 @@
11
11
  "files": [
12
12
  "bin",
13
13
  "dist",
14
- "runtime-mcp",
15
14
  "egress-addon/clawdi_egress_addon.py",
16
15
  "skills",
17
16
  "LICENSE",
@@ -25,17 +24,16 @@
25
24
  },
26
25
  "scripts": {
27
26
  "dev": "bun run src/index.ts",
28
- "build": "bun run build:mcp && rm -rf dist && bun build src/index.ts --outdir dist --target node --minify --define 'process.env.CLAWDI_DEFAULT_API_URL=\"https://cloud-api.clawdi.ai\"' --define 'process.env.CLAWDI_DEFAULT_DEPLOY_API_URL=\"https://api.clawdi.ai\"'",
29
- "build:mcp": "bun build ../runtime-mcp/src/index.ts --outdir runtime-mcp --target node --minify",
27
+ "build": "rm -rf dist && bun build src/index.ts --outdir dist --target node --minify --define 'process.env.CLAWDI_DEFAULT_API_URL=\"https://cloud-api.clawdi.ai\"' --define 'process.env.CLAWDI_DEFAULT_DEPLOY_API_URL=\"https://api.clawdi.ai\"'",
30
28
  "build:native": "bun run scripts/build-native.mjs",
31
29
  "build:native-release": "bun run scripts/build-native-release.mjs",
32
30
  "package:native-release": "bun run scripts/package-native-release.mjs",
33
- "build:dev": "bun run build:mcp && rm -rf dist && bun build src/index.ts --outdir dist --target node",
31
+ "build:dev": "rm -rf dist && bun build src/index.ts --outdir dist --target node",
34
32
  "check:publish-manifest": "node scripts/check-publish-manifest.mjs",
35
33
  "check:native-release": "bun run scripts/check-native-release.mjs",
36
34
  "typecheck": "tsc --noEmit",
37
35
  "test": "../../scripts/test.sh cli",
38
- "test:internal": "bun run build:mcp && bash scripts/test-internal.sh",
36
+ "test:internal": "bash scripts/test-internal.sh",
39
37
  "test:e2e": "../../scripts/test.sh cli tests/e2e",
40
38
  "test:native-linux-lifecycle:internal": "CLAWDI_NATIVE_BINARY=${CLAWDI_NATIVE_BINARY:-dist-native/linux-x64/clawdi} bun test tests/e2e/native-installer.e2e.test.ts tests/e2e/native-daemon.e2e.test.ts",
41
39
  "test:watch:local": "bun test --watch",
@@ -66,7 +64,6 @@
66
64
  "devDependencies": {
67
65
  "@clack/prompts": "^1.7.0",
68
66
  "@clawdi/shared": "workspace:*",
69
- "@clawdi/runtime-mcp": "workspace:*",
70
67
  "@modelcontextprotocol/sdk": "^1.30.0",
71
68
  "@types/bun": "^1.4.0",
72
69
  "@types/node": "^24.13.3",
@@ -85,14 +85,12 @@ Vault read tools expose metadata and exact references:
85
85
  - `vault_list` — List Vault attachments and key counts for visible Projects.
86
86
  - `vault_get` — List key names, provenance, and exact `clawdi://` references for one attached Vault.
87
87
 
88
- Honor the user-selected Vault or existing local binding first; never silently switch
89
- sources. Otherwise inspect `vault_list` / `vault_get` metadata and reuse a Vault matching
90
- the task's purpose and intended access. Create in the current Workspace only when none
91
- is appropriate and creation is within the authorized task. Ask for the exact target only
92
- when ambiguity affects purpose or access. Linked Vaults can be synced read-only; do not
93
- request or modify fields outside the write boundary, or create duplicates to bypass access.
94
-
95
- Use `vault_sync` to save credentials locally for task use. The metadata tools return
88
+ Honor an explicit Vault/source or known local mapping first. Otherwise use `vault_list` /
89
+ `vault_get` metadata to reuse a Vault suited to the task's purpose and access. Create in
90
+ your own Workspace only when none is appropriate and the task authorizes creation.
91
+ Clarify ambiguous sources; never create duplicates or write to linked Projects to bypass access.
92
+
93
+ Use `vault_resolve` only when the authorized task requires plaintext. The metadata tools return
96
94
  key names and exact references, never secret values. Preserve those references when
97
95
  passing them to an authorized runtime:
98
96
 
@@ -130,24 +128,38 @@ If submission times out, inspect status before repeating a mutation.
130
128
 
131
129
  ### Save and refresh credentials locally
132
130
 
133
- After a request is `supplied`, use `vault_sync` to save credentials locally by default.
134
- Every call requires `path`: choose a supported env filename in this Agent's authenticated
135
- workspace based on project conventions and Vault purpose, such as `.env.stripe` or
136
- `stripe.env`, without routine user reconfirmation. Report the chosen path. A file without
137
- a binding also requires `project_id`, `vault_id`, and optional `section`. Omit `section`
138
- for the entire Vault; an empty string selects unsectioned fields. If sections reuse names,
139
- select one section per file. The target must be untracked, Git-ignored, and not a symlink.
140
- Check only file/path metadata when choosing a target; never read env contents into the
141
- conversation. Let `vault_sync` reuse the binding internally and reject local conflicts.
142
-
143
- Before later task use, call `vault_sync` with the same explicit `path` when a refresh is
144
- needed; omit source arguments to reuse that file's durable binding. It adds, updates
145
- and deletes managed fields while preserving unrelated assignments. Conflicting sources
146
- or local edits stop the write; restore the managed assignment or choose a new file.
147
- Return only file path, status and counts; never print keys or the file, log secrets, or
148
- save them to Memory. Sync does not upload local edits, run in the background, or reload
149
- a running process's environment. It requires the standalone local MCP adapter; remote-only
150
- HTTP cannot write files. Do not invent a CLI fallback or script synchronization.
131
+ Hosted runtime supplies `.clawdi/vaults/` under the native workspace automatically.
132
+ Connected macOS/Linux/WSL Agents receive the same layout only in the workspace explicitly
133
+ confirmed by setup. Use that configured path, which may differ from the current repository;
134
+ do not guess from HOME, daemon CWD, or scanned sessions. Existing registrations without a
135
+ Vault workspace do not download values. Native Windows daemon/file delivery is unsupported.
136
+
137
+ Inspect only the configured `.clawdi/vaults/index.json` to select the intended Vault/section.
138
+ Load its JSON file inside the authorized process or SDK without printing values or returning
139
+ them to model/tool-result context merely to save them. These are generated files: do not
140
+ edit, move or commit them. Hosted agents must not invoke/install the tenant Clawdi CLI.
141
+ Connected operators configure delivery with `clawdi setup --agent <type> --vault-workspace <path>`;
142
+ that changes only the Vault destination, never every repository scanned by the daemon.
143
+
144
+ After a credential request is supplied, wait for the expected fields in index metadata before
145
+ claiming delivery. If delivery is unavailable, report that state and any missing workspace
146
+ binding instead of inventing a destination. Preserve unrelated local configuration.
147
+
148
+ ### Optional CLI environment files
149
+
150
+ For an explicit operator-run compatibility workflow outside Hosted, use the available CLI.
151
+ Choose a target outside the generated `.clawdi/vaults` directory:
152
+
153
+ ```bash
154
+ clawdi vault materialize --vault <vault-uuid> --project <project-uuid> --out /absolute/project/.env
155
+ clawdi vault pull --out /absolute/project/.env
156
+ ```
157
+
158
+ The first command binds the exact source; later pulls reuse it and preserve unrelated
159
+ assignments. Optional `--section <name>` selects one section. Files must be untracked,
160
+ Git-ignored, and not symlinks. Source changes and local edits fail without overwriting.
161
+ Report only the path, status, and counts. This does not upload local edits, run in the
162
+ background, or reload a running process's environment.
151
163
 
152
164
  For explicit import/write, pass fields to `vault_item_upsert`; use
153
165
  `vault_item_delete` for exact batch deletions. Never upload local edits automatically.
@@ -57,17 +57,24 @@ generic web fetcher for Clawdi share URLs.
57
57
  - `project_list` — List Projects visible to the caller.
58
58
  - `project_get` — Read one visible Project by UUID.
59
59
 
60
- A Hosted runtime is restricted to its bound Project. Treat not-found as an access boundary
61
- as well as a possible unknown UUID; do not try to bypass it through another tool.
60
+ Strict-v2 Hosted runtimes can read their own Workspace and explicitly linked Projects
61
+ that remain readable by the owner. `project_current_get` returns that Workspace; writes,
62
+ new Vaults, and credential requests are limited to it. Legacy Agent-bound keys retain
63
+ their narrower bound-Project read scope. Treat not-found as an access boundary as well
64
+ as a possible unknown UUID; do not bypass it through another tool.
62
65
 
63
66
  ## Vault
64
67
 
65
68
  - `vault_list` — List attached Vaults and key counts for visible Projects.
66
69
  - `vault_get` — List key names, provenance, and exact references for an attached Vault.
67
70
 
68
- Use `vault_resolve` only when the current task requires one referenced plaintext value. Pass
69
- the exact Project-scoped reference. Treat the result as sensitive: never echo it, save it to
70
- Memory, or include it in logs.
71
+ Honor an explicit Vault/source or known local mapping first. Otherwise use `vault_list` /
72
+ `vault_get` metadata to reuse a Vault suited to the task's purpose and access. Create in
73
+ your own Workspace only when none is appropriate and the task authorizes creation.
74
+ Clarify ambiguous sources; never create duplicates or write to linked Projects to bypass access.
75
+
76
+ Use `vault_resolve` only for authorized credential use, with exact Project-scoped
77
+ reference(s) following its live schema. Never echo values, save them to Memory, or log them.
71
78
 
72
79
  The metadata tools never return plaintext secret values. Preserve exact references for
73
80
  `vault_resolve` or when passing them to an authorized runtime:
@@ -77,15 +84,15 @@ The metadata tools never return plaintext secret values. Preserve exact referenc
77
84
 
78
85
  Vault write tools are available for explicit user requests:
79
86
 
80
- - `vault_create` — Create a Vault attached to the runtime-bound Project.
87
+ - `vault_create` — Create a Vault attached to your own Workspace.
81
88
  - `vault_item_upsert` — Create or replace exact fields in an attached Vault.
82
89
  - `vault_item_delete` — Delete exact fields from a single-Project Vault.
83
90
 
84
91
  Follow the live schema and supply every required Project, Vault, section, and field identity;
85
92
  never infer an overwrite or deletion. Treat field values as sensitive inputs and never echo
86
- them, save them to Memory, or include them in logs. Hosted writes are restricted to the
87
- runtime-bound Project, and field deletion is rejected when a Vault is attached to multiple
88
- Projects. Whole-Vault deletion, attach/detach, bulk import, and credential profiles remain
93
+ them, save them to Memory, or include them in logs. Hosted writes are restricted to their
94
+ own Workspace (the runtime-bound Project). Field deletion is rejected when a Vault is
95
+ attached to multiple Projects. Whole-Vault deletion, attach/detach, and credential profiles remain
89
96
  unavailable through Agent MCP; do not bypass that boundary through raw HTTP.
90
97
 
91
98
  ### Request missing credentials
@@ -102,10 +109,29 @@ inspect the Vault and request only still-missing fields; never replace an existi
102
109
  retry. If creation times out, use `vault_get` to find recent request IDs before retrying.
103
110
  If submission times out, inspect status before repeating a mutation.
104
111
 
105
- Use `vault_resolve` for authorized runtime reads after supply. The returned `local_command`
106
- is guidance for a self-managed CLI installation, not an available hosted command. This
107
- runtime does not expose the CLI Vault-file binding/pull workflow; do not invent a local sync
108
- command or promise durable local environment synchronization here.
112
+ ### Use runtime-supplied credentials
113
+
114
+ Clawdi runtime synchronizes readable Vaults from your own Workspace and explicitly linked,
115
+ still-readable Projects into `.clawdi/vaults/` beneath your native workspace. Inspect only
116
+ `.clawdi/vaults/index.json` for Vault IDs, section names, exact references, field names and files.
117
+ Each section has a separate JSON file; equal field names in different sections stay separate.
118
+ Select by the user's intended Vault and section, never by an ambiguous field name alone.
119
+
120
+ Load the selected JSON file inside the authorized process or SDK without printing values.
121
+ For example, Python can use `json.load(open(path))` and pass the selected key directly to
122
+ its SDK. Do not read plaintext into model/tool-result context merely to save or copy it.
123
+ Do not invoke or install the Clawdi CLI from the tenant. Runtime owns these generated files:
124
+ do not edit, chmod, move, commit, or create your own files in `.clawdi/vaults/`. Preserve
125
+ unrelated configuration in its `.clawdi` parent. Connected installations use this same
126
+ layout on macOS/Linux only after an explicit workspace binding; do not assume an arbitrary
127
+ repo is bound. Files remain readable by authorized programs running as the same user.
128
+
129
+ After a credential request is supplied, inspect index metadata for the requested fields.
130
+ Pending requests are metadata only, never empty pseudo-secrets. If delivery is delayed,
131
+ report that state without claiming the credentials are saved. Runtime refreshes files;
132
+ already-running processes must explicitly reload them. Offline delivery retains last good
133
+ files; confirmed access removal removes generated files. Authorized code can read these
134
+ files, so do not claim that subsequent plaintext exposure is impossible.
109
135
 
110
136
  ## Connector Routing
111
137