unifai 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +106 -0
- package/dist/adapters/antigravity.d.ts +24 -0
- package/dist/adapters/antigravity.d.ts.map +1 -0
- package/dist/adapters/base.d.ts +60 -0
- package/dist/adapters/base.d.ts.map +1 -0
- package/dist/adapters/claude.d.ts +25 -0
- package/dist/adapters/claude.d.ts.map +1 -0
- package/dist/adapters/copilot.d.ts +25 -0
- package/dist/adapters/copilot.d.ts.map +1 -0
- package/dist/adapters/cursor.d.ts +30 -0
- package/dist/adapters/cursor.d.ts.map +1 -0
- package/dist/adapters/index.d.ts +39 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/opencode.d.ts +25 -0
- package/dist/adapters/opencode.d.ts.map +1 -0
- package/dist/chunk-63EFN7CX.js +450 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +14908 -0
- package/dist/cli.js.map +97 -0
- package/dist/commands/agent.d.ts +34 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/init.d.ts +16 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/install.d.ts +8 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/list.d.ts +8 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/mcp.d.ts +40 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/remove.d.ts +8 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/sync.d.ts +19 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/tui.d.ts +14 -0
- package/dist/commands/tui.d.ts.map +1 -0
- package/dist/data/prompts.d.ts +36 -0
- package/dist/data/prompts.d.ts.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10648 -0
- package/dist/index.js.map +82 -0
- package/dist/openskill-ai.exe +0 -0
- package/dist/registry.d.ts +38 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/types/config.d.ts +103 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types.d.ts +23 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/agents.d.ts +15 -0
- package/dist/utils/agents.d.ts.map +1 -0
- package/dist/utils/fs-helpers.d.ts +29 -0
- package/dist/utils/fs-helpers.d.ts.map +1 -0
- package/dist/utils/git.d.ts +23 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/installer.d.ts +37 -0
- package/dist/utils/installer.d.ts.map +1 -0
- package/dist/utils/project-detector.d.ts +23 -0
- package/dist/utils/project-detector.d.ts.map +1 -0
- package/dist/utils/readme-generator.d.ts +9 -0
- package/dist/utils/readme-generator.d.ts.map +1 -0
- package/dist/utils/skills.d.ts +11 -0
- package/dist/utils/skills.d.ts.map +1 -0
- package/package.json +78 -0
- package/skills/skill-writer-skills/AGENTS.md +637 -0
- package/skills/skill-writer-skills/README.md +49 -0
- package/skills/skill-writer-skills/SKILL.md +97 -0
- package/skills/skill-writer-skills/metadata.json +17 -0
- package/skills/skill-writer-skills/references/common-pitfalls.md +291 -0
- package/skills/skill-writer-skills/references/core-principles.md +147 -0
- package/skills/skill-writer-skills/references/creation-process.md +250 -0
- package/skills/skill-writer-skills/references/design-patterns.md +300 -0
- package/skills/skill-writer-skills/references/skill-anatomy.md +174 -0
- package/skills/skill-writer-skills/references/validation-checklist.md +194 -0
|
Binary file
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Registry
|
|
3
|
+
* Defines all available skills and their metadata
|
|
4
|
+
*/
|
|
5
|
+
export interface SkillInfo {
|
|
6
|
+
folderName: string;
|
|
7
|
+
description: string;
|
|
8
|
+
tags: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface SkillRegistry {
|
|
11
|
+
[key: string]: SkillInfo;
|
|
12
|
+
}
|
|
13
|
+
export interface SkillWithId extends SkillInfo {
|
|
14
|
+
id: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const registry: SkillRegistry;
|
|
17
|
+
/**
|
|
18
|
+
* Default skill to auto-inject when skills are being configured
|
|
19
|
+
* This skill helps agents create new skills properly
|
|
20
|
+
*/
|
|
21
|
+
export declare const DEFAULT_SKILL = "skill-writer";
|
|
22
|
+
/**
|
|
23
|
+
* Get skill info by ID
|
|
24
|
+
*/
|
|
25
|
+
export declare function getSkill(skillId: string): SkillInfo | null;
|
|
26
|
+
/**
|
|
27
|
+
* Get all available skill IDs
|
|
28
|
+
*/
|
|
29
|
+
export declare function getAllSkillIds(): string[];
|
|
30
|
+
/**
|
|
31
|
+
* Get all skills with full info
|
|
32
|
+
*/
|
|
33
|
+
export declare function getAllSkills(): SkillWithId[];
|
|
34
|
+
/**
|
|
35
|
+
* Check if skill exists
|
|
36
|
+
*/
|
|
37
|
+
export declare function skillExists(skillId: string): boolean;
|
|
38
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,QAAQ,EAAE,aAMtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAE5C;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAE1D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,WAAW,EAAE,CAK5C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEpD"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Types for Universal AI IDE Support
|
|
3
|
+
*/
|
|
4
|
+
import type { AgentType } from './index.js';
|
|
5
|
+
/**
|
|
6
|
+
* IDE-specific configuration paths and formats
|
|
7
|
+
*/
|
|
8
|
+
export interface IDEConfig {
|
|
9
|
+
id: AgentType;
|
|
10
|
+
name: string;
|
|
11
|
+
displayName: string;
|
|
12
|
+
agentFile: string;
|
|
13
|
+
agentFileGlobal?: string;
|
|
14
|
+
rulesPath: string;
|
|
15
|
+
rulesFormat: 'markdown' | 'json' | 'mdc';
|
|
16
|
+
skillsDir: string;
|
|
17
|
+
globalSkillsDir: string;
|
|
18
|
+
mcpConfig?: string;
|
|
19
|
+
mcpConfigGlobal?: string;
|
|
20
|
+
mcpFormat?: 'json' | 'toml';
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Universal agent configuration that can be synced across IDEs
|
|
24
|
+
*/
|
|
25
|
+
export interface AgentConfig {
|
|
26
|
+
projectName?: string;
|
|
27
|
+
description?: string;
|
|
28
|
+
techStack: string[];
|
|
29
|
+
frameworks: string[];
|
|
30
|
+
languages: string[];
|
|
31
|
+
buildCommands: string[];
|
|
32
|
+
testCommands: string[];
|
|
33
|
+
devCommands: string[];
|
|
34
|
+
codingGuidelines: string[];
|
|
35
|
+
architectureNotes: string[];
|
|
36
|
+
mcpServers: MCPServer[];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* MCP Server type - command (stdio) or HTTP-based
|
|
40
|
+
*/
|
|
41
|
+
export type MCPServerType = 'command' | 'http';
|
|
42
|
+
/**
|
|
43
|
+
* MCP Server configuration
|
|
44
|
+
* Supports two modes:
|
|
45
|
+
* - command (stdio): Run a local command that implements MCP protocol
|
|
46
|
+
* - http: Connect to a remote HTTP/SSE server that implements MCP protocol
|
|
47
|
+
*/
|
|
48
|
+
export interface MCPServer {
|
|
49
|
+
name: string;
|
|
50
|
+
displayName?: string;
|
|
51
|
+
description?: string;
|
|
52
|
+
type: MCPServerType;
|
|
53
|
+
command?: string;
|
|
54
|
+
args?: string[];
|
|
55
|
+
env?: Record<string, string>;
|
|
56
|
+
url?: string;
|
|
57
|
+
headers?: Record<string, string>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Rules configuration
|
|
61
|
+
*/
|
|
62
|
+
export interface RuleSet {
|
|
63
|
+
global: Rule[];
|
|
64
|
+
pathSpecific: PathRule[];
|
|
65
|
+
}
|
|
66
|
+
export interface Rule {
|
|
67
|
+
id?: string;
|
|
68
|
+
content: string;
|
|
69
|
+
category?: 'style' | 'security' | 'performance' | 'testing' | 'documentation' | 'other';
|
|
70
|
+
priority?: 'high' | 'medium' | 'low';
|
|
71
|
+
}
|
|
72
|
+
export interface PathRule {
|
|
73
|
+
pattern: string;
|
|
74
|
+
rules: Rule[];
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Detected project information
|
|
78
|
+
*/
|
|
79
|
+
export interface ProjectInfo {
|
|
80
|
+
name: string;
|
|
81
|
+
path: string;
|
|
82
|
+
techStack: string[];
|
|
83
|
+
frameworks: string[];
|
|
84
|
+
languages: string[];
|
|
85
|
+
hasGit: boolean;
|
|
86
|
+
detectedIDEs: AgentType[];
|
|
87
|
+
existingConfigs: {
|
|
88
|
+
agent?: string;
|
|
89
|
+
rules?: string;
|
|
90
|
+
mcp?: string;
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Sync result for tracking what was updated
|
|
95
|
+
*/
|
|
96
|
+
export interface SyncResult {
|
|
97
|
+
ide: AgentType;
|
|
98
|
+
success: boolean;
|
|
99
|
+
filesCreated: string[];
|
|
100
|
+
filesUpdated: string[];
|
|
101
|
+
errors: string[];
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type Exports
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all types from the types module
|
|
5
|
+
*/
|
|
6
|
+
export type { Skill, AgentType, AgentConfig, ParsedSource } from '../types.js';
|
|
7
|
+
export type { IDEConfig, AgentConfig as UniversalAgentConfig, MCPServer, RuleSet, Rule, PathRule, ProjectInfo, SyncResult, } from './config.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG/E,YAAY,EACR,SAAS,EACT,WAAW,IAAI,oBAAoB,EACnC,SAAS,EACT,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,UAAU,GACb,MAAM,aAAa,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for agent-skills package
|
|
3
|
+
*/
|
|
4
|
+
export type AgentType = 'opencode' | 'claude-code' | 'codex' | 'cursor' | 'amp' | 'kilo' | 'roo' | 'goose' | 'antigravity' | 'gemini-cli' | 'github-copilot' | 'clawdbot' | 'droid' | 'gemini' | 'windsurf';
|
|
5
|
+
export interface Skill {
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
path: string;
|
|
9
|
+
metadata?: Record<string, string>;
|
|
10
|
+
}
|
|
11
|
+
export interface AgentConfig {
|
|
12
|
+
name: string;
|
|
13
|
+
displayName: string;
|
|
14
|
+
skillsDir: string;
|
|
15
|
+
globalSkillsDir: string;
|
|
16
|
+
detectInstalled: () => Promise<boolean>;
|
|
17
|
+
}
|
|
18
|
+
export interface ParsedSource {
|
|
19
|
+
type: 'github' | 'gitlab' | 'git';
|
|
20
|
+
url: string;
|
|
21
|
+
subpath?: string;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,SAAS,GACf,UAAU,GACV,aAAa,GACb,OAAO,GACP,QAAQ,GACR,KAAK,GACL,MAAM,GACN,KAAK,GACL,OAAO,GACP,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,UAAU,GACV,OAAO,GACP,QAAQ,GACR,UAAU,CAAC;AAEjB,MAAM,WAAW,KAAK;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AgentConfig, AgentType } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration for all supported AI coding agents
|
|
4
|
+
* Includes installation detection and directory paths for each agent
|
|
5
|
+
*/
|
|
6
|
+
export declare const agents: Record<AgentType, AgentConfig>;
|
|
7
|
+
/**
|
|
8
|
+
* Detect all installed AI coding agents on the system
|
|
9
|
+
*/
|
|
10
|
+
export declare function detectInstalledAgents(): Promise<AgentType[]>;
|
|
11
|
+
/**
|
|
12
|
+
* Get configuration for a specific agent
|
|
13
|
+
*/
|
|
14
|
+
export declare function getAgentConfig(type: AgentType): AgentConfig;
|
|
15
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/utils/agents.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIvD;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,CAwIjD,CAAC;AAEF;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAUlE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,CAE3D"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get the .agents directory path
|
|
3
|
+
*/
|
|
4
|
+
export declare function getAgentsDir(targetDir?: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* Ensure .agents directory exists
|
|
7
|
+
*/
|
|
8
|
+
export declare function ensureAgentsDir(targetDir?: string): Promise<string>;
|
|
9
|
+
/**
|
|
10
|
+
* Check if a skill is installed
|
|
11
|
+
*/
|
|
12
|
+
export declare function isSkillInstalled(skillFolderName: string, targetDir?: string): Promise<boolean>;
|
|
13
|
+
/**
|
|
14
|
+
* Get list of installed skill folders
|
|
15
|
+
*/
|
|
16
|
+
export declare function getInstalledSkills(targetDir?: string): Promise<string[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Copy skill folder to .agents
|
|
19
|
+
*/
|
|
20
|
+
export declare function copySkillFolder(sourcePath: string, skillFolderName: string, targetDir?: string): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Remove skill folder from .agents
|
|
23
|
+
*/
|
|
24
|
+
export declare function removeSkillFolder(skillFolderName: string, targetDir?: string): Promise<boolean>;
|
|
25
|
+
/**
|
|
26
|
+
* Get the skills source directory (bundled with package)
|
|
27
|
+
*/
|
|
28
|
+
export declare function getSkillsSourceDir(): string;
|
|
29
|
+
//# sourceMappingURL=fs-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/fs-helpers.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,GAAE,MAAY,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,SAAS,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAI9E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,GAAE,MAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAQzG;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,SAAS,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAanF;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,SAAS,GAAE,MAAY,GACtB,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,eAAe,EAAE,MAAM,EACvB,SAAS,GAAE,MAAY,GACtB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ParsedSource } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Parse various Git source formats into a normalized structure
|
|
4
|
+
* Supports:
|
|
5
|
+
* - GitHub URLs with paths: https://github.com/owner/repo/tree/branch/path/to/skill
|
|
6
|
+
* - GitHub URLs: https://github.com/owner/repo
|
|
7
|
+
* - GitLab URLs with paths: https://gitlab.com/owner/repo/-/tree/branch/path
|
|
8
|
+
* - GitLab URLs: https://gitlab.com/owner/repo
|
|
9
|
+
* - GitHub shorthand: owner/repo or owner/repo/path/to/skill
|
|
10
|
+
* - Direct git URLs: git@github.com:owner/repo.git
|
|
11
|
+
*/
|
|
12
|
+
export declare function parseSource(input: string): ParsedSource;
|
|
13
|
+
/**
|
|
14
|
+
* Clone a Git repository to a temporary directory
|
|
15
|
+
* Uses shallow clone (depth 1) for faster downloads
|
|
16
|
+
*/
|
|
17
|
+
export declare function cloneRepo(url: string): Promise<string>;
|
|
18
|
+
/**
|
|
19
|
+
* Safely cleanup a temporary directory
|
|
20
|
+
* Validates that the directory is within tmpdir to prevent accidental deletion
|
|
21
|
+
*/
|
|
22
|
+
export declare function cleanupTempDir(dir: string): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=git.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAiEvD;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK5D;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU/D"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Skill, AgentType } from '../types';
|
|
2
|
+
interface InstallResult {
|
|
3
|
+
success: boolean;
|
|
4
|
+
path: string;
|
|
5
|
+
error?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Install a skill to a specific agent
|
|
9
|
+
* Supports both global and project-level installation
|
|
10
|
+
*/
|
|
11
|
+
export declare function installSkillForAgent(skill: Skill, agentType: AgentType, options?: {
|
|
12
|
+
global?: boolean;
|
|
13
|
+
cwd?: string;
|
|
14
|
+
}): Promise<InstallResult>;
|
|
15
|
+
/**
|
|
16
|
+
* Check if a skill is already installed
|
|
17
|
+
*/
|
|
18
|
+
export declare function isSkillInstalled(skillName: string, agentType: AgentType, options?: {
|
|
19
|
+
global?: boolean;
|
|
20
|
+
cwd?: string;
|
|
21
|
+
}): Promise<boolean>;
|
|
22
|
+
/**
|
|
23
|
+
* Get the installation path for a skill
|
|
24
|
+
*/
|
|
25
|
+
export declare function getInstallPath(skillName: string, agentType: AgentType, options?: {
|
|
26
|
+
global?: boolean;
|
|
27
|
+
cwd?: string;
|
|
28
|
+
}): string;
|
|
29
|
+
/**
|
|
30
|
+
* Uninstall a skill by removing its directory
|
|
31
|
+
*/
|
|
32
|
+
export declare function uninstallSkill(skillPath: string): Promise<{
|
|
33
|
+
success: boolean;
|
|
34
|
+
error?: string;
|
|
35
|
+
}>;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/utils/installer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGjD,UAAU,aAAa;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AA4CD;;;GAGG;AACH,wBAAsB,oBAAoB,CACtC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,aAAa,CAAC,CAkCxB;AAwCD;;GAEG;AACH,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,OAAO,CAAC,CAuBlB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,MAAM,CAkBR;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAYrG"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Detector
|
|
3
|
+
* Auto-detects project type and recommends relevant skills
|
|
4
|
+
*/
|
|
5
|
+
export interface DetectedProject {
|
|
6
|
+
type: string;
|
|
7
|
+
displayName: string;
|
|
8
|
+
name?: string;
|
|
9
|
+
version?: string;
|
|
10
|
+
framework?: string;
|
|
11
|
+
recommendedSkills: string[];
|
|
12
|
+
optionalSkills: string[];
|
|
13
|
+
configFile: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Detect project type from directory
|
|
17
|
+
*/
|
|
18
|
+
export declare function detectProject(dir?: string): Promise<DetectedProject | null>;
|
|
19
|
+
/**
|
|
20
|
+
* Get project type display with icon
|
|
21
|
+
*/
|
|
22
|
+
export declare function getProjectIcon(type: string): string;
|
|
23
|
+
//# sourceMappingURL=project-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../../src/utils/project-detector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAeD;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,GAAE,MAAY,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAuBtF;AAmYD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkBnD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate the README.md content for .agents folder
|
|
3
|
+
*/
|
|
4
|
+
export declare function generateReadmeContent(installedFolders: string[]): string;
|
|
5
|
+
/**
|
|
6
|
+
* Update the README.md in .agents folder
|
|
7
|
+
*/
|
|
8
|
+
export declare function updateReadme(targetDir?: string): Promise<string>;
|
|
9
|
+
//# sourceMappingURL=readme-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readme-generator.d.ts","sourceRoot":"","sources":["../../src/utils/readme-generator.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,CAgExE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,SAAS,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAc3E"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Skill } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Discover all skills in a directory
|
|
4
|
+
* Searches priority locations first, then falls back to recursive search
|
|
5
|
+
*/
|
|
6
|
+
export declare function discoverSkills(basePath: string, subpath?: string): Promise<Skill[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Get the display name for a skill
|
|
9
|
+
*/
|
|
10
|
+
export declare function getSkillDisplayName(skill: Skill): string;
|
|
11
|
+
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/utils/skills.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAsEtC;;;GAGG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAoEzF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAExD"}
|
package/package.json
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "unifai",
|
|
3
|
+
"version": "2.0.1",
|
|
4
|
+
"description": "Install AI agent skills from Git repositories. Supports 15+ agents including Antigravity, Cursor, Claude Code, OpenCode, GitHub Copilot, and more.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"unifai": "./dist/cli.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"skills",
|
|
14
|
+
"README.md",
|
|
15
|
+
"LICENSE"
|
|
16
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "bun run build.ts",
|
|
19
|
+
"build:standalone": "bun build src/cli.ts --compile --outfile dist/unifai",
|
|
20
|
+
"build:standalone:all": "bun run build:standalone:windows && bun run build:standalone:linux && bun run build:standalone:macos",
|
|
21
|
+
"build:standalone:windows": "bun build src/cli.ts --compile --target=bun-windows-x64 --outfile dist/bin/unifai-windows-x64.exe",
|
|
22
|
+
"build:standalone:linux": "bun build src/cli.ts --compile --target=bun-linux-x64 --outfile dist/bin/unifai-linux-x64",
|
|
23
|
+
"build:standalone:macos": "bun build src/cli.ts --compile --target=bun-darwin-x64 --outfile dist/bin/unifai-darwin-x64",
|
|
24
|
+
"dev": "bun src/cli.ts",
|
|
25
|
+
"dev:watch": "bun --watch src/cli.ts",
|
|
26
|
+
"test": "bun run dist/cli.js list-agents",
|
|
27
|
+
"test:dev": "bun src/cli.ts list-agents",
|
|
28
|
+
"typecheck": "tsc --noEmit",
|
|
29
|
+
"prepublishOnly": "bun run build"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [
|
|
32
|
+
"ai",
|
|
33
|
+
"agent",
|
|
34
|
+
"skills",
|
|
35
|
+
"claude-code",
|
|
36
|
+
"cursor",
|
|
37
|
+
"opencode",
|
|
38
|
+
"antigravity",
|
|
39
|
+
"github-copilot",
|
|
40
|
+
"copilot",
|
|
41
|
+
"codex",
|
|
42
|
+
"windsurf",
|
|
43
|
+
"roo-code",
|
|
44
|
+
"assistant",
|
|
45
|
+
"llm",
|
|
46
|
+
"coding-assistant",
|
|
47
|
+
"best-practices",
|
|
48
|
+
"git",
|
|
49
|
+
"cli",
|
|
50
|
+
"bun"
|
|
51
|
+
],
|
|
52
|
+
"author": "Agent Skills Community",
|
|
53
|
+
"license": "MIT",
|
|
54
|
+
"repository": {
|
|
55
|
+
"type": "git",
|
|
56
|
+
"url": "https://github.com/yourusername/agent-skills.git"
|
|
57
|
+
},
|
|
58
|
+
"bugs": {
|
|
59
|
+
"url": "https://github.com/yourusername/agent-skills/issues"
|
|
60
|
+
},
|
|
61
|
+
"homepage": "https://github.com/yourusername/agent-skills#readme",
|
|
62
|
+
"dependencies": {
|
|
63
|
+
"@clack/prompts": "^0.9.1",
|
|
64
|
+
"chalk": "^5.4.1",
|
|
65
|
+
"commander": "^13.1.0",
|
|
66
|
+
"gray-matter": "^4.0.3",
|
|
67
|
+
"simple-git": "^3.27.0"
|
|
68
|
+
},
|
|
69
|
+
"devDependencies": {
|
|
70
|
+
"@types/bun": "^1.1.0",
|
|
71
|
+
"@types/node": "^22.10.0",
|
|
72
|
+
"typescript": "^5.7.2"
|
|
73
|
+
},
|
|
74
|
+
"engines": {
|
|
75
|
+
"node": ">=18.0.0",
|
|
76
|
+
"bun": ">=1.0.0"
|
|
77
|
+
}
|
|
78
|
+
}
|