@industry-theme/agent-panels 0.1.2 → 0.1.4
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/README.md +75 -7
- package/dist/panels/SkillsLifecycle.stories.d.ts.map +1 -1
- package/dist/panels/SkillsListPanel.d.ts.map +1 -1
- package/dist/panels/skills/components/SkillCard.d.ts.map +1 -1
- package/dist/panels/skills/hooks/useSkillsData.d.ts +21 -0
- package/dist/panels/skills/hooks/useSkillsData.d.ts.map +1 -1
- package/dist/panels.bundle.js +375 -102
- package/dist/panels.bundle.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -416,13 +416,14 @@ const MyPanel: React.FC<PanelComponentProps> = ({ context }) => {
|
|
|
416
416
|
|
|
417
417
|
Panels can access these data slices from the host:
|
|
418
418
|
|
|
419
|
-
| Slice
|
|
420
|
-
|
|
|
421
|
-
| `git`
|
|
422
|
-
| `markdown`
|
|
423
|
-
| `fileTree`
|
|
424
|
-
| `packages`
|
|
425
|
-
| `quality`
|
|
419
|
+
| Slice | Type | Description |
|
|
420
|
+
| -------------- | ------------------ | ------------------------------------- |
|
|
421
|
+
| `git` | `GitStatus` | Git repository status |
|
|
422
|
+
| `markdown` | `MarkdownFile[]` | Markdown files in repository |
|
|
423
|
+
| `fileTree` | `FileTree` | File system tree structure |
|
|
424
|
+
| `packages` | `PackageLayer[]` | Package dependencies |
|
|
425
|
+
| `quality` | `QualityMetrics` | Code quality metrics |
|
|
426
|
+
| `globalSkills` | `GlobalSkillsSlice`| Global skills from user directories |
|
|
426
427
|
|
|
427
428
|
Check availability before use:
|
|
428
429
|
|
|
@@ -432,6 +433,73 @@ if (context.hasSlice('git') && !context.isSliceLoading('git')) {
|
|
|
432
433
|
}
|
|
433
434
|
```
|
|
434
435
|
|
|
436
|
+
### Global Skills Support
|
|
437
|
+
|
|
438
|
+
The Skills List panel supports both project and global skills:
|
|
439
|
+
|
|
440
|
+
**Project Skills** (discovered via `fileTree`):
|
|
441
|
+
- Any `SKILL.md` file in the project file tree
|
|
442
|
+
- Automatically detected and categorized by path:
|
|
443
|
+
- `.agent/skills/` → `project-universal`
|
|
444
|
+
- `.claude/skills/` → `project-claude`
|
|
445
|
+
- Other locations → `project-other`
|
|
446
|
+
|
|
447
|
+
**Global Skills** (provided via `globalSkills` slice):
|
|
448
|
+
- `~/.agent/skills/` → `global-universal`
|
|
449
|
+
- `~/.claude/skills/` → `global-claude`
|
|
450
|
+
|
|
451
|
+
#### Host Implementation
|
|
452
|
+
|
|
453
|
+
To provide global skills, the host application must:
|
|
454
|
+
|
|
455
|
+
1. Scan global skill directories
|
|
456
|
+
2. Read and parse SKILL.md files
|
|
457
|
+
3. Analyze folder structure (scripts/, references/, assets/)
|
|
458
|
+
4. Provide pre-formatted data through the `globalSkills` slice:
|
|
459
|
+
|
|
460
|
+
```typescript
|
|
461
|
+
interface GlobalSkillsSlice {
|
|
462
|
+
skills: Skill[];
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
interface Skill {
|
|
466
|
+
id: string; // e.g., "global:~/.agent/skills/skill-name"
|
|
467
|
+
name: string;
|
|
468
|
+
path: string; // Absolute path to SKILL.md
|
|
469
|
+
source: SkillSource; // 'global-universal' | 'global-claude'
|
|
470
|
+
priority: 1 | 2 | 3 | 4 | 5;
|
|
471
|
+
description?: string;
|
|
472
|
+
content: string; // Full SKILL.md content
|
|
473
|
+
capabilities?: string[];
|
|
474
|
+
skillFolderPath: string;
|
|
475
|
+
hasScripts: boolean;
|
|
476
|
+
hasReferences: boolean;
|
|
477
|
+
hasAssets: boolean;
|
|
478
|
+
scriptFiles?: string[];
|
|
479
|
+
referenceFiles?: string[];
|
|
480
|
+
assetFiles?: string[];
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
// Example usage:
|
|
484
|
+
context.setSlice('globalSkills', {
|
|
485
|
+
scope: 'global',
|
|
486
|
+
name: 'globalSkills',
|
|
487
|
+
data: { skills: mockGlobalSkills },
|
|
488
|
+
loading: false,
|
|
489
|
+
error: null,
|
|
490
|
+
refresh: async () => {},
|
|
491
|
+
});
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
#### UI Features
|
|
495
|
+
|
|
496
|
+
The Skills List panel includes:
|
|
497
|
+
- **Filter Toggle**: Switch between All/Project/Global skills
|
|
498
|
+
- **Source Badges**: Visual indicators showing skill origin
|
|
499
|
+
- 🌐 Global (purple/cyan)
|
|
500
|
+
- 📁 Project (green/blue/slate)
|
|
501
|
+
- **Merged View**: Seamlessly displays both local and global skills
|
|
502
|
+
|
|
435
503
|
## Event Types
|
|
436
504
|
|
|
437
505
|
Standard panel events:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillsLifecycle.stories.d.ts","sourceRoot":"","sources":["../../src/panels/SkillsLifecycle.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAY5D;;;GAGG;AACH,QAAA,MAAM,IAAI;;;;;;;;;;;CAYM,CAAC;AAEjB,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SkillsLifecycle.stories.d.ts","sourceRoot":"","sources":["../../src/panels/SkillsLifecycle.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAY5D;;;GAGG;AACH,QAAA,MAAM,IAAI;;;;;;;;;;;CAYM,CAAC;AAEjB,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AA0WnC,eAAO,MAAM,cAAc,EAAE,KAU5B,CAAC;AAiFF,eAAO,MAAM,sBAAsB,EAAE,KAUpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillsListPanel.d.ts","sourceRoot":"","sources":["../../src/panels/SkillsListPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAIzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"SkillsListPanel.d.ts","sourceRoot":"","sources":["../../src/panels/SkillsListPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAIzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAMpD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAqZzD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillCard.d.ts","sourceRoot":"","sources":["../../../../src/panels/skills/components/SkillCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"SkillCard.d.ts","sourceRoot":"","sources":["../../../../src/panels/skills/components/SkillCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,wBAAwB,CAAC;AAEjE,UAAU,cAAc;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAkDD;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA+Q9C,CAAC"}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import type { PanelContextValue } from '../../../types';
|
|
2
|
+
export type SkillSource = 'project-universal' | 'global-universal' | 'project-claude' | 'global-claude' | 'project-other';
|
|
3
|
+
export interface SkillMetadata {
|
|
4
|
+
installedFrom?: string;
|
|
5
|
+
skillPath?: string;
|
|
6
|
+
owner?: string;
|
|
7
|
+
repo?: string;
|
|
8
|
+
branch?: string;
|
|
9
|
+
installedAt?: string;
|
|
10
|
+
destination?: string;
|
|
11
|
+
sha?: string;
|
|
12
|
+
files?: string[];
|
|
13
|
+
}
|
|
2
14
|
export interface Skill {
|
|
3
15
|
id: string;
|
|
4
16
|
name: string;
|
|
@@ -13,6 +25,15 @@ export interface Skill {
|
|
|
13
25
|
scriptFiles?: string[];
|
|
14
26
|
referenceFiles?: string[];
|
|
15
27
|
assetFiles?: string[];
|
|
28
|
+
source: SkillSource;
|
|
29
|
+
priority: 1 | 2 | 3 | 4 | 5;
|
|
30
|
+
metadata?: SkillMetadata;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Global skills data provided by the host application
|
|
34
|
+
*/
|
|
35
|
+
export interface GlobalSkillsSlice {
|
|
36
|
+
skills: Skill[];
|
|
16
37
|
}
|
|
17
38
|
interface UseSkillsDataParams {
|
|
18
39
|
context: PanelContextValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSkillsData.d.ts","sourceRoot":"","sources":["../../../../src/panels/skills/hooks/useSkillsData.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"useSkillsData.d.ts","sourceRoot":"","sources":["../../../../src/panels/skills/hooks/useSkillsData.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,MAAM,WAAW,GACnB,mBAAmB,GACnB,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,eAAe,CAAC;AAEpB,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE5B,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,UAAU,mBAAmB;IAC3B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAsID;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,cAE3B,mBAAmB,KAAG,mBAiHxB,CAAC"}
|