@prmichaelsen/task-mcp 0.2.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/.env.example +19 -0
- package/AGENT.md +1165 -0
- package/CHANGELOG.md +72 -0
- package/agent/commands/acp.commit.md +511 -0
- package/agent/commands/acp.init.md +376 -0
- package/agent/commands/acp.package-install.md +347 -0
- package/agent/commands/acp.proceed.md +311 -0
- package/agent/commands/acp.report.md +392 -0
- package/agent/commands/acp.status.md +280 -0
- package/agent/commands/acp.sync.md +323 -0
- package/agent/commands/acp.update.md +301 -0
- package/agent/commands/acp.validate.md +385 -0
- package/agent/commands/acp.version-check-for-updates.md +275 -0
- package/agent/commands/acp.version-check.md +190 -0
- package/agent/commands/acp.version-update.md +288 -0
- package/agent/commands/command.template.md +273 -0
- package/agent/commands/git.commit.md +511 -0
- package/agent/commands/git.init.md +513 -0
- package/agent/design/.gitkeep +0 -0
- package/agent/design/acp-task-execution-requirements.md +555 -0
- package/agent/design/api-dto-design.md +394 -0
- package/agent/design/code-extraction-guide.md +827 -0
- package/agent/design/design.template.md +136 -0
- package/agent/design/requirements.template.md +387 -0
- package/agent/design/rest-api-integration.md +489 -0
- package/agent/design/sdk-export-requirements.md +549 -0
- package/agent/milestones/.gitkeep +0 -0
- package/agent/milestones/milestone-1-{title}.template.md +206 -0
- package/agent/milestones/milestone-2-task-infrastructure.md +232 -0
- package/agent/milestones/milestone-4-autonomous-execution.md +235 -0
- package/agent/patterns/.gitkeep +0 -0
- package/agent/patterns/bootstrap.md +1271 -0
- package/agent/patterns/bootstrap.template.md +1237 -0
- package/agent/patterns/pattern.template.md +364 -0
- package/agent/progress.template.yaml +158 -0
- package/agent/progress.yaml +375 -0
- package/agent/scripts/check-for-updates.sh +88 -0
- package/agent/scripts/install.sh +157 -0
- package/agent/scripts/uninstall.sh +75 -0
- package/agent/scripts/update.sh +139 -0
- package/agent/scripts/version.sh +35 -0
- package/agent/tasks/.gitkeep +0 -0
- package/agent/tasks/task-1-{title}.template.md +225 -0
- package/agent/tasks/task-86-task-data-model-schemas.md +143 -0
- package/agent/tasks/task-87-task-database-service.md +220 -0
- package/agent/tasks/task-88-firebase-client-wrapper.md +139 -0
- package/agent/tasks/task-88-task-execution-engine.md +277 -0
- package/agent/tasks/task-89-mcp-server-implementation.md +197 -0
- package/agent/tasks/task-90-build-configuration.md +146 -0
- package/agent/tasks/task-91-deployment-configuration.md +128 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +191 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +191 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +210 -0
- package/coverage/lcov-report/src/client.ts.html +1030 -0
- package/coverage/lcov-report/src/constant/collections.ts.html +469 -0
- package/coverage/lcov-report/src/constant/index.html +116 -0
- package/coverage/lcov-report/src/dto/index.html +116 -0
- package/coverage/lcov-report/src/dto/transformers.ts.html +568 -0
- package/coverage/lcov-report/src/index.html +146 -0
- package/coverage/lcov-report/src/schemas/index.html +116 -0
- package/coverage/lcov-report/src/schemas/task.ts.html +547 -0
- package/coverage/lcov-report/src/server-factory.ts.html +418 -0
- package/coverage/lcov-report/src/server.ts.html +289 -0
- package/coverage/lcov-report/src/services/index.html +116 -0
- package/coverage/lcov-report/src/services/task-database.service.ts.html +1495 -0
- package/coverage/lcov-report/src/tools/index.html +236 -0
- package/coverage/lcov-report/src/tools/index.ts.html +292 -0
- package/coverage/lcov-report/src/tools/task-add-message.ts.html +277 -0
- package/coverage/lcov-report/src/tools/task-complete-task-item.ts.html +343 -0
- package/coverage/lcov-report/src/tools/task-create-milestone.ts.html +286 -0
- package/coverage/lcov-report/src/tools/task-create-task-item.ts.html +358 -0
- package/coverage/lcov-report/src/tools/task-get-next-step.ts.html +460 -0
- package/coverage/lcov-report/src/tools/task-get-status.ts.html +316 -0
- package/coverage/lcov-report/src/tools/task-report-completion.ts.html +343 -0
- package/coverage/lcov-report/src/tools/task-update-progress.ts.html +232 -0
- package/coverage/lcov.info +974 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +210 -0
- package/coverage/src/client.ts.html +1030 -0
- package/coverage/src/constant/collections.ts.html +469 -0
- package/coverage/src/constant/index.html +116 -0
- package/coverage/src/dto/index.html +116 -0
- package/coverage/src/dto/transformers.ts.html +568 -0
- package/coverage/src/index.html +146 -0
- package/coverage/src/schemas/index.html +116 -0
- package/coverage/src/schemas/task.ts.html +547 -0
- package/coverage/src/server-factory.ts.html +418 -0
- package/coverage/src/server.ts.html +289 -0
- package/coverage/src/services/index.html +116 -0
- package/coverage/src/services/task-database.service.ts.html +1495 -0
- package/coverage/src/tools/index.html +236 -0
- package/coverage/src/tools/index.ts.html +292 -0
- package/coverage/src/tools/task-add-message.ts.html +277 -0
- package/coverage/src/tools/task-complete-task-item.ts.html +343 -0
- package/coverage/src/tools/task-create-milestone.ts.html +286 -0
- package/coverage/src/tools/task-create-task-item.ts.html +358 -0
- package/coverage/src/tools/task-get-next-step.ts.html +460 -0
- package/coverage/src/tools/task-get-status.ts.html +316 -0
- package/coverage/src/tools/task-report-completion.ts.html +343 -0
- package/coverage/src/tools/task-update-progress.ts.html +232 -0
- package/firestore.rules +95 -0
- package/jest.config.js +31 -0
- package/package.json +67 -0
- package/src/client.spec.ts +199 -0
- package/src/client.ts +315 -0
- package/src/constant/collections.ts +128 -0
- package/src/dto/index.ts +47 -0
- package/src/dto/task-api.dto.ts +219 -0
- package/src/dto/transformers.spec.ts +462 -0
- package/src/dto/transformers.ts +161 -0
- package/src/schemas/task.ts +154 -0
- package/src/server-factory.spec.ts +70 -0
- package/src/server-factory.ts +111 -0
- package/src/server.ts +68 -0
- package/src/services/task-database.service.e2e.ts +116 -0
- package/src/services/task-database.service.spec.ts +479 -0
- package/src/services/task-database.service.ts +470 -0
- package/src/test-schemas.ts +161 -0
- package/src/tools/index.ts +69 -0
- package/src/tools/task-add-message.ts +64 -0
- package/src/tools/task-complete-task-item.ts +86 -0
- package/src/tools/task-create-milestone.ts +67 -0
- package/src/tools/task-create-task-item.ts +91 -0
- package/src/tools/task-get-next-step.spec.ts +136 -0
- package/src/tools/task-get-next-step.ts +125 -0
- package/src/tools/task-get-status.spec.ts +213 -0
- package/src/tools/task-get-status.ts +77 -0
- package/src/tools/task-report-completion.ts +86 -0
- package/src/tools/task-update-progress.ts +49 -0
- package/src/tools/tools.spec.ts +194 -0
- package/tsconfig.json +31 -0
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
# Project Progress Tracking
|
|
2
|
+
# This file tracks the overall progress of the task-mcp project
|
|
3
|
+
|
|
4
|
+
project:
|
|
5
|
+
name: task-mcp
|
|
6
|
+
version: 0.2.0
|
|
7
|
+
started: 2026-02-16
|
|
8
|
+
status: in_progress
|
|
9
|
+
current_milestone: M2
|
|
10
|
+
description: |
|
|
11
|
+
MCP server for task execution system - Port ACP-style autonomous task execution
|
|
12
|
+
from Roo Code to agentbase.me using MCP server architecture. Enables long-running,
|
|
13
|
+
autonomous task execution where agents work through structured milestones and tasks
|
|
14
|
+
independently in the background.
|
|
15
|
+
|
|
16
|
+
# Milestones represent major phases of the project
|
|
17
|
+
milestones:
|
|
18
|
+
- id: M1
|
|
19
|
+
name: Planning and Design
|
|
20
|
+
status: completed
|
|
21
|
+
progress: 100
|
|
22
|
+
started: 2026-02-16
|
|
23
|
+
completed: 2026-02-16
|
|
24
|
+
estimated_weeks: 1
|
|
25
|
+
tasks_completed: 3
|
|
26
|
+
tasks_total: 3
|
|
27
|
+
notes: |
|
|
28
|
+
Completed comprehensive design documentation including:
|
|
29
|
+
- ACP Task Execution Requirements (design document)
|
|
30
|
+
- Code Extraction Guide (porting guide from Roo Code)
|
|
31
|
+
- Milestone 2 planning document
|
|
32
|
+
All design documents are complete and ready for implementation.
|
|
33
|
+
|
|
34
|
+
- id: M2
|
|
35
|
+
name: MCP Server Foundation
|
|
36
|
+
status: in_progress
|
|
37
|
+
progress: 67
|
|
38
|
+
started: 2026-02-16
|
|
39
|
+
completed: null
|
|
40
|
+
estimated_weeks: 2
|
|
41
|
+
tasks_completed: 4
|
|
42
|
+
tasks_total: 6
|
|
43
|
+
notes: |
|
|
44
|
+
Create task-mcp server with core task management tools.
|
|
45
|
+
This milestone follows the MCP Server Bootstrap Pattern.
|
|
46
|
+
Task list revised to match MCP server scope (instruction-based tools).
|
|
47
|
+
Tasks 86-89 completed. Tasks 90-91 remaining for build and deployment.
|
|
48
|
+
|
|
49
|
+
# Tasks are granular work items within milestones
|
|
50
|
+
tasks:
|
|
51
|
+
milestone_1:
|
|
52
|
+
- id: task-design
|
|
53
|
+
name: ACP Task Execution Requirements
|
|
54
|
+
status: completed
|
|
55
|
+
file: agent/design/acp-task-execution-requirements.md
|
|
56
|
+
estimated_hours: 8
|
|
57
|
+
completed_date: 2026-02-16
|
|
58
|
+
notes: |
|
|
59
|
+
Comprehensive design document for porting ACP task execution to agentbase.me
|
|
60
|
+
|
|
61
|
+
- id: task-extraction
|
|
62
|
+
name: Code Extraction Guide
|
|
63
|
+
status: completed
|
|
64
|
+
file: agent/design/code-extraction-guide.md
|
|
65
|
+
estimated_hours: 6
|
|
66
|
+
completed_date: 2026-02-16
|
|
67
|
+
notes: |
|
|
68
|
+
Detailed guide for extracting and adapting code from Roo Code
|
|
69
|
+
|
|
70
|
+
- id: task-milestone-2
|
|
71
|
+
name: Milestone 2 Planning
|
|
72
|
+
status: completed
|
|
73
|
+
file: agent/milestones/milestone-2-task-infrastructure.md
|
|
74
|
+
estimated_hours: 4
|
|
75
|
+
completed_date: 2026-02-16
|
|
76
|
+
notes: |
|
|
77
|
+
Detailed milestone document for MCP Server Foundation phase
|
|
78
|
+
|
|
79
|
+
milestone_2:
|
|
80
|
+
- id: task-86
|
|
81
|
+
name: Task Data Model and Schemas
|
|
82
|
+
status: completed
|
|
83
|
+
file: agent/tasks/task-86-task-data-model-schemas.md
|
|
84
|
+
estimated_hours: 8
|
|
85
|
+
completed_date: 2026-02-16
|
|
86
|
+
notes: |
|
|
87
|
+
Created Firestore data model, TypeScript interfaces, and Zod schemas.
|
|
88
|
+
All schemas compile without errors and validation tests pass.
|
|
89
|
+
|
|
90
|
+
- id: task-87
|
|
91
|
+
name: Task Database Service
|
|
92
|
+
status: completed
|
|
93
|
+
file: agent/tasks/task-87-task-database-service.md
|
|
94
|
+
estimated_hours: 12
|
|
95
|
+
completed_date: 2026-02-16
|
|
96
|
+
notes: |
|
|
97
|
+
Created comprehensive TaskDatabaseService with CRUD operations, message
|
|
98
|
+
operations, progress tracking, and query methods. All 14 unit tests passing.
|
|
99
|
+
|
|
100
|
+
- id: task-88
|
|
101
|
+
name: Firebase Client Wrapper & MCP Tools Foundation
|
|
102
|
+
status: completed
|
|
103
|
+
file: agent/tasks/task-88-firebase-client-wrapper.md
|
|
104
|
+
estimated_hours: 16
|
|
105
|
+
completed_date: 2026-02-16
|
|
106
|
+
notes: |
|
|
107
|
+
Created Firebase client wrapper and 8 core MCP tools. All tools follow
|
|
108
|
+
MCP Bootstrap Pattern with definition + handler structure.
|
|
109
|
+
|
|
110
|
+
Completed:
|
|
111
|
+
- FirebaseClient wrapper with service account auth (11 tests)
|
|
112
|
+
- 8 MCP tools: get_status, get_next_step, update_progress, complete_task_item,
|
|
113
|
+
create_milestone, create_task_item, report_completion, add_message
|
|
114
|
+
- Comprehensive unit tests (43 total tests passing)
|
|
115
|
+
- Tools index with exports and handler registry
|
|
116
|
+
|
|
117
|
+
- id: task-89
|
|
118
|
+
name: MCP Server Implementation
|
|
119
|
+
status: completed
|
|
120
|
+
file: agent/tasks/task-89-mcp-server-implementation.md
|
|
121
|
+
estimated_hours: 8
|
|
122
|
+
completed_date: 2026-02-16
|
|
123
|
+
notes: |
|
|
124
|
+
Created MCP server with stdio transport and server factory for multi-tenant.
|
|
125
|
+
|
|
126
|
+
Completed:
|
|
127
|
+
- Installed @modelcontextprotocol/sdk
|
|
128
|
+
- Created server-factory.ts with mcp-auth compatible signature
|
|
129
|
+
- Created server.ts with stdio transport
|
|
130
|
+
- Updated package.json with bin entry
|
|
131
|
+
- Wrote comprehensive unit tests with mocked Firebase client
|
|
132
|
+
- All 51 tests passing (14 database + 11 client + 18 tools + 8 server)
|
|
133
|
+
- Server factory accepts (accessToken, userId, options) for mcp-auth compatibility
|
|
134
|
+
|
|
135
|
+
- id: task-90
|
|
136
|
+
name: Build Configuration
|
|
137
|
+
status: not_started
|
|
138
|
+
file: agent/tasks/task-90-build-configuration.md
|
|
139
|
+
estimated_hours: 4
|
|
140
|
+
completed_date: null
|
|
141
|
+
notes: |
|
|
142
|
+
Set up esbuild for bundling server and generating type declarations.
|
|
143
|
+
|
|
144
|
+
- id: task-91
|
|
145
|
+
name: Deployment Configuration
|
|
146
|
+
status: not_started
|
|
147
|
+
file: agent/tasks/task-91-deployment-configuration.md
|
|
148
|
+
estimated_hours: 4
|
|
149
|
+
completed_date: null
|
|
150
|
+
notes: |
|
|
151
|
+
Create Dockerfile, Cloud Run config, and deployment scripts.
|
|
152
|
+
|
|
153
|
+
# Documentation tracking
|
|
154
|
+
documentation:
|
|
155
|
+
design_documents: 3
|
|
156
|
+
milestone_documents: 1
|
|
157
|
+
pattern_documents: 1
|
|
158
|
+
task_documents: 3
|
|
159
|
+
last_updated: 2026-02-16
|
|
160
|
+
|
|
161
|
+
# Overall progress metrics
|
|
162
|
+
progress:
|
|
163
|
+
planning: 100
|
|
164
|
+
implementation: 67
|
|
165
|
+
testing: 85
|
|
166
|
+
documentation: 100
|
|
167
|
+
overall: 67
|
|
168
|
+
|
|
169
|
+
# Recent work log (most recent first)
|
|
170
|
+
recent_work:
|
|
171
|
+
- date: 2026-02-16
|
|
172
|
+
description: |
|
|
173
|
+
Implemented API Response DTOs and transformers for REST API integration.
|
|
174
|
+
Created comprehensive DTO layer to exclude internal fields from API responses.
|
|
175
|
+
items:
|
|
176
|
+
- ✅ Created src/dto/task-api.dto.ts with all DTO type definitions
|
|
177
|
+
- ✅ Defined TaskApiResponse, TaskListApiResponse, TaskMessageApiResponse
|
|
178
|
+
- ✅ Defined input DTOs (CreateTaskDto, UpdateTaskDto, etc.)
|
|
179
|
+
- ✅ Created src/dto/transformers.ts with schema-to-DTO transformation functions
|
|
180
|
+
- ✅ Implemented 9 transformer functions with proper field exclusion
|
|
181
|
+
- ✅ Excluded internal execution fields (api_messages, tool_results) from API responses
|
|
182
|
+
- ✅ Created src/dto/index.ts to export all DTOs and transformers
|
|
183
|
+
- ✅ Updated package.json with ./dto export
|
|
184
|
+
- ✅ Wrote 18 comprehensive unit tests for all transformers
|
|
185
|
+
- ✅ All 69 tests passing (14 database + 11 client + 18 tools + 8 server + 18 dto)
|
|
186
|
+
- ✅ DTO transformers have 100% code coverage
|
|
187
|
+
- 📋 Ready for Task 90: Build Configuration
|
|
188
|
+
|
|
189
|
+
- date: 2026-02-16
|
|
190
|
+
description: |
|
|
191
|
+
Executed @acp.init command - Comprehensive agent context initialization.
|
|
192
|
+
Loaded all documentation, reviewed source code, verified current status.
|
|
193
|
+
items:
|
|
194
|
+
- ✅ Checked for ACP updates (v1.3.1, up to date)
|
|
195
|
+
- ✅ Read 9 agent documentation files (progress.yaml, design docs, milestones, tasks)
|
|
196
|
+
- ✅ Reviewed 5 key source files (schemas, services, client, server, server-factory)
|
|
197
|
+
- ✅ Verified all 51 tests passing (14 database + 11 client + 18 tools + 8 server)
|
|
198
|
+
- ✅ Confirmed Tasks 86-89 completed (4/6 milestone tasks done)
|
|
199
|
+
- ✅ Identified next steps: API DTO implementation and library exports
|
|
200
|
+
- ✅ Updated progress.yaml with initialization entry
|
|
201
|
+
- 📋 Ready to proceed with next task
|
|
202
|
+
|
|
203
|
+
- date: 2026-02-16
|
|
204
|
+
description: |
|
|
205
|
+
Completed Task 89: MCP Server Implementation.
|
|
206
|
+
Created MCP server with stdio transport and mcp-auth compatible server factory.
|
|
207
|
+
items:
|
|
208
|
+
- ✅ Installed @modelcontextprotocol/sdk (v1.26.0)
|
|
209
|
+
- ✅ Created server-factory.ts with mcp-auth compatible signature
|
|
210
|
+
- ✅ Server factory accepts (accessToken, userId, options) parameters
|
|
211
|
+
- ✅ Registers all 8 MCP tools with list_tools handler
|
|
212
|
+
- ✅ Implements call_tool handler with tool routing
|
|
213
|
+
- ✅ Created server.ts with stdio transport for standalone usage
|
|
214
|
+
- ✅ Updated package.json with bin entry for CLI
|
|
215
|
+
- ✅ Wrote comprehensive unit tests with mocked Firebase client
|
|
216
|
+
- ✅ All 51 tests passing (14 database + 11 client + 18 tools + 8 server)
|
|
217
|
+
- ✅ Server ready for mcp-auth wrapper integration
|
|
218
|
+
- 📋 Next: Task 90 - Build Configuration
|
|
219
|
+
|
|
220
|
+
- date: 2026-02-16
|
|
221
|
+
description: |
|
|
222
|
+
Completed Task 88: Firebase Client Wrapper & MCP Tools Foundation.
|
|
223
|
+
Implemented all 8 core MCP tools with comprehensive test coverage.
|
|
224
|
+
items:
|
|
225
|
+
- ✅ Created 8 MCP tools following Bootstrap Pattern
|
|
226
|
+
- ✅ task_get_status - Get current task status and progress
|
|
227
|
+
- ✅ task_get_next_step - Get instructions for next step
|
|
228
|
+
- ✅ task_update_progress - Update progress percentage
|
|
229
|
+
- ✅ task_complete_task_item - Mark task item complete
|
|
230
|
+
- ✅ task_create_milestone - Create new milestone
|
|
231
|
+
- ✅ task_create_task_item - Create task item in milestone
|
|
232
|
+
- ✅ task_report_completion - Report completion and get next step
|
|
233
|
+
- ✅ task_add_message - Add message to task thread
|
|
234
|
+
- ✅ Created tools index with exports and handler registry
|
|
235
|
+
- ✅ Wrote comprehensive unit tests for all tools
|
|
236
|
+
- ✅ All 43 tests passing (14 database + 11 client + 18 tools)
|
|
237
|
+
|
|
238
|
+
- date: 2026-02-16
|
|
239
|
+
description: |
|
|
240
|
+
Initialized ACP context for task-mcp. Completed comprehensive review of
|
|
241
|
+
all agent documentation, design documents, and source code. All systems
|
|
242
|
+
operational and ready for continued development.
|
|
243
|
+
items:
|
|
244
|
+
- ✅ Checked for ACP updates (v1.3.1, up to date)
|
|
245
|
+
- ✅ Read all 9 agent documentation files
|
|
246
|
+
- ✅ Reviewed 5 key source files (schemas, services, client)
|
|
247
|
+
- ✅ Verified current implementation status
|
|
248
|
+
- ✅ Confirmed Task 88 partially complete (client wrapper done)
|
|
249
|
+
- ✅ All 25 tests passing (14 database + 11 client)
|
|
250
|
+
- ✅ Updated progress.yaml with current status
|
|
251
|
+
- 📋 Proceeded with Task 88 MCP tools implementation
|
|
252
|
+
|
|
253
|
+
- date: 2026-02-16
|
|
254
|
+
description: |
|
|
255
|
+
Revised Milestone 2 task list to match task-mcp MCP server scope.
|
|
256
|
+
Created proper task documents (88-91) for MCP implementation.
|
|
257
|
+
items:
|
|
258
|
+
- ✅ Identified scope mismatch in original Task 88
|
|
259
|
+
- ✅ Revised Task 88: Firebase Client Wrapper & MCP Tools Foundation
|
|
260
|
+
- ✅ Created Task 89: MCP Server Implementation
|
|
261
|
+
- ✅ Created Task 90: Build Configuration
|
|
262
|
+
- ✅ Created Task 91: Deployment Configuration
|
|
263
|
+
- ✅ Updated Milestone 2 document with 6 tasks (was 3)
|
|
264
|
+
- ✅ Clarified architecture: task-mcp provides instructions, tenant executes
|
|
265
|
+
- 📋 Ready to proceed with Task 88 implementation
|
|
266
|
+
|
|
267
|
+
- date: 2026-02-16
|
|
268
|
+
description: |
|
|
269
|
+
Completed Task 87: Task Database Service. Created comprehensive database
|
|
270
|
+
service with CRUD operations, message handling, progress tracking, and
|
|
271
|
+
query methods. All 14 unit tests passing.
|
|
272
|
+
items:
|
|
273
|
+
- ✅ Installed Firebase Admin SDK
|
|
274
|
+
- ✅ Created TaskDatabaseService class with all CRUD methods
|
|
275
|
+
- ✅ Implemented task message operations (add, get, delete)
|
|
276
|
+
- ✅ Implemented progress tracking (milestones, task items)
|
|
277
|
+
- ✅ Added query methods (by status, search by title)
|
|
278
|
+
- ✅ Wrote 14 comprehensive unit tests with mocked Firestore
|
|
279
|
+
- ✅ Created E2E test suite for Firestore emulator
|
|
280
|
+
- ✅ Configured Jest with ESM + TypeScript support
|
|
281
|
+
- ✅ All tests passing (14/14)
|
|
282
|
+
|
|
283
|
+
- date: 2026-02-16
|
|
284
|
+
description: |
|
|
285
|
+
Completed Task 86: Task Data Model and Schemas. Created comprehensive
|
|
286
|
+
Zod schemas, TypeScript interfaces, Firestore security rules, and
|
|
287
|
+
collection path helpers.
|
|
288
|
+
items:
|
|
289
|
+
- ✅ Initialized Node.js project with TypeScript
|
|
290
|
+
- ✅ Created src/schemas/task.ts with complete Zod schemas
|
|
291
|
+
- ✅ Created firestore.rules with user-scoped security
|
|
292
|
+
- ✅ Created src/constant/collections.ts with path helpers
|
|
293
|
+
- ✅ Verified TypeScript compilation (no errors)
|
|
294
|
+
- ✅ Tested Zod validation with valid and invalid data
|
|
295
|
+
- ✅ All tests passed successfully
|
|
296
|
+
|
|
297
|
+
- date: 2026-02-16
|
|
298
|
+
description: |
|
|
299
|
+
Initialized ACP context for task-mcp project. Completed comprehensive
|
|
300
|
+
planning and design phase.
|
|
301
|
+
items:
|
|
302
|
+
- ✅ Read all agent documentation (9 files)
|
|
303
|
+
- ✅ Analyzed design documents and requirements
|
|
304
|
+
- ✅ Reviewed milestone and task structure
|
|
305
|
+
- ✅ Created progress.yaml tracking file
|
|
306
|
+
- ✅ Enhanced code extraction guide with Roo Code paths
|
|
307
|
+
|
|
308
|
+
# Next steps (prioritized list)
|
|
309
|
+
next_steps:
|
|
310
|
+
- Continue with Task 90: Build Configuration
|
|
311
|
+
- Set up esbuild for bundling server and generating type declarations
|
|
312
|
+
- Create build and watch scripts
|
|
313
|
+
- Complete Task 91: Deployment Configuration
|
|
314
|
+
- Create Dockerfile and Cloud Run config
|
|
315
|
+
|
|
316
|
+
# General notes and observations
|
|
317
|
+
notes:
|
|
318
|
+
- Project follows MCP Server Bootstrap Pattern from agent/patterns/bootstrap.md
|
|
319
|
+
- Design is based on porting Roo Code's task execution to MCP server architecture
|
|
320
|
+
- Uses pessimistic execution model (continuous work until paused/complete)
|
|
321
|
+
- MCP server will be separate from agentbase.me codebase for modularity
|
|
322
|
+
- Firebase Admin SDK with service account for direct Firestore access
|
|
323
|
+
- All design documents are comprehensive and implementation-ready
|
|
324
|
+
|
|
325
|
+
# Current blockers (remove when resolved)
|
|
326
|
+
current_blockers: []
|
|
327
|
+
|
|
328
|
+
# Team and contributors
|
|
329
|
+
team:
|
|
330
|
+
- role: Lead Developer
|
|
331
|
+
name: Agent
|
|
332
|
+
focus: |
|
|
333
|
+
Currently in initialization phase. Ready to begin implementation of
|
|
334
|
+
Milestone 2 (MCP Server Foundation).
|
|
335
|
+
|
|
336
|
+
# Dependencies and integrations
|
|
337
|
+
dependencies:
|
|
338
|
+
external_services:
|
|
339
|
+
- name: Firebase/Firestore
|
|
340
|
+
status: pending
|
|
341
|
+
notes: |
|
|
342
|
+
Need Firebase project with Firestore database and service account key
|
|
343
|
+
|
|
344
|
+
- name: AWS Bedrock
|
|
345
|
+
status: pending
|
|
346
|
+
notes: |
|
|
347
|
+
For AI model integration in task execution
|
|
348
|
+
|
|
349
|
+
libraries:
|
|
350
|
+
- name: "@modelcontextprotocol/sdk"
|
|
351
|
+
version: "^1.0.0"
|
|
352
|
+
purpose: |
|
|
353
|
+
MCP protocol implementation for server
|
|
354
|
+
|
|
355
|
+
- name: "firebase-admin"
|
|
356
|
+
version: "latest"
|
|
357
|
+
purpose: |
|
|
358
|
+
Direct Firestore access with service account
|
|
359
|
+
|
|
360
|
+
- name: "zod"
|
|
361
|
+
version: "latest"
|
|
362
|
+
purpose: |
|
|
363
|
+
Schema validation for task data models
|
|
364
|
+
|
|
365
|
+
infrastructure:
|
|
366
|
+
- name: Cloud Run
|
|
367
|
+
status: pending
|
|
368
|
+
notes: |
|
|
369
|
+
Deployment target for MCP server (recommended approach)
|
|
370
|
+
|
|
371
|
+
# Quality metrics
|
|
372
|
+
quality:
|
|
373
|
+
test_coverage: 0
|
|
374
|
+
code_review_status: pending
|
|
375
|
+
documentation_status: complete
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Agent Context Protocol (ACP) Update Checker
|
|
4
|
+
# This script checks if updates are available for AGENT.md
|
|
5
|
+
|
|
6
|
+
set -e
|
|
7
|
+
|
|
8
|
+
# Colors for output
|
|
9
|
+
RED='\033[0;31m'
|
|
10
|
+
GREEN='\033[0;32m'
|
|
11
|
+
YELLOW='\033[1;33m'
|
|
12
|
+
BLUE='\033[0;34m'
|
|
13
|
+
NC='\033[0m' # No Color
|
|
14
|
+
|
|
15
|
+
# Repository URL
|
|
16
|
+
REPO_URL="https://raw.githubusercontent.com/prmichaelsen/agent-context-protocol/mainline"
|
|
17
|
+
AGENT_MD_URL="$REPO_URL/AGENT.md"
|
|
18
|
+
CHANGELOG_URL="$REPO_URL/CHANGELOG.md"
|
|
19
|
+
|
|
20
|
+
# Silent mode (no output, just exit codes)
|
|
21
|
+
SILENT=false
|
|
22
|
+
if [ "$1" = "--silent" ] || [ "$1" = "-s" ]; then
|
|
23
|
+
SILENT=true
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
# Check if AGENT.md exists
|
|
27
|
+
if [ ! -f "AGENT.md" ]; then
|
|
28
|
+
if [ "$SILENT" = false ]; then
|
|
29
|
+
echo -e "${RED}Error: AGENT.md not found in current directory${NC}" >&2
|
|
30
|
+
echo "This script should be run from your project root where AGENT.md is located." >&2
|
|
31
|
+
fi
|
|
32
|
+
exit 2
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
# Download latest AGENT.md for comparison
|
|
36
|
+
if [ "$SILENT" = false ]; then
|
|
37
|
+
echo -e "${BLUE}Checking for updates...${NC}"
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
if command -v curl &> /dev/null; then
|
|
41
|
+
curl -fsSL "$AGENT_MD_URL" -o /tmp/AGENT.md.latest 2>/dev/null
|
|
42
|
+
elif command -v wget &> /dev/null; then
|
|
43
|
+
wget -q "$AGENT_MD_URL" -O /tmp/AGENT.md.latest 2>/dev/null
|
|
44
|
+
else
|
|
45
|
+
if [ "$SILENT" = false ]; then
|
|
46
|
+
echo -e "${RED}Error: Neither curl nor wget is available${NC}" >&2
|
|
47
|
+
fi
|
|
48
|
+
exit 2
|
|
49
|
+
fi
|
|
50
|
+
|
|
51
|
+
if [ $? -ne 0 ]; then
|
|
52
|
+
if [ "$SILENT" = false ]; then
|
|
53
|
+
echo -e "${RED}Error: Failed to download latest AGENT.md${NC}" >&2
|
|
54
|
+
echo "Please check your internet connection." >&2
|
|
55
|
+
fi
|
|
56
|
+
rm -f /tmp/AGENT.md.latest
|
|
57
|
+
exit 2
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
# Compare files
|
|
61
|
+
if cmp -s AGENT.md /tmp/AGENT.md.latest; then
|
|
62
|
+
# Files are identical - no updates
|
|
63
|
+
if [ "$SILENT" = false ]; then
|
|
64
|
+
echo -e "${GREEN}✓${NC} Your AGENT.md is up to date!"
|
|
65
|
+
fi
|
|
66
|
+
rm -f /tmp/AGENT.md.latest
|
|
67
|
+
exit 0
|
|
68
|
+
else
|
|
69
|
+
# Files differ - updates available
|
|
70
|
+
if [ "$SILENT" = false ]; then
|
|
71
|
+
echo -e "${YELLOW}⚠${NC} Updates are available for AGENT.md"
|
|
72
|
+
echo ""
|
|
73
|
+
|
|
74
|
+
# Download and display changelog
|
|
75
|
+
echo "Recent changes:"
|
|
76
|
+
echo "---------------"
|
|
77
|
+
if command -v curl &> /dev/null; then
|
|
78
|
+
curl -fsSL "$CHANGELOG_URL" 2>/dev/null | head -n 50
|
|
79
|
+
elif command -v wget &> /dev/null; then
|
|
80
|
+
wget -q "$CHANGELOG_URL" -O - 2>/dev/null | head -n 50
|
|
81
|
+
fi
|
|
82
|
+
echo ""
|
|
83
|
+
echo "To update, run: ./agent/scripts/update.sh"
|
|
84
|
+
echo "Or: curl -fsSL https://raw.githubusercontent.com/prmichaelsen/agent-context-protocol/mainlin./agent/scripts/update.sh | bash"
|
|
85
|
+
fi
|
|
86
|
+
rm -f /tmp/AGENT.md.latest
|
|
87
|
+
exit 1
|
|
88
|
+
fi
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Agent Context Protocol (ACP) Installation Script
|
|
4
|
+
# This script sets up the ACP directory structure and template files in a project
|
|
5
|
+
|
|
6
|
+
set -e
|
|
7
|
+
|
|
8
|
+
# Colors for output using tput (more reliable than ANSI codes)
|
|
9
|
+
if command -v tput >/dev/null 2>&1 && [ -t 1 ]; then
|
|
10
|
+
RED=$(tput setaf 1)
|
|
11
|
+
GREEN=$(tput setaf 2)
|
|
12
|
+
YELLOW=$(tput setaf 3)
|
|
13
|
+
BLUE=$(tput setaf 4)
|
|
14
|
+
BOLD=$(tput bold)
|
|
15
|
+
NC=$(tput sgr0)
|
|
16
|
+
else
|
|
17
|
+
RED=''
|
|
18
|
+
GREEN=''
|
|
19
|
+
YELLOW=''
|
|
20
|
+
BLUE=''
|
|
21
|
+
BOLD=''
|
|
22
|
+
NC=''
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
# Repository details
|
|
26
|
+
REPO_URL="https://github.com/prmichaelsen/agent-context-protocol.git"
|
|
27
|
+
BRANCH="mainline"
|
|
28
|
+
|
|
29
|
+
echo "${GREEN}Agent Context Protocol (ACP) Installer${NC}"
|
|
30
|
+
echo "========================================"
|
|
31
|
+
echo ""
|
|
32
|
+
|
|
33
|
+
# Use current directory
|
|
34
|
+
TARGET_DIR="$(pwd)"
|
|
35
|
+
|
|
36
|
+
echo "Installing ACP to: $TARGET_DIR"
|
|
37
|
+
echo ""
|
|
38
|
+
|
|
39
|
+
# Check if agent directory already exists
|
|
40
|
+
if [ -d "$TARGET_DIR/agent" ]; then
|
|
41
|
+
echo "${YELLOW}Note: agent/ directory already exists${NC}"
|
|
42
|
+
echo "All ACP files will be updated to latest versions."
|
|
43
|
+
echo ""
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
# Create temporary directory
|
|
47
|
+
TEMP_DIR=$(mktemp -d)
|
|
48
|
+
trap "rm -rf $TEMP_DIR" EXIT
|
|
49
|
+
|
|
50
|
+
echo "Cloning ACP repository..."
|
|
51
|
+
if ! git clone --depth 1 --branch "$BRANCH" "$REPO_URL" "$TEMP_DIR" &>/dev/null; then
|
|
52
|
+
echo "${RED}Error: Failed to clone repository${NC}"
|
|
53
|
+
echo "Please check your internet connection and try again."
|
|
54
|
+
exit 1
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
echo "${GREEN}✓${NC} Repository cloned"
|
|
58
|
+
echo ""
|
|
59
|
+
|
|
60
|
+
# Create directory structure
|
|
61
|
+
echo "Creating directory structure..."
|
|
62
|
+
mkdir -p "$TARGET_DIR/agent/design"
|
|
63
|
+
mkdir -p "$TARGET_DIR/agent/milestones"
|
|
64
|
+
mkdir -p "$TARGET_DIR/agent/patterns"
|
|
65
|
+
mkdir -p "$TARGET_DIR/agent/tasks"
|
|
66
|
+
mkdir -p "$TARGET_DIR/agent/commands"
|
|
67
|
+
mkdir -p "$TARGET_DIR/agent/scripts"
|
|
68
|
+
mkdir -p "$TARGET_DIR/agent/reports"
|
|
69
|
+
|
|
70
|
+
# Create .gitkeep files
|
|
71
|
+
touch "$TARGET_DIR/agent/design/.gitkeep"
|
|
72
|
+
touch "$TARGET_DIR/agent/milestones/.gitkeep"
|
|
73
|
+
touch "$TARGET_DIR/agent/patterns/.gitkeep"
|
|
74
|
+
touch "$TARGET_DIR/agent/tasks/.gitkeep"
|
|
75
|
+
|
|
76
|
+
# Create agent/.gitignore to exclude reports from version control
|
|
77
|
+
cat > "$TARGET_DIR/agent/.gitignore" << 'EOF'
|
|
78
|
+
# Agent Context Protocol - Local Files
|
|
79
|
+
# These files are generated locally and should not be committed
|
|
80
|
+
|
|
81
|
+
# Reports directory - generated by @acp.report command
|
|
82
|
+
reports/
|
|
83
|
+
EOF
|
|
84
|
+
|
|
85
|
+
echo "${GREEN}✓${NC} Directory structure created"
|
|
86
|
+
echo ""
|
|
87
|
+
|
|
88
|
+
# Copy files
|
|
89
|
+
echo "Installing ACP files..."
|
|
90
|
+
|
|
91
|
+
# Copy template files (only .template.md files from these directories)
|
|
92
|
+
find "$TEMP_DIR/agent/design" -maxdepth 1 -name "*.template.md" -exec cp {} "$TARGET_DIR/agent/design/" \;
|
|
93
|
+
find "$TEMP_DIR/agent/milestones" -maxdepth 1 -name "*.template.md" -exec cp {} "$TARGET_DIR/agent/milestones/" \;
|
|
94
|
+
find "$TEMP_DIR/agent/patterns" -maxdepth 1 -name "*.template.md" -exec cp {} "$TARGET_DIR/agent/patterns/" \;
|
|
95
|
+
find "$TEMP_DIR/agent/tasks" -maxdepth 1 -name "*.template.md" -exec cp {} "$TARGET_DIR/agent/tasks/" \;
|
|
96
|
+
|
|
97
|
+
# Copy command template
|
|
98
|
+
cp "$TEMP_DIR/agent/commands/command.template.md" "$TARGET_DIR/agent/commands/"
|
|
99
|
+
|
|
100
|
+
# Copy all command files (flat structure with dot notation)
|
|
101
|
+
# Copies files like acp.init.md, acp.status.md, deploy.production.md, etc.
|
|
102
|
+
if [ -d "$TEMP_DIR/agent/commands" ]; then
|
|
103
|
+
find "$TEMP_DIR/agent/commands" -maxdepth 1 -name "*.*.md" -exec cp {} "$TARGET_DIR/agent/commands/" \;
|
|
104
|
+
fi
|
|
105
|
+
|
|
106
|
+
# Copy progress template
|
|
107
|
+
cp "$TEMP_DIR/agent/progress.template.yaml" "$TARGET_DIR/agent/"
|
|
108
|
+
|
|
109
|
+
# Copy AGENT.md
|
|
110
|
+
cp "$TEMP_DIR/AGENT.md" "$TARGET_DIR/"
|
|
111
|
+
|
|
112
|
+
# Copy scripts
|
|
113
|
+
cp "$TEMP_DIR/agent/scripts/update.sh" "$TARGET_DIR/agent/scripts/"
|
|
114
|
+
cp "$TEMP_DIR/agent/scripts/check-for-updates.sh" "$TARGET_DIR/agent/scripts/"
|
|
115
|
+
cp "$TEMP_DIR/agent/scripts/uninstall.sh" "$TARGET_DIR/agent/scripts/"
|
|
116
|
+
cp "$TEMP_DIR/agent/scripts/version.sh" "$TARGET_DIR/agent/scripts/"
|
|
117
|
+
cp "$TEMP_DIR/agent/scripts/install.sh" "$TARGET_DIR/agent/scripts/"
|
|
118
|
+
chmod +x "$TARGET_DIR/agent/scripts"/*.sh
|
|
119
|
+
|
|
120
|
+
echo "${GREEN}✓${NC} All files installed"
|
|
121
|
+
echo ""
|
|
122
|
+
echo "${GREEN}Installation complete!${NC}"
|
|
123
|
+
echo ""
|
|
124
|
+
echo "${GREEN}Next steps:${NC}"
|
|
125
|
+
echo "1. Create your requirements document:"
|
|
126
|
+
echo " cp agent/design/requirements.template.md agent/design/requirements.md"
|
|
127
|
+
echo ""
|
|
128
|
+
echo "2. Define your first milestone:"
|
|
129
|
+
echo " cp agent/milestones/milestone-1-{title}.template.md agent/milestones/milestone-1-foundation.md"
|
|
130
|
+
echo ""
|
|
131
|
+
echo "3. Initialize progress tracking:"
|
|
132
|
+
echo " cp agent/progress.template.yaml agent/progress.yaml"
|
|
133
|
+
echo ""
|
|
134
|
+
echo "4. Read AGENT.md for complete documentation"
|
|
135
|
+
echo ""
|
|
136
|
+
echo "${BLUE}ACP Commands Available:${NC}"
|
|
137
|
+
echo ""
|
|
138
|
+
echo " ${GREEN}@acp.init${NC} - Initialize agent context (start here!)"
|
|
139
|
+
echo " ${GREEN}@acp.proceed${NC} - Continue with next task"
|
|
140
|
+
echo " ${GREEN}@acp.status${NC} - Display project status"
|
|
141
|
+
echo " ${GREEN}@acp.update${NC} - Update progress tracking"
|
|
142
|
+
echo " ${GREEN}@acp.sync${NC} - Sync documentation with code"
|
|
143
|
+
echo " ${GREEN}@acp.validate${NC} - Validate ACP documents"
|
|
144
|
+
echo " ${GREEN}@acp.report${NC} - Generate project report"
|
|
145
|
+
echo " ${GREEN}@acp.version-check${NC} - Show current ACP version"
|
|
146
|
+
echo " ${GREEN}@acp.version-check-for-updates${NC} - Check for ACP updates"
|
|
147
|
+
echo " ${GREEN}@acp.version-update${NC} - Update ACP to latest version"
|
|
148
|
+
echo " ${GREEN}@acp.package-install${NC} - Install third-party command packages"
|
|
149
|
+
echo ""
|
|
150
|
+
echo "${BLUE}Git Commands Available:${NC}"
|
|
151
|
+
echo ""
|
|
152
|
+
echo " ${GREEN}@git.init${NC} - Initialize git repository with smart .gitignore"
|
|
153
|
+
echo " ${GREEN}@git.commit${NC} - Intelligent version-aware git commit"
|
|
154
|
+
echo ""
|
|
155
|
+
echo "${BLUE}For AI agents:${NC}"
|
|
156
|
+
echo "Type '${GREEN}@acp.init${NC}' to get started."
|
|
157
|
+
echo ""
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Agent Context Protocol (ACP) Uninstall Script
|
|
4
|
+
# This script removes all ACP files from a project
|
|
5
|
+
# Usage: ./agent/scripts/uninstall.sh [-y]
|
|
6
|
+
|
|
7
|
+
set -e
|
|
8
|
+
|
|
9
|
+
# Colors for output
|
|
10
|
+
RED='\033[0;31m'
|
|
11
|
+
GREEN='\033[0;32m'
|
|
12
|
+
YELLOW='\033[1;33m'
|
|
13
|
+
BLUE='\033[0;34m'
|
|
14
|
+
NC='\033[0m' # No Color
|
|
15
|
+
|
|
16
|
+
# Check for -y flag
|
|
17
|
+
AUTO_CONFIRM=false
|
|
18
|
+
if [ "$1" = "-y" ]; then
|
|
19
|
+
AUTO_CONFIRM=true
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
echo -e "${YELLOW}Agent Context Protocol (ACP) Uninstall${NC}"
|
|
23
|
+
echo "======================================"
|
|
24
|
+
echo ""
|
|
25
|
+
|
|
26
|
+
# Check if agent directory exists
|
|
27
|
+
if [ ! -d "agent" ] && [ ! -f "AGENT.md" ]; then
|
|
28
|
+
echo -e "${YELLOW}No ACP files found in current directory${NC}"
|
|
29
|
+
exit 0
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
# If not auto-confirmed, show instructions for agents
|
|
33
|
+
if [ "$AUTO_CONFIRM" = false ]; then
|
|
34
|
+
echo -e "${BLUE}Note for AI Agents:${NC}"
|
|
35
|
+
echo "This script requires user confirmation to prevent accidental deletion."
|
|
36
|
+
echo "Please ask the user: 'Do you want to uninstall ACP from this project?'"
|
|
37
|
+
echo "If yes, rerun this script with: ./agent/scripts/uninstall.sh -y"
|
|
38
|
+
echo ""
|
|
39
|
+
echo -e "${RED}WARNING: This will permanently delete:${NC}"
|
|
40
|
+
echo " - agent/ directory (all contents)"
|
|
41
|
+
echo " - AGENT.md file"
|
|
42
|
+
echo ""
|
|
43
|
+
echo "Make sure you have committed any important changes to git."
|
|
44
|
+
echo ""
|
|
45
|
+
|
|
46
|
+
read -p "Are you sure you want to remove all ACP files? (y/N) " -n 1 -r
|
|
47
|
+
echo
|
|
48
|
+
|
|
49
|
+
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
50
|
+
echo "Uninstall cancelled. No files were deleted."
|
|
51
|
+
exit 0
|
|
52
|
+
fi
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
echo ""
|
|
56
|
+
echo "Removing ACP files..."
|
|
57
|
+
|
|
58
|
+
# Remove agent directory
|
|
59
|
+
if [ -d "agent" ]; then
|
|
60
|
+
rm -rf agent
|
|
61
|
+
echo -e "${GREEN}✓${NC} Removed agent/ directory"
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
# Remove AGENT.md
|
|
65
|
+
if [ -f "AGENT.md" ]; then
|
|
66
|
+
rm -f AGENT.md
|
|
67
|
+
echo -e "${GREEN}✓${NC} Removed AGENT.md"
|
|
68
|
+
fi
|
|
69
|
+
|
|
70
|
+
echo ""
|
|
71
|
+
echo -e "${GREEN}Uninstall complete!${NC}"
|
|
72
|
+
echo ""
|
|
73
|
+
echo "All ACP files have been removed from this project."
|
|
74
|
+
echo "Use 'git status' to see what was deleted."
|
|
75
|
+
echo ""
|