dev-workflows 0.1.3 → 0.2.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 (70) hide show
  1. package/README.md +11 -0
  2. package/dist/bridges/claude.d.ts.map +1 -1
  3. package/dist/bridges/claude.js +5 -21
  4. package/dist/bridges/claude.js.map +1 -1
  5. package/dist/bridges/copilot.d.ts +3 -0
  6. package/dist/bridges/copilot.d.ts.map +1 -0
  7. package/dist/bridges/copilot.js +38 -0
  8. package/dist/bridges/copilot.js.map +1 -0
  9. package/dist/bridges/cursor.d.ts.map +1 -1
  10. package/dist/bridges/cursor.js +5 -21
  11. package/dist/bridges/cursor.js.map +1 -1
  12. package/dist/bridges/gemini.d.ts.map +1 -1
  13. package/dist/bridges/gemini.js +5 -21
  14. package/dist/bridges/gemini.js.map +1 -1
  15. package/dist/bridges/types.d.ts +1 -0
  16. package/dist/bridges/types.d.ts.map +1 -1
  17. package/dist/bridges/windsurf.d.ts +3 -0
  18. package/dist/bridges/windsurf.d.ts.map +1 -0
  19. package/dist/bridges/windsurf.js +45 -0
  20. package/dist/bridges/windsurf.js.map +1 -0
  21. package/dist/commands/add.d.ts.map +1 -1
  22. package/dist/commands/add.js +1 -10
  23. package/dist/commands/add.js.map +1 -1
  24. package/dist/commands/compile.d.ts.map +1 -1
  25. package/dist/commands/compile.js +7 -14
  26. package/dist/commands/compile.js.map +1 -1
  27. package/dist/commands/doctor.d.ts +1 -0
  28. package/dist/commands/doctor.d.ts.map +1 -1
  29. package/dist/commands/doctor.js +44 -22
  30. package/dist/commands/doctor.js.map +1 -1
  31. package/dist/commands/explain.d.ts +6 -0
  32. package/dist/commands/explain.d.ts.map +1 -0
  33. package/dist/commands/explain.js +97 -0
  34. package/dist/commands/explain.js.map +1 -0
  35. package/dist/commands/init.d.ts.map +1 -1
  36. package/dist/commands/init.js +35 -41
  37. package/dist/commands/init.js.map +1 -1
  38. package/dist/commands/list.d.ts.map +1 -1
  39. package/dist/commands/list.js +1 -10
  40. package/dist/commands/list.js.map +1 -1
  41. package/dist/commands/remove.d.ts.map +1 -1
  42. package/dist/commands/remove.js +1 -10
  43. package/dist/commands/remove.js.map +1 -1
  44. package/dist/core/helpers.d.ts +6 -0
  45. package/dist/core/helpers.d.ts.map +1 -0
  46. package/dist/core/helpers.js +41 -0
  47. package/dist/core/helpers.js.map +1 -0
  48. package/dist/core/parser.d.ts.map +1 -1
  49. package/dist/core/parser.js +5 -0
  50. package/dist/core/parser.js.map +1 -1
  51. package/dist/core/schema.d.ts +8 -0
  52. package/dist/core/schema.d.ts.map +1 -0
  53. package/dist/core/schema.js +10 -0
  54. package/dist/core/schema.js.map +1 -0
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +2 -0
  57. package/dist/index.js.map +1 -1
  58. package/dist/utils/detect-tools.d.ts +1 -1
  59. package/dist/utils/detect-tools.d.ts.map +1 -1
  60. package/dist/utils/detect-tools.js +5 -12
  61. package/dist/utils/detect-tools.js.map +1 -1
  62. package/dist/utils/fs.d.ts +2 -0
  63. package/dist/utils/fs.d.ts.map +1 -0
  64. package/dist/utils/fs.js +11 -0
  65. package/dist/utils/fs.js.map +1 -0
  66. package/package.json +4 -4
  67. package/dist/utils/prompt.d.ts +0 -3
  68. package/dist/utils/prompt.d.ts.map +0 -1
  69. package/dist/utils/prompt.js +0 -21
  70. package/dist/utils/prompt.js.map +0 -1
@@ -1,26 +1,19 @@
1
- import { access } from 'node:fs/promises';
2
1
  import { join } from 'node:path';
3
- export const SUPPORTED_TOOLS = ['claude', 'cursor', 'gemini'];
2
+ import { fileExists } from './fs.js';
3
+ export const SUPPORTED_TOOLS = ['claude', 'cursor', 'gemini', 'windsurf', 'copilot'];
4
4
  const TOOL_MARKERS = {
5
5
  claude: 'CLAUDE.md',
6
6
  cursor: '.cursor',
7
7
  gemini: 'GEMINI.md',
8
+ windsurf: '.windsurf',
9
+ copilot: '.github/copilot-instructions.md',
8
10
  };
9
- async function exists(filePath) {
10
- try {
11
- await access(filePath);
12
- return true;
13
- }
14
- catch {
15
- return false;
16
- }
17
- }
18
11
  export async function detectTools(cwd) {
19
12
  const results = await Promise.all(SUPPORTED_TOOLS.map(async (id) => {
20
13
  const marker = TOOL_MARKERS[id];
21
14
  if (!marker)
22
15
  return { id, detected: false };
23
- const detected = await exists(join(cwd, marker));
16
+ const detected = await fileExists(join(cwd, marker));
24
17
  return { id, detected };
25
18
  }));
26
19
  return results;
@@ -1 +1 @@
1
- {"version":3,"file":"detect-tools.js","sourceRoot":"","sources":["../../src/utils/detect-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,CAAC,MAAM,eAAe,GAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAOxE,MAAM,YAAY,GAA2B;IAC3C,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,WAAW;CACpB,CAAC;AAEF,KAAK,UAAU,MAAM,CAAC,QAAgB;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACjD,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;IAC1B,CAAC,CAAC,CACH,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"detect-tools.js","sourceRoot":"","sources":["../../src/utils/detect-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIrC,MAAM,CAAC,MAAM,eAAe,GAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAO/F,MAAM,YAAY,GAA2B;IAC3C,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,WAAW;IACrB,OAAO,EAAE,iCAAiC;CAC3C,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACrD,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;IAC1B,CAAC,CAAC,CACH,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function fileExists(filePath: string): Promise<boolean>;
2
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAEA,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE"}
@@ -0,0 +1,11 @@
1
+ import { access } from 'node:fs/promises';
2
+ export async function fileExists(filePath) {
3
+ try {
4
+ await access(filePath);
5
+ return true;
6
+ }
7
+ catch {
8
+ return false;
9
+ }
10
+ }
11
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-workflows",
3
- "version": "0.1.3",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "description": "CLI that compiles developer rules into editor-specific config files",
6
6
  "license": "MIT",
@@ -21,7 +21,7 @@
21
21
  "gemini"
22
22
  ],
23
23
  "engines": {
24
- "node": ">=20.0.0"
24
+ "node": ">=22.0.0"
25
25
  },
26
26
  "bin": {
27
27
  "devw": "./bin/devw.js"
@@ -42,10 +42,10 @@
42
42
  "access": "public"
43
43
  },
44
44
  "dependencies": {
45
+ "@inquirer/prompts": "^7.0.0",
45
46
  "commander": "^13.0.0",
46
47
  "yaml": "^2.7.0",
47
- "chalk": "^5.4.0",
48
- "ora": "^8.0.0"
48
+ "chalk": "^5.4.0"
49
49
  },
50
50
  "devDependencies": {
51
51
  "typescript": "^5.7.0",
@@ -1,3 +0,0 @@
1
- export declare function ask(question: string, defaultValue?: string): Promise<string>;
2
- export declare function confirm(question: string, defaultYes?: boolean): Promise<boolean>;
3
- //# sourceMappingURL=prompt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/utils/prompt.ts"],"names":[],"mappings":"AAGA,wBAAsB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASlF;AAED,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,UAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAKnF"}
@@ -1,21 +0,0 @@
1
- import { createInterface } from 'node:readline/promises';
2
- import { stdin, stdout } from 'node:process';
3
- export async function ask(question, defaultValue) {
4
- const rl = createInterface({ input: stdin, output: stdout });
5
- try {
6
- const answer = await rl.question(question);
7
- const trimmed = answer.trim();
8
- return trimmed || defaultValue || '';
9
- }
10
- finally {
11
- rl.close();
12
- }
13
- }
14
- export async function confirm(question, defaultYes = true) {
15
- const hint = defaultYes ? 'Y/n' : 'y/N';
16
- const answer = await ask(`${question} [${hint}]: `);
17
- if (answer === '')
18
- return defaultYes;
19
- return answer.toLowerCase().startsWith('y');
20
- }
21
- //# sourceMappingURL=prompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/utils/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,QAAgB,EAAE,YAAqB;IAC/D,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,OAAO,IAAI,YAAY,IAAI,EAAE,CAAC;IACvC,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,QAAgB,EAAE,UAAU,GAAG,IAAI;IAC/D,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,QAAQ,KAAK,IAAI,KAAK,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,UAAU,CAAC;IACrC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC"}