copilot-tap-extension 2.0.8 → 2.0.9

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 (54) hide show
  1. package/README.md +2 -1
  2. package/SOUL.md +51 -0
  3. package/bin/install.mjs +2 -1
  4. package/dist/copilot-instructions.md +5 -0
  5. package/dist/extension.mjs +361 -20
  6. package/dist/version.json +1 -1
  7. package/docs/adr/0001-persistent-config-default-ownership.md +33 -0
  8. package/docs/adr/0002-local-provider-gateway-runtime-security.md +36 -0
  9. package/docs/adr/0003-emitter-delivery-lifecycle.md +68 -0
  10. package/docs/adr/0004-persistent-config-canonical-streams.md +86 -0
  11. package/docs/adr/0005-provider-sdk-push-and-dynamic-tools.md +48 -0
  12. package/docs/adr/0006-command-emitter-cwd-workspace-boundary.md +46 -0
  13. package/docs/adr/0007-runtime-session-workspace-context.md +62 -0
  14. package/docs/evals.md +41 -0
  15. package/docs/evolution-of-tap-icon.html +989 -0
  16. package/docs/providers.md +242 -0
  17. package/docs/recipes/adaptive-agent.md +303 -0
  18. package/docs/recipes/agent-brainstorm/100-extension-ideas.md +288 -0
  19. package/docs/recipes/agent-brainstorm/deep-ideas.md +216 -0
  20. package/docs/recipes/ambient-guardian.md +314 -0
  21. package/docs/recipes/browser-bridge.md +162 -0
  22. package/docs/recipes/codex-goals-for-tap-goal.md +136 -0
  23. package/docs/recipes/copilot-sdk-canvas.md +147 -0
  24. package/docs/recipes/deferred-cognition.md +310 -0
  25. package/docs/recipes/provider-integration-patterns.md +93 -0
  26. package/docs/recipes/provider-interface-advanced.md +1364 -0
  27. package/docs/recipes/provider-interface-core-profile.md +568 -0
  28. package/docs/recipes/tap-control-plane-roadmap.md +60 -0
  29. package/docs/recipes/universal-tool-gateway.md +202 -0
  30. package/docs/reference.md +229 -0
  31. package/docs/use-cases.md +348 -0
  32. package/package.json +4 -1
  33. package/providers/detour/README.md +84 -0
  34. package/providers/detour/bridge.js +219 -0
  35. package/providers/detour/index.mjs +322 -0
  36. package/providers/detour/package-lock.json +577 -0
  37. package/providers/detour/package.json +19 -0
  38. package/providers/detour/scripts/build.mjs +31 -0
  39. package/providers/detour/src/bridge.js +256 -0
  40. package/providers/detour/src/contracts.js +40 -0
  41. package/providers/detour/src/inspector.js +260 -0
  42. package/providers/detour/src/inspector.test.mjs +53 -0
  43. package/providers/detour/src/panel.js +465 -0
  44. package/providers/detour/src/provider-core.js +233 -0
  45. package/providers/detour/src/provider-core.test.mjs +185 -0
  46. package/providers/detour/src/react-context-core.js +143 -0
  47. package/providers/detour/src/react-context.js +44 -0
  48. package/providers/detour/src/react-context.test.mjs +41 -0
  49. package/providers/templates/README.md +23 -0
  50. package/providers/templates/ci-review-provider.mjs +46 -0
  51. package/providers/templates/detour-workflow-provider.mjs +41 -0
  52. package/providers/templates/jira-github-provider.mjs +42 -0
  53. package/providers/templates/provider-utils.mjs +45 -0
  54. package/providers/templates/sast-triage-provider.mjs +51 -0
@@ -0,0 +1,577 @@
1
+ {
2
+ "name": "detour-provider",
3
+ "version": "2.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "detour-provider",
9
+ "version": "2.0.0",
10
+ "dependencies": {
11
+ "ws": "^8.18.0"
12
+ },
13
+ "devDependencies": {
14
+ "bippy": "^0.2.11",
15
+ "esbuild": "^0.25.4"
16
+ }
17
+ },
18
+ "node_modules/@esbuild/aix-ppc64": {
19
+ "version": "0.25.12",
20
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
21
+ "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
22
+ "cpu": [
23
+ "ppc64"
24
+ ],
25
+ "dev": true,
26
+ "license": "MIT",
27
+ "optional": true,
28
+ "os": [
29
+ "aix"
30
+ ],
31
+ "engines": {
32
+ "node": ">=18"
33
+ }
34
+ },
35
+ "node_modules/@esbuild/android-arm": {
36
+ "version": "0.25.12",
37
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
38
+ "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
39
+ "cpu": [
40
+ "arm"
41
+ ],
42
+ "dev": true,
43
+ "license": "MIT",
44
+ "optional": true,
45
+ "os": [
46
+ "android"
47
+ ],
48
+ "engines": {
49
+ "node": ">=18"
50
+ }
51
+ },
52
+ "node_modules/@esbuild/android-arm64": {
53
+ "version": "0.25.12",
54
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
55
+ "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
56
+ "cpu": [
57
+ "arm64"
58
+ ],
59
+ "dev": true,
60
+ "license": "MIT",
61
+ "optional": true,
62
+ "os": [
63
+ "android"
64
+ ],
65
+ "engines": {
66
+ "node": ">=18"
67
+ }
68
+ },
69
+ "node_modules/@esbuild/android-x64": {
70
+ "version": "0.25.12",
71
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
72
+ "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
73
+ "cpu": [
74
+ "x64"
75
+ ],
76
+ "dev": true,
77
+ "license": "MIT",
78
+ "optional": true,
79
+ "os": [
80
+ "android"
81
+ ],
82
+ "engines": {
83
+ "node": ">=18"
84
+ }
85
+ },
86
+ "node_modules/@esbuild/darwin-arm64": {
87
+ "version": "0.25.12",
88
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
89
+ "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
90
+ "cpu": [
91
+ "arm64"
92
+ ],
93
+ "dev": true,
94
+ "license": "MIT",
95
+ "optional": true,
96
+ "os": [
97
+ "darwin"
98
+ ],
99
+ "engines": {
100
+ "node": ">=18"
101
+ }
102
+ },
103
+ "node_modules/@esbuild/darwin-x64": {
104
+ "version": "0.25.12",
105
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
106
+ "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
107
+ "cpu": [
108
+ "x64"
109
+ ],
110
+ "dev": true,
111
+ "license": "MIT",
112
+ "optional": true,
113
+ "os": [
114
+ "darwin"
115
+ ],
116
+ "engines": {
117
+ "node": ">=18"
118
+ }
119
+ },
120
+ "node_modules/@esbuild/freebsd-arm64": {
121
+ "version": "0.25.12",
122
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
123
+ "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
124
+ "cpu": [
125
+ "arm64"
126
+ ],
127
+ "dev": true,
128
+ "license": "MIT",
129
+ "optional": true,
130
+ "os": [
131
+ "freebsd"
132
+ ],
133
+ "engines": {
134
+ "node": ">=18"
135
+ }
136
+ },
137
+ "node_modules/@esbuild/freebsd-x64": {
138
+ "version": "0.25.12",
139
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
140
+ "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
141
+ "cpu": [
142
+ "x64"
143
+ ],
144
+ "dev": true,
145
+ "license": "MIT",
146
+ "optional": true,
147
+ "os": [
148
+ "freebsd"
149
+ ],
150
+ "engines": {
151
+ "node": ">=18"
152
+ }
153
+ },
154
+ "node_modules/@esbuild/linux-arm": {
155
+ "version": "0.25.12",
156
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
157
+ "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
158
+ "cpu": [
159
+ "arm"
160
+ ],
161
+ "dev": true,
162
+ "license": "MIT",
163
+ "optional": true,
164
+ "os": [
165
+ "linux"
166
+ ],
167
+ "engines": {
168
+ "node": ">=18"
169
+ }
170
+ },
171
+ "node_modules/@esbuild/linux-arm64": {
172
+ "version": "0.25.12",
173
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
174
+ "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
175
+ "cpu": [
176
+ "arm64"
177
+ ],
178
+ "dev": true,
179
+ "license": "MIT",
180
+ "optional": true,
181
+ "os": [
182
+ "linux"
183
+ ],
184
+ "engines": {
185
+ "node": ">=18"
186
+ }
187
+ },
188
+ "node_modules/@esbuild/linux-ia32": {
189
+ "version": "0.25.12",
190
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
191
+ "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
192
+ "cpu": [
193
+ "ia32"
194
+ ],
195
+ "dev": true,
196
+ "license": "MIT",
197
+ "optional": true,
198
+ "os": [
199
+ "linux"
200
+ ],
201
+ "engines": {
202
+ "node": ">=18"
203
+ }
204
+ },
205
+ "node_modules/@esbuild/linux-loong64": {
206
+ "version": "0.25.12",
207
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
208
+ "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
209
+ "cpu": [
210
+ "loong64"
211
+ ],
212
+ "dev": true,
213
+ "license": "MIT",
214
+ "optional": true,
215
+ "os": [
216
+ "linux"
217
+ ],
218
+ "engines": {
219
+ "node": ">=18"
220
+ }
221
+ },
222
+ "node_modules/@esbuild/linux-mips64el": {
223
+ "version": "0.25.12",
224
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
225
+ "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
226
+ "cpu": [
227
+ "mips64el"
228
+ ],
229
+ "dev": true,
230
+ "license": "MIT",
231
+ "optional": true,
232
+ "os": [
233
+ "linux"
234
+ ],
235
+ "engines": {
236
+ "node": ">=18"
237
+ }
238
+ },
239
+ "node_modules/@esbuild/linux-ppc64": {
240
+ "version": "0.25.12",
241
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
242
+ "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
243
+ "cpu": [
244
+ "ppc64"
245
+ ],
246
+ "dev": true,
247
+ "license": "MIT",
248
+ "optional": true,
249
+ "os": [
250
+ "linux"
251
+ ],
252
+ "engines": {
253
+ "node": ">=18"
254
+ }
255
+ },
256
+ "node_modules/@esbuild/linux-riscv64": {
257
+ "version": "0.25.12",
258
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
259
+ "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
260
+ "cpu": [
261
+ "riscv64"
262
+ ],
263
+ "dev": true,
264
+ "license": "MIT",
265
+ "optional": true,
266
+ "os": [
267
+ "linux"
268
+ ],
269
+ "engines": {
270
+ "node": ">=18"
271
+ }
272
+ },
273
+ "node_modules/@esbuild/linux-s390x": {
274
+ "version": "0.25.12",
275
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
276
+ "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
277
+ "cpu": [
278
+ "s390x"
279
+ ],
280
+ "dev": true,
281
+ "license": "MIT",
282
+ "optional": true,
283
+ "os": [
284
+ "linux"
285
+ ],
286
+ "engines": {
287
+ "node": ">=18"
288
+ }
289
+ },
290
+ "node_modules/@esbuild/linux-x64": {
291
+ "version": "0.25.12",
292
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
293
+ "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
294
+ "cpu": [
295
+ "x64"
296
+ ],
297
+ "dev": true,
298
+ "license": "MIT",
299
+ "optional": true,
300
+ "os": [
301
+ "linux"
302
+ ],
303
+ "engines": {
304
+ "node": ">=18"
305
+ }
306
+ },
307
+ "node_modules/@esbuild/netbsd-arm64": {
308
+ "version": "0.25.12",
309
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
310
+ "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
311
+ "cpu": [
312
+ "arm64"
313
+ ],
314
+ "dev": true,
315
+ "license": "MIT",
316
+ "optional": true,
317
+ "os": [
318
+ "netbsd"
319
+ ],
320
+ "engines": {
321
+ "node": ">=18"
322
+ }
323
+ },
324
+ "node_modules/@esbuild/netbsd-x64": {
325
+ "version": "0.25.12",
326
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
327
+ "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
328
+ "cpu": [
329
+ "x64"
330
+ ],
331
+ "dev": true,
332
+ "license": "MIT",
333
+ "optional": true,
334
+ "os": [
335
+ "netbsd"
336
+ ],
337
+ "engines": {
338
+ "node": ">=18"
339
+ }
340
+ },
341
+ "node_modules/@esbuild/openbsd-arm64": {
342
+ "version": "0.25.12",
343
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
344
+ "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
345
+ "cpu": [
346
+ "arm64"
347
+ ],
348
+ "dev": true,
349
+ "license": "MIT",
350
+ "optional": true,
351
+ "os": [
352
+ "openbsd"
353
+ ],
354
+ "engines": {
355
+ "node": ">=18"
356
+ }
357
+ },
358
+ "node_modules/@esbuild/openbsd-x64": {
359
+ "version": "0.25.12",
360
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
361
+ "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
362
+ "cpu": [
363
+ "x64"
364
+ ],
365
+ "dev": true,
366
+ "license": "MIT",
367
+ "optional": true,
368
+ "os": [
369
+ "openbsd"
370
+ ],
371
+ "engines": {
372
+ "node": ">=18"
373
+ }
374
+ },
375
+ "node_modules/@esbuild/openharmony-arm64": {
376
+ "version": "0.25.12",
377
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
378
+ "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
379
+ "cpu": [
380
+ "arm64"
381
+ ],
382
+ "dev": true,
383
+ "license": "MIT",
384
+ "optional": true,
385
+ "os": [
386
+ "openharmony"
387
+ ],
388
+ "engines": {
389
+ "node": ">=18"
390
+ }
391
+ },
392
+ "node_modules/@esbuild/sunos-x64": {
393
+ "version": "0.25.12",
394
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
395
+ "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
396
+ "cpu": [
397
+ "x64"
398
+ ],
399
+ "dev": true,
400
+ "license": "MIT",
401
+ "optional": true,
402
+ "os": [
403
+ "sunos"
404
+ ],
405
+ "engines": {
406
+ "node": ">=18"
407
+ }
408
+ },
409
+ "node_modules/@esbuild/win32-arm64": {
410
+ "version": "0.25.12",
411
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
412
+ "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
413
+ "cpu": [
414
+ "arm64"
415
+ ],
416
+ "dev": true,
417
+ "license": "MIT",
418
+ "optional": true,
419
+ "os": [
420
+ "win32"
421
+ ],
422
+ "engines": {
423
+ "node": ">=18"
424
+ }
425
+ },
426
+ "node_modules/@esbuild/win32-ia32": {
427
+ "version": "0.25.12",
428
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
429
+ "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
430
+ "cpu": [
431
+ "ia32"
432
+ ],
433
+ "dev": true,
434
+ "license": "MIT",
435
+ "optional": true,
436
+ "os": [
437
+ "win32"
438
+ ],
439
+ "engines": {
440
+ "node": ">=18"
441
+ }
442
+ },
443
+ "node_modules/@esbuild/win32-x64": {
444
+ "version": "0.25.12",
445
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
446
+ "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
447
+ "cpu": [
448
+ "x64"
449
+ ],
450
+ "dev": true,
451
+ "license": "MIT",
452
+ "optional": true,
453
+ "os": [
454
+ "win32"
455
+ ],
456
+ "engines": {
457
+ "node": ">=18"
458
+ }
459
+ },
460
+ "node_modules/@types/react": {
461
+ "version": "19.2.14",
462
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
463
+ "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
464
+ "dev": true,
465
+ "license": "MIT",
466
+ "peer": true,
467
+ "dependencies": {
468
+ "csstype": "^3.2.2"
469
+ }
470
+ },
471
+ "node_modules/@types/react-reconciler": {
472
+ "version": "0.28.9",
473
+ "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.9.tgz",
474
+ "integrity": "sha512-HHM3nxyUZ3zAylX8ZEyrDNd2XZOnQ0D5XfunJF5FLQnZbHHYq4UWvW1QfelQNXv1ICNkwYhfxjwfnqivYB6bFg==",
475
+ "dev": true,
476
+ "license": "MIT",
477
+ "peerDependencies": {
478
+ "@types/react": "*"
479
+ }
480
+ },
481
+ "node_modules/bippy": {
482
+ "version": "0.2.24",
483
+ "resolved": "https://registry.npmjs.org/bippy/-/bippy-0.2.24.tgz",
484
+ "integrity": "sha512-EZ8GSYSyPywsUmcOH2Kss/yhI8Auoku1WGKOK3/Ya7vukriRPJ2/8q+KApvh8LtX4KXNDBE5QD6furYz2Yei+Q==",
485
+ "dev": true,
486
+ "license": "MIT",
487
+ "dependencies": {
488
+ "@types/react-reconciler": "^0.28.9"
489
+ },
490
+ "peerDependencies": {
491
+ "react": ">=17.0.1"
492
+ }
493
+ },
494
+ "node_modules/csstype": {
495
+ "version": "3.2.3",
496
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
497
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
498
+ "dev": true,
499
+ "license": "MIT",
500
+ "peer": true
501
+ },
502
+ "node_modules/esbuild": {
503
+ "version": "0.25.12",
504
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
505
+ "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
506
+ "dev": true,
507
+ "hasInstallScript": true,
508
+ "license": "MIT",
509
+ "bin": {
510
+ "esbuild": "bin/esbuild"
511
+ },
512
+ "engines": {
513
+ "node": ">=18"
514
+ },
515
+ "optionalDependencies": {
516
+ "@esbuild/aix-ppc64": "0.25.12",
517
+ "@esbuild/android-arm": "0.25.12",
518
+ "@esbuild/android-arm64": "0.25.12",
519
+ "@esbuild/android-x64": "0.25.12",
520
+ "@esbuild/darwin-arm64": "0.25.12",
521
+ "@esbuild/darwin-x64": "0.25.12",
522
+ "@esbuild/freebsd-arm64": "0.25.12",
523
+ "@esbuild/freebsd-x64": "0.25.12",
524
+ "@esbuild/linux-arm": "0.25.12",
525
+ "@esbuild/linux-arm64": "0.25.12",
526
+ "@esbuild/linux-ia32": "0.25.12",
527
+ "@esbuild/linux-loong64": "0.25.12",
528
+ "@esbuild/linux-mips64el": "0.25.12",
529
+ "@esbuild/linux-ppc64": "0.25.12",
530
+ "@esbuild/linux-riscv64": "0.25.12",
531
+ "@esbuild/linux-s390x": "0.25.12",
532
+ "@esbuild/linux-x64": "0.25.12",
533
+ "@esbuild/netbsd-arm64": "0.25.12",
534
+ "@esbuild/netbsd-x64": "0.25.12",
535
+ "@esbuild/openbsd-arm64": "0.25.12",
536
+ "@esbuild/openbsd-x64": "0.25.12",
537
+ "@esbuild/openharmony-arm64": "0.25.12",
538
+ "@esbuild/sunos-x64": "0.25.12",
539
+ "@esbuild/win32-arm64": "0.25.12",
540
+ "@esbuild/win32-ia32": "0.25.12",
541
+ "@esbuild/win32-x64": "0.25.12"
542
+ }
543
+ },
544
+ "node_modules/react": {
545
+ "version": "19.2.5",
546
+ "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz",
547
+ "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==",
548
+ "dev": true,
549
+ "license": "MIT",
550
+ "peer": true,
551
+ "engines": {
552
+ "node": ">=0.10.0"
553
+ }
554
+ },
555
+ "node_modules/ws": {
556
+ "version": "8.20.0",
557
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz",
558
+ "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==",
559
+ "license": "MIT",
560
+ "engines": {
561
+ "node": ">=10.0.0"
562
+ },
563
+ "peerDependencies": {
564
+ "bufferutil": "^4.0.1",
565
+ "utf-8-validate": ">=5.0.2"
566
+ },
567
+ "peerDependenciesMeta": {
568
+ "bufferutil": {
569
+ "optional": true
570
+ },
571
+ "utf-8-validate": {
572
+ "optional": true
573
+ }
574
+ }
575
+ }
576
+ }
577
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "detour-provider",
3
+ "version": "2.0.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "description": "Detour — browser↔agent bridge for ※ tap. Element inspection, annotations, 2-way agent communication.",
7
+ "main": "index.mjs",
8
+ "scripts": {
9
+ "build": "node scripts/build.mjs",
10
+ "dev": "node scripts/build.mjs --watch"
11
+ },
12
+ "dependencies": {
13
+ "ws": "^8.18.0"
14
+ },
15
+ "devDependencies": {
16
+ "bippy": "^0.2.11",
17
+ "esbuild": "^0.25.4"
18
+ }
19
+ }
@@ -0,0 +1,31 @@
1
+ import esbuild from "esbuild";
2
+
3
+ const watch = process.argv.includes("--watch");
4
+
5
+ const config = {
6
+ entryPoints: ["src/bridge.js"],
7
+ bundle: true,
8
+ outfile: "dist/bridge.js",
9
+ format: "iife",
10
+ target: ["es2020"],
11
+ minify: false,
12
+ keepNames: true,
13
+ sourcemap: "inline",
14
+ platform: "browser",
15
+ define: {
16
+ "process.env.NODE_ENV": '"production"',
17
+ },
18
+ // bippy may not resolve in all cases — mark as external if not found
19
+ logLevel: "warning",
20
+ };
21
+
22
+ if (watch) {
23
+ const ctx = await esbuild.context(config);
24
+ await ctx.watch();
25
+ console.log("Watching for changes...");
26
+ } else {
27
+ await esbuild.build(config);
28
+ const fs = await import("fs");
29
+ const stat = fs.statSync("dist/bridge.js");
30
+ console.log(`✔ dist/bridge.js (${(stat.size / 1024).toFixed(1)} KB)`);
31
+ }