clawdi 0.14.70 → 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.70",
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",
@@ -72,9 +72,11 @@ Three read-only tools expose the caller's visible Project context:
72
72
  - `project_list` — List visible Projects.
73
73
  - `project_get` — Read one visible Project by UUID.
74
74
 
75
- Hosted runtimes see only their bound Project. Treat a not-found response as an
76
- access boundary as well as a possible unknown UUID; do not try to bypass it
77
- through another tool.
75
+ Strict-v2 Hosted runtimes can read their own Workspace and explicitly linked Projects
76
+ that remain readable by the owner. `project_current_get` returns that Workspace;
77
+ writes, new Vaults, and credential requests are limited to that Workspace. Legacy
78
+ Agent-bound keys retain their narrower bound-Project read scope. Treat not-found as
79
+ an access boundary as well as a possible unknown UUID; never bypass it with another tool.
78
80
 
79
81
  ## Vault
80
82
 
@@ -83,19 +85,19 @@ Vault read tools expose metadata and exact references:
83
85
  - `vault_list` — List Vault attachments and key counts for visible Projects.
84
86
  - `vault_get` — List key names, provenance, and exact `clawdi://` references for one attached Vault.
85
87
 
86
- Use `vault_resolve` only when the current task requires one referenced plaintext value. Pass
87
- the exact Project-scoped reference. Treat the result as sensitive: never echo it, save it to
88
- Memory, or include it in logs.
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.
89
92
 
90
- The metadata tools never resolve or return plaintext. Never imply that a returned key name
91
- is a secret value. Preserve their exact references for `vault_resolve` or when passing them
92
- to an authorized runtime:
93
+ Use `vault_resolve` only when the authorized task requires plaintext. The metadata tools return
94
+ key names and exact references, never secret values. Preserve those references when
95
+ passing them to an authorized runtime:
93
96
 
94
97
  - `clawdi://project/<project-id>/vault/<vault>/field/<field>`
95
98
  - `clawdi://project/<project-id>/vault/<vault>/section/<section>/field/<field>`
96
99
 
97
- Use the live schemas from the `clawdi` MCP server as authoritative; the local
98
- stdio command only transports the protocol.
100
+ Use the live schemas from the `clawdi` MCP server as authoritative.
99
101
 
100
102
  Vault write tools are available for explicit user requests:
101
103
 
@@ -107,9 +109,61 @@ Follow the live schema and supply every required Project, Vault, section, and fi
107
109
  never infer an overwrite or deletion. Treat field values as sensitive inputs and never echo
108
110
  them, save them to Memory, or include them in logs. Environment-bound callers may write only
109
111
  their bound Project, and field deletion is rejected when a Vault is attached to multiple
110
- Projects. Whole-Vault deletion, attach/detach, bulk import, and credential profiles remain
112
+ Projects. Whole-Vault deletion, attach/detach, and credential profiles remain
111
113
  foreground operator workflows; never bypass that boundary through raw HTTP or daemon RPC.
112
114
 
115
+ ### Request missing credentials
116
+
117
+ Use `vault_request_create` with exact `project_id`, `vault_id`, canonical `slug`, optional
118
+ `section`, and a batch of environment field names in `fields`. A Vault is a key bundle:
119
+ request related keys together under one link. Supplied or already-pending fields are rejected.
120
+ Show the returned `url` unchanged to the user; do not ask them to paste secrets into chat.
121
+ Opening the link does not consume it. Saving all requested fields consumes it once.
122
+
123
+ Check `vault_request_status` with its `request_id` after the user finishes. `pending` is not
124
+ a secret value; `supplied` means the exact references are ready. On `expired` or `conflict`,
125
+ inspect the Vault and request only still-missing fields; never replace an existing value to
126
+ retry. If creation times out, use `vault_get` to find recent request IDs before retrying.
127
+ If submission times out, inspect status before repeating a mutation.
128
+
129
+ ### Save and refresh credentials locally
130
+
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.
163
+
164
+ For explicit import/write, pass fields to `vault_item_upsert`; use
165
+ `vault_item_delete` for exact batch deletions. Never upload local edits automatically.
166
+
113
167
  ## Wallet Funding
114
168
 
115
169
  Use `clawdi wallet status --json` to inspect the authenticated Wallet balance, verified
@@ -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,17 +84,55 @@ 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
 
98
+ ### Request missing credentials
99
+
100
+ Use `vault_request_create` with exact `project_id`, `vault_id`, canonical `slug`, optional
101
+ `section`, and a batch of environment field names in `fields`. A Vault is a key bundle:
102
+ request related keys together under one link. Supplied or already-pending fields are rejected.
103
+ Show the returned `url` unchanged to the user; do not ask them to paste secrets into chat.
104
+ Opening the link does not consume it. Saving all requested fields consumes it once.
105
+
106
+ Check `vault_request_status` with its `request_id` after the user finishes. `pending` is not
107
+ a secret value; `supplied` means the exact references are ready. On `expired` or `conflict`,
108
+ inspect the Vault and request only still-missing fields; never replace an existing value to
109
+ retry. If creation times out, use `vault_get` to find recent request IDs before retrying.
110
+ If submission times out, inspect status before repeating a mutation.
111
+
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.
135
+
91
136
  ## Connector Routing
92
137
 
93
138
  Respect an explicit user choice. Otherwise inspect installed service CLIs, direct MCP tools