@prmichaelsen/remember-mcp 4.0.2 → 4.1.0
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/AGENT.md +1 -1
- package/CHANGELOG.md +12 -0
- package/agent/commands/acp.artifact-glossary.md +22 -0
- package/agent/commands/acp.artifact-reference.md +21 -0
- package/agent/commands/acp.artifact-research.md +20 -0
- package/agent/commands/acp.audit.md +19 -0
- package/agent/commands/acp.clarification-address.md +20 -0
- package/agent/commands/acp.clarification-capture.md +9 -0
- package/agent/commands/acp.clarification-create.md +20 -0
- package/agent/commands/acp.command-create.md +20 -0
- package/agent/commands/acp.design-create.md +20 -0
- package/agent/commands/acp.design-reference.md +9 -0
- package/agent/commands/acp.handoff.md +17 -0
- package/agent/commands/acp.index.md +23 -0
- package/agent/commands/acp.init.md +25 -2
- package/agent/commands/acp.package-create.md +14 -0
- package/agent/commands/acp.package-info.md +17 -0
- package/agent/commands/acp.package-install.md +20 -0
- package/agent/commands/acp.package-list.md +20 -0
- package/agent/commands/acp.package-publish.md +13 -0
- package/agent/commands/acp.package-remove.md +18 -0
- package/agent/commands/acp.package-search.md +19 -0
- package/agent/commands/acp.package-update.md +21 -0
- package/agent/commands/acp.package-validate.md +14 -0
- package/agent/commands/acp.pattern-create.md +20 -0
- package/agent/commands/acp.plan.md +42 -13
- package/agent/commands/acp.proceed.md +55 -21
- package/agent/commands/acp.project-create.md +13 -0
- package/agent/commands/acp.project-info.md +17 -0
- package/agent/commands/acp.project-list.md +19 -0
- package/agent/commands/acp.project-remove.md +18 -0
- package/agent/commands/acp.project-set.md +16 -0
- package/agent/commands/acp.project-update.md +22 -0
- package/agent/commands/acp.projects-restore.md +18 -0
- package/agent/commands/acp.projects-sync.md +14 -0
- package/agent/commands/acp.report.md +15 -0
- package/agent/commands/acp.resume.md +15 -0
- package/agent/commands/acp.sessions.md +21 -0
- package/agent/commands/acp.status.md +15 -0
- package/agent/commands/acp.sync.md +15 -0
- package/agent/commands/acp.task-create.md +21 -0
- package/agent/commands/acp.update.md +15 -0
- package/agent/commands/acp.validate.md +25 -2
- package/agent/commands/acp.version-check-for-updates.md +13 -0
- package/agent/commands/acp.version-check.md +13 -0
- package/agent/commands/acp.version-update.md +14 -0
- package/agent/commands/command.template.md +33 -0
- package/agent/commands/git.commit.md +14 -0
- package/agent/commands/git.init.md +13 -0
- package/agent/manifest.yaml +3 -3
- package/agent/milestones/milestone-24-mcp-elicitation-confirmation.md +99 -0
- package/agent/progress.yaml +1406 -1327
- package/agent/tasks/milestone-24-mcp-elicitation-confirmation/task-530-create-elicitation-helper.md +78 -0
- package/agent/tasks/milestone-24-mcp-elicitation-confirmation/task-531-update-handler-signatures.md +62 -0
- package/agent/tasks/milestone-24-mcp-elicitation-confirmation/task-532-implement-elicitation-in-tools.md +113 -0
- package/agent/tasks/milestone-24-mcp-elicitation-confirmation/task-533-wire-server-instance.md +62 -0
- package/agent/tasks/milestone-24-mcp-elicitation-confirmation/task-534-verification-cleanup.md +60 -0
- package/dist/server-factory.js +183 -13
- package/dist/server.js +183 -13
- package/dist/tools/delete-memory.d.ts +2 -1
- package/dist/tools/publish.d.ts +2 -1
- package/dist/tools/request-set-trust-level.d.ts +2 -1
- package/dist/tools/retract.d.ts +2 -1
- package/dist/tools/revise.d.ts +2 -1
- package/dist/utils/elicitation.d.ts +31 -0
- package/package.json +1 -1
- package/src/server-factory.ts +5 -5
- package/src/server.ts +5 -5
- package/src/tools/delete-memory.ts +51 -3
- package/src/tools/publish.ts +37 -1
- package/src/tools/request-set-trust-level.ts +35 -4
- package/src/tools/retract.ts +37 -1
- package/src/tools/revise.ts +39 -1
- package/src/utils/elicitation.ts +53 -0
|
@@ -39,6 +39,22 @@ Unlike `@acp.sync` which compares docs to code, `@acp.validate` checks the inter
|
|
|
39
39
|
|
|
40
40
|
## Steps
|
|
41
41
|
|
|
42
|
+
### 0. Display Command Header
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
⚡ @acp.validate
|
|
46
|
+
Validate all ACP documents for structure, consistency, correctness, and namespace conventions
|
|
47
|
+
|
|
48
|
+
Related:
|
|
49
|
+
@acp.package-validate Package-specific validation
|
|
50
|
+
@acp.sync Sync documentation with code
|
|
51
|
+
@acp.update Update progress tracking
|
|
52
|
+
@acp.report Generate report with validation results
|
|
53
|
+
@acp.init Can include validation during init
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
This step is informational only — do not wait for user input.
|
|
57
|
+
|
|
42
58
|
### 1. Validate Directory Structure
|
|
43
59
|
|
|
44
60
|
Check that all required directories and files exist.
|
|
@@ -239,10 +255,17 @@ Check index files in `agent/index/` for schema correctness and referential integ
|
|
|
239
255
|
- Parse the index entries under the top-level key
|
|
240
256
|
- For each entry, verify required fields present: `path`, `weight`, `kind`, `description`, `rationale`, `applies`
|
|
241
257
|
- Validate `weight` is a number in range 0.0-1.0
|
|
242
|
-
- Validate `kind` is one of: pattern
|
|
258
|
+
- Validate `kind` is one of: `pattern`, `command`, `design`, `note`, `directive`
|
|
259
|
+
- `requirements` is accepted as a deprecated alias for `design` (warn: "use `design` instead")
|
|
260
|
+
- `artifact` is also accepted for backward compatibility
|
|
261
|
+
- Validate path/kind consistency:
|
|
262
|
+
- If `path` is `null`: `kind` must be `note` or `directive`
|
|
263
|
+
- If `path` is a string: `kind` must be `pattern`, `command`, or `design`
|
|
264
|
+
- For `path: null` entries, `description` must be non-empty (it IS the content)
|
|
243
265
|
- Validate `applies` values use fully qualified command names (contain a dot, e.g. `acp.proceed`)
|
|
244
|
-
-
|
|
266
|
+
- For entries where `path` is a string: check that the path actually exists in the project
|
|
245
267
|
- Warn on missing paths (file may have been moved or deleted)
|
|
268
|
+
- Skip path existence check for `path: null` entries
|
|
246
269
|
- Check total indexed entries across all files (warn if > 20)
|
|
247
270
|
- Check per-namespace entry count (warn if > 10)
|
|
248
271
|
|
|
@@ -38,6 +38,19 @@ Unlike `@acp-version-update` which applies updates immediately, this command onl
|
|
|
38
38
|
|
|
39
39
|
## Steps
|
|
40
40
|
|
|
41
|
+
### 0. Display Command Header
|
|
42
|
+
|
|
43
|
+
Display the following informational header, then continue immediately:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
⚡ @acp.version-check-for-updates
|
|
47
|
+
Check if newer version of ACP is available without applying updates
|
|
48
|
+
|
|
49
|
+
Related:
|
|
50
|
+
@acp.version-check Show current version only
|
|
51
|
+
@acp.version-update Apply updates if available
|
|
52
|
+
```
|
|
53
|
+
|
|
41
54
|
### 1. Run Update Check Script
|
|
42
55
|
|
|
43
56
|
Execute the check-for-updates script.
|
|
@@ -36,6 +36,19 @@ Unlike `@acp-version-check-for-updates` which checks for newer versions, this co
|
|
|
36
36
|
|
|
37
37
|
## Steps
|
|
38
38
|
|
|
39
|
+
### 0. Display Command Header
|
|
40
|
+
|
|
41
|
+
Display the following informational header, then continue immediately:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
⚡ @acp.version-check
|
|
45
|
+
Display current ACP version and compatibility information
|
|
46
|
+
|
|
47
|
+
Related:
|
|
48
|
+
@acp.version-check-for-updates Check if newer version available
|
|
49
|
+
@acp.version-update Update to latest version
|
|
50
|
+
```
|
|
51
|
+
|
|
39
52
|
### 1. Run Version Script
|
|
40
53
|
|
|
41
54
|
Execute the version check script.
|
|
@@ -39,6 +39,20 @@ Unlike `@acp-version-check-for-updates` which only checks, this command actually
|
|
|
39
39
|
|
|
40
40
|
## Steps
|
|
41
41
|
|
|
42
|
+
### 0. Display Command Header
|
|
43
|
+
|
|
44
|
+
Display the following informational header, then continue immediately:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
⚡ @acp.version-update
|
|
48
|
+
Update ACP files (AGENT.md, templates, scripts) to the latest version
|
|
49
|
+
|
|
50
|
+
Related:
|
|
51
|
+
@acp.version-check-for-updates Check before updating
|
|
52
|
+
@acp.version-check Verify version after updating
|
|
53
|
+
@acp.init Reload context after updating
|
|
54
|
+
```
|
|
55
|
+
|
|
42
56
|
### 1. Verify Prerequisites
|
|
43
57
|
|
|
44
58
|
Check that update can proceed safely.
|
|
@@ -96,6 +96,39 @@ The agent infers intent from context. "Show me global packages" maps to `--globa
|
|
|
96
96
|
|
|
97
97
|
[Detailed, sequential steps the agent should follow:]
|
|
98
98
|
|
|
99
|
+
### 0. Display Command Header (Default)
|
|
100
|
+
|
|
101
|
+
When the command is invoked, immediately display a brief informational header before proceeding with execution. This step does NOT block execution — the agent prints it and continues into Step 1 without pausing.
|
|
102
|
+
|
|
103
|
+
**Actions**:
|
|
104
|
+
- Print the command's **Purpose** (from the metadata above)
|
|
105
|
+
- Print a one-line summary of what this invocation will do
|
|
106
|
+
- Print a **Usage** block listing available arguments and flags
|
|
107
|
+
- Print a **Related Commands** block listing related commands with one-line descriptions
|
|
108
|
+
|
|
109
|
+
**Display format**:
|
|
110
|
+
```
|
|
111
|
+
⚡ @{namespace}.{command-name}
|
|
112
|
+
{Purpose line from metadata}
|
|
113
|
+
|
|
114
|
+
Usage:
|
|
115
|
+
@{namespace}.{command-name} {default behavior}
|
|
116
|
+
@{namespace}.{command-name} --flag {what --flag does}
|
|
117
|
+
@{namespace}.{command-name} --option <value> {what --option does}
|
|
118
|
+
|
|
119
|
+
Related:
|
|
120
|
+
@{namespace}.{related-1} {one-line description}
|
|
121
|
+
@{namespace}.{related-2} {one-line description}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Notes**:
|
|
125
|
+
- If the command has no arguments, omit the Usage block
|
|
126
|
+
- If the command has no related commands, omit the Related block
|
|
127
|
+
- Keep descriptions short (under 60 characters)
|
|
128
|
+
- This step is informational only — do not wait for user input
|
|
129
|
+
|
|
130
|
+
**Expected Outcome**: User sees at a glance what the command does, how to customize it, and what else is available
|
|
131
|
+
|
|
99
132
|
### 1. [Step Name]
|
|
100
133
|
|
|
101
134
|
[Description of what to do in this step]
|
|
@@ -44,6 +44,20 @@ This command intelligently detects if changes represent a version change, determ
|
|
|
44
44
|
|
|
45
45
|
## Steps
|
|
46
46
|
|
|
47
|
+
### 0. Display Command Header
|
|
48
|
+
|
|
49
|
+
Display the following informational header, then continue immediately:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
⚡ @git.commit
|
|
53
|
+
Automate version detection, changelog updates, and git commits with proper semantic versioning
|
|
54
|
+
|
|
55
|
+
Related:
|
|
56
|
+
@acp.version-check Check current version
|
|
57
|
+
@acp.version-update Update ACP itself
|
|
58
|
+
@acp.status Check project status before committing
|
|
59
|
+
```
|
|
60
|
+
|
|
47
61
|
### 1. Analyze Changes for Version Impact
|
|
48
62
|
|
|
49
63
|
Review the staged/unstaged changes and determine:
|
|
@@ -42,6 +42,19 @@ The command is smart about .gitignore - it evaluates your project to determine w
|
|
|
42
42
|
|
|
43
43
|
## Steps
|
|
44
44
|
|
|
45
|
+
### 0. Display Command Header
|
|
46
|
+
|
|
47
|
+
Display the following informational header, then continue immediately:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
⚡ @git.init
|
|
51
|
+
Initialize a git repository with intelligent .gitignore based on project type
|
|
52
|
+
|
|
53
|
+
Related:
|
|
54
|
+
@git.commit Make your first commit after init
|
|
55
|
+
@acp.init Initialize ACP structure after git init
|
|
56
|
+
```
|
|
57
|
+
|
|
45
58
|
### 1. Evaluate Project Type
|
|
46
59
|
|
|
47
60
|
Analyze the project structure to determine the technology stack and project type.
|
package/agent/manifest.yaml
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
packages:
|
|
5
5
|
acp-core:
|
|
6
6
|
source: https://github.com/prmichaelsen/agent-context-protocol.git
|
|
7
|
-
package_version: 5.
|
|
7
|
+
package_version: 5.30.0
|
|
8
8
|
installed_at: 2026-03-14T06:27:55Z
|
|
9
|
-
updated_at: 2026-03-
|
|
9
|
+
updated_at: 2026-03-23T00:09:35Z
|
|
10
10
|
files:
|
|
11
11
|
commands:
|
|
12
12
|
- name: acp.clarification-address.md
|
|
@@ -61,4 +61,4 @@ packages:
|
|
|
61
61
|
- name: requirements.template.md
|
|
62
62
|
|
|
63
63
|
manifest_version: 1.0.0
|
|
64
|
-
last_updated: 2026-03-
|
|
64
|
+
last_updated: 2026-03-23T00:09:35Z
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Milestone 24: MCP Elicitation Confirmation Flow
|
|
2
|
+
|
|
3
|
+
**Goal**: Replace the two-phase token+confirm/deny confirmation pattern with MCP elicitation for protected operations, while keeping confirm/deny as fallback for non-elicitation clients.
|
|
4
|
+
**Duration**: 1 week
|
|
5
|
+
**Dependencies**: M23 (Trust Level Protection)
|
|
6
|
+
**Status**: Not Started
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Protected operations (publish, retract, revise, delete, set-trust-level) currently use a two-phase token pattern: the tool returns a `{ token }`, then the agent calls `remember_confirm` or `remember_deny`. The problem is that an autonomous agent can call confirm immediately in the same tool loop — auto-confirming without any user involvement.
|
|
13
|
+
|
|
14
|
+
MCP elicitation (`server.elicitInput()`) is the spec-native solution. It allows the server to pause a tool call and request user confirmation directly through the client, bypassing the agent entirely. The MCP SDK v1.27.1 (installed) fully supports this.
|
|
15
|
+
|
|
16
|
+
For clients that don't support elicitation, the existing token+confirm/deny flow is preserved as a fallback.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Deliverables
|
|
21
|
+
|
|
22
|
+
### 1. Elicitation Helper Utility
|
|
23
|
+
- `src/utils/elicitation.ts` — shared helper that checks client capabilities and issues confirmation prompts or returns fallback
|
|
24
|
+
|
|
25
|
+
### 2. Updated Protected Tool Handlers
|
|
26
|
+
- All 5 protected tools (publish, retract, revise, delete-memory, request-set-trust-level) use elicitation when available
|
|
27
|
+
- Fallback to token flow when elicitation not supported
|
|
28
|
+
|
|
29
|
+
### 3. Server Wiring
|
|
30
|
+
- `server.ts` and `server-factory.ts` pass `Server` instance to protected tool handlers
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Success Criteria
|
|
35
|
+
|
|
36
|
+
- [ ] `npm run build` completes without errors
|
|
37
|
+
- [ ] `npm run typecheck` passes
|
|
38
|
+
- [ ] `npm test` — all existing tests pass
|
|
39
|
+
- [ ] Protected tools use elicitation when client supports it
|
|
40
|
+
- [ ] Protected tools fall back to token+confirm/deny when client doesn't support elicitation
|
|
41
|
+
- [ ] `remember_confirm` and `remember_deny` tools still work for fallback clients
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Key Files to Create
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
src/
|
|
49
|
+
└── utils/
|
|
50
|
+
└── elicitation.ts
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Key Files to Modify
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
src/
|
|
57
|
+
├── tools/
|
|
58
|
+
│ ├── publish.ts
|
|
59
|
+
│ ├── retract.ts
|
|
60
|
+
│ ├── revise.ts
|
|
61
|
+
│ ├── delete-memory.ts
|
|
62
|
+
│ └── request-set-trust-level.ts
|
|
63
|
+
├── server.ts
|
|
64
|
+
└── server-factory.ts
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Tasks
|
|
70
|
+
|
|
71
|
+
1. [Task 530: Create elicitation helper utility](../tasks/milestone-24-mcp-elicitation-confirmation/task-530-create-elicitation-helper.md) - Shared helper for elicitation with fallback detection
|
|
72
|
+
2. [Task 531: Update protected tool handler signatures](../tasks/milestone-24-mcp-elicitation-confirmation/task-531-update-handler-signatures.md) - Add optional `server` parameter to protected tool handlers
|
|
73
|
+
3. [Task 532: Implement elicitation in protected tools](../tasks/milestone-24-mcp-elicitation-confirmation/task-532-implement-elicitation-in-tools.md) - Wire elicitation logic into publish, retract, revise, delete, set-trust-level
|
|
74
|
+
4. [Task 533: Wire server instance through entry points](../tasks/milestone-24-mcp-elicitation-confirmation/task-533-wire-server-instance.md) - Pass server to protected tool handlers in server.ts and server-factory.ts
|
|
75
|
+
5. [Task 534: Verification and cleanup](../tasks/milestone-24-mcp-elicitation-confirmation/task-534-verification-cleanup.md) - Build, typecheck, test, update tool descriptions
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Testing Requirements
|
|
80
|
+
|
|
81
|
+
- [ ] Existing unit tests pass without modification
|
|
82
|
+
- [ ] Build succeeds
|
|
83
|
+
- [ ] Typecheck passes
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Risks and Mitigation
|
|
88
|
+
|
|
89
|
+
| Risk | Impact | Probability | Mitigation Strategy |
|
|
90
|
+
|------|--------|-------------|---------------------|
|
|
91
|
+
| Client doesn't support elicitation | Medium | High | Fallback to existing token+confirm/deny flow |
|
|
92
|
+
| Elicitation throws on unsupported clients | High | Low | Capability check before calling elicitInput |
|
|
93
|
+
| Confirm handler logic duplication | Medium | Medium | Reuse existing confirm handler code path internally |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
**Next Milestone**: TBD
|
|
98
|
+
**Blockers**: None
|
|
99
|
+
**Notes**: Start with a spike on `remember_publish` to verify elicitation works end-to-end before migrating all protected operations.
|