@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.
- package/README.md +68 -0
- package/agent/commands/acp.clarification-address.md +417 -0
- package/agent/commands/acp.clarification-capture.md +386 -0
- package/agent/commands/acp.clarification-create.md +437 -0
- package/agent/commands/acp.clarifications-research.md +326 -0
- package/agent/commands/acp.command-create.md +432 -0
- package/agent/commands/acp.design-create.md +286 -0
- package/agent/commands/acp.design-reference.md +355 -0
- package/agent/commands/acp.handoff.md +270 -0
- package/agent/commands/acp.index.md +423 -0
- package/agent/commands/acp.init.md +546 -0
- package/agent/commands/acp.package-create.md +895 -0
- package/agent/commands/acp.package-info.md +212 -0
- package/agent/commands/acp.package-install.md +539 -0
- package/agent/commands/acp.package-list.md +280 -0
- package/agent/commands/acp.package-publish.md +541 -0
- package/agent/commands/acp.package-remove.md +293 -0
- package/agent/commands/acp.package-search.md +307 -0
- package/agent/commands/acp.package-update.md +361 -0
- package/agent/commands/acp.package-validate.md +540 -0
- package/agent/commands/acp.pattern-create.md +386 -0
- package/agent/commands/acp.plan.md +587 -0
- package/agent/commands/acp.proceed.md +882 -0
- package/agent/commands/acp.project-create.md +675 -0
- package/agent/commands/acp.project-info.md +312 -0
- package/agent/commands/acp.project-list.md +226 -0
- package/agent/commands/acp.project-remove.md +379 -0
- package/agent/commands/acp.project-set.md +227 -0
- package/agent/commands/acp.project-update.md +307 -0
- package/agent/commands/acp.projects-restore.md +228 -0
- package/agent/commands/acp.projects-sync.md +347 -0
- package/agent/commands/acp.report.md +407 -0
- package/agent/commands/acp.resume.md +239 -0
- package/agent/commands/acp.sessions.md +301 -0
- package/agent/commands/acp.status.md +293 -0
- package/agent/commands/acp.sync.md +364 -0
- package/agent/commands/acp.task-create.md +500 -0
- package/agent/commands/acp.update.md +302 -0
- package/agent/commands/acp.validate.md +466 -0
- package/agent/commands/acp.version-check-for-updates.md +276 -0
- package/agent/commands/acp.version-check.md +191 -0
- package/agent/commands/acp.version-update.md +289 -0
- package/agent/commands/command.template.md +339 -0
- package/agent/commands/git.commit.md +526 -0
- package/agent/commands/git.init.md +514 -0
- package/agent/commands/tanstack-cloudflare.deploy.md +272 -0
- package/agent/commands/tanstack-cloudflare.tail.md +275 -0
- package/agent/design/.gitkeep +0 -0
- package/agent/design/design.template.md +154 -0
- package/agent/design/local.dashboard-layout-routing.md +288 -0
- package/agent/design/local.data-model-yaml-parsing.md +310 -0
- package/agent/design/local.search-filtering.md +331 -0
- package/agent/design/local.server-api-auto-refresh.md +235 -0
- package/agent/design/local.table-tree-views.md +299 -0
- package/agent/design/local.visualizer-requirements.md +349 -0
- package/agent/design/requirements.template.md +387 -0
- package/agent/index/.gitkeep +0 -0
- package/agent/index/acp.core.yaml +137 -0
- package/agent/index/local.main.template.yaml +37 -0
- package/agent/manifest.template.yaml +13 -0
- package/agent/manifest.yaml +302 -0
- package/agent/milestones/.gitkeep +0 -0
- package/agent/milestones/milestone-1-project-scaffold-data-pipeline.md +67 -0
- package/agent/milestones/milestone-1-{title}.template.md +206 -0
- package/agent/milestones/milestone-2-dashboard-views-interaction.md +79 -0
- package/agent/package.template.yaml +86 -0
- package/agent/patterns/.gitkeep +0 -0
- package/agent/patterns/bootstrap.template.md +1237 -0
- package/agent/patterns/pattern.template.md +382 -0
- package/agent/patterns/tanstack-cloudflare.acl-permissions.md +332 -0
- package/agent/patterns/tanstack-cloudflare.action-bar-item.md +416 -0
- package/agent/patterns/tanstack-cloudflare.api-route-handlers.md +401 -0
- package/agent/patterns/tanstack-cloudflare.auth-session-management.md +387 -0
- package/agent/patterns/tanstack-cloudflare.card-and-list.md +271 -0
- package/agent/patterns/tanstack-cloudflare.chat-engine.md +353 -0
- package/agent/patterns/tanstack-cloudflare.confirmation-tokens.md +346 -0
- package/agent/patterns/tanstack-cloudflare.durable-objects-websocket.md +516 -0
- package/agent/patterns/tanstack-cloudflare.email-service.md +431 -0
- package/agent/patterns/tanstack-cloudflare.expander.md +98 -0
- package/agent/patterns/tanstack-cloudflare.fcm-push.md +115 -0
- package/agent/patterns/tanstack-cloudflare.firebase-anonymous-sessions.md +441 -0
- package/agent/patterns/tanstack-cloudflare.firebase-auth.md +348 -0
- package/agent/patterns/tanstack-cloudflare.firebase-firestore.md +550 -0
- package/agent/patterns/tanstack-cloudflare.firebase-storage.md +369 -0
- package/agent/patterns/tanstack-cloudflare.form-controls.md +145 -0
- package/agent/patterns/tanstack-cloudflare.global-search-context.md +93 -0
- package/agent/patterns/tanstack-cloudflare.image-carousel.md +126 -0
- package/agent/patterns/tanstack-cloudflare.library-services.md +553 -0
- package/agent/patterns/tanstack-cloudflare.lightbox.md +169 -0
- package/agent/patterns/tanstack-cloudflare.markdown-content.md +115 -0
- package/agent/patterns/tanstack-cloudflare.mention-suggestions.md +98 -0
- package/agent/patterns/tanstack-cloudflare.modal.md +156 -0
- package/agent/patterns/tanstack-cloudflare.nextjs-to-tanstack-routing.md +461 -0
- package/agent/patterns/tanstack-cloudflare.notifications-engine.md +151 -0
- package/agent/patterns/tanstack-cloudflare.oauth-token-refresh.md +90 -0
- package/agent/patterns/tanstack-cloudflare.og-metadata.md +296 -0
- package/agent/patterns/tanstack-cloudflare.pagination.md +442 -0
- package/agent/patterns/tanstack-cloudflare.pill-input.md +220 -0
- package/agent/patterns/tanstack-cloudflare.provider-adapter.md +401 -0
- package/agent/patterns/tanstack-cloudflare.rate-limiting.md +323 -0
- package/agent/patterns/tanstack-cloudflare.scheduled-tasks.md +338 -0
- package/agent/patterns/tanstack-cloudflare.searchable-settings.md +375 -0
- package/agent/patterns/tanstack-cloudflare.slide-over.md +129 -0
- package/agent/patterns/tanstack-cloudflare.ssr-preload.md +571 -0
- package/agent/patterns/tanstack-cloudflare.third-party-api-integration.md +508 -0
- package/agent/patterns/tanstack-cloudflare.toast-system.md +142 -0
- package/agent/patterns/tanstack-cloudflare.unified-header.md +280 -0
- package/agent/patterns/tanstack-cloudflare.user-scoped-collections.md +628 -0
- package/agent/patterns/tanstack-cloudflare.websocket-manager.md +237 -0
- package/agent/patterns/tanstack-cloudflare.wrangler-configuration.md +358 -0
- package/agent/patterns/tanstack-cloudflare.zod-schema-validation.md +336 -0
- package/agent/progress.template.yaml +161 -0
- package/agent/progress.yaml +145 -0
- package/agent/schemas/package.schema.yaml +276 -0
- package/agent/scripts/acp.common.sh +1781 -0
- package/agent/scripts/acp.install.sh +333 -0
- package/agent/scripts/acp.package-create.sh +924 -0
- package/agent/scripts/acp.package-info.sh +288 -0
- package/agent/scripts/acp.package-install.sh +893 -0
- package/agent/scripts/acp.package-list.sh +311 -0
- package/agent/scripts/acp.package-publish.sh +420 -0
- package/agent/scripts/acp.package-remove.sh +348 -0
- package/agent/scripts/acp.package-search.sh +156 -0
- package/agent/scripts/acp.package-update.sh +517 -0
- package/agent/scripts/acp.package-validate.sh +1018 -0
- package/agent/scripts/acp.uninstall.sh +85 -0
- package/agent/scripts/acp.version-check-for-updates.sh +98 -0
- package/agent/scripts/acp.version-check.sh +47 -0
- package/agent/scripts/acp.version-update.sh +176 -0
- package/agent/scripts/acp.yaml-parser.sh +985 -0
- package/agent/scripts/acp.yaml-validate.sh +205 -0
- package/agent/tasks/.gitkeep +0 -0
- package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-1-initialize-tanstack-start-project.md +210 -0
- package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-2-implement-data-model-yaml-parser.md +294 -0
- package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-3-build-server-api-data-loading.md +193 -0
- package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-4-add-auto-refresh-sse.md +262 -0
- package/agent/tasks/milestone-2-dashboard-views-interaction/task-10-polish-integration-testing.md +156 -0
- package/agent/tasks/milestone-2-dashboard-views-interaction/task-5-build-dashboard-layout-routing.md +178 -0
- package/agent/tasks/milestone-2-dashboard-views-interaction/task-6-build-overview-page.md +141 -0
- package/agent/tasks/milestone-2-dashboard-views-interaction/task-7-implement-milestone-table-view.md +153 -0
- package/agent/tasks/milestone-2-dashboard-views-interaction/task-8-implement-milestone-tree-view.md +174 -0
- package/agent/tasks/milestone-2-dashboard-views-interaction/task-9-implement-search-filtering.md +233 -0
- package/agent/tasks/task-1-{title}.template.md +244 -0
- package/bin/visualize.mjs +84 -0
- package/package.json +48 -0
- package/src/components/ExtraFieldsBadge.tsx +15 -0
- package/src/components/FilterBar.tsx +33 -0
- package/src/components/Header.tsx +23 -0
- package/src/components/MilestoneTable.tsx +167 -0
- package/src/components/MilestoneTree.tsx +84 -0
- package/src/components/ProgressBar.tsx +20 -0
- package/src/components/SearchInput.tsx +22 -0
- package/src/components/Sidebar.tsx +54 -0
- package/src/components/StatusBadge.tsx +23 -0
- package/src/components/StatusDot.tsx +12 -0
- package/src/components/TaskList.tsx +36 -0
- package/src/components/ViewToggle.tsx +31 -0
- package/src/lib/config.ts +8 -0
- package/src/lib/file-watcher.ts +43 -0
- package/src/lib/search.ts +48 -0
- package/src/lib/types.ts +73 -0
- package/src/lib/useAutoRefresh.ts +31 -0
- package/src/lib/useCollapse.ts +31 -0
- package/src/lib/useFilteredData.ts +55 -0
- package/src/lib/yaml-loader-real.spec.ts +47 -0
- package/src/lib/yaml-loader.spec.ts +201 -0
- package/src/lib/yaml-loader.ts +265 -0
- package/src/routeTree.gen.ts +140 -0
- package/src/router.tsx +10 -0
- package/src/routes/__root.tsx +75 -0
- package/src/routes/api/watch.ts +29 -0
- package/src/routes/index.tsx +115 -0
- package/src/routes/milestones.tsx +50 -0
- package/src/routes/search.tsx +84 -0
- package/src/routes/tasks.tsx +63 -0
- package/src/services/progress-database.service.ts +46 -0
- package/src/styles.css +25 -0
- package/tsconfig.json +24 -0
- package/vite.config.ts +16 -0
- 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 ""
|