@nerviq/cli 1.0.1 → 1.2.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 (39) hide show
  1. package/bin/cli.js +170 -73
  2. package/package.json +1 -1
  3. package/src/activity.js +20 -0
  4. package/src/aider/domain-packs.js +27 -2
  5. package/src/aider/mcp-packs.js +231 -0
  6. package/src/aider/techniques.js +3211 -1397
  7. package/src/audit.js +257 -2
  8. package/src/catalog.js +18 -2
  9. package/src/codex/domain-packs.js +23 -1
  10. package/src/codex/mcp-packs.js +254 -0
  11. package/src/codex/techniques.js +4738 -3257
  12. package/src/copilot/domain-packs.js +23 -1
  13. package/src/copilot/mcp-packs.js +254 -0
  14. package/src/copilot/techniques.js +3433 -1936
  15. package/src/cursor/domain-packs.js +23 -1
  16. package/src/cursor/mcp-packs.js +257 -0
  17. package/src/cursor/techniques.js +3698 -1869
  18. package/src/deprecation.js +98 -0
  19. package/src/domain-pack-expansion.js +571 -0
  20. package/src/domain-packs.js +25 -2
  21. package/src/formatters/otel.js +151 -0
  22. package/src/gemini/domain-packs.js +23 -1
  23. package/src/gemini/mcp-packs.js +257 -0
  24. package/src/gemini/techniques.js +3734 -2238
  25. package/src/integrations.js +194 -0
  26. package/src/mcp-packs.js +233 -0
  27. package/src/opencode/domain-packs.js +23 -1
  28. package/src/opencode/mcp-packs.js +231 -0
  29. package/src/opencode/techniques.js +3501 -1687
  30. package/src/org.js +68 -0
  31. package/src/source-urls.js +410 -260
  32. package/src/stack-checks.js +565 -0
  33. package/src/supplemental-checks.js +817 -0
  34. package/src/techniques.js +2929 -1449
  35. package/src/telemetry.js +160 -0
  36. package/src/windsurf/domain-packs.js +23 -1
  37. package/src/windsurf/mcp-packs.js +257 -0
  38. package/src/windsurf/techniques.js +3648 -1834
  39. package/src/workspace.js +233 -0
package/src/org.js ADDED
@@ -0,0 +1,68 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+
4
+ async function scanOrg(dirs, platform = 'claude') {
5
+ const { audit } = require('./audit');
6
+ const targets = Array.isArray(dirs) ? dirs : [];
7
+ const repos = [];
8
+
9
+ for (const dir of targets) {
10
+ const resolved = path.resolve(dir);
11
+ if (!fs.existsSync(resolved)) {
12
+ repos.push({
13
+ name: path.basename(dir),
14
+ dir: resolved,
15
+ platform,
16
+ score: null,
17
+ passed: 0,
18
+ total: 0,
19
+ topAction: null,
20
+ error: 'directory not found',
21
+ });
22
+ continue;
23
+ }
24
+
25
+ try {
26
+ const result = await audit({ dir: resolved, platform, silent: true });
27
+ repos.push({
28
+ name: path.basename(resolved),
29
+ dir: resolved,
30
+ platform,
31
+ score: result.score,
32
+ passed: result.passed,
33
+ total: result.checkCount,
34
+ topAction: result.topNextActions?.[0]?.name || null,
35
+ result,
36
+ });
37
+ } catch (error) {
38
+ repos.push({
39
+ name: path.basename(resolved),
40
+ dir: resolved,
41
+ platform,
42
+ score: null,
43
+ passed: 0,
44
+ total: 0,
45
+ topAction: null,
46
+ error: error.message,
47
+ });
48
+ }
49
+ }
50
+
51
+ const validScores = repos.filter((item) => typeof item.score === 'number').map((item) => item.score);
52
+ const averageScore = validScores.length > 0
53
+ ? Math.round(validScores.reduce((sum, value) => sum + value, 0) / validScores.length)
54
+ : 0;
55
+
56
+ return {
57
+ platform,
58
+ repoCount: repos.length,
59
+ averageScore,
60
+ maxScore: validScores.length > 0 ? Math.max(...validScores) : 0,
61
+ minScore: validScores.length > 0 ? Math.min(...validScores) : 0,
62
+ repos,
63
+ };
64
+ }
65
+
66
+ module.exports = {
67
+ scanOrg,
68
+ };