qskills 1.0.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 (96) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +512 -0
  3. package/bin/qskills.js +10 -0
  4. package/dist/commands/config.d.ts +3 -0
  5. package/dist/commands/config.d.ts.map +1 -0
  6. package/dist/commands/config.js +142 -0
  7. package/dist/commands/config.js.map +1 -0
  8. package/dist/commands/knowledge/add.d.ts +14 -0
  9. package/dist/commands/knowledge/add.d.ts.map +1 -0
  10. package/dist/commands/knowledge/add.js +89 -0
  11. package/dist/commands/knowledge/add.js.map +1 -0
  12. package/dist/commands/knowledge/index.d.ts +3 -0
  13. package/dist/commands/knowledge/index.d.ts.map +1 -0
  14. package/dist/commands/knowledge/index.js +46 -0
  15. package/dist/commands/knowledge/index.js.map +1 -0
  16. package/dist/commands/knowledge/list.d.ts +10 -0
  17. package/dist/commands/knowledge/list.d.ts.map +1 -0
  18. package/dist/commands/knowledge/list.js +55 -0
  19. package/dist/commands/knowledge/list.js.map +1 -0
  20. package/dist/commands/knowledge/remove.d.ts +6 -0
  21. package/dist/commands/knowledge/remove.d.ts.map +1 -0
  22. package/dist/commands/knowledge/remove.js +33 -0
  23. package/dist/commands/knowledge/remove.js.map +1 -0
  24. package/dist/commands/knowledge/search.d.ts +9 -0
  25. package/dist/commands/knowledge/search.d.ts.map +1 -0
  26. package/dist/commands/knowledge/search.js +59 -0
  27. package/dist/commands/knowledge/search.js.map +1 -0
  28. package/dist/commands/skill/add.d.ts +11 -0
  29. package/dist/commands/skill/add.d.ts.map +1 -0
  30. package/dist/commands/skill/add.js +100 -0
  31. package/dist/commands/skill/add.js.map +1 -0
  32. package/dist/commands/skill/index.d.ts +3 -0
  33. package/dist/commands/skill/index.d.ts.map +1 -0
  34. package/dist/commands/skill/index.js +51 -0
  35. package/dist/commands/skill/index.js.map +1 -0
  36. package/dist/commands/skill/list.d.ts +8 -0
  37. package/dist/commands/skill/list.d.ts.map +1 -0
  38. package/dist/commands/skill/list.js +52 -0
  39. package/dist/commands/skill/list.js.map +1 -0
  40. package/dist/commands/skill/remove.d.ts +7 -0
  41. package/dist/commands/skill/remove.d.ts.map +1 -0
  42. package/dist/commands/skill/remove.js +33 -0
  43. package/dist/commands/skill/remove.js.map +1 -0
  44. package/dist/commands/skill/search.d.ts +7 -0
  45. package/dist/commands/skill/search.d.ts.map +1 -0
  46. package/dist/commands/skill/search.js +57 -0
  47. package/dist/commands/skill/search.js.map +1 -0
  48. package/dist/commands/skill/sync.d.ts +7 -0
  49. package/dist/commands/skill/sync.d.ts.map +1 -0
  50. package/dist/commands/skill/sync.js +83 -0
  51. package/dist/commands/skill/sync.js.map +1 -0
  52. package/dist/commands/sync.d.ts +3 -0
  53. package/dist/commands/sync.d.ts.map +1 -0
  54. package/dist/commands/sync.js +63 -0
  55. package/dist/commands/sync.js.map +1 -0
  56. package/dist/core/config.d.ts +16 -0
  57. package/dist/core/config.d.ts.map +1 -0
  58. package/dist/core/config.js +68 -0
  59. package/dist/core/config.js.map +1 -0
  60. package/dist/core/git-sync.d.ts +31 -0
  61. package/dist/core/git-sync.d.ts.map +1 -0
  62. package/dist/core/git-sync.js +240 -0
  63. package/dist/core/git-sync.js.map +1 -0
  64. package/dist/core/init.d.ts +3 -0
  65. package/dist/core/init.d.ts.map +1 -0
  66. package/dist/core/init.js +134 -0
  67. package/dist/core/init.js.map +1 -0
  68. package/dist/core/scanner.d.ts +27 -0
  69. package/dist/core/scanner.d.ts.map +1 -0
  70. package/dist/core/scanner.js +126 -0
  71. package/dist/core/scanner.js.map +1 -0
  72. package/dist/core/storage.d.ts +41 -0
  73. package/dist/core/storage.d.ts.map +1 -0
  74. package/dist/core/storage.js +293 -0
  75. package/dist/core/storage.js.map +1 -0
  76. package/dist/index.d.ts +4 -0
  77. package/dist/index.d.ts.map +1 -0
  78. package/dist/index.js +19 -0
  79. package/dist/index.js.map +1 -0
  80. package/dist/types/index.d.ts +134 -0
  81. package/dist/types/index.d.ts.map +1 -0
  82. package/dist/types/index.js +26 -0
  83. package/dist/types/index.js.map +1 -0
  84. package/dist/utils/file.d.ts +16 -0
  85. package/dist/utils/file.d.ts.map +1 -0
  86. package/dist/utils/file.js +102 -0
  87. package/dist/utils/file.js.map +1 -0
  88. package/dist/utils/helpers.d.ts +7 -0
  89. package/dist/utils/helpers.d.ts.map +1 -0
  90. package/dist/utils/helpers.js +27 -0
  91. package/dist/utils/helpers.js.map +1 -0
  92. package/dist/utils/logger.d.ts +12 -0
  93. package/dist/utils/logger.d.ts.map +1 -0
  94. package/dist/utils/logger.js +50 -0
  95. package/dist/utils/logger.js.map +1 -0
  96. package/package.json +72 -0
@@ -0,0 +1,27 @@
1
+ import { randomUUID } from 'crypto';
2
+ export function generateId() {
3
+ return randomUUID();
4
+ }
5
+ export function expandPath(path) {
6
+ if (path.startsWith('~')) {
7
+ return path.replace('~', process.env.HOME || process.env.USERPROFILE || '');
8
+ }
9
+ return path;
10
+ }
11
+ export function validateName(name) {
12
+ return /^[a-zA-Z0-9_-]+$/.test(name) && name.length > 0 && name.length <= 64;
13
+ }
14
+ export function sanitizeTags(tags) {
15
+ return tags
16
+ .split(',')
17
+ .map(t => t.trim().toLowerCase())
18
+ .filter(t => t.length > 0);
19
+ }
20
+ export async function sleep(ms) {
21
+ return new Promise(resolve => setTimeout(resolve, ms));
22
+ }
23
+ export function formatDate(date) {
24
+ const d = typeof date === 'string' ? new Date(date) : date;
25
+ return d.toISOString();
26
+ }
27
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,UAAU,UAAU;IACxB,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,EAAU;IACpC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAmB;IAC5C,MAAM,CAAC,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AACzB,CAAC"}
@@ -0,0 +1,12 @@
1
+ type LogLevel = 'debug' | 'info' | 'warn' | 'error';
2
+ export declare function setLogLevel(level: LogLevel): void;
3
+ export declare const logger: {
4
+ debug(message: string): void;
5
+ info(message: string): void;
6
+ warn(message: string): void;
7
+ error(message: string): void;
8
+ success(message: string): void;
9
+ fail(message: string): void;
10
+ };
11
+ export {};
12
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAWpD,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAEjD;AAaD,eAAO,MAAM,MAAM;mBACF,MAAM,GAAG,IAAI;kBAKd,MAAM,GAAG,IAAI;kBAKb,MAAM,GAAG,IAAI;mBAKZ,MAAM,GAAG,IAAI;qBAKX,MAAM,GAAG,IAAI;kBAGhB,MAAM,GAAG,IAAI;CAG5B,CAAC"}
@@ -0,0 +1,50 @@
1
+ import chalk from 'chalk';
2
+ const LOG_LEVELS = {
3
+ debug: 0,
4
+ info: 1,
5
+ warn: 2,
6
+ error: 3
7
+ };
8
+ let currentLevel = 'info';
9
+ export function setLogLevel(level) {
10
+ currentLevel = level;
11
+ }
12
+ function formatMessage(level, message) {
13
+ const timestamp = new Date().toISOString();
14
+ const prefix = {
15
+ debug: chalk.gray('[DEBUG]'),
16
+ info: chalk.blue('[INFO]'),
17
+ warn: chalk.yellow('[WARN]'),
18
+ error: chalk.red('[ERROR]')
19
+ };
20
+ return `${prefix[level]} ${message}`;
21
+ }
22
+ export const logger = {
23
+ debug(message) {
24
+ if (LOG_LEVELS[currentLevel] <= LOG_LEVELS.debug) {
25
+ console.error(formatMessage('debug', message));
26
+ }
27
+ },
28
+ info(message) {
29
+ if (LOG_LEVELS[currentLevel] <= LOG_LEVELS.info) {
30
+ console.log(formatMessage('info', message));
31
+ }
32
+ },
33
+ warn(message) {
34
+ if (LOG_LEVELS[currentLevel] <= LOG_LEVELS.warn) {
35
+ console.warn(formatMessage('warn', message));
36
+ }
37
+ },
38
+ error(message) {
39
+ if (LOG_LEVELS[currentLevel] <= LOG_LEVELS.error) {
40
+ console.error(formatMessage('error', message));
41
+ }
42
+ },
43
+ success(message) {
44
+ console.log(chalk.green('✓') + ' ' + message);
45
+ },
46
+ fail(message) {
47
+ console.log(chalk.red('✗') + ' ' + message);
48
+ }
49
+ };
50
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,UAAU,GAA6B;IAC3C,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,IAAI,YAAY,GAAa,MAAM,CAAC;AAEpC,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,YAAY,GAAG,KAAK,CAAC;AACvB,CAAC;AAED,SAAS,aAAa,CAAC,KAAe,EAAE,OAAe;IACrD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,MAAM,GAA6B;QACvC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC1B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC5B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;KAC5B,CAAC;IACF,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,KAAK,CAAC,OAAe;QACnB,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAe;QAClB,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAe;QAClB,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,KAAK,CAAC,OAAe;QACnB,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC"}
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "qskills",
3
+ "version": "1.0.0",
4
+ "description": "CLI skill management tool for developers - manage skills, knowledge base, and sync across devices",
5
+ "type": "module",
6
+ "bin": {
7
+ "qskills": "./bin/qskills.js"
8
+ },
9
+ "main": "./dist/index.js",
10
+ "exports": {
11
+ ".": "./dist/index.js"
12
+ },
13
+ "files": [
14
+ "bin",
15
+ "dist",
16
+ "templates"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "dev": "tsc --watch",
21
+ "test": "vitest run",
22
+ "test:watch": "vitest",
23
+ "test:coverage": "vitest run --coverage",
24
+ "lint": "eslint src --ext .ts",
25
+ "prepublishOnly": "npm run build && npm test"
26
+ },
27
+ "keywords": [
28
+ "cli",
29
+ "skill",
30
+ "skills",
31
+ "knowledge-base",
32
+ "developer-tools",
33
+ "code-snippets",
34
+ "sync",
35
+ "git",
36
+ "snippet-manager",
37
+ "productivity"
38
+ ],
39
+ "author": "",
40
+ "license": "MIT",
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "https://github.com/your-username/qskills.git"
44
+ },
45
+ "bugs": {
46
+ "url": "https://github.com/your-username/qskills/issues"
47
+ },
48
+ "homepage": "https://github.com/your-username/qskills#readme",
49
+ "dependencies": {
50
+ "commander": "^12.0.0",
51
+ "@inquirer/prompts": "^7.0.0",
52
+ "isomorphic-git": "^1.27.0",
53
+ "chalk": "^5.3.0",
54
+ "ora": "^8.0.0",
55
+ "conf": "^13.0.0",
56
+ "cli-table3": "^0.6.3"
57
+ },
58
+ "devDependencies": {
59
+ "typescript": "^5.0.0",
60
+ "vitest": "^1.0.0",
61
+ "@types/node": "^20.0.0",
62
+ "@vitest/coverage-v8": "^1.0.0"
63
+ },
64
+ "engines": {
65
+ "node": ">=16.0.0"
66
+ },
67
+ "os": [
68
+ "win32",
69
+ "darwin",
70
+ "linux"
71
+ ]
72
+ }