@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 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 | 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 |
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;AAkQnC,eAAO,MAAM,cAAc,EAAE,KAU5B,CAAC;AAiFF,eAAO,MAAM,sBAAsB,EAAE,KAUpC,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;AAIpD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA2TzD,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,EAAE,MAAM,wBAAwB,CAAC;AAEpD,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;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA8N9C,CAAC"}
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;CACvB;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;AAgGD;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,cAE3B,mBAAmB,KAAG,mBAsGxB,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"}