@link-assistant/hive-mind 1.39.0 → 1.40.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @link-assistant/hive-mind
2
2
 
3
+ ## 1.40.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 6b8465a: feat: add browsers, browser tools, and missing software to /version command
8
+
3
9
  ## 1.39.0
4
10
 
5
11
  ### Minor Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@link-assistant/hive-mind",
3
- "version": "1.39.0",
3
+ "version": "1.40.0",
4
4
  "description": "AI-powered issue solver and hive mind for collaborative problem solving",
5
5
  "main": "src/hive.mjs",
6
6
  "type": "module",
@@ -50,7 +50,17 @@ const VERSION_COMMANDS = [
50
50
 
51
51
  // Browser Automation
52
52
  { key: 'playwright', command: 'playwright --version 2>&1' },
53
+ { key: 'playwrightTest', command: "npm list -g @playwright/test --depth=0 2>&1 | grep @playwright/test | awk '{print $2}'" },
53
54
  { key: 'playwrightMcp', command: "npm list -g @playwright/mcp --depth=0 2>&1 | grep @playwright/mcp | awk '{print $2}'" },
55
+ { key: 'playwrightMcpStatus', command: 'timeout 5 claude mcp list 2>&1 | grep -i playwright | head -1' },
56
+ { key: 'puppeteerBrowsers', command: "npm list -g @puppeteer/browsers --depth=0 2>&1 | grep @puppeteer/browsers | awk '{print $2}'" },
57
+
58
+ // Browsers (installed via Playwright)
59
+ { key: 'chrome', command: 'google-chrome --version 2>&1' },
60
+ { key: 'chromium', command: 'chromium --version 2>&1', fallbacks: ['chromium-browser --version 2>&1'] },
61
+ { key: 'firefox', command: 'firefox --version 2>&1' },
62
+ { key: 'msedge', command: 'microsoft-edge --version 2>&1', fallbacks: ['microsoft-edge-stable --version 2>&1'] },
63
+ { key: 'webkit', command: "ls ~/.cache/ms-playwright/ 2>/dev/null | grep -oE 'webkit-[0-9]+' | head -1" },
54
64
 
55
65
  // JavaScript/Node.js ecosystem
56
66
  { key: 'bun', command: 'bun --version 2>&1' },
@@ -103,10 +113,33 @@ const VERSION_COMMANDS = [
103
113
  { key: 'make', command: 'make --version 2>&1 | head -n1' },
104
114
  { key: 'cmake', command: 'cmake --version 2>&1 | head -n1' },
105
115
 
116
+ // Ruby ecosystem
117
+ { key: 'ruby', command: 'ruby --version 2>&1' },
118
+ { key: 'rbenv', command: 'rbenv --version 2>&1' },
119
+
120
+ // Kotlin
121
+ { key: 'kotlin', command: 'kotlin -version 2>&1' },
122
+
123
+ // Swift
124
+ { key: 'swift', command: 'swift --version 2>&1 | head -n1' },
125
+
126
+ // R
127
+ { key: 'r', command: 'R --version 2>&1 | head -n1' },
128
+
106
129
  // Development Tools
107
130
  { key: 'git', command: 'git --version 2>&1' },
108
131
  { key: 'gh', command: 'gh --version 2>&1 | head -n1' },
132
+ { key: 'glab', command: 'glab --version 2>&1 | head -n1' },
109
133
  { key: 'brew', command: 'brew --version 2>&1 | head -n1' },
134
+ { key: 'nasm', command: 'nasm --version 2>&1' },
135
+ { key: 'fasm', command: 'fasm 2>&1 | head -n1' },
136
+ { key: 'curl', command: 'curl --version 2>&1 | head -n1' },
137
+ { key: 'wget', command: 'wget --version 2>&1 | head -n1' },
138
+ { key: 'zip', command: 'zip --version 2>&1 | head -n2 | tail -n1' },
139
+ { key: 'unzip', command: 'unzip -v 2>&1 | head -n1' },
140
+ { key: 'expect', command: 'expect -version 2>&1' },
141
+ { key: 'screen', command: 'screen --version 2>&1' },
142
+ { key: 'xvfb', command: 'Xvfb -version 2>&1 | head -n1', fallbacks: ['dpkg -l xvfb 2>/dev/null | grep xvfb | head -1'] },
110
143
  ];
111
144
 
112
145
  /**
@@ -202,7 +235,17 @@ export async function getVersionInfo(verbose = false, processVersion = null) {
202
235
 
203
236
  // Browser Automation
204
237
  playwright: versions.playwright,
238
+ playwrightTest: versions.playwrightTest,
205
239
  playwrightMcp: versions.playwrightMcp,
240
+ playwrightMcpStatus: versions.playwrightMcpStatus,
241
+ puppeteerBrowsers: versions.puppeteerBrowsers,
242
+
243
+ // Browsers
244
+ chrome: versions.chrome,
245
+ chromium: versions.chromium,
246
+ firefox: versions.firefox,
247
+ msedge: versions.msedge,
248
+ webkit: versions.webkit,
206
249
 
207
250
  // JavaScript/Node.js
208
251
  node: versions.node,
@@ -246,6 +289,19 @@ export async function getVersionInfo(verbose = false, processVersion = null) {
246
289
  elan: versions.elan,
247
290
  lake: versions.lake,
248
291
 
292
+ // Ruby
293
+ ruby: versions.ruby,
294
+ rbenv: versions.rbenv,
295
+
296
+ // Kotlin
297
+ kotlin: versions.kotlin,
298
+
299
+ // Swift
300
+ swift: versions.swift,
301
+
302
+ // R
303
+ r: versions.r,
304
+
249
305
  // C/C++
250
306
  gcc: versions.gcc,
251
307
  gpp: versions.gpp,
@@ -258,7 +314,17 @@ export async function getVersionInfo(verbose = false, processVersion = null) {
258
314
  // Development Tools
259
315
  git: versions.git,
260
316
  gh: versions.gh,
317
+ glab: versions.glab,
261
318
  brew: versions.brew,
319
+ nasm: versions.nasm,
320
+ fasm: versions.fasm,
321
+ curl: versions.curl,
322
+ wget: versions.wget,
323
+ zip: versions.zip,
324
+ unzip: versions.unzip,
325
+ expect: versions.expect,
326
+ screen: versions.screen,
327
+ xvfb: versions.xvfb,
262
328
 
263
329
  // Platform
264
330
  platform: versions.platform,
@@ -407,7 +473,7 @@ export function formatVersionMessage(versions) {
407
473
 
408
474
  if (perlLines.length > 0) {
409
475
  lines.push('');
410
- lines.push('*💎 Perl*');
476
+ lines.push('*🐪 Perl*');
411
477
  lines.push(...perlLines);
412
478
  }
413
479
 
@@ -435,6 +501,38 @@ export function formatVersionMessage(versions) {
435
501
  lines.push(...leanLines);
436
502
  }
437
503
 
504
+ // === Ruby ===
505
+ const rubyLines = [];
506
+ addVersionLine(rubyLines, 'Ruby', versions.ruby);
507
+ addVersionLine(rubyLines, 'Rbenv', versions.rbenv);
508
+
509
+ if (rubyLines.length > 0) {
510
+ lines.push('');
511
+ lines.push('*💎 Ruby*');
512
+ lines.push(...rubyLines);
513
+ }
514
+
515
+ // === Kotlin ===
516
+ if (versions.kotlin) {
517
+ lines.push('');
518
+ lines.push('*🟣 Kotlin*');
519
+ addVersionLine(lines, 'Kotlin', versions.kotlin);
520
+ }
521
+
522
+ // === Swift ===
523
+ if (versions.swift) {
524
+ lines.push('');
525
+ lines.push('*🦅 Swift*');
526
+ addVersionLine(lines, 'Swift', versions.swift);
527
+ }
528
+
529
+ // === R ===
530
+ if (versions.r) {
531
+ lines.push('');
532
+ lines.push('*📊 R*');
533
+ addVersionLine(lines, 'R', versions.r);
534
+ }
535
+
438
536
  // === C/C++ ===
439
537
  const cppLines = [];
440
538
  addVersionLine(cppLines, 'GCC', versions.gcc);
@@ -444,20 +542,60 @@ export function formatVersionMessage(versions) {
444
542
  addVersionLine(cppLines, 'LLD', versions.lld);
445
543
  addVersionLine(cppLines, 'Make', versions.make);
446
544
  addVersionLine(cppLines, 'CMake', versions.cmake);
545
+ addVersionLine(cppLines, 'NASM', versions.nasm);
546
+ addVersionLine(cppLines, 'FASM', versions.fasm);
447
547
 
448
548
  if (cppLines.length > 0) {
449
549
  lines.push('');
450
- lines.push('*🔨 C/C++*');
550
+ lines.push('*🔨 C/C++/Assembly*');
451
551
  lines.push(...cppLines);
452
552
  }
453
553
 
554
+ // === Browsers ===
555
+ const browserLines = [];
556
+ addVersionLine(browserLines, 'Google Chrome', versions.chrome);
557
+ addVersionLine(browserLines, 'Chromium', versions.chromium);
558
+ addVersionLine(browserLines, 'Firefox', versions.firefox);
559
+ addVersionLine(browserLines, 'Microsoft Edge', versions.msedge);
560
+ addVersionLine(browserLines, 'WebKit', versions.webkit);
561
+
562
+ if (browserLines.length > 0) {
563
+ lines.push('');
564
+ lines.push('*🌐 Browsers*');
565
+ lines.push(...browserLines);
566
+ }
567
+
568
+ // === Browser Automation ===
569
+ const browserAutoLines = [];
570
+ addVersionLine(browserAutoLines, 'Playwright', versions.playwright);
571
+ addVersionLine(browserAutoLines, 'Playwright Test', versions.playwrightTest);
572
+ addVersionLine(browserAutoLines, 'Playwright MCP', versions.playwrightMcp);
573
+ if (versions.playwrightMcpStatus) {
574
+ browserAutoLines.push(`• Playwright MCP in Claude Code: \`${versions.playwrightMcpStatus}\``);
575
+ } else if (versions.playwrightMcp) {
576
+ browserAutoLines.push('• Playwright MCP in Claude Code: `not configured`');
577
+ }
578
+ addVersionLine(browserAutoLines, 'Puppeteer Browsers', versions.puppeteerBrowsers);
579
+
580
+ if (browserAutoLines.length > 0) {
581
+ lines.push('');
582
+ lines.push('*🎭 Browser Automation*');
583
+ lines.push(...browserAutoLines);
584
+ }
585
+
454
586
  // === Development Tools ===
455
587
  const toolLines = [];
456
588
  addVersionLine(toolLines, 'Git', versions.git);
457
589
  addVersionLine(toolLines, 'GitHub CLI', versions.gh);
458
- addVersionLine(toolLines, 'Playwright', versions.playwright);
459
- addVersionLine(toolLines, 'Playwright MCP', versions.playwrightMcp);
590
+ addVersionLine(toolLines, 'GitLab CLI', versions.glab);
460
591
  addVersionLine(toolLines, 'Homebrew', versions.brew);
592
+ addVersionLine(toolLines, 'cURL', versions.curl);
593
+ addVersionLine(toolLines, 'Wget', versions.wget);
594
+ addVersionLine(toolLines, 'Zip', versions.zip);
595
+ addVersionLine(toolLines, 'Unzip', versions.unzip);
596
+ addVersionLine(toolLines, 'Expect', versions.expect);
597
+ addVersionLine(toolLines, 'Screen', versions.screen);
598
+ addVersionLine(toolLines, 'Xvfb', versions.xvfb);
461
599
 
462
600
  if (toolLines.length > 0) {
463
601
  lines.push('');