@getripple/mcp 1.0.8 → 1.0.10
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 +25 -0
- package/README.md +132 -247
- package/dist/server.js +1 -13
- package/dist/server.js.map +1 -1
- package/dist/tools.d.ts +49 -3
- package/dist/tools.js +330 -2
- package/dist/tools.js.map +1 -1
- package/package.json +54 -54
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @getripple/mcp Changelog
|
|
2
2
|
|
|
3
|
+
## [1.0.9] - 2026-06-13
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- Reframe the MCP package as the agent-facing wire for Ripple's local authorization gate.
|
|
7
|
+
- Add `ripple_record_verification` to the documented agent workflow so agents record test or verification evidence before the final gate.
|
|
8
|
+
- Update package metadata to depend on `@getripple/core@^1.0.9`.
|
|
9
|
+
|
|
10
|
+
## [1.0.8] - 2026-06-09
|
|
11
|
+
|
|
12
|
+
### Validation
|
|
13
|
+
- Manually validated MCP-backed agent workflows against a real `sindresorhus/ky` clone through planning, gate checks, repair handoff, policy-based human approval, and CI-style blocking.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- Consume the core history fix so MCP scans preserve architectural history after cached graph refreshes.
|
|
17
|
+
|
|
18
|
+
## [1.0.7] - 2026-06-08
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
- Return evidence-backed risk summaries through MCP gate responses.
|
|
22
|
+
- Add MCP contract coverage for gate risk level, score, reasons, evidence, and required actions.
|
|
23
|
+
- Expose the same continue/repair/human-review language used by CLI and CI.
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
- Make MCP gate responses easier for AI agents to obey by pairing each stop decision with concrete repair or human-review instructions.
|
|
27
|
+
|
|
3
28
|
## [1.0.6] - 2026-06-07
|
|
4
29
|
|
|
5
30
|
### Fixed
|
package/README.md
CHANGED
|
@@ -1,35 +1,24 @@
|
|
|
1
1
|
# @getripple/mcp
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**The agent-facing wire for Ripple's local authorization gate.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
`@getripple/mcp` lets MCP-compatible AI coding agents ask Ripple what they are
|
|
6
|
+
allowed to change, record verification evidence, and receive a final
|
|
7
|
+
continue/repair/human-review decision.
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Use this package when you want an agent to ask Ripple:
|
|
9
|
+
Use this package when you want the agent itself to call Ripple:
|
|
10
10
|
|
|
11
11
|
```txt
|
|
12
12
|
What should I read before editing?
|
|
13
|
-
What boundary
|
|
13
|
+
What boundary is approved?
|
|
14
|
+
What verification is required?
|
|
14
15
|
Did my staged changes drift?
|
|
15
16
|
Can I continue?
|
|
16
17
|
What must I fix?
|
|
17
18
|
```
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
```txt
|
|
22
|
-
plan before edit
|
|
23
|
-
save intent
|
|
24
|
-
check after edit
|
|
25
|
-
catch drift
|
|
26
|
-
tell the agent what to fix
|
|
27
|
-
continue / repair / human review
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
The MCP server is best when the AI agent should call Ripple tools directly.
|
|
31
|
-
|
|
32
|
-
For terminal, CI, and human-controlled workflows, use `@getripple/cli`.
|
|
20
|
+
For Git hooks, CI, terminal audits, and repository initialization, use
|
|
21
|
+
`@getripple/cli`.
|
|
33
22
|
|
|
34
23
|
---
|
|
35
24
|
|
|
@@ -64,40 +53,55 @@ Windows: C:\\Users\\yourname\\projects\\myapp
|
|
|
64
53
|
|
|
65
54
|
No global install is required. `npx` fetches and runs the MCP server.
|
|
66
55
|
|
|
56
|
+
Before relying on MCP in a repo, initialize the local control layer:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npx -y @getripple/cli init
|
|
60
|
+
```
|
|
61
|
+
|
|
67
62
|
---
|
|
68
63
|
|
|
69
64
|
## Agent Workflow
|
|
70
65
|
|
|
71
|
-
|
|
66
|
+
Agents should use the Ripple MCP tools in this order:
|
|
72
67
|
|
|
73
68
|
```txt
|
|
74
|
-
1.
|
|
75
|
-
|
|
76
|
-
3. Save the approved intent
|
|
77
|
-
4. Let the agent edit inside the boundary
|
|
78
|
-
5. Check after edit
|
|
79
|
-
6. Catch drift
|
|
80
|
-
7. Tell the agent what to fix
|
|
81
|
-
8. Continue, repair, or ask the human
|
|
82
|
-
```
|
|
69
|
+
1. ripple_doctor
|
|
70
|
+
Check repo readiness.
|
|
83
71
|
|
|
84
|
-
|
|
72
|
+
2. ripple_plan_context
|
|
73
|
+
Plan before editing and save the approved intent.
|
|
85
74
|
|
|
86
|
-
|
|
75
|
+
3. Agent edits code
|
|
76
|
+
Stay inside allowed_files and allowed_symbols.
|
|
87
77
|
|
|
88
|
-
|
|
78
|
+
4. ripple_check_staged or ripple_check_changed
|
|
79
|
+
Compare the real Git diff against the saved intent.
|
|
89
80
|
|
|
90
|
-
|
|
91
|
-
|
|
81
|
+
5. ripple_record_verification
|
|
82
|
+
Record the result of required tests, typechecks, or manual verification.
|
|
83
|
+
|
|
84
|
+
6. ripple_gate
|
|
85
|
+
Get the final continue, repair, human-review, or restore-readiness decision.
|
|
86
|
+
|
|
87
|
+
7. ripple_repair_intent_drift
|
|
88
|
+
If the gate stops, get exact repair actions.
|
|
92
89
|
```
|
|
93
90
|
|
|
94
|
-
|
|
91
|
+
Agent rule:
|
|
92
|
+
|
|
93
|
+
```txt
|
|
94
|
+
canContinue=true -> continue only after required verification
|
|
95
|
+
mustStop=true -> stop and follow fixNow
|
|
96
|
+
needsHuman=true -> ask the human; do not self-approve
|
|
97
|
+
```
|
|
95
98
|
|
|
96
|
-
|
|
99
|
+
Do not claim Ripple passed unless you called a Ripple MCP tool and the final
|
|
100
|
+
gate allowed the work to continue.
|
|
97
101
|
|
|
98
102
|
---
|
|
99
103
|
|
|
100
|
-
##
|
|
104
|
+
## Plan Before Edit
|
|
101
105
|
|
|
102
106
|
Call:
|
|
103
107
|
|
|
@@ -109,8 +113,8 @@ Pass:
|
|
|
109
113
|
|
|
110
114
|
```txt
|
|
111
115
|
task
|
|
112
|
-
|
|
113
|
-
|
|
116
|
+
targetFile
|
|
117
|
+
controlMode
|
|
114
118
|
saveIntent: true
|
|
115
119
|
```
|
|
116
120
|
|
|
@@ -125,43 +129,52 @@ allowedSymbols
|
|
|
125
129
|
editableFiles
|
|
126
130
|
verificationTargets
|
|
127
131
|
risk
|
|
132
|
+
policyExplanation
|
|
128
133
|
human gate state
|
|
129
134
|
```
|
|
130
135
|
|
|
131
|
-
When `saveIntent: true` is used, Ripple saves the
|
|
132
|
-
|
|
133
|
-
The saved intent becomes the trust boundary for the agent's work.
|
|
136
|
+
When `saveIntent: true` is used, Ripple saves the approved boundary for later
|
|
137
|
+
drift checks.
|
|
134
138
|
|
|
135
139
|
---
|
|
136
140
|
|
|
137
|
-
##
|
|
141
|
+
## Record Verification
|
|
138
142
|
|
|
139
|
-
After the agent
|
|
143
|
+
After editing, the agent must run or report the narrowest relevant verification
|
|
144
|
+
target before final handoff when Ripple asks for it.
|
|
145
|
+
|
|
146
|
+
Call:
|
|
140
147
|
|
|
141
148
|
```txt
|
|
142
|
-
|
|
149
|
+
ripple_record_verification
|
|
143
150
|
```
|
|
144
151
|
|
|
145
|
-
|
|
152
|
+
Example reported evidence:
|
|
146
153
|
|
|
147
154
|
```txt
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
contract drift
|
|
152
|
-
approval state
|
|
153
|
-
handoff
|
|
155
|
+
command: npm test -- tests/auth.test.ts
|
|
156
|
+
status: passed
|
|
157
|
+
note: auth retry tests passed after boundary-scoped change
|
|
154
158
|
```
|
|
155
159
|
|
|
156
|
-
|
|
160
|
+
Supported statuses:
|
|
157
161
|
|
|
158
162
|
```txt
|
|
159
|
-
|
|
163
|
+
passed
|
|
164
|
+
failed
|
|
165
|
+
skipped
|
|
166
|
+
unknown
|
|
160
167
|
```
|
|
161
168
|
|
|
169
|
+
Failed evidence blocks as repair. Skipped or unknown evidence requires human
|
|
170
|
+
review. Stale evidence must be rerun against the current changed files.
|
|
171
|
+
|
|
172
|
+
After recording verification evidence, call `ripple_gate` again so the final
|
|
173
|
+
decision includes that evidence.
|
|
174
|
+
|
|
162
175
|
---
|
|
163
176
|
|
|
164
|
-
##
|
|
177
|
+
## Ask The Gate
|
|
165
178
|
|
|
166
179
|
Call:
|
|
167
180
|
|
|
@@ -171,13 +184,7 @@ ripple_gate
|
|
|
171
184
|
|
|
172
185
|
`ripple_gate` is the compact continue/stop decision.
|
|
173
186
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
```txt
|
|
177
|
-
Can the AI agent continue?
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
Example:
|
|
187
|
+
Example stop response:
|
|
181
188
|
|
|
182
189
|
```json
|
|
183
190
|
{
|
|
@@ -190,40 +197,22 @@ Example:
|
|
|
190
197
|
}
|
|
191
198
|
```
|
|
192
199
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
```txt
|
|
196
|
-
canContinue=true -> continue only after required verification
|
|
197
|
-
mustStop=true -> stop and follow fixNow
|
|
198
|
-
needsHuman=true -> ask the human; do not self-approve
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
---
|
|
202
|
-
|
|
203
|
-
## 5. Repair Drift
|
|
204
|
-
|
|
205
|
-
Call:
|
|
200
|
+
If the agent crossed a function boundary, the gate can return evidence like:
|
|
206
201
|
|
|
207
202
|
```txt
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
This tells the agent what to fix.
|
|
203
|
+
Allowed:
|
|
204
|
+
- src/auth.ts::refreshToken
|
|
212
205
|
|
|
213
|
-
|
|
206
|
+
Changed outside boundary:
|
|
207
|
+
- symbol: src/auth.ts::login
|
|
214
208
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
which contracts to review
|
|
219
|
-
which tests to run
|
|
220
|
-
when to create a wider human-approved intent
|
|
221
|
-
when to ask the human
|
|
209
|
+
Fix now:
|
|
210
|
+
- Undo or replan unapproved symbol: src/auth.ts::login
|
|
211
|
+
- Ask the human to approve a wider boundary before keeping these changes.
|
|
222
212
|
```
|
|
223
213
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
It should ask for a wider human-approved intent.
|
|
214
|
+
Ripple does not silently delete code. It stops the workflow and tells the agent
|
|
215
|
+
what must be fixed or when a human must review.
|
|
227
216
|
|
|
228
217
|
---
|
|
229
218
|
|
|
@@ -232,12 +221,14 @@ It should ask for a wider human-approved intent.
|
|
|
232
221
|
```txt
|
|
233
222
|
ripple_get_agent_workflow full agent workflow guide and output contracts
|
|
234
223
|
ripple_doctor check project readiness
|
|
224
|
+
ripple_get_intent_status check whether saved intent is missing, active, closed, or invalid
|
|
235
225
|
ripple_plan_context plan before editing and optionally save intent
|
|
236
226
|
ripple_check_staged check staged files against saved intent
|
|
237
227
|
ripple_check_changed check changed files against a git base ref
|
|
238
228
|
ripple_audit_change audit a completed change for drift signals
|
|
239
229
|
ripple_gate compact continue/stop decision
|
|
240
230
|
ripple_get_approval_status check whether a human gate is required
|
|
231
|
+
ripple_record_verification record passed/failed/skipped/unknown verification evidence
|
|
241
232
|
ripple_repair_intent_drift get repair actions when drift is detected
|
|
242
233
|
ripple_get_focus focused context for one file
|
|
243
234
|
ripple_get_blast_radius files that depend on a target file
|
|
@@ -247,116 +238,32 @@ ripple_get_recent_changes recent architectural changes from history
|
|
|
247
238
|
|
|
248
239
|
---
|
|
249
240
|
|
|
250
|
-
## Example Agent Loop
|
|
251
|
-
|
|
252
|
-
A safe AI-agent workflow should look like this:
|
|
253
|
-
|
|
254
|
-
```txt
|
|
255
|
-
1. Call ripple_doctor
|
|
256
|
-
2. Call ripple_plan_context with saveIntent=true
|
|
257
|
-
3. Read only the suggested context
|
|
258
|
-
4. Edit only inside the approved boundary
|
|
259
|
-
5. Stage the intended changes
|
|
260
|
-
6. Call ripple_check_staged
|
|
261
|
-
7. Call ripple_gate
|
|
262
|
-
8. Continue, repair, or stop based on the gate
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
If `mustStop=true`, the agent must stop.
|
|
266
|
-
|
|
267
|
-
If `needsHuman=true`, the agent must ask the human.
|
|
268
|
-
|
|
269
|
-
If `canContinue=true`, the agent may continue only after required verification passes.
|
|
270
|
-
|
|
271
|
-
---
|
|
272
|
-
|
|
273
241
|
## Trust Boundaries
|
|
274
242
|
|
|
275
|
-
Ripple saves the freedom level the agent was given before editing and checks
|
|
243
|
+
Ripple saves the freedom level the agent was given before editing and checks
|
|
244
|
+
whether the agent stayed inside it after editing.
|
|
276
245
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
|
280
|
-
|
|
|
281
|
-
| `
|
|
282
|
-
| `
|
|
283
|
-
| `
|
|
284
|
-
| `task` | Files in the saved task plan may change. |
|
|
285
|
-
| `pr` | Full task scope. Human reviews before merge. |
|
|
246
|
+
| Mode | Agent is allowed to |
|
|
247
|
+
| --- | --- |
|
|
248
|
+
| `brainstorm` | Suggest and explain only. No edits. |
|
|
249
|
+
| `function` | Edit only the approved symbol. |
|
|
250
|
+
| `file` | Edit only the approved file. |
|
|
251
|
+
| `task` | Edit files in the saved task plan. |
|
|
252
|
+
| `pr` | Complete low-risk PR work for human review before merge. |
|
|
286
253
|
|
|
287
254
|
Example function boundary:
|
|
288
255
|
|
|
289
256
|
```txt
|
|
290
|
-
|
|
291
|
-
symbol: refreshToken
|
|
292
|
-
mode: function
|
|
257
|
+
tool: ripple_plan_context
|
|
293
258
|
task: fix retry behavior
|
|
259
|
+
targetFile: src/auth.ts
|
|
260
|
+
symbol: refreshToken
|
|
261
|
+
controlMode: function
|
|
294
262
|
saveIntent: true
|
|
295
263
|
```
|
|
296
264
|
|
|
297
|
-
If `function` mode approves only `refreshToken` but the agent also changes
|
|
298
|
-
|
|
299
|
-
---
|
|
300
|
-
|
|
301
|
-
## Gate Decisions
|
|
302
|
-
|
|
303
|
-
`ripple_gate` returns the decision an agent should obey.
|
|
304
|
-
|
|
305
|
-
Possible decisions include:
|
|
306
|
-
|
|
307
|
-
```txt
|
|
308
|
-
continue
|
|
309
|
-
repair
|
|
310
|
-
human-review
|
|
311
|
-
restore-readiness
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
Example stop decision:
|
|
315
|
-
|
|
316
|
-
```txt
|
|
317
|
-
STOP: agent crossed approved function boundary.
|
|
318
|
-
|
|
319
|
-
Allowed:
|
|
320
|
-
- src/auth.ts::refreshToken
|
|
321
|
-
|
|
322
|
-
Changed outside boundary:
|
|
323
|
-
- src/auth.ts::login
|
|
324
|
-
|
|
325
|
-
Fix:
|
|
326
|
-
- undo src/auth.ts::login
|
|
327
|
-
- or create a wider human-approved intent
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
Machine-readable output includes:
|
|
331
|
-
|
|
332
|
-
```json
|
|
333
|
-
{
|
|
334
|
-
"status": "closed",
|
|
335
|
-
"decision": "human-review",
|
|
336
|
-
"canContinue": false,
|
|
337
|
-
"mustStop": true,
|
|
338
|
-
"needsHuman": true,
|
|
339
|
-
"why": ["Changed symbol outside approved boundary: src/auth.ts::login"],
|
|
340
|
-
"fixNow": ["Undo src/auth.ts::login or replan with human approval."]
|
|
341
|
-
}
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
---
|
|
345
|
-
|
|
346
|
-
## Run Manually
|
|
347
|
-
|
|
348
|
-
Run without installing:
|
|
349
|
-
|
|
350
|
-
```bash
|
|
351
|
-
npx -y @getripple/mcp --workspace /absolute/path/to/your/repo
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
Or install globally:
|
|
355
|
-
|
|
356
|
-
```bash
|
|
357
|
-
npm install -g @getripple/mcp
|
|
358
|
-
ripple-mcp --workspace /absolute/path/to/your/repo
|
|
359
|
-
```
|
|
265
|
+
If `function` mode approves only `refreshToken` but the agent also changes
|
|
266
|
+
`login`, Ripple stops the workflow and tells the agent what to fix.
|
|
360
267
|
|
|
361
268
|
---
|
|
362
269
|
|
|
@@ -364,11 +271,8 @@ ripple-mcp --workspace /absolute/path/to/your/repo
|
|
|
364
271
|
|
|
365
272
|
The server communicates over stdio using JSON-RPC.
|
|
366
273
|
|
|
367
|
-
Only MCP protocol messages are written to stdout.
|
|
368
|
-
|
|
369
|
-
Non-protocol scan/cache output is kept off stdout so MCP clients can parse responses reliably.
|
|
370
|
-
|
|
371
|
-
This matters because MCP clients expect clean JSON-RPC messages on stdout.
|
|
274
|
+
Only MCP protocol messages are written to stdout. Non-protocol scan/cache output
|
|
275
|
+
is kept off stdout so MCP clients can parse responses reliably.
|
|
372
276
|
|
|
373
277
|
---
|
|
374
278
|
|
|
@@ -395,25 +299,13 @@ ignore: .ripple/.cache/
|
|
|
395
299
|
|
|
396
300
|
`.ripple/.cache/` is machine cache.
|
|
397
301
|
|
|
398
|
-
Policy, history, intents, and approvals are durable workflow/audit state.
|
|
399
|
-
|
|
400
302
|
---
|
|
401
303
|
|
|
402
304
|
## CLI Relationship
|
|
403
305
|
|
|
404
306
|
The MCP package is for agents.
|
|
405
307
|
|
|
406
|
-
The CLI package is for humans, terminals, scripts, and CI.
|
|
407
|
-
|
|
408
|
-
Use CLI when you want:
|
|
409
|
-
|
|
410
|
-
```txt
|
|
411
|
-
manual commands
|
|
412
|
-
CI gates
|
|
413
|
-
local terminal workflows
|
|
414
|
-
release proofs
|
|
415
|
-
human-controlled checks
|
|
416
|
-
```
|
|
308
|
+
The CLI package is for humans, terminals, hooks, scripts, and CI.
|
|
417
309
|
|
|
418
310
|
Use MCP when you want:
|
|
419
311
|
|
|
@@ -422,28 +314,31 @@ agents to call Ripple directly
|
|
|
422
314
|
structured tool responses
|
|
423
315
|
stdio JSON-RPC protocol
|
|
424
316
|
agent-readable handoff decisions
|
|
317
|
+
verification evidence recorded into the saved intent
|
|
425
318
|
```
|
|
426
319
|
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
## Language Support
|
|
430
|
-
|
|
431
|
-
Strongest today:
|
|
320
|
+
Use CLI when you want:
|
|
432
321
|
|
|
433
322
|
```txt
|
|
434
|
-
|
|
435
|
-
|
|
323
|
+
repo initialization
|
|
324
|
+
Git hook enforcement
|
|
325
|
+
CI gates
|
|
326
|
+
local terminal workflows
|
|
327
|
+
release proofs
|
|
328
|
+
human-controlled checks
|
|
436
329
|
```
|
|
437
330
|
|
|
438
|
-
|
|
331
|
+
---
|
|
439
332
|
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
file-level staged checks
|
|
446
|
-
|
|
333
|
+
## Language Support
|
|
334
|
+
|
|
335
|
+
| Language | Status |
|
|
336
|
+
| --- | --- |
|
|
337
|
+
| TypeScript / JavaScript | Deep support for imports, exports, symbols, callers, staged drift, and blast radius |
|
|
338
|
+
| Python | Basic support for imports, functions, classes, methods, and file-level staged checks |
|
|
339
|
+
|
|
340
|
+
Ripple uses static analysis. It can miss runtime-only behavior, dynamic imports,
|
|
341
|
+
reflection, decorators, generated code, and framework-specific magic.
|
|
447
342
|
|
|
448
343
|
---
|
|
449
344
|
|
|
@@ -452,37 +347,27 @@ file-level staged checks
|
|
|
452
347
|
Ripple runs locally.
|
|
453
348
|
|
|
454
349
|
```txt
|
|
455
|
-
No account required
|
|
456
|
-
No telemetry
|
|
457
|
-
No cloud indexing
|
|
458
|
-
No code upload
|
|
459
|
-
No remote model call required
|
|
350
|
+
No account required.
|
|
351
|
+
No telemetry.
|
|
352
|
+
No cloud indexing.
|
|
353
|
+
No code upload.
|
|
354
|
+
No remote model call required.
|
|
460
355
|
```
|
|
461
356
|
|
|
462
|
-
Your
|
|
463
|
-
|
|
464
|
-
The MCP server does not require sending your code to a cloud service.
|
|
357
|
+
Your repository is scanned on your machine. The MCP server does not require
|
|
358
|
+
sending your code to a cloud service.
|
|
465
359
|
|
|
466
360
|
---
|
|
467
361
|
|
|
468
|
-
##
|
|
469
|
-
|
|
470
|
-
Public alpha.
|
|
362
|
+
## Honest Limits
|
|
471
363
|
|
|
472
|
-
Ripple is a
|
|
473
|
-
|
|
474
|
-
It is not:
|
|
475
|
-
|
|
476
|
-
```txt
|
|
477
|
-
a sandbox
|
|
478
|
-
a test replacement
|
|
479
|
-
a typechecker replacement
|
|
480
|
-
a code review replacement
|
|
481
|
-
a CI replacement
|
|
482
|
-
a human judgment replacement
|
|
483
|
-
```
|
|
364
|
+
Ripple is deterministic infrastructure, not a magical AI wrapper.
|
|
484
365
|
|
|
485
|
-
Ripple
|
|
366
|
+
- Ripple is not a coding agent.
|
|
367
|
+
- Ripple is not a sandbox.
|
|
368
|
+
- Ripple relies on agents actually calling the MCP tools.
|
|
369
|
+
- Ripple uses static analysis.
|
|
370
|
+
- Ripple does not replace your compiler, test suite, code review, or judgment.
|
|
486
371
|
|
|
487
372
|
---
|
|
488
373
|
|
package/dist/server.js
CHANGED
|
@@ -223,19 +223,7 @@ function parseToolCallParams(params) {
|
|
|
223
223
|
};
|
|
224
224
|
}
|
|
225
225
|
function isRippleMcpToolName(name) {
|
|
226
|
-
return
|
|
227
|
-
name === "ripple_check_changed" ||
|
|
228
|
-
name === "ripple_check_staged" ||
|
|
229
|
-
name === "ripple_audit_change" ||
|
|
230
|
-
name === "ripple_gate" ||
|
|
231
|
-
name === "ripple_get_approval_status" ||
|
|
232
|
-
name === "ripple_get_agent_workflow" ||
|
|
233
|
-
name === "ripple_repair_intent_drift" ||
|
|
234
|
-
name === "ripple_get_focus" ||
|
|
235
|
-
name === "ripple_get_blast_radius" ||
|
|
236
|
-
name === "ripple_explain_policy" ||
|
|
237
|
-
name === "ripple_plan_context" ||
|
|
238
|
-
name === "ripple_get_recent_changes");
|
|
226
|
+
return typeof name === "string" && tools_1.RIPPLE_MCP_TOOLS.some((tool) => tool.name === name);
|
|
239
227
|
}
|
|
240
228
|
function isJsonRpcRequest(value) {
|
|
241
229
|
if (!isRecord(value)) {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAyB;AACzB,2CAA6B;AAC7B,mDAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|