@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.
Files changed (74) hide show
  1. package/AGENT.md +1 -1
  2. package/CHANGELOG.md +12 -0
  3. package/agent/commands/acp.artifact-glossary.md +22 -0
  4. package/agent/commands/acp.artifact-reference.md +21 -0
  5. package/agent/commands/acp.artifact-research.md +20 -0
  6. package/agent/commands/acp.audit.md +19 -0
  7. package/agent/commands/acp.clarification-address.md +20 -0
  8. package/agent/commands/acp.clarification-capture.md +9 -0
  9. package/agent/commands/acp.clarification-create.md +20 -0
  10. package/agent/commands/acp.command-create.md +20 -0
  11. package/agent/commands/acp.design-create.md +20 -0
  12. package/agent/commands/acp.design-reference.md +9 -0
  13. package/agent/commands/acp.handoff.md +17 -0
  14. package/agent/commands/acp.index.md +23 -0
  15. package/agent/commands/acp.init.md +25 -2
  16. package/agent/commands/acp.package-create.md +14 -0
  17. package/agent/commands/acp.package-info.md +17 -0
  18. package/agent/commands/acp.package-install.md +20 -0
  19. package/agent/commands/acp.package-list.md +20 -0
  20. package/agent/commands/acp.package-publish.md +13 -0
  21. package/agent/commands/acp.package-remove.md +18 -0
  22. package/agent/commands/acp.package-search.md +19 -0
  23. package/agent/commands/acp.package-update.md +21 -0
  24. package/agent/commands/acp.package-validate.md +14 -0
  25. package/agent/commands/acp.pattern-create.md +20 -0
  26. package/agent/commands/acp.plan.md +42 -13
  27. package/agent/commands/acp.proceed.md +55 -21
  28. package/agent/commands/acp.project-create.md +13 -0
  29. package/agent/commands/acp.project-info.md +17 -0
  30. package/agent/commands/acp.project-list.md +19 -0
  31. package/agent/commands/acp.project-remove.md +18 -0
  32. package/agent/commands/acp.project-set.md +16 -0
  33. package/agent/commands/acp.project-update.md +22 -0
  34. package/agent/commands/acp.projects-restore.md +18 -0
  35. package/agent/commands/acp.projects-sync.md +14 -0
  36. package/agent/commands/acp.report.md +15 -0
  37. package/agent/commands/acp.resume.md +15 -0
  38. package/agent/commands/acp.sessions.md +21 -0
  39. package/agent/commands/acp.status.md +15 -0
  40. package/agent/commands/acp.sync.md +15 -0
  41. package/agent/commands/acp.task-create.md +21 -0
  42. package/agent/commands/acp.update.md +15 -0
  43. package/agent/commands/acp.validate.md +25 -2
  44. package/agent/commands/acp.version-check-for-updates.md +13 -0
  45. package/agent/commands/acp.version-check.md +13 -0
  46. package/agent/commands/acp.version-update.md +14 -0
  47. package/agent/commands/command.template.md +33 -0
  48. package/agent/commands/git.commit.md +14 -0
  49. package/agent/commands/git.init.md +13 -0
  50. package/agent/manifest.yaml +3 -3
  51. package/agent/milestones/milestone-24-mcp-elicitation-confirmation.md +99 -0
  52. package/agent/progress.yaml +1406 -1327
  53. package/agent/tasks/milestone-24-mcp-elicitation-confirmation/task-530-create-elicitation-helper.md +78 -0
  54. package/agent/tasks/milestone-24-mcp-elicitation-confirmation/task-531-update-handler-signatures.md +62 -0
  55. package/agent/tasks/milestone-24-mcp-elicitation-confirmation/task-532-implement-elicitation-in-tools.md +113 -0
  56. package/agent/tasks/milestone-24-mcp-elicitation-confirmation/task-533-wire-server-instance.md +62 -0
  57. package/agent/tasks/milestone-24-mcp-elicitation-confirmation/task-534-verification-cleanup.md +60 -0
  58. package/dist/server-factory.js +183 -13
  59. package/dist/server.js +183 -13
  60. package/dist/tools/delete-memory.d.ts +2 -1
  61. package/dist/tools/publish.d.ts +2 -1
  62. package/dist/tools/request-set-trust-level.d.ts +2 -1
  63. package/dist/tools/retract.d.ts +2 -1
  64. package/dist/tools/revise.d.ts +2 -1
  65. package/dist/utils/elicitation.d.ts +31 -0
  66. package/package.json +1 -1
  67. package/src/server-factory.ts +5 -5
  68. package/src/server.ts +5 -5
  69. package/src/tools/delete-memory.ts +51 -3
  70. package/src/tools/publish.ts +37 -1
  71. package/src/tools/request-set-trust-level.ts +35 -4
  72. package/src/tools/retract.ts +37 -1
  73. package/src/tools/revise.ts +39 -1
  74. 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, command, design, requirements, artifact
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
- - Check that each `path` actually exists in the project
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.
@@ -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.28.9
7
+ package_version: 5.30.0
8
8
  installed_at: 2026-03-14T06:27:55Z
9
- updated_at: 2026-03-20T10:17:51Z
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-20T10:17:51Z
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.