coaia-visualizer 1.6.0 → 1.6.2

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 (58) hide show
  1. package/.dockerignore +9 -0
  2. package/COMPLETE_IMPLEMENTATION_REPORT.md +215 -0
  3. package/QUICK_START_MCP_TESTING.md +236 -0
  4. package/README.md +1 -1
  5. package/README_TELESCOPED_NAVIGATION.md +247 -0
  6. package/STC.md +24 -0
  7. package/STCGOAL.md +0 -0
  8. package/STCISSUE.md +48 -0
  9. package/STCKIN.md +0 -0
  10. package/STCMASTERY.md +0 -0
  11. package/STUDY_REPORT.md +510 -0
  12. package/app/page.tsx +4 -23
  13. package/cli.ts +8 -0
  14. package/components/chart-detail-editable.tsx +3 -2
  15. package/components/chart-detail.tsx +1 -6
  16. package/components/edit-action-step.tsx +0 -2
  17. package/components/metadata-projections.tsx +208 -0
  18. package/components/relation-graph.tsx +27 -91
  19. package/components.json +21 -0
  20. package/direct-test.sh +180 -0
  21. package/dist/cli.js +7 -0
  22. package/dist/skill.js +342 -0
  23. package/docker-compose.test.yml +69 -0
  24. package/index.tsx +0 -26
  25. package/jgwill.coaia-visualizer-8--496dca71-d476-4ac9-ba9f-376add118dd8--260208.txt +2612 -0
  26. package/lib/chart-editor.ts +13 -13
  27. package/lib/jsonl-parser.ts +55 -8
  28. package/lib/jsonl-preservation.ts +405 -0
  29. package/lib/types.ts +32 -15
  30. package/mcp/dist/api-client.d.ts +138 -0
  31. package/mcp/dist/api-client.d.ts.map +1 -0
  32. package/mcp/dist/api-client.js +115 -0
  33. package/mcp/dist/api-client.js.map +1 -0
  34. package/mcp/dist/index.d.ts +2 -0
  35. package/mcp/dist/index.d.ts.map +1 -0
  36. package/mcp/dist/index.js +286 -0
  37. package/mcp/dist/index.js.map +1 -0
  38. package/mcp/dist/tools/index.d.ts +18 -0
  39. package/mcp/dist/tools/index.d.ts.map +1 -0
  40. package/mcp/dist/tools/index.js +322 -0
  41. package/mcp/dist/tools/index.js.map +1 -0
  42. package/mcp/package-lock.json +210 -0
  43. package/package.json +2 -27
  44. package/rispecs/github-project-runtime-memory-integration.spec.md +381 -0
  45. package/skill.ts +385 -0
  46. package/test-data/test-master.jsonl +11 -0
  47. package/test-results/.last-run.json +4 -0
  48. package/test-scripts/README.md +325 -0
  49. package/test-scripts/rich-jsonl-preservation.spec.ts +118 -0
  50. package/test-scripts/run-all-tests.sh +38 -0
  51. package/test-scripts/test-01-basic-operations.sh +87 -0
  52. package/test-scripts/test-02-telescope-creation.sh +91 -0
  53. package/test-scripts/test-03-navigation.sh +87 -0
  54. package/test-scripts/test-global-cli.spec.ts +220 -0
  55. package/test-scripts/verify-global-cli.sh +87 -0
  56. package/tsconfig.json +41 -0
  57. package/components/github-provenance.tsx +0 -226
  58. package/lib/github-provenance.ts +0 -316
@@ -0,0 +1,322 @@
1
+ // mcp/src/tools/index.ts - MCP Tool Definitions
2
+ export const LIST_CHARTS_TOOL = {
3
+ name: 'list_charts',
4
+ description: 'List all structural tension charts. Optionally filter by level or show only root charts.',
5
+ inputSchema: {
6
+ type: 'object',
7
+ properties: {
8
+ level: {
9
+ type: 'number',
10
+ description: 'Filter charts by level (0 = root, 1 = sub-chart, etc.)',
11
+ },
12
+ rootOnly: {
13
+ type: 'boolean',
14
+ description: 'If true, return only root-level charts',
15
+ },
16
+ },
17
+ },
18
+ };
19
+ export const GET_CHART_TOOL = {
20
+ name: 'get_chart',
21
+ description: 'Get detailed information about a specific chart by ID',
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ chartId: {
26
+ type: 'string',
27
+ description: 'The chart ID (e.g., "chart_1")',
28
+ },
29
+ },
30
+ required: ['chartId'],
31
+ },
32
+ };
33
+ export const CREATE_CHART_TOOL = {
34
+ name: 'create_chart',
35
+ description: 'Create a new structural tension chart with desired outcome and current reality',
36
+ inputSchema: {
37
+ type: 'object',
38
+ properties: {
39
+ desiredOutcome: {
40
+ type: 'string',
41
+ description: 'What you want to CREATE (the goal)',
42
+ },
43
+ currentReality: {
44
+ type: 'string',
45
+ description: 'Honest assessment of current state (not readiness to begin)',
46
+ },
47
+ dueDate: {
48
+ type: 'string',
49
+ description: 'Optional due date in ISO format (YYYY-MM-DD)',
50
+ },
51
+ parentChartId: {
52
+ type: 'string',
53
+ description: 'Optional parent chart ID to create this as a sub-chart',
54
+ },
55
+ },
56
+ required: ['desiredOutcome', 'currentReality'],
57
+ },
58
+ };
59
+ export const UPDATE_CHART_TOOL = {
60
+ name: 'update_chart',
61
+ description: 'Update a chart\'s desired outcome, current reality, or due date',
62
+ inputSchema: {
63
+ type: 'object',
64
+ properties: {
65
+ chartId: {
66
+ type: 'string',
67
+ description: 'The chart ID to update',
68
+ },
69
+ updateDesiredOutcome: {
70
+ type: 'string',
71
+ description: 'New desired outcome text',
72
+ },
73
+ addCurrentRealityObservation: {
74
+ type: 'string',
75
+ description: 'Add a new current reality observation',
76
+ },
77
+ updateDueDate: {
78
+ type: 'string',
79
+ description: 'Update chart due date (ISO format) or null to remove',
80
+ },
81
+ },
82
+ required: ['chartId'],
83
+ },
84
+ };
85
+ export const ADD_ACTION_STEP_TOOL = {
86
+ name: 'add_action_step',
87
+ description: 'Add a new action step to a chart as a telescoped structural tension chart. Current reality is REQUIRED - provide honest assessment of actual current state relative to this action step.',
88
+ inputSchema: {
89
+ type: 'object',
90
+ properties: {
91
+ parentChartId: {
92
+ type: 'string',
93
+ description: 'The parent chart ID (e.g., "chart_1")',
94
+ },
95
+ actionStepTitle: {
96
+ type: 'string',
97
+ description: 'The action step title (becomes desired outcome of telescoped chart)',
98
+ },
99
+ currentReality: {
100
+ type: 'string',
101
+ description: 'REQUIRED: Honest assessment of actual current state relative to this action step. NOT "ready to begin".',
102
+ },
103
+ dueDate: {
104
+ type: 'string',
105
+ description: 'Optional due date in ISO format (auto-distributed if not provided)',
106
+ },
107
+ },
108
+ required: ['parentChartId', 'actionStepTitle', 'currentReality'],
109
+ },
110
+ };
111
+ export const UPDATE_ACTION_STEP_TOOL = {
112
+ name: 'update_action_step',
113
+ description: 'Update an existing action step',
114
+ inputSchema: {
115
+ type: 'object',
116
+ properties: {
117
+ chartId: {
118
+ type: 'string',
119
+ description: 'The chart ID',
120
+ },
121
+ actionName: {
122
+ type: 'string',
123
+ description: 'The action entity name (e.g., "chart_1_action_1")',
124
+ },
125
+ description: {
126
+ type: 'string',
127
+ description: 'New action description',
128
+ },
129
+ },
130
+ required: ['chartId', 'actionName', 'description'],
131
+ },
132
+ };
133
+ export const MARK_ACTION_COMPLETE_TOOL = {
134
+ name: 'mark_action_complete',
135
+ description: 'Mark action step complete AND update parent chart current reality (advancing pattern). Use the desired_outcome name from telescoped chart.',
136
+ inputSchema: {
137
+ type: 'object',
138
+ properties: {
139
+ chartId: {
140
+ type: 'string',
141
+ description: 'The parent chart ID',
142
+ },
143
+ actionStepName: {
144
+ type: 'string',
145
+ description: 'The action entity name (e.g., "chart_2_desired_outcome" for telescoped charts)',
146
+ },
147
+ },
148
+ required: ['chartId', 'actionStepName'],
149
+ },
150
+ };
151
+ export const UPDATE_ACTION_PROGRESS_TOOL = {
152
+ name: 'update_action_progress',
153
+ description: 'Update progress on action step without completing it, optionally flowing progress into parent current reality',
154
+ inputSchema: {
155
+ type: 'object',
156
+ properties: {
157
+ chartId: {
158
+ type: 'string',
159
+ description: 'The parent chart ID',
160
+ },
161
+ actionStepName: {
162
+ type: 'string',
163
+ description: 'The action entity name',
164
+ },
165
+ progressObservation: {
166
+ type: 'string',
167
+ description: 'Progress observation to add',
168
+ },
169
+ updateCurrentReality: {
170
+ type: 'boolean',
171
+ description: 'If true, flow progress into parent current reality',
172
+ },
173
+ },
174
+ required: ['chartId', 'actionStepName', 'progressObservation'],
175
+ },
176
+ };
177
+ export const UPDATE_CURRENT_REALITY_TOOL = {
178
+ name: 'update_current_reality',
179
+ description: 'Update current reality with new observations (array of strings)',
180
+ inputSchema: {
181
+ type: 'object',
182
+ properties: {
183
+ chartId: {
184
+ type: 'string',
185
+ description: 'The chart ID',
186
+ },
187
+ newObservations: {
188
+ type: 'array',
189
+ items: {
190
+ type: 'string',
191
+ },
192
+ description: 'Array of new observations to add to current reality',
193
+ },
194
+ },
195
+ required: ['chartId', 'newObservations'],
196
+ },
197
+ };
198
+ export const TOGGLE_ACTION_COMPLETION_TOOL = {
199
+ name: 'toggle_action_completion',
200
+ description: 'Toggle the completion status of an action step',
201
+ inputSchema: {
202
+ type: 'object',
203
+ properties: {
204
+ chartId: {
205
+ type: 'string',
206
+ description: 'The chart ID',
207
+ },
208
+ actionName: {
209
+ type: 'string',
210
+ description: 'The action entity name',
211
+ },
212
+ },
213
+ required: ['chartId', 'actionName'],
214
+ },
215
+ };
216
+ export const DELETE_ACTION_STEP_TOOL = {
217
+ name: 'delete_action_step',
218
+ description: 'Delete an action step from a chart',
219
+ inputSchema: {
220
+ type: 'object',
221
+ properties: {
222
+ chartId: {
223
+ type: 'string',
224
+ description: 'The chart ID',
225
+ },
226
+ actionName: {
227
+ type: 'string',
228
+ description: 'The action entity name to delete',
229
+ },
230
+ },
231
+ required: ['chartId', 'actionName'],
232
+ },
233
+ };
234
+ export const CREATE_TELESCOPED_CHART_TOOL = {
235
+ name: 'create_telescoped_chart',
236
+ description: 'Create a telescoped chart from an EXISTING action step. This converts an action into a detailed sub-chart for drilling down into work. Different from add_action_step which creates a NEW action as a telescoped chart.',
237
+ inputSchema: {
238
+ type: 'object',
239
+ properties: {
240
+ chartId: {
241
+ type: 'string',
242
+ description: 'The parent chart ID containing the action',
243
+ },
244
+ actionName: {
245
+ type: 'string',
246
+ description: 'The action entity name to telescope (e.g., "chart_1_action_1")',
247
+ },
248
+ },
249
+ required: ['chartId', 'actionName'],
250
+ },
251
+ };
252
+ export const DELETE_CHART_TOOL = {
253
+ name: 'delete_chart',
254
+ description: 'Delete a chart and all its sub-charts, actions, and narrative beats',
255
+ inputSchema: {
256
+ type: 'object',
257
+ properties: {
258
+ chartId: {
259
+ type: 'string',
260
+ description: 'The chart ID to delete',
261
+ },
262
+ },
263
+ required: ['chartId'],
264
+ },
265
+ };
266
+ export const SEARCH_CHARTS_TOOL = {
267
+ name: 'search_charts',
268
+ description: 'Search charts by text query or filters',
269
+ inputSchema: {
270
+ type: 'object',
271
+ properties: {
272
+ q: {
273
+ type: 'string',
274
+ description: 'Search term (searches in desired outcome, current reality, and actions)',
275
+ },
276
+ level: {
277
+ type: 'number',
278
+ description: 'Filter by chart level',
279
+ },
280
+ completed: {
281
+ type: 'boolean',
282
+ description: 'Filter by completion status',
283
+ },
284
+ hasActions: {
285
+ type: 'boolean',
286
+ description: 'Filter charts that have action steps',
287
+ },
288
+ },
289
+ },
290
+ };
291
+ export const GET_CHART_PROGRESS_TOOL = {
292
+ name: 'get_chart_progress',
293
+ description: 'Calculate progress percentage for a chart based on completed actions',
294
+ inputSchema: {
295
+ type: 'object',
296
+ properties: {
297
+ chartId: {
298
+ type: 'string',
299
+ description: 'The chart ID',
300
+ },
301
+ },
302
+ required: ['chartId'],
303
+ },
304
+ };
305
+ export const ALL_TOOLS = [
306
+ LIST_CHARTS_TOOL,
307
+ GET_CHART_TOOL,
308
+ CREATE_CHART_TOOL,
309
+ UPDATE_CHART_TOOL,
310
+ ADD_ACTION_STEP_TOOL,
311
+ UPDATE_ACTION_STEP_TOOL,
312
+ MARK_ACTION_COMPLETE_TOOL,
313
+ UPDATE_ACTION_PROGRESS_TOOL,
314
+ UPDATE_CURRENT_REALITY_TOOL,
315
+ TOGGLE_ACTION_COMPLETION_TOOL,
316
+ DELETE_ACTION_STEP_TOOL,
317
+ CREATE_TELESCOPED_CHART_TOOL,
318
+ DELETE_CHART_TOOL,
319
+ SEARCH_CHARTS_TOOL,
320
+ GET_CHART_PROGRESS_TOOL,
321
+ ];
322
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,210 @@
1
+ {
2
+ "name": "coaia-visualizer-mcp",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "coaia-visualizer-mcp",
9
+ "version": "1.0.0",
10
+ "license": "MIT",
11
+ "dependencies": {
12
+ "@modelcontextprotocol/sdk": "^0.6.0",
13
+ "dotenv": "^17.2.3"
14
+ },
15
+ "bin": {
16
+ "coaia-visualizer-mcp": "dist/index.js"
17
+ },
18
+ "devDependencies": {
19
+ "@types/node": "^22.0.0",
20
+ "typescript": "^5.0.0"
21
+ }
22
+ },
23
+ "node_modules/@modelcontextprotocol/sdk": {
24
+ "version": "0.6.1",
25
+ "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-0.6.1.tgz",
26
+ "integrity": "sha512-OkVXMix3EIbB5Z6yife2XTrSlOnVvCLR1Kg91I4pYFEsV9RbnoyQVScXCuVhGaZHOnTZgso8lMQN1Po2TadGKQ==",
27
+ "license": "MIT",
28
+ "dependencies": {
29
+ "content-type": "^1.0.5",
30
+ "raw-body": "^3.0.0",
31
+ "zod": "^3.23.8"
32
+ }
33
+ },
34
+ "node_modules/@types/node": {
35
+ "version": "22.19.15",
36
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz",
37
+ "integrity": "sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==",
38
+ "dev": true,
39
+ "license": "MIT",
40
+ "dependencies": {
41
+ "undici-types": "~6.21.0"
42
+ }
43
+ },
44
+ "node_modules/bytes": {
45
+ "version": "3.1.2",
46
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
47
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
48
+ "license": "MIT",
49
+ "engines": {
50
+ "node": ">= 0.8"
51
+ }
52
+ },
53
+ "node_modules/content-type": {
54
+ "version": "1.0.5",
55
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
56
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
57
+ "license": "MIT",
58
+ "engines": {
59
+ "node": ">= 0.6"
60
+ }
61
+ },
62
+ "node_modules/depd": {
63
+ "version": "2.0.0",
64
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
65
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
66
+ "license": "MIT",
67
+ "engines": {
68
+ "node": ">= 0.8"
69
+ }
70
+ },
71
+ "node_modules/dotenv": {
72
+ "version": "17.3.1",
73
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz",
74
+ "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==",
75
+ "license": "BSD-2-Clause",
76
+ "engines": {
77
+ "node": ">=12"
78
+ },
79
+ "funding": {
80
+ "url": "https://dotenvx.com"
81
+ }
82
+ },
83
+ "node_modules/http-errors": {
84
+ "version": "2.0.1",
85
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
86
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
87
+ "license": "MIT",
88
+ "dependencies": {
89
+ "depd": "~2.0.0",
90
+ "inherits": "~2.0.4",
91
+ "setprototypeof": "~1.2.0",
92
+ "statuses": "~2.0.2",
93
+ "toidentifier": "~1.0.1"
94
+ },
95
+ "engines": {
96
+ "node": ">= 0.8"
97
+ },
98
+ "funding": {
99
+ "type": "opencollective",
100
+ "url": "https://opencollective.com/express"
101
+ }
102
+ },
103
+ "node_modules/iconv-lite": {
104
+ "version": "0.7.2",
105
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz",
106
+ "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==",
107
+ "license": "MIT",
108
+ "dependencies": {
109
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
110
+ },
111
+ "engines": {
112
+ "node": ">=0.10.0"
113
+ },
114
+ "funding": {
115
+ "type": "opencollective",
116
+ "url": "https://opencollective.com/express"
117
+ }
118
+ },
119
+ "node_modules/inherits": {
120
+ "version": "2.0.4",
121
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
122
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
123
+ "license": "ISC"
124
+ },
125
+ "node_modules/raw-body": {
126
+ "version": "3.0.2",
127
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz",
128
+ "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==",
129
+ "license": "MIT",
130
+ "dependencies": {
131
+ "bytes": "~3.1.2",
132
+ "http-errors": "~2.0.1",
133
+ "iconv-lite": "~0.7.0",
134
+ "unpipe": "~1.0.0"
135
+ },
136
+ "engines": {
137
+ "node": ">= 0.10"
138
+ }
139
+ },
140
+ "node_modules/safer-buffer": {
141
+ "version": "2.1.2",
142
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
143
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
144
+ "license": "MIT"
145
+ },
146
+ "node_modules/setprototypeof": {
147
+ "version": "1.2.0",
148
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
149
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
150
+ "license": "ISC"
151
+ },
152
+ "node_modules/statuses": {
153
+ "version": "2.0.2",
154
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
155
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
156
+ "license": "MIT",
157
+ "engines": {
158
+ "node": ">= 0.8"
159
+ }
160
+ },
161
+ "node_modules/toidentifier": {
162
+ "version": "1.0.1",
163
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
164
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
165
+ "license": "MIT",
166
+ "engines": {
167
+ "node": ">=0.6"
168
+ }
169
+ },
170
+ "node_modules/typescript": {
171
+ "version": "5.9.3",
172
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
173
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
174
+ "dev": true,
175
+ "license": "Apache-2.0",
176
+ "bin": {
177
+ "tsc": "bin/tsc",
178
+ "tsserver": "bin/tsserver"
179
+ },
180
+ "engines": {
181
+ "node": ">=14.17"
182
+ }
183
+ },
184
+ "node_modules/undici-types": {
185
+ "version": "6.21.0",
186
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
187
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
188
+ "dev": true,
189
+ "license": "MIT"
190
+ },
191
+ "node_modules/unpipe": {
192
+ "version": "1.0.0",
193
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
194
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
195
+ "license": "MIT",
196
+ "engines": {
197
+ "node": ">= 0.8"
198
+ }
199
+ },
200
+ "node_modules/zod": {
201
+ "version": "3.25.76",
202
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
203
+ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
204
+ "license": "MIT",
205
+ "funding": {
206
+ "url": "https://github.com/sponsors/colinhacks"
207
+ }
208
+ }
209
+ }
210
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coaia-visualizer",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./index.tsx",
@@ -9,7 +9,6 @@
9
9
  ".": "./index.tsx",
10
10
  "./lib/types": "./lib/types.ts",
11
11
  "./lib/jsonl-parser": "./lib/jsonl-parser.ts",
12
- "./lib/github-provenance": "./lib/github-provenance.ts",
13
12
  "./lib/utils": "./lib/utils.ts",
14
13
  "./hooks/*": "./hooks/*.ts",
15
14
  "./components/*": "./components/*.tsx",
@@ -19,30 +18,6 @@
19
18
  "bin": {
20
19
  "coaia-visualizer": "dist/cli.js"
21
20
  },
22
- "files": [
23
- "app/**/*",
24
- "components/**/*",
25
- "dist/**/*",
26
- "hooks/**/*",
27
- "lib/**/*",
28
- "mcp/**/*",
29
- "public/**/*",
30
- "rispecs/**/*",
31
- "styles/**/*",
32
- "cli.ts",
33
- "index.tsx",
34
- "next-env.d.ts",
35
- "next.config.mjs",
36
- "postcss.config.mjs",
37
- "Dockerfile",
38
- "Dockerfile.app",
39
- "docker-build-push.sh",
40
- "docker-entrypoint.sh",
41
- "mcp-config.json",
42
- "README.md",
43
- "KINSHIP.md",
44
- "NAMING.md"
45
- ],
46
21
  "scripts": {
47
22
  "build": "next build",
48
23
  "build:cli": "tsc cli.ts --outDir dist --module esnext --target es2022 --moduleResolution bundler --esModuleInterop --skipLibCheck",
@@ -51,8 +26,8 @@
51
26
  "prepare": "npm run build:cli",
52
27
  "start": "next start",
53
28
  "test": "playwright test",
29
+ "test:rich-jsonl": "playwright test test-scripts/rich-jsonl-preservation.spec.ts",
54
30
  "test:global-cli": "playwright test test-scripts/test-global-cli.spec.ts",
55
- "verify:github-provenance": "node --experimental-strip-types test-scripts/verify-github-provenance.mjs",
56
31
  "docker:build": "docker build -t jgwill/coaia:visualizer .",
57
32
  "docker:push": "docker push jgwill/coaia:visualizer",
58
33
  "docker:build-push": "npm run docker:build && npm run docker:push",