@industry-theme/agent-panels 0.1.8 → 0.2.0
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/dist/index.d.ts.map +1 -1
- package/dist/panels/AgentDetailPanel.d.ts +6 -0
- package/dist/panels/AgentDetailPanel.d.ts.map +1 -0
- package/dist/panels/AgentsListPanel.d.ts +13 -0
- package/dist/panels/AgentsListPanel.d.ts.map +1 -0
- package/dist/panels/agents/components/AgentCard.d.ts +10 -0
- package/dist/panels/agents/components/AgentCard.d.ts.map +1 -0
- package/dist/panels/agents/components/SubagentCard.d.ts +10 -0
- package/dist/panels/agents/components/SubagentCard.d.ts.map +1 -0
- package/dist/panels/agents/hooks/useAgentsData.d.ts +37 -0
- package/dist/panels/agents/hooks/useAgentsData.d.ts.map +1 -0
- package/dist/panels/agents/hooks/useSubagentsData.d.ts +43 -0
- package/dist/panels/agents/hooks/useSubagentsData.d.ts.map +1 -0
- package/dist/panels/skills/hooks/useSkillsData.d.ts.map +1 -1
- package/dist/panels.bundle.js +1831 -114
- package/dist/panels.bundle.js.map +1 -1
- package/package.json +2 -2
- package/dist/panels/SkillDetailPanel.stories.d.ts +0 -48
- package/dist/panels/SkillDetailPanel.stories.d.ts.map +0 -1
- package/dist/panels/SkillsLifecycle.stories.d.ts +0 -22
- package/dist/panels/SkillsLifecycle.stories.d.ts.map +0 -1
- package/dist/panels/SkillsListPanel.stories.d.ts +0 -55
- package/dist/panels/SkillsListPanel.stories.d.ts.map +0 -1
package/dist/panels.bundle.js
CHANGED
|
@@ -2201,7 +2201,7 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
2201
2201
|
* This source code is licensed under the ISC license.
|
|
2202
2202
|
* See the LICENSE file in the root directory of this source tree.
|
|
2203
2203
|
*/
|
|
2204
|
-
const __iconNode$
|
|
2204
|
+
const __iconNode$o = [
|
|
2205
2205
|
["path", { d: "M12 7v14", key: "1akyts" }],
|
|
2206
2206
|
[
|
|
2207
2207
|
"path",
|
|
@@ -2211,72 +2211,99 @@ const __iconNode$j = [
|
|
|
2211
2211
|
}
|
|
2212
2212
|
]
|
|
2213
2213
|
];
|
|
2214
|
-
const BookOpen = createLucideIcon("book-open", __iconNode$
|
|
2214
|
+
const BookOpen = createLucideIcon("book-open", __iconNode$o);
|
|
2215
2215
|
/**
|
|
2216
2216
|
* @license lucide-react v0.552.0 - ISC
|
|
2217
2217
|
*
|
|
2218
2218
|
* This source code is licensed under the ISC license.
|
|
2219
2219
|
* See the LICENSE file in the root directory of this source tree.
|
|
2220
2220
|
*/
|
|
2221
|
-
const __iconNode$
|
|
2222
|
-
|
|
2221
|
+
const __iconNode$n = [
|
|
2222
|
+
["path", { d: "M12 8V4H8", key: "hb8ula" }],
|
|
2223
|
+
["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
|
|
2224
|
+
["path", { d: "M2 14h2", key: "vft8re" }],
|
|
2225
|
+
["path", { d: "M20 14h2", key: "4cs60a" }],
|
|
2226
|
+
["path", { d: "M15 13v2", key: "1xurst" }],
|
|
2227
|
+
["path", { d: "M9 13v2", key: "rq6x2g" }]
|
|
2228
|
+
];
|
|
2229
|
+
const Bot = createLucideIcon("bot", __iconNode$n);
|
|
2223
2230
|
/**
|
|
2224
2231
|
* @license lucide-react v0.552.0 - ISC
|
|
2225
2232
|
*
|
|
2226
2233
|
* This source code is licensed under the ISC license.
|
|
2227
2234
|
* See the LICENSE file in the root directory of this source tree.
|
|
2228
2235
|
*/
|
|
2229
|
-
const __iconNode$
|
|
2230
|
-
const
|
|
2236
|
+
const __iconNode$m = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
|
|
2237
|
+
const Check = createLucideIcon("check", __iconNode$m);
|
|
2231
2238
|
/**
|
|
2232
2239
|
* @license lucide-react v0.552.0 - ISC
|
|
2233
2240
|
*
|
|
2234
2241
|
* This source code is licensed under the ISC license.
|
|
2235
2242
|
* See the LICENSE file in the root directory of this source tree.
|
|
2236
2243
|
*/
|
|
2237
|
-
const __iconNode$
|
|
2238
|
-
const
|
|
2244
|
+
const __iconNode$l = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
2245
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$l);
|
|
2239
2246
|
/**
|
|
2240
2247
|
* @license lucide-react v0.552.0 - ISC
|
|
2241
2248
|
*
|
|
2242
2249
|
* This source code is licensed under the ISC license.
|
|
2243
2250
|
* See the LICENSE file in the root directory of this source tree.
|
|
2244
2251
|
*/
|
|
2245
|
-
const __iconNode$
|
|
2252
|
+
const __iconNode$k = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
|
|
2253
|
+
const ChevronRight = createLucideIcon("chevron-right", __iconNode$k);
|
|
2254
|
+
/**
|
|
2255
|
+
* @license lucide-react v0.552.0 - ISC
|
|
2256
|
+
*
|
|
2257
|
+
* This source code is licensed under the ISC license.
|
|
2258
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
2259
|
+
*/
|
|
2260
|
+
const __iconNode$j = [
|
|
2246
2261
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
2247
2262
|
["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
|
|
2248
2263
|
["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
|
|
2249
2264
|
];
|
|
2250
|
-
const CircleAlert = createLucideIcon("circle-alert", __iconNode$
|
|
2265
|
+
const CircleAlert = createLucideIcon("circle-alert", __iconNode$j);
|
|
2251
2266
|
/**
|
|
2252
2267
|
* @license lucide-react v0.552.0 - ISC
|
|
2253
2268
|
*
|
|
2254
2269
|
* This source code is licensed under the ISC license.
|
|
2255
2270
|
* See the LICENSE file in the root directory of this source tree.
|
|
2256
2271
|
*/
|
|
2257
|
-
const __iconNode$
|
|
2272
|
+
const __iconNode$i = [
|
|
2273
|
+
["path", { d: "m18 16 4-4-4-4", key: "1inbqp" }],
|
|
2274
|
+
["path", { d: "m6 8-4 4 4 4", key: "15zrgr" }],
|
|
2275
|
+
["path", { d: "m14.5 4-5 16", key: "e7oirm" }]
|
|
2276
|
+
];
|
|
2277
|
+
const CodeXml = createLucideIcon("code-xml", __iconNode$i);
|
|
2278
|
+
/**
|
|
2279
|
+
* @license lucide-react v0.552.0 - ISC
|
|
2280
|
+
*
|
|
2281
|
+
* This source code is licensed under the ISC license.
|
|
2282
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
2283
|
+
*/
|
|
2284
|
+
const __iconNode$h = [
|
|
2258
2285
|
["path", { d: "m16 18 6-6-6-6", key: "eg8j8" }],
|
|
2259
2286
|
["path", { d: "m8 6-6 6 6 6", key: "ppft3o" }]
|
|
2260
2287
|
];
|
|
2261
|
-
const Code = createLucideIcon("code", __iconNode$
|
|
2288
|
+
const Code = createLucideIcon("code", __iconNode$h);
|
|
2262
2289
|
/**
|
|
2263
2290
|
* @license lucide-react v0.552.0 - ISC
|
|
2264
2291
|
*
|
|
2265
2292
|
* This source code is licensed under the ISC license.
|
|
2266
2293
|
* See the LICENSE file in the root directory of this source tree.
|
|
2267
2294
|
*/
|
|
2268
|
-
const __iconNode$
|
|
2295
|
+
const __iconNode$g = [
|
|
2269
2296
|
["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
|
|
2270
2297
|
["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
|
|
2271
2298
|
];
|
|
2272
|
-
const Copy = createLucideIcon("copy", __iconNode$
|
|
2299
|
+
const Copy = createLucideIcon("copy", __iconNode$g);
|
|
2273
2300
|
/**
|
|
2274
2301
|
* @license lucide-react v0.552.0 - ISC
|
|
2275
2302
|
*
|
|
2276
2303
|
* This source code is licensed under the ISC license.
|
|
2277
2304
|
* See the LICENSE file in the root directory of this source tree.
|
|
2278
2305
|
*/
|
|
2279
|
-
const __iconNode$
|
|
2306
|
+
const __iconNode$f = [
|
|
2280
2307
|
["path", { d: "m15 15 6 6", key: "1s409w" }],
|
|
2281
2308
|
["path", { d: "m15 9 6-6", key: "ko1vev" }],
|
|
2282
2309
|
["path", { d: "M21 16v5h-5", key: "1ck2sf" }],
|
|
@@ -2286,14 +2313,14 @@ const __iconNode$c = [
|
|
|
2286
2313
|
["path", { d: "M3 8V3h5", key: "1ln10m" }],
|
|
2287
2314
|
["path", { d: "M9 9 3 3", key: "v551iv" }]
|
|
2288
2315
|
];
|
|
2289
|
-
const Expand = createLucideIcon("expand", __iconNode$
|
|
2316
|
+
const Expand = createLucideIcon("expand", __iconNode$f);
|
|
2290
2317
|
/**
|
|
2291
2318
|
* @license lucide-react v0.552.0 - ISC
|
|
2292
2319
|
*
|
|
2293
2320
|
* This source code is licensed under the ISC license.
|
|
2294
2321
|
* See the LICENSE file in the root directory of this source tree.
|
|
2295
2322
|
*/
|
|
2296
|
-
const __iconNode$
|
|
2323
|
+
const __iconNode$e = [
|
|
2297
2324
|
[
|
|
2298
2325
|
"path",
|
|
2299
2326
|
{
|
|
@@ -2305,14 +2332,14 @@ const __iconNode$b = [
|
|
|
2305
2332
|
["path", { d: "M10 12.5 8 15l2 2.5", key: "1tg20x" }],
|
|
2306
2333
|
["path", { d: "m14 12.5 2 2.5-2 2.5", key: "yinavb" }]
|
|
2307
2334
|
];
|
|
2308
|
-
const FileCode = createLucideIcon("file-code", __iconNode$
|
|
2335
|
+
const FileCode = createLucideIcon("file-code", __iconNode$e);
|
|
2309
2336
|
/**
|
|
2310
2337
|
* @license lucide-react v0.552.0 - ISC
|
|
2311
2338
|
*
|
|
2312
2339
|
* This source code is licensed under the ISC license.
|
|
2313
2340
|
* See the LICENSE file in the root directory of this source tree.
|
|
2314
2341
|
*/
|
|
2315
|
-
const __iconNode$
|
|
2342
|
+
const __iconNode$d = [
|
|
2316
2343
|
[
|
|
2317
2344
|
"path",
|
|
2318
2345
|
{
|
|
@@ -2325,14 +2352,39 @@ const __iconNode$a = [
|
|
|
2325
2352
|
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
2326
2353
|
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
2327
2354
|
];
|
|
2328
|
-
const FileText = createLucideIcon("file-text", __iconNode$
|
|
2355
|
+
const FileText = createLucideIcon("file-text", __iconNode$d);
|
|
2329
2356
|
/**
|
|
2330
2357
|
* @license lucide-react v0.552.0 - ISC
|
|
2331
2358
|
*
|
|
2332
2359
|
* This source code is licensed under the ISC license.
|
|
2333
2360
|
* See the LICENSE file in the root directory of this source tree.
|
|
2334
2361
|
*/
|
|
2335
|
-
const __iconNode$
|
|
2362
|
+
const __iconNode$c = [
|
|
2363
|
+
[
|
|
2364
|
+
"path",
|
|
2365
|
+
{
|
|
2366
|
+
d: "M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",
|
|
2367
|
+
key: "hod4my"
|
|
2368
|
+
}
|
|
2369
|
+
],
|
|
2370
|
+
[
|
|
2371
|
+
"path",
|
|
2372
|
+
{
|
|
2373
|
+
d: "M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",
|
|
2374
|
+
key: "w4yl2u"
|
|
2375
|
+
}
|
|
2376
|
+
],
|
|
2377
|
+
["path", { d: "M3 5a2 2 0 0 0 2 2h3", key: "f2jnh7" }],
|
|
2378
|
+
["path", { d: "M3 3v13a2 2 0 0 0 2 2h3", key: "k8epm1" }]
|
|
2379
|
+
];
|
|
2380
|
+
const FolderTree = createLucideIcon("folder-tree", __iconNode$c);
|
|
2381
|
+
/**
|
|
2382
|
+
* @license lucide-react v0.552.0 - ISC
|
|
2383
|
+
*
|
|
2384
|
+
* This source code is licensed under the ISC license.
|
|
2385
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
2386
|
+
*/
|
|
2387
|
+
const __iconNode$b = [
|
|
2336
2388
|
[
|
|
2337
2389
|
"path",
|
|
2338
2390
|
{
|
|
@@ -2341,14 +2393,14 @@ const __iconNode$9 = [
|
|
|
2341
2393
|
}
|
|
2342
2394
|
]
|
|
2343
2395
|
];
|
|
2344
|
-
const Folder = createLucideIcon("folder", __iconNode$
|
|
2396
|
+
const Folder = createLucideIcon("folder", __iconNode$b);
|
|
2345
2397
|
/**
|
|
2346
2398
|
* @license lucide-react v0.552.0 - ISC
|
|
2347
2399
|
*
|
|
2348
2400
|
* This source code is licensed under the ISC license.
|
|
2349
2401
|
* See the LICENSE file in the root directory of this source tree.
|
|
2350
2402
|
*/
|
|
2351
|
-
const __iconNode$
|
|
2403
|
+
const __iconNode$a = [
|
|
2352
2404
|
[
|
|
2353
2405
|
"path",
|
|
2354
2406
|
{
|
|
@@ -2358,49 +2410,49 @@ const __iconNode$8 = [
|
|
|
2358
2410
|
],
|
|
2359
2411
|
["path", { d: "M9 18c-4.51 2-5-2-7-2", key: "9comsn" }]
|
|
2360
2412
|
];
|
|
2361
|
-
const Github = createLucideIcon("github", __iconNode$
|
|
2413
|
+
const Github = createLucideIcon("github", __iconNode$a);
|
|
2362
2414
|
/**
|
|
2363
2415
|
* @license lucide-react v0.552.0 - ISC
|
|
2364
2416
|
*
|
|
2365
2417
|
* This source code is licensed under the ISC license.
|
|
2366
2418
|
* See the LICENSE file in the root directory of this source tree.
|
|
2367
2419
|
*/
|
|
2368
|
-
const __iconNode$
|
|
2420
|
+
const __iconNode$9 = [
|
|
2369
2421
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
2370
2422
|
["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
|
|
2371
2423
|
["path", { d: "M2 12h20", key: "9i4pu4" }]
|
|
2372
2424
|
];
|
|
2373
|
-
const Globe = createLucideIcon("globe", __iconNode$
|
|
2425
|
+
const Globe = createLucideIcon("globe", __iconNode$9);
|
|
2374
2426
|
/**
|
|
2375
2427
|
* @license lucide-react v0.552.0 - ISC
|
|
2376
2428
|
*
|
|
2377
2429
|
* This source code is licensed under the ISC license.
|
|
2378
2430
|
* See the LICENSE file in the root directory of this source tree.
|
|
2379
2431
|
*/
|
|
2380
|
-
const __iconNode$
|
|
2432
|
+
const __iconNode$8 = [
|
|
2381
2433
|
["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
|
|
2382
2434
|
["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
|
|
2383
2435
|
["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
|
|
2384
2436
|
];
|
|
2385
|
-
const Monitor = createLucideIcon("monitor", __iconNode$
|
|
2437
|
+
const Monitor = createLucideIcon("monitor", __iconNode$8);
|
|
2386
2438
|
/**
|
|
2387
2439
|
* @license lucide-react v0.552.0 - ISC
|
|
2388
2440
|
*
|
|
2389
2441
|
* This source code is licensed under the ISC license.
|
|
2390
2442
|
* See the LICENSE file in the root directory of this source tree.
|
|
2391
2443
|
*/
|
|
2392
|
-
const __iconNode$
|
|
2444
|
+
const __iconNode$7 = [
|
|
2393
2445
|
["path", { d: "M18 8L22 12L18 16", key: "1r0oui" }],
|
|
2394
2446
|
["path", { d: "M2 12H22", key: "1m8cig" }]
|
|
2395
2447
|
];
|
|
2396
|
-
const MoveRight = createLucideIcon("move-right", __iconNode$
|
|
2448
|
+
const MoveRight = createLucideIcon("move-right", __iconNode$7);
|
|
2397
2449
|
/**
|
|
2398
2450
|
* @license lucide-react v0.552.0 - ISC
|
|
2399
2451
|
*
|
|
2400
2452
|
* This source code is licensed under the ISC license.
|
|
2401
2453
|
* See the LICENSE file in the root directory of this source tree.
|
|
2402
2454
|
*/
|
|
2403
|
-
const __iconNode$
|
|
2455
|
+
const __iconNode$6 = [
|
|
2404
2456
|
[
|
|
2405
2457
|
"path",
|
|
2406
2458
|
{
|
|
@@ -2412,14 +2464,14 @@ const __iconNode$4 = [
|
|
|
2412
2464
|
["polyline", { points: "3.29 7 12 12 20.71 7", key: "ousv84" }],
|
|
2413
2465
|
["path", { d: "m7.5 4.27 9 5.15", key: "1c824w" }]
|
|
2414
2466
|
];
|
|
2415
|
-
const Package = createLucideIcon("package", __iconNode$
|
|
2467
|
+
const Package = createLucideIcon("package", __iconNode$6);
|
|
2416
2468
|
/**
|
|
2417
2469
|
* @license lucide-react v0.552.0 - ISC
|
|
2418
2470
|
*
|
|
2419
2471
|
* This source code is licensed under the ISC license.
|
|
2420
2472
|
* See the LICENSE file in the root directory of this source tree.
|
|
2421
2473
|
*/
|
|
2422
|
-
const __iconNode$
|
|
2474
|
+
const __iconNode$5 = [
|
|
2423
2475
|
[
|
|
2424
2476
|
"path",
|
|
2425
2477
|
{
|
|
@@ -2428,42 +2480,74 @@ const __iconNode$3 = [
|
|
|
2428
2480
|
}
|
|
2429
2481
|
]
|
|
2430
2482
|
];
|
|
2431
|
-
const Play = createLucideIcon("play", __iconNode$
|
|
2483
|
+
const Play = createLucideIcon("play", __iconNode$5);
|
|
2432
2484
|
/**
|
|
2433
2485
|
* @license lucide-react v0.552.0 - ISC
|
|
2434
2486
|
*
|
|
2435
2487
|
* This source code is licensed under the ISC license.
|
|
2436
2488
|
* See the LICENSE file in the root directory of this source tree.
|
|
2437
2489
|
*/
|
|
2438
|
-
const __iconNode$
|
|
2490
|
+
const __iconNode$4 = [
|
|
2439
2491
|
["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
|
|
2440
2492
|
["path", { d: "M21 3v5h-5", key: "1q7to0" }],
|
|
2441
2493
|
["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
|
|
2442
2494
|
["path", { d: "M8 16H3v5", key: "1cv678" }]
|
|
2443
2495
|
];
|
|
2444
|
-
const RefreshCw = createLucideIcon("refresh-cw", __iconNode$
|
|
2496
|
+
const RefreshCw = createLucideIcon("refresh-cw", __iconNode$4);
|
|
2445
2497
|
/**
|
|
2446
2498
|
* @license lucide-react v0.552.0 - ISC
|
|
2447
2499
|
*
|
|
2448
2500
|
* This source code is licensed under the ISC license.
|
|
2449
2501
|
* See the LICENSE file in the root directory of this source tree.
|
|
2450
2502
|
*/
|
|
2451
|
-
const __iconNode$
|
|
2503
|
+
const __iconNode$3 = [
|
|
2452
2504
|
["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
|
|
2453
2505
|
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
|
|
2454
2506
|
];
|
|
2455
|
-
const Search = createLucideIcon("search", __iconNode$
|
|
2507
|
+
const Search = createLucideIcon("search", __iconNode$3);
|
|
2456
2508
|
/**
|
|
2457
2509
|
* @license lucide-react v0.552.0 - ISC
|
|
2458
2510
|
*
|
|
2459
2511
|
* This source code is licensed under the ISC license.
|
|
2460
2512
|
* See the LICENSE file in the root directory of this source tree.
|
|
2461
2513
|
*/
|
|
2462
|
-
const __iconNode = [
|
|
2514
|
+
const __iconNode$2 = [
|
|
2515
|
+
[
|
|
2516
|
+
"path",
|
|
2517
|
+
{
|
|
2518
|
+
d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",
|
|
2519
|
+
key: "1ngwbx"
|
|
2520
|
+
}
|
|
2521
|
+
]
|
|
2522
|
+
];
|
|
2523
|
+
const Wrench = createLucideIcon("wrench", __iconNode$2);
|
|
2524
|
+
/**
|
|
2525
|
+
* @license lucide-react v0.552.0 - ISC
|
|
2526
|
+
*
|
|
2527
|
+
* This source code is licensed under the ISC license.
|
|
2528
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
2529
|
+
*/
|
|
2530
|
+
const __iconNode$1 = [
|
|
2463
2531
|
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
|
|
2464
2532
|
["path", { d: "m6 6 12 12", key: "d8bk6v" }]
|
|
2465
2533
|
];
|
|
2466
|
-
const X = createLucideIcon("x", __iconNode);
|
|
2534
|
+
const X = createLucideIcon("x", __iconNode$1);
|
|
2535
|
+
/**
|
|
2536
|
+
* @license lucide-react v0.552.0 - ISC
|
|
2537
|
+
*
|
|
2538
|
+
* This source code is licensed under the ISC license.
|
|
2539
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
2540
|
+
*/
|
|
2541
|
+
const __iconNode = [
|
|
2542
|
+
[
|
|
2543
|
+
"path",
|
|
2544
|
+
{
|
|
2545
|
+
d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",
|
|
2546
|
+
key: "1xq2db"
|
|
2547
|
+
}
|
|
2548
|
+
]
|
|
2549
|
+
];
|
|
2550
|
+
const Zap = createLucideIcon("zap", __iconNode);
|
|
2467
2551
|
const determineSkillSource = (path2) => {
|
|
2468
2552
|
if (path2.includes(".agent/skills/")) {
|
|
2469
2553
|
return { source: "project-universal", priority: 1 };
|
|
@@ -2474,11 +2558,31 @@ const determineSkillSource = (path2) => {
|
|
|
2474
2558
|
}
|
|
2475
2559
|
};
|
|
2476
2560
|
const findSkillFiles = (fileTree) => {
|
|
2477
|
-
const skillFiles = fileTree.allFiles.filter((file) =>
|
|
2561
|
+
const skillFiles = fileTree.allFiles.filter((file) => {
|
|
2562
|
+
const path2 = file.relativePath;
|
|
2563
|
+
const isMarkdown = file.name.endsWith(".md");
|
|
2564
|
+
const isInSkillDir = path2.includes(".agent/skills/") || path2.includes(".claude/skills/");
|
|
2565
|
+
const isMetadata = file.name === ".metadata.json" || file.name.startsWith(".");
|
|
2566
|
+
return isMarkdown && isInSkillDir && !isMetadata;
|
|
2567
|
+
});
|
|
2478
2568
|
return skillFiles.map((file) => file.relativePath);
|
|
2479
2569
|
};
|
|
2480
2570
|
const analyzeSkillStructure = (fileTree, skillPath) => {
|
|
2481
2571
|
const skillDir = skillPath.substring(0, skillPath.lastIndexOf("/"));
|
|
2572
|
+
const pathParts = skillPath.split("/");
|
|
2573
|
+
const parentDir = pathParts[pathParts.length - 2];
|
|
2574
|
+
const isStandaloneFile = parentDir === "skills";
|
|
2575
|
+
if (isStandaloneFile) {
|
|
2576
|
+
return {
|
|
2577
|
+
skillFolderPath: skillDir,
|
|
2578
|
+
hasScripts: false,
|
|
2579
|
+
hasReferences: false,
|
|
2580
|
+
hasAssets: false,
|
|
2581
|
+
scriptFiles: [],
|
|
2582
|
+
referenceFiles: [],
|
|
2583
|
+
assetFiles: []
|
|
2584
|
+
};
|
|
2585
|
+
}
|
|
2482
2586
|
const skillFiles = fileTree.allFiles.filter(
|
|
2483
2587
|
(file) => file.relativePath.startsWith(`${skillDir}/`)
|
|
2484
2588
|
);
|
|
@@ -2497,7 +2601,10 @@ const analyzeSkillStructure = (fileTree, skillPath) => {
|
|
|
2497
2601
|
};
|
|
2498
2602
|
const parseSkillContent = async (content2, path2, fileTree, fileSystemAdapter) => {
|
|
2499
2603
|
const pathParts = path2.split("/");
|
|
2500
|
-
const
|
|
2604
|
+
const fileName = pathParts[pathParts.length - 1];
|
|
2605
|
+
const parentDir = pathParts[pathParts.length - 2];
|
|
2606
|
+
const isDirectlyInSkillsDir = parentDir === "skills";
|
|
2607
|
+
const skillDirName = isDirectlyInSkillsDir ? fileName.replace(/\.md$/, "") : parentDir;
|
|
2501
2608
|
let description = "";
|
|
2502
2609
|
const lines = content2.split("\n");
|
|
2503
2610
|
let foundHeading = false;
|
|
@@ -2548,36 +2655,24 @@ const parseSkillContent = async (content2, path2, fileTree, fileSystemAdapter) =
|
|
|
2548
2655
|
const useSkillsData = ({
|
|
2549
2656
|
context
|
|
2550
2657
|
}) => {
|
|
2658
|
+
var _a, _b, _c;
|
|
2551
2659
|
const [skills, setSkills] = useState([]);
|
|
2552
2660
|
const [isLoading, setIsLoading] = useState(true);
|
|
2553
2661
|
const [error, setError] = useState(null);
|
|
2662
|
+
const fileTreeSlice = context.getSlice("fileTree");
|
|
2663
|
+
const fileTree = fileTreeSlice == null ? void 0 : fileTreeSlice.data;
|
|
2664
|
+
const fileTreeSha = fileTree == null ? void 0 : fileTree.sha;
|
|
2665
|
+
const globalSkillsSlice = context.getSlice("globalSkills");
|
|
2666
|
+
const globalSkills = ((_a = globalSkillsSlice == null ? void 0 : globalSkillsSlice.data) == null ? void 0 : _a.skills) || [];
|
|
2667
|
+
const repoPath = (_b = context.currentScope.repository) == null ? void 0 : _b.path;
|
|
2668
|
+
const fileSystem = (_c = context.adapters) == null ? void 0 : _c.fileSystem;
|
|
2554
2669
|
const loadSkills = useCallback(async () => {
|
|
2555
|
-
var _a, _b, _c;
|
|
2556
2670
|
setIsLoading(true);
|
|
2557
2671
|
setError(null);
|
|
2558
2672
|
try {
|
|
2559
|
-
const fileTreeSlice = context.getSlice("fileTree");
|
|
2560
|
-
const fileTree = fileTreeSlice == null ? void 0 : fileTreeSlice.data;
|
|
2561
2673
|
let localSkills = [];
|
|
2562
|
-
if (fileTree) {
|
|
2563
|
-
console.log("[useSkillsData] Full context:", context);
|
|
2564
|
-
const fileSystem = (_a = context.adapters) == null ? void 0 : _a.fileSystem;
|
|
2565
|
-
console.log("[useSkillsData] Adapters:", context.adapters);
|
|
2566
|
-
console.log("[useSkillsData] FileSystem adapter:", fileSystem);
|
|
2567
|
-
console.log("[useSkillsData] fileSystem?.readFile:", fileSystem == null ? void 0 : fileSystem.readFile);
|
|
2568
|
-
console.log("[useSkillsData] typeof fileSystem?.readFile:", typeof (fileSystem == null ? void 0 : fileSystem.readFile));
|
|
2569
|
-
console.log("[useSkillsData] Check result (!fileSystem?.readFile):", !(fileSystem == null ? void 0 : fileSystem.readFile));
|
|
2570
|
-
if (!(fileSystem == null ? void 0 : fileSystem.readFile)) {
|
|
2571
|
-
console.error("[useSkillsData] FAILING CHECK - fileSystem:", fileSystem);
|
|
2572
|
-
throw new Error("File system adapter not available");
|
|
2573
|
-
}
|
|
2574
|
-
console.log("[useSkillsData] Check passed! Continuing...");
|
|
2575
|
-
const repoPath = (_b = context.currentScope.repository) == null ? void 0 : _b.path;
|
|
2576
|
-
if (!repoPath) {
|
|
2577
|
-
throw new Error("Repository path not available");
|
|
2578
|
-
}
|
|
2674
|
+
if (fileTree && (fileSystem == null ? void 0 : fileSystem.readFile) && repoPath) {
|
|
2579
2675
|
console.log("[useSkillsData] fileTree:", fileTree);
|
|
2580
|
-
console.log("[useSkillsData] fileTree.allFiles:", fileTree.allFiles);
|
|
2581
2676
|
console.log("[useSkillsData] typeof fileTree:", typeof fileTree);
|
|
2582
2677
|
console.log("[useSkillsData] fileTree keys:", Object.keys(fileTree));
|
|
2583
2678
|
const skillPaths = findSkillFiles(fileTree);
|
|
@@ -2596,8 +2691,6 @@ const useSkillsData = ({
|
|
|
2596
2691
|
(skill) => skill !== null
|
|
2597
2692
|
);
|
|
2598
2693
|
}
|
|
2599
|
-
const globalSkillsSlice = context.getSlice("globalSkills");
|
|
2600
|
-
const globalSkills = ((_c = globalSkillsSlice == null ? void 0 : globalSkillsSlice.data) == null ? void 0 : _c.skills) || [];
|
|
2601
2694
|
console.log("[useSkillsData] Global skills:", globalSkills);
|
|
2602
2695
|
const allSkills = [...localSkills, ...globalSkills];
|
|
2603
2696
|
console.log("[useSkillsData] Total skills:", allSkills.length);
|
|
@@ -2609,7 +2702,7 @@ const useSkillsData = ({
|
|
|
2609
2702
|
} finally {
|
|
2610
2703
|
setIsLoading(false);
|
|
2611
2704
|
}
|
|
2612
|
-
}, [
|
|
2705
|
+
}, [fileTree, fileTreeSha, globalSkills, repoPath, fileSystem]);
|
|
2613
2706
|
const refreshSkills = useCallback(async () => {
|
|
2614
2707
|
await loadSkills();
|
|
2615
2708
|
}, [loadSkills]);
|
|
@@ -47987,55 +48080,1679 @@ const SkillDetailPanel = ({
|
|
|
47987
48080
|
}
|
|
47988
48081
|
);
|
|
47989
48082
|
};
|
|
47990
|
-
const
|
|
47991
|
-
{
|
|
47992
|
-
|
|
47993
|
-
|
|
47994
|
-
|
|
47995
|
-
|
|
47996
|
-
|
|
47997
|
-
|
|
47998
|
-
|
|
47999
|
-
|
|
48000
|
-
|
|
48001
|
-
|
|
48002
|
-
|
|
48003
|
-
|
|
48004
|
-
|
|
48005
|
-
|
|
48006
|
-
|
|
48007
|
-
|
|
48008
|
-
|
|
48009
|
-
|
|
48010
|
-
|
|
48011
|
-
|
|
48012
|
-
|
|
48013
|
-
|
|
48083
|
+
const determineAgentSource = (path2) => {
|
|
48084
|
+
if (path2 === "AGENTS.md") {
|
|
48085
|
+
return { source: "project-root", priority: 1 };
|
|
48086
|
+
}
|
|
48087
|
+
return { source: "project-nested", priority: 2 };
|
|
48088
|
+
};
|
|
48089
|
+
const findAgentFiles = (fileTree) => {
|
|
48090
|
+
const agentFiles = fileTree.allFiles.filter((file) => {
|
|
48091
|
+
const fileName = file.name.toUpperCase();
|
|
48092
|
+
return fileName === "AGENTS.MD";
|
|
48093
|
+
});
|
|
48094
|
+
return agentFiles.map((file) => file.relativePath);
|
|
48095
|
+
};
|
|
48096
|
+
const extractSections = (content2) => {
|
|
48097
|
+
const sections = {};
|
|
48098
|
+
const lines = content2.split("\n");
|
|
48099
|
+
let currentSection = null;
|
|
48100
|
+
let currentContent = [];
|
|
48101
|
+
const sectionPatterns = {
|
|
48102
|
+
setup: /^#+ (setup|installation|getting started)/i,
|
|
48103
|
+
build: /^#+ (build|building|compilation)/i,
|
|
48104
|
+
test: /^#+ (test|testing|tests|qa)/i,
|
|
48105
|
+
style: /^#+ (style|code style|conventions|guidelines)/i
|
|
48106
|
+
};
|
|
48107
|
+
for (const line of lines) {
|
|
48108
|
+
let matchedSection = null;
|
|
48109
|
+
for (const [key, pattern] of Object.entries(sectionPatterns)) {
|
|
48110
|
+
if (pattern.test(line)) {
|
|
48111
|
+
matchedSection = key;
|
|
48112
|
+
break;
|
|
48113
|
+
}
|
|
48014
48114
|
}
|
|
48015
|
-
|
|
48016
|
-
|
|
48017
|
-
|
|
48018
|
-
|
|
48019
|
-
|
|
48020
|
-
|
|
48021
|
-
|
|
48022
|
-
|
|
48023
|
-
|
|
48024
|
-
|
|
48025
|
-
|
|
48026
|
-
|
|
48027
|
-
|
|
48028
|
-
|
|
48029
|
-
|
|
48030
|
-
|
|
48031
|
-
|
|
48032
|
-
|
|
48033
|
-
|
|
48034
|
-
|
|
48035
|
-
|
|
48036
|
-
|
|
48037
|
-
|
|
48038
|
-
|
|
48115
|
+
if (matchedSection) {
|
|
48116
|
+
if (currentSection && currentContent.length > 0) {
|
|
48117
|
+
sections[currentSection] = currentContent.join("\n").trim().substring(0, 200);
|
|
48118
|
+
}
|
|
48119
|
+
currentSection = matchedSection;
|
|
48120
|
+
currentContent = [];
|
|
48121
|
+
} else if (currentSection && line.trim()) {
|
|
48122
|
+
currentContent.push(line);
|
|
48123
|
+
}
|
|
48124
|
+
}
|
|
48125
|
+
if (currentSection && currentContent.length > 0) {
|
|
48126
|
+
sections[currentSection] = currentContent.join("\n").trim().substring(0, 200);
|
|
48127
|
+
}
|
|
48128
|
+
return sections;
|
|
48129
|
+
};
|
|
48130
|
+
const parseAgentContent = (content2, path2) => {
|
|
48131
|
+
const pathParts = path2.split("/");
|
|
48132
|
+
const isRoot = path2 === "AGENTS.md";
|
|
48133
|
+
const name2 = isRoot ? "Project Agents" : pathParts[pathParts.length - 2] || "Agents";
|
|
48134
|
+
const { source: source2, priority } = determineAgentSource(path2);
|
|
48135
|
+
const sections = extractSections(content2);
|
|
48136
|
+
return {
|
|
48137
|
+
id: path2,
|
|
48138
|
+
name: name2,
|
|
48139
|
+
path: path2,
|
|
48140
|
+
content: content2,
|
|
48141
|
+
source: source2,
|
|
48142
|
+
priority,
|
|
48143
|
+
sections
|
|
48144
|
+
};
|
|
48145
|
+
};
|
|
48146
|
+
const useAgentsData = ({
|
|
48147
|
+
context
|
|
48148
|
+
}) => {
|
|
48149
|
+
var _a, _b, _c;
|
|
48150
|
+
const [agents, setAgents] = useState([]);
|
|
48151
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
48152
|
+
const [error, setError] = useState(null);
|
|
48153
|
+
const fileTreeSlice = context.getSlice("fileTree");
|
|
48154
|
+
const fileTree = fileTreeSlice == null ? void 0 : fileTreeSlice.data;
|
|
48155
|
+
const fileTreeSha = fileTree == null ? void 0 : fileTree.sha;
|
|
48156
|
+
const globalAgentsSlice = context.getSlice("globalAgents");
|
|
48157
|
+
const globalAgents = ((_a = globalAgentsSlice == null ? void 0 : globalAgentsSlice.data) == null ? void 0 : _a.agents) || [];
|
|
48158
|
+
const repoPath = (_b = context.currentScope.repository) == null ? void 0 : _b.path;
|
|
48159
|
+
const fileSystem = (_c = context.adapters) == null ? void 0 : _c.fileSystem;
|
|
48160
|
+
const loadAgents = useCallback(async () => {
|
|
48161
|
+
setIsLoading(true);
|
|
48162
|
+
setError(null);
|
|
48163
|
+
try {
|
|
48164
|
+
let localAgents = [];
|
|
48165
|
+
if (fileTree && (fileSystem == null ? void 0 : fileSystem.readFile) && repoPath) {
|
|
48166
|
+
console.log("[useAgentsData] Searching for AGENTS.md files in fileTree");
|
|
48167
|
+
const agentPaths = findAgentFiles(fileTree);
|
|
48168
|
+
console.log("[useAgentsData] Found agent paths:", agentPaths);
|
|
48169
|
+
const agentPromises = agentPaths.map(async (agentPath) => {
|
|
48170
|
+
try {
|
|
48171
|
+
const fullPath = `${repoPath}/${agentPath}`;
|
|
48172
|
+
const content2 = await fileSystem.readFile(fullPath);
|
|
48173
|
+
return parseAgentContent(content2, agentPath);
|
|
48174
|
+
} catch (err) {
|
|
48175
|
+
console.error(`Failed to read agent at ${agentPath}:`, err);
|
|
48176
|
+
return null;
|
|
48177
|
+
}
|
|
48178
|
+
});
|
|
48179
|
+
localAgents = (await Promise.all(agentPromises)).filter(
|
|
48180
|
+
(agent) => agent !== null
|
|
48181
|
+
);
|
|
48182
|
+
}
|
|
48183
|
+
console.log("[useAgentsData] Global agents:", globalAgents);
|
|
48184
|
+
const allAgents = [...localAgents, ...globalAgents];
|
|
48185
|
+
console.log("[useAgentsData] Total agents:", allAgents.length);
|
|
48186
|
+
setAgents(allAgents);
|
|
48187
|
+
} catch (err) {
|
|
48188
|
+
const errorMessage = err instanceof Error ? err.message : "Failed to load agents";
|
|
48189
|
+
setError(errorMessage);
|
|
48190
|
+
console.error("Error loading agents:", err);
|
|
48191
|
+
} finally {
|
|
48192
|
+
setIsLoading(false);
|
|
48193
|
+
}
|
|
48194
|
+
}, [fileTree, fileTreeSha, globalAgents, repoPath, fileSystem]);
|
|
48195
|
+
const refreshAgents = useCallback(async () => {
|
|
48196
|
+
await loadAgents();
|
|
48197
|
+
}, [loadAgents]);
|
|
48198
|
+
useEffect(() => {
|
|
48199
|
+
loadAgents();
|
|
48200
|
+
}, [loadAgents]);
|
|
48201
|
+
return {
|
|
48202
|
+
agents,
|
|
48203
|
+
isLoading,
|
|
48204
|
+
error,
|
|
48205
|
+
refreshAgents
|
|
48206
|
+
};
|
|
48207
|
+
};
|
|
48208
|
+
const determineSubagentSource = (path2) => {
|
|
48209
|
+
if (path2.includes(".claude/agents/")) {
|
|
48210
|
+
return { source: "project-claude", priority: 1 };
|
|
48211
|
+
}
|
|
48212
|
+
return { source: "global-claude", priority: 2 };
|
|
48213
|
+
};
|
|
48214
|
+
const findSubagentFiles = (fileTree) => {
|
|
48215
|
+
const subagentFiles = fileTree.allFiles.filter((file) => {
|
|
48216
|
+
const path2 = file.relativePath;
|
|
48217
|
+
const isMarkdown = file.name.endsWith(".md");
|
|
48218
|
+
const isInAgentsDir = path2.startsWith(".claude/agents/");
|
|
48219
|
+
return isMarkdown && isInAgentsDir;
|
|
48220
|
+
});
|
|
48221
|
+
return subagentFiles.map((file) => file.relativePath);
|
|
48222
|
+
};
|
|
48223
|
+
const parseFrontmatter = (content2) => {
|
|
48224
|
+
if (!content2.trim().startsWith("---")) {
|
|
48225
|
+
throw new Error("No frontmatter found - subagent must have YAML frontmatter");
|
|
48226
|
+
}
|
|
48227
|
+
const lines = content2.split("\n");
|
|
48228
|
+
let frontmatterEnd = -1;
|
|
48229
|
+
for (let i = 1; i < lines.length; i++) {
|
|
48230
|
+
if (lines[i].trim() === "---") {
|
|
48231
|
+
frontmatterEnd = i;
|
|
48232
|
+
break;
|
|
48233
|
+
}
|
|
48234
|
+
}
|
|
48235
|
+
if (frontmatterEnd === -1) {
|
|
48236
|
+
throw new Error("Malformed frontmatter - missing closing ---");
|
|
48237
|
+
}
|
|
48238
|
+
const frontmatterLines = lines.slice(1, frontmatterEnd);
|
|
48239
|
+
const body = lines.slice(frontmatterEnd + 1).join("\n").trim();
|
|
48240
|
+
const frontmatter = {};
|
|
48241
|
+
for (const line of frontmatterLines) {
|
|
48242
|
+
const trimmedLine = line.trim();
|
|
48243
|
+
if (!trimmedLine || trimmedLine.startsWith("#")) continue;
|
|
48244
|
+
const colonIndex = trimmedLine.indexOf(":");
|
|
48245
|
+
if (colonIndex === -1) continue;
|
|
48246
|
+
const key = trimmedLine.substring(0, colonIndex).trim();
|
|
48247
|
+
const value = trimmedLine.substring(colonIndex + 1).trim();
|
|
48248
|
+
const cleanValue = value.replace(/^["']|["']$/g, "");
|
|
48249
|
+
frontmatter[key] = cleanValue;
|
|
48250
|
+
}
|
|
48251
|
+
if (!frontmatter.name || !frontmatter.description) {
|
|
48252
|
+
throw new Error('Subagent frontmatter must have "name" and "description" fields');
|
|
48253
|
+
}
|
|
48254
|
+
return {
|
|
48255
|
+
frontmatter,
|
|
48256
|
+
body
|
|
48257
|
+
};
|
|
48258
|
+
};
|
|
48259
|
+
const parseSubagentContent = (content2, path2) => {
|
|
48260
|
+
try {
|
|
48261
|
+
const { frontmatter, body } = parseFrontmatter(content2);
|
|
48262
|
+
const { source: source2, priority } = determineSubagentSource(path2);
|
|
48263
|
+
return {
|
|
48264
|
+
id: path2,
|
|
48265
|
+
name: frontmatter.name,
|
|
48266
|
+
path: path2,
|
|
48267
|
+
content: content2,
|
|
48268
|
+
prompt: body,
|
|
48269
|
+
frontmatter,
|
|
48270
|
+
source: source2,
|
|
48271
|
+
priority
|
|
48272
|
+
};
|
|
48273
|
+
} catch (err) {
|
|
48274
|
+
console.error(`Failed to parse subagent at ${path2}:`, err);
|
|
48275
|
+
throw err;
|
|
48276
|
+
}
|
|
48277
|
+
};
|
|
48278
|
+
const useSubagentsData = ({
|
|
48279
|
+
context
|
|
48280
|
+
}) => {
|
|
48281
|
+
var _a, _b, _c;
|
|
48282
|
+
const [subagents, setSubagents] = useState([]);
|
|
48283
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
48284
|
+
const [error, setError] = useState(null);
|
|
48285
|
+
const fileTreeSlice = context.getSlice("fileTree");
|
|
48286
|
+
const fileTree = fileTreeSlice == null ? void 0 : fileTreeSlice.data;
|
|
48287
|
+
const fileTreeSha = fileTree == null ? void 0 : fileTree.sha;
|
|
48288
|
+
const globalSubagentsSlice = context.getSlice("globalSubagents");
|
|
48289
|
+
const globalSubagents = ((_a = globalSubagentsSlice == null ? void 0 : globalSubagentsSlice.data) == null ? void 0 : _a.subagents) || [];
|
|
48290
|
+
const repoPath = (_b = context.currentScope.repository) == null ? void 0 : _b.path;
|
|
48291
|
+
const fileSystem = (_c = context.adapters) == null ? void 0 : _c.fileSystem;
|
|
48292
|
+
const loadSubagents = useCallback(async () => {
|
|
48293
|
+
setIsLoading(true);
|
|
48294
|
+
setError(null);
|
|
48295
|
+
try {
|
|
48296
|
+
let localSubagents = [];
|
|
48297
|
+
if (fileTree && (fileSystem == null ? void 0 : fileSystem.readFile) && repoPath) {
|
|
48298
|
+
console.log("[useSubagentsData] Searching for subagent files in .claude/agents/");
|
|
48299
|
+
const subagentPaths = findSubagentFiles(fileTree);
|
|
48300
|
+
console.log("[useSubagentsData] Found subagent paths:", subagentPaths);
|
|
48301
|
+
const subagentPromises = subagentPaths.map(async (subagentPath) => {
|
|
48302
|
+
try {
|
|
48303
|
+
const fullPath = `${repoPath}/${subagentPath}`;
|
|
48304
|
+
const content2 = await fileSystem.readFile(fullPath);
|
|
48305
|
+
return parseSubagentContent(content2, subagentPath);
|
|
48306
|
+
} catch (err) {
|
|
48307
|
+
console.error(`Failed to read subagent at ${subagentPath}:`, err);
|
|
48308
|
+
return null;
|
|
48309
|
+
}
|
|
48310
|
+
});
|
|
48311
|
+
localSubagents = (await Promise.all(subagentPromises)).filter(
|
|
48312
|
+
(subagent) => subagent !== null
|
|
48313
|
+
);
|
|
48314
|
+
}
|
|
48315
|
+
console.log("[useSubagentsData] Global subagents:", globalSubagents);
|
|
48316
|
+
const allSubagents = [...localSubagents, ...globalSubagents];
|
|
48317
|
+
console.log("[useSubagentsData] Total subagents:", allSubagents.length);
|
|
48318
|
+
setSubagents(allSubagents);
|
|
48319
|
+
} catch (err) {
|
|
48320
|
+
const errorMessage = err instanceof Error ? err.message : "Failed to load subagents";
|
|
48321
|
+
setError(errorMessage);
|
|
48322
|
+
console.error("Error loading subagents:", err);
|
|
48323
|
+
} finally {
|
|
48324
|
+
setIsLoading(false);
|
|
48325
|
+
}
|
|
48326
|
+
}, [fileTree, fileTreeSha, globalSubagents, repoPath, fileSystem]);
|
|
48327
|
+
const refreshSubagents = useCallback(async () => {
|
|
48328
|
+
await loadSubagents();
|
|
48329
|
+
}, [loadSubagents]);
|
|
48330
|
+
useEffect(() => {
|
|
48331
|
+
loadSubagents();
|
|
48332
|
+
}, [loadSubagents]);
|
|
48333
|
+
return {
|
|
48334
|
+
subagents,
|
|
48335
|
+
isLoading,
|
|
48336
|
+
error,
|
|
48337
|
+
refreshSubagents
|
|
48338
|
+
};
|
|
48339
|
+
};
|
|
48340
|
+
const getSourceBadge$1 = (source2) => {
|
|
48341
|
+
switch (source2) {
|
|
48342
|
+
case "project-root":
|
|
48343
|
+
return {
|
|
48344
|
+
label: "Root",
|
|
48345
|
+
icon: /* @__PURE__ */ jsx(FileText, { size: 12 }),
|
|
48346
|
+
color: "#10b981",
|
|
48347
|
+
bgColor: "#10b98120"
|
|
48348
|
+
};
|
|
48349
|
+
case "project-nested":
|
|
48350
|
+
return {
|
|
48351
|
+
label: "Nested",
|
|
48352
|
+
icon: /* @__PURE__ */ jsx(FolderTree, { size: 12 }),
|
|
48353
|
+
color: "#3b82f6",
|
|
48354
|
+
bgColor: "#3b82f620"
|
|
48355
|
+
};
|
|
48356
|
+
case "global-universal":
|
|
48357
|
+
return {
|
|
48358
|
+
label: "Global",
|
|
48359
|
+
icon: /* @__PURE__ */ jsx(Folder, { size: 12 }),
|
|
48360
|
+
color: "#8b5cf6",
|
|
48361
|
+
bgColor: "#8b5cf620"
|
|
48362
|
+
};
|
|
48363
|
+
}
|
|
48364
|
+
};
|
|
48365
|
+
const AgentCard = ({ agent, onClick, isSelected }) => {
|
|
48366
|
+
var _a;
|
|
48367
|
+
const { theme: theme2 } = useTheme();
|
|
48368
|
+
const sourceBadge = getSourceBadge$1(agent.source);
|
|
48369
|
+
const preview = ((_a = agent.content.split("\n").find((line) => line.trim() && !line.startsWith("#"))) == null ? void 0 : _a.substring(0, 150)) || "No description available";
|
|
48370
|
+
return /* @__PURE__ */ jsxs(
|
|
48371
|
+
"div",
|
|
48372
|
+
{
|
|
48373
|
+
onClick: () => onClick(agent),
|
|
48374
|
+
style: {
|
|
48375
|
+
padding: "16px",
|
|
48376
|
+
background: isSelected ? `${theme2.colors.primary}10` : theme2.colors.backgroundSecondary,
|
|
48377
|
+
border: `1px solid ${isSelected ? theme2.colors.primary : theme2.colors.border}`,
|
|
48378
|
+
borderRadius: theme2.radii[2],
|
|
48379
|
+
cursor: "pointer",
|
|
48380
|
+
transition: "all 0.2s ease",
|
|
48381
|
+
display: "flex",
|
|
48382
|
+
flexDirection: "column",
|
|
48383
|
+
gap: "12px"
|
|
48384
|
+
},
|
|
48385
|
+
onMouseEnter: (e) => {
|
|
48386
|
+
if (!isSelected) {
|
|
48387
|
+
e.currentTarget.style.borderColor = theme2.colors.textSecondary;
|
|
48388
|
+
e.currentTarget.style.transform = "translateY(-2px)";
|
|
48389
|
+
}
|
|
48390
|
+
},
|
|
48391
|
+
onMouseLeave: (e) => {
|
|
48392
|
+
if (!isSelected) {
|
|
48393
|
+
e.currentTarget.style.borderColor = theme2.colors.border;
|
|
48394
|
+
e.currentTarget.style.transform = "translateY(0)";
|
|
48395
|
+
}
|
|
48396
|
+
},
|
|
48397
|
+
children: [
|
|
48398
|
+
/* @__PURE__ */ jsxs(
|
|
48399
|
+
"div",
|
|
48400
|
+
{
|
|
48401
|
+
style: {
|
|
48402
|
+
display: "flex",
|
|
48403
|
+
alignItems: "flex-start",
|
|
48404
|
+
justifyContent: "space-between",
|
|
48405
|
+
gap: "8px"
|
|
48406
|
+
},
|
|
48407
|
+
children: [
|
|
48408
|
+
/* @__PURE__ */ jsx(
|
|
48409
|
+
"h3",
|
|
48410
|
+
{
|
|
48411
|
+
style: {
|
|
48412
|
+
margin: 0,
|
|
48413
|
+
fontSize: theme2.fontSizes[2],
|
|
48414
|
+
color: theme2.colors.text,
|
|
48415
|
+
fontWeight: 600,
|
|
48416
|
+
flex: 1
|
|
48417
|
+
},
|
|
48418
|
+
children: agent.name
|
|
48419
|
+
}
|
|
48420
|
+
),
|
|
48421
|
+
/* @__PURE__ */ jsxs(
|
|
48422
|
+
"div",
|
|
48423
|
+
{
|
|
48424
|
+
style: {
|
|
48425
|
+
display: "flex",
|
|
48426
|
+
alignItems: "center",
|
|
48427
|
+
gap: "4px",
|
|
48428
|
+
padding: "4px 8px",
|
|
48429
|
+
fontSize: theme2.fontSizes[0],
|
|
48430
|
+
color: sourceBadge.color,
|
|
48431
|
+
background: sourceBadge.bgColor,
|
|
48432
|
+
border: `1px solid ${sourceBadge.color}40`,
|
|
48433
|
+
borderRadius: theme2.radii[1],
|
|
48434
|
+
flexShrink: 0
|
|
48435
|
+
},
|
|
48436
|
+
children: [
|
|
48437
|
+
sourceBadge.icon,
|
|
48438
|
+
/* @__PURE__ */ jsx("span", { children: sourceBadge.label })
|
|
48439
|
+
]
|
|
48440
|
+
}
|
|
48441
|
+
)
|
|
48442
|
+
]
|
|
48443
|
+
}
|
|
48444
|
+
),
|
|
48445
|
+
/* @__PURE__ */ jsx(
|
|
48446
|
+
"div",
|
|
48447
|
+
{
|
|
48448
|
+
style: {
|
|
48449
|
+
fontSize: theme2.fontSizes[0],
|
|
48450
|
+
color: theme2.colors.textSecondary,
|
|
48451
|
+
fontFamily: theme2.fonts.monospace,
|
|
48452
|
+
wordBreak: "break-all"
|
|
48453
|
+
},
|
|
48454
|
+
children: agent.path
|
|
48455
|
+
}
|
|
48456
|
+
),
|
|
48457
|
+
/* @__PURE__ */ jsx(
|
|
48458
|
+
"div",
|
|
48459
|
+
{
|
|
48460
|
+
style: {
|
|
48461
|
+
fontSize: theme2.fontSizes[1],
|
|
48462
|
+
color: theme2.colors.textSecondary,
|
|
48463
|
+
lineHeight: 1.5,
|
|
48464
|
+
overflow: "hidden",
|
|
48465
|
+
textOverflow: "ellipsis",
|
|
48466
|
+
display: "-webkit-box",
|
|
48467
|
+
WebkitLineClamp: 3,
|
|
48468
|
+
WebkitBoxOrient: "vertical"
|
|
48469
|
+
},
|
|
48470
|
+
children: preview
|
|
48471
|
+
}
|
|
48472
|
+
),
|
|
48473
|
+
agent.sections && Object.keys(agent.sections).length > 0 && /* @__PURE__ */ jsx(
|
|
48474
|
+
"div",
|
|
48475
|
+
{
|
|
48476
|
+
style: {
|
|
48477
|
+
display: "flex",
|
|
48478
|
+
flexWrap: "wrap",
|
|
48479
|
+
gap: "6px",
|
|
48480
|
+
marginTop: "4px"
|
|
48481
|
+
},
|
|
48482
|
+
children: Object.keys(agent.sections).map((section) => /* @__PURE__ */ jsx(
|
|
48483
|
+
"span",
|
|
48484
|
+
{
|
|
48485
|
+
style: {
|
|
48486
|
+
fontSize: theme2.fontSizes[0],
|
|
48487
|
+
padding: "2px 8px",
|
|
48488
|
+
background: theme2.colors.background,
|
|
48489
|
+
border: `1px solid ${theme2.colors.border}`,
|
|
48490
|
+
borderRadius: theme2.radii[1],
|
|
48491
|
+
color: theme2.colors.textSecondary,
|
|
48492
|
+
textTransform: "capitalize"
|
|
48493
|
+
},
|
|
48494
|
+
children: section
|
|
48495
|
+
},
|
|
48496
|
+
section
|
|
48497
|
+
))
|
|
48498
|
+
}
|
|
48499
|
+
)
|
|
48500
|
+
]
|
|
48501
|
+
}
|
|
48502
|
+
);
|
|
48503
|
+
};
|
|
48504
|
+
const getSourceBadge = (source2) => {
|
|
48505
|
+
switch (source2) {
|
|
48506
|
+
case "project-claude":
|
|
48507
|
+
return {
|
|
48508
|
+
label: "Project",
|
|
48509
|
+
icon: /* @__PURE__ */ jsx(Folder, { size: 12 }),
|
|
48510
|
+
color: "#06b6d4",
|
|
48511
|
+
bgColor: "#06b6d420"
|
|
48512
|
+
};
|
|
48513
|
+
case "global-claude":
|
|
48514
|
+
return {
|
|
48515
|
+
label: "Global",
|
|
48516
|
+
icon: /* @__PURE__ */ jsx(Globe, { size: 12 }),
|
|
48517
|
+
color: "#8b5cf6",
|
|
48518
|
+
bgColor: "#8b5cf620"
|
|
48519
|
+
};
|
|
48520
|
+
}
|
|
48521
|
+
};
|
|
48522
|
+
const getModelColor = (model) => {
|
|
48523
|
+
switch (model) {
|
|
48524
|
+
case "opus":
|
|
48525
|
+
return "#f59e0b";
|
|
48526
|
+
case "sonnet":
|
|
48527
|
+
return "#10b981";
|
|
48528
|
+
case "haiku":
|
|
48529
|
+
return "#3b82f6";
|
|
48530
|
+
case "inherit":
|
|
48531
|
+
return "#6b7280";
|
|
48532
|
+
default:
|
|
48533
|
+
return "#10b981";
|
|
48534
|
+
}
|
|
48535
|
+
};
|
|
48536
|
+
const SubagentCard = ({ subagent, onClick, isSelected }) => {
|
|
48537
|
+
const { theme: theme2 } = useTheme();
|
|
48538
|
+
const sourceBadge = getSourceBadge(subagent.source);
|
|
48539
|
+
const modelColor = getModelColor(subagent.frontmatter.model);
|
|
48540
|
+
const hasTools = subagent.frontmatter.tools;
|
|
48541
|
+
const toolsArray = hasTools ? hasTools.split(",").map((t) => t.trim()) : null;
|
|
48542
|
+
return /* @__PURE__ */ jsxs(
|
|
48543
|
+
"div",
|
|
48544
|
+
{
|
|
48545
|
+
onClick: () => onClick(subagent),
|
|
48546
|
+
style: {
|
|
48547
|
+
padding: "16px",
|
|
48548
|
+
background: isSelected ? `${theme2.colors.primary}10` : theme2.colors.backgroundSecondary,
|
|
48549
|
+
border: `1px solid ${isSelected ? theme2.colors.primary : theme2.colors.border}`,
|
|
48550
|
+
borderRadius: theme2.radii[2],
|
|
48551
|
+
cursor: "pointer",
|
|
48552
|
+
transition: "all 0.2s ease",
|
|
48553
|
+
display: "flex",
|
|
48554
|
+
flexDirection: "column",
|
|
48555
|
+
gap: "12px"
|
|
48556
|
+
},
|
|
48557
|
+
onMouseEnter: (e) => {
|
|
48558
|
+
if (!isSelected) {
|
|
48559
|
+
e.currentTarget.style.borderColor = theme2.colors.textSecondary;
|
|
48560
|
+
e.currentTarget.style.transform = "translateY(-2px)";
|
|
48561
|
+
}
|
|
48562
|
+
},
|
|
48563
|
+
onMouseLeave: (e) => {
|
|
48564
|
+
if (!isSelected) {
|
|
48565
|
+
e.currentTarget.style.borderColor = theme2.colors.border;
|
|
48566
|
+
e.currentTarget.style.transform = "translateY(0)";
|
|
48567
|
+
}
|
|
48568
|
+
},
|
|
48569
|
+
children: [
|
|
48570
|
+
/* @__PURE__ */ jsxs(
|
|
48571
|
+
"div",
|
|
48572
|
+
{
|
|
48573
|
+
style: {
|
|
48574
|
+
display: "flex",
|
|
48575
|
+
alignItems: "flex-start",
|
|
48576
|
+
justifyContent: "space-between",
|
|
48577
|
+
gap: "8px"
|
|
48578
|
+
},
|
|
48579
|
+
children: [
|
|
48580
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px", flex: 1 }, children: [
|
|
48581
|
+
/* @__PURE__ */ jsx(Bot, { size: 18, color: theme2.colors.primary }),
|
|
48582
|
+
/* @__PURE__ */ jsx(
|
|
48583
|
+
"h3",
|
|
48584
|
+
{
|
|
48585
|
+
style: {
|
|
48586
|
+
margin: 0,
|
|
48587
|
+
fontSize: theme2.fontSizes[2],
|
|
48588
|
+
color: theme2.colors.text,
|
|
48589
|
+
fontWeight: 600
|
|
48590
|
+
},
|
|
48591
|
+
children: subagent.name
|
|
48592
|
+
}
|
|
48593
|
+
)
|
|
48594
|
+
] }),
|
|
48595
|
+
/* @__PURE__ */ jsxs(
|
|
48596
|
+
"div",
|
|
48597
|
+
{
|
|
48598
|
+
style: {
|
|
48599
|
+
display: "flex",
|
|
48600
|
+
alignItems: "center",
|
|
48601
|
+
gap: "4px",
|
|
48602
|
+
padding: "4px 8px",
|
|
48603
|
+
fontSize: theme2.fontSizes[0],
|
|
48604
|
+
color: sourceBadge.color,
|
|
48605
|
+
background: sourceBadge.bgColor,
|
|
48606
|
+
border: `1px solid ${sourceBadge.color}40`,
|
|
48607
|
+
borderRadius: theme2.radii[1],
|
|
48608
|
+
flexShrink: 0
|
|
48609
|
+
},
|
|
48610
|
+
children: [
|
|
48611
|
+
sourceBadge.icon,
|
|
48612
|
+
/* @__PURE__ */ jsx("span", { children: sourceBadge.label })
|
|
48613
|
+
]
|
|
48614
|
+
}
|
|
48615
|
+
)
|
|
48616
|
+
]
|
|
48617
|
+
}
|
|
48618
|
+
),
|
|
48619
|
+
/* @__PURE__ */ jsx(
|
|
48620
|
+
"div",
|
|
48621
|
+
{
|
|
48622
|
+
style: {
|
|
48623
|
+
fontSize: theme2.fontSizes[1],
|
|
48624
|
+
color: theme2.colors.textSecondary,
|
|
48625
|
+
lineHeight: 1.5
|
|
48626
|
+
},
|
|
48627
|
+
children: subagent.frontmatter.description
|
|
48628
|
+
}
|
|
48629
|
+
),
|
|
48630
|
+
/* @__PURE__ */ jsx(
|
|
48631
|
+
"div",
|
|
48632
|
+
{
|
|
48633
|
+
style: {
|
|
48634
|
+
fontSize: theme2.fontSizes[0],
|
|
48635
|
+
color: theme2.colors.textSecondary,
|
|
48636
|
+
fontFamily: theme2.fonts.monospace,
|
|
48637
|
+
wordBreak: "break-all",
|
|
48638
|
+
opacity: 0.7
|
|
48639
|
+
},
|
|
48640
|
+
children: subagent.path
|
|
48641
|
+
}
|
|
48642
|
+
),
|
|
48643
|
+
/* @__PURE__ */ jsxs(
|
|
48644
|
+
"div",
|
|
48645
|
+
{
|
|
48646
|
+
style: {
|
|
48647
|
+
display: "flex",
|
|
48648
|
+
flexWrap: "wrap",
|
|
48649
|
+
gap: "6px",
|
|
48650
|
+
marginTop: "4px"
|
|
48651
|
+
},
|
|
48652
|
+
children: [
|
|
48653
|
+
subagent.frontmatter.model && /* @__PURE__ */ jsxs(
|
|
48654
|
+
"div",
|
|
48655
|
+
{
|
|
48656
|
+
style: {
|
|
48657
|
+
display: "flex",
|
|
48658
|
+
alignItems: "center",
|
|
48659
|
+
gap: "4px",
|
|
48660
|
+
fontSize: theme2.fontSizes[0],
|
|
48661
|
+
padding: "3px 8px",
|
|
48662
|
+
background: `${modelColor}20`,
|
|
48663
|
+
border: `1px solid ${modelColor}40`,
|
|
48664
|
+
borderRadius: theme2.radii[1],
|
|
48665
|
+
color: modelColor
|
|
48666
|
+
},
|
|
48667
|
+
children: [
|
|
48668
|
+
/* @__PURE__ */ jsx(Zap, { size: 11 }),
|
|
48669
|
+
/* @__PURE__ */ jsx("span", { children: subagent.frontmatter.model })
|
|
48670
|
+
]
|
|
48671
|
+
}
|
|
48672
|
+
),
|
|
48673
|
+
toolsArray && /* @__PURE__ */ jsxs(
|
|
48674
|
+
"div",
|
|
48675
|
+
{
|
|
48676
|
+
style: {
|
|
48677
|
+
display: "flex",
|
|
48678
|
+
alignItems: "center",
|
|
48679
|
+
gap: "4px",
|
|
48680
|
+
fontSize: theme2.fontSizes[0],
|
|
48681
|
+
padding: "3px 8px",
|
|
48682
|
+
background: theme2.colors.background,
|
|
48683
|
+
border: `1px solid ${theme2.colors.border}`,
|
|
48684
|
+
borderRadius: theme2.radii[1],
|
|
48685
|
+
color: theme2.colors.textSecondary
|
|
48686
|
+
},
|
|
48687
|
+
children: [
|
|
48688
|
+
/* @__PURE__ */ jsx(Wrench, { size: 11 }),
|
|
48689
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
48690
|
+
toolsArray.length,
|
|
48691
|
+
" ",
|
|
48692
|
+
toolsArray.length === 1 ? "tool" : "tools"
|
|
48693
|
+
] })
|
|
48694
|
+
]
|
|
48695
|
+
}
|
|
48696
|
+
),
|
|
48697
|
+
subagent.frontmatter.permissionMode && subagent.frontmatter.permissionMode !== "default" && /* @__PURE__ */ jsx(
|
|
48698
|
+
"div",
|
|
48699
|
+
{
|
|
48700
|
+
style: {
|
|
48701
|
+
fontSize: theme2.fontSizes[0],
|
|
48702
|
+
padding: "3px 8px",
|
|
48703
|
+
background: theme2.colors.background,
|
|
48704
|
+
border: `1px solid ${theme2.colors.border}`,
|
|
48705
|
+
borderRadius: theme2.radii[1],
|
|
48706
|
+
color: theme2.colors.textSecondary
|
|
48707
|
+
},
|
|
48708
|
+
children: subagent.frontmatter.permissionMode
|
|
48709
|
+
}
|
|
48710
|
+
)
|
|
48711
|
+
]
|
|
48712
|
+
}
|
|
48713
|
+
)
|
|
48714
|
+
]
|
|
48715
|
+
}
|
|
48716
|
+
);
|
|
48717
|
+
};
|
|
48718
|
+
const AgentsListPanel = ({
|
|
48719
|
+
context,
|
|
48720
|
+
events
|
|
48721
|
+
}) => {
|
|
48722
|
+
const { theme: theme2 } = useTheme();
|
|
48723
|
+
const panelRef = useRef(null);
|
|
48724
|
+
const [selectedItemId, setSelectedItemId] = useState(null);
|
|
48725
|
+
const [searchQuery, setSearchQuery] = useState("");
|
|
48726
|
+
const [agentFilter, setAgentFilter] = useState("all");
|
|
48727
|
+
const [isRefreshing, setIsRefreshing] = useState(false);
|
|
48728
|
+
const {
|
|
48729
|
+
agents,
|
|
48730
|
+
isLoading: agentsLoading,
|
|
48731
|
+
error: agentsError,
|
|
48732
|
+
refreshAgents
|
|
48733
|
+
} = useAgentsData({ context });
|
|
48734
|
+
const {
|
|
48735
|
+
subagents,
|
|
48736
|
+
isLoading: subagentsLoading,
|
|
48737
|
+
error: subagentsError,
|
|
48738
|
+
refreshSubagents
|
|
48739
|
+
} = useSubagentsData({ context });
|
|
48740
|
+
const isLoading = agentsLoading || subagentsLoading;
|
|
48741
|
+
const error = agentsError || subagentsError;
|
|
48742
|
+
gt("agents-list", events, () => {
|
|
48743
|
+
var _a;
|
|
48744
|
+
return (_a = panelRef.current) == null ? void 0 : _a.focus();
|
|
48745
|
+
});
|
|
48746
|
+
const allItems = useMemo(() => {
|
|
48747
|
+
const items = [];
|
|
48748
|
+
agents.forEach((agent) => {
|
|
48749
|
+
items.push({ type: "agent", data: agent });
|
|
48750
|
+
});
|
|
48751
|
+
subagents.forEach((subagent) => {
|
|
48752
|
+
items.push({ type: "subagent", data: subagent });
|
|
48753
|
+
});
|
|
48754
|
+
return items;
|
|
48755
|
+
}, [agents, subagents]);
|
|
48756
|
+
const filteredItems = useMemo(() => {
|
|
48757
|
+
let filtered = allItems;
|
|
48758
|
+
if (agentFilter === "documentation") {
|
|
48759
|
+
filtered = filtered.filter((item) => item.type === "agent");
|
|
48760
|
+
} else if (agentFilter === "subagents") {
|
|
48761
|
+
filtered = filtered.filter((item) => item.type === "subagent");
|
|
48762
|
+
}
|
|
48763
|
+
if (searchQuery.trim()) {
|
|
48764
|
+
const query = searchQuery.toLowerCase().trim();
|
|
48765
|
+
filtered = filtered.filter((item) => {
|
|
48766
|
+
if (item.type === "agent") {
|
|
48767
|
+
const agent = item.data;
|
|
48768
|
+
if (agent.name.toLowerCase().includes(query)) return true;
|
|
48769
|
+
if (agent.path.toLowerCase().includes(query)) return true;
|
|
48770
|
+
if (agent.content.toLowerCase().includes(query)) return true;
|
|
48771
|
+
return false;
|
|
48772
|
+
} else {
|
|
48773
|
+
const subagent = item.data;
|
|
48774
|
+
if (subagent.name.toLowerCase().includes(query)) return true;
|
|
48775
|
+
if (subagent.path.toLowerCase().includes(query)) return true;
|
|
48776
|
+
if (subagent.frontmatter.description.toLowerCase().includes(query)) return true;
|
|
48777
|
+
if (subagent.prompt.toLowerCase().includes(query)) return true;
|
|
48778
|
+
return false;
|
|
48779
|
+
}
|
|
48780
|
+
});
|
|
48781
|
+
}
|
|
48782
|
+
return filtered;
|
|
48783
|
+
}, [allItems, searchQuery, agentFilter]);
|
|
48784
|
+
const handleItemClick = (item) => {
|
|
48785
|
+
const itemId = item.type === "agent" ? item.data.id : item.data.id;
|
|
48786
|
+
setSelectedItemId(itemId);
|
|
48787
|
+
if (events) {
|
|
48788
|
+
events.emit({
|
|
48789
|
+
type: item.type === "agent" ? "agent:selected" : "subagent:selected",
|
|
48790
|
+
source: "agents-list-panel",
|
|
48791
|
+
timestamp: Date.now(),
|
|
48792
|
+
payload: {
|
|
48793
|
+
id: itemId,
|
|
48794
|
+
type: item.type,
|
|
48795
|
+
data: item.data
|
|
48796
|
+
}
|
|
48797
|
+
});
|
|
48798
|
+
}
|
|
48799
|
+
};
|
|
48800
|
+
const handleRefresh = async () => {
|
|
48801
|
+
setIsRefreshing(true);
|
|
48802
|
+
try {
|
|
48803
|
+
await Promise.all([refreshAgents(), refreshSubagents()]);
|
|
48804
|
+
} finally {
|
|
48805
|
+
setIsRefreshing(false);
|
|
48806
|
+
}
|
|
48807
|
+
};
|
|
48808
|
+
const agentsCount = agents.length;
|
|
48809
|
+
const subagentsCount = subagents.length;
|
|
48810
|
+
return /* @__PURE__ */ jsxs(
|
|
48811
|
+
"div",
|
|
48812
|
+
{
|
|
48813
|
+
ref: panelRef,
|
|
48814
|
+
tabIndex: -1,
|
|
48815
|
+
style: {
|
|
48816
|
+
padding: "clamp(12px, 3vw, 20px)",
|
|
48817
|
+
fontFamily: theme2.fonts.body,
|
|
48818
|
+
height: "100%",
|
|
48819
|
+
boxSizing: "border-box",
|
|
48820
|
+
display: "flex",
|
|
48821
|
+
flexDirection: "column",
|
|
48822
|
+
gap: "16px",
|
|
48823
|
+
overflow: "hidden",
|
|
48824
|
+
backgroundColor: theme2.colors.background,
|
|
48825
|
+
color: theme2.colors.text,
|
|
48826
|
+
outline: "none"
|
|
48827
|
+
},
|
|
48828
|
+
children: [
|
|
48829
|
+
/* @__PURE__ */ jsxs(
|
|
48830
|
+
"div",
|
|
48831
|
+
{
|
|
48832
|
+
style: {
|
|
48833
|
+
flexShrink: 0,
|
|
48834
|
+
display: "flex",
|
|
48835
|
+
alignItems: "center",
|
|
48836
|
+
justifyContent: "space-between",
|
|
48837
|
+
gap: "12px",
|
|
48838
|
+
flexWrap: "wrap"
|
|
48839
|
+
},
|
|
48840
|
+
children: [
|
|
48841
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "12px" }, children: [
|
|
48842
|
+
/* @__PURE__ */ jsx(
|
|
48843
|
+
"h2",
|
|
48844
|
+
{
|
|
48845
|
+
style: {
|
|
48846
|
+
margin: 0,
|
|
48847
|
+
fontSize: theme2.fontSizes[4],
|
|
48848
|
+
color: theme2.colors.text
|
|
48849
|
+
},
|
|
48850
|
+
children: /* @__PURE__ */ jsx(
|
|
48851
|
+
"a",
|
|
48852
|
+
{
|
|
48853
|
+
href: "https://agents.md/",
|
|
48854
|
+
target: "_blank",
|
|
48855
|
+
rel: "noopener noreferrer",
|
|
48856
|
+
style: {
|
|
48857
|
+
color: "inherit",
|
|
48858
|
+
textDecoration: "none"
|
|
48859
|
+
},
|
|
48860
|
+
onMouseEnter: (e) => e.currentTarget.style.textDecoration = "underline",
|
|
48861
|
+
onMouseLeave: (e) => e.currentTarget.style.textDecoration = "none",
|
|
48862
|
+
children: "Agents"
|
|
48863
|
+
}
|
|
48864
|
+
)
|
|
48865
|
+
}
|
|
48866
|
+
),
|
|
48867
|
+
!isLoading && /* @__PURE__ */ jsxs(
|
|
48868
|
+
"span",
|
|
48869
|
+
{
|
|
48870
|
+
style: {
|
|
48871
|
+
fontSize: theme2.fontSizes[1],
|
|
48872
|
+
color: theme2.colors.textSecondary,
|
|
48873
|
+
background: theme2.colors.backgroundSecondary,
|
|
48874
|
+
padding: "4px 10px",
|
|
48875
|
+
borderRadius: theme2.radii[1]
|
|
48876
|
+
},
|
|
48877
|
+
children: [
|
|
48878
|
+
filteredItems.length,
|
|
48879
|
+
" ",
|
|
48880
|
+
filteredItems.length === 1 ? "item" : "items"
|
|
48881
|
+
]
|
|
48882
|
+
}
|
|
48883
|
+
)
|
|
48884
|
+
] }),
|
|
48885
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "12px", flex: "1 1 200px", maxWidth: "400px" }, children: [
|
|
48886
|
+
/* @__PURE__ */ jsxs(
|
|
48887
|
+
"div",
|
|
48888
|
+
{
|
|
48889
|
+
style: {
|
|
48890
|
+
position: "relative",
|
|
48891
|
+
flex: 1,
|
|
48892
|
+
minWidth: "150px"
|
|
48893
|
+
},
|
|
48894
|
+
children: [
|
|
48895
|
+
/* @__PURE__ */ jsx(
|
|
48896
|
+
Search,
|
|
48897
|
+
{
|
|
48898
|
+
size: 16,
|
|
48899
|
+
color: theme2.colors.textSecondary,
|
|
48900
|
+
style: {
|
|
48901
|
+
position: "absolute",
|
|
48902
|
+
left: "10px",
|
|
48903
|
+
top: "50%",
|
|
48904
|
+
transform: "translateY(-50%)",
|
|
48905
|
+
pointerEvents: "none"
|
|
48906
|
+
}
|
|
48907
|
+
}
|
|
48908
|
+
),
|
|
48909
|
+
/* @__PURE__ */ jsx(
|
|
48910
|
+
"input",
|
|
48911
|
+
{
|
|
48912
|
+
type: "text",
|
|
48913
|
+
placeholder: "Search agents...",
|
|
48914
|
+
value: searchQuery,
|
|
48915
|
+
onChange: (e) => setSearchQuery(e.target.value),
|
|
48916
|
+
style: {
|
|
48917
|
+
width: "100%",
|
|
48918
|
+
padding: "8px 32px 8px 32px",
|
|
48919
|
+
fontSize: theme2.fontSizes[1],
|
|
48920
|
+
fontFamily: theme2.fonts.body,
|
|
48921
|
+
border: `1px solid ${theme2.colors.border}`,
|
|
48922
|
+
borderRadius: theme2.radii[2],
|
|
48923
|
+
background: theme2.colors.backgroundSecondary,
|
|
48924
|
+
color: theme2.colors.text,
|
|
48925
|
+
outline: "none",
|
|
48926
|
+
boxSizing: "border-box"
|
|
48927
|
+
}
|
|
48928
|
+
}
|
|
48929
|
+
),
|
|
48930
|
+
searchQuery && /* @__PURE__ */ jsx(
|
|
48931
|
+
"button",
|
|
48932
|
+
{
|
|
48933
|
+
onClick: () => setSearchQuery(""),
|
|
48934
|
+
style: {
|
|
48935
|
+
position: "absolute",
|
|
48936
|
+
right: "6px",
|
|
48937
|
+
top: "50%",
|
|
48938
|
+
transform: "translateY(-50%)",
|
|
48939
|
+
background: "transparent",
|
|
48940
|
+
border: "none",
|
|
48941
|
+
padding: "4px",
|
|
48942
|
+
cursor: "pointer",
|
|
48943
|
+
display: "flex",
|
|
48944
|
+
alignItems: "center",
|
|
48945
|
+
justifyContent: "center",
|
|
48946
|
+
color: theme2.colors.textSecondary
|
|
48947
|
+
},
|
|
48948
|
+
"aria-label": "Clear search",
|
|
48949
|
+
children: /* @__PURE__ */ jsx(X, { size: 14 })
|
|
48950
|
+
}
|
|
48951
|
+
)
|
|
48952
|
+
]
|
|
48953
|
+
}
|
|
48954
|
+
),
|
|
48955
|
+
/* @__PURE__ */ jsx(
|
|
48956
|
+
"button",
|
|
48957
|
+
{
|
|
48958
|
+
onClick: handleRefresh,
|
|
48959
|
+
disabled: isRefreshing || isLoading,
|
|
48960
|
+
style: {
|
|
48961
|
+
background: theme2.colors.backgroundSecondary,
|
|
48962
|
+
border: `1px solid ${theme2.colors.border}`,
|
|
48963
|
+
borderRadius: theme2.radii[1],
|
|
48964
|
+
padding: "8px",
|
|
48965
|
+
cursor: isRefreshing ? "wait" : "pointer",
|
|
48966
|
+
display: "flex",
|
|
48967
|
+
alignItems: "center",
|
|
48968
|
+
justifyContent: "center",
|
|
48969
|
+
transition: "all 0.2s ease"
|
|
48970
|
+
},
|
|
48971
|
+
title: "Refresh agents",
|
|
48972
|
+
children: /* @__PURE__ */ jsx(
|
|
48973
|
+
RefreshCw,
|
|
48974
|
+
{
|
|
48975
|
+
size: 16,
|
|
48976
|
+
color: theme2.colors.textSecondary,
|
|
48977
|
+
style: {
|
|
48978
|
+
animation: isRefreshing ? "spin 1s linear infinite" : "none"
|
|
48979
|
+
}
|
|
48980
|
+
}
|
|
48981
|
+
)
|
|
48982
|
+
}
|
|
48983
|
+
)
|
|
48984
|
+
] })
|
|
48985
|
+
]
|
|
48986
|
+
}
|
|
48987
|
+
),
|
|
48988
|
+
/* @__PURE__ */ jsxs(
|
|
48989
|
+
"div",
|
|
48990
|
+
{
|
|
48991
|
+
style: {
|
|
48992
|
+
flexShrink: 0,
|
|
48993
|
+
display: "flex",
|
|
48994
|
+
gap: "8px"
|
|
48995
|
+
},
|
|
48996
|
+
children: [
|
|
48997
|
+
/* @__PURE__ */ jsxs(
|
|
48998
|
+
"button",
|
|
48999
|
+
{
|
|
49000
|
+
onClick: () => setAgentFilter("all"),
|
|
49001
|
+
style: {
|
|
49002
|
+
padding: "8px 16px",
|
|
49003
|
+
fontSize: theme2.fontSizes[1],
|
|
49004
|
+
fontFamily: theme2.fonts.body,
|
|
49005
|
+
border: `1px solid ${agentFilter === "all" ? theme2.colors.primary : theme2.colors.border}`,
|
|
49006
|
+
borderRadius: theme2.radii[1],
|
|
49007
|
+
background: agentFilter === "all" ? `${theme2.colors.primary}15` : theme2.colors.backgroundSecondary,
|
|
49008
|
+
color: agentFilter === "all" ? theme2.colors.primary : theme2.colors.text,
|
|
49009
|
+
cursor: "pointer",
|
|
49010
|
+
display: "flex",
|
|
49011
|
+
alignItems: "center",
|
|
49012
|
+
gap: "6px",
|
|
49013
|
+
fontWeight: agentFilter === "all" ? 600 : 400,
|
|
49014
|
+
transition: "all 0.2s ease"
|
|
49015
|
+
},
|
|
49016
|
+
children: [
|
|
49017
|
+
"All (",
|
|
49018
|
+
agentsCount + subagentsCount,
|
|
49019
|
+
")"
|
|
49020
|
+
]
|
|
49021
|
+
}
|
|
49022
|
+
),
|
|
49023
|
+
/* @__PURE__ */ jsxs(
|
|
49024
|
+
"button",
|
|
49025
|
+
{
|
|
49026
|
+
onClick: () => setAgentFilter("documentation"),
|
|
49027
|
+
style: {
|
|
49028
|
+
padding: "8px 16px",
|
|
49029
|
+
fontSize: theme2.fontSizes[1],
|
|
49030
|
+
fontFamily: theme2.fonts.body,
|
|
49031
|
+
border: `1px solid ${agentFilter === "documentation" ? theme2.colors.primary : theme2.colors.border}`,
|
|
49032
|
+
borderRadius: theme2.radii[1],
|
|
49033
|
+
background: agentFilter === "documentation" ? `${theme2.colors.primary}15` : theme2.colors.backgroundSecondary,
|
|
49034
|
+
color: agentFilter === "documentation" ? theme2.colors.primary : theme2.colors.text,
|
|
49035
|
+
cursor: "pointer",
|
|
49036
|
+
display: "flex",
|
|
49037
|
+
alignItems: "center",
|
|
49038
|
+
gap: "6px",
|
|
49039
|
+
fontWeight: agentFilter === "documentation" ? 600 : 400,
|
|
49040
|
+
transition: "all 0.2s ease"
|
|
49041
|
+
},
|
|
49042
|
+
children: [
|
|
49043
|
+
/* @__PURE__ */ jsx(BookOpen, { size: 14 }),
|
|
49044
|
+
"Docs (",
|
|
49045
|
+
agentsCount,
|
|
49046
|
+
")"
|
|
49047
|
+
]
|
|
49048
|
+
}
|
|
49049
|
+
),
|
|
49050
|
+
/* @__PURE__ */ jsxs(
|
|
49051
|
+
"button",
|
|
49052
|
+
{
|
|
49053
|
+
onClick: () => setAgentFilter("subagents"),
|
|
49054
|
+
style: {
|
|
49055
|
+
padding: "8px 16px",
|
|
49056
|
+
fontSize: theme2.fontSizes[1],
|
|
49057
|
+
fontFamily: theme2.fonts.body,
|
|
49058
|
+
border: `1px solid ${agentFilter === "subagents" ? theme2.colors.primary : theme2.colors.border}`,
|
|
49059
|
+
borderRadius: theme2.radii[1],
|
|
49060
|
+
background: agentFilter === "subagents" ? `${theme2.colors.primary}15` : theme2.colors.backgroundSecondary,
|
|
49061
|
+
color: agentFilter === "subagents" ? theme2.colors.primary : theme2.colors.text,
|
|
49062
|
+
cursor: "pointer",
|
|
49063
|
+
display: "flex",
|
|
49064
|
+
alignItems: "center",
|
|
49065
|
+
gap: "6px",
|
|
49066
|
+
fontWeight: agentFilter === "subagents" ? 600 : 400,
|
|
49067
|
+
transition: "all 0.2s ease"
|
|
49068
|
+
},
|
|
49069
|
+
children: [
|
|
49070
|
+
/* @__PURE__ */ jsx(Bot, { size: 14 }),
|
|
49071
|
+
"Subagents (",
|
|
49072
|
+
subagentsCount,
|
|
49073
|
+
")"
|
|
49074
|
+
]
|
|
49075
|
+
}
|
|
49076
|
+
)
|
|
49077
|
+
]
|
|
49078
|
+
}
|
|
49079
|
+
),
|
|
49080
|
+
error && /* @__PURE__ */ jsxs(
|
|
49081
|
+
"div",
|
|
49082
|
+
{
|
|
49083
|
+
style: {
|
|
49084
|
+
flexShrink: 0,
|
|
49085
|
+
padding: "12px",
|
|
49086
|
+
background: `${theme2.colors.error}20`,
|
|
49087
|
+
border: `1px solid ${theme2.colors.error}`,
|
|
49088
|
+
borderRadius: theme2.radii[2],
|
|
49089
|
+
display: "flex",
|
|
49090
|
+
alignItems: "center",
|
|
49091
|
+
gap: "8px",
|
|
49092
|
+
color: theme2.colors.error,
|
|
49093
|
+
fontSize: theme2.fontSizes[1]
|
|
49094
|
+
},
|
|
49095
|
+
children: [
|
|
49096
|
+
/* @__PURE__ */ jsx(CircleAlert, { size: 16 }),
|
|
49097
|
+
/* @__PURE__ */ jsx("span", { children: error })
|
|
49098
|
+
]
|
|
49099
|
+
}
|
|
49100
|
+
),
|
|
49101
|
+
/* @__PURE__ */ jsx(
|
|
49102
|
+
"div",
|
|
49103
|
+
{
|
|
49104
|
+
style: {
|
|
49105
|
+
flex: 1,
|
|
49106
|
+
overflowY: "auto",
|
|
49107
|
+
minHeight: 0
|
|
49108
|
+
},
|
|
49109
|
+
children: isLoading ? /* @__PURE__ */ jsx(
|
|
49110
|
+
"div",
|
|
49111
|
+
{
|
|
49112
|
+
style: {
|
|
49113
|
+
height: "100%",
|
|
49114
|
+
display: "flex",
|
|
49115
|
+
alignItems: "center",
|
|
49116
|
+
justifyContent: "center",
|
|
49117
|
+
color: theme2.colors.textSecondary,
|
|
49118
|
+
fontSize: theme2.fontSizes[2]
|
|
49119
|
+
},
|
|
49120
|
+
children: "Loading agents..."
|
|
49121
|
+
}
|
|
49122
|
+
) : filteredItems.length === 0 ? /* @__PURE__ */ jsxs(
|
|
49123
|
+
"div",
|
|
49124
|
+
{
|
|
49125
|
+
style: {
|
|
49126
|
+
height: "100%",
|
|
49127
|
+
display: "flex",
|
|
49128
|
+
flexDirection: "column",
|
|
49129
|
+
alignItems: "center",
|
|
49130
|
+
justifyContent: "center",
|
|
49131
|
+
gap: "16px",
|
|
49132
|
+
color: theme2.colors.textSecondary,
|
|
49133
|
+
padding: "24px"
|
|
49134
|
+
},
|
|
49135
|
+
children: [
|
|
49136
|
+
/* @__PURE__ */ jsx(FileCode, { size: 48, color: theme2.colors.border }),
|
|
49137
|
+
/* @__PURE__ */ jsxs("div", { style: { textAlign: "center" }, children: [
|
|
49138
|
+
/* @__PURE__ */ jsx("p", { style: { margin: 0, fontSize: theme2.fontSizes[2] }, children: searchQuery ? "No agents match your search" : "No agents found" }),
|
|
49139
|
+
/* @__PURE__ */ jsx("p", { style: { margin: "8px 0 0 0", fontSize: theme2.fontSizes[1] }, children: searchQuery ? "Try a different search term" : "Add AGENTS.md or create subagents in .claude/agents/ to get started" })
|
|
49140
|
+
] })
|
|
49141
|
+
]
|
|
49142
|
+
}
|
|
49143
|
+
) : /* @__PURE__ */ jsx(
|
|
49144
|
+
"div",
|
|
49145
|
+
{
|
|
49146
|
+
style: {
|
|
49147
|
+
display: "grid",
|
|
49148
|
+
gridTemplateColumns: "repeat(auto-fill, minmax(300px, 1fr))",
|
|
49149
|
+
gap: "16px",
|
|
49150
|
+
padding: "4px"
|
|
49151
|
+
},
|
|
49152
|
+
children: filteredItems.map((item) => {
|
|
49153
|
+
if (item.type === "agent") {
|
|
49154
|
+
return /* @__PURE__ */ jsx(
|
|
49155
|
+
AgentCard,
|
|
49156
|
+
{
|
|
49157
|
+
agent: item.data,
|
|
49158
|
+
onClick: () => handleItemClick(item),
|
|
49159
|
+
isSelected: selectedItemId === item.data.id
|
|
49160
|
+
},
|
|
49161
|
+
item.data.id
|
|
49162
|
+
);
|
|
49163
|
+
} else {
|
|
49164
|
+
return /* @__PURE__ */ jsx(
|
|
49165
|
+
SubagentCard,
|
|
49166
|
+
{
|
|
49167
|
+
subagent: item.data,
|
|
49168
|
+
onClick: () => handleItemClick(item),
|
|
49169
|
+
isSelected: selectedItemId === item.data.id
|
|
49170
|
+
},
|
|
49171
|
+
item.data.id
|
|
49172
|
+
);
|
|
49173
|
+
}
|
|
49174
|
+
})
|
|
49175
|
+
}
|
|
49176
|
+
)
|
|
49177
|
+
}
|
|
49178
|
+
),
|
|
49179
|
+
/* @__PURE__ */ jsx("style", { children: `
|
|
49180
|
+
@keyframes spin {
|
|
49181
|
+
to { transform: rotate(360deg); }
|
|
49182
|
+
}
|
|
49183
|
+
` })
|
|
49184
|
+
]
|
|
49185
|
+
}
|
|
49186
|
+
);
|
|
49187
|
+
};
|
|
49188
|
+
const AgentDetailPanel = ({
|
|
49189
|
+
context,
|
|
49190
|
+
events,
|
|
49191
|
+
actions
|
|
49192
|
+
}) => {
|
|
49193
|
+
const { theme: theme2 } = useTheme();
|
|
49194
|
+
const { isLoading: agentsLoading, error: agentsError } = useAgentsData({ context });
|
|
49195
|
+
const { isLoading: subagentsLoading, error: subagentsError } = useSubagentsData({ context });
|
|
49196
|
+
const [selectedItem, setSelectedItem] = useState(null);
|
|
49197
|
+
const panelRef = useRef(null);
|
|
49198
|
+
const isLoading = agentsLoading || subagentsLoading;
|
|
49199
|
+
const error = agentsError || subagentsError;
|
|
49200
|
+
gt("agent-detail", events, () => {
|
|
49201
|
+
var _a;
|
|
49202
|
+
return (_a = panelRef.current) == null ? void 0 : _a.focus();
|
|
49203
|
+
});
|
|
49204
|
+
useEffect(() => {
|
|
49205
|
+
const unsubscribeAgent = events.on("agent:selected", (event) => {
|
|
49206
|
+
const payload = event.payload;
|
|
49207
|
+
if ((payload == null ? void 0 : payload.id) && (payload == null ? void 0 : payload.data)) {
|
|
49208
|
+
setSelectedItem({ type: "agent", data: payload.data });
|
|
49209
|
+
}
|
|
49210
|
+
});
|
|
49211
|
+
const unsubscribeSubagent = events.on("subagent:selected", (event) => {
|
|
49212
|
+
const payload = event.payload;
|
|
49213
|
+
if ((payload == null ? void 0 : payload.id) && (payload == null ? void 0 : payload.data)) {
|
|
49214
|
+
setSelectedItem({ type: "subagent", data: payload.data });
|
|
49215
|
+
}
|
|
49216
|
+
});
|
|
49217
|
+
return () => {
|
|
49218
|
+
unsubscribeAgent();
|
|
49219
|
+
unsubscribeSubagent();
|
|
49220
|
+
};
|
|
49221
|
+
}, [events]);
|
|
49222
|
+
if (error) {
|
|
49223
|
+
return /* @__PURE__ */ jsx(
|
|
49224
|
+
"div",
|
|
49225
|
+
{
|
|
49226
|
+
style: {
|
|
49227
|
+
display: "flex",
|
|
49228
|
+
alignItems: "center",
|
|
49229
|
+
justifyContent: "center",
|
|
49230
|
+
height: "100%",
|
|
49231
|
+
padding: "2rem",
|
|
49232
|
+
backgroundColor: theme2.colors.background,
|
|
49233
|
+
color: theme2.colors.error,
|
|
49234
|
+
fontFamily: theme2.fonts.body
|
|
49235
|
+
},
|
|
49236
|
+
children: /* @__PURE__ */ jsxs("div", { style: { textAlign: "center" }, children: [
|
|
49237
|
+
"Error loading agents: ",
|
|
49238
|
+
error
|
|
49239
|
+
] })
|
|
49240
|
+
}
|
|
49241
|
+
);
|
|
49242
|
+
}
|
|
49243
|
+
if (isLoading) {
|
|
49244
|
+
return /* @__PURE__ */ jsx(
|
|
49245
|
+
"div",
|
|
49246
|
+
{
|
|
49247
|
+
style: {
|
|
49248
|
+
display: "flex",
|
|
49249
|
+
alignItems: "center",
|
|
49250
|
+
justifyContent: "center",
|
|
49251
|
+
height: "100%",
|
|
49252
|
+
backgroundColor: theme2.colors.background,
|
|
49253
|
+
color: theme2.colors.text,
|
|
49254
|
+
fontFamily: theme2.fonts.body
|
|
49255
|
+
},
|
|
49256
|
+
children: "Loading agents..."
|
|
49257
|
+
}
|
|
49258
|
+
);
|
|
49259
|
+
}
|
|
49260
|
+
if (!selectedItem) {
|
|
49261
|
+
return /* @__PURE__ */ jsxs(
|
|
49262
|
+
"div",
|
|
49263
|
+
{
|
|
49264
|
+
style: {
|
|
49265
|
+
display: "flex",
|
|
49266
|
+
flexDirection: "column",
|
|
49267
|
+
alignItems: "center",
|
|
49268
|
+
justifyContent: "center",
|
|
49269
|
+
height: "100%",
|
|
49270
|
+
gap: "1rem",
|
|
49271
|
+
backgroundColor: theme2.colors.background,
|
|
49272
|
+
color: theme2.colors.textSecondary,
|
|
49273
|
+
fontFamily: theme2.fonts.body,
|
|
49274
|
+
padding: "2rem"
|
|
49275
|
+
},
|
|
49276
|
+
children: [
|
|
49277
|
+
/* @__PURE__ */ jsx(BookOpen, { size: 48, color: theme2.colors.border }),
|
|
49278
|
+
/* @__PURE__ */ jsx("p", { style: { margin: 0, textAlign: "center" }, children: "Select an agent or subagent from the list to view details" })
|
|
49279
|
+
]
|
|
49280
|
+
}
|
|
49281
|
+
);
|
|
49282
|
+
}
|
|
49283
|
+
if (selectedItem.type === "agent") {
|
|
49284
|
+
const agent = selectedItem.data;
|
|
49285
|
+
return /* @__PURE__ */ jsxs(
|
|
49286
|
+
"div",
|
|
49287
|
+
{
|
|
49288
|
+
ref: panelRef,
|
|
49289
|
+
tabIndex: -1,
|
|
49290
|
+
style: {
|
|
49291
|
+
height: "100%",
|
|
49292
|
+
overflow: "auto",
|
|
49293
|
+
backgroundColor: theme2.colors.background,
|
|
49294
|
+
padding: "clamp(16px, 3vw, 24px)",
|
|
49295
|
+
fontFamily: theme2.fonts.body,
|
|
49296
|
+
outline: "none"
|
|
49297
|
+
},
|
|
49298
|
+
children: [
|
|
49299
|
+
/* @__PURE__ */ jsxs(
|
|
49300
|
+
"div",
|
|
49301
|
+
{
|
|
49302
|
+
style: {
|
|
49303
|
+
marginBottom: "24px",
|
|
49304
|
+
paddingBottom: "16px",
|
|
49305
|
+
borderBottom: `1px solid ${theme2.colors.border}`
|
|
49306
|
+
},
|
|
49307
|
+
children: [
|
|
49308
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "12px", marginBottom: "8px" }, children: [
|
|
49309
|
+
/* @__PURE__ */ jsx(BookOpen, { size: 24, color: theme2.colors.primary }),
|
|
49310
|
+
/* @__PURE__ */ jsx(
|
|
49311
|
+
"h1",
|
|
49312
|
+
{
|
|
49313
|
+
style: {
|
|
49314
|
+
margin: 0,
|
|
49315
|
+
fontSize: theme2.fontSizes[5],
|
|
49316
|
+
color: theme2.colors.text,
|
|
49317
|
+
fontWeight: 600
|
|
49318
|
+
},
|
|
49319
|
+
children: agent.name
|
|
49320
|
+
}
|
|
49321
|
+
)
|
|
49322
|
+
] }),
|
|
49323
|
+
/* @__PURE__ */ jsx(
|
|
49324
|
+
"div",
|
|
49325
|
+
{
|
|
49326
|
+
style: {
|
|
49327
|
+
fontSize: theme2.fontSizes[1],
|
|
49328
|
+
color: theme2.colors.textSecondary,
|
|
49329
|
+
fontFamily: theme2.fonts.monospace
|
|
49330
|
+
},
|
|
49331
|
+
children: agent.path
|
|
49332
|
+
}
|
|
49333
|
+
)
|
|
49334
|
+
]
|
|
49335
|
+
}
|
|
49336
|
+
),
|
|
49337
|
+
/* @__PURE__ */ jsx(
|
|
49338
|
+
"div",
|
|
49339
|
+
{
|
|
49340
|
+
style: {
|
|
49341
|
+
color: theme2.colors.text
|
|
49342
|
+
},
|
|
49343
|
+
children: /* @__PURE__ */ jsx(SkillMarkdown, { content: agent.content, theme: theme2 })
|
|
49344
|
+
}
|
|
49345
|
+
)
|
|
49346
|
+
]
|
|
49347
|
+
}
|
|
49348
|
+
);
|
|
49349
|
+
}
|
|
49350
|
+
if (selectedItem.type === "subagent") {
|
|
49351
|
+
const subagent = selectedItem.data;
|
|
49352
|
+
const fm = subagent.frontmatter;
|
|
49353
|
+
return /* @__PURE__ */ jsxs(
|
|
49354
|
+
"div",
|
|
49355
|
+
{
|
|
49356
|
+
ref: panelRef,
|
|
49357
|
+
tabIndex: -1,
|
|
49358
|
+
style: {
|
|
49359
|
+
height: "100%",
|
|
49360
|
+
overflow: "auto",
|
|
49361
|
+
backgroundColor: theme2.colors.background,
|
|
49362
|
+
padding: "clamp(16px, 3vw, 24px)",
|
|
49363
|
+
fontFamily: theme2.fonts.body,
|
|
49364
|
+
outline: "none"
|
|
49365
|
+
},
|
|
49366
|
+
children: [
|
|
49367
|
+
/* @__PURE__ */ jsxs(
|
|
49368
|
+
"div",
|
|
49369
|
+
{
|
|
49370
|
+
style: {
|
|
49371
|
+
marginBottom: "24px",
|
|
49372
|
+
paddingBottom: "16px",
|
|
49373
|
+
borderBottom: `1px solid ${theme2.colors.border}`
|
|
49374
|
+
},
|
|
49375
|
+
children: [
|
|
49376
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "12px", marginBottom: "8px" }, children: [
|
|
49377
|
+
/* @__PURE__ */ jsx(Bot, { size: 24, color: theme2.colors.primary }),
|
|
49378
|
+
/* @__PURE__ */ jsx(
|
|
49379
|
+
"h1",
|
|
49380
|
+
{
|
|
49381
|
+
style: {
|
|
49382
|
+
margin: 0,
|
|
49383
|
+
fontSize: theme2.fontSizes[5],
|
|
49384
|
+
color: theme2.colors.text,
|
|
49385
|
+
fontWeight: 600
|
|
49386
|
+
},
|
|
49387
|
+
children: subagent.name
|
|
49388
|
+
}
|
|
49389
|
+
)
|
|
49390
|
+
] }),
|
|
49391
|
+
/* @__PURE__ */ jsx(
|
|
49392
|
+
"div",
|
|
49393
|
+
{
|
|
49394
|
+
style: {
|
|
49395
|
+
fontSize: theme2.fontSizes[1],
|
|
49396
|
+
color: theme2.colors.textSecondary,
|
|
49397
|
+
fontFamily: theme2.fonts.monospace,
|
|
49398
|
+
marginBottom: "12px"
|
|
49399
|
+
},
|
|
49400
|
+
children: subagent.path
|
|
49401
|
+
}
|
|
49402
|
+
),
|
|
49403
|
+
/* @__PURE__ */ jsx(
|
|
49404
|
+
"p",
|
|
49405
|
+
{
|
|
49406
|
+
style: {
|
|
49407
|
+
margin: "12px 0 16px 0",
|
|
49408
|
+
fontSize: theme2.fontSizes[2],
|
|
49409
|
+
color: theme2.colors.text,
|
|
49410
|
+
lineHeight: 1.6
|
|
49411
|
+
},
|
|
49412
|
+
children: fm.description
|
|
49413
|
+
}
|
|
49414
|
+
),
|
|
49415
|
+
/* @__PURE__ */ jsxs(
|
|
49416
|
+
"div",
|
|
49417
|
+
{
|
|
49418
|
+
style: {
|
|
49419
|
+
display: "grid",
|
|
49420
|
+
gridTemplateColumns: "repeat(auto-fit, minmax(200px, 1fr))",
|
|
49421
|
+
gap: "12px",
|
|
49422
|
+
marginTop: "16px"
|
|
49423
|
+
},
|
|
49424
|
+
children: [
|
|
49425
|
+
fm.model && /* @__PURE__ */ jsxs(
|
|
49426
|
+
"div",
|
|
49427
|
+
{
|
|
49428
|
+
style: {
|
|
49429
|
+
padding: "12px",
|
|
49430
|
+
background: theme2.colors.backgroundSecondary,
|
|
49431
|
+
border: `1px solid ${theme2.colors.border}`,
|
|
49432
|
+
borderRadius: theme2.radii[2]
|
|
49433
|
+
},
|
|
49434
|
+
children: [
|
|
49435
|
+
/* @__PURE__ */ jsxs(
|
|
49436
|
+
"div",
|
|
49437
|
+
{
|
|
49438
|
+
style: {
|
|
49439
|
+
display: "flex",
|
|
49440
|
+
alignItems: "center",
|
|
49441
|
+
gap: "6px",
|
|
49442
|
+
marginBottom: "4px",
|
|
49443
|
+
color: theme2.colors.textSecondary,
|
|
49444
|
+
fontSize: theme2.fontSizes[0]
|
|
49445
|
+
},
|
|
49446
|
+
children: [
|
|
49447
|
+
/* @__PURE__ */ jsx(Zap, { size: 14 }),
|
|
49448
|
+
/* @__PURE__ */ jsx("span", { children: "Model" })
|
|
49449
|
+
]
|
|
49450
|
+
}
|
|
49451
|
+
),
|
|
49452
|
+
/* @__PURE__ */ jsx(
|
|
49453
|
+
"div",
|
|
49454
|
+
{
|
|
49455
|
+
style: {
|
|
49456
|
+
fontSize: theme2.fontSizes[1],
|
|
49457
|
+
color: theme2.colors.text,
|
|
49458
|
+
fontFamily: theme2.fonts.monospace
|
|
49459
|
+
},
|
|
49460
|
+
children: fm.model
|
|
49461
|
+
}
|
|
49462
|
+
)
|
|
49463
|
+
]
|
|
49464
|
+
}
|
|
49465
|
+
),
|
|
49466
|
+
fm.tools && /* @__PURE__ */ jsxs(
|
|
49467
|
+
"div",
|
|
49468
|
+
{
|
|
49469
|
+
style: {
|
|
49470
|
+
padding: "12px",
|
|
49471
|
+
background: theme2.colors.backgroundSecondary,
|
|
49472
|
+
border: `1px solid ${theme2.colors.border}`,
|
|
49473
|
+
borderRadius: theme2.radii[2]
|
|
49474
|
+
},
|
|
49475
|
+
children: [
|
|
49476
|
+
/* @__PURE__ */ jsxs(
|
|
49477
|
+
"div",
|
|
49478
|
+
{
|
|
49479
|
+
style: {
|
|
49480
|
+
display: "flex",
|
|
49481
|
+
alignItems: "center",
|
|
49482
|
+
gap: "6px",
|
|
49483
|
+
marginBottom: "4px",
|
|
49484
|
+
color: theme2.colors.textSecondary,
|
|
49485
|
+
fontSize: theme2.fontSizes[0]
|
|
49486
|
+
},
|
|
49487
|
+
children: [
|
|
49488
|
+
/* @__PURE__ */ jsx(Wrench, { size: 14 }),
|
|
49489
|
+
/* @__PURE__ */ jsx("span", { children: "Tools" })
|
|
49490
|
+
]
|
|
49491
|
+
}
|
|
49492
|
+
),
|
|
49493
|
+
/* @__PURE__ */ jsx(
|
|
49494
|
+
"div",
|
|
49495
|
+
{
|
|
49496
|
+
style: {
|
|
49497
|
+
fontSize: theme2.fontSizes[1],
|
|
49498
|
+
color: theme2.colors.text,
|
|
49499
|
+
fontFamily: theme2.fonts.monospace
|
|
49500
|
+
},
|
|
49501
|
+
children: fm.tools
|
|
49502
|
+
}
|
|
49503
|
+
)
|
|
49504
|
+
]
|
|
49505
|
+
}
|
|
49506
|
+
),
|
|
49507
|
+
fm.permissionMode && fm.permissionMode !== "default" && /* @__PURE__ */ jsxs(
|
|
49508
|
+
"div",
|
|
49509
|
+
{
|
|
49510
|
+
style: {
|
|
49511
|
+
padding: "12px",
|
|
49512
|
+
background: theme2.colors.backgroundSecondary,
|
|
49513
|
+
border: `1px solid ${theme2.colors.border}`,
|
|
49514
|
+
borderRadius: theme2.radii[2]
|
|
49515
|
+
},
|
|
49516
|
+
children: [
|
|
49517
|
+
/* @__PURE__ */ jsxs(
|
|
49518
|
+
"div",
|
|
49519
|
+
{
|
|
49520
|
+
style: {
|
|
49521
|
+
display: "flex",
|
|
49522
|
+
alignItems: "center",
|
|
49523
|
+
gap: "6px",
|
|
49524
|
+
marginBottom: "4px",
|
|
49525
|
+
color: theme2.colors.textSecondary,
|
|
49526
|
+
fontSize: theme2.fontSizes[0]
|
|
49527
|
+
},
|
|
49528
|
+
children: [
|
|
49529
|
+
/* @__PURE__ */ jsx(FileText, { size: 14 }),
|
|
49530
|
+
/* @__PURE__ */ jsx("span", { children: "Permission Mode" })
|
|
49531
|
+
]
|
|
49532
|
+
}
|
|
49533
|
+
),
|
|
49534
|
+
/* @__PURE__ */ jsx(
|
|
49535
|
+
"div",
|
|
49536
|
+
{
|
|
49537
|
+
style: {
|
|
49538
|
+
fontSize: theme2.fontSizes[1],
|
|
49539
|
+
color: theme2.colors.text,
|
|
49540
|
+
fontFamily: theme2.fonts.monospace
|
|
49541
|
+
},
|
|
49542
|
+
children: fm.permissionMode
|
|
49543
|
+
}
|
|
49544
|
+
)
|
|
49545
|
+
]
|
|
49546
|
+
}
|
|
49547
|
+
),
|
|
49548
|
+
fm.skills && /* @__PURE__ */ jsxs(
|
|
49549
|
+
"div",
|
|
49550
|
+
{
|
|
49551
|
+
style: {
|
|
49552
|
+
padding: "12px",
|
|
49553
|
+
background: theme2.colors.backgroundSecondary,
|
|
49554
|
+
border: `1px solid ${theme2.colors.border}`,
|
|
49555
|
+
borderRadius: theme2.radii[2]
|
|
49556
|
+
},
|
|
49557
|
+
children: [
|
|
49558
|
+
/* @__PURE__ */ jsxs(
|
|
49559
|
+
"div",
|
|
49560
|
+
{
|
|
49561
|
+
style: {
|
|
49562
|
+
display: "flex",
|
|
49563
|
+
alignItems: "center",
|
|
49564
|
+
gap: "6px",
|
|
49565
|
+
marginBottom: "4px",
|
|
49566
|
+
color: theme2.colors.textSecondary,
|
|
49567
|
+
fontSize: theme2.fontSizes[0]
|
|
49568
|
+
},
|
|
49569
|
+
children: [
|
|
49570
|
+
/* @__PURE__ */ jsx(CodeXml, { size: 14 }),
|
|
49571
|
+
/* @__PURE__ */ jsx("span", { children: "Skills" })
|
|
49572
|
+
]
|
|
49573
|
+
}
|
|
49574
|
+
),
|
|
49575
|
+
/* @__PURE__ */ jsx(
|
|
49576
|
+
"div",
|
|
49577
|
+
{
|
|
49578
|
+
style: {
|
|
49579
|
+
fontSize: theme2.fontSizes[1],
|
|
49580
|
+
color: theme2.colors.text,
|
|
49581
|
+
fontFamily: theme2.fonts.monospace
|
|
49582
|
+
},
|
|
49583
|
+
children: fm.skills
|
|
49584
|
+
}
|
|
49585
|
+
)
|
|
49586
|
+
]
|
|
49587
|
+
}
|
|
49588
|
+
)
|
|
49589
|
+
]
|
|
49590
|
+
}
|
|
49591
|
+
)
|
|
49592
|
+
]
|
|
49593
|
+
}
|
|
49594
|
+
),
|
|
49595
|
+
/* @__PURE__ */ jsxs("div", { style: { marginTop: "32px" }, children: [
|
|
49596
|
+
/* @__PURE__ */ jsx(
|
|
49597
|
+
"h2",
|
|
49598
|
+
{
|
|
49599
|
+
style: {
|
|
49600
|
+
margin: "0 0 16px 0",
|
|
49601
|
+
fontSize: theme2.fontSizes[3],
|
|
49602
|
+
color: theme2.colors.text,
|
|
49603
|
+
fontWeight: 600
|
|
49604
|
+
},
|
|
49605
|
+
children: "Prompt"
|
|
49606
|
+
}
|
|
49607
|
+
),
|
|
49608
|
+
/* @__PURE__ */ jsx(
|
|
49609
|
+
"div",
|
|
49610
|
+
{
|
|
49611
|
+
style: {
|
|
49612
|
+
padding: "16px",
|
|
49613
|
+
background: theme2.colors.backgroundSecondary,
|
|
49614
|
+
border: `1px solid ${theme2.colors.border}`,
|
|
49615
|
+
borderRadius: theme2.radii[2],
|
|
49616
|
+
color: theme2.colors.text
|
|
49617
|
+
},
|
|
49618
|
+
children: /* @__PURE__ */ jsx(SkillMarkdown, { content: subagent.prompt, theme: theme2 })
|
|
49619
|
+
}
|
|
49620
|
+
)
|
|
49621
|
+
] }),
|
|
49622
|
+
fm.disallowedTools && /* @__PURE__ */ jsxs("div", { style: { marginTop: "24px" }, children: [
|
|
49623
|
+
/* @__PURE__ */ jsx(
|
|
49624
|
+
"h3",
|
|
49625
|
+
{
|
|
49626
|
+
style: {
|
|
49627
|
+
margin: "0 0 12px 0",
|
|
49628
|
+
fontSize: theme2.fontSizes[2],
|
|
49629
|
+
color: theme2.colors.text,
|
|
49630
|
+
fontWeight: 600
|
|
49631
|
+
},
|
|
49632
|
+
children: "Disallowed Tools"
|
|
49633
|
+
}
|
|
49634
|
+
),
|
|
49635
|
+
/* @__PURE__ */ jsx(
|
|
49636
|
+
"div",
|
|
49637
|
+
{
|
|
49638
|
+
style: {
|
|
49639
|
+
padding: "12px",
|
|
49640
|
+
background: `${theme2.colors.error}10`,
|
|
49641
|
+
border: `1px solid ${theme2.colors.error}40`,
|
|
49642
|
+
borderRadius: theme2.radii[2],
|
|
49643
|
+
color: theme2.colors.text,
|
|
49644
|
+
fontFamily: theme2.fonts.monospace,
|
|
49645
|
+
fontSize: theme2.fontSizes[1]
|
|
49646
|
+
},
|
|
49647
|
+
children: fm.disallowedTools
|
|
49648
|
+
}
|
|
49649
|
+
)
|
|
49650
|
+
] })
|
|
49651
|
+
]
|
|
49652
|
+
}
|
|
49653
|
+
);
|
|
49654
|
+
}
|
|
49655
|
+
return null;
|
|
49656
|
+
};
|
|
49657
|
+
const panels = [
|
|
49658
|
+
{
|
|
49659
|
+
metadata: {
|
|
49660
|
+
id: "industry-theme.skills-list",
|
|
49661
|
+
name: "Skills List",
|
|
49662
|
+
icon: "⚡",
|
|
49663
|
+
version: "0.1.0",
|
|
49664
|
+
author: "Principal ADE",
|
|
49665
|
+
description: "Display and manage Agent Skills from SKILL.md files",
|
|
49666
|
+
slices: ["fileTree", "globalSkills"]
|
|
49667
|
+
// Data slices this panel depends on
|
|
49668
|
+
},
|
|
49669
|
+
component: SkillsListPanel,
|
|
49670
|
+
// Optional: Called when this specific panel is mounted
|
|
49671
|
+
onMount: async (context) => {
|
|
49672
|
+
var _a;
|
|
49673
|
+
console.log(
|
|
49674
|
+
"Skills List Panel mounted",
|
|
49675
|
+
(_a = context.currentScope.repository) == null ? void 0 : _a.path
|
|
49676
|
+
);
|
|
49677
|
+
},
|
|
49678
|
+
// Optional: Called when this specific panel is unmounted
|
|
49679
|
+
onUnmount: async (_context) => {
|
|
49680
|
+
console.log("Skills List Panel unmounting");
|
|
49681
|
+
}
|
|
49682
|
+
},
|
|
49683
|
+
{
|
|
49684
|
+
metadata: {
|
|
49685
|
+
id: "industry-theme.skill-detail",
|
|
49686
|
+
name: "Skill Detail",
|
|
49687
|
+
icon: "📋",
|
|
49688
|
+
version: "0.1.0",
|
|
49689
|
+
author: "Principal ADE",
|
|
49690
|
+
description: "Display detailed information about a selected Agent Skill",
|
|
49691
|
+
slices: ["fileTree", "globalSkills"]
|
|
49692
|
+
// Data slices this panel depends on
|
|
49693
|
+
},
|
|
49694
|
+
component: SkillDetailPanel,
|
|
49695
|
+
// Optional: Called when this specific panel is mounted
|
|
49696
|
+
onMount: async (context) => {
|
|
49697
|
+
var _a;
|
|
49698
|
+
console.log(
|
|
49699
|
+
"Skill Detail Panel mounted",
|
|
49700
|
+
(_a = context.currentScope.repository) == null ? void 0 : _a.path
|
|
49701
|
+
);
|
|
49702
|
+
},
|
|
49703
|
+
// Optional: Called when this specific panel is unmounted
|
|
49704
|
+
onUnmount: async (_context) => {
|
|
49705
|
+
console.log("Skill Detail Panel unmounting");
|
|
49706
|
+
}
|
|
49707
|
+
},
|
|
49708
|
+
{
|
|
49709
|
+
metadata: {
|
|
49710
|
+
id: "industry-theme.agents-list",
|
|
49711
|
+
name: "Agents List",
|
|
49712
|
+
icon: "🤖",
|
|
49713
|
+
version: "0.1.0",
|
|
49714
|
+
author: "Principal ADE",
|
|
49715
|
+
description: "Display AGENTS.md documentation and Claude Code subagents",
|
|
49716
|
+
slices: ["fileTree", "globalAgents", "globalSubagents"]
|
|
49717
|
+
// Data slices this panel depends on
|
|
49718
|
+
},
|
|
49719
|
+
component: AgentsListPanel,
|
|
49720
|
+
// Optional: Called when this specific panel is mounted
|
|
49721
|
+
onMount: async (context) => {
|
|
49722
|
+
var _a;
|
|
49723
|
+
console.log(
|
|
49724
|
+
"Agents List Panel mounted",
|
|
49725
|
+
(_a = context.currentScope.repository) == null ? void 0 : _a.path
|
|
49726
|
+
);
|
|
49727
|
+
},
|
|
49728
|
+
// Optional: Called when this specific panel is unmounted
|
|
49729
|
+
onUnmount: async (_context) => {
|
|
49730
|
+
console.log("Agents List Panel unmounting");
|
|
49731
|
+
}
|
|
49732
|
+
},
|
|
49733
|
+
{
|
|
49734
|
+
metadata: {
|
|
49735
|
+
id: "industry-theme.agent-detail",
|
|
49736
|
+
name: "Agent Detail",
|
|
49737
|
+
icon: "📄",
|
|
49738
|
+
version: "0.1.0",
|
|
49739
|
+
author: "Principal ADE",
|
|
49740
|
+
description: "Display detailed information about a selected agent or subagent",
|
|
49741
|
+
slices: ["fileTree", "globalAgents", "globalSubagents"]
|
|
49742
|
+
// Data slices this panel depends on
|
|
49743
|
+
},
|
|
49744
|
+
component: AgentDetailPanel,
|
|
49745
|
+
// Optional: Called when this specific panel is mounted
|
|
49746
|
+
onMount: async (context) => {
|
|
49747
|
+
var _a;
|
|
49748
|
+
console.log(
|
|
49749
|
+
"Agent Detail Panel mounted",
|
|
49750
|
+
(_a = context.currentScope.repository) == null ? void 0 : _a.path
|
|
49751
|
+
);
|
|
49752
|
+
},
|
|
49753
|
+
// Optional: Called when this specific panel is unmounted
|
|
49754
|
+
onUnmount: async (_context) => {
|
|
49755
|
+
console.log("Agent Detail Panel unmounting");
|
|
48039
49756
|
}
|
|
48040
49757
|
}
|
|
48041
49758
|
];
|