@lousy-agents/cli 5.16.0 → 5.17.1
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/api/copilot-with-fastify/.devcontainer/devcontainer.json +1 -1
- package/api/copilot-with-fastify/package-lock.json +121 -103
- package/cli/copilot-with-citty/.devcontainer/devcontainer.json +1 -1
- package/dist/index.js +303 -37
- package/package.json +1 -1
- package/ui/copilot-with-react/.devcontainer/devcontainer.json +1 -1
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"ghcr.io/devcontainers/features/copilot-cli:1.0.0": {},
|
|
12
12
|
"ghcr.io/anthropics/devcontainer-features/claude-code:1": {
|
|
13
|
-
"version": "v2.1.
|
|
13
|
+
"version": "v2.1.198"
|
|
14
14
|
},
|
|
15
15
|
"ghcr.io/rocker-org/devcontainer-features/apt-packages:1.0.2": {
|
|
16
16
|
"packages": "yamllint, shellcheck",
|
|
@@ -213,21 +213,21 @@
|
|
|
213
213
|
}
|
|
214
214
|
},
|
|
215
215
|
"node_modules/@emnapi/core": {
|
|
216
|
-
"version": "1.
|
|
217
|
-
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.
|
|
218
|
-
"integrity": "sha512-
|
|
216
|
+
"version": "1.11.1",
|
|
217
|
+
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz",
|
|
218
|
+
"integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==",
|
|
219
219
|
"dev": true,
|
|
220
220
|
"license": "MIT",
|
|
221
221
|
"optional": true,
|
|
222
222
|
"dependencies": {
|
|
223
|
-
"@emnapi/wasi-threads": "1.2.
|
|
223
|
+
"@emnapi/wasi-threads": "1.2.2",
|
|
224
224
|
"tslib": "^2.4.0"
|
|
225
225
|
}
|
|
226
226
|
},
|
|
227
227
|
"node_modules/@emnapi/runtime": {
|
|
228
|
-
"version": "1.
|
|
229
|
-
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.
|
|
230
|
-
"integrity": "sha512-
|
|
228
|
+
"version": "1.11.1",
|
|
229
|
+
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz",
|
|
230
|
+
"integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==",
|
|
231
231
|
"dev": true,
|
|
232
232
|
"license": "MIT",
|
|
233
233
|
"optional": true,
|
|
@@ -236,9 +236,9 @@
|
|
|
236
236
|
}
|
|
237
237
|
},
|
|
238
238
|
"node_modules/@emnapi/wasi-threads": {
|
|
239
|
-
"version": "1.2.
|
|
240
|
-
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.
|
|
241
|
-
"integrity": "sha512-
|
|
239
|
+
"version": "1.2.2",
|
|
240
|
+
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz",
|
|
241
|
+
"integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==",
|
|
242
242
|
"dev": true,
|
|
243
243
|
"license": "MIT",
|
|
244
244
|
"optional": true,
|
|
@@ -1036,14 +1036,14 @@
|
|
|
1036
1036
|
}
|
|
1037
1037
|
},
|
|
1038
1038
|
"node_modules/@napi-rs/wasm-runtime": {
|
|
1039
|
-
"version": "1.1.
|
|
1040
|
-
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.
|
|
1041
|
-
"integrity": "sha512-
|
|
1039
|
+
"version": "1.1.6",
|
|
1040
|
+
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz",
|
|
1041
|
+
"integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==",
|
|
1042
1042
|
"dev": true,
|
|
1043
1043
|
"license": "MIT",
|
|
1044
1044
|
"optional": true,
|
|
1045
1045
|
"dependencies": {
|
|
1046
|
-
"@tybys/wasm-util": "^0.10.
|
|
1046
|
+
"@tybys/wasm-util": "^0.10.3"
|
|
1047
1047
|
},
|
|
1048
1048
|
"funding": {
|
|
1049
1049
|
"type": "github",
|
|
@@ -1055,9 +1055,9 @@
|
|
|
1055
1055
|
}
|
|
1056
1056
|
},
|
|
1057
1057
|
"node_modules/@oxc-project/types": {
|
|
1058
|
-
"version": "0.
|
|
1059
|
-
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.
|
|
1060
|
-
"integrity": "sha512-
|
|
1058
|
+
"version": "0.138.0",
|
|
1059
|
+
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.138.0.tgz",
|
|
1060
|
+
"integrity": "sha512-1a7ZKmrRTCoN1XMZ4L0PyyqrMnrNlLyPuOkdSX2MZg7IiIGRUyurNhAm73ptDOraoBcIordsIGKNPKUzy3ZmfA==",
|
|
1061
1061
|
"dev": true,
|
|
1062
1062
|
"license": "MIT",
|
|
1063
1063
|
"funding": {
|
|
@@ -1155,9 +1155,9 @@
|
|
|
1155
1155
|
"license": "BSD-3-Clause"
|
|
1156
1156
|
},
|
|
1157
1157
|
"node_modules/@rolldown/binding-android-arm64": {
|
|
1158
|
-
"version": "1.
|
|
1159
|
-
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.
|
|
1160
|
-
"integrity": "sha512-
|
|
1158
|
+
"version": "1.1.4",
|
|
1159
|
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.4.tgz",
|
|
1160
|
+
"integrity": "sha512-EZLpf/8y7GXkkra90ML47kzik/GMP3EMcE9bPyHmRfxLC6z9+aW5A8poCsoxjrT5GfEcNAAvWwUHjvP1pUQkfw==",
|
|
1161
1161
|
"cpu": [
|
|
1162
1162
|
"arm64"
|
|
1163
1163
|
],
|
|
@@ -1172,9 +1172,9 @@
|
|
|
1172
1172
|
}
|
|
1173
1173
|
},
|
|
1174
1174
|
"node_modules/@rolldown/binding-darwin-arm64": {
|
|
1175
|
-
"version": "1.
|
|
1176
|
-
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.
|
|
1177
|
-
"integrity": "sha512-
|
|
1175
|
+
"version": "1.1.4",
|
|
1176
|
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.4.tgz",
|
|
1177
|
+
"integrity": "sha512-aUi+HBvmYb7j8krl1+qJgkG8C17fO79gk3c+jPw4S8glRFc1DTija9S3EyaTSQUm5GJXYKDAsugBEhFHH2vYiQ==",
|
|
1178
1178
|
"cpu": [
|
|
1179
1179
|
"arm64"
|
|
1180
1180
|
],
|
|
@@ -1189,9 +1189,9 @@
|
|
|
1189
1189
|
}
|
|
1190
1190
|
},
|
|
1191
1191
|
"node_modules/@rolldown/binding-darwin-x64": {
|
|
1192
|
-
"version": "1.
|
|
1193
|
-
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.
|
|
1194
|
-
"integrity": "sha512-
|
|
1192
|
+
"version": "1.1.4",
|
|
1193
|
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.4.tgz",
|
|
1194
|
+
"integrity": "sha512-F7hHC3gwY11+vByKPRWqwGbeXWVgKmL+pTGCinaEhdihzBV2aQ0fvZOch9cXYUOKuKKq429HeYXOqQLc7wFCEg==",
|
|
1195
1195
|
"cpu": [
|
|
1196
1196
|
"x64"
|
|
1197
1197
|
],
|
|
@@ -1206,9 +1206,9 @@
|
|
|
1206
1206
|
}
|
|
1207
1207
|
},
|
|
1208
1208
|
"node_modules/@rolldown/binding-freebsd-x64": {
|
|
1209
|
-
"version": "1.
|
|
1210
|
-
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.
|
|
1211
|
-
"integrity": "sha512-
|
|
1209
|
+
"version": "1.1.4",
|
|
1210
|
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.4.tgz",
|
|
1211
|
+
"integrity": "sha512-sI5yw+7s92SK6odiEhD5lKCBlWcpjHS5qyqpVQbZAJ0fIzEUXrmbl3DH2ybR3PZogulNJF+COLtmA8hUfvkCCQ==",
|
|
1212
1212
|
"cpu": [
|
|
1213
1213
|
"x64"
|
|
1214
1214
|
],
|
|
@@ -1223,9 +1223,9 @@
|
|
|
1223
1223
|
}
|
|
1224
1224
|
},
|
|
1225
1225
|
"node_modules/@rolldown/binding-linux-arm-gnueabihf": {
|
|
1226
|
-
"version": "1.
|
|
1227
|
-
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.
|
|
1228
|
-
"integrity": "sha512-
|
|
1226
|
+
"version": "1.1.4",
|
|
1227
|
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.4.tgz",
|
|
1228
|
+
"integrity": "sha512-mCi0OKgEieFircrtVYmQAFGszRtMnZ6fpZAXrxanXAu7lqZcsK1E1RAaZNG0uKAnxox3B1f4EyQNnoyMfN1vAA==",
|
|
1229
1229
|
"cpu": [
|
|
1230
1230
|
"arm"
|
|
1231
1231
|
],
|
|
@@ -1240,13 +1240,16 @@
|
|
|
1240
1240
|
}
|
|
1241
1241
|
},
|
|
1242
1242
|
"node_modules/@rolldown/binding-linux-arm64-gnu": {
|
|
1243
|
-
"version": "1.
|
|
1244
|
-
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.
|
|
1245
|
-
"integrity": "sha512-
|
|
1243
|
+
"version": "1.1.4",
|
|
1244
|
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.4.tgz",
|
|
1245
|
+
"integrity": "sha512-B9Ial3Kv5sh0SHnB1g/QWcUQCEvCF6QKGAl4zXypYj65mVI+B4AhFBwPtSN7pDrJeIx8Z7zdy4ntx+wQABom7w==",
|
|
1246
1246
|
"cpu": [
|
|
1247
1247
|
"arm64"
|
|
1248
1248
|
],
|
|
1249
1249
|
"dev": true,
|
|
1250
|
+
"libc": [
|
|
1251
|
+
"glibc"
|
|
1252
|
+
],
|
|
1250
1253
|
"license": "MIT",
|
|
1251
1254
|
"optional": true,
|
|
1252
1255
|
"os": [
|
|
@@ -1257,13 +1260,16 @@
|
|
|
1257
1260
|
}
|
|
1258
1261
|
},
|
|
1259
1262
|
"node_modules/@rolldown/binding-linux-arm64-musl": {
|
|
1260
|
-
"version": "1.
|
|
1261
|
-
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.
|
|
1262
|
-
"integrity": "sha512-
|
|
1263
|
+
"version": "1.1.4",
|
|
1264
|
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.4.tgz",
|
|
1265
|
+
"integrity": "sha512-lZVym0PuHE1KZ22gmFTC15lAkrg9iTszR617oYRB/iPY1A56ywoJzVKOJBKaot5RiikCObmur6pogpse3gRcng==",
|
|
1263
1266
|
"cpu": [
|
|
1264
1267
|
"arm64"
|
|
1265
1268
|
],
|
|
1266
1269
|
"dev": true,
|
|
1270
|
+
"libc": [
|
|
1271
|
+
"musl"
|
|
1272
|
+
],
|
|
1267
1273
|
"license": "MIT",
|
|
1268
1274
|
"optional": true,
|
|
1269
1275
|
"os": [
|
|
@@ -1274,13 +1280,16 @@
|
|
|
1274
1280
|
}
|
|
1275
1281
|
},
|
|
1276
1282
|
"node_modules/@rolldown/binding-linux-ppc64-gnu": {
|
|
1277
|
-
"version": "1.
|
|
1278
|
-
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.
|
|
1279
|
-
"integrity": "sha512-
|
|
1283
|
+
"version": "1.1.4",
|
|
1284
|
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.4.tgz",
|
|
1285
|
+
"integrity": "sha512-t2DNiLJWNTbnEHyUzTumldML6ET4/g16467LZoDDJ3tSxGvguL5/NyC2lCsNKuyRycg9XeDQF5SSv+TNOhQEXg==",
|
|
1280
1286
|
"cpu": [
|
|
1281
1287
|
"ppc64"
|
|
1282
1288
|
],
|
|
1283
1289
|
"dev": true,
|
|
1290
|
+
"libc": [
|
|
1291
|
+
"glibc"
|
|
1292
|
+
],
|
|
1284
1293
|
"license": "MIT",
|
|
1285
1294
|
"optional": true,
|
|
1286
1295
|
"os": [
|
|
@@ -1291,13 +1300,16 @@
|
|
|
1291
1300
|
}
|
|
1292
1301
|
},
|
|
1293
1302
|
"node_modules/@rolldown/binding-linux-s390x-gnu": {
|
|
1294
|
-
"version": "1.
|
|
1295
|
-
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.
|
|
1296
|
-
"integrity": "sha512-
|
|
1303
|
+
"version": "1.1.4",
|
|
1304
|
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.4.tgz",
|
|
1305
|
+
"integrity": "sha512-0WIRnL1Uw4BvTZRLQt+PVgo6ZKTJadlC2btP+/EOXv2f/DWbY0rEgl+y834mIVwP1FkTlWVTrGGJXf12lru7EQ==",
|
|
1297
1306
|
"cpu": [
|
|
1298
1307
|
"s390x"
|
|
1299
1308
|
],
|
|
1300
1309
|
"dev": true,
|
|
1310
|
+
"libc": [
|
|
1311
|
+
"glibc"
|
|
1312
|
+
],
|
|
1301
1313
|
"license": "MIT",
|
|
1302
1314
|
"optional": true,
|
|
1303
1315
|
"os": [
|
|
@@ -1308,13 +1320,16 @@
|
|
|
1308
1320
|
}
|
|
1309
1321
|
},
|
|
1310
1322
|
"node_modules/@rolldown/binding-linux-x64-gnu": {
|
|
1311
|
-
"version": "1.
|
|
1312
|
-
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.
|
|
1313
|
-
"integrity": "sha512-
|
|
1323
|
+
"version": "1.1.4",
|
|
1324
|
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.4.tgz",
|
|
1325
|
+
"integrity": "sha512-JWtGshGfX+oENAKonoNkqEJX+7hC8yfhi9GUyPX1VX4mdh1y5r+ZiJLR5XzAB0aoP6s/PcILsGjKq8O0mm24bw==",
|
|
1314
1326
|
"cpu": [
|
|
1315
1327
|
"x64"
|
|
1316
1328
|
],
|
|
1317
1329
|
"dev": true,
|
|
1330
|
+
"libc": [
|
|
1331
|
+
"glibc"
|
|
1332
|
+
],
|
|
1318
1333
|
"license": "MIT",
|
|
1319
1334
|
"optional": true,
|
|
1320
1335
|
"os": [
|
|
@@ -1325,13 +1340,16 @@
|
|
|
1325
1340
|
}
|
|
1326
1341
|
},
|
|
1327
1342
|
"node_modules/@rolldown/binding-linux-x64-musl": {
|
|
1328
|
-
"version": "1.
|
|
1329
|
-
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.
|
|
1330
|
-
"integrity": "sha512-
|
|
1343
|
+
"version": "1.1.4",
|
|
1344
|
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.4.tgz",
|
|
1345
|
+
"integrity": "sha512-rT6yQcxUuXs4CnbofqwHRRV0iem349rLMYpTjkgQGLjrY4ado/eDzwPZPTCgTOlF6Nkp8NEv70yLMTn6qkWxsQ==",
|
|
1331
1346
|
"cpu": [
|
|
1332
1347
|
"x64"
|
|
1333
1348
|
],
|
|
1334
1349
|
"dev": true,
|
|
1350
|
+
"libc": [
|
|
1351
|
+
"musl"
|
|
1352
|
+
],
|
|
1335
1353
|
"license": "MIT",
|
|
1336
1354
|
"optional": true,
|
|
1337
1355
|
"os": [
|
|
@@ -1342,9 +1360,9 @@
|
|
|
1342
1360
|
}
|
|
1343
1361
|
},
|
|
1344
1362
|
"node_modules/@rolldown/binding-openharmony-arm64": {
|
|
1345
|
-
"version": "1.
|
|
1346
|
-
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.
|
|
1347
|
-
"integrity": "sha512-
|
|
1363
|
+
"version": "1.1.4",
|
|
1364
|
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.4.tgz",
|
|
1365
|
+
"integrity": "sha512-KXMGoboq5cyaCQjDA4GLuRiOwBQ0EyFnJoVViLeZ45/3rFItRODEr+NdsBcVpll40hhNArlm/speWGRvj08LzA==",
|
|
1348
1366
|
"cpu": [
|
|
1349
1367
|
"arm64"
|
|
1350
1368
|
],
|
|
@@ -1359,9 +1377,9 @@
|
|
|
1359
1377
|
}
|
|
1360
1378
|
},
|
|
1361
1379
|
"node_modules/@rolldown/binding-wasm32-wasi": {
|
|
1362
|
-
"version": "1.
|
|
1363
|
-
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.
|
|
1364
|
-
"integrity": "sha512-
|
|
1380
|
+
"version": "1.1.4",
|
|
1381
|
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.4.tgz",
|
|
1382
|
+
"integrity": "sha512-5K83rb36oJiY7BCyE9zLZtGcPV4g5wvq+xwdO0XPIwDVZI8cyB/AUjkNXGb92/rnmezEkjMOpgY61rtwjQtFwg==",
|
|
1365
1383
|
"cpu": [
|
|
1366
1384
|
"wasm32"
|
|
1367
1385
|
],
|
|
@@ -1369,18 +1387,18 @@
|
|
|
1369
1387
|
"license": "MIT",
|
|
1370
1388
|
"optional": true,
|
|
1371
1389
|
"dependencies": {
|
|
1372
|
-
"@emnapi/core": "1.
|
|
1373
|
-
"@emnapi/runtime": "1.
|
|
1374
|
-
"@napi-rs/wasm-runtime": "^1.1.
|
|
1390
|
+
"@emnapi/core": "1.11.1",
|
|
1391
|
+
"@emnapi/runtime": "1.11.1",
|
|
1392
|
+
"@napi-rs/wasm-runtime": "^1.1.6"
|
|
1375
1393
|
},
|
|
1376
1394
|
"engines": {
|
|
1377
1395
|
"node": "^20.19.0 || >=22.12.0"
|
|
1378
1396
|
}
|
|
1379
1397
|
},
|
|
1380
1398
|
"node_modules/@rolldown/binding-win32-arm64-msvc": {
|
|
1381
|
-
"version": "1.
|
|
1382
|
-
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.
|
|
1383
|
-
"integrity": "sha512-
|
|
1399
|
+
"version": "1.1.4",
|
|
1400
|
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.4.tgz",
|
|
1401
|
+
"integrity": "sha512-PnWBtw3TV5KOg69HQQDR0mnQuyCmSGR2pAB4DC1rPF808fgKeTUMj2EOEyKATpgiuxuR5APQmiDO7PDgEjTFSA==",
|
|
1384
1402
|
"cpu": [
|
|
1385
1403
|
"arm64"
|
|
1386
1404
|
],
|
|
@@ -1395,9 +1413,9 @@
|
|
|
1395
1413
|
}
|
|
1396
1414
|
},
|
|
1397
1415
|
"node_modules/@rolldown/binding-win32-x64-msvc": {
|
|
1398
|
-
"version": "1.
|
|
1399
|
-
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.
|
|
1400
|
-
"integrity": "sha512-
|
|
1416
|
+
"version": "1.1.4",
|
|
1417
|
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.4.tgz",
|
|
1418
|
+
"integrity": "sha512-M1lpniBePobTfsa7Ks9a199e1akxsXn+GYBUKsEzv3YFzOm1HJAMNwKI3qr0Zq+mxwx9gOZoTdP1yXRYsZUocQ==",
|
|
1401
1419
|
"cpu": [
|
|
1402
1420
|
"x64"
|
|
1403
1421
|
],
|
|
@@ -1436,9 +1454,9 @@
|
|
|
1436
1454
|
}
|
|
1437
1455
|
},
|
|
1438
1456
|
"node_modules/@tybys/wasm-util": {
|
|
1439
|
-
"version": "0.10.
|
|
1440
|
-
"resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.
|
|
1441
|
-
"integrity": "sha512-
|
|
1457
|
+
"version": "0.10.3",
|
|
1458
|
+
"resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz",
|
|
1459
|
+
"integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==",
|
|
1442
1460
|
"dev": true,
|
|
1443
1461
|
"license": "MIT",
|
|
1444
1462
|
"optional": true,
|
|
@@ -4172,9 +4190,9 @@
|
|
|
4172
4190
|
"optional": true
|
|
4173
4191
|
},
|
|
4174
4192
|
"node_modules/nanoid": {
|
|
4175
|
-
"version": "3.3.
|
|
4176
|
-
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.
|
|
4177
|
-
"integrity": "sha512-
|
|
4193
|
+
"version": "3.3.15",
|
|
4194
|
+
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz",
|
|
4195
|
+
"integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==",
|
|
4178
4196
|
"dev": true,
|
|
4179
4197
|
"funding": [
|
|
4180
4198
|
{
|
|
@@ -4406,9 +4424,9 @@
|
|
|
4406
4424
|
}
|
|
4407
4425
|
},
|
|
4408
4426
|
"node_modules/postcss": {
|
|
4409
|
-
"version": "8.5.
|
|
4410
|
-
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.
|
|
4411
|
-
"integrity": "sha512-
|
|
4427
|
+
"version": "8.5.16",
|
|
4428
|
+
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz",
|
|
4429
|
+
"integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==",
|
|
4412
4430
|
"dev": true,
|
|
4413
4431
|
"funding": [
|
|
4414
4432
|
{
|
|
@@ -4716,13 +4734,13 @@
|
|
|
4716
4734
|
"license": "MIT"
|
|
4717
4735
|
},
|
|
4718
4736
|
"node_modules/rolldown": {
|
|
4719
|
-
"version": "1.
|
|
4720
|
-
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.
|
|
4721
|
-
"integrity": "sha512-
|
|
4737
|
+
"version": "1.1.4",
|
|
4738
|
+
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.4.tgz",
|
|
4739
|
+
"integrity": "sha512-IjZYiLxZwpnhwhdBH2ugdTGVSdhCQUmLxLoqyjiL0JxYjyRst+5a0P3xfrTxJ5F638j4Mvvw5FAX5XE6eHpXbA==",
|
|
4722
4740
|
"dev": true,
|
|
4723
4741
|
"license": "MIT",
|
|
4724
4742
|
"dependencies": {
|
|
4725
|
-
"@oxc-project/types": "=0.
|
|
4743
|
+
"@oxc-project/types": "=0.138.0",
|
|
4726
4744
|
"@rolldown/pluginutils": "^1.0.0"
|
|
4727
4745
|
},
|
|
4728
4746
|
"bin": {
|
|
@@ -4732,21 +4750,21 @@
|
|
|
4732
4750
|
"node": "^20.19.0 || >=22.12.0"
|
|
4733
4751
|
},
|
|
4734
4752
|
"optionalDependencies": {
|
|
4735
|
-
"@rolldown/binding-android-arm64": "1.
|
|
4736
|
-
"@rolldown/binding-darwin-arm64": "1.
|
|
4737
|
-
"@rolldown/binding-darwin-x64": "1.
|
|
4738
|
-
"@rolldown/binding-freebsd-x64": "1.
|
|
4739
|
-
"@rolldown/binding-linux-arm-gnueabihf": "1.
|
|
4740
|
-
"@rolldown/binding-linux-arm64-gnu": "1.
|
|
4741
|
-
"@rolldown/binding-linux-arm64-musl": "1.
|
|
4742
|
-
"@rolldown/binding-linux-ppc64-gnu": "1.
|
|
4743
|
-
"@rolldown/binding-linux-s390x-gnu": "1.
|
|
4744
|
-
"@rolldown/binding-linux-x64-gnu": "1.
|
|
4745
|
-
"@rolldown/binding-linux-x64-musl": "1.
|
|
4746
|
-
"@rolldown/binding-openharmony-arm64": "1.
|
|
4747
|
-
"@rolldown/binding-wasm32-wasi": "1.
|
|
4748
|
-
"@rolldown/binding-win32-arm64-msvc": "1.
|
|
4749
|
-
"@rolldown/binding-win32-x64-msvc": "1.
|
|
4753
|
+
"@rolldown/binding-android-arm64": "1.1.4",
|
|
4754
|
+
"@rolldown/binding-darwin-arm64": "1.1.4",
|
|
4755
|
+
"@rolldown/binding-darwin-x64": "1.1.4",
|
|
4756
|
+
"@rolldown/binding-freebsd-x64": "1.1.4",
|
|
4757
|
+
"@rolldown/binding-linux-arm-gnueabihf": "1.1.4",
|
|
4758
|
+
"@rolldown/binding-linux-arm64-gnu": "1.1.4",
|
|
4759
|
+
"@rolldown/binding-linux-arm64-musl": "1.1.4",
|
|
4760
|
+
"@rolldown/binding-linux-ppc64-gnu": "1.1.4",
|
|
4761
|
+
"@rolldown/binding-linux-s390x-gnu": "1.1.4",
|
|
4762
|
+
"@rolldown/binding-linux-x64-gnu": "1.1.4",
|
|
4763
|
+
"@rolldown/binding-linux-x64-musl": "1.1.4",
|
|
4764
|
+
"@rolldown/binding-openharmony-arm64": "1.1.4",
|
|
4765
|
+
"@rolldown/binding-wasm32-wasi": "1.1.4",
|
|
4766
|
+
"@rolldown/binding-win32-arm64-msvc": "1.1.4",
|
|
4767
|
+
"@rolldown/binding-win32-x64-msvc": "1.1.4"
|
|
4750
4768
|
}
|
|
4751
4769
|
},
|
|
4752
4770
|
"node_modules/router": {
|
|
@@ -5376,9 +5394,9 @@
|
|
|
5376
5394
|
}
|
|
5377
5395
|
},
|
|
5378
5396
|
"node_modules/tinyglobby": {
|
|
5379
|
-
"version": "0.2.
|
|
5380
|
-
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.
|
|
5381
|
-
"integrity": "sha512-
|
|
5397
|
+
"version": "0.2.17",
|
|
5398
|
+
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
|
|
5399
|
+
"integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
|
|
5382
5400
|
"dev": true,
|
|
5383
5401
|
"license": "MIT",
|
|
5384
5402
|
"dependencies": {
|
|
@@ -5560,17 +5578,17 @@
|
|
|
5560
5578
|
}
|
|
5561
5579
|
},
|
|
5562
5580
|
"node_modules/vite": {
|
|
5563
|
-
"version": "8.
|
|
5564
|
-
"resolved": "https://registry.npmjs.org/vite/-/vite-8.
|
|
5565
|
-
"integrity": "sha512-
|
|
5581
|
+
"version": "8.1.2",
|
|
5582
|
+
"resolved": "https://registry.npmjs.org/vite/-/vite-8.1.2.tgz",
|
|
5583
|
+
"integrity": "sha512-6YYPbRXTxx6bRXmOn7XdnQAy5DQNHhDgtjhDHI13oe4pY93kkcdGJWxpGwOm++/Wh0QpQhDrpIoVMrmrsI5AGQ==",
|
|
5566
5584
|
"dev": true,
|
|
5567
5585
|
"license": "MIT",
|
|
5568
5586
|
"dependencies": {
|
|
5569
5587
|
"lightningcss": "^1.32.0",
|
|
5570
5588
|
"picomatch": "^4.0.4",
|
|
5571
|
-
"postcss": "^8.5.
|
|
5572
|
-
"rolldown": "1.
|
|
5573
|
-
"tinyglobby": "^0.2.
|
|
5589
|
+
"postcss": "^8.5.16",
|
|
5590
|
+
"rolldown": "~1.1.3",
|
|
5591
|
+
"tinyglobby": "^0.2.17"
|
|
5574
5592
|
},
|
|
5575
5593
|
"bin": {
|
|
5576
5594
|
"vite": "bin/vite.js"
|
|
@@ -5586,7 +5604,7 @@
|
|
|
5586
5604
|
},
|
|
5587
5605
|
"peerDependencies": {
|
|
5588
5606
|
"@types/node": "^20.19.0 || >=22.12.0",
|
|
5589
|
-
"@vitejs/devtools": "^0.
|
|
5607
|
+
"@vitejs/devtools": "^0.3.0",
|
|
5590
5608
|
"esbuild": "^0.27.0 || ^0.28.0",
|
|
5591
5609
|
"jiti": ">=1.21.0",
|
|
5592
5610
|
"less": "^4.0.0",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"ghcr.io/devcontainers/features/copilot-cli:1.0.0": {},
|
|
12
12
|
"ghcr.io/anthropics/devcontainer-features/claude-code:1": {
|
|
13
|
-
"version": "v2.1.
|
|
13
|
+
"version": "v2.1.198"
|
|
14
14
|
},
|
|
15
15
|
"ghcr.io/rocker-org/devcontainer-features/apt-packages:1.0.2": {
|
|
16
16
|
"packages": "yamllint, shellcheck",
|
package/dist/index.js
CHANGED
|
@@ -2990,7 +2990,7 @@ exports.basename = (path, { windows } = {}) => {
|
|
|
2990
2990
|
|
|
2991
2991
|
|
|
2992
2992
|
},
|
|
2993
|
-
|
|
2993
|
+
889(__unused_rspack_module, __unused_rspack___webpack_exports__, __webpack_require__) {
|
|
2994
2994
|
// NAMESPACE OBJECT: ../../node_modules/micromark/lib/constructs.js
|
|
2995
2995
|
var constructs_namespaceObject = {};
|
|
2996
2996
|
__webpack_require__.r(constructs_namespaceObject);
|
|
@@ -11160,7 +11160,7 @@ function handleIntersectionResults(result, left, right) {
|
|
|
11160
11160
|
result.value = merged.data;
|
|
11161
11161
|
return result;
|
|
11162
11162
|
}
|
|
11163
|
-
const $ZodTuple = /*@__PURE__*/
|
|
11163
|
+
const $ZodTuple = /*@__PURE__*/ $constructor("$ZodTuple", (inst, def) => {
|
|
11164
11164
|
$ZodType.init(inst, def);
|
|
11165
11165
|
const items = def.items;
|
|
11166
11166
|
inst._zod.parse = (payload, ctx) => {
|
|
@@ -11236,7 +11236,7 @@ const $ZodTuple = /*@__PURE__*/ (/* unused pure expression or super */ null && (
|
|
|
11236
11236
|
}
|
|
11237
11237
|
return handleTupleResults(itemResults, payload, items, input, optoutStart);
|
|
11238
11238
|
};
|
|
11239
|
-
})
|
|
11239
|
+
});
|
|
11240
11240
|
function getTupleOptStart(items, key) {
|
|
11241
11241
|
for (let i = items.length - 1; i >= 0; i--) {
|
|
11242
11242
|
if (items[i]._zod[key] !== "optional")
|
|
@@ -11246,7 +11246,7 @@ function getTupleOptStart(items, key) {
|
|
|
11246
11246
|
}
|
|
11247
11247
|
function handleTupleResult(result, final, index) {
|
|
11248
11248
|
if (result.issues.length) {
|
|
11249
|
-
final.issues.push(...
|
|
11249
|
+
final.issues.push(...prefixIssues(index, result.issues));
|
|
11250
11250
|
}
|
|
11251
11251
|
final.value[index] = result.value;
|
|
11252
11252
|
}
|
|
@@ -11262,7 +11262,7 @@ function handleTupleResults(itemResults, final, items, input, optoutStart) {
|
|
|
11262
11262
|
final.value.length = i;
|
|
11263
11263
|
break;
|
|
11264
11264
|
}
|
|
11265
|
-
final.issues.push(...
|
|
11265
|
+
final.issues.push(...prefixIssues(i, r.issues));
|
|
11266
11266
|
}
|
|
11267
11267
|
final.value[i] = r.value;
|
|
11268
11268
|
}
|
|
@@ -14046,12 +14046,12 @@ const tupleProcessor = (schema, ctx, _json, params) => {
|
|
|
14046
14046
|
json.type = "array";
|
|
14047
14047
|
const prefixPath = ctx.target === "draft-2020-12" ? "prefixItems" : "items";
|
|
14048
14048
|
const restPath = ctx.target === "draft-2020-12" ? "items" : ctx.target === "openapi-3.0" ? "items" : "additionalItems";
|
|
14049
|
-
const prefixItems = def.items.map((x, i) =>
|
|
14049
|
+
const prefixItems = def.items.map((x, i) => to_json_schema_process(x, ctx, {
|
|
14050
14050
|
...params,
|
|
14051
14051
|
path: [...params.path, prefixPath, i],
|
|
14052
14052
|
}));
|
|
14053
14053
|
const rest = def.rest
|
|
14054
|
-
?
|
|
14054
|
+
? to_json_schema_process(def.rest, ctx, {
|
|
14055
14055
|
...params,
|
|
14056
14056
|
path: [...params.path, restPath, ...(ctx.target === "openapi-3.0" ? [def.items.length] : [])],
|
|
14057
14057
|
})
|
|
@@ -15257,24 +15257,24 @@ function intersection(left, right) {
|
|
|
15257
15257
|
right: right,
|
|
15258
15258
|
});
|
|
15259
15259
|
}
|
|
15260
|
-
const ZodTuple = /*@__PURE__*/
|
|
15261
|
-
|
|
15260
|
+
const ZodTuple = /*@__PURE__*/ $constructor("ZodTuple", (inst, def) => {
|
|
15261
|
+
$ZodTuple.init(inst, def);
|
|
15262
15262
|
ZodType.init(inst, def);
|
|
15263
|
-
inst._zod.processJSONSchema = (ctx, json, params) =>
|
|
15263
|
+
inst._zod.processJSONSchema = (ctx, json, params) => tupleProcessor(inst, ctx, json, params);
|
|
15264
15264
|
inst.rest = (rest) => inst.clone({
|
|
15265
15265
|
...inst._zod.def,
|
|
15266
15266
|
rest: rest,
|
|
15267
15267
|
});
|
|
15268
|
-
})
|
|
15268
|
+
});
|
|
15269
15269
|
function tuple(items, _paramsOrRest, _params) {
|
|
15270
|
-
const hasRest = _paramsOrRest instanceof
|
|
15270
|
+
const hasRest = _paramsOrRest instanceof $ZodType;
|
|
15271
15271
|
const params = hasRest ? _params : _paramsOrRest;
|
|
15272
15272
|
const rest = hasRest ? _paramsOrRest : null;
|
|
15273
15273
|
return new ZodTuple({
|
|
15274
15274
|
type: "tuple",
|
|
15275
15275
|
items: items,
|
|
15276
15276
|
rest,
|
|
15277
|
-
...
|
|
15277
|
+
...normalizeParams(params),
|
|
15278
15278
|
});
|
|
15279
15279
|
}
|
|
15280
15280
|
const ZodRecord = /*@__PURE__*/ $constructor("ZodRecord", (inst, def) => {
|
|
@@ -28402,22 +28402,206 @@ function hasBlockingFindings(findings) {
|
|
|
28402
28402
|
return findings.some((f)=>(f.severity === "critical" || f.severity === "high") && f.classification === "defect");
|
|
28403
28403
|
}
|
|
28404
28404
|
|
|
28405
|
+
;// CONCATENATED MODULE: ../doctor/src/lib/cross-harness-edges.ts
|
|
28406
|
+
function resolveEdgeTargets(edge) {
|
|
28407
|
+
return Array.isArray(edge.direction.to) ? edge.direction.to : [
|
|
28408
|
+
edge.direction.to
|
|
28409
|
+
];
|
|
28410
|
+
}
|
|
28411
|
+
function buildHarnessByPath(records) {
|
|
28412
|
+
const harnessByPath = new Map();
|
|
28413
|
+
for (const record of records){
|
|
28414
|
+
harnessByPath.set(record.path, record.harness);
|
|
28415
|
+
}
|
|
28416
|
+
return harnessByPath;
|
|
28417
|
+
}
|
|
28418
|
+
function isCrossHarnessTarget(edge, targetPath, sourceHarness, harnessByPath) {
|
|
28419
|
+
if (edge.malformed || edge.type === "glob-binding") return false;
|
|
28420
|
+
const targetHarness = harnessByPath.get(targetPath);
|
|
28421
|
+
return targetHarness !== undefined && targetHarness !== sourceHarness;
|
|
28422
|
+
}
|
|
28423
|
+
function countCrossHarnessEdges(records) {
|
|
28424
|
+
const harnessByPath = buildHarnessByPath(records);
|
|
28425
|
+
let count = 0;
|
|
28426
|
+
for (const record of records){
|
|
28427
|
+
for (const edge of record.edges){
|
|
28428
|
+
for (const target of resolveEdgeTargets(edge)){
|
|
28429
|
+
if (isCrossHarnessTarget(edge, target, record.harness, harnessByPath)) {
|
|
28430
|
+
count++;
|
|
28431
|
+
}
|
|
28432
|
+
}
|
|
28433
|
+
}
|
|
28434
|
+
}
|
|
28435
|
+
return count;
|
|
28436
|
+
}
|
|
28437
|
+
|
|
28405
28438
|
;// CONCATENATED MODULE: ../doctor/src/formatters/json-formatter.ts
|
|
28406
|
-
|
|
28407
|
-
|
|
28439
|
+
|
|
28440
|
+
|
|
28441
|
+
const HarnessNameSchema = schemas_enum([
|
|
28442
|
+
"claude",
|
|
28443
|
+
"copilot",
|
|
28444
|
+
"codex",
|
|
28445
|
+
"antigravity",
|
|
28446
|
+
"hermes",
|
|
28447
|
+
"crush",
|
|
28448
|
+
"pi",
|
|
28449
|
+
"shared"
|
|
28450
|
+
]);
|
|
28451
|
+
const ConstructTypeSchema = schemas_enum([
|
|
28452
|
+
"instruction",
|
|
28453
|
+
"skill",
|
|
28454
|
+
"agent",
|
|
28455
|
+
"subagent",
|
|
28456
|
+
"mcp-server",
|
|
28457
|
+
"plugin",
|
|
28458
|
+
"hook"
|
|
28459
|
+
]);
|
|
28460
|
+
const EdgeTypeSchema = schemas_enum([
|
|
28461
|
+
"hard-import",
|
|
28462
|
+
"soft-reference",
|
|
28463
|
+
"glob-binding"
|
|
28464
|
+
]);
|
|
28465
|
+
const ArchetypeSchema = schemas_enum([
|
|
28466
|
+
"pure",
|
|
28467
|
+
"intentional-hybrid",
|
|
28468
|
+
"canonical-contract",
|
|
28469
|
+
"accidental-sprawl",
|
|
28470
|
+
"none",
|
|
28471
|
+
"ambiguous"
|
|
28472
|
+
]);
|
|
28473
|
+
const CitationHandleSchema = schemas_object({
|
|
28474
|
+
nodeId: schemas_string(),
|
|
28475
|
+
sourceFile: schemas_string(),
|
|
28476
|
+
lineRange: tuple([
|
|
28477
|
+
schemas_number(),
|
|
28478
|
+
schemas_number()
|
|
28479
|
+
]).optional(),
|
|
28480
|
+
snapshotRef: schemas_string().optional()
|
|
28481
|
+
});
|
|
28482
|
+
const FindingSchema = schemas_object({
|
|
28483
|
+
id: schemas_string(),
|
|
28484
|
+
criterionId: schemas_string(),
|
|
28485
|
+
targetId: schemas_string(),
|
|
28486
|
+
severity: schemas_enum([
|
|
28487
|
+
"critical",
|
|
28488
|
+
"high",
|
|
28489
|
+
"medium",
|
|
28490
|
+
"low",
|
|
28491
|
+
"info"
|
|
28492
|
+
]),
|
|
28493
|
+
category: schemas_enum([
|
|
28494
|
+
"missing-required",
|
|
28495
|
+
"malformed-reference",
|
|
28496
|
+
"wrong-direction",
|
|
28497
|
+
"drift",
|
|
28498
|
+
"governance",
|
|
28499
|
+
"composition-style"
|
|
28500
|
+
]),
|
|
28501
|
+
classification: schemas_enum([
|
|
28502
|
+
"defect",
|
|
28503
|
+
"advisory",
|
|
28504
|
+
"info"
|
|
28505
|
+
]),
|
|
28506
|
+
intentGated: schemas_boolean(),
|
|
28507
|
+
assumedIntent: schemas_boolean(),
|
|
28508
|
+
description: schemas_string(),
|
|
28509
|
+
evidenceCitation: CitationHandleSchema.optional(),
|
|
28510
|
+
snapshotRef: schemas_string().optional()
|
|
28511
|
+
});
|
|
28512
|
+
const ReportInventoryItemSchema = schemas_object({
|
|
28513
|
+
id: schemas_string(),
|
|
28514
|
+
path: schemas_string(),
|
|
28515
|
+
harness: HarnessNameSchema,
|
|
28516
|
+
constructType: ConstructTypeSchema,
|
|
28517
|
+
loadMechanism: schemas_enum([
|
|
28518
|
+
"referenced",
|
|
28519
|
+
"convention-loaded"
|
|
28520
|
+
]),
|
|
28521
|
+
serverName: schemas_string().optional(),
|
|
28522
|
+
transport: schemas_string().optional()
|
|
28523
|
+
});
|
|
28524
|
+
const ReportEdgeSchema = schemas_object({
|
|
28525
|
+
from: schemas_string(),
|
|
28526
|
+
to: schemas_string(),
|
|
28527
|
+
type: EdgeTypeSchema,
|
|
28528
|
+
malformed: schemas_boolean(),
|
|
28529
|
+
reason: schemas_enum([
|
|
28530
|
+
"missing-target",
|
|
28531
|
+
"path-traversal"
|
|
28532
|
+
]).optional(),
|
|
28533
|
+
crossHarness: schemas_boolean()
|
|
28534
|
+
});
|
|
28535
|
+
const ReportJsonSchema = schemas_object({
|
|
28536
|
+
archetype: ArchetypeSchema,
|
|
28537
|
+
dominanceScore: schemas_number(),
|
|
28538
|
+
totalRecords: schemas_number(),
|
|
28539
|
+
harnessBreakdown: schemas_array(schemas_object({
|
|
28540
|
+
harness: schemas_string(),
|
|
28541
|
+
count: schemas_number()
|
|
28542
|
+
})),
|
|
28543
|
+
crossHarnessEdges: schemas_number(),
|
|
28544
|
+
inventory: schemas_array(ReportInventoryItemSchema),
|
|
28545
|
+
edges: schemas_array(ReportEdgeSchema),
|
|
28546
|
+
findings: schemas_array(FindingSchema),
|
|
28547
|
+
snapshotRef: schemas_string().optional()
|
|
28548
|
+
});
|
|
28549
|
+
function toInventoryItems(records) {
|
|
28550
|
+
return records.map((record)=>({
|
|
28551
|
+
id: record.id,
|
|
28552
|
+
path: record.path,
|
|
28553
|
+
harness: record.harness,
|
|
28554
|
+
constructType: record.constructType,
|
|
28555
|
+
loadMechanism: record.loadMechanism,
|
|
28556
|
+
...record.serverName !== undefined ? {
|
|
28557
|
+
serverName: record.serverName
|
|
28558
|
+
} : {},
|
|
28559
|
+
...record.transport !== undefined ? {
|
|
28560
|
+
transport: record.transport
|
|
28561
|
+
} : {}
|
|
28562
|
+
})).sort((a, b)=>a.path.localeCompare(b.path) || a.id.localeCompare(b.id));
|
|
28563
|
+
}
|
|
28564
|
+
function toReportEdges(records) {
|
|
28565
|
+
const harnessByPath = buildHarnessByPath(records);
|
|
28566
|
+
const result = [];
|
|
28567
|
+
for (const record of records){
|
|
28568
|
+
for (const edge of record.edges){
|
|
28569
|
+
for (const target of resolveEdgeTargets(edge)){
|
|
28570
|
+
result.push({
|
|
28571
|
+
from: edge.direction.from,
|
|
28572
|
+
to: target,
|
|
28573
|
+
type: edge.type,
|
|
28574
|
+
malformed: edge.malformed,
|
|
28575
|
+
...edge.reason !== undefined ? {
|
|
28576
|
+
reason: edge.reason
|
|
28577
|
+
} : {},
|
|
28578
|
+
crossHarness: isCrossHarnessTarget(edge, target, record.harness, harnessByPath)
|
|
28579
|
+
});
|
|
28580
|
+
}
|
|
28581
|
+
}
|
|
28582
|
+
}
|
|
28583
|
+
return result;
|
|
28584
|
+
}
|
|
28585
|
+
function toJson(summary, findings, records, snapshotRef) {
|
|
28586
|
+
const edges = toReportEdges(records);
|
|
28587
|
+
const report = {
|
|
28408
28588
|
archetype: summary.archetype,
|
|
28409
28589
|
dominanceScore: summary.dominanceScore,
|
|
28410
28590
|
totalRecords: summary.totalRecords,
|
|
28411
28591
|
harnessBreakdown: summary.harnessBreakdown,
|
|
28412
|
-
crossHarnessEdges:
|
|
28592
|
+
crossHarnessEdges: edges.filter((edge)=>edge.crossHarness).length,
|
|
28593
|
+
inventory: toInventoryItems(records),
|
|
28594
|
+
edges,
|
|
28413
28595
|
findings,
|
|
28414
28596
|
...snapshotRef !== undefined ? {
|
|
28415
28597
|
snapshotRef
|
|
28416
28598
|
} : {}
|
|
28417
28599
|
};
|
|
28600
|
+
return ReportJsonSchema.parse(report);
|
|
28418
28601
|
}
|
|
28419
28602
|
|
|
28420
28603
|
;// CONCATENATED MODULE: ../doctor/src/formatters/summary-formatter.ts
|
|
28604
|
+
|
|
28421
28605
|
const ARCHETYPE_DESCRIPTIONS = {
|
|
28422
28606
|
pure: "Single-harness configuration. One AI coding assistant dominates the repository.",
|
|
28423
28607
|
"intentional-hybrid": "Multi-harness configuration with cross-harness references. Harnesses deliberately share context.",
|
|
@@ -28435,21 +28619,7 @@ function formatSummary(records, classification) {
|
|
|
28435
28619
|
harness,
|
|
28436
28620
|
count
|
|
28437
28621
|
})).sort((a, b)=>a.harness.localeCompare(b.harness));
|
|
28438
|
-
|
|
28439
|
-
const harnessByPath = new Map();
|
|
28440
|
-
for (const r of records){
|
|
28441
|
-
harnessByPath.set(r.path, r.harness);
|
|
28442
|
-
}
|
|
28443
|
-
for (const r of records){
|
|
28444
|
-
for (const edge of r.edges){
|
|
28445
|
-
if (!edge.malformed && edge.type !== "glob-binding" && typeof edge.direction.to === "string") {
|
|
28446
|
-
const targetHarness = harnessByPath.get(edge.direction.to);
|
|
28447
|
-
if (targetHarness && targetHarness !== r.harness) {
|
|
28448
|
-
crossHarnessEdges++;
|
|
28449
|
-
}
|
|
28450
|
-
}
|
|
28451
|
-
}
|
|
28452
|
-
}
|
|
28622
|
+
const crossHarnessEdges = countCrossHarnessEdges(records);
|
|
28453
28623
|
return {
|
|
28454
28624
|
archetype: classification.archetype,
|
|
28455
28625
|
archetypeDescription: ARCHETYPE_DESCRIPTIONS[classification.archetype],
|
|
@@ -28584,6 +28754,10 @@ const HARNESS_FOOTPRINTS = {
|
|
|
28584
28754
|
conventionDirs: [
|
|
28585
28755
|
".github/instructions/"
|
|
28586
28756
|
],
|
|
28757
|
+
rootOnlyConventionFiles: [
|
|
28758
|
+
"CLAUDE.md",
|
|
28759
|
+
"GEMINI.md"
|
|
28760
|
+
],
|
|
28587
28761
|
primaryIndicators: [
|
|
28588
28762
|
".github/copilot-instructions.md",
|
|
28589
28763
|
".github/instructions/"
|
|
@@ -28841,11 +29015,69 @@ function parseRawEdges(content) {
|
|
|
28841
29015
|
return edges;
|
|
28842
29016
|
}
|
|
28843
29017
|
|
|
29018
|
+
;// CONCATENATED MODULE: ../doctor/src/gateways/mcp-config.ts
|
|
29019
|
+
|
|
29020
|
+
|
|
29021
|
+
const MAX_MCP_CONFIG_BYTES = 1_048_576;
|
|
29022
|
+
const MCP_CONFIG_SOURCES = [
|
|
29023
|
+
{
|
|
29024
|
+
relPath: ".mcp.json",
|
|
29025
|
+
harness: "shared"
|
|
29026
|
+
},
|
|
29027
|
+
{
|
|
29028
|
+
relPath: ".vscode/mcp.json",
|
|
29029
|
+
harness: "copilot"
|
|
29030
|
+
}
|
|
29031
|
+
];
|
|
29032
|
+
const McpServerEntrySchema = schemas_object({
|
|
29033
|
+
type: schemas_string().optional(),
|
|
29034
|
+
transport: schemas_string().optional()
|
|
29035
|
+
}).passthrough();
|
|
29036
|
+
const McpConfigSchema = schemas_object({
|
|
29037
|
+
mcpServers: schemas_record(schemas_string(), McpServerEntrySchema).optional()
|
|
29038
|
+
}).passthrough();
|
|
29039
|
+
async function readMcpServersFromSource(repoRoot, source) {
|
|
29040
|
+
let content;
|
|
29041
|
+
try {
|
|
29042
|
+
content = await file_system_utils_readTextWithinRoot(repoRoot, source.relPath, MAX_MCP_CONFIG_BYTES);
|
|
29043
|
+
} catch {
|
|
29044
|
+
return [];
|
|
29045
|
+
}
|
|
29046
|
+
let raw;
|
|
29047
|
+
try {
|
|
29048
|
+
raw = JSON.parse(content);
|
|
29049
|
+
} catch {
|
|
29050
|
+
return [];
|
|
29051
|
+
}
|
|
29052
|
+
const result = McpConfigSchema.safeParse(raw);
|
|
29053
|
+
if (!result.success || result.data.mcpServers === undefined) {
|
|
29054
|
+
return [];
|
|
29055
|
+
}
|
|
29056
|
+
return Object.entries(result.data.mcpServers).map(([serverName, entry])=>({
|
|
29057
|
+
serverName,
|
|
29058
|
+
harness: source.harness,
|
|
29059
|
+
path: source.relPath,
|
|
29060
|
+
...entry.transport !== undefined ? {
|
|
29061
|
+
transport: entry.transport
|
|
29062
|
+
} : entry.type !== undefined ? {
|
|
29063
|
+
transport: entry.type
|
|
29064
|
+
} : {}
|
|
29065
|
+
}));
|
|
29066
|
+
}
|
|
29067
|
+
async function enumerateMcpServers(repoRoot) {
|
|
29068
|
+
const records = [];
|
|
29069
|
+
for (const source of MCP_CONFIG_SOURCES){
|
|
29070
|
+
records.push(...await readMcpServersFromSource(repoRoot, source));
|
|
29071
|
+
}
|
|
29072
|
+
return records;
|
|
29073
|
+
}
|
|
29074
|
+
|
|
28844
29075
|
;// CONCATENATED MODULE: ../doctor/src/gateways/scanner.ts
|
|
28845
29076
|
|
|
28846
29077
|
|
|
28847
29078
|
|
|
28848
29079
|
|
|
29080
|
+
|
|
28849
29081
|
const MAX_FILE_BYTES = 1_048_576;
|
|
28850
29082
|
const SCANNABLE_EXTENSIONS = new Set([
|
|
28851
29083
|
".md",
|
|
@@ -28882,6 +29114,9 @@ function determineConstructType(relPath) {
|
|
|
28882
29114
|
if (relPath.startsWith(".claude/hooks/")) {
|
|
28883
29115
|
return "hook";
|
|
28884
29116
|
}
|
|
29117
|
+
if (relPath.startsWith(".claude/agents/")) {
|
|
29118
|
+
return "subagent";
|
|
29119
|
+
}
|
|
28885
29120
|
if (relPath.startsWith(".claude/commands/")) {
|
|
28886
29121
|
return "agent";
|
|
28887
29122
|
}
|
|
@@ -29025,6 +29260,21 @@ async function scanRepository(repoRoot) {
|
|
|
29025
29260
|
record.loadMechanism = "referenced";
|
|
29026
29261
|
}
|
|
29027
29262
|
}
|
|
29263
|
+
const mcpServers = await enumerateMcpServers(absRoot);
|
|
29264
|
+
for (const server of mcpServers){
|
|
29265
|
+
records.push({
|
|
29266
|
+
id: `mcp-server:${server.path}#${server.serverName}`,
|
|
29267
|
+
path: server.path,
|
|
29268
|
+
harness: server.harness,
|
|
29269
|
+
constructType: "mcp-server",
|
|
29270
|
+
loadMechanism: "convention-loaded",
|
|
29271
|
+
edges: [],
|
|
29272
|
+
serverName: server.serverName,
|
|
29273
|
+
...server.transport !== undefined ? {
|
|
29274
|
+
transport: server.transport
|
|
29275
|
+
} : {}
|
|
29276
|
+
});
|
|
29277
|
+
}
|
|
29028
29278
|
return records;
|
|
29029
29279
|
}
|
|
29030
29280
|
|
|
@@ -29255,11 +29505,26 @@ const CRITERIA = [
|
|
|
29255
29505
|
severity: "medium",
|
|
29256
29506
|
classification: "advisory",
|
|
29257
29507
|
category: "wrong-direction",
|
|
29258
|
-
description: "A Copilot instruction file
|
|
29508
|
+
description: "A Copilot instruction file uses Claude's @path hard-import syntax to reference a Claude instruction file. Copilot does not process @path hard-imports, so this reference has no effect and may indicate copy-paste drift.",
|
|
29259
29509
|
checkMethod: "inventory.edgeDirectionExists",
|
|
29260
29510
|
checkArgs: {
|
|
29261
29511
|
fromHarness: "copilot",
|
|
29262
|
-
toHarness: "claude"
|
|
29512
|
+
toHarness: "claude",
|
|
29513
|
+
edgeType: "hard-import"
|
|
29514
|
+
}
|
|
29515
|
+
},
|
|
29516
|
+
{
|
|
29517
|
+
id: "wrong-direction-copilot-links-claude",
|
|
29518
|
+
appliesToHarness: "copilot",
|
|
29519
|
+
severity: "medium",
|
|
29520
|
+
classification: "advisory",
|
|
29521
|
+
category: "wrong-direction",
|
|
29522
|
+
description: "A Copilot instruction file contains a markdown hyperlink (or frontmatter see:/references:/requires: entry) pointing to a Claude instruction file. The Copilot CLI does not follow markdown hyperlinks or soft references in instructions, so this reference has no effect and may indicate copy-paste drift.",
|
|
29523
|
+
checkMethod: "inventory.edgeDirectionExists",
|
|
29524
|
+
checkArgs: {
|
|
29525
|
+
fromHarness: "copilot",
|
|
29526
|
+
toHarness: "claude",
|
|
29527
|
+
edgeType: "soft-reference"
|
|
29263
29528
|
}
|
|
29264
29529
|
},
|
|
29265
29530
|
{
|
|
@@ -29619,7 +29884,8 @@ const doctorCommand = defineCommand({
|
|
|
29619
29884
|
dominanceScore: summary.dominanceScore,
|
|
29620
29885
|
totalRecords: summary.totalRecords,
|
|
29621
29886
|
harnessBreakdown: summary.harnessBreakdown,
|
|
29622
|
-
crossHarnessEdges: summary.crossHarnessEdges
|
|
29887
|
+
crossHarnessEdges: summary.crossHarnessEdges,
|
|
29888
|
+
inventory: toInventoryItems(records)
|
|
29623
29889
|
}, null, 2)}\n`);
|
|
29624
29890
|
} else {
|
|
29625
29891
|
renderHuman(summary, [], logger, snapshotRef);
|
|
@@ -29628,7 +29894,7 @@ const doctorCommand = defineCommand({
|
|
|
29628
29894
|
}
|
|
29629
29895
|
if (classification.archetype === "none") {
|
|
29630
29896
|
if (format === "json") {
|
|
29631
|
-
process.stdout.write(`${JSON.stringify(toJson(summary, [], snapshotRef), null, 2)}\n`);
|
|
29897
|
+
process.stdout.write(`${JSON.stringify(toJson(summary, [], records, snapshotRef), null, 2)}\n`);
|
|
29632
29898
|
} else {
|
|
29633
29899
|
logger.info("No agentic constructs found in the repository.");
|
|
29634
29900
|
}
|
|
@@ -29660,7 +29926,7 @@ const doctorCommand = defineCommand({
|
|
|
29660
29926
|
intent
|
|
29661
29927
|
});
|
|
29662
29928
|
if (format === "json") {
|
|
29663
|
-
const report = toJson(summary, findings, snapshotRef);
|
|
29929
|
+
const report = toJson(summary, findings, records, snapshotRef);
|
|
29664
29930
|
process.stdout.write(`${JSON.stringify(report, null, 2)}\n`);
|
|
29665
29931
|
} else {
|
|
29666
29932
|
renderHuman(summary, findings, logger, snapshotRef);
|
|
@@ -61374,4 +61640,4 @@ if (installedChunkData !== 0) { // 0 means "already installed".'
|
|
|
61374
61640
|
// module factories are used so entry inlining is disabled
|
|
61375
61641
|
// startup
|
|
61376
61642
|
// Load entry module and return exports
|
|
61377
|
-
var __webpack_exports__ = __webpack_require__(
|
|
61643
|
+
var __webpack_exports__ = __webpack_require__(889);
|
package/package.json
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"ghcr.io/devcontainers/features/copilot-cli:1.0.0": {},
|
|
12
12
|
"ghcr.io/anthropics/devcontainer-features/claude-code:1": {
|
|
13
|
-
"version": "v2.1.
|
|
13
|
+
"version": "v2.1.198"
|
|
14
14
|
},
|
|
15
15
|
"ghcr.io/rocker-org/devcontainer-features/apt-packages:1.0.2": {
|
|
16
16
|
"packages": "libnss3, libnspr4, libatk1.0-0t64, libatk-bridge2.0-0t64, libcups2t64, libdrm2, libdbus-1-3, libatspi2.0-0t64, libxcomposite1, libxdamage1, libxfixes3, libxrandr2, libgbm1, libxkbcommon0, libasound2t64, yamllint, shellcheck",
|