@prmichaelsen/acp-visualizer 0.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 (180) hide show
  1. package/README.md +68 -0
  2. package/agent/commands/acp.clarification-address.md +417 -0
  3. package/agent/commands/acp.clarification-capture.md +386 -0
  4. package/agent/commands/acp.clarification-create.md +437 -0
  5. package/agent/commands/acp.clarifications-research.md +326 -0
  6. package/agent/commands/acp.command-create.md +432 -0
  7. package/agent/commands/acp.design-create.md +286 -0
  8. package/agent/commands/acp.design-reference.md +355 -0
  9. package/agent/commands/acp.handoff.md +270 -0
  10. package/agent/commands/acp.index.md +423 -0
  11. package/agent/commands/acp.init.md +546 -0
  12. package/agent/commands/acp.package-create.md +895 -0
  13. package/agent/commands/acp.package-info.md +212 -0
  14. package/agent/commands/acp.package-install.md +539 -0
  15. package/agent/commands/acp.package-list.md +280 -0
  16. package/agent/commands/acp.package-publish.md +541 -0
  17. package/agent/commands/acp.package-remove.md +293 -0
  18. package/agent/commands/acp.package-search.md +307 -0
  19. package/agent/commands/acp.package-update.md +361 -0
  20. package/agent/commands/acp.package-validate.md +540 -0
  21. package/agent/commands/acp.pattern-create.md +386 -0
  22. package/agent/commands/acp.plan.md +587 -0
  23. package/agent/commands/acp.proceed.md +882 -0
  24. package/agent/commands/acp.project-create.md +675 -0
  25. package/agent/commands/acp.project-info.md +312 -0
  26. package/agent/commands/acp.project-list.md +226 -0
  27. package/agent/commands/acp.project-remove.md +379 -0
  28. package/agent/commands/acp.project-set.md +227 -0
  29. package/agent/commands/acp.project-update.md +307 -0
  30. package/agent/commands/acp.projects-restore.md +228 -0
  31. package/agent/commands/acp.projects-sync.md +347 -0
  32. package/agent/commands/acp.report.md +407 -0
  33. package/agent/commands/acp.resume.md +239 -0
  34. package/agent/commands/acp.sessions.md +301 -0
  35. package/agent/commands/acp.status.md +293 -0
  36. package/agent/commands/acp.sync.md +364 -0
  37. package/agent/commands/acp.task-create.md +500 -0
  38. package/agent/commands/acp.update.md +302 -0
  39. package/agent/commands/acp.validate.md +466 -0
  40. package/agent/commands/acp.version-check-for-updates.md +276 -0
  41. package/agent/commands/acp.version-check.md +191 -0
  42. package/agent/commands/acp.version-update.md +289 -0
  43. package/agent/commands/command.template.md +339 -0
  44. package/agent/commands/git.commit.md +526 -0
  45. package/agent/commands/git.init.md +514 -0
  46. package/agent/commands/tanstack-cloudflare.deploy.md +272 -0
  47. package/agent/commands/tanstack-cloudflare.tail.md +275 -0
  48. package/agent/design/.gitkeep +0 -0
  49. package/agent/design/design.template.md +154 -0
  50. package/agent/design/local.dashboard-layout-routing.md +288 -0
  51. package/agent/design/local.data-model-yaml-parsing.md +310 -0
  52. package/agent/design/local.search-filtering.md +331 -0
  53. package/agent/design/local.server-api-auto-refresh.md +235 -0
  54. package/agent/design/local.table-tree-views.md +299 -0
  55. package/agent/design/local.visualizer-requirements.md +349 -0
  56. package/agent/design/requirements.template.md +387 -0
  57. package/agent/index/.gitkeep +0 -0
  58. package/agent/index/acp.core.yaml +137 -0
  59. package/agent/index/local.main.template.yaml +37 -0
  60. package/agent/manifest.template.yaml +13 -0
  61. package/agent/manifest.yaml +302 -0
  62. package/agent/milestones/.gitkeep +0 -0
  63. package/agent/milestones/milestone-1-project-scaffold-data-pipeline.md +67 -0
  64. package/agent/milestones/milestone-1-{title}.template.md +206 -0
  65. package/agent/milestones/milestone-2-dashboard-views-interaction.md +79 -0
  66. package/agent/package.template.yaml +86 -0
  67. package/agent/patterns/.gitkeep +0 -0
  68. package/agent/patterns/bootstrap.template.md +1237 -0
  69. package/agent/patterns/pattern.template.md +382 -0
  70. package/agent/patterns/tanstack-cloudflare.acl-permissions.md +332 -0
  71. package/agent/patterns/tanstack-cloudflare.action-bar-item.md +416 -0
  72. package/agent/patterns/tanstack-cloudflare.api-route-handlers.md +401 -0
  73. package/agent/patterns/tanstack-cloudflare.auth-session-management.md +387 -0
  74. package/agent/patterns/tanstack-cloudflare.card-and-list.md +271 -0
  75. package/agent/patterns/tanstack-cloudflare.chat-engine.md +353 -0
  76. package/agent/patterns/tanstack-cloudflare.confirmation-tokens.md +346 -0
  77. package/agent/patterns/tanstack-cloudflare.durable-objects-websocket.md +516 -0
  78. package/agent/patterns/tanstack-cloudflare.email-service.md +431 -0
  79. package/agent/patterns/tanstack-cloudflare.expander.md +98 -0
  80. package/agent/patterns/tanstack-cloudflare.fcm-push.md +115 -0
  81. package/agent/patterns/tanstack-cloudflare.firebase-anonymous-sessions.md +441 -0
  82. package/agent/patterns/tanstack-cloudflare.firebase-auth.md +348 -0
  83. package/agent/patterns/tanstack-cloudflare.firebase-firestore.md +550 -0
  84. package/agent/patterns/tanstack-cloudflare.firebase-storage.md +369 -0
  85. package/agent/patterns/tanstack-cloudflare.form-controls.md +145 -0
  86. package/agent/patterns/tanstack-cloudflare.global-search-context.md +93 -0
  87. package/agent/patterns/tanstack-cloudflare.image-carousel.md +126 -0
  88. package/agent/patterns/tanstack-cloudflare.library-services.md +553 -0
  89. package/agent/patterns/tanstack-cloudflare.lightbox.md +169 -0
  90. package/agent/patterns/tanstack-cloudflare.markdown-content.md +115 -0
  91. package/agent/patterns/tanstack-cloudflare.mention-suggestions.md +98 -0
  92. package/agent/patterns/tanstack-cloudflare.modal.md +156 -0
  93. package/agent/patterns/tanstack-cloudflare.nextjs-to-tanstack-routing.md +461 -0
  94. package/agent/patterns/tanstack-cloudflare.notifications-engine.md +151 -0
  95. package/agent/patterns/tanstack-cloudflare.oauth-token-refresh.md +90 -0
  96. package/agent/patterns/tanstack-cloudflare.og-metadata.md +296 -0
  97. package/agent/patterns/tanstack-cloudflare.pagination.md +442 -0
  98. package/agent/patterns/tanstack-cloudflare.pill-input.md +220 -0
  99. package/agent/patterns/tanstack-cloudflare.provider-adapter.md +401 -0
  100. package/agent/patterns/tanstack-cloudflare.rate-limiting.md +323 -0
  101. package/agent/patterns/tanstack-cloudflare.scheduled-tasks.md +338 -0
  102. package/agent/patterns/tanstack-cloudflare.searchable-settings.md +375 -0
  103. package/agent/patterns/tanstack-cloudflare.slide-over.md +129 -0
  104. package/agent/patterns/tanstack-cloudflare.ssr-preload.md +571 -0
  105. package/agent/patterns/tanstack-cloudflare.third-party-api-integration.md +508 -0
  106. package/agent/patterns/tanstack-cloudflare.toast-system.md +142 -0
  107. package/agent/patterns/tanstack-cloudflare.unified-header.md +280 -0
  108. package/agent/patterns/tanstack-cloudflare.user-scoped-collections.md +628 -0
  109. package/agent/patterns/tanstack-cloudflare.websocket-manager.md +237 -0
  110. package/agent/patterns/tanstack-cloudflare.wrangler-configuration.md +358 -0
  111. package/agent/patterns/tanstack-cloudflare.zod-schema-validation.md +336 -0
  112. package/agent/progress.template.yaml +161 -0
  113. package/agent/progress.yaml +145 -0
  114. package/agent/schemas/package.schema.yaml +276 -0
  115. package/agent/scripts/acp.common.sh +1781 -0
  116. package/agent/scripts/acp.install.sh +333 -0
  117. package/agent/scripts/acp.package-create.sh +924 -0
  118. package/agent/scripts/acp.package-info.sh +288 -0
  119. package/agent/scripts/acp.package-install.sh +893 -0
  120. package/agent/scripts/acp.package-list.sh +311 -0
  121. package/agent/scripts/acp.package-publish.sh +420 -0
  122. package/agent/scripts/acp.package-remove.sh +348 -0
  123. package/agent/scripts/acp.package-search.sh +156 -0
  124. package/agent/scripts/acp.package-update.sh +517 -0
  125. package/agent/scripts/acp.package-validate.sh +1018 -0
  126. package/agent/scripts/acp.uninstall.sh +85 -0
  127. package/agent/scripts/acp.version-check-for-updates.sh +98 -0
  128. package/agent/scripts/acp.version-check.sh +47 -0
  129. package/agent/scripts/acp.version-update.sh +176 -0
  130. package/agent/scripts/acp.yaml-parser.sh +985 -0
  131. package/agent/scripts/acp.yaml-validate.sh +205 -0
  132. package/agent/tasks/.gitkeep +0 -0
  133. package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-1-initialize-tanstack-start-project.md +210 -0
  134. package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-2-implement-data-model-yaml-parser.md +294 -0
  135. package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-3-build-server-api-data-loading.md +193 -0
  136. package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-4-add-auto-refresh-sse.md +262 -0
  137. package/agent/tasks/milestone-2-dashboard-views-interaction/task-10-polish-integration-testing.md +156 -0
  138. package/agent/tasks/milestone-2-dashboard-views-interaction/task-5-build-dashboard-layout-routing.md +178 -0
  139. package/agent/tasks/milestone-2-dashboard-views-interaction/task-6-build-overview-page.md +141 -0
  140. package/agent/tasks/milestone-2-dashboard-views-interaction/task-7-implement-milestone-table-view.md +153 -0
  141. package/agent/tasks/milestone-2-dashboard-views-interaction/task-8-implement-milestone-tree-view.md +174 -0
  142. package/agent/tasks/milestone-2-dashboard-views-interaction/task-9-implement-search-filtering.md +233 -0
  143. package/agent/tasks/task-1-{title}.template.md +244 -0
  144. package/bin/visualize.mjs +84 -0
  145. package/package.json +48 -0
  146. package/src/components/ExtraFieldsBadge.tsx +15 -0
  147. package/src/components/FilterBar.tsx +33 -0
  148. package/src/components/Header.tsx +23 -0
  149. package/src/components/MilestoneTable.tsx +167 -0
  150. package/src/components/MilestoneTree.tsx +84 -0
  151. package/src/components/ProgressBar.tsx +20 -0
  152. package/src/components/SearchInput.tsx +22 -0
  153. package/src/components/Sidebar.tsx +54 -0
  154. package/src/components/StatusBadge.tsx +23 -0
  155. package/src/components/StatusDot.tsx +12 -0
  156. package/src/components/TaskList.tsx +36 -0
  157. package/src/components/ViewToggle.tsx +31 -0
  158. package/src/lib/config.ts +8 -0
  159. package/src/lib/file-watcher.ts +43 -0
  160. package/src/lib/search.ts +48 -0
  161. package/src/lib/types.ts +73 -0
  162. package/src/lib/useAutoRefresh.ts +31 -0
  163. package/src/lib/useCollapse.ts +31 -0
  164. package/src/lib/useFilteredData.ts +55 -0
  165. package/src/lib/yaml-loader-real.spec.ts +47 -0
  166. package/src/lib/yaml-loader.spec.ts +201 -0
  167. package/src/lib/yaml-loader.ts +265 -0
  168. package/src/routeTree.gen.ts +140 -0
  169. package/src/router.tsx +10 -0
  170. package/src/routes/__root.tsx +75 -0
  171. package/src/routes/api/watch.ts +29 -0
  172. package/src/routes/index.tsx +115 -0
  173. package/src/routes/milestones.tsx +50 -0
  174. package/src/routes/search.tsx +84 -0
  175. package/src/routes/tasks.tsx +63 -0
  176. package/src/services/progress-database.service.ts +46 -0
  177. package/src/styles.css +25 -0
  178. package/tsconfig.json +24 -0
  179. package/vite.config.ts +16 -0
  180. package/vitest.config.ts +27 -0
@@ -0,0 +1,333 @@
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/schemas"
69
+ mkdir -p "$TARGET_DIR/agent/reports"
70
+ mkdir -p "$TARGET_DIR/agent/drafts"
71
+ mkdir -p "$TARGET_DIR/agent/clarifications"
72
+ mkdir -p "$TARGET_DIR/agent/feedback"
73
+ mkdir -p "$TARGET_DIR/agent/preferences"
74
+ mkdir -p "$TARGET_DIR/agent/index"
75
+
76
+ # Create .gitkeep files
77
+ touch "$TARGET_DIR/agent/design/.gitkeep"
78
+ touch "$TARGET_DIR/agent/milestones/.gitkeep"
79
+ touch "$TARGET_DIR/agent/patterns/.gitkeep"
80
+ touch "$TARGET_DIR/agent/tasks/.gitkeep"
81
+ touch "$TARGET_DIR/agent/clarifications/.gitkeep"
82
+ touch "$TARGET_DIR/agent/index/.gitkeep"
83
+
84
+ # Create agent/.gitignore to exclude local-only directories from version control
85
+ cat > "$TARGET_DIR/agent/.gitignore" << 'EOF'
86
+ # Agent Context Protocol - Local Files
87
+ # These files are generated locally and should not be committed
88
+
89
+ # Reports directory - generated by @acp.report command
90
+ reports/
91
+ clarifications/
92
+ feedback/
93
+ drafts/
94
+ preferences/
95
+ EOF
96
+
97
+ echo "${GREEN}✓${NC} Directory structure created"
98
+ echo ""
99
+
100
+ # Copy files
101
+ echo "Installing ACP files..."
102
+
103
+ # Copy template files (only .template.md files from these directories)
104
+ find "$TEMP_DIR/agent/design" -maxdepth 1 -name "*.template.md" -exec cp {} "$TARGET_DIR/agent/design/" \;
105
+ find "$TEMP_DIR/agent/milestones" -maxdepth 1 -name "*.template.md" -exec cp {} "$TARGET_DIR/agent/milestones/" \;
106
+ find "$TEMP_DIR/agent/patterns" -maxdepth 1 -name "*.template.md" -exec cp {} "$TARGET_DIR/agent/patterns/" \;
107
+ find "$TEMP_DIR/agent/tasks" -maxdepth 1 -name "*.template.md" -exec cp {} "$TARGET_DIR/agent/tasks/" \;
108
+ find "$TEMP_DIR/agent/clarifications" -maxdepth 1 -name "*.template.md" -exec cp {} "$TARGET_DIR/agent/clarifications/" \;
109
+
110
+ # Copy index template files
111
+ if [ -d "$TEMP_DIR/agent/index" ]; then
112
+ find "$TEMP_DIR/agent/index" -maxdepth 1 -name "*.template.yaml" -exec cp {} "$TARGET_DIR/agent/index/" \;
113
+ fi
114
+
115
+ # Copy bundled index files (e.g. acp.core.yaml)
116
+ if [ -d "$TEMP_DIR/agent/index" ]; then
117
+ find "$TEMP_DIR/agent/index" -maxdepth 1 -name "*.yaml" ! -name "*.template.yaml" ! -name "local.*" -exec cp {} "$TARGET_DIR/agent/index/" \;
118
+ fi
119
+
120
+ # Copy command template
121
+ cp "$TEMP_DIR/agent/commands/command.template.md" "$TARGET_DIR/agent/commands/"
122
+
123
+ # Copy all command files (flat structure with dot notation)
124
+ # Copies files like acp.init.md, acp.status.md, deploy.production.md, etc.
125
+ if [ -d "$TEMP_DIR/agent/commands" ]; then
126
+ find "$TEMP_DIR/agent/commands" -maxdepth 1 -name "*.*.md" -exec cp {} "$TARGET_DIR/agent/commands/" \;
127
+ fi
128
+
129
+ # Copy progress template
130
+ if [ -f "$TEMP_DIR/agent/progress.template.yaml" ]; then
131
+ cp "$TEMP_DIR/agent/progress.template.yaml" "$TARGET_DIR/agent/"
132
+ fi
133
+
134
+ # Copy manifest template
135
+ if [ -f "$TEMP_DIR/agent/manifest.template.yaml" ]; then
136
+ cp "$TEMP_DIR/agent/manifest.template.yaml" "$TARGET_DIR/agent/"
137
+ fi
138
+
139
+ # Copy package template
140
+ if [ -f "$TEMP_DIR/agent/package.template.yaml" ]; then
141
+ cp "$TEMP_DIR/agent/package.template.yaml" "$TARGET_DIR/agent/"
142
+ fi
143
+
144
+ # Create initial manifest.yaml if it doesn't exist
145
+ if [ ! -f "$TARGET_DIR/agent/manifest.yaml" ]; then
146
+ cat > "$TARGET_DIR/agent/manifest.yaml" << 'EOF'
147
+ # ACP Package Manifest
148
+ # Tracks installed packages and their versions
149
+
150
+ packages: {}
151
+
152
+ manifest_version: 1.0.0
153
+ last_updated: null
154
+ EOF
155
+ fi
156
+
157
+ # Copy schemas
158
+ if [ -f "$TEMP_DIR/agent/schemas/package.schema.yaml" ]; then
159
+ cp "$TEMP_DIR/agent/schemas/package.schema.yaml" "$TARGET_DIR/agent/schemas/"
160
+ fi
161
+
162
+ # Copy AGENT.md
163
+ cp "$TEMP_DIR/AGENT.md" "$TARGET_DIR/"
164
+
165
+ # Copy scripts - selective installation based on command dependencies
166
+ if [ -d "$TEMP_DIR/agent/scripts" ]; then
167
+ # Check if this is ACP core (has package.yaml) or direct install
168
+ if [ -f "$TEMP_DIR/package.yaml" ]; then
169
+ # ACP core with package.yaml - selective script installation
170
+ echo "Resolving script dependencies from package.yaml..."
171
+
172
+ # Copy YAML parser first (needed for parsing)
173
+ if [ -f "$TEMP_DIR/agent/scripts/acp.yaml-parser.sh" ]; then
174
+ cp "$TEMP_DIR/agent/scripts/acp.yaml-parser.sh" "$TARGET_DIR/agent/scripts/"
175
+ chmod +x "$TARGET_DIR/agent/scripts/acp.yaml-parser.sh"
176
+ fi
177
+
178
+ # Copy common utilities first (needed for parsing)
179
+ if [ -f "$TEMP_DIR/agent/scripts/acp.common.sh" ]; then
180
+ cp "$TEMP_DIR/agent/scripts/acp.common.sh" "$TARGET_DIR/agent/scripts/"
181
+ chmod +x "$TARGET_DIR/agent/scripts/acp.common.sh"
182
+ fi
183
+
184
+ # Source YAML parser for querying
185
+ if [ -f "$TARGET_DIR/agent/scripts/acp.yaml-parser.sh" ]; then
186
+ . "$TARGET_DIR/agent/scripts/acp.yaml-parser.sh"
187
+ yaml_parse "$TEMP_DIR/package.yaml"
188
+ fi
189
+
190
+ # Find all NON-experimental commands and collect their scripts
191
+ PACKAGE_COMMANDS=()
192
+ REQUIRED_SCRIPTS=()
193
+ cmd_index=0
194
+ while true; do
195
+ cmd_name=$(yaml_query ".contents.commands[$cmd_index].name" 2>/dev/null || echo "")
196
+ if [ -z "$cmd_name" ] || [ "$cmd_name" = "null" ]; then
197
+ break
198
+ fi
199
+
200
+ # Check if command is experimental
201
+ is_exp=$(yaml_query ".contents.commands[$cmd_index].experimental" 2>/dev/null || echo "false")
202
+ if [ "$is_exp" != "true" ]; then
203
+ PACKAGE_COMMANDS+=("$cmd_name")
204
+
205
+ # Collect scripts for this command
206
+ script_index=0
207
+ while true; do
208
+ script=$(yaml_query ".contents.commands[$cmd_index].scripts[$script_index]" 2>/dev/null || echo "")
209
+ if [ -z "$script" ] || [ "$script" = "null" ]; then
210
+ break
211
+ fi
212
+
213
+ # Add to required scripts (with deduplication)
214
+ already_added=false
215
+ for existing in "${REQUIRED_SCRIPTS[@]}"; do
216
+ if [ "$existing" = "$script" ]; then
217
+ already_added=true
218
+ break
219
+ fi
220
+ done
221
+
222
+ if [ "$already_added" = false ]; then
223
+ REQUIRED_SCRIPTS+=("$script")
224
+ fi
225
+
226
+ script_index=$((script_index + 1))
227
+ done
228
+ fi
229
+
230
+ cmd_index=$((cmd_index + 1))
231
+ done
232
+
233
+ # Install required scripts (excluding common.sh and yaml-parser.sh already copied)
234
+ for script in "${REQUIRED_SCRIPTS[@]}"; do
235
+ if [ "$script" = "acp.common.sh" ] || [ "$script" = "acp.yaml-parser.sh" ]; then
236
+ continue # Already copied
237
+ fi
238
+
239
+ if [ -f "$TEMP_DIR/agent/scripts/$script" ]; then
240
+ # Check if script is experimental by finding it in contents.scripts
241
+ is_exp="false"
242
+ script_check_index=0
243
+ while true; do
244
+ s_name=$(yaml_query ".contents.scripts[$script_check_index].name" 2>/dev/null || echo "")
245
+ if [ -z "$s_name" ] || [ "$s_name" = "null" ]; then
246
+ break
247
+ fi
248
+ if [ "$s_name" = "$script" ]; then
249
+ is_exp=$(yaml_query ".contents.scripts[$script_check_index].experimental" 2>/dev/null || echo "false")
250
+ break
251
+ fi
252
+ script_check_index=$((script_check_index + 1))
253
+ done
254
+ if [ "$is_exp" != "true" ]; then
255
+ cp "$TEMP_DIR/agent/scripts/$script" "$TARGET_DIR/agent/scripts/"
256
+ chmod +x "$TARGET_DIR/agent/scripts/$script"
257
+ fi
258
+ fi
259
+ done
260
+
261
+ echo "${GREEN}✓${NC} Installed ${#REQUIRED_SCRIPTS[@]} required script(s)"
262
+ else
263
+ # Direct install mode (no package.yaml) - copy all scripts
264
+ find "$TEMP_DIR/agent/scripts" -maxdepth 1 -name "*.sh" -exec cp {} "$TARGET_DIR/agent/scripts/" \;
265
+ chmod +x "$TARGET_DIR/agent/scripts"/*.sh 2>/dev/null || true
266
+ echo "${GREEN}✓${NC} Installed all scripts"
267
+ fi
268
+ fi
269
+
270
+ # Clean up deprecated scripts (from versions < 2.0.0)
271
+ . "$TARGET_DIR/agent/scripts/acp.common.sh"
272
+ init_colors
273
+ cleanup_deprecated_scripts
274
+
275
+ echo "${GREEN}✓${NC} All files installed"
276
+ echo ""
277
+
278
+ # Create manifest.yaml to track core ACP installation
279
+ echo "Creating manifest..."
280
+
281
+ # Get ACP version from AGENT.md
282
+ ACP_VERSION=$(grep "^\*\*Version\*\*:" "$TARGET_DIR/AGENT.md" | sed 's/.*: //' | head -1)
283
+ INSTALL_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
284
+
285
+ # List installed core files
286
+ CORE_COMMANDS=$(cd "$TARGET_DIR" && ls agent/commands/acp.*.md agent/commands/git.*.md 2>/dev/null | xargs -n1 basename)
287
+ CORE_PATTERNS=$(cd "$TARGET_DIR" && ls agent/patterns/*.template.md 2>/dev/null | xargs -n1 basename)
288
+ CORE_DESIGNS=$(cd "$TARGET_DIR" && ls agent/design/*.template.md 2>/dev/null | xargs -n1 basename)
289
+
290
+ # Create manifest with acp-core package
291
+ cat > "$TARGET_DIR/agent/manifest.yaml" << EOF
292
+ # ACP Package Manifest
293
+ # Tracks installed packages and their versions
294
+
295
+ packages:
296
+ acp-core:
297
+ source: https://github.com/prmichaelsen/agent-context-protocol.git
298
+ package_version: ${ACP_VERSION}
299
+ installed_at: ${INSTALL_DATE}
300
+ updated_at: ${INSTALL_DATE}
301
+ files:
302
+ commands:
303
+ $(echo "$CORE_COMMANDS" | sed 's/^/ - name: /')
304
+ patterns:
305
+ $(echo "$CORE_PATTERNS" | sed 's/^/ - name: /')
306
+ designs:
307
+ $(echo "$CORE_DESIGNS" | sed 's/^/ - name: /')
308
+
309
+ manifest_version: 1.0.0
310
+ last_updated: ${INSTALL_DATE}
311
+ EOF
312
+
313
+ echo "${GREEN}✓${NC} Created manifest.yaml (tracking acp-core v${ACP_VERSION})"
314
+ echo ""
315
+ echo "${GREEN}Installation complete!${NC}"
316
+ echo ""
317
+ echo "${GREEN}Next steps:${NC}"
318
+ echo "1. Create your requirements document:"
319
+ echo " cp agent/design/requirements.template.md agent/design/requirements.md"
320
+ echo ""
321
+ echo "2. Define your first milestone:"
322
+ echo " cp agent/milestones/milestone-1-{title}.template.md agent/milestones/milestone-1-foundation.md"
323
+ echo ""
324
+ echo "3. Initialize progress tracking:"
325
+ echo " cp agent/progress.template.yaml agent/progress.yaml"
326
+ echo ""
327
+ echo "4. Read AGENT.md for complete documentation"
328
+ echo ""
329
+ display_available_commands
330
+ echo ""
331
+ echo "${BLUE}For AI agents:${NC}"
332
+ echo "Type '${GREEN}@acp.init${NC}' to get started."
333
+ echo ""