@com55/node-red-ai-access 0.2.0-beta.6 → 0.2.0-beta.7
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 +18 -0
- package/README.md +50 -10
- package/ai-access.html +1 -1
- package/dist/plugin.cjs +464 -312
- package/dist/plugin.d.cts +86 -6
- package/docs/api/openapi.yaml +228 -30
- package/docs/errors.md +16 -5
- package/docs/mcp-tools.md +18 -7
- package/package.json +1 -1
package/docs/mcp-tools.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Generated from the live `tools/list` schemas on `POST /mcp/rpc`.
|
|
4
4
|
Do not edit by hand — run `yarn generate:mcp-tools` after changing MCP tools.
|
|
5
5
|
|
|
6
|
-
Tools: **
|
|
6
|
+
Tools: **16**
|
|
7
7
|
|
|
8
8
|
## `get_flow`
|
|
9
9
|
|
|
@@ -45,7 +45,7 @@ Get detail for one installed node type: defaults (JSON), inputs/outputs (always
|
|
|
45
45
|
|
|
46
46
|
## `get_proposal`
|
|
47
47
|
|
|
48
|
-
Get any proposal by id (all tokens can read). Response includes mine:true|false and, for pending
|
|
48
|
+
Get any proposal by id (all tokens can read). Response includes mine:true|false and, for open proposals (pending or conflict), conflictingProposals when other open work touches the same flow. Lean by default (no payload/baseFlow); pass include_payload=true for full bodies. Cite displayName + reviewUrl when talking to the user.
|
|
49
49
|
|
|
50
50
|
| Parameter | Required | Type | Description |
|
|
51
51
|
| --- | --- | --- | --- |
|
|
@@ -54,7 +54,7 @@ Get any proposal by id (all tokens can read). Response includes mine:true|false
|
|
|
54
54
|
|
|
55
55
|
## `get_proposal_diff`
|
|
56
56
|
|
|
57
|
-
Diff any proposal against its stored baseFlow snapshot (what changed). Optional format=summary|full (default summary).
|
|
57
|
+
Diff any proposal against its stored baseFlow snapshot (what changed). Optional format=summary|full (default summary). Open proposals include rebase and liveChanges; conflict blocks approval, otherwise vsCurrent shows the merged deployment.
|
|
58
58
|
|
|
59
59
|
| Parameter | Required | Type | Description |
|
|
60
60
|
| --- | --- | --- | --- |
|
|
@@ -84,7 +84,7 @@ Alias of list_proposals. Prefer list_proposals. Lists proposals visible to this
|
|
|
84
84
|
| `limit` | no | integer | Page size (1–200). Omit to return all matches. |
|
|
85
85
|
| `mine` | no | boolean | true: only proposals created by this access link; false: only other links’ proposals |
|
|
86
86
|
| `offset` | no | integer | Skip this many filtered results (default 0) |
|
|
87
|
-
| `status` | no | string \| string[] | Filter by proposal status: one value, an array, or a comma-separated string (pending, approved, rejected, failed, withdrawn, expired, superseded). An empty array or empty string means no status filter. |
|
|
87
|
+
| `status` | no | string \| string[] | Filter by proposal status: one value, an array, or a comma-separated string (pending, conflict, approved, rejected, failed, withdrawn, expired, superseded). An empty array or empty string means no status filter. |
|
|
88
88
|
|
|
89
89
|
## `list_node_types`
|
|
90
90
|
|
|
@@ -105,7 +105,18 @@ List proposals visible to this access link (all proposals by default). Each item
|
|
|
105
105
|
| `limit` | no | integer | Page size (1–200). Omit to return all matches. |
|
|
106
106
|
| `mine` | no | boolean | true: only proposals created by this access link; false: only other links’ proposals |
|
|
107
107
|
| `offset` | no | integer | Skip this many filtered results (default 0) |
|
|
108
|
-
| `status` | no | string \| string[] | Filter by proposal status: one value, an array, or a comma-separated string (pending, approved, rejected, failed, withdrawn, expired, superseded). An empty array or empty string means no status filter. |
|
|
108
|
+
| `status` | no | string \| string[] | Filter by proposal status: one value, an array, or a comma-separated string (pending, conflict, approved, rejected, failed, withdrawn, expired, superseded). An empty array or empty string means no status filter. |
|
|
109
|
+
|
|
110
|
+
## `resolve_proposal_conflict`
|
|
111
|
+
|
|
112
|
+
Replace your own open proposal with a resolution based on expectedRev. Revision changes auto-rebase; conflict blocks approval until resolved. Open proposals expire after the configured TTL (default 7 days). Read the current flow first; payload accepts a full flow or nodes ops as in submit_proposal.
|
|
113
|
+
|
|
114
|
+
| Parameter | Required | Type | Description |
|
|
115
|
+
| --- | --- | --- | --- |
|
|
116
|
+
| `expectedRev` | yes | string | — |
|
|
117
|
+
| `id` | yes | string | — |
|
|
118
|
+
| `payload` | yes | object | — |
|
|
119
|
+
| `title` | no | string | — |
|
|
109
120
|
|
|
110
121
|
## `search_flows`
|
|
111
122
|
|
|
@@ -126,7 +137,7 @@ Search the public Node-RED catalogue for modules to recommend. Returns module id
|
|
|
126
137
|
|
|
127
138
|
## `submit_proposal`
|
|
128
139
|
|
|
129
|
-
Submit a replace_flow proposal for owner approval (does not deploy). Preferred for small string edits: payload: { flowId, nodes: [{ op:"replace_text", node, field, find, replace, occurrence? }] } — find must be unique unless occurrence (1-based) is set; multiple replace_text ops apply in order; yields a short readable diff. Or send a full tab: payload.flow from get_flow (id, type, label?, nodes[], configs?). Inputs (all top-level, next to each other): type="replace_flow", expectedRev (required string from list_flows/get_flow rev; expected_rev alias accepted), optional title (≤80 chars), and payload: { flowId, flow? } and/or payload.nodes / top-level nodes. Do not nest expectedRev inside payload. Secret values appear as "[REDACTED]" in reads; leave the placeholder unchanged to keep the stored secret (it is restored on submit), or replace it with a new value to change it. Payload size limit is 1500000 bytes (413 if exceeded). expectedRev
|
|
140
|
+
Submit a replace_flow proposal for owner approval (does not deploy). Preferred for small string edits: payload: { flowId, nodes: [{ op:"replace_text", node, field, find, replace, occurrence? }] } — find must be unique unless occurrence (1-based) is set; multiple replace_text ops apply in order; yields a short readable diff. Or send a full tab: payload.flow from get_flow (id, type, label?, nodes[], configs?). Inputs (all top-level, next to each other): type="replace_flow", expectedRev (required string from list_flows/get_flow rev; expected_rev alias accepted), optional title (≤80 chars), and payload: { flowId, flow? } and/or payload.nodes / top-level nodes. Do not nest expectedRev inside payload. Secret values appear as "[REDACTED]" in reads; leave the placeholder unchanged to keep the stored secret (it is restored on submit), or replace it with a new value to change it. Payload size limit is 1500000 bytes (413 if exceeded). Recent known expectedRev snapshots are accepted and auto-rebased; unknown revisions return 409 version_mismatch. Open proposals auto-rebase on revision changes; conflict blocks approval until resolved. Proposals expire after the configured TTL (default 7 days). replace_text errors: 400 text_not_found; 409 ambiguous_match with matchCount. Unknown palette types return 400 unknown_node_type with nearest matches — call list_node_types / search_palette and ask the user to install via Manage palette (never auto-install). Returns a lean proposal (id, status, title, storedTitle, flowLabel, displayName, reviewUrl, changeSummary, …) by default; title may gain " in <flow>"; storedTitle is the title as saved (your title without that suffix, or the auto-generated title, which may already name the flow). Pass include_payload=true to include payload and baseFlow. When telling the user about the proposal, cite displayName and reviewUrl — not the raw id. Humans approve on the /ai-access dashboard (reviewUrl opens/scrolls to it).
|
|
130
141
|
|
|
131
142
|
| Parameter | Required | Type | Description |
|
|
132
143
|
| --- | --- | --- | --- |
|
|
@@ -140,7 +151,7 @@ Submit a replace_flow proposal for owner approval (does not deploy). Preferred f
|
|
|
140
151
|
|
|
141
152
|
## `withdraw_proposal`
|
|
142
153
|
|
|
143
|
-
Withdraw one of YOUR pending proposals (status becomes withdrawn, not rejected). Optional reason. Only the creating access link can withdraw; other tokens get 403. Cite displayName + reviewUrl when telling the user.
|
|
154
|
+
Withdraw one of YOUR open (pending or conflict) proposals (status becomes withdrawn, not rejected). Optional reason. Only the creating access link can withdraw; other tokens get 403. Cite displayName + reviewUrl when telling the user.
|
|
144
155
|
|
|
145
156
|
| Parameter | Required | Type | Description |
|
|
146
157
|
| --- | --- | --- | --- |
|
package/package.json
CHANGED