@prmichaelsen/remember-mcp 2.7.10 → 2.8.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 +6 -0
- package/AGENT.md +224 -21
- package/CHANGELOG.md +47 -912
- package/README.md +35 -0
- package/agent/commands/acp.command-create.md +373 -0
- package/agent/commands/acp.design-create.md +225 -0
- package/agent/commands/acp.init.md +40 -5
- 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 +207 -33
- 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 +327 -0
- package/agent/commands/acp.plan.md +553 -0
- package/agent/commands/acp.proceed.md +112 -86
- package/agent/commands/acp.project-create.md +673 -0
- package/agent/commands/acp.project-list.md +225 -0
- package/agent/commands/acp.project-set.md +227 -0
- package/agent/commands/acp.report.md +3 -0
- package/agent/commands/acp.resume.md +238 -0
- package/agent/commands/acp.status.md +1 -0
- package/agent/commands/acp.sync.md +56 -15
- package/agent/commands/acp.task-create.md +391 -0
- package/agent/commands/acp.update.md +1 -0
- package/agent/commands/acp.validate.md +62 -10
- package/agent/commands/acp.version-check-for-updates.md +6 -5
- package/agent/commands/acp.version-check.md +7 -6
- package/agent/commands/acp.version-update.md +7 -6
- package/agent/commands/command.template.md +48 -0
- package/agent/commands/git.commit.md +6 -3
- package/agent/commands/git.init.md +1 -0
- package/agent/manifest.template.yaml +13 -0
- package/agent/package.template.yaml +53 -0
- package/agent/progress.template.yaml +3 -0
- package/agent/progress.yaml +103 -5
- package/agent/scripts/acp.common.sh +1536 -0
- package/agent/scripts/acp.install.sh +293 -0
- package/agent/scripts/acp.package-create.sh +925 -0
- package/agent/scripts/acp.package-info.sh +270 -0
- package/agent/scripts/acp.package-install.sh +675 -0
- package/agent/scripts/acp.package-list.sh +263 -0
- package/agent/scripts/acp.package-publish.sh +420 -0
- package/agent/scripts/acp.package-remove.sh +272 -0
- package/agent/scripts/acp.package-search.sh +156 -0
- package/agent/scripts/acp.package-update.sh +438 -0
- package/agent/scripts/acp.package-validate.sh +954 -0
- package/agent/scripts/acp.project-list.sh +121 -0
- package/agent/scripts/acp.project-set.sh +138 -0
- package/agent/scripts/{uninstall.sh → acp.uninstall.sh} +25 -15
- package/agent/scripts/{check-for-updates.sh → acp.version-check-for-updates.sh} +24 -14
- package/agent/scripts/{version.sh → acp.version-check.sh} +20 -8
- package/agent/scripts/{update.sh → acp.version-update.sh} +44 -25
- package/agent/scripts/acp.yaml-parser.sh +853 -0
- package/agent/scripts/acp.yaml-validate.sh +205 -0
- package/agent/tasks/task-68-fix-missing-space-properties.md +192 -0
- package/agent/tasks/task-69-add-comprehensive-tool-debugging.md +454 -0
- package/dist/config.d.ts +18 -0
- package/dist/server-factory.js +296 -19
- package/dist/server.js +296 -19
- package/dist/utils/debug.d.ts +52 -0
- package/dist/utils/debug.spec.d.ts +5 -0
- package/dist/weaviate/client.d.ts +1 -1
- package/package.json +1 -1
- package/src/config.ts +33 -0
- package/src/tools/confirm.ts +70 -7
- package/src/tools/publish.ts +19 -1
- package/src/tools/query-space.ts +36 -3
- package/src/tools/search-space.ts +36 -3
- package/src/utils/debug.spec.ts +257 -0
- package/src/utils/debug.ts +138 -0
- package/src/weaviate/client.ts +42 -3
- package/agent/scripts/install.sh +0 -157
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# List projects from registry with filtering
|
|
3
|
+
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
# Source utilities
|
|
7
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
8
|
+
source "${SCRIPT_DIR}/acp.common.sh"
|
|
9
|
+
|
|
10
|
+
# Initialize colors
|
|
11
|
+
init_colors
|
|
12
|
+
|
|
13
|
+
# Parse arguments
|
|
14
|
+
TYPE_FILTER=""
|
|
15
|
+
STATUS_FILTER=""
|
|
16
|
+
TAGS_FILTER=""
|
|
17
|
+
|
|
18
|
+
while [ $# -gt 0 ]; do
|
|
19
|
+
case "$1" in
|
|
20
|
+
--type)
|
|
21
|
+
TYPE_FILTER="$2"
|
|
22
|
+
shift 2
|
|
23
|
+
;;
|
|
24
|
+
--status)
|
|
25
|
+
STATUS_FILTER="$2"
|
|
26
|
+
shift 2
|
|
27
|
+
;;
|
|
28
|
+
--tags)
|
|
29
|
+
TAGS_FILTER="$2"
|
|
30
|
+
shift 2
|
|
31
|
+
;;
|
|
32
|
+
*)
|
|
33
|
+
echo "${RED}Error: Unknown option: $1${NC}"
|
|
34
|
+
exit 1
|
|
35
|
+
;;
|
|
36
|
+
esac
|
|
37
|
+
done
|
|
38
|
+
|
|
39
|
+
# Get registry path
|
|
40
|
+
REGISTRY_PATH=$(get_projects_registry_path)
|
|
41
|
+
|
|
42
|
+
# Check if registry exists
|
|
43
|
+
if ! projects_registry_exists; then
|
|
44
|
+
echo "${YELLOW}No projects registry found${NC}"
|
|
45
|
+
echo ""
|
|
46
|
+
echo "Create projects with: @acp.project-create"
|
|
47
|
+
exit 0
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
# Get current project
|
|
51
|
+
CURRENT_PROJECT=$(get_current_project)
|
|
52
|
+
|
|
53
|
+
# Source YAML parser
|
|
54
|
+
source_yaml_parser
|
|
55
|
+
|
|
56
|
+
# Parse registry
|
|
57
|
+
yaml_parse "$REGISTRY_PATH"
|
|
58
|
+
|
|
59
|
+
# Get all project names using yaml_query
|
|
60
|
+
PROJECT_NAMES=$(yaml_query ".projects" | grep -E "^[a-z0-9-]+:" | sed 's/:$//' || true)
|
|
61
|
+
|
|
62
|
+
# Count projects
|
|
63
|
+
TOTAL_COUNT=0
|
|
64
|
+
DISPLAYED_COUNT=0
|
|
65
|
+
|
|
66
|
+
# Display header
|
|
67
|
+
echo ""
|
|
68
|
+
echo "${BOLD}📁 Projects in ~/.acp/projects/${NC}"
|
|
69
|
+
echo ""
|
|
70
|
+
|
|
71
|
+
# Check if any projects exist
|
|
72
|
+
if [ -z "$PROJECT_NAMES" ]; then
|
|
73
|
+
echo "${YELLOW}No projects registered yet${NC}"
|
|
74
|
+
echo ""
|
|
75
|
+
echo "Create projects with: @acp.project-create"
|
|
76
|
+
exit 0
|
|
77
|
+
fi
|
|
78
|
+
|
|
79
|
+
# Iterate through projects
|
|
80
|
+
for project_name in $PROJECT_NAMES; do
|
|
81
|
+
TOTAL_COUNT=$((TOTAL_COUNT + 1))
|
|
82
|
+
|
|
83
|
+
# Get project metadata
|
|
84
|
+
project_type=$(yaml_query ".projects.${project_name}.type" || echo "unknown")
|
|
85
|
+
project_status=$(yaml_query ".projects.${project_name}.status" || echo "unknown")
|
|
86
|
+
project_desc=$(yaml_query ".projects.${project_name}.description" || echo "No description")
|
|
87
|
+
project_accessed=$(yaml_query ".projects.${project_name}.last_accessed" || echo "Never")
|
|
88
|
+
|
|
89
|
+
# Apply filters
|
|
90
|
+
if [ -n "$TYPE_FILTER" ] && [ "$project_type" != "$TYPE_FILTER" ]; then
|
|
91
|
+
continue
|
|
92
|
+
fi
|
|
93
|
+
|
|
94
|
+
if [ -n "$STATUS_FILTER" ] && [ "$project_status" != "$STATUS_FILTER" ]; then
|
|
95
|
+
continue
|
|
96
|
+
fi
|
|
97
|
+
|
|
98
|
+
# TODO: Tag filtering (requires array parsing)
|
|
99
|
+
|
|
100
|
+
# Display project
|
|
101
|
+
DISPLAYED_COUNT=$((DISPLAYED_COUNT + 1))
|
|
102
|
+
|
|
103
|
+
# Mark current project
|
|
104
|
+
if [ "$project_name" = "$CURRENT_PROJECT" ]; then
|
|
105
|
+
echo "${BOLD}${project_name}${NC} (${project_type}) - ${project_status} ${YELLOW}⭐ Current${NC}"
|
|
106
|
+
else
|
|
107
|
+
echo "${BOLD}${project_name}${NC} (${project_type}) - ${project_status}"
|
|
108
|
+
fi
|
|
109
|
+
|
|
110
|
+
echo " ${project_desc}"
|
|
111
|
+
echo " Last accessed: ${project_accessed}"
|
|
112
|
+
echo ""
|
|
113
|
+
done
|
|
114
|
+
|
|
115
|
+
# Summary
|
|
116
|
+
if [ $DISPLAYED_COUNT -eq 0 ]; then
|
|
117
|
+
echo "${YELLOW}No projects match filters${NC}"
|
|
118
|
+
else
|
|
119
|
+
echo "${GREEN}Showing ${DISPLAYED_COUNT} of ${TOTAL_COUNT} projects${NC}"
|
|
120
|
+
fi
|
|
121
|
+
echo ""
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# ACP Project Set - Switch to a different project
|
|
3
|
+
# Sets current project in registry and changes to project directory
|
|
4
|
+
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
# Get script directory
|
|
8
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
9
|
+
|
|
10
|
+
# Source common utilities
|
|
11
|
+
source "${SCRIPT_DIR}/acp.common.sh"
|
|
12
|
+
|
|
13
|
+
# Source YAML parser
|
|
14
|
+
source_yaml_parser
|
|
15
|
+
|
|
16
|
+
# Usage information
|
|
17
|
+
usage() {
|
|
18
|
+
cat << EOF
|
|
19
|
+
Usage: acp.project-set.sh <project-name>
|
|
20
|
+
|
|
21
|
+
Switch to a different project in the global registry.
|
|
22
|
+
|
|
23
|
+
Arguments:
|
|
24
|
+
project-name Name of the project to switch to
|
|
25
|
+
|
|
26
|
+
Examples:
|
|
27
|
+
acp.project-set.sh remember-mcp-server
|
|
28
|
+
acp.project-set.sh agentbase-mcp-server
|
|
29
|
+
|
|
30
|
+
EOF
|
|
31
|
+
exit 1
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
# Main function
|
|
35
|
+
main() {
|
|
36
|
+
local project_name="$1"
|
|
37
|
+
|
|
38
|
+
# Get registry path
|
|
39
|
+
local registry_path=$(get_projects_registry_path)
|
|
40
|
+
|
|
41
|
+
# Check if registry exists
|
|
42
|
+
if [ ! -f "$registry_path" ]; then
|
|
43
|
+
echo "Error: Project registry not found at: $registry_path"
|
|
44
|
+
echo "Run '@acp.project-create' to create your first project"
|
|
45
|
+
exit 1
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
# Parse registry (sets global AST)
|
|
49
|
+
yaml_parse "$registry_path"
|
|
50
|
+
|
|
51
|
+
# Check if project exists in registry
|
|
52
|
+
local project_path=$(yaml_query ".projects.${project_name}.path" 2>/dev/null || echo "")
|
|
53
|
+
|
|
54
|
+
if [ -z "$project_path" ]; then
|
|
55
|
+
echo "Error: Project '${project_name}' not found in registry"
|
|
56
|
+
echo ""
|
|
57
|
+
echo "Available projects:"
|
|
58
|
+
|
|
59
|
+
# List available projects
|
|
60
|
+
local projects=$(yaml_query ".projects" 2>/dev/null | grep -E "^[a-zA-Z0-9_-]+:" | sed 's/:$//' || echo "")
|
|
61
|
+
|
|
62
|
+
if [ -n "$projects" ]; then
|
|
63
|
+
echo "$projects" | while read -r proj; do
|
|
64
|
+
echo " - $proj"
|
|
65
|
+
done
|
|
66
|
+
else
|
|
67
|
+
echo " (none)"
|
|
68
|
+
fi
|
|
69
|
+
|
|
70
|
+
echo ""
|
|
71
|
+
echo "Run '@acp.project-list' to see all projects"
|
|
72
|
+
exit 1
|
|
73
|
+
fi
|
|
74
|
+
|
|
75
|
+
# Expand tilde in path
|
|
76
|
+
project_path="${project_path/#\~/$HOME}"
|
|
77
|
+
|
|
78
|
+
# Validate project directory exists
|
|
79
|
+
if [ ! -d "$project_path" ]; then
|
|
80
|
+
echo "Error: Project directory not found: $project_path"
|
|
81
|
+
echo "Project may have been moved or deleted"
|
|
82
|
+
echo ""
|
|
83
|
+
echo "To fix:"
|
|
84
|
+
echo " 1. Update project path: @acp.project-update ${project_name} --path <new-path>"
|
|
85
|
+
echo " 2. Or remove from registry: @acp.project-remove ${project_name}"
|
|
86
|
+
exit 1
|
|
87
|
+
fi
|
|
88
|
+
|
|
89
|
+
# Get project metadata
|
|
90
|
+
local project_type=$(yaml_query ".projects.${project_name}.type")
|
|
91
|
+
local project_description=$(yaml_query ".projects.${project_name}.description")
|
|
92
|
+
|
|
93
|
+
# Re-parse for yaml_set operations (yaml_query cleans up AST)
|
|
94
|
+
yaml_parse "$registry_path"
|
|
95
|
+
|
|
96
|
+
# Update current_project in registry
|
|
97
|
+
yaml_set "current_project" "$project_name"
|
|
98
|
+
|
|
99
|
+
# Update last_accessed timestamp
|
|
100
|
+
local timestamp=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
|
101
|
+
yaml_set "projects.${project_name}.last_accessed" "$timestamp"
|
|
102
|
+
|
|
103
|
+
# Update registry last_updated
|
|
104
|
+
yaml_set "last_updated" "$timestamp"
|
|
105
|
+
|
|
106
|
+
# Write changes
|
|
107
|
+
yaml_write "$registry_path"
|
|
108
|
+
|
|
109
|
+
# Report success
|
|
110
|
+
echo "✓ Switched to project: ${project_name}"
|
|
111
|
+
echo " Path: ${project_path}"
|
|
112
|
+
echo " Type: ${project_type}"
|
|
113
|
+
if [ -n "$project_description" ]; then
|
|
114
|
+
echo " Description: ${project_description}"
|
|
115
|
+
fi
|
|
116
|
+
echo ""
|
|
117
|
+
echo "You are now in the project directory. All file operations will be relative to:"
|
|
118
|
+
echo " ${project_path}"
|
|
119
|
+
echo ""
|
|
120
|
+
echo "Run '@acp.init' to load project context"
|
|
121
|
+
|
|
122
|
+
# Change to project directory (only if running interactively, not in tests)
|
|
123
|
+
# Note: cd in a script only affects the script's process, not the parent shell
|
|
124
|
+
# For interactive use, this script should be sourced or wrapped
|
|
125
|
+
if [ -t 0 ]; then
|
|
126
|
+
cd "$project_path" 2>/dev/null || true
|
|
127
|
+
fi
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
# Parse arguments
|
|
131
|
+
if [ $# -eq 0 ]; then
|
|
132
|
+
usage
|
|
133
|
+
fi
|
|
134
|
+
|
|
135
|
+
PROJECT_NAME="$1"
|
|
136
|
+
|
|
137
|
+
# Run main function
|
|
138
|
+
main "$PROJECT_NAME"
|
|
@@ -2,16 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
# Agent Context Protocol (ACP) Uninstall Script
|
|
4
4
|
# This script removes all ACP files from a project
|
|
5
|
-
# Usage: ./agent/scripts/
|
|
5
|
+
# Usage: ./agent/scripts/unacp.install.sh [-y]
|
|
6
6
|
|
|
7
7
|
set -e
|
|
8
8
|
|
|
9
|
-
# Colors for output
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
# Colors for output using tput (more reliable than ANSI codes)
|
|
10
|
+
if command -v tput >/dev/null 2>&1 && [ -t 1 ]; then
|
|
11
|
+
RED=$(tput setaf 1)
|
|
12
|
+
GREEN=$(tput setaf 2)
|
|
13
|
+
YELLOW=$(tput setaf 3)
|
|
14
|
+
BLUE=$(tput setaf 4)
|
|
15
|
+
BOLD=$(tput bold)
|
|
16
|
+
NC=$(tput sgr0)
|
|
17
|
+
else
|
|
18
|
+
RED=''
|
|
19
|
+
GREEN=''
|
|
20
|
+
YELLOW=''
|
|
21
|
+
BLUE=''
|
|
22
|
+
BOLD=''
|
|
23
|
+
NC=''
|
|
24
|
+
fi
|
|
15
25
|
|
|
16
26
|
# Check for -y flag
|
|
17
27
|
AUTO_CONFIRM=false
|
|
@@ -19,24 +29,24 @@ if [ "$1" = "-y" ]; then
|
|
|
19
29
|
AUTO_CONFIRM=true
|
|
20
30
|
fi
|
|
21
31
|
|
|
22
|
-
echo
|
|
32
|
+
echo "${YELLOW}Agent Context Protocol (ACP) Uninstall${NC}"
|
|
23
33
|
echo "======================================"
|
|
24
34
|
echo ""
|
|
25
35
|
|
|
26
36
|
# Check if agent directory exists
|
|
27
37
|
if [ ! -d "agent" ] && [ ! -f "AGENT.md" ]; then
|
|
28
|
-
echo
|
|
38
|
+
echo "${YELLOW}No ACP files found in current directory${NC}"
|
|
29
39
|
exit 0
|
|
30
40
|
fi
|
|
31
41
|
|
|
32
42
|
# If not auto-confirmed, show instructions for agents
|
|
33
43
|
if [ "$AUTO_CONFIRM" = false ]; then
|
|
34
|
-
echo
|
|
44
|
+
echo "${BLUE}Note for AI Agents:${NC}"
|
|
35
45
|
echo "This script requires user confirmation to prevent accidental deletion."
|
|
36
46
|
echo "Please ask the user: 'Do you want to uninstall ACP from this project?'"
|
|
37
|
-
echo "If yes, rerun this script with: ./agent/scripts/
|
|
47
|
+
echo "If yes, rerun this script with: ./agent/scripts/unacp.install.sh -y"
|
|
38
48
|
echo ""
|
|
39
|
-
echo
|
|
49
|
+
echo "${RED}WARNING: This will permanently delete:${NC}"
|
|
40
50
|
echo " - agent/ directory (all contents)"
|
|
41
51
|
echo " - AGENT.md file"
|
|
42
52
|
echo ""
|
|
@@ -58,17 +68,17 @@ echo "Removing ACP files..."
|
|
|
58
68
|
# Remove agent directory
|
|
59
69
|
if [ -d "agent" ]; then
|
|
60
70
|
rm -rf agent
|
|
61
|
-
echo
|
|
71
|
+
echo "${GREEN}✓${NC} Removed agent/ directory"
|
|
62
72
|
fi
|
|
63
73
|
|
|
64
74
|
# Remove AGENT.md
|
|
65
75
|
if [ -f "AGENT.md" ]; then
|
|
66
76
|
rm -f AGENT.md
|
|
67
|
-
echo
|
|
77
|
+
echo "${GREEN}✓${NC} Removed AGENT.md"
|
|
68
78
|
fi
|
|
69
79
|
|
|
70
80
|
echo ""
|
|
71
|
-
echo
|
|
81
|
+
echo "${GREEN}Uninstall complete!${NC}"
|
|
72
82
|
echo ""
|
|
73
83
|
echo "All ACP files have been removed from this project."
|
|
74
84
|
echo "Use 'git status' to see what was deleted."
|
|
@@ -5,12 +5,22 @@
|
|
|
5
5
|
|
|
6
6
|
set -e
|
|
7
7
|
|
|
8
|
-
# Colors for output
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
|
14
24
|
|
|
15
25
|
# Repository URL
|
|
16
26
|
REPO_URL="https://raw.githubusercontent.com/prmichaelsen/agent-context-protocol/mainline"
|
|
@@ -26,7 +36,7 @@ fi
|
|
|
26
36
|
# Check if AGENT.md exists
|
|
27
37
|
if [ ! -f "AGENT.md" ]; then
|
|
28
38
|
if [ "$SILENT" = false ]; then
|
|
29
|
-
echo
|
|
39
|
+
echo "${RED}Error: AGENT.md not found in current directory${NC}" >&2
|
|
30
40
|
echo "This script should be run from your project root where AGENT.md is located." >&2
|
|
31
41
|
fi
|
|
32
42
|
exit 2
|
|
@@ -34,7 +44,7 @@ fi
|
|
|
34
44
|
|
|
35
45
|
# Download latest AGENT.md for comparison
|
|
36
46
|
if [ "$SILENT" = false ]; then
|
|
37
|
-
echo
|
|
47
|
+
echo "${BLUE}Checking for updates...${NC}"
|
|
38
48
|
fi
|
|
39
49
|
|
|
40
50
|
if command -v curl &> /dev/null; then
|
|
@@ -43,14 +53,14 @@ elif command -v wget &> /dev/null; then
|
|
|
43
53
|
wget -q "$AGENT_MD_URL" -O /tmp/AGENT.md.latest 2>/dev/null
|
|
44
54
|
else
|
|
45
55
|
if [ "$SILENT" = false ]; then
|
|
46
|
-
echo
|
|
56
|
+
echo "${RED}Error: Neither curl nor wget is available${NC}" >&2
|
|
47
57
|
fi
|
|
48
58
|
exit 2
|
|
49
59
|
fi
|
|
50
60
|
|
|
51
61
|
if [ $? -ne 0 ]; then
|
|
52
62
|
if [ "$SILENT" = false ]; then
|
|
53
|
-
echo
|
|
63
|
+
echo "${RED}Error: Failed to download latest AGENT.md${NC}" >&2
|
|
54
64
|
echo "Please check your internet connection." >&2
|
|
55
65
|
fi
|
|
56
66
|
rm -f /tmp/AGENT.md.latest
|
|
@@ -61,14 +71,14 @@ fi
|
|
|
61
71
|
if cmp -s AGENT.md /tmp/AGENT.md.latest; then
|
|
62
72
|
# Files are identical - no updates
|
|
63
73
|
if [ "$SILENT" = false ]; then
|
|
64
|
-
echo
|
|
74
|
+
echo "${GREEN}✓${NC} Your AGENT.md is up to date!"
|
|
65
75
|
fi
|
|
66
76
|
rm -f /tmp/AGENT.md.latest
|
|
67
77
|
exit 0
|
|
68
78
|
else
|
|
69
79
|
# Files differ - updates available
|
|
70
80
|
if [ "$SILENT" = false ]; then
|
|
71
|
-
echo
|
|
81
|
+
echo "${YELLOW}⚠${NC} Updates are available for AGENT.md"
|
|
72
82
|
echo ""
|
|
73
83
|
|
|
74
84
|
# Download and display changelog
|
|
@@ -80,8 +90,8 @@ else
|
|
|
80
90
|
wget -q "$CHANGELOG_URL" -O - 2>/dev/null | head -n 50
|
|
81
91
|
fi
|
|
82
92
|
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"
|
|
93
|
+
echo "To update, run: ./agent/scripts/acp.version-update.sh"
|
|
94
|
+
echo "Or: curl -fsSL https://raw.githubusercontent.com/prmichaelsen/agent-context-protocol/mainlin./agent/scripts/acp.version-update.sh | bash"
|
|
85
95
|
fi
|
|
86
96
|
rm -f /tmp/AGENT.md.latest
|
|
87
97
|
exit 1
|
|
@@ -5,10 +5,22 @@
|
|
|
5
5
|
|
|
6
6
|
set -e
|
|
7
7
|
|
|
8
|
-
# Colors for output
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
|
12
24
|
|
|
13
25
|
# Check if AGENT.md exists
|
|
14
26
|
if [ ! -f "AGENT.md" ]; then
|
|
@@ -23,13 +35,13 @@ CREATED=$(grep -m 1 "^\*\*Created\*\*:" AGENT.md | sed 's/.*: //')
|
|
|
23
35
|
STATUS=$(grep -m 1 "^\*\*Status\*\*:" AGENT.md | sed 's/.*: //')
|
|
24
36
|
|
|
25
37
|
# Display version information
|
|
26
|
-
echo
|
|
38
|
+
echo "${BLUE}📦 ACP Version Information${NC}"
|
|
27
39
|
echo ""
|
|
28
40
|
echo "Version: $VERSION"
|
|
29
41
|
echo "Created: $CREATED"
|
|
30
42
|
echo "Status: $STATUS"
|
|
31
43
|
echo ""
|
|
32
|
-
echo
|
|
44
|
+
echo "${GREEN}✓${NC} ACP is installed"
|
|
33
45
|
echo ""
|
|
34
|
-
echo "To check for updates: ./agent/scripts/check-for-updates.sh"
|
|
35
|
-
echo "To update ACP: ./agent/scripts/update.sh"
|
|
46
|
+
echo "To check for updates: ./agent/scripts/acp.version-check-for-updates.sh"
|
|
47
|
+
echo "To update ACP: ./agent/scripts/acp.version-update.sh"
|
|
@@ -86,19 +86,55 @@ fi
|
|
|
86
86
|
# Update progress template
|
|
87
87
|
cp "$TEMP_DIR/agent/progress.template.yaml" "agent/"
|
|
88
88
|
|
|
89
|
+
# Update manifest template
|
|
90
|
+
if [ -f "$TEMP_DIR/agent/manifest.template.yaml" ]; then
|
|
91
|
+
cp "$TEMP_DIR/agent/manifest.template.yaml" "agent/"
|
|
92
|
+
fi
|
|
93
|
+
|
|
94
|
+
# Update package template
|
|
95
|
+
if [ -f "$TEMP_DIR/agent/package.template.yaml" ]; then
|
|
96
|
+
cp "$TEMP_DIR/agent/package.template.yaml" "agent/"
|
|
97
|
+
fi
|
|
98
|
+
|
|
89
99
|
# Update AGENT.md
|
|
90
100
|
cp "$TEMP_DIR/AGENT.md" "."
|
|
91
101
|
|
|
92
|
-
# Update scripts
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
102
|
+
# Update all scripts (*.sh files)
|
|
103
|
+
# This ensures all current and future scripts are copied
|
|
104
|
+
if [ -d "$TEMP_DIR/agent/scripts" ]; then
|
|
105
|
+
find "$TEMP_DIR/agent/scripts" -maxdepth 1 -name "*.sh" -exec cp {} "agent/scripts/" \;
|
|
106
|
+
chmod +x agent/scripts/*.sh
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
# Clean up deprecated scripts (from versions < 2.0.0)
|
|
110
|
+
. "agent/scripts/acp.common.sh"
|
|
111
|
+
init_colors
|
|
112
|
+
cleanup_deprecated_scripts
|
|
99
113
|
|
|
100
114
|
echo "${GREEN}✓${NC} All files updated"
|
|
101
115
|
echo ""
|
|
116
|
+
|
|
117
|
+
# Update acp-core version in manifest if it exists
|
|
118
|
+
if [ -f "agent/manifest.yaml" ]; then
|
|
119
|
+
echo "Updating manifest..."
|
|
120
|
+
|
|
121
|
+
# Get new ACP version
|
|
122
|
+
NEW_VERSION=$(grep "^\*\*Version\*\*:" "AGENT.md" | sed 's/.*: //' | head -1)
|
|
123
|
+
UPDATE_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
124
|
+
|
|
125
|
+
# Update acp-core version and timestamps
|
|
126
|
+
sed -i "/^ acp-core:/,/^ [a-z]/ {
|
|
127
|
+
s/package_version: .*/package_version: ${NEW_VERSION}/
|
|
128
|
+
s/updated_at: .*/updated_at: ${UPDATE_DATE}/
|
|
129
|
+
}" agent/manifest.yaml
|
|
130
|
+
|
|
131
|
+
# Update manifest timestamp
|
|
132
|
+
sed -i "s/^last_updated: .*/last_updated: ${UPDATE_DATE}/" agent/manifest.yaml
|
|
133
|
+
|
|
134
|
+
echo "${GREEN}✓${NC} Updated acp-core to v${NEW_VERSION} in manifest.yaml"
|
|
135
|
+
echo ""
|
|
136
|
+
fi
|
|
137
|
+
|
|
102
138
|
echo "${GREEN}Update complete!${NC}"
|
|
103
139
|
echo ""
|
|
104
140
|
echo "${BLUE}What was updated:${NC}"
|
|
@@ -115,24 +151,7 @@ echo ""
|
|
|
115
151
|
echo "For detailed changelog:"
|
|
116
152
|
echo " https://github.com/prmichaelsen/agent-context-protocol/blob/mainline/CHANGELOG.md"
|
|
117
153
|
echo ""
|
|
118
|
-
|
|
119
|
-
echo ""
|
|
120
|
-
echo " ${GREEN}@acp.init${NC} - Initialize agent context (run after update!)"
|
|
121
|
-
echo " ${GREEN}@acp.proceed${NC} - Continue with next task"
|
|
122
|
-
echo " ${GREEN}@acp.status${NC} - Display project status"
|
|
123
|
-
echo " ${GREEN}@acp.update${NC} - Update progress tracking"
|
|
124
|
-
echo " ${GREEN}@acp.sync${NC} - Sync documentation with code"
|
|
125
|
-
echo " ${GREEN}@acp.validate${NC} - Validate ACP documents"
|
|
126
|
-
echo " ${GREEN}@acp.report${NC} - Generate project report"
|
|
127
|
-
echo " ${GREEN}@acp.version-check${NC} - Show current ACP version"
|
|
128
|
-
echo " ${GREEN}@acp.version-check-for-updates${NC} - Check for ACP updates"
|
|
129
|
-
echo " ${GREEN}@acp.version-update${NC} - Update ACP to latest version"
|
|
130
|
-
echo " ${GREEN}@acp.package-install${NC} - Install third-party command packages"
|
|
131
|
-
echo ""
|
|
132
|
-
echo "${BLUE}Git Commands Available:${NC}"
|
|
133
|
-
echo ""
|
|
134
|
-
echo " ${GREEN}@git.init${NC} - Initialize git repository with smart .gitignore"
|
|
135
|
-
echo " ${GREEN}@git.commit${NC} - Intelligent version-aware git commit"
|
|
154
|
+
display_available_commands
|
|
136
155
|
echo ""
|
|
137
156
|
echo "${BLUE}For AI agents:${NC}"
|
|
138
157
|
echo "Type '${GREEN}@acp.init${NC}' to reload context with updated files."
|