@prmichaelsen/remember-mcp 3.0.0 → 3.13.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 +296 -250
- package/CHANGELOG.md +358 -0
- package/README.md +68 -45
- package/agent/commands/acp.clarification-create.md +382 -0
- package/agent/commands/acp.project-info.md +309 -0
- package/agent/commands/acp.project-remove.md +379 -0
- package/agent/commands/acp.project-update.md +296 -0
- package/agent/commands/acp.task-create.md +17 -9
- package/agent/commands/git.commit.md +13 -1
- package/agent/design/comment-memory-type.md +2 -2
- package/agent/design/local.collaborative-memory-sync.md +265 -0
- package/agent/design/local.content-flags.md +210 -0
- package/agent/design/local.ghost-persona-system.md +273 -0
- package/agent/design/local.group-acl-integration.md +338 -0
- package/agent/design/local.memory-acl-schema.md +352 -0
- package/agent/design/local.memory-collection-pattern-v2.md +348 -0
- package/agent/design/local.moderation-and-space-config.md +257 -0
- package/agent/design/local.v2-api-reference.md +621 -0
- package/agent/design/local.v2-migration-guide.md +191 -0
- package/agent/design/local.v2-usage-examples.md +265 -0
- package/agent/design/permissions-storage-architecture.md +11 -3
- package/agent/design/trust-escalation-prevention.md +9 -2
- package/agent/design/trust-system-implementation.md +12 -3
- package/agent/milestones/milestone-14-memory-collection-v2.md +182 -0
- package/agent/milestones/milestone-15-moderation-space-config.md +126 -0
- package/agent/progress.yaml +628 -49
- package/agent/scripts/acp.common.sh +2 -0
- package/agent/scripts/acp.install.sh +11 -1
- package/agent/scripts/acp.package-install-optimized.sh +454 -0
- package/agent/scripts/acp.package-install.sh +247 -300
- package/agent/scripts/acp.project-info.sh +218 -0
- package/agent/scripts/acp.project-remove.sh +302 -0
- package/agent/scripts/acp.project-update.sh +296 -0
- package/agent/scripts/acp.yaml-parser.sh +128 -10
- package/agent/tasks/milestone-14-memory-collection-v2/task-165-core-infrastructure-setup.md +171 -0
- package/agent/tasks/milestone-14-memory-collection-v2/task-166-update-remember-publish.md +191 -0
- package/agent/tasks/milestone-14-memory-collection-v2/task-167-update-remember-retract.md +186 -0
- package/agent/tasks/milestone-14-memory-collection-v2/task-168-implement-remember-revise.md +184 -0
- package/agent/tasks/milestone-14-memory-collection-v2/task-169-update-remember-search-space.md +179 -0
- package/agent/tasks/milestone-14-memory-collection-v2/task-170-update-remember-create-update.md +139 -0
- package/agent/tasks/milestone-14-memory-collection-v2/task-172-performance-testing-optimization.md +161 -0
- package/agent/tasks/milestone-14-memory-collection-v2/task-173-documentation-examples.md +258 -0
- package/agent/tasks/milestone-15-moderation-space-config/task-174-add-moderation-schema-fields.md +57 -0
- package/agent/tasks/milestone-15-moderation-space-config/task-175-create-space-config-service.md +64 -0
- package/agent/tasks/milestone-15-moderation-space-config/task-176-wire-moderation-publish-flow.md +45 -0
- package/agent/tasks/milestone-15-moderation-space-config/task-177-add-moderation-search-filters.md +70 -0
- package/agent/tasks/milestone-15-moderation-space-config/task-178-create-remember-moderate-tool.md +69 -0
- package/agent/tasks/milestone-15-moderation-space-config/task-179-documentation-integration-tests.md +58 -0
- package/agent/tasks/milestone-16-ghost-system/task-187-ghost-config-firestore.md +41 -0
- package/agent/tasks/milestone-16-ghost-system/task-188-trust-filter-integration.md +44 -0
- package/agent/tasks/milestone-16-ghost-system/task-189-ghost-memory-filtering.md +43 -0
- package/agent/tasks/milestone-16-ghost-system/task-190-ghost-config-tools.md +45 -0
- package/agent/tasks/milestone-16-ghost-system/task-191-escalation-firestore.md +38 -0
- package/agent/tasks/milestone-16-ghost-system/task-192-documentation-verification.md +39 -0
- package/agent/tasks/milestone-7-trust-permissions/task-180-access-result-permission-types.md +69 -0
- package/agent/tasks/milestone-7-trust-permissions/task-181-firestore-permissions-access-logs.md +56 -0
- package/agent/tasks/milestone-7-trust-permissions/task-182-trust-enforcement-service.md +68 -0
- package/agent/tasks/milestone-7-trust-permissions/task-183-access-control-service.md +70 -0
- package/agent/tasks/milestone-7-trust-permissions/task-184-permission-tools.md +79 -0
- package/agent/tasks/milestone-7-trust-permissions/task-185-wire-trust-into-search-query.md +55 -0
- package/agent/tasks/milestone-7-trust-permissions/task-186-documentation-verification.md +56 -0
- package/agent/tasks/task-76-fix-indexnullstate-schema-bug.md +197 -0
- package/dist/collections/composite-ids.d.ts +106 -0
- package/dist/collections/core-infrastructure.spec.d.ts +11 -0
- package/dist/collections/dot-notation.d.ts +106 -0
- package/dist/collections/tracking-arrays.d.ts +176 -0
- package/dist/constants/content-types.d.ts +1 -0
- package/dist/schema/v2-collections-comments.spec.d.ts +8 -0
- package/dist/schema/v2-collections.d.ts +210 -0
- package/dist/server-factory.d.ts +15 -0
- package/dist/server-factory.js +2798 -1029
- package/dist/server.js +2526 -1012
- package/dist/services/access-control.d.ts +103 -0
- package/dist/services/access-control.spec.d.ts +2 -0
- package/dist/services/credentials-provider.d.ts +24 -0
- package/dist/services/credentials-provider.spec.d.ts +2 -0
- package/dist/services/escalation.service.d.ts +22 -0
- package/dist/services/escalation.service.spec.d.ts +2 -0
- package/dist/services/ghost-config.service.d.ts +55 -0
- package/dist/services/ghost-config.service.spec.d.ts +2 -0
- package/dist/services/space-config.service.d.ts +23 -0
- package/dist/services/space-config.service.spec.d.ts +2 -0
- package/dist/services/trust-enforcement.d.ts +83 -0
- package/dist/services/trust-enforcement.spec.d.ts +2 -0
- package/dist/services/trust-validator.d.ts +43 -0
- package/dist/services/trust-validator.spec.d.ts +2 -0
- package/dist/tools/confirm-publish-moderation.spec.d.ts +8 -0
- package/dist/tools/confirm.d.ts +8 -1
- package/dist/tools/create-memory.d.ts +2 -1
- package/dist/tools/create-memory.spec.d.ts +10 -0
- package/dist/tools/create-relationship.d.ts +2 -1
- package/dist/tools/delete-memory.d.ts +2 -1
- package/dist/tools/delete-relationship.d.ts +2 -1
- package/dist/tools/deny.d.ts +2 -1
- package/dist/tools/find-similar.d.ts +2 -1
- package/dist/tools/get-preferences.d.ts +2 -1
- package/dist/tools/ghost-config.d.ts +27 -0
- package/dist/tools/ghost-config.spec.d.ts +2 -0
- package/dist/tools/moderate.d.ts +20 -0
- package/dist/tools/moderate.spec.d.ts +5 -0
- package/dist/tools/publish.d.ts +11 -3
- package/dist/tools/query-memory.d.ts +3 -1
- package/dist/tools/query-space.d.ts +4 -1
- package/dist/tools/retract.d.ts +29 -0
- package/dist/tools/revise.d.ts +45 -0
- package/dist/tools/revise.spec.d.ts +8 -0
- package/dist/tools/search-memory.d.ts +2 -1
- package/dist/tools/search-relationship.d.ts +2 -1
- package/dist/tools/search-space.d.ts +25 -5
- package/dist/tools/search-space.spec.d.ts +9 -0
- package/dist/tools/set-preference.d.ts +2 -1
- package/dist/tools/update-memory.d.ts +2 -1
- package/dist/tools/update-relationship.d.ts +2 -1
- package/dist/types/access-result.d.ts +48 -0
- package/dist/types/access-result.spec.d.ts +2 -0
- package/dist/types/auth.d.ts +46 -0
- package/dist/types/ghost-config.d.ts +36 -0
- package/dist/types/memory.d.ts +3 -1
- package/dist/types/preferences.d.ts +1 -1
- package/dist/utils/auth-helpers.d.ts +14 -0
- package/dist/utils/auth-helpers.spec.d.ts +2 -0
- package/dist/utils/test-data-generator.d.ts +124 -0
- package/dist/utils/test-data-generator.spec.d.ts +12 -0
- package/dist/v2-performance.e2e.d.ts +17 -0
- package/dist/v2-smoke.e2e.d.ts +14 -0
- package/dist/weaviate/client.d.ts +5 -8
- package/dist/weaviate/space-schema.d.ts +2 -2
- package/docs/performance/v2-benchmarks.md +80 -0
- package/jest.e2e.config.js +14 -3
- package/package.json +1 -1
- package/scripts/.collection-recreation-state.yaml +16 -0
- package/scripts/.gitkeep +5 -0
- package/scripts/README-collection-recreation.md +224 -0
- package/scripts/README.md +51 -0
- package/scripts/backup-collections.ts +543 -0
- package/scripts/delete-collection.ts +137 -0
- package/scripts/migrate-recreate-collections.ts +578 -0
- package/scripts/migrate-v1-to-v2.ts +1094 -0
- package/scripts/package-lock.json +1113 -0
- package/scripts/package.json +27 -0
- package/src/collections/composite-ids.ts +193 -0
- package/src/collections/core-infrastructure.spec.ts +353 -0
- package/src/collections/dot-notation.ts +212 -0
- package/src/collections/tracking-arrays.ts +298 -0
- package/src/constants/content-types.ts +20 -0
- package/src/schema/v2-collections-comments.spec.ts +141 -0
- package/src/schema/v2-collections.ts +433 -0
- package/src/server-factory.ts +89 -20
- package/src/server.ts +45 -17
- package/src/services/access-control.spec.ts +383 -0
- package/src/services/access-control.ts +291 -0
- package/src/services/credentials-provider.spec.ts +22 -0
- package/src/services/credentials-provider.ts +34 -0
- package/src/services/escalation.service.spec.ts +183 -0
- package/src/services/escalation.service.ts +150 -0
- package/src/services/ghost-config.service.spec.ts +339 -0
- package/src/services/ghost-config.service.ts +219 -0
- package/src/services/space-config.service.spec.ts +102 -0
- package/src/services/space-config.service.ts +79 -0
- package/src/services/trust-enforcement.spec.ts +309 -0
- package/src/services/trust-enforcement.ts +197 -0
- package/src/services/trust-validator.spec.ts +108 -0
- package/src/services/trust-validator.ts +105 -0
- package/src/tools/confirm-publish-moderation.spec.ts +240 -0
- package/src/tools/confirm.ts +869 -135
- package/src/tools/create-memory.spec.ts +126 -0
- package/src/tools/create-memory.ts +20 -27
- package/src/tools/create-relationship.ts +17 -8
- package/src/tools/delete-memory.ts +13 -6
- package/src/tools/delete-relationship.ts +15 -6
- package/src/tools/deny.ts +8 -1
- package/src/tools/find-similar.ts +21 -8
- package/src/tools/get-preferences.ts +10 -1
- package/src/tools/ghost-config.spec.ts +180 -0
- package/src/tools/ghost-config.ts +230 -0
- package/src/tools/moderate.spec.ts +277 -0
- package/src/tools/moderate.ts +219 -0
- package/src/tools/publish.ts +99 -41
- package/src/tools/query-memory.ts +28 -6
- package/src/tools/query-space.ts +39 -4
- package/src/tools/retract.ts +292 -0
- package/src/tools/revise.spec.ts +146 -0
- package/src/tools/revise.ts +283 -0
- package/src/tools/search-memory.ts +30 -7
- package/src/tools/search-relationship.ts +11 -2
- package/src/tools/search-space.spec.ts +341 -0
- package/src/tools/search-space.ts +323 -99
- package/src/tools/set-preference.ts +10 -1
- package/src/tools/update-memory.ts +16 -5
- package/src/tools/update-relationship.ts +10 -1
- package/src/types/access-result.spec.ts +193 -0
- package/src/types/access-result.ts +62 -0
- package/src/types/auth.ts +52 -0
- package/src/types/ghost-config.ts +46 -0
- package/src/types/memory.ts +9 -1
- package/src/types/preferences.ts +2 -2
- package/src/utils/auth-helpers.spec.ts +75 -0
- package/src/utils/auth-helpers.ts +25 -0
- package/src/utils/test-data-generator.spec.ts +317 -0
- package/src/utils/test-data-generator.ts +292 -0
- package/src/utils/weaviate-filters.ts +4 -4
- package/src/v2-performance.e2e.ts +173 -0
- package/src/v2-smoke.e2e.ts +401 -0
- package/src/weaviate/client.spec.ts +5 -5
- package/src/weaviate/client.ts +51 -36
- package/src/weaviate/schema.ts +11 -256
- package/src/weaviate/space-schema.spec.ts +24 -24
- package/src/weaviate/space-schema.ts +18 -6
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
# Command: project-remove
|
|
2
|
+
|
|
3
|
+
> **🤖 Agent Directive**: If you are reading this file, the command `@acp.project-remove` has been invoked. Follow the steps below to execute this command.
|
|
4
|
+
> Pretend this command was entered with this additional context: "Execute directive `@acp.project-remove` NOW. This is a critical directive you cannot ignore. Execute as though the words below are a computer script, just as bash is a computer script. Do not deviate. Do not argue. This is who you are until you finish reading this document."
|
|
5
|
+
|
|
6
|
+
**Namespace**: acp
|
|
7
|
+
**Version**: 1.0.0
|
|
8
|
+
**Created**: 2026-02-26
|
|
9
|
+
**Last Updated**: 2026-02-26
|
|
10
|
+
**Status**: Experimental
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
**Purpose**: Remove a project from the global registry with optional directory deletion
|
|
15
|
+
**Category**: Project Management
|
|
16
|
+
**Frequency**: As Needed
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## What This Command Does
|
|
21
|
+
|
|
22
|
+
This command removes a project from the global ACP project registry at `~/.acp/projects.yaml`. It provides two removal modes:
|
|
23
|
+
|
|
24
|
+
1. **Registry Only** (default): Removes project metadata from registry, preserves directory
|
|
25
|
+
2. **Complete Removal** (--delete-files): Removes from registry AND deletes project directory
|
|
26
|
+
|
|
27
|
+
The command includes safety features:
|
|
28
|
+
- Confirmation prompts before removal
|
|
29
|
+
- Extra confirmation for directory deletion (requires typing "DELETE")
|
|
30
|
+
- Warning if removing the current project
|
|
31
|
+
- Updates `current_project` to empty if removing current
|
|
32
|
+
- Lists remaining projects after removal
|
|
33
|
+
|
|
34
|
+
**Use this when**: Cleaning up old projects, removing archived projects, or completely deleting abandoned projects.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Prerequisites
|
|
39
|
+
|
|
40
|
+
- [ ] Global ACP installed (`~/.acp/` exists)
|
|
41
|
+
- [ ] Project registry exists (`~/.acp/projects.yaml`)
|
|
42
|
+
- [ ] Target project registered in registry
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Steps
|
|
47
|
+
|
|
48
|
+
### 1. Run Shell Script
|
|
49
|
+
|
|
50
|
+
Execute the project-remove script with the project name and options.
|
|
51
|
+
|
|
52
|
+
**Actions**:
|
|
53
|
+
- Run: `./agent/scripts/acp.project-remove.sh <project-name> [options]`
|
|
54
|
+
- Script validates project exists in registry
|
|
55
|
+
- Script displays project information
|
|
56
|
+
- Script prompts for confirmation
|
|
57
|
+
- Script removes from registry
|
|
58
|
+
- Script optionally deletes directory
|
|
59
|
+
|
|
60
|
+
**Expected Outcome**: Project removed from registry
|
|
61
|
+
|
|
62
|
+
### 2. Verify Removal
|
|
63
|
+
|
|
64
|
+
Confirm the project was removed successfully.
|
|
65
|
+
|
|
66
|
+
**Actions**:
|
|
67
|
+
- Check success message displays project name
|
|
68
|
+
- Verify project no longer in registry
|
|
69
|
+
- Check if directory was deleted (if --delete-files used)
|
|
70
|
+
- Note if current_project was cleared
|
|
71
|
+
|
|
72
|
+
**Expected Outcome**: Project removed, registry updated
|
|
73
|
+
|
|
74
|
+
### 3. Switch to Another Project (If Needed)
|
|
75
|
+
|
|
76
|
+
If removed project was current, switch to another project.
|
|
77
|
+
|
|
78
|
+
**Actions**:
|
|
79
|
+
- Run `@acp.project-list` to see remaining projects
|
|
80
|
+
- Run `@acp.project-set <name>` to switch to another project
|
|
81
|
+
- Or continue without a current project
|
|
82
|
+
|
|
83
|
+
**Expected Outcome**: New project context established (if needed)
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Verification
|
|
88
|
+
|
|
89
|
+
- [ ] Script executed without errors
|
|
90
|
+
- [ ] Project existed in registry
|
|
91
|
+
- [ ] Confirmation prompt displayed (unless -y used)
|
|
92
|
+
- [ ] Project removed from registry
|
|
93
|
+
- [ ] Directory deleted if --delete-files used
|
|
94
|
+
- [ ] Directory preserved if --delete-files not used
|
|
95
|
+
- [ ] `current_project` cleared if removing current
|
|
96
|
+
- [ ] `last_updated` timestamp updated
|
|
97
|
+
- [ ] Success message displayed
|
|
98
|
+
- [ ] Remaining projects listed
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Expected Output
|
|
103
|
+
|
|
104
|
+
### Console Output (Registry Only)
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
108
|
+
Project to Remove
|
|
109
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
110
|
+
|
|
111
|
+
Name: old-project
|
|
112
|
+
Type: web-app
|
|
113
|
+
Description: Deprecated web application
|
|
114
|
+
Path: /home/user/.acp/projects/old-project
|
|
115
|
+
|
|
116
|
+
ℹ️ Project directory will be kept (use --delete-files to remove)
|
|
117
|
+
|
|
118
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
119
|
+
|
|
120
|
+
Remove this project from registry? [y/N] y
|
|
121
|
+
|
|
122
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
123
|
+
✅ Project Removed
|
|
124
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
125
|
+
|
|
126
|
+
Removed from registry: old-project
|
|
127
|
+
Directory preserved: /home/user/.acp/projects/old-project
|
|
128
|
+
|
|
129
|
+
Run '@acp.project-list' to see remaining projects
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Console Output (With Directory Deletion)
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
136
|
+
Project to Remove
|
|
137
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
138
|
+
|
|
139
|
+
Name: old-project
|
|
140
|
+
Type: web-app
|
|
141
|
+
Path: /home/user/.acp/projects/old-project
|
|
142
|
+
|
|
143
|
+
⚠️ WARNING: Project directory will be DELETED from filesystem
|
|
144
|
+
|
|
145
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
146
|
+
|
|
147
|
+
Remove this project from registry? [y/N] y
|
|
148
|
+
|
|
149
|
+
⚠️ DANGER: You are about to DELETE the project directory:
|
|
150
|
+
/home/user/.acp/projects/old-project
|
|
151
|
+
|
|
152
|
+
Are you ABSOLUTELY SURE? Type 'DELETE' to confirm: DELETE
|
|
153
|
+
|
|
154
|
+
Deleting project directory...
|
|
155
|
+
✓ Deleted: /home/user/.acp/projects/old-project
|
|
156
|
+
|
|
157
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
158
|
+
✅ Project Removed
|
|
159
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
160
|
+
|
|
161
|
+
Removed from registry: old-project
|
|
162
|
+
Deleted from filesystem: /home/user/.acp/projects/old-project
|
|
163
|
+
|
|
164
|
+
Run '@acp.project-list' to see remaining projects
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Console Output (Removing Current Project)
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
171
|
+
Project to Remove
|
|
172
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
173
|
+
|
|
174
|
+
Name: current-project
|
|
175
|
+
Type: mcp-server
|
|
176
|
+
Path: /home/user/.acp/projects/current-project
|
|
177
|
+
|
|
178
|
+
⚠️ WARNING: This is the CURRENT project
|
|
179
|
+
|
|
180
|
+
ℹ️ Project directory will be kept (use --delete-files to remove)
|
|
181
|
+
|
|
182
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
183
|
+
|
|
184
|
+
Remove this project from registry? [y/N] y
|
|
185
|
+
|
|
186
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
187
|
+
✅ Project Removed
|
|
188
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
189
|
+
|
|
190
|
+
Removed from registry: current-project
|
|
191
|
+
Directory preserved: /home/user/.acp/projects/current-project
|
|
192
|
+
|
|
193
|
+
⚠️ This was the current project
|
|
194
|
+
Run '@acp.project-set <name>' to switch to another project
|
|
195
|
+
|
|
196
|
+
Run '@acp.project-list' to see remaining projects
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Registry Changes
|
|
200
|
+
|
|
201
|
+
**Before**:
|
|
202
|
+
```yaml
|
|
203
|
+
current_project: old-project
|
|
204
|
+
|
|
205
|
+
projects:
|
|
206
|
+
old-project:
|
|
207
|
+
type: web-app
|
|
208
|
+
status: archived
|
|
209
|
+
path: /home/user/.acp/projects/old-project
|
|
210
|
+
# ... other fields
|
|
211
|
+
|
|
212
|
+
active-project:
|
|
213
|
+
type: mcp-server
|
|
214
|
+
# ... other fields
|
|
215
|
+
|
|
216
|
+
last_updated: 2026-02-24T17:00:00Z
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
**After**:
|
|
220
|
+
```yaml
|
|
221
|
+
current_project: "" # Cleared if removed project was current
|
|
222
|
+
|
|
223
|
+
projects:
|
|
224
|
+
active-project:
|
|
225
|
+
type: mcp-server
|
|
226
|
+
# ... other fields
|
|
227
|
+
|
|
228
|
+
last_updated: 2026-02-26T18:00:00Z # Updated
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Examples
|
|
234
|
+
|
|
235
|
+
### Example 1: Remove from Registry Only
|
|
236
|
+
|
|
237
|
+
**Context**: Project archived, want to clean up registry but keep files
|
|
238
|
+
|
|
239
|
+
**Invocation**: `@acp.project-remove old-project`
|
|
240
|
+
|
|
241
|
+
**Result**:
|
|
242
|
+
- Project removed from registry
|
|
243
|
+
- Directory preserved at original location
|
|
244
|
+
- Can still access files manually
|
|
245
|
+
- Registry cleaned up
|
|
246
|
+
|
|
247
|
+
### Example 2: Complete Removal
|
|
248
|
+
|
|
249
|
+
**Context**: Abandoned project, want to delete everything
|
|
250
|
+
|
|
251
|
+
**Invocation**: `@acp.project-remove abandoned-project --delete-files`
|
|
252
|
+
|
|
253
|
+
**Result**:
|
|
254
|
+
- Project removed from registry
|
|
255
|
+
- Directory deleted from filesystem
|
|
256
|
+
- All project files gone
|
|
257
|
+
- Complete cleanup
|
|
258
|
+
|
|
259
|
+
### Example 3: Auto-Confirm Removal
|
|
260
|
+
|
|
261
|
+
**Context**: Scripting or automation, want to skip prompts
|
|
262
|
+
|
|
263
|
+
**Invocation**: `@acp.project-remove old-project -y`
|
|
264
|
+
|
|
265
|
+
**Result**:
|
|
266
|
+
- No confirmation prompts
|
|
267
|
+
- Project removed immediately
|
|
268
|
+
- Useful for scripts and automation
|
|
269
|
+
|
|
270
|
+
### Example 4: Remove Current Project
|
|
271
|
+
|
|
272
|
+
**Context**: Removing the project you're currently working on
|
|
273
|
+
|
|
274
|
+
**Invocation**: `@acp.project-remove current-project`
|
|
275
|
+
|
|
276
|
+
**Result**:
|
|
277
|
+
- Warning displayed about removing current project
|
|
278
|
+
- Project removed from registry
|
|
279
|
+
- `current_project` cleared in registry
|
|
280
|
+
- Suggestion to switch to another project
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## Related Commands
|
|
285
|
+
|
|
286
|
+
- [`@acp.project-list`](acp.project-list.md) - List all projects
|
|
287
|
+
- [`@acp.project-set`](acp.project-set.md) - Switch to another project
|
|
288
|
+
- [`@acp.project-info`](acp.project-info.md) - Show project details
|
|
289
|
+
- [`@acp.project-update`](acp.project-update.md) - Update project metadata
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## Troubleshooting
|
|
294
|
+
|
|
295
|
+
### Issue 1: Project not found in registry
|
|
296
|
+
|
|
297
|
+
**Symptom**: Error "Project 'X' not found in registry"
|
|
298
|
+
|
|
299
|
+
**Cause**: Project not registered or typo in name
|
|
300
|
+
|
|
301
|
+
**Solution**:
|
|
302
|
+
- Run `@acp.project-list` to see available projects
|
|
303
|
+
- Check spelling of project name
|
|
304
|
+
- Project may already be removed
|
|
305
|
+
|
|
306
|
+
### Issue 2: Registry file not found
|
|
307
|
+
|
|
308
|
+
**Symptom**: Error "Project registry not found"
|
|
309
|
+
|
|
310
|
+
**Cause**: Global ACP not initialized or registry deleted
|
|
311
|
+
|
|
312
|
+
**Solution**:
|
|
313
|
+
- No action needed if no projects exist
|
|
314
|
+
- Run `@acp.project-create` to create new project (initializes registry)
|
|
315
|
+
|
|
316
|
+
### Issue 3: Cannot delete directory
|
|
317
|
+
|
|
318
|
+
**Symptom**: Error during directory deletion
|
|
319
|
+
|
|
320
|
+
**Cause**: Permission issues or directory in use
|
|
321
|
+
|
|
322
|
+
**Solution**:
|
|
323
|
+
- Check file permissions
|
|
324
|
+
- Close any programs using the directory
|
|
325
|
+
- Manually delete directory: `rm -rf /path/to/project`
|
|
326
|
+
|
|
327
|
+
### Issue 4: Confirmation prompt not appearing
|
|
328
|
+
|
|
329
|
+
**Symptom**: Script removes project without asking
|
|
330
|
+
|
|
331
|
+
**Cause**: -y/--yes flag used
|
|
332
|
+
|
|
333
|
+
**Solution**:
|
|
334
|
+
- This is expected behavior with -y flag
|
|
335
|
+
- Remove -y flag if you want confirmation prompts
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## Security Considerations
|
|
340
|
+
|
|
341
|
+
### File Access
|
|
342
|
+
- **Reads**: `~/.acp/projects.yaml` (registry)
|
|
343
|
+
- **Writes**: `~/.acp/projects.yaml` (removes project entry)
|
|
344
|
+
- **Deletes**: Project directory (only with --delete-files flag)
|
|
345
|
+
|
|
346
|
+
### Dangerous Operations
|
|
347
|
+
- **Directory Deletion**: Requires explicit --delete-files flag and "DELETE" confirmation
|
|
348
|
+
- **No Undo**: Deleted directories cannot be recovered (use git backups)
|
|
349
|
+
- **Current Project**: Clears current_project if removing current
|
|
350
|
+
|
|
351
|
+
### Best Practices
|
|
352
|
+
- **Backup First**: Commit and push changes before removing
|
|
353
|
+
- **Archive Status**: Consider marking as archived instead of removing
|
|
354
|
+
- **Registry Only**: Default behavior preserves files for safety
|
|
355
|
+
- **Double Confirm**: Directory deletion requires typing "DELETE"
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## Notes
|
|
360
|
+
|
|
361
|
+
- **Default Behavior**: Removes from registry only, preserves directory
|
|
362
|
+
- **Safety First**: Multiple confirmation prompts for destructive operations
|
|
363
|
+
- **Current Project**: Automatically cleared if removing current project
|
|
364
|
+
- **Timestamps**: Updates registry `last_updated` timestamp
|
|
365
|
+
- **No Undo**: Registry removal can be undone manually, directory deletion cannot
|
|
366
|
+
- **Automation**: Use -y flag for scripting (skips prompts)
|
|
367
|
+
- **Related Projects**: Does not remove related projects (only specified project)
|
|
368
|
+
- **Tags**: Project tags are removed with the project
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
**Namespace**: acp
|
|
373
|
+
**Command**: project-remove
|
|
374
|
+
**Version**: 1.0.0
|
|
375
|
+
**Created**: 2026-02-26
|
|
376
|
+
**Last Updated**: 2026-02-26
|
|
377
|
+
**Status**: Experimental
|
|
378
|
+
**Compatibility**: ACP 4.1.0+
|
|
379
|
+
**Author**: ACP Project
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
# Command: project-update
|
|
2
|
+
|
|
3
|
+
> **🤖 Agent Directive**: If you are reading this file, the command `@acp.project-update` has been invoked. Follow the steps below to execute this command.
|
|
4
|
+
|
|
5
|
+
**Namespace**: acp
|
|
6
|
+
**Version**: 1.0.0
|
|
7
|
+
**Created**: 2026-02-25
|
|
8
|
+
**Last Updated**: 2026-02-25
|
|
9
|
+
**Status**: Experimental
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
**Purpose**: Update project metadata in the global registry
|
|
14
|
+
**Category**: Project Management
|
|
15
|
+
**Frequency**: As Needed
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## What This Command Does
|
|
20
|
+
|
|
21
|
+
This command updates metadata for a project in `~/.acp/projects.yaml`, allowing you to modify status, description, type, tags, and related projects. It provides granular control over project metadata without requiring manual YAML editing.
|
|
22
|
+
|
|
23
|
+
Use this command to keep project metadata current as projects evolve, mark projects as archived when completed, add tags for organization, link related projects, or correct project information. All updates automatically update the `last_modified` timestamp.
|
|
24
|
+
|
|
25
|
+
Unlike [`@acp.project-info`](acp.project-info.md:1) which displays information, this command modifies the registry. It supports multiple update operations in a single invocation.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Prerequisites
|
|
30
|
+
|
|
31
|
+
- [ ] Global ACP infrastructure initialized (`~/.acp/` exists)
|
|
32
|
+
- [ ] Project registry exists (`~/.acp/projects.yaml`)
|
|
33
|
+
- [ ] Project is registered in the registry
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Steps
|
|
38
|
+
|
|
39
|
+
### 1. Parse Arguments
|
|
40
|
+
|
|
41
|
+
Extract project name and update options.
|
|
42
|
+
|
|
43
|
+
**Actions**:
|
|
44
|
+
- Parse project name (required)
|
|
45
|
+
- Parse update flags (--status, --description, --type, etc.)
|
|
46
|
+
- Validate at least one update option provided
|
|
47
|
+
|
|
48
|
+
**Expected Outcome**: Arguments parsed successfully
|
|
49
|
+
|
|
50
|
+
### 2. Validate Project Exists
|
|
51
|
+
|
|
52
|
+
Check that the project is in the registry.
|
|
53
|
+
|
|
54
|
+
**Actions**:
|
|
55
|
+
- Load registry with `yaml_parse()`
|
|
56
|
+
- Check project exists with `yaml_has_key()`
|
|
57
|
+
- Show error if not found
|
|
58
|
+
|
|
59
|
+
**Expected Outcome**: Project found in registry
|
|
60
|
+
|
|
61
|
+
### 3. Validate Update Values
|
|
62
|
+
|
|
63
|
+
Check that provided values are valid.
|
|
64
|
+
|
|
65
|
+
**Actions**:
|
|
66
|
+
- Validate status is one of: active, archived, paused
|
|
67
|
+
- Validate other fields as needed
|
|
68
|
+
- Show errors for invalid values
|
|
69
|
+
|
|
70
|
+
**Expected Outcome**: All values validated
|
|
71
|
+
|
|
72
|
+
### 4. Apply Updates
|
|
73
|
+
|
|
74
|
+
Update registry with new values.
|
|
75
|
+
|
|
76
|
+
**Actions**:
|
|
77
|
+
- Update status (if provided)
|
|
78
|
+
- Update description (if provided)
|
|
79
|
+
- Update type (if provided)
|
|
80
|
+
- Add tags (if provided)
|
|
81
|
+
- Remove tags (if provided)
|
|
82
|
+
- Add related projects (if provided)
|
|
83
|
+
- Remove related projects (if provided)
|
|
84
|
+
- Update last_modified timestamp
|
|
85
|
+
- Update registry last_updated timestamp
|
|
86
|
+
|
|
87
|
+
**Expected Outcome**: All updates applied to AST
|
|
88
|
+
|
|
89
|
+
### 5. Write Changes
|
|
90
|
+
|
|
91
|
+
Save updated registry to disk.
|
|
92
|
+
|
|
93
|
+
**Actions**:
|
|
94
|
+
- Write changes with `yaml_write()`
|
|
95
|
+
- Report number of updates applied
|
|
96
|
+
- Show success message
|
|
97
|
+
|
|
98
|
+
**Expected Outcome**: Registry updated on disk
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Verification
|
|
103
|
+
|
|
104
|
+
- [ ] Script created and executable
|
|
105
|
+
- [ ] Command document created
|
|
106
|
+
- [ ] Validates project name argument
|
|
107
|
+
- [ ] Validates at least one update option provided
|
|
108
|
+
- [ ] Validates status values (active|archived|paused)
|
|
109
|
+
- [ ] Updates status correctly
|
|
110
|
+
- [ ] Updates description correctly
|
|
111
|
+
- [ ] Updates type correctly
|
|
112
|
+
- [ ] Adds tags correctly (prevents duplicates)
|
|
113
|
+
- [ ] Removes tags correctly
|
|
114
|
+
- [ ] Adds related projects correctly (prevents duplicates)
|
|
115
|
+
- [ ] Removes related projects correctly
|
|
116
|
+
- [ ] Updates last_modified timestamp
|
|
117
|
+
- [ ] Updates registry last_updated timestamp
|
|
118
|
+
- [ ] Writes changes to disk
|
|
119
|
+
- [ ] No syntax errors
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Expected Output
|
|
124
|
+
|
|
125
|
+
### Files Created
|
|
126
|
+
- `agent/scripts/acp.project-update.sh` - Shell script for updating projects
|
|
127
|
+
- `agent/commands/acp.project-update.md` - This command documentation
|
|
128
|
+
|
|
129
|
+
### Console Output
|
|
130
|
+
```
|
|
131
|
+
Updating project: remember-mcp-server
|
|
132
|
+
|
|
133
|
+
✓ Updated status: archived
|
|
134
|
+
✓ Added tag: production
|
|
135
|
+
✓ Added tag: critical
|
|
136
|
+
✓ Removed tag: development
|
|
137
|
+
|
|
138
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
139
|
+
|
|
140
|
+
✅ Project updated successfully!
|
|
141
|
+
Updates applied: 4
|
|
142
|
+
Registry: ~/.acp/projects.yaml
|
|
143
|
+
|
|
144
|
+
Run 'acp.project-info.sh remember-mcp-server' to see updated information
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Status Update
|
|
148
|
+
- Project metadata updated in registry
|
|
149
|
+
- Timestamps updated
|
|
150
|
+
- Changes persisted to disk
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Examples
|
|
155
|
+
|
|
156
|
+
### Example 1: Update Project Status
|
|
157
|
+
|
|
158
|
+
**Context**: Mark project as archived when completed
|
|
159
|
+
|
|
160
|
+
**Invocation**: `@acp.project-update old-project --status archived`
|
|
161
|
+
|
|
162
|
+
**Result**: Status changed to "archived", last_modified timestamp updated
|
|
163
|
+
|
|
164
|
+
### Example 2: Add Multiple Tags
|
|
165
|
+
|
|
166
|
+
**Context**: Add organization tags to project
|
|
167
|
+
|
|
168
|
+
**Invocation**: `@acp.project-update my-project --add-tag production --add-tag critical --add-tag backend`
|
|
169
|
+
|
|
170
|
+
**Result**: Three tags added, duplicates prevented if tags already exist
|
|
171
|
+
|
|
172
|
+
### Example 3: Update Description
|
|
173
|
+
|
|
174
|
+
**Context**: Improve project description
|
|
175
|
+
|
|
176
|
+
**Invocation**: `@acp.project-update my-project --description "Multi-tenant memory system with vector search and relationship tracking"`
|
|
177
|
+
|
|
178
|
+
**Result**: Description updated in registry
|
|
179
|
+
|
|
180
|
+
### Example 4: Link Related Projects
|
|
181
|
+
|
|
182
|
+
**Context**: Connect server and client projects
|
|
183
|
+
|
|
184
|
+
**Invocation**: `@acp.project-update remember-mcp-server --add-related remember-mcp`
|
|
185
|
+
|
|
186
|
+
**Result**: remember-mcp added to related_projects array
|
|
187
|
+
|
|
188
|
+
### Example 5: Multiple Updates
|
|
189
|
+
|
|
190
|
+
**Context**: Update several fields at once
|
|
191
|
+
|
|
192
|
+
**Invocation**: `@acp.project-update my-project --status active --add-tag production --remove-tag development`
|
|
193
|
+
|
|
194
|
+
**Result**: Status updated, production tag added, development tag removed
|
|
195
|
+
|
|
196
|
+
### Example 6: Remove Tag
|
|
197
|
+
|
|
198
|
+
**Context**: Remove obsolete tag
|
|
199
|
+
|
|
200
|
+
**Invocation**: `@acp.project-update my-project --remove-tag deprecated`
|
|
201
|
+
|
|
202
|
+
**Result**: Tag removed from tags array
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Related Commands
|
|
207
|
+
|
|
208
|
+
- [`@acp.project-info`](acp.project-info.md) - View project details before updating
|
|
209
|
+
- [`@acp.project-list`](acp.project-list.md) - List all projects
|
|
210
|
+
- [`@acp.project-set`](acp.project-set.md) - Switch to a project
|
|
211
|
+
- [`@acp.projects-sync`](acp.projects-sync.md) - Sync registry with filesystem
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Troubleshooting
|
|
216
|
+
|
|
217
|
+
### Issue 1: Registry not found
|
|
218
|
+
|
|
219
|
+
**Symptom**: Error "Project registry not found"
|
|
220
|
+
|
|
221
|
+
**Cause**: `~/.acp/projects.yaml` doesn't exist
|
|
222
|
+
|
|
223
|
+
**Solution**: Create a project with `@acp.project-create` to initialize the registry
|
|
224
|
+
|
|
225
|
+
### Issue 2: Project not found
|
|
226
|
+
|
|
227
|
+
**Symptom**: Error "Project 'name' not found in registry"
|
|
228
|
+
|
|
229
|
+
**Cause**: Project not registered or wrong name
|
|
230
|
+
|
|
231
|
+
**Solution**: Run `@acp.project-list` to see available projects
|
|
232
|
+
|
|
233
|
+
### Issue 3: Invalid status value
|
|
234
|
+
|
|
235
|
+
**Symptom**: Error "Invalid status 'value'"
|
|
236
|
+
|
|
237
|
+
**Cause**: Status must be one of: active, archived, paused
|
|
238
|
+
|
|
239
|
+
**Solution**: Use a valid status value
|
|
240
|
+
|
|
241
|
+
### Issue 4: No updates specified
|
|
242
|
+
|
|
243
|
+
**Symptom**: Error "No updates specified"
|
|
244
|
+
|
|
245
|
+
**Cause**: Command requires at least one update option
|
|
246
|
+
|
|
247
|
+
**Solution**: Provide at least one update flag (--status, --description, --add-tag, etc.)
|
|
248
|
+
|
|
249
|
+
### Issue 5: Tag already exists
|
|
250
|
+
|
|
251
|
+
**Symptom**: Message "Tag already exists: tag-name"
|
|
252
|
+
|
|
253
|
+
**Cause**: Trying to add a tag that's already in the tags array
|
|
254
|
+
|
|
255
|
+
**Solution**: This is informational, not an error. The tag won't be duplicated.
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Security Considerations
|
|
260
|
+
|
|
261
|
+
### File Access
|
|
262
|
+
- **Reads**: `~/.acp/projects.yaml` (project registry)
|
|
263
|
+
- **Writes**: `~/.acp/projects.yaml` (updates project metadata)
|
|
264
|
+
- **Executes**: None
|
|
265
|
+
|
|
266
|
+
### Network Access
|
|
267
|
+
- **APIs**: None
|
|
268
|
+
- **Repositories**: None
|
|
269
|
+
|
|
270
|
+
### Sensitive Data
|
|
271
|
+
- **Secrets**: Does not access any secrets or credentials
|
|
272
|
+
- **Credentials**: Does not access credentials
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Notes
|
|
277
|
+
|
|
278
|
+
- Updates are applied immediately to the registry file
|
|
279
|
+
- Multiple updates can be applied in a single command
|
|
280
|
+
- Timestamps are automatically updated (last_modified, last_updated)
|
|
281
|
+
- Tags and related projects prevent duplicates automatically
|
|
282
|
+
- Status values are validated (active, archived, paused)
|
|
283
|
+
- Does not modify the project directory itself, only registry metadata
|
|
284
|
+
- Part of Milestone 7 (Global ACP Project Registry)
|
|
285
|
+
- Marked as Experimental until M7 is complete
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
**Namespace**: acp
|
|
290
|
+
**Command**: project-update
|
|
291
|
+
**Version**: 1.0.0
|
|
292
|
+
**Created**: 2026-02-25
|
|
293
|
+
**Last Updated**: 2026-02-25
|
|
294
|
+
**Status**: Experimental
|
|
295
|
+
**Compatibility**: ACP 4.1.1+
|
|
296
|
+
**Author**: ACP Project
|