@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,420 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# ACP Package Publishing Script
|
|
3
|
+
# Automated package publishing with validation, versioning, and testing
|
|
4
|
+
# Version: 1.0.0
|
|
5
|
+
|
|
6
|
+
set -e
|
|
7
|
+
|
|
8
|
+
# Source common utilities
|
|
9
|
+
SCRIPT_DIR="$(dirname "$0")"
|
|
10
|
+
. "${SCRIPT_DIR}/acp.common.sh"
|
|
11
|
+
. "${SCRIPT_DIR}/acp.yaml-parser.sh"
|
|
12
|
+
|
|
13
|
+
# Initialize colors
|
|
14
|
+
init_colors
|
|
15
|
+
|
|
16
|
+
# Check if we're in a package directory
|
|
17
|
+
if [ ! -f "package.yaml" ]; then
|
|
18
|
+
echo "${RED}Error: Not a package directory${NC}"
|
|
19
|
+
echo "package.yaml not found. This command must be run from an ACP package directory."
|
|
20
|
+
exit 1
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# Extract package info
|
|
24
|
+
PACKAGE_NAME=$(yaml_get "package.yaml" "name" 2>/dev/null || echo "unknown")
|
|
25
|
+
CURRENT_VERSION=$(yaml_get "package.yaml" "version" 2>/dev/null || echo "0.0.0")
|
|
26
|
+
REPO_URL=$(yaml_get "package.yaml" "repository" 2>/dev/null || echo "")
|
|
27
|
+
|
|
28
|
+
echo "${BLUE}๐ ACP Package Publishing${NC}"
|
|
29
|
+
echo "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
|
30
|
+
echo ""
|
|
31
|
+
echo "${BOLD}Package: ${PACKAGE_NAME} (v${CURRENT_VERSION})${NC}"
|
|
32
|
+
echo ""
|
|
33
|
+
|
|
34
|
+
# Step 1: Validation
|
|
35
|
+
echo "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
|
36
|
+
echo ""
|
|
37
|
+
echo "${BOLD}๐ Step 1: Validation${NC}"
|
|
38
|
+
echo ""
|
|
39
|
+
echo "Running @acp.package-validate..."
|
|
40
|
+
echo ""
|
|
41
|
+
|
|
42
|
+
if ! "${SCRIPT_DIR}/acp.package-validate.sh"; then
|
|
43
|
+
echo ""
|
|
44
|
+
echo "${RED}โ Package validation failed${NC}"
|
|
45
|
+
echo ""
|
|
46
|
+
echo "Fix validation errors and run @acp.package-publish again."
|
|
47
|
+
echo "Or use @acp.package-validate to see detailed errors."
|
|
48
|
+
exit 1
|
|
49
|
+
fi
|
|
50
|
+
|
|
51
|
+
echo ""
|
|
52
|
+
echo "${GREEN}โ
Package validation passed!${NC}"
|
|
53
|
+
echo ""
|
|
54
|
+
|
|
55
|
+
# Step 2: Check working directory
|
|
56
|
+
echo "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
|
57
|
+
echo ""
|
|
58
|
+
echo "${BOLD}๐ Step 2: Git Status${NC}"
|
|
59
|
+
echo ""
|
|
60
|
+
|
|
61
|
+
# Check for uncommitted changes
|
|
62
|
+
if [ -n "$(git status --porcelain)" ]; then
|
|
63
|
+
echo "${YELLOW}โ ๏ธ Uncommitted changes detected${NC}"
|
|
64
|
+
git status --short
|
|
65
|
+
echo ""
|
|
66
|
+
echo "${YELLOW}These changes will be committed as part of the release.${NC}"
|
|
67
|
+
echo ""
|
|
68
|
+
fi
|
|
69
|
+
|
|
70
|
+
# Check current branch
|
|
71
|
+
CURRENT_BRANCH=$(git branch --show-current)
|
|
72
|
+
echo "Current branch: ${BOLD}${CURRENT_BRANCH}${NC}"
|
|
73
|
+
|
|
74
|
+
# Validate branch
|
|
75
|
+
RELEASE_BRANCH=$(yaml_get "package.yaml" "release.branch" 2>/dev/null || echo "main")
|
|
76
|
+
VALID_BRANCHES="main master mainline release ${RELEASE_BRANCH}"
|
|
77
|
+
|
|
78
|
+
if ! echo "$VALID_BRANCHES" | grep -qw "$CURRENT_BRANCH"; then
|
|
79
|
+
echo ""
|
|
80
|
+
echo "${RED}โ Not on a valid release branch${NC}"
|
|
81
|
+
echo "Current: $CURRENT_BRANCH"
|
|
82
|
+
echo "Valid: $VALID_BRANCHES"
|
|
83
|
+
echo ""
|
|
84
|
+
echo "Switch to a release branch or configure in package.yaml:"
|
|
85
|
+
echo " release:"
|
|
86
|
+
echo " branch: $CURRENT_BRANCH"
|
|
87
|
+
exit 1
|
|
88
|
+
fi
|
|
89
|
+
|
|
90
|
+
echo "${GREEN}โ${NC} On valid release branch"
|
|
91
|
+
|
|
92
|
+
# Show remote
|
|
93
|
+
if [ -n "$REPO_URL" ]; then
|
|
94
|
+
echo "Remote: ${REPO_URL}"
|
|
95
|
+
fi
|
|
96
|
+
|
|
97
|
+
echo ""
|
|
98
|
+
|
|
99
|
+
# Step 3: Check remote status
|
|
100
|
+
echo "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
|
101
|
+
echo ""
|
|
102
|
+
echo "${BOLD}๐ Step 3: Remote Status${NC}"
|
|
103
|
+
echo ""
|
|
104
|
+
|
|
105
|
+
echo "Fetching latest from origin..."
|
|
106
|
+
if git fetch origin >/dev/null 2>&1; then
|
|
107
|
+
echo "${GREEN}โ${NC} Fetched latest from origin"
|
|
108
|
+
|
|
109
|
+
# Check if remote is ahead
|
|
110
|
+
COMMITS_BEHIND=$(git rev-list HEAD..origin/${CURRENT_BRANCH} --count 2>/dev/null || echo "0")
|
|
111
|
+
if [ "$COMMITS_BEHIND" -gt 0 ]; then
|
|
112
|
+
echo ""
|
|
113
|
+
echo "${RED}โ Remote is ahead of local${NC}"
|
|
114
|
+
echo "Remote has $COMMITS_BEHIND commit(s) not in local."
|
|
115
|
+
echo ""
|
|
116
|
+
echo "Pull latest changes first:"
|
|
117
|
+
echo " git pull"
|
|
118
|
+
exit 1
|
|
119
|
+
fi
|
|
120
|
+
|
|
121
|
+
echo "${GREEN}โ${NC} Local is up to date with remote"
|
|
122
|
+
else
|
|
123
|
+
echo "${YELLOW}โ ๏ธ Could not fetch from remote${NC}"
|
|
124
|
+
echo "Continuing anyway (remote may not exist yet)..."
|
|
125
|
+
fi
|
|
126
|
+
|
|
127
|
+
echo ""
|
|
128
|
+
|
|
129
|
+
# Step 4: Analyze commits for version bump
|
|
130
|
+
echo "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
|
131
|
+
echo ""
|
|
132
|
+
echo "${BOLD}๐ Step 4: Version Analysis${NC}"
|
|
133
|
+
echo ""
|
|
134
|
+
|
|
135
|
+
# Get last tag
|
|
136
|
+
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
|
|
137
|
+
if [ -z "$LAST_TAG" ]; then
|
|
138
|
+
echo "No previous tags found. This will be the first release."
|
|
139
|
+
LAST_TAG="HEAD~999" # Get all commits
|
|
140
|
+
COMMIT_COUNT=$(git rev-list HEAD --count)
|
|
141
|
+
else
|
|
142
|
+
echo "Last release: ${LAST_TAG}"
|
|
143
|
+
COMMIT_COUNT=$(git rev-list ${LAST_TAG}..HEAD --count)
|
|
144
|
+
fi
|
|
145
|
+
|
|
146
|
+
echo "Commits since last release: ${COMMIT_COUNT}"
|
|
147
|
+
echo ""
|
|
148
|
+
|
|
149
|
+
if [ "$COMMIT_COUNT" -eq 0 ]; then
|
|
150
|
+
echo "${RED}โ No commits since last release${NC}"
|
|
151
|
+
echo "Nothing to publish."
|
|
152
|
+
exit 1
|
|
153
|
+
fi
|
|
154
|
+
|
|
155
|
+
# Analyze commits
|
|
156
|
+
echo "Commit analysis:"
|
|
157
|
+
HAS_BREAKING=false
|
|
158
|
+
HAS_FEAT=false
|
|
159
|
+
HAS_FIX=false
|
|
160
|
+
|
|
161
|
+
while IFS= read -r commit; do
|
|
162
|
+
echo " - $commit"
|
|
163
|
+
|
|
164
|
+
# Check for breaking changes
|
|
165
|
+
if echo "$commit" | grep -qiE "(BREAKING CHANGE|feat!:|fix!:)"; then
|
|
166
|
+
HAS_BREAKING=true
|
|
167
|
+
fi
|
|
168
|
+
|
|
169
|
+
# Check for features
|
|
170
|
+
if echo "$commit" | grep -qE "^feat(\(|:)"; then
|
|
171
|
+
HAS_FEAT=true
|
|
172
|
+
fi
|
|
173
|
+
|
|
174
|
+
# Check for fixes
|
|
175
|
+
if echo "$commit" | grep -qE "^fix(\(|:)"; then
|
|
176
|
+
HAS_FIX=true
|
|
177
|
+
fi
|
|
178
|
+
done < <(git log ${LAST_TAG}..HEAD --oneline)
|
|
179
|
+
|
|
180
|
+
echo ""
|
|
181
|
+
|
|
182
|
+
# Determine version bump
|
|
183
|
+
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION"
|
|
184
|
+
|
|
185
|
+
if [ "$HAS_BREAKING" = true ]; then
|
|
186
|
+
NEW_MAJOR=$((MAJOR + 1))
|
|
187
|
+
NEW_MINOR=0
|
|
188
|
+
NEW_PATCH=0
|
|
189
|
+
BUMP_TYPE="major"
|
|
190
|
+
BUMP_REASON="Breaking changes detected"
|
|
191
|
+
elif [ "$HAS_FEAT" = true ]; then
|
|
192
|
+
NEW_MAJOR=$MAJOR
|
|
193
|
+
NEW_MINOR=$((MINOR + 1))
|
|
194
|
+
NEW_PATCH=0
|
|
195
|
+
BUMP_TYPE="minor"
|
|
196
|
+
BUMP_REASON="New features added"
|
|
197
|
+
else
|
|
198
|
+
NEW_MAJOR=$MAJOR
|
|
199
|
+
NEW_MINOR=$MINOR
|
|
200
|
+
NEW_PATCH=$((PATCH + 1))
|
|
201
|
+
BUMP_TYPE="patch"
|
|
202
|
+
BUMP_REASON="Bug fixes or improvements"
|
|
203
|
+
fi
|
|
204
|
+
|
|
205
|
+
NEW_VERSION="${NEW_MAJOR}.${NEW_MINOR}.${NEW_PATCH}"
|
|
206
|
+
|
|
207
|
+
echo "Recommendation: ${BOLD}${NEW_VERSION}${NC} (${BUMP_TYPE})"
|
|
208
|
+
echo "Reason: ${BUMP_REASON}"
|
|
209
|
+
echo ""
|
|
210
|
+
|
|
211
|
+
# Step 5: Confirm version
|
|
212
|
+
echo "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
|
213
|
+
echo ""
|
|
214
|
+
echo "${BOLD}โ Step 5: Confirm Version${NC}"
|
|
215
|
+
echo ""
|
|
216
|
+
echo "Publish as version ${BOLD}${NEW_VERSION}${NC}? (Y/n/custom)"
|
|
217
|
+
read -r response
|
|
218
|
+
|
|
219
|
+
case "$response" in
|
|
220
|
+
n|N|no|No|NO)
|
|
221
|
+
echo "Publishing cancelled."
|
|
222
|
+
exit 0
|
|
223
|
+
;;
|
|
224
|
+
custom|c|C)
|
|
225
|
+
echo "Enter custom version (X.Y.Z format):"
|
|
226
|
+
read -r NEW_VERSION
|
|
227
|
+
if ! echo "$NEW_VERSION" | grep -qE "^[0-9]+\.[0-9]+\.[0-9]+$"; then
|
|
228
|
+
echo "${RED}Error: Invalid version format${NC}"
|
|
229
|
+
exit 1
|
|
230
|
+
fi
|
|
231
|
+
;;
|
|
232
|
+
*)
|
|
233
|
+
# Use recommended version
|
|
234
|
+
;;
|
|
235
|
+
esac
|
|
236
|
+
|
|
237
|
+
echo ""
|
|
238
|
+
echo "${GREEN}โ${NC} Publishing version: ${BOLD}${NEW_VERSION}${NC}"
|
|
239
|
+
echo ""
|
|
240
|
+
|
|
241
|
+
# Step 6: Generate CHANGELOG (LLM-based - placeholder for now)
|
|
242
|
+
echo "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
|
243
|
+
echo ""
|
|
244
|
+
echo "${BOLD}๐ Step 6: CHANGELOG Generation${NC}"
|
|
245
|
+
echo ""
|
|
246
|
+
echo "${YELLOW}Note: CHANGELOG generation requires LLM context.${NC}"
|
|
247
|
+
echo "When run via agent, CHANGELOG will be generated automatically."
|
|
248
|
+
echo "For now, please update CHANGELOG.md manually."
|
|
249
|
+
echo ""
|
|
250
|
+
echo "Press Enter to continue after updating CHANGELOG.md..."
|
|
251
|
+
read -r
|
|
252
|
+
|
|
253
|
+
# Step 7: Update version files
|
|
254
|
+
echo "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
|
255
|
+
echo ""
|
|
256
|
+
echo "${BOLD}โ๏ธ Step 7: Updating Version Files${NC}"
|
|
257
|
+
echo ""
|
|
258
|
+
|
|
259
|
+
# Update package.yaml version
|
|
260
|
+
if command -v sed >/dev/null 2>&1; then
|
|
261
|
+
sed -i.bak "s/^version: .*/version: ${NEW_VERSION}/" package.yaml && rm package.yaml.bak
|
|
262
|
+
echo "${GREEN}โ${NC} Updated package.yaml (${CURRENT_VERSION} โ ${NEW_VERSION})"
|
|
263
|
+
else
|
|
264
|
+
echo "${YELLOW}โ ๏ธ Please update package.yaml version manually to ${NEW_VERSION}${NC}"
|
|
265
|
+
fi
|
|
266
|
+
|
|
267
|
+
echo ""
|
|
268
|
+
|
|
269
|
+
# Step 8: Commit changes
|
|
270
|
+
echo "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
|
271
|
+
echo ""
|
|
272
|
+
echo "${BOLD}๐พ Step 8: Committing Changes${NC}"
|
|
273
|
+
echo ""
|
|
274
|
+
|
|
275
|
+
git add package.yaml CHANGELOG.md
|
|
276
|
+
COMMIT_MSG="chore(release): bump version to ${NEW_VERSION}
|
|
277
|
+
|
|
278
|
+
Updated package.yaml and CHANGELOG.md for release.
|
|
279
|
+
|
|
280
|
+
Version: ${NEW_VERSION}"
|
|
281
|
+
|
|
282
|
+
git commit -m "$COMMIT_MSG"
|
|
283
|
+
COMMIT_HASH=$(git rev-parse --short HEAD)
|
|
284
|
+
|
|
285
|
+
echo "${GREEN}โ${NC} Committed: chore(release): bump version to ${NEW_VERSION}"
|
|
286
|
+
echo "${GREEN}โ${NC} Commit hash: ${COMMIT_HASH}"
|
|
287
|
+
echo ""
|
|
288
|
+
|
|
289
|
+
# Step 9: Create git tag
|
|
290
|
+
echo "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
|
291
|
+
echo ""
|
|
292
|
+
echo "${BOLD}๐ท๏ธ Step 9: Creating Git Tag${NC}"
|
|
293
|
+
echo ""
|
|
294
|
+
|
|
295
|
+
TAG_NAME="v${NEW_VERSION}"
|
|
296
|
+
TAG_MSG="Release v${NEW_VERSION}"
|
|
297
|
+
|
|
298
|
+
if git tag -a "$TAG_NAME" -m "$TAG_MSG"; then
|
|
299
|
+
echo "${GREEN}โ${NC} Created tag: ${TAG_NAME}"
|
|
300
|
+
echo "${GREEN}โ${NC} Tag message: ${TAG_MSG}"
|
|
301
|
+
else
|
|
302
|
+
echo "${RED}โ Failed to create tag${NC}"
|
|
303
|
+
echo "Tag may already exist. Delete it first if needed:"
|
|
304
|
+
echo " git tag -d ${TAG_NAME}"
|
|
305
|
+
exit 1
|
|
306
|
+
fi
|
|
307
|
+
|
|
308
|
+
echo ""
|
|
309
|
+
|
|
310
|
+
# Step 10: Push to remote
|
|
311
|
+
echo "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
|
312
|
+
echo ""
|
|
313
|
+
echo "${BOLD}๐ Step 10: Pushing to Remote${NC}"
|
|
314
|
+
echo ""
|
|
315
|
+
|
|
316
|
+
echo "Pushing commits to origin/${CURRENT_BRANCH}..."
|
|
317
|
+
if git push origin "$CURRENT_BRANCH"; then
|
|
318
|
+
echo "${GREEN}โ${NC} Pushed commits to origin/${CURRENT_BRANCH}"
|
|
319
|
+
else
|
|
320
|
+
echo "${RED}โ Failed to push commits${NC}"
|
|
321
|
+
exit 1
|
|
322
|
+
fi
|
|
323
|
+
|
|
324
|
+
echo "Pushing tag ${TAG_NAME}..."
|
|
325
|
+
if git push origin "$TAG_NAME"; then
|
|
326
|
+
echo "${GREEN}โ${NC} Pushed tag ${TAG_NAME}"
|
|
327
|
+
else
|
|
328
|
+
echo "${RED}โ Failed to push tag${NC}"
|
|
329
|
+
exit 1
|
|
330
|
+
fi
|
|
331
|
+
|
|
332
|
+
if [ -n "$REPO_URL" ]; then
|
|
333
|
+
echo "Remote: ${REPO_URL}"
|
|
334
|
+
fi
|
|
335
|
+
|
|
336
|
+
echo ""
|
|
337
|
+
|
|
338
|
+
# Step 11: Wait for GitHub
|
|
339
|
+
echo "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
|
340
|
+
echo ""
|
|
341
|
+
echo "${BOLD}โณ Step 11: Waiting for GitHub${NC}"
|
|
342
|
+
echo ""
|
|
343
|
+
echo "Waiting for GitHub to process push... (10 seconds)"
|
|
344
|
+
sleep 10
|
|
345
|
+
echo "${GREEN}โ${NC} Ready to test"
|
|
346
|
+
echo ""
|
|
347
|
+
|
|
348
|
+
# Step 12: Test installation from remote
|
|
349
|
+
echo "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
|
350
|
+
echo ""
|
|
351
|
+
echo "${BOLD}๐งช Step 12: Test Installation${NC}"
|
|
352
|
+
echo ""
|
|
353
|
+
|
|
354
|
+
TEST_DIR="/tmp/acp-publish-test-$(date +%s)"
|
|
355
|
+
echo "Creating test directory: ${TEST_DIR}"
|
|
356
|
+
mkdir -p "$TEST_DIR/agent/"{patterns,commands,design}
|
|
357
|
+
|
|
358
|
+
# Create minimal manifest
|
|
359
|
+
cat > "$TEST_DIR/agent/manifest.yaml" << 'EOF'
|
|
360
|
+
packages: {}
|
|
361
|
+
manifest_version: 1.0.0
|
|
362
|
+
last_updated: null
|
|
363
|
+
EOF
|
|
364
|
+
|
|
365
|
+
echo "${GREEN}โ${NC} Test directory created"
|
|
366
|
+
echo ""
|
|
367
|
+
|
|
368
|
+
# Get current directory for install script
|
|
369
|
+
CURRENT_DIR=$(pwd)
|
|
370
|
+
|
|
371
|
+
# Try to install from remote
|
|
372
|
+
echo "Installing from remote: ${REPO_URL}"
|
|
373
|
+
cd "$TEST_DIR"
|
|
374
|
+
|
|
375
|
+
if "${CURRENT_DIR}/agent/scripts/acp.package-install.sh" "$REPO_URL" --yes >/dev/null 2>&1; then
|
|
376
|
+
echo "${GREEN}โ${NC} Package installed successfully"
|
|
377
|
+
|
|
378
|
+
# Verify installation
|
|
379
|
+
INSTALLED_FILES=$(find agent/ -name "*.md" -not -name "*.template.md" 2>/dev/null | wc -l)
|
|
380
|
+
echo "${GREEN}โ${NC} Verified ${INSTALLED_FILES} file(s) copied"
|
|
381
|
+
|
|
382
|
+
# Check manifest
|
|
383
|
+
if grep -q "$PACKAGE_NAME:" agent/manifest.yaml 2>/dev/null; then
|
|
384
|
+
echo "${GREEN}โ${NC} Manifest updated correctly"
|
|
385
|
+
fi
|
|
386
|
+
else
|
|
387
|
+
echo "${RED}โ Package installation failed${NC}"
|
|
388
|
+
echo ""
|
|
389
|
+
echo "${YELLOW}This may indicate issues with the published package.${NC}"
|
|
390
|
+
echo "Check repository and try installing manually."
|
|
391
|
+
fi
|
|
392
|
+
|
|
393
|
+
# Cleanup
|
|
394
|
+
cd "$CURRENT_DIR"
|
|
395
|
+
rm -rf "$TEST_DIR"
|
|
396
|
+
echo "${GREEN}โ${NC} Test directory cleaned up"
|
|
397
|
+
echo ""
|
|
398
|
+
|
|
399
|
+
# Step 13: Final report
|
|
400
|
+
echo "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
|
401
|
+
echo ""
|
|
402
|
+
echo "${GREEN}${BOLD}โ
Publishing Complete!${NC}"
|
|
403
|
+
echo ""
|
|
404
|
+
echo "๐ฆ Package: ${BOLD}${PACKAGE_NAME} v${NEW_VERSION}${NC}"
|
|
405
|
+
echo "๐ Repository: ${REPO_URL}"
|
|
406
|
+
echo "๐ท๏ธ Tag: ${TAG_NAME}"
|
|
407
|
+
echo "โ
Test Installation: PASSED"
|
|
408
|
+
echo ""
|
|
409
|
+
echo "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
|
410
|
+
echo ""
|
|
411
|
+
echo "${GREEN}${BOLD}๐ Your package is now live!${NC}"
|
|
412
|
+
echo ""
|
|
413
|
+
echo "Users can install it with:"
|
|
414
|
+
echo " ${BOLD}@acp.package-install ${REPO_URL}${NC}"
|
|
415
|
+
echo ""
|
|
416
|
+
echo "Next steps:"
|
|
417
|
+
echo " - Announce release to users"
|
|
418
|
+
echo " - Monitor for issues"
|
|
419
|
+
echo " - Update documentation if needed"
|
|
420
|
+
echo ""
|