@aipermission/mcp 0.2.23 → 0.2.25

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
@@ -122,6 +122,13 @@ sensitive application data, and offset changes can replay or skip records, so
122
122
  keep these actions in Prompt mode unless direct execution is intentional. If a
123
123
  publish has an unknown delivery outcome, inspect before retrying.
124
124
 
125
+ For S3, discover bounded object actions, temporary URL actions, object-version
126
+ controls, and bucket lifecycle actions through `get_connector_actions`. Signed
127
+ URLs are bearer credentials limited to one key and at most one hour. Read the
128
+ current lifecycle policy before changing it: replacement and deletion affect
129
+ the complete policy and are destructive. Keep version deletion and lifecycle
130
+ changes in Prompt unless direct execution is deliberate.
131
+
125
132
  For Docker, call `get_connector_actions(target_ref)` to discover bounded
126
133
  actions such as `docker_version`, `list_containers`, `list_images`,
127
134
  `list_networks`, `list_volumes`, `inspect_container`, `container_logs`,
@@ -148,8 +155,10 @@ disclose secrets. Never automatically retry `submission_unknown`.
148
155
 
149
156
  Connector responses can include `approval_pending` or `running`. Poll
150
157
  `get_connector_action_request(request_id)` until the request reaches a terminal
151
- status. MCP tool responses never include file contents, gateway temporary paths,
152
- archive staging paths, or local upload contents.
158
+ status. `outcome_unknown` is terminal and means the gateway could not prove the
159
+ remote outcome after interruption; inspect target state or ask the operator
160
+ before retrying. MCP tool responses never include file contents, gateway
161
+ temporary paths, archive staging paths, or local upload contents.
153
162
 
154
163
  ## Operator Skill
155
164
 
@@ -172,8 +181,9 @@ Supported clients:
172
181
 
173
182
  These instructions teach the agent how to discover connector targets, poll
174
183
  `approval_pending` and `running` connector action requests, handle `stale`
175
- approvals by sending a fresh request, write short reasons, use explicit file
176
- transfer paths, and avoid printing secrets. The default installer uses the
184
+ approvals by sending a fresh request, avoid blind retries for `outcome_unknown`,
185
+ write short reasons, use explicit file transfer paths, and avoid printing
186
+ secrets. The default installer uses the
177
187
  operator instruction bundled in the npm package; `--source` accepts local file
178
188
  paths only and rejects HTTP(S) sources.
179
189
 
@@ -104,6 +104,7 @@ declined
104
104
  blocked
105
105
  error
106
106
  stale
107
+ outcome_unknown
107
108
  ```
108
109
 
109
110
  If the request is `declined`, read the note/error and follow the user's
@@ -111,6 +112,11 @@ correction. If the request is `stale`, the approval context changed before
111
112
  execution; send a fresh `call_connector_action` request with the current target,
112
113
  action, input, and reason.
113
114
 
115
+ If the request is `outcome_unknown`, do not automatically retry it. The gateway
116
+ lost definitive lifecycle state after execution may have started. Inspect the
117
+ target with a safe read action when possible, or ask the operator to decide
118
+ whether retrying is safe.
119
+
114
120
  ## Running Flow
115
121
 
116
122
  When `call_connector_action` or `get_connector_action_request` returns
@@ -197,6 +203,19 @@ prefer this sequence:
197
203
  operator explicitly approved replacement.
198
204
  7. Treat `delete_object` as destructive and ask for explicit confirmation if
199
205
  approval mode does not already provide it.
206
+ 8. Use `presign_download` and `presign_upload` only for one exact object key
207
+ and keep expiry between 60 and 3600 seconds. The returned URL is a temporary
208
+ bearer credential. When an upload result includes `required_headers`, send
209
+ every listed header unchanged; no-overwrite URLs require the signed
210
+ `If-None-Match: *` header.
211
+ 9. Use `list_object_versions` before `restore_object_version` or
212
+ `delete_object_version`. Restoring creates a new current version; deleting
213
+ an exact version or delete marker is permanent.
214
+ 10. Read `get_bucket_lifecycle` before changing retention. The bounded
215
+ `replace_bucket_lifecycle` action replaces every existing rule with one
216
+ explicit rule; `delete_bucket_lifecycle` removes the complete policy.
217
+ 11. Keep lifecycle replacement, lifecycle deletion, and version deletion in
218
+ Prompt unless the operator deliberately trusts that exact workflow.
200
219
 
201
220
  Object content may contain secrets or customer data. Avoid downloading or
202
221
  echoing object contents unless the operator asked for that exact object.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aipermission/mcp",
3
- "version": "0.2.23",
3
+ "version": "0.2.25",
4
4
  "mcpName": "io.github.aipermission/aipermission-mcp",
5
5
  "description": "Local-first MCP bridge for the aipermission gateway.",
6
6
  "license": "AGPL-3.0-only",
package/server.json CHANGED
@@ -3,12 +3,12 @@
3
3
  "name": "io.github.aipermission/aipermission-mcp",
4
4
  "title": "AIPermission",
5
5
  "description": "Local-first MCP bridge for the AIPermission gateway.",
6
- "version": "0.2.23",
6
+ "version": "0.2.25",
7
7
  "packages": [
8
8
  {
9
9
  "registryType": "npm",
10
10
  "identifier": "@aipermission/mcp",
11
- "version": "0.2.23",
11
+ "version": "0.2.25",
12
12
  "transport": {
13
13
  "type": "stdio"
14
14
  }