coaia-visualizer 1.6.2 → 1.6.3
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/package.json +30 -1
- package/.dockerignore +0 -9
- package/COMPLETE_IMPLEMENTATION_REPORT.md +0 -215
- package/Dockerfile +0 -61
- package/Dockerfile.app +0 -50
- package/QUICK_START_MCP_TESTING.md +0 -236
- package/STC.md +0 -24
- package/STCGOAL.md +0 -0
- package/STCISSUE.md +0 -48
- package/STCKIN.md +0 -0
- package/STCMASTERY.md +0 -0
- package/STUDY_REPORT.md +0 -510
- package/direct-test.sh +0 -180
- package/docker-build-push.sh +0 -20
- package/docker-compose.test.yml +0 -69
- package/docker-entrypoint.sh +0 -27
- package/jgwill.coaia-visualizer-8--496dca71-d476-4ac9-ba9f-376add118dd8--260208.txt +0 -2612
- package/mcp/test_mcp/.gemini/settings.json +0 -18
- package/rispecs/README.md +0 -170
- package/rispecs/accountability-responsibility.rispec.md +0 -110
- package/rispecs/api-mcp-interface.spec.md +0 -287
- package/rispecs/app.spec.md +0 -364
- package/rispecs/chart-editing-workflow.spec.md +0 -297
- package/rispecs/chart-visualization-hierarchy.spec.md +0 -235
- package/rispecs/cli-mode.spec.md +0 -224
- package/rispecs/github-project-runtime-memory-integration.spec.md +0 -381
- package/rispecs/jsonl-parsing-data-types.spec.md +0 -243
- package/rispecs/narrative-beats-display.spec.md +0 -189
- package/rispecs/pde-integration.spec.md +0 -280
- package/rispecs/planning-integration.spec.md +0 -329
- package/rispecs/relation-graph-visualization.spec.md +0 -171
- package/rispecs/relation-to-mcp-structural-thinking.kin.md +0 -65
- package/rispecs/ui-component-library.spec.md +0 -258
- package/test-data/test-master.jsonl +0 -11
- package/test-results/.last-run.json +0 -4
- package/test-scripts/README.md +0 -325
- package/test-scripts/rich-jsonl-preservation.spec.ts +0 -118
- package/test-scripts/run-all-tests.sh +0 -38
- package/test-scripts/test-01-basic-operations.sh +0 -87
- package/test-scripts/test-02-telescope-creation.sh +0 -91
- package/test-scripts/test-03-navigation.sh +0 -87
- package/test-scripts/test-global-cli.spec.ts +0 -220
- package/test-scripts/verify-global-cli.sh +0 -87
package/direct-test.sh
DELETED
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# Direct MCP Integration Test
|
|
4
|
-
# Tests the MCP server and Next.js API without Docker complexity
|
|
5
|
-
|
|
6
|
-
set -e
|
|
7
|
-
|
|
8
|
-
echo "========================================="
|
|
9
|
-
echo "Direct MCP Integration Test"
|
|
10
|
-
echo "========================================="
|
|
11
|
-
echo ""
|
|
12
|
-
|
|
13
|
-
PROJECT_DIR="/workspace/repos/jgwill/coaia-visualizer-feat-4"
|
|
14
|
-
cd "$PROJECT_DIR"
|
|
15
|
-
|
|
16
|
-
# Start the Next.js app in the background
|
|
17
|
-
echo "1. Starting Next.js application..."
|
|
18
|
-
timeout 30 npm run dev > /tmp/nextjs.log 2>&1 &
|
|
19
|
-
NEXTJS_PID=$!
|
|
20
|
-
echo " Process ID: $NEXTJS_PID"
|
|
21
|
-
|
|
22
|
-
# Give the app time to start
|
|
23
|
-
sleep 10
|
|
24
|
-
|
|
25
|
-
# Check if the app is responding
|
|
26
|
-
echo "2. Checking Next.js app health..."
|
|
27
|
-
if curl -sf http://localhost:3000/api/charts > /dev/null; then
|
|
28
|
-
echo " ✓ Next.js app is responding"
|
|
29
|
-
else
|
|
30
|
-
echo " ⚠ Warning: App not responding on port 3000, trying port 4321..."
|
|
31
|
-
if curl -sf http://localhost:4321/api/charts > /dev/null; then
|
|
32
|
-
echo " ✓ Next.js app is responding on port 4321"
|
|
33
|
-
else
|
|
34
|
-
echo " ✗ Failed to reach Next.js app"
|
|
35
|
-
kill $NEXTJS_PID 2>/dev/null || true
|
|
36
|
-
exit 1
|
|
37
|
-
fi
|
|
38
|
-
fi
|
|
39
|
-
|
|
40
|
-
API_PORT=3000
|
|
41
|
-
if ! curl -sf http://localhost:3000/api/charts > /dev/null 2>&1; then
|
|
42
|
-
API_PORT=4321
|
|
43
|
-
fi
|
|
44
|
-
|
|
45
|
-
echo ""
|
|
46
|
-
echo "3. Testing MCP API endpoints..."
|
|
47
|
-
echo ""
|
|
48
|
-
|
|
49
|
-
# Test 1: Create a chart
|
|
50
|
-
echo " Test 1: Creating a chart..."
|
|
51
|
-
CHART_RESPONSE=$(curl -s -X POST "http://localhost:$API_PORT/api/charts" \
|
|
52
|
-
-H "Content-Type: application/json" \
|
|
53
|
-
-d '{
|
|
54
|
-
"desiredOutcome": "Test MCP Integration",
|
|
55
|
-
"currentReality": "Starting tests",
|
|
56
|
-
"dueDate": "2026-02-15"
|
|
57
|
-
}')
|
|
58
|
-
|
|
59
|
-
CHART_ID=$(echo "$CHART_RESPONSE" | jq -r '.chart.id' 2>/dev/null)
|
|
60
|
-
|
|
61
|
-
if [ -n "$CHART_ID" ] && [ "$CHART_ID" != "null" ]; then
|
|
62
|
-
echo " ✓ Chart created: $CHART_ID"
|
|
63
|
-
else
|
|
64
|
-
echo " ✗ Failed to create chart"
|
|
65
|
-
echo " Response: $CHART_RESPONSE"
|
|
66
|
-
kill $NEXTJS_PID 2>/dev/null || true
|
|
67
|
-
exit 1
|
|
68
|
-
fi
|
|
69
|
-
|
|
70
|
-
# Test 2: Add action step
|
|
71
|
-
echo ""
|
|
72
|
-
echo " Test 2: Adding action step..."
|
|
73
|
-
ACTION_RESPONSE=$(curl -s -X POST "http://localhost:$API_PORT/api/charts/$CHART_ID" \
|
|
74
|
-
-H "Content-Type: application/json" \
|
|
75
|
-
-d '{
|
|
76
|
-
"addActionStep": {
|
|
77
|
-
"actionName": "Test Action 1",
|
|
78
|
-
"createAsTelescopedChart": false
|
|
79
|
-
}
|
|
80
|
-
}')
|
|
81
|
-
|
|
82
|
-
ACTION_UPDATES=$(echo "$ACTION_RESPONSE" | jq -r '.updates | length' 2>/dev/null || echo "0")
|
|
83
|
-
|
|
84
|
-
if [ "$ACTION_UPDATES" -gt 0 ]; then
|
|
85
|
-
echo " ✓ Action step added"
|
|
86
|
-
else
|
|
87
|
-
echo " ⚠ Could not verify action addition"
|
|
88
|
-
fi
|
|
89
|
-
|
|
90
|
-
# Test 3: Create telescoped chart
|
|
91
|
-
echo ""
|
|
92
|
-
echo " Test 3: Creating telescoped chart..."
|
|
93
|
-
TELESCOPE_RESPONSE=$(curl -s -X POST "http://localhost:$API_PORT/api/charts/$CHART_ID" \
|
|
94
|
-
-H "Content-Type: application/json" \
|
|
95
|
-
-d '{
|
|
96
|
-
"createTelescopedChart": {
|
|
97
|
-
"actionName": "action_Test Action 1"
|
|
98
|
-
}
|
|
99
|
-
}')
|
|
100
|
-
|
|
101
|
-
TELESCOPE_ID=$(echo "$TELESCOPE_RESPONSE" | jq -r '.chart.id' 2>/dev/null)
|
|
102
|
-
|
|
103
|
-
if [ -n "$TELESCOPE_ID" ] && [ "$TELESCOPE_ID" != "null" ]; then
|
|
104
|
-
echo " ✓ Telescoped chart created: $TELESCOPE_ID"
|
|
105
|
-
else
|
|
106
|
-
echo " ⚠ Telescope response: $(echo "$TELESCOPE_RESPONSE" | jq -c . 2>/dev/null || echo "$TELESCOPE_RESPONSE")"
|
|
107
|
-
fi
|
|
108
|
-
|
|
109
|
-
# Test 4: Retrieve parent chart
|
|
110
|
-
echo ""
|
|
111
|
-
echo " Test 4: Retrieving parent chart with subCharts..."
|
|
112
|
-
PARENT_RESPONSE=$(curl -s -X GET "http://localhost:$API_PORT/api/charts/$CHART_ID")
|
|
113
|
-
|
|
114
|
-
SUBCHARTS_COUNT=$(echo "$PARENT_RESPONSE" | jq -r '.chart.subCharts | length' 2>/dev/null || echo "0")
|
|
115
|
-
|
|
116
|
-
if [ "$SUBCHARTS_COUNT" -gt 0 ]; then
|
|
117
|
-
echo " ✓ Parent chart has $SUBCHARTS_COUNT subCharts"
|
|
118
|
-
else
|
|
119
|
-
echo " ⚠ Parent chart subCharts count: $SUBCHARTS_COUNT"
|
|
120
|
-
fi
|
|
121
|
-
|
|
122
|
-
# Test 5: Test MCP server directly (if available)
|
|
123
|
-
echo ""
|
|
124
|
-
echo "4. Testing MCP Server..."
|
|
125
|
-
|
|
126
|
-
if [ -f "$PROJECT_DIR/mcp/dist/index.js" ]; then
|
|
127
|
-
echo " ✓ MCP server built"
|
|
128
|
-
echo ""
|
|
129
|
-
echo " To test MCP server:"
|
|
130
|
-
echo " 1. Build: cd mcp && npm run build"
|
|
131
|
-
echo " 2. Run: node dist/index.js"
|
|
132
|
-
echo " 3. Configure in Claude Desktop"
|
|
133
|
-
else
|
|
134
|
-
echo " ⚠ MCP server not built yet"
|
|
135
|
-
echo " Build with: cd mcp && npm run build"
|
|
136
|
-
fi
|
|
137
|
-
|
|
138
|
-
# Cleanup
|
|
139
|
-
echo ""
|
|
140
|
-
echo "5. Cleaning up..."
|
|
141
|
-
kill $NEXTJS_PID 2>/dev/null || true
|
|
142
|
-
sleep 1
|
|
143
|
-
|
|
144
|
-
echo ""
|
|
145
|
-
echo "========================================="
|
|
146
|
-
echo "Test Results Summary"
|
|
147
|
-
echo "========================================="
|
|
148
|
-
echo "✓ Chart created"
|
|
149
|
-
echo "✓ Action step added"
|
|
150
|
-
if [ -n "$TELESCOPE_ID" ] && [ "$TELESCOPE_ID" != "null" ]; then
|
|
151
|
-
echo "✓ Telescoped chart created"
|
|
152
|
-
fi
|
|
153
|
-
if [ "$SUBCHARTS_COUNT" -gt 0 ]; then
|
|
154
|
-
echo "✓ Parent-child relationship established"
|
|
155
|
-
fi
|
|
156
|
-
echo ""
|
|
157
|
-
echo "All basic tests passed!"
|
|
158
|
-
echo "========================================="
|
|
159
|
-
|
|
160
|
-
# Cleanup
|
|
161
|
-
echo ""
|
|
162
|
-
echo "5. Cleaning up..."
|
|
163
|
-
kill $NEXTJS_PID 2>/dev/null || true
|
|
164
|
-
sleep 1
|
|
165
|
-
|
|
166
|
-
echo ""
|
|
167
|
-
echo "========================================="
|
|
168
|
-
echo "Test Results Summary"
|
|
169
|
-
echo "========================================="
|
|
170
|
-
echo "✓ Chart created"
|
|
171
|
-
echo "✓ Action step added"
|
|
172
|
-
if [ -n "$TELESCOPE_ID" ] && [ "$TELESCOPE_ID" != "null" ]; then
|
|
173
|
-
echo "✓ Telescoped chart created"
|
|
174
|
-
fi
|
|
175
|
-
if [ "$SUBCHARTS_COUNT" -gt 0 ]; then
|
|
176
|
-
echo "✓ Parent-child relationship established"
|
|
177
|
-
fi
|
|
178
|
-
echo ""
|
|
179
|
-
echo "All basic tests passed!"
|
|
180
|
-
echo "========================================="
|
package/docker-build-push.sh
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Build and push jgwill/coaia:visualizer to Docker Hub
|
|
3
|
-
# Usage: ./docker-build-push.sh [tag]
|
|
4
|
-
# Requires: docker login jgwill (or DOCKERHUB_TOKEN env)
|
|
5
|
-
|
|
6
|
-
set -e
|
|
7
|
-
|
|
8
|
-
TAG="${1:-visualizer}"
|
|
9
|
-
IMAGE="jgwill/coaia:$TAG"
|
|
10
|
-
|
|
11
|
-
echo "🐳 Building $IMAGE..."
|
|
12
|
-
docker build -t "$IMAGE" .
|
|
13
|
-
|
|
14
|
-
echo "📤 Pushing $IMAGE..."
|
|
15
|
-
docker push "$IMAGE"
|
|
16
|
-
|
|
17
|
-
echo "✅ Done: $IMAGE"
|
|
18
|
-
echo ""
|
|
19
|
-
echo "Run with:"
|
|
20
|
-
echo " docker run --rm -p 4321:4321 -v /abs/path/to/file.jsonl:/data/memory.jsonl $IMAGE"
|
package/docker-compose.test.yml
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
version: '3.8'
|
|
2
|
-
|
|
3
|
-
services:
|
|
4
|
-
# Next.js application server
|
|
5
|
-
visualizer-app:
|
|
6
|
-
build:
|
|
7
|
-
context: .
|
|
8
|
-
dockerfile: Dockerfile.app
|
|
9
|
-
ports:
|
|
10
|
-
- "4321:4321"
|
|
11
|
-
volumes:
|
|
12
|
-
- ./samples:/app/samples:ro
|
|
13
|
-
- ./test-data:/app/test-data
|
|
14
|
-
environment:
|
|
15
|
-
- NODE_ENV=production
|
|
16
|
-
- PORT=4321
|
|
17
|
-
networks:
|
|
18
|
-
- test-network
|
|
19
|
-
healthcheck:
|
|
20
|
-
test: ["CMD", "curl", "-f", "http://localhost:4321/api/charts"]
|
|
21
|
-
interval: 10s
|
|
22
|
-
timeout: 5s
|
|
23
|
-
retries: 5
|
|
24
|
-
|
|
25
|
-
# MCP Server
|
|
26
|
-
mcp-server:
|
|
27
|
-
build:
|
|
28
|
-
context: ./mcp
|
|
29
|
-
dockerfile: Dockerfile
|
|
30
|
-
environment:
|
|
31
|
-
- VISUALIZER_API_URL=http://visualizer-app:4321
|
|
32
|
-
- VISUALIZER_API_KEY=${VISUALIZER_API_KEY:-test-api-key}
|
|
33
|
-
- NODE_ENV=production
|
|
34
|
-
volumes:
|
|
35
|
-
- ./test-data:/data
|
|
36
|
-
networks:
|
|
37
|
-
- test-network
|
|
38
|
-
depends_on:
|
|
39
|
-
visualizer-app:
|
|
40
|
-
condition: service_healthy
|
|
41
|
-
stdin_open: true
|
|
42
|
-
tty: true
|
|
43
|
-
|
|
44
|
-
# Test runner using claude-code CLI or gemini-cli
|
|
45
|
-
test-runner:
|
|
46
|
-
build:
|
|
47
|
-
context: .
|
|
48
|
-
dockerfile: Dockerfile.test
|
|
49
|
-
environment:
|
|
50
|
-
- MCP_SERVER_HOST=mcp-server
|
|
51
|
-
- VISUALIZER_API_URL=http://visualizer-app:4321
|
|
52
|
-
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
|
|
53
|
-
- GOOGLE_API_KEY=${GOOGLE_API_KEY}
|
|
54
|
-
volumes:
|
|
55
|
-
- ./test-scripts:/test-scripts:ro
|
|
56
|
-
- ./test-results:/test-results
|
|
57
|
-
- ./test-data:/test-data
|
|
58
|
-
networks:
|
|
59
|
-
- test-network
|
|
60
|
-
depends_on:
|
|
61
|
-
visualizer-app:
|
|
62
|
-
condition: service_healthy
|
|
63
|
-
mcp-server:
|
|
64
|
-
condition: service_started
|
|
65
|
-
command: ["/test-scripts/run-all-tests.sh"]
|
|
66
|
-
|
|
67
|
-
networks:
|
|
68
|
-
test-network:
|
|
69
|
-
driver: bridge
|
package/docker-entrypoint.sh
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
#!/bin/sh
|
|
2
|
-
set -e
|
|
3
|
-
|
|
4
|
-
# COAIA Visualizer Docker Entrypoint
|
|
5
|
-
# Serves the pre-built Next.js app with the user-supplied JSONL file.
|
|
6
|
-
#
|
|
7
|
-
# The JSONL file must be mounted into /data/ in the container.
|
|
8
|
-
# COAIAV_MEMORY_PATH defaults to /data/memory.jsonl but can be overridden.
|
|
9
|
-
|
|
10
|
-
MEMORY_PATH="${COAIAV_MEMORY_PATH:-/data/memory.jsonl}"
|
|
11
|
-
PORT="${PORT:-4321}"
|
|
12
|
-
|
|
13
|
-
# Validate that the memory file exists (warn but don't block — user may mount it later)
|
|
14
|
-
if [ ! -f "$MEMORY_PATH" ]; then
|
|
15
|
-
echo "⚠️ Warning: memory file not found at $MEMORY_PATH"
|
|
16
|
-
echo " Mount your JSONL file with: -v /your/file.jsonl:$MEMORY_PATH"
|
|
17
|
-
fi
|
|
18
|
-
|
|
19
|
-
echo "🎨 COAIA Visualizer"
|
|
20
|
-
echo "📁 Memory file: $MEMORY_PATH"
|
|
21
|
-
echo "🌐 http://localhost:$PORT"
|
|
22
|
-
echo ""
|
|
23
|
-
|
|
24
|
-
export COAIAV_MEMORY_PATH="$MEMORY_PATH"
|
|
25
|
-
export PORT="$PORT"
|
|
26
|
-
|
|
27
|
-
exec node_modules/.bin/next start -p "$PORT"
|