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.
Files changed (77) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +106 -0
  3. package/dist/adapters/antigravity.d.ts +24 -0
  4. package/dist/adapters/antigravity.d.ts.map +1 -0
  5. package/dist/adapters/base.d.ts +60 -0
  6. package/dist/adapters/base.d.ts.map +1 -0
  7. package/dist/adapters/claude.d.ts +25 -0
  8. package/dist/adapters/claude.d.ts.map +1 -0
  9. package/dist/adapters/copilot.d.ts +25 -0
  10. package/dist/adapters/copilot.d.ts.map +1 -0
  11. package/dist/adapters/cursor.d.ts +30 -0
  12. package/dist/adapters/cursor.d.ts.map +1 -0
  13. package/dist/adapters/index.d.ts +39 -0
  14. package/dist/adapters/index.d.ts.map +1 -0
  15. package/dist/adapters/opencode.d.ts +25 -0
  16. package/dist/adapters/opencode.d.ts.map +1 -0
  17. package/dist/chunk-63EFN7CX.js +450 -0
  18. package/dist/cli.d.ts +3 -0
  19. package/dist/cli.d.ts.map +1 -0
  20. package/dist/cli.js +14908 -0
  21. package/dist/cli.js.map +97 -0
  22. package/dist/commands/agent.d.ts +34 -0
  23. package/dist/commands/agent.d.ts.map +1 -0
  24. package/dist/commands/init.d.ts +16 -0
  25. package/dist/commands/init.d.ts.map +1 -0
  26. package/dist/commands/install.d.ts +8 -0
  27. package/dist/commands/install.d.ts.map +1 -0
  28. package/dist/commands/list.d.ts +8 -0
  29. package/dist/commands/list.d.ts.map +1 -0
  30. package/dist/commands/mcp.d.ts +40 -0
  31. package/dist/commands/mcp.d.ts.map +1 -0
  32. package/dist/commands/remove.d.ts +8 -0
  33. package/dist/commands/remove.d.ts.map +1 -0
  34. package/dist/commands/sync.d.ts +19 -0
  35. package/dist/commands/sync.d.ts.map +1 -0
  36. package/dist/commands/tui.d.ts +14 -0
  37. package/dist/commands/tui.d.ts.map +1 -0
  38. package/dist/data/prompts.d.ts +36 -0
  39. package/dist/data/prompts.d.ts.map +1 -0
  40. package/dist/index.d.ts +16 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +10648 -0
  43. package/dist/index.js.map +82 -0
  44. package/dist/openskill-ai.exe +0 -0
  45. package/dist/registry.d.ts +38 -0
  46. package/dist/registry.d.ts.map +1 -0
  47. package/dist/types/config.d.ts +103 -0
  48. package/dist/types/config.d.ts.map +1 -0
  49. package/dist/types/index.d.ts +8 -0
  50. package/dist/types/index.d.ts.map +1 -0
  51. package/dist/types.d.ts +23 -0
  52. package/dist/types.d.ts.map +1 -0
  53. package/dist/utils/agents.d.ts +15 -0
  54. package/dist/utils/agents.d.ts.map +1 -0
  55. package/dist/utils/fs-helpers.d.ts +29 -0
  56. package/dist/utils/fs-helpers.d.ts.map +1 -0
  57. package/dist/utils/git.d.ts +23 -0
  58. package/dist/utils/git.d.ts.map +1 -0
  59. package/dist/utils/installer.d.ts +37 -0
  60. package/dist/utils/installer.d.ts.map +1 -0
  61. package/dist/utils/project-detector.d.ts +23 -0
  62. package/dist/utils/project-detector.d.ts.map +1 -0
  63. package/dist/utils/readme-generator.d.ts +9 -0
  64. package/dist/utils/readme-generator.d.ts.map +1 -0
  65. package/dist/utils/skills.d.ts +11 -0
  66. package/dist/utils/skills.d.ts.map +1 -0
  67. package/package.json +78 -0
  68. package/skills/skill-writer-skills/AGENTS.md +637 -0
  69. package/skills/skill-writer-skills/README.md +49 -0
  70. package/skills/skill-writer-skills/SKILL.md +97 -0
  71. package/skills/skill-writer-skills/metadata.json +17 -0
  72. package/skills/skill-writer-skills/references/common-pitfalls.md +291 -0
  73. package/skills/skill-writer-skills/references/core-principles.md +147 -0
  74. package/skills/skill-writer-skills/references/creation-process.md +250 -0
  75. package/skills/skill-writer-skills/references/design-patterns.md +300 -0
  76. package/skills/skill-writer-skills/references/skill-anatomy.md +174 -0
  77. 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"}
@@ -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
+ }