coaia-visualizer 1.6.1 → 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.
Files changed (49) hide show
  1. package/README.md +1 -1
  2. package/app/page.tsx +4 -23
  3. package/components/chart-detail-editable.tsx +3 -0
  4. package/components/metadata-projections.tsx +208 -0
  5. package/lib/chart-editor.ts +13 -13
  6. package/lib/jsonl-parser.ts +55 -8
  7. package/lib/jsonl-preservation.ts +405 -0
  8. package/lib/types.ts +30 -0
  9. package/package.json +31 -1
  10. package/.dockerignore +0 -9
  11. package/COMPLETE_IMPLEMENTATION_REPORT.md +0 -215
  12. package/Dockerfile +0 -61
  13. package/Dockerfile.app +0 -50
  14. package/QUICK_START_MCP_TESTING.md +0 -236
  15. package/STC.md +0 -18
  16. package/STCGOAL.md +0 -0
  17. package/STCISSUE.md +0 -36
  18. package/STCKIN.md +0 -0
  19. package/STCMASTERY.md +0 -0
  20. package/STUDY_REPORT.md +0 -510
  21. package/direct-test.sh +0 -180
  22. package/docker-build-push.sh +0 -20
  23. package/docker-compose.test.yml +0 -69
  24. package/docker-entrypoint.sh +0 -27
  25. package/jgwill.coaia-visualizer-8--496dca71-d476-4ac9-ba9f-376add118dd8--260208.txt +0 -2612
  26. package/mcp/test_mcp/.gemini/settings.json +0 -18
  27. package/rispecs/README.md +0 -170
  28. package/rispecs/accountability-responsibility.rispec.md +0 -110
  29. package/rispecs/api-mcp-interface.spec.md +0 -287
  30. package/rispecs/app.spec.md +0 -364
  31. package/rispecs/chart-editing-workflow.spec.md +0 -297
  32. package/rispecs/chart-visualization-hierarchy.spec.md +0 -235
  33. package/rispecs/cli-mode.spec.md +0 -224
  34. package/rispecs/github-project-runtime-memory-integration.spec.md +0 -381
  35. package/rispecs/jsonl-parsing-data-types.spec.md +0 -243
  36. package/rispecs/narrative-beats-display.spec.md +0 -189
  37. package/rispecs/pde-integration.spec.md +0 -280
  38. package/rispecs/planning-integration.spec.md +0 -329
  39. package/rispecs/relation-graph-visualization.spec.md +0 -171
  40. package/rispecs/relation-to-mcp-structural-thinking.kin.md +0 -65
  41. package/rispecs/ui-component-library.spec.md +0 -258
  42. package/test-data/test-master.jsonl +0 -11
  43. package/test-scripts/README.md +0 -325
  44. package/test-scripts/run-all-tests.sh +0 -38
  45. package/test-scripts/test-01-basic-operations.sh +0 -87
  46. package/test-scripts/test-02-telescope-creation.sh +0 -91
  47. package/test-scripts/test-03-navigation.sh +0 -87
  48. package/test-scripts/test-global-cli.spec.ts +0 -220
  49. 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 "========================================="
@@ -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"
@@ -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
@@ -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"