@hustle-together/api-dev-tools 3.12.2 → 3.12.10
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/.claude/api-dev-state.json +224 -165
- package/CHANGELOG.md +29 -0
- package/README.md +58 -1
- package/bin/cli.js +1303 -89
- package/hooks/update-api-showcase.py +13 -1
- package/hooks/update-ui-showcase.py +13 -1
- package/package.json +7 -3
- package/scripts/extract-schema-docs.cjs +322 -0
- package/templates/api-showcase/_components/APIModal.tsx +100 -8
- package/templates/api-showcase/_components/APIShowcase.tsx +36 -4
- package/templates/api-showcase/_components/APITester.tsx +132 -45
- package/templates/typedoc.json +19 -0
- package/templates/ui-showcase/_components/UIShowcase.tsx +1 -1
- package/templates/ui-showcase/page.tsx +1 -1
|
@@ -1,89 +1,80 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "3.
|
|
2
|
+
"version": "3.0.0",
|
|
3
3
|
"created_at": null,
|
|
4
4
|
"endpoint": null,
|
|
5
5
|
"library": null,
|
|
6
6
|
"session_id": null,
|
|
7
|
-
"turn_count":
|
|
8
|
-
"last_turn_timestamp":
|
|
7
|
+
"turn_count": 1,
|
|
8
|
+
"last_turn_timestamp": "2025-12-28T10:50:52.182593",
|
|
9
9
|
"research_queries": [],
|
|
10
10
|
"prompt_detections": [
|
|
11
11
|
{
|
|
12
|
-
"timestamp": "2025-12-
|
|
13
|
-
"prompt_preview": "
|
|
12
|
+
"timestamp": "2025-12-28T00:34:29.707990",
|
|
13
|
+
"prompt_preview": "Is the brand guide used in other areas, like when creating UI, and whatnot?",
|
|
14
14
|
"detection": {
|
|
15
15
|
"detected": true,
|
|
16
16
|
"terms": [
|
|
17
|
-
"
|
|
17
|
+
"guide"
|
|
18
18
|
],
|
|
19
19
|
"patterns_matched": [
|
|
20
|
-
"
|
|
20
|
+
"always_research",
|
|
21
|
+
"question_pattern"
|
|
21
22
|
],
|
|
22
|
-
"confidence": "
|
|
23
|
+
"confidence": "critical"
|
|
23
24
|
},
|
|
24
25
|
"injected": true
|
|
25
26
|
},
|
|
26
27
|
{
|
|
27
|
-
"timestamp": "2025-12-
|
|
28
|
-
"prompt_preview": "
|
|
28
|
+
"timestamp": "2025-12-28T00:41:15.404338",
|
|
29
|
+
"prompt_preview": "/Users/alfonso/Documents/GitHub/api-dev-tools/Example-Outputs/install-wizard-12-28-25.md that was it...",
|
|
29
30
|
"detection": {
|
|
30
31
|
"detected": true,
|
|
31
32
|
"terms": [
|
|
32
|
-
"
|
|
33
|
+
"api",
|
|
34
|
+
"install"
|
|
33
35
|
],
|
|
34
36
|
"patterns_matched": [
|
|
35
|
-
"technical_term"
|
|
37
|
+
"technical_term",
|
|
38
|
+
"always_research"
|
|
36
39
|
],
|
|
37
|
-
"confidence": "
|
|
40
|
+
"confidence": "critical"
|
|
38
41
|
},
|
|
39
42
|
"injected": true
|
|
40
43
|
},
|
|
41
44
|
{
|
|
42
|
-
"timestamp": "2025-12-
|
|
43
|
-
"prompt_preview": "
|
|
45
|
+
"timestamp": "2025-12-28T01:00:54.437948",
|
|
46
|
+
"prompt_preview": "ok i am running api-create now how can i grab the logs once complete?",
|
|
44
47
|
"detection": {
|
|
45
48
|
"detected": true,
|
|
46
49
|
"terms": [
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"api"
|
|
50
|
-
"package",
|
|
51
|
-
"url",
|
|
52
|
-
"token",
|
|
53
|
-
"install",
|
|
54
|
-
"@hustle-together/api-dev-tools",
|
|
55
|
-
"hustle-together-api",
|
|
56
|
-
"3.11.1"
|
|
50
|
+
"how can",
|
|
51
|
+
"create now how can i grab the logs once complete?",
|
|
52
|
+
"api"
|
|
57
53
|
],
|
|
58
54
|
"patterns_matched": [
|
|
59
|
-
"
|
|
55
|
+
"question_pattern",
|
|
60
56
|
"technical_term",
|
|
61
|
-
"
|
|
57
|
+
"always_research"
|
|
62
58
|
],
|
|
63
59
|
"confidence": "critical"
|
|
64
60
|
},
|
|
65
61
|
"injected": true
|
|
66
62
|
},
|
|
67
63
|
{
|
|
68
|
-
"timestamp": "2025-12-
|
|
69
|
-
"prompt_preview": "
|
|
64
|
+
"timestamp": "2025-12-28T01:49:03.228250",
|
|
65
|
+
"prompt_preview": "Okay, we're done. I did all 14. Can you look at the test API dev tools and tell me based on our setu...",
|
|
70
66
|
"detection": {
|
|
71
67
|
"detected": true,
|
|
72
68
|
"terms": [
|
|
73
|
-
"
|
|
74
|
-
"
|
|
69
|
+
"can you look at the test api dev tools and tell me",
|
|
70
|
+
"setup here where is our page that has a registry o",
|
|
75
71
|
"api",
|
|
76
|
-
"package",
|
|
77
72
|
"test",
|
|
78
|
-
"
|
|
79
|
-
"@hustle-together/api-dev-tools",
|
|
80
|
-
"1.0.0",
|
|
81
|
-
"3.12.0",
|
|
82
|
-
"package.json"
|
|
73
|
+
"setup"
|
|
83
74
|
],
|
|
84
75
|
"patterns_matched": [
|
|
85
|
-
"always_research",
|
|
86
76
|
"question_pattern",
|
|
77
|
+
"always_research",
|
|
87
78
|
"technical_term"
|
|
88
79
|
],
|
|
89
80
|
"confidence": "critical"
|
|
@@ -91,38 +82,30 @@
|
|
|
91
82
|
"injected": true
|
|
92
83
|
},
|
|
93
84
|
{
|
|
94
|
-
"timestamp": "2025-12-
|
|
95
|
-
"prompt_preview": "
|
|
85
|
+
"timestamp": "2025-12-28T01:50:55.221078",
|
|
86
|
+
"prompt_preview": "404\nThis page could not be found. It gives that currently. Are you saying the page doesn't exist at ...",
|
|
96
87
|
"detection": {
|
|
97
88
|
"detected": true,
|
|
98
|
-
"terms": [
|
|
99
|
-
"write integration demo",
|
|
100
|
-
"api",
|
|
101
|
-
"interview-driven-api"
|
|
102
|
-
],
|
|
89
|
+
"terms": [],
|
|
103
90
|
"patterns_matched": [
|
|
104
|
-
"question_pattern"
|
|
105
|
-
"always_research",
|
|
106
|
-
"technical_term"
|
|
91
|
+
"question_pattern"
|
|
107
92
|
],
|
|
108
|
-
"confidence": "
|
|
93
|
+
"confidence": "medium"
|
|
109
94
|
},
|
|
110
95
|
"injected": true
|
|
111
96
|
},
|
|
112
97
|
{
|
|
113
|
-
"timestamp": "2025-12-
|
|
114
|
-
"prompt_preview": "
|
|
98
|
+
"timestamp": "2025-12-28T01:51:40.559460",
|
|
99
|
+
"prompt_preview": "What are you saying? We don't have that template page? I had the page for the UIPs created and how t...",
|
|
115
100
|
"detection": {
|
|
116
101
|
"detected": true,
|
|
117
102
|
"terms": [
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
"view",
|
|
121
|
-
"interview-driven-api"
|
|
103
|
+
"what are",
|
|
104
|
+
"template"
|
|
122
105
|
],
|
|
123
106
|
"patterns_matched": [
|
|
124
|
-
"technical_term",
|
|
125
107
|
"question_pattern",
|
|
108
|
+
"technical_term",
|
|
126
109
|
"always_research"
|
|
127
110
|
],
|
|
128
111
|
"confidence": "critical"
|
|
@@ -130,14 +113,24 @@
|
|
|
130
113
|
"injected": true
|
|
131
114
|
},
|
|
132
115
|
{
|
|
133
|
-
"timestamp": "2025-12-
|
|
134
|
-
"prompt_preview": "
|
|
116
|
+
"timestamp": "2025-12-28T01:55:44.694894",
|
|
117
|
+
"prompt_preview": "## Error Type\nBuild Error\n\n## Error Message\nModule not found: Can't resolve '../shared/HeroHeader'\n\n...",
|
|
135
118
|
"detection": {
|
|
136
119
|
"detected": true,
|
|
137
120
|
"terms": [
|
|
138
|
-
"
|
|
121
|
+
"build error",
|
|
122
|
+
"error",
|
|
123
|
+
"module",
|
|
124
|
+
"docs",
|
|
125
|
+
"type",
|
|
126
|
+
"import",
|
|
127
|
+
"api",
|
|
128
|
+
"test",
|
|
129
|
+
"build",
|
|
130
|
+
"client"
|
|
139
131
|
],
|
|
140
132
|
"patterns_matched": [
|
|
133
|
+
"technical_term",
|
|
141
134
|
"always_research",
|
|
142
135
|
"question_pattern"
|
|
143
136
|
],
|
|
@@ -146,40 +139,25 @@
|
|
|
146
139
|
"injected": true
|
|
147
140
|
},
|
|
148
141
|
{
|
|
149
|
-
"timestamp": "2025-12-
|
|
150
|
-
"prompt_preview": "
|
|
151
|
-
"detection": {
|
|
152
|
-
"detected": false,
|
|
153
|
-
"terms": [],
|
|
154
|
-
"patterns_matched": [],
|
|
155
|
-
"confidence": "none"
|
|
156
|
-
},
|
|
157
|
-
"injected": false
|
|
158
|
-
},
|
|
159
|
-
{
|
|
160
|
-
"timestamp": "2025-12-27T22:43:21.172124",
|
|
161
|
-
"prompt_preview": "wait was the github master updated witht he most current push?",
|
|
162
|
-
"detection": {
|
|
163
|
-
"detected": true,
|
|
164
|
-
"terms": [],
|
|
165
|
-
"patterns_matched": [],
|
|
166
|
-
"confidence": "low"
|
|
167
|
-
},
|
|
168
|
-
"injected": true
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
"timestamp": "2025-12-27T22:45:59.739199",
|
|
172
|
-
"prompt_preview": "ok now update the npm package, make a skill for this as well based on my api-dev-tools and mcp if th...",
|
|
142
|
+
"timestamp": "2025-12-28T01:57:33.172302",
|
|
143
|
+
"prompt_preview": "## Error Type\nBuild Error\n\n## Error Message\nModule not found: Can't resolve './UIShowcase'\n\n## Build...",
|
|
173
144
|
"detection": {
|
|
174
145
|
"detected": true,
|
|
175
146
|
"terms": [
|
|
176
|
-
"
|
|
177
|
-
"
|
|
178
|
-
"
|
|
147
|
+
"build error",
|
|
148
|
+
"error",
|
|
149
|
+
"module",
|
|
150
|
+
"docs",
|
|
151
|
+
"type",
|
|
152
|
+
"import",
|
|
153
|
+
"api",
|
|
154
|
+
"test",
|
|
155
|
+
"build",
|
|
156
|
+
"test-api"
|
|
179
157
|
],
|
|
180
158
|
"patterns_matched": [
|
|
181
|
-
"always_research",
|
|
182
159
|
"technical_term",
|
|
160
|
+
"always_research",
|
|
183
161
|
"question_pattern"
|
|
184
162
|
],
|
|
185
163
|
"confidence": "critical"
|
|
@@ -187,30 +165,39 @@
|
|
|
187
165
|
"injected": true
|
|
188
166
|
},
|
|
189
167
|
{
|
|
190
|
-
"timestamp": "2025-12-
|
|
191
|
-
"prompt_preview": "
|
|
168
|
+
"timestamp": "2025-12-28T01:58:28.664821",
|
|
169
|
+
"prompt_preview": "These things we need to push to the GitHub as well as the NPM. Also, the whole log is that altogethe...",
|
|
192
170
|
"detection": {
|
|
193
171
|
"detected": true,
|
|
194
172
|
"terms": [
|
|
173
|
+
"create flow so i can reuse it. ## error type",
|
|
174
|
+
"install wizard so that we can show full hustle api",
|
|
175
|
+
"error",
|
|
195
176
|
"api",
|
|
196
|
-
"
|
|
177
|
+
"docs",
|
|
178
|
+
"type",
|
|
179
|
+
"module",
|
|
180
|
+
"import",
|
|
181
|
+
"test",
|
|
182
|
+
"build"
|
|
197
183
|
],
|
|
198
184
|
"patterns_matched": [
|
|
199
185
|
"always_research",
|
|
200
|
-
"technical_term"
|
|
186
|
+
"technical_term",
|
|
187
|
+
"question_pattern"
|
|
201
188
|
],
|
|
202
189
|
"confidence": "critical"
|
|
203
190
|
},
|
|
204
191
|
"injected": true
|
|
205
192
|
},
|
|
206
193
|
{
|
|
207
|
-
"timestamp": "2025-12-
|
|
208
|
-
"prompt_preview": "
|
|
194
|
+
"timestamp": "2025-12-28T01:59:34.129395",
|
|
195
|
+
"prompt_preview": "The APIs that we created are not showing up in the registry at all, or at least on the API create pa...",
|
|
209
196
|
"detection": {
|
|
210
197
|
"detected": true,
|
|
211
198
|
"terms": [
|
|
212
|
-
"
|
|
213
|
-
"
|
|
199
|
+
"create page.",
|
|
200
|
+
"api"
|
|
214
201
|
],
|
|
215
202
|
"patterns_matched": [
|
|
216
203
|
"technical_term",
|
|
@@ -222,135 +209,146 @@
|
|
|
222
209
|
"injected": true
|
|
223
210
|
},
|
|
224
211
|
{
|
|
225
|
-
"timestamp": "2025-12-
|
|
226
|
-
"prompt_preview": "
|
|
212
|
+
"timestamp": "2025-12-28T02:02:42.904634",
|
|
213
|
+
"prompt_preview": "The try doesn't really give you instructions. For instance, in this case, it says query parameters b...",
|
|
227
214
|
"detection": {
|
|
228
215
|
"detected": true,
|
|
229
|
-
"terms": [
|
|
230
|
-
|
|
231
|
-
|
|
216
|
+
"terms": [
|
|
217
|
+
"how to",
|
|
218
|
+
"does that. but i don't see the tests that i can ru",
|
|
219
|
+
"documentation",
|
|
220
|
+
"schema",
|
|
221
|
+
"method",
|
|
222
|
+
"query",
|
|
223
|
+
"test",
|
|
224
|
+
"view"
|
|
225
|
+
],
|
|
226
|
+
"patterns_matched": [
|
|
227
|
+
"always_research",
|
|
228
|
+
"question_pattern",
|
|
229
|
+
"technical_term"
|
|
230
|
+
],
|
|
231
|
+
"confidence": "critical"
|
|
232
232
|
},
|
|
233
233
|
"injected": true
|
|
234
234
|
},
|
|
235
235
|
{
|
|
236
|
-
"timestamp": "2025-12-
|
|
237
|
-
"prompt_preview": "
|
|
236
|
+
"timestamp": "2025-12-28T02:04:26.552295",
|
|
237
|
+
"prompt_preview": " 2. Proper fix: Update the hooks to extract parameter docs from Zod schemas into registry.json duri...",
|
|
238
238
|
"detection": {
|
|
239
239
|
"detected": true,
|
|
240
240
|
"terms": [
|
|
241
|
-
"
|
|
242
|
-
"
|
|
241
|
+
"update the hooks to extract parameter docs from zo",
|
|
242
|
+
"docs",
|
|
243
|
+
"parameter",
|
|
244
|
+
"fix",
|
|
245
|
+
"registry.json"
|
|
243
246
|
],
|
|
244
247
|
"patterns_matched": [
|
|
248
|
+
"question_pattern",
|
|
249
|
+
"always_research",
|
|
245
250
|
"technical_term"
|
|
246
251
|
],
|
|
247
|
-
"confidence": "
|
|
252
|
+
"confidence": "critical"
|
|
248
253
|
},
|
|
249
254
|
"injected": true
|
|
250
255
|
},
|
|
251
256
|
{
|
|
252
|
-
"timestamp": "2025-12-
|
|
253
|
-
"prompt_preview": "
|
|
257
|
+
"timestamp": "2025-12-28T02:13:40.138370",
|
|
258
|
+
"prompt_preview": "That's much better in terms of the endpoints and whatnot, but my concern still is, to try and actual...",
|
|
254
259
|
"detection": {
|
|
255
260
|
"detected": true,
|
|
256
261
|
"terms": [
|
|
257
|
-
"
|
|
262
|
+
"change any query parameter, i get a 404. same thin",
|
|
263
|
+
"api",
|
|
264
|
+
"parameter",
|
|
265
|
+
"query",
|
|
266
|
+
"test"
|
|
258
267
|
],
|
|
259
268
|
"patterns_matched": [
|
|
269
|
+
"always_research",
|
|
260
270
|
"technical_term",
|
|
261
271
|
"question_pattern"
|
|
262
272
|
],
|
|
263
|
-
"confidence": "
|
|
273
|
+
"confidence": "critical"
|
|
264
274
|
},
|
|
265
275
|
"injected": true
|
|
266
276
|
},
|
|
267
277
|
{
|
|
268
|
-
"timestamp": "2025-12-
|
|
269
|
-
"prompt_preview": "
|
|
278
|
+
"timestamp": "2025-12-28T10:45:51.054600",
|
|
279
|
+
"prompt_preview": "Uh-oh, I don't see the API showing up anymore. The registry. Also, how are we doing documentation th...",
|
|
270
280
|
"detection": {
|
|
271
281
|
"detected": true,
|
|
272
282
|
"terms": [
|
|
273
|
-
"
|
|
283
|
+
"can just run it and see it work",
|
|
284
|
+
"api",
|
|
285
|
+
"documentation",
|
|
286
|
+
"method"
|
|
274
287
|
],
|
|
275
288
|
"patterns_matched": [
|
|
276
|
-
"technical_term"
|
|
289
|
+
"technical_term",
|
|
290
|
+
"always_research",
|
|
291
|
+
"question_pattern"
|
|
277
292
|
],
|
|
278
|
-
"confidence": "
|
|
293
|
+
"confidence": "critical"
|
|
279
294
|
},
|
|
280
295
|
"injected": true
|
|
281
296
|
},
|
|
282
297
|
{
|
|
283
|
-
"timestamp": "2025-12-
|
|
284
|
-
"prompt_preview": "
|
|
285
|
-
"detection": {
|
|
286
|
-
"detected": false,
|
|
287
|
-
"terms": [],
|
|
288
|
-
"patterns_matched": [],
|
|
289
|
-
"confidence": "none"
|
|
290
|
-
},
|
|
291
|
-
"injected": false
|
|
292
|
-
},
|
|
293
|
-
{
|
|
294
|
-
"timestamp": "2025-12-27T23:05:45.854012",
|
|
295
|
-
"prompt_preview": "Yeah, let's create a new project with maybe a base Next.js application in it. We'll install the npm ...",
|
|
298
|
+
"timestamp": "2025-12-28T11:12:45.425025",
|
|
299
|
+
"prompt_preview": "Please make sure you update our README and any documentation needed based on these changes.Does this...",
|
|
296
300
|
"detection": {
|
|
297
301
|
"detected": true,
|
|
298
302
|
"terms": [
|
|
299
|
-
"
|
|
300
|
-
"
|
|
301
|
-
"
|
|
302
|
-
"install",
|
|
303
|
-
"next.js"
|
|
303
|
+
"update our readme and any documentation needed bas",
|
|
304
|
+
"documentation",
|
|
305
|
+
"template"
|
|
304
306
|
],
|
|
305
307
|
"patterns_matched": [
|
|
306
|
-
"
|
|
308
|
+
"always_research",
|
|
307
309
|
"question_pattern",
|
|
308
|
-
"
|
|
310
|
+
"technical_term"
|
|
309
311
|
],
|
|
310
312
|
"confidence": "critical"
|
|
311
313
|
},
|
|
312
314
|
"injected": true
|
|
313
315
|
},
|
|
314
316
|
{
|
|
315
|
-
"timestamp": "2025-12-
|
|
316
|
-
"prompt_preview": "
|
|
317
|
+
"timestamp": "2025-12-28T11:17:15.067464",
|
|
318
|
+
"prompt_preview": "On the template page, for the API and UI ones, can we make it a bit wider to fit everything a bit be...",
|
|
317
319
|
"detection": {
|
|
318
320
|
"detected": true,
|
|
319
321
|
"terms": [
|
|
320
|
-
"
|
|
322
|
+
"can we make it a bit wider to fit everything a bit",
|
|
321
323
|
"api",
|
|
324
|
+
"documentation",
|
|
325
|
+
"schema",
|
|
326
|
+
"request",
|
|
327
|
+
"query",
|
|
322
328
|
"test",
|
|
323
|
-
"
|
|
329
|
+
"template",
|
|
330
|
+
"view"
|
|
324
331
|
],
|
|
325
332
|
"patterns_matched": [
|
|
326
|
-
"always_research",
|
|
327
333
|
"question_pattern",
|
|
328
|
-
"technical_term"
|
|
334
|
+
"technical_term",
|
|
335
|
+
"always_research"
|
|
329
336
|
],
|
|
330
337
|
"confidence": "critical"
|
|
331
338
|
},
|
|
332
339
|
"injected": true
|
|
333
340
|
},
|
|
334
341
|
{
|
|
335
|
-
"timestamp": "2025-12-
|
|
336
|
-
"prompt_preview": "
|
|
342
|
+
"timestamp": "2025-12-28T11:25:20.004446",
|
|
343
|
+
"prompt_preview": "push all to github please and i will upload to npm package",
|
|
337
344
|
"detection": {
|
|
338
345
|
"detected": true,
|
|
339
346
|
"terms": [
|
|
340
|
-
"
|
|
341
|
-
"error",
|
|
342
|
-
"api",
|
|
343
|
-
"test",
|
|
344
|
-
"hook",
|
|
345
|
-
"hustle-api",
|
|
346
|
-
"test-api",
|
|
347
|
-
"v2.0.76",
|
|
348
|
-
"4.5"
|
|
347
|
+
"package"
|
|
349
348
|
],
|
|
350
349
|
"patterns_matched": [
|
|
351
|
-
"always_research",
|
|
352
350
|
"technical_term",
|
|
353
|
-
"
|
|
351
|
+
"always_research"
|
|
354
352
|
],
|
|
355
353
|
"confidence": "critical"
|
|
356
354
|
},
|
|
@@ -359,40 +357,101 @@
|
|
|
359
357
|
],
|
|
360
358
|
"phases": {
|
|
361
359
|
"disambiguation": {
|
|
362
|
-
"status": "not_started"
|
|
360
|
+
"status": "not_started",
|
|
361
|
+
"clarified": null,
|
|
362
|
+
"search_variations": [],
|
|
363
|
+
"description": "Pre-research disambiguation to clarify ambiguous requests",
|
|
364
|
+
"user_question_asked": true,
|
|
365
|
+
"last_user_response": "{}",
|
|
366
|
+
"last_question_timestamp": "2025-12-28T10:50:52.182607",
|
|
367
|
+
"last_question_type": "unknown"
|
|
363
368
|
},
|
|
364
369
|
"scope": {
|
|
365
|
-
"status": "not_started"
|
|
370
|
+
"status": "not_started",
|
|
371
|
+
"confirmed": false,
|
|
372
|
+
"description": "Initial scope understanding and confirmation"
|
|
366
373
|
},
|
|
367
374
|
"research_initial": {
|
|
368
|
-
"status": "not_started"
|
|
375
|
+
"status": "not_started",
|
|
376
|
+
"sources": [],
|
|
377
|
+
"summary_approved": false,
|
|
378
|
+
"description": "Context7/WebSearch research for live documentation"
|
|
369
379
|
},
|
|
370
380
|
"interview": {
|
|
371
|
-
"status": "
|
|
381
|
+
"status": "in_progress",
|
|
382
|
+
"questions": [
|
|
383
|
+
{
|
|
384
|
+
"question": "",
|
|
385
|
+
"timestamp": "2025-12-28T10:50:52.182601",
|
|
386
|
+
"tool_used": true,
|
|
387
|
+
"has_options": false,
|
|
388
|
+
"options_count": 0,
|
|
389
|
+
"options": [],
|
|
390
|
+
"user_response": "{}",
|
|
391
|
+
"selected_value": null
|
|
392
|
+
}
|
|
393
|
+
],
|
|
394
|
+
"user_question_count": 1,
|
|
395
|
+
"structured_question_count": 0,
|
|
396
|
+
"decisions": {},
|
|
397
|
+
"description": "Structured interview about requirements (generated FROM research)",
|
|
398
|
+
"started_at": "2025-12-28T10:50:52.182604",
|
|
399
|
+
"last_activity": "2025-12-28T10:50:52.182605",
|
|
400
|
+
"user_question_asked": true
|
|
372
401
|
},
|
|
373
402
|
"research_deep": {
|
|
374
|
-
"status": "not_started"
|
|
403
|
+
"status": "not_started",
|
|
404
|
+
"sources": [],
|
|
405
|
+
"proposed_searches": [],
|
|
406
|
+
"approved_searches": [],
|
|
407
|
+
"skipped_searches": [],
|
|
408
|
+
"description": "Deep dive based on interview answers (adaptive, not shotgun)"
|
|
375
409
|
},
|
|
376
410
|
"schema_creation": {
|
|
377
|
-
"status": "not_started"
|
|
411
|
+
"status": "not_started",
|
|
412
|
+
"schema_file": null,
|
|
413
|
+
"schema_approved": false,
|
|
414
|
+
"description": "Zod schema creation from research"
|
|
378
415
|
},
|
|
379
416
|
"environment_check": {
|
|
380
|
-
"status": "not_started"
|
|
417
|
+
"status": "not_started",
|
|
418
|
+
"keys_verified": [],
|
|
419
|
+
"keys_missing": [],
|
|
420
|
+
"confirmed": false,
|
|
421
|
+
"description": "API key and environment verification"
|
|
381
422
|
},
|
|
382
423
|
"tdd_red": {
|
|
383
|
-
"status": "not_started"
|
|
424
|
+
"status": "not_started",
|
|
425
|
+
"test_file": null,
|
|
426
|
+
"test_count": 0,
|
|
427
|
+
"test_matrix_approved": false,
|
|
428
|
+
"description": "Write failing tests first"
|
|
384
429
|
},
|
|
385
430
|
"tdd_green": {
|
|
386
|
-
"status": "not_started"
|
|
431
|
+
"status": "not_started",
|
|
432
|
+
"implementation_file": null,
|
|
433
|
+
"all_tests_passing": false,
|
|
434
|
+
"description": "Minimal implementation to pass tests"
|
|
387
435
|
},
|
|
388
436
|
"verify": {
|
|
389
|
-
"status": "not_started"
|
|
437
|
+
"status": "not_started",
|
|
438
|
+
"gaps_found": 0,
|
|
439
|
+
"gaps_fixed": 0,
|
|
440
|
+
"intentional_omissions": [],
|
|
441
|
+
"re_research_done": false,
|
|
442
|
+
"description": "Re-research after Green to verify implementation matches docs"
|
|
390
443
|
},
|
|
391
444
|
"tdd_refactor": {
|
|
392
|
-
"status": "not_started"
|
|
445
|
+
"status": "not_started",
|
|
446
|
+
"description": "Code cleanup while keeping tests green"
|
|
393
447
|
},
|
|
394
448
|
"documentation": {
|
|
395
|
-
"status": "not_started"
|
|
449
|
+
"status": "not_started",
|
|
450
|
+
"files_updated": [],
|
|
451
|
+
"manifest_updated": false,
|
|
452
|
+
"openapi_updated": false,
|
|
453
|
+
"research_cached": false,
|
|
454
|
+
"description": "Update manifests, OpenAPI, cache research"
|
|
396
455
|
}
|
|
397
456
|
},
|
|
398
457
|
"verification": {
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [3.12.10] - 2025-12-28
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- **TypeDoc Integration** - Generate API documentation from TSDoc comments
|
|
10
|
+
- `pnpm typedoc` script to generate Markdown docs
|
|
11
|
+
- `pnpm typedoc:watch` for development mode
|
|
12
|
+
- `templates/typedoc.json` configuration template
|
|
13
|
+
- Runs during Phase 13 (Documentation)
|
|
14
|
+
|
|
15
|
+
- **API Showcase Example Requests** - Pre-built, runnable examples in the testing UI
|
|
16
|
+
- Example selector UI with clickable buttons
|
|
17
|
+
- Auto-fills query parameters when clicked
|
|
18
|
+
- "Copy curl" button for each example
|
|
19
|
+
- Examples auto-generated from Zod schema parameters
|
|
20
|
+
|
|
21
|
+
- **Enhanced extract-schema-docs.cjs** - Generates working examples from schemas
|
|
22
|
+
- Detects required params, enums, and defaults
|
|
23
|
+
- Builds query strings and curl commands
|
|
24
|
+
- Outputs `examples` section for registry.json
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- **APIModal 404 errors** - Fixed endpoint path building for action-based APIs
|
|
29
|
+
- Action-based APIs now use query params (`/api/v2/unsplash?action=search`)
|
|
30
|
+
- No longer incorrectly builds sub-paths (`/api/v2/unsplash/search`)
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
5
34
|
## [1.0.1] - 2025-12-28
|
|
6
35
|
|
|
7
36
|
### Fixed
|