skillsd 0.1.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.
Files changed (59) hide show
  1. package/README.md +484 -0
  2. package/bin/sd.js +3 -0
  3. package/dist/commands/auth.d.ts +3 -0
  4. package/dist/commands/auth.d.ts.map +1 -0
  5. package/dist/commands/auth.js +148 -0
  6. package/dist/commands/auth.js.map +1 -0
  7. package/dist/commands/clone.d.ts +3 -0
  8. package/dist/commands/clone.d.ts.map +1 -0
  9. package/dist/commands/clone.js +86 -0
  10. package/dist/commands/clone.js.map +1 -0
  11. package/dist/commands/collection.d.ts +3 -0
  12. package/dist/commands/collection.d.ts.map +1 -0
  13. package/dist/commands/collection.js +206 -0
  14. package/dist/commands/collection.js.map +1 -0
  15. package/dist/commands/diff.d.ts +3 -0
  16. package/dist/commands/diff.d.ts.map +1 -0
  17. package/dist/commands/diff.js +93 -0
  18. package/dist/commands/diff.js.map +1 -0
  19. package/dist/commands/pr.d.ts +3 -0
  20. package/dist/commands/pr.d.ts.map +1 -0
  21. package/dist/commands/pr.js +230 -0
  22. package/dist/commands/pr.js.map +1 -0
  23. package/dist/commands/pull.d.ts +3 -0
  24. package/dist/commands/pull.d.ts.map +1 -0
  25. package/dist/commands/pull.js +136 -0
  26. package/dist/commands/pull.js.map +1 -0
  27. package/dist/commands/push.d.ts +3 -0
  28. package/dist/commands/push.d.ts.map +1 -0
  29. package/dist/commands/push.js +129 -0
  30. package/dist/commands/push.js.map +1 -0
  31. package/dist/commands/search.d.ts +3 -0
  32. package/dist/commands/search.d.ts.map +1 -0
  33. package/dist/commands/search.js +55 -0
  34. package/dist/commands/search.js.map +1 -0
  35. package/dist/commands/skill.d.ts +3 -0
  36. package/dist/commands/skill.d.ts.map +1 -0
  37. package/dist/commands/skill.js +270 -0
  38. package/dist/commands/skill.js.map +1 -0
  39. package/dist/commands/status.d.ts +8 -0
  40. package/dist/commands/status.d.ts.map +1 -0
  41. package/dist/commands/status.js +115 -0
  42. package/dist/commands/status.js.map +1 -0
  43. package/dist/index.d.ts +3 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +214 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/lib/api.d.ts +208 -0
  48. package/dist/lib/api.d.ts.map +1 -0
  49. package/dist/lib/api.js +216 -0
  50. package/dist/lib/api.js.map +1 -0
  51. package/dist/lib/auth.d.ts +13 -0
  52. package/dist/lib/auth.d.ts.map +1 -0
  53. package/dist/lib/auth.js +181 -0
  54. package/dist/lib/auth.js.map +1 -0
  55. package/dist/lib/config.d.ts +58 -0
  56. package/dist/lib/config.d.ts.map +1 -0
  57. package/dist/lib/config.js +144 -0
  58. package/dist/lib/config.js.map +1 -0
  59. package/package.json +48 -0
@@ -0,0 +1,58 @@
1
+ export interface GlobalConfig {
2
+ api: {
3
+ url: string;
4
+ };
5
+ defaults: {
6
+ visibility: 'public' | 'private' | 'unlisted';
7
+ editor?: string;
8
+ };
9
+ output: {
10
+ format: 'table' | 'json';
11
+ };
12
+ }
13
+ export interface Credentials {
14
+ accessToken: string;
15
+ refreshToken: string;
16
+ expiresAt: number;
17
+ user: {
18
+ id: string;
19
+ email: string;
20
+ };
21
+ account: {
22
+ id: string;
23
+ slug: string;
24
+ name: string;
25
+ };
26
+ }
27
+ export declare function getConfig(): GlobalConfig;
28
+ export declare function saveConfig(config: GlobalConfig): void;
29
+ export declare function getConfigValue<K extends keyof GlobalConfig>(section: K): GlobalConfig[K];
30
+ export declare function setConfigValue<K extends keyof GlobalConfig>(section: K, value: GlobalConfig[K]): void;
31
+ export declare function getCredentials(): Credentials | null;
32
+ export declare function saveCredentials(credentials: Credentials): void;
33
+ export declare function clearCredentials(): void;
34
+ export declare function isAuthenticated(): boolean;
35
+ export declare function getApiUrl(): string;
36
+ export interface WorkspaceConfig {
37
+ remote: {
38
+ url: string;
39
+ account: string;
40
+ collection: string;
41
+ collectionId: string;
42
+ };
43
+ branch: string;
44
+ lastSync: string;
45
+ }
46
+ export interface WorkspaceIndex {
47
+ commitSha: string;
48
+ files: Record<string, {
49
+ sha: string;
50
+ mtime: string;
51
+ }>;
52
+ }
53
+ export declare function getWorkspaceConfig(workspaceDir: string): WorkspaceConfig | null;
54
+ export declare function saveWorkspaceConfig(workspaceDir: string, config: WorkspaceConfig): void;
55
+ export declare function getWorkspaceIndex(workspaceDir: string): WorkspaceIndex | null;
56
+ export declare function saveWorkspaceIndex(workspaceDir: string, index: WorkspaceIndex): void;
57
+ export declare function findWorkspaceRoot(startDir?: string): string | null;
58
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,EAAE;QACR,UAAU,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;QAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAoBD,wBAAgB,SAAS,IAAI,YAAY,CAcxC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAGrD;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,YAAY,EACzD,OAAO,EAAE,CAAC,GACT,YAAY,CAAC,CAAC,CAAC,CAGjB;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,YAAY,EACzD,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GACrB,IAAI,CAIN;AAED,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAanD;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAK9D;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAOvC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAOzC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAMlC;AAGD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAa/E;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CASvF;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAa7E;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,CASpF;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAWjF"}
@@ -0,0 +1,144 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync, chmodSync } from 'fs';
2
+ import { homedir } from 'os';
3
+ import { join } from 'path';
4
+ // Global config directory
5
+ const CONFIG_DIR = join(homedir(), '.skillsdojo');
6
+ const CONFIG_FILE = join(CONFIG_DIR, 'config.json');
7
+ const CREDENTIALS_FILE = join(CONFIG_DIR, 'credentials.json');
8
+ const DEFAULT_CONFIG = {
9
+ api: {
10
+ url: process.env.SKILLSDOJO_API_URL || 'https://skillsdojo.ai',
11
+ },
12
+ defaults: {
13
+ visibility: 'private',
14
+ },
15
+ output: {
16
+ format: 'table',
17
+ },
18
+ };
19
+ function ensureConfigDir() {
20
+ if (!existsSync(CONFIG_DIR)) {
21
+ mkdirSync(CONFIG_DIR, { recursive: true, mode: 0o700 });
22
+ }
23
+ }
24
+ export function getConfig() {
25
+ ensureConfigDir();
26
+ if (!existsSync(CONFIG_FILE)) {
27
+ saveConfig(DEFAULT_CONFIG);
28
+ return DEFAULT_CONFIG;
29
+ }
30
+ try {
31
+ const data = readFileSync(CONFIG_FILE, 'utf-8');
32
+ return { ...DEFAULT_CONFIG, ...JSON.parse(data) };
33
+ }
34
+ catch {
35
+ return DEFAULT_CONFIG;
36
+ }
37
+ }
38
+ export function saveConfig(config) {
39
+ ensureConfigDir();
40
+ writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2), { mode: 0o600 });
41
+ }
42
+ export function getConfigValue(section) {
43
+ const config = getConfig();
44
+ return config[section];
45
+ }
46
+ export function setConfigValue(section, value) {
47
+ const config = getConfig();
48
+ config[section] = value;
49
+ saveConfig(config);
50
+ }
51
+ export function getCredentials() {
52
+ ensureConfigDir();
53
+ if (!existsSync(CREDENTIALS_FILE)) {
54
+ return null;
55
+ }
56
+ try {
57
+ const data = readFileSync(CREDENTIALS_FILE, 'utf-8');
58
+ return JSON.parse(data);
59
+ }
60
+ catch {
61
+ return null;
62
+ }
63
+ }
64
+ export function saveCredentials(credentials) {
65
+ ensureConfigDir();
66
+ writeFileSync(CREDENTIALS_FILE, JSON.stringify(credentials, null, 2));
67
+ // Set restrictive permissions (owner read/write only)
68
+ chmodSync(CREDENTIALS_FILE, 0o600);
69
+ }
70
+ export function clearCredentials() {
71
+ ensureConfigDir();
72
+ if (existsSync(CREDENTIALS_FILE)) {
73
+ writeFileSync(CREDENTIALS_FILE, '{}');
74
+ chmodSync(CREDENTIALS_FILE, 0o600);
75
+ }
76
+ }
77
+ export function isAuthenticated() {
78
+ const creds = getCredentials();
79
+ if (!creds || !creds.accessToken) {
80
+ return false;
81
+ }
82
+ // Check if token is expired (with 5 minute buffer)
83
+ return creds.expiresAt > Date.now() + 5 * 60 * 1000;
84
+ }
85
+ export function getApiUrl() {
86
+ // Environment variable takes precedence
87
+ if (process.env.SKILLSDOJO_API_URL) {
88
+ return process.env.SKILLSDOJO_API_URL;
89
+ }
90
+ return getConfig().api.url;
91
+ }
92
+ export function getWorkspaceConfig(workspaceDir) {
93
+ const configPath = join(workspaceDir, '.skillsdojo', 'config.json');
94
+ if (!existsSync(configPath)) {
95
+ return null;
96
+ }
97
+ try {
98
+ const data = readFileSync(configPath, 'utf-8');
99
+ return JSON.parse(data);
100
+ }
101
+ catch {
102
+ return null;
103
+ }
104
+ }
105
+ export function saveWorkspaceConfig(workspaceDir, config) {
106
+ const sdojoDir = join(workspaceDir, '.skillsdojo');
107
+ const configPath = join(sdojoDir, 'config.json');
108
+ if (!existsSync(sdojoDir)) {
109
+ mkdirSync(sdojoDir, { recursive: true });
110
+ }
111
+ writeFileSync(configPath, JSON.stringify(config, null, 2));
112
+ }
113
+ export function getWorkspaceIndex(workspaceDir) {
114
+ const indexPath = join(workspaceDir, '.skillsdojo', 'index.json');
115
+ if (!existsSync(indexPath)) {
116
+ return null;
117
+ }
118
+ try {
119
+ const data = readFileSync(indexPath, 'utf-8');
120
+ return JSON.parse(data);
121
+ }
122
+ catch {
123
+ return null;
124
+ }
125
+ }
126
+ export function saveWorkspaceIndex(workspaceDir, index) {
127
+ const sdojoDir = join(workspaceDir, '.skillsdojo');
128
+ const indexPath = join(sdojoDir, 'index.json');
129
+ if (!existsSync(sdojoDir)) {
130
+ mkdirSync(sdojoDir, { recursive: true });
131
+ }
132
+ writeFileSync(indexPath, JSON.stringify(index, null, 2));
133
+ }
134
+ export function findWorkspaceRoot(startDir = process.cwd()) {
135
+ let currentDir = startDir;
136
+ while (currentDir !== '/') {
137
+ if (existsSync(join(currentDir, '.skillsdojo', 'config.json'))) {
138
+ return currentDir;
139
+ }
140
+ currentDir = join(currentDir, '..');
141
+ }
142
+ return null;
143
+ }
144
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,0BAA0B;AAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC;AAClD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACpD,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AA8B9D,MAAM,cAAc,GAAiB;IACnC,GAAG,EAAE;QACH,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,uBAAuB;KAC/D;IACD,QAAQ,EAAE;QACR,UAAU,EAAE,SAAS;KACtB;IACD,MAAM,EAAE;QACN,MAAM,EAAE,OAAO;KAChB;CACF,CAAC;AAEF,SAAS,eAAe;IACtB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,eAAe,EAAE,CAAC;IAElB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,UAAU,CAAC,cAAc,CAAC,CAAC;QAC3B,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAoB;IAC7C,eAAe,EAAE,CAAC;IAClB,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAU;IAEV,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAU,EACV,KAAsB;IAEtB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;IACxB,UAAU,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,eAAe,EAAE,CAAC;IAElB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAwB;IACtD,eAAe,EAAE,CAAC;IAClB,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACtE,sDAAsD;IACtD,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,eAAe,EAAE,CAAC;IAElB,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACtC,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,mDAAmD;IACnD,OAAO,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,wCAAwC;IACxC,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7B,CAAC;AAsBD,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IAEpE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,YAAoB,EAAE,MAAuB;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAEjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,YAAoB;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;IAElE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,YAAoB,EAAE,KAAqB;IAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAE/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IAChE,IAAI,UAAU,GAAG,QAAQ,CAAC;IAE1B,OAAO,UAAU,KAAK,GAAG,EAAE,CAAC;QAC1B,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;YAC/D,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "skillsd",
3
+ "version": "0.1.0",
4
+ "description": "SkillsDojo CLI - Manage AI agent skills from the command line",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "skillsd": "./bin/sd.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "tsc --watch",
13
+ "start": "node dist/index.js",
14
+ "lint": "eslint src --ext .ts",
15
+ "clean": "rm -rf dist"
16
+ },
17
+ "keywords": [
18
+ "skillsdojo",
19
+ "ai",
20
+ "skills",
21
+ "agents",
22
+ "cli"
23
+ ],
24
+ "author": "SkillsDojo",
25
+ "license": "MIT",
26
+ "dependencies": {
27
+ "chalk": "^5.3.0",
28
+ "cli-table3": "^0.6.5",
29
+ "commander": "^12.1.0",
30
+ "diff": "^7.0.0",
31
+ "inquirer": "^12.3.0",
32
+ "open": "^10.1.0",
33
+ "ora": "^8.1.1"
34
+ },
35
+ "devDependencies": {
36
+ "@types/diff": "^6.0.0",
37
+ "@types/inquirer": "^9.0.7",
38
+ "@types/node": "^22.10.0",
39
+ "typescript": "^5.7.0"
40
+ },
41
+ "engines": {
42
+ "node": ">=18.0.0"
43
+ },
44
+ "files": [
45
+ "dist",
46
+ "bin"
47
+ ]
48
+ }