natureco-cli 2.23.28 → 2.23.30

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/README.md +94 -11
  2. package/bin/natureco.js +470 -10
  3. package/package.json +10 -6
  4. package/src/commands/admin-rpc.js +219 -0
  5. package/src/commands/agent.js +89 -0
  6. package/src/commands/approvals.js +53 -0
  7. package/src/commands/backup.js +124 -0
  8. package/src/commands/bonjour.js +167 -0
  9. package/src/commands/capability.js +64 -0
  10. package/src/commands/channels.js +94 -4
  11. package/src/commands/chat.js +11 -25
  12. package/src/commands/clickclack.js +130 -0
  13. package/src/commands/commitments.js +32 -0
  14. package/src/commands/completion.js +76 -0
  15. package/src/commands/config.js +111 -68
  16. package/src/commands/configure.js +93 -0
  17. package/src/commands/crestodian.js +92 -0
  18. package/src/commands/daemon.js +60 -0
  19. package/src/commands/device-pair.js +248 -0
  20. package/src/commands/devices.js +110 -0
  21. package/src/commands/directory.js +47 -0
  22. package/src/commands/dns.js +58 -0
  23. package/src/commands/docs.js +43 -0
  24. package/src/commands/doctor.js +121 -16
  25. package/src/commands/exec-policy.js +71 -0
  26. package/src/commands/gateway-server.js +1175 -30
  27. package/src/commands/gateway.js +11 -20
  28. package/src/commands/health.js +18 -0
  29. package/src/commands/help.js +6 -0
  30. package/src/commands/imessage.js +169 -0
  31. package/src/commands/infer.js +73 -0
  32. package/src/commands/irc.js +119 -0
  33. package/src/commands/mattermost.js +164 -0
  34. package/src/commands/memory-cmd.js +134 -1
  35. package/src/commands/message.js +30 -4
  36. package/src/commands/migrate.js +213 -2
  37. package/src/commands/models.js +584 -216
  38. package/src/commands/node.js +98 -0
  39. package/src/commands/nodes.js +106 -0
  40. package/src/commands/oc-path.js +200 -0
  41. package/src/commands/onboard.js +70 -0
  42. package/src/commands/open-prose.js +67 -0
  43. package/src/commands/plugins.js +415 -172
  44. package/src/commands/policy.js +176 -0
  45. package/src/commands/proxy.js +155 -0
  46. package/src/commands/qr.js +28 -0
  47. package/src/commands/sandbox.js +125 -0
  48. package/src/commands/secrets.js +118 -0
  49. package/src/commands/security.js +149 -1
  50. package/src/commands/setup.js +114 -10
  51. package/src/commands/signal.js +495 -0
  52. package/src/commands/skills.js +20 -29
  53. package/src/commands/sms.js +168 -0
  54. package/src/commands/system.js +53 -0
  55. package/src/commands/tasks.js +328 -79
  56. package/src/commands/terminal.js +21 -0
  57. package/src/commands/thread-ownership.js +157 -0
  58. package/src/commands/transcripts.js +72 -0
  59. package/src/commands/voice.js +82 -0
  60. package/src/commands/vydra.js +98 -0
  61. package/src/commands/webhooks.js +79 -0
  62. package/src/commands/whatsapp.js +7 -21
  63. package/src/commands/workboard.js +207 -0
  64. package/src/tools/audio_understanding.js +154 -0
  65. package/src/tools/bash.js +63 -29
  66. package/src/tools/browser.js +112 -0
  67. package/src/tools/canvas.js +104 -0
  68. package/src/tools/document_extract.js +84 -0
  69. package/src/tools/duckduckgo.js +54 -0
  70. package/src/tools/exa_search.js +66 -0
  71. package/src/tools/firecrawl.js +104 -0
  72. package/src/tools/image_generation.js +99 -0
  73. package/src/tools/llm_task.js +118 -0
  74. package/src/tools/media_understanding.js +128 -0
  75. package/src/tools/music_generation.js +113 -0
  76. package/src/tools/parallel_search.js +77 -0
  77. package/src/tools/phone_control.js +80 -0
  78. package/src/tools/phone_control_enhanced.js +184 -0
  79. package/src/tools/searxng.js +61 -0
  80. package/src/tools/speech_to_text.js +135 -0
  81. package/src/tools/text_to_speech.js +105 -0
  82. package/src/tools/thread_ownership.js +88 -0
  83. package/src/tools/video_generation.js +72 -0
  84. package/src/tools/web_readability.js +104 -0
  85. package/src/utils/api.js +3 -20
  86. package/src/utils/approvals.js +297 -0
  87. package/src/utils/background.js +223 -66
  88. package/src/utils/baileys.js +21 -0
  89. package/src/utils/config.js +141 -10
  90. package/src/utils/errors.js +148 -0
  91. package/src/utils/inquirer-wrapper.js +1 -2
  92. package/src/utils/memory.js +200 -0
  93. package/src/utils/path-utils.js +13 -13
  94. package/src/utils/plugin-registry.js +238 -0
  95. package/src/utils/secrets.js +177 -0
  96. package/src/utils/skills.js +10 -23
package/bin/natureco.js CHANGED
@@ -13,6 +13,50 @@ const init = require('../src/commands/init');
13
13
  const config = require('../src/commands/config');
14
14
  const ask = require('../src/commands/ask');
15
15
  const run = require('../src/commands/run');
16
+ const signal = require('../src/commands/signal');
17
+ const irc = require('../src/commands/irc');
18
+ const mattermost = require('../src/commands/mattermost');
19
+ const imessage = require('../src/commands/imessage');
20
+ const sms = require('../src/commands/sms');
21
+ const webhooks = require('../src/commands/webhooks');
22
+ const bonjour = require('../src/commands/bonjour');
23
+ const policy = require('../src/commands/policy');
24
+ const voice = require('../src/commands/voice');
25
+ const clickclack = require('../src/commands/clickclack');
26
+ const adminRpc = require('../src/commands/admin-rpc');
27
+ const ocPath = require('../src/commands/oc-path');
28
+ const workboard = require('../src/commands/workboard');
29
+ const threadOwnership = require('../src/commands/thread-ownership');
30
+ const devicePair = require('../src/commands/device-pair');
31
+ const openProse = require('../src/commands/open-prose');
32
+ const vydra = require('../src/commands/vydra');
33
+ // OpenClaw uyumlu komutlar
34
+ const agent = require('../src/commands/agent');
35
+ const approvals = require('../src/commands/approvals');
36
+ const backup = require('../src/commands/backup');
37
+ const capability = require('../src/commands/capability');
38
+ const commitments = require('../src/commands/commitments');
39
+ const completion = require('../src/commands/completion');
40
+ const configure = require('../src/commands/configure');
41
+ const crestodian = require('../src/commands/crestodian');
42
+ const daemon = require('../src/commands/daemon');
43
+ const devices = require('../src/commands/devices');
44
+ const directory = require('../src/commands/directory');
45
+ const dns = require('../src/commands/dns');
46
+ const docs = require('../src/commands/docs');
47
+ const execPolicy = require('../src/commands/exec-policy');
48
+ const health = require('../src/commands/health');
49
+ const infer = require('../src/commands/infer');
50
+ const node = require('../src/commands/node');
51
+ const nodes = require('../src/commands/nodes');
52
+ const onboard = require('../src/commands/onboard');
53
+ const proxy = require('../src/commands/proxy');
54
+ const qr = require('../src/commands/qr');
55
+ const sandbox = require('../src/commands/sandbox');
56
+ const secrets = require('../src/commands/secrets');
57
+ const system = require('../src/commands/system');
58
+ const terminal = require('../src/commands/terminal');
59
+ const transcripts = require('../src/commands/transcripts');
16
60
 
17
61
  const program = new Command();
18
62
 
@@ -28,23 +72,36 @@ ${chalk.yellow('🤖 AI & Chat')}
28
72
  ${chalk.cyan('ask')} Tek soru sor
29
73
  ${chalk.cyan('run')} Markdown script çalıştır
30
74
  ${chalk.cyan('bots')} Bot listesi
75
+ ${chalk.cyan('agent')} One-shot agent task (run|abort|tail|logs)
76
+ ${chalk.cyan('commitments')} Eylem taahhütlerini yönet
77
+ ${chalk.cyan('infer')} Yetenek/algılama sorgula (models|media|capabilities)
31
78
 
32
79
  ${chalk.yellow('⚙️ Kurulum & Ayarlar')}
33
80
  ${chalk.cyan('setup')} İlk kurulum sihirbazı
34
81
  ${chalk.cyan('login')} API key ile giriş
35
82
  ${chalk.cyan('logout')} Çıkış
36
83
  ${chalk.cyan('config')} Ayarları yönet
84
+ ${chalk.cyan('configure')} Interaktif yapılandırma
37
85
  ${chalk.cyan('doctor')} Sistem sağlık kontrolü
38
86
  ${chalk.cyan('update')} Güncelleme kontrol
87
+ ${chalk.cyan('init')} Proje başlatma
88
+ ${chalk.cyan('completion')} Shell completion (bash|zsh|fish|powershell)
39
89
 
40
90
  ${chalk.yellow('🔌 Entegrasyonlar')}
41
91
  ${chalk.cyan('telegram')} Telegram bağlantısı
42
92
  ${chalk.cyan('whatsapp')} WhatsApp bağlantısı
43
93
  ${chalk.cyan('discord')} Discord bağlantısı
44
94
  ${chalk.cyan('slack')} Slack bağlantısı
95
+ ${chalk.cyan('signal')} Signal bağlantısı
96
+ ${chalk.cyan('irc')} IRC bağlantısı
97
+ ${chalk.cyan('mattermost')} Mattermost bağlantısı
98
+ ${chalk.cyan('imessage')} iMessage bağlantısı
99
+ ${chalk.cyan('sms')} SMS (Twilio) bağlantısı
100
+ ${chalk.cyan('webhooks')} Webhook yönetimi
45
101
  ${chalk.cyan('gateway')} WebSocket gateway
102
+ ${chalk.cyan('gateway-server')} Gateway daemon (start|stop|status)
46
103
 
47
- ${chalk.yellow('🛠️ Geliştirici Araçları')}
104
+ ${chalk.yellow('💻 Geliştirici Araçları')}
48
105
  ${chalk.cyan('git')} Git entegrasyonu
49
106
  ${chalk.cyan('skills')} Skill yönetimi
50
107
  ${chalk.cyan('mcp')} MCP sunucuları
@@ -52,8 +109,9 @@ ${chalk.yellow('🛠️ Geliştirici Araçları')}
52
109
  ${chalk.cyan('cron')} Zamanlanmış görevler
53
110
  ${chalk.cyan('sessions')} Oturum yönetimi
54
111
  ${chalk.cyan('ultrareview')} Detaylı kod inceleme
112
+ ${chalk.cyan('transcripts')} Transcript yönetimi (list|show|delete)
55
113
 
56
- ${chalk.yellow('📊 Yönetim')}
114
+ ${chalk.yellow('📊 Yönetim & Sistem')}
57
115
  ${chalk.cyan('dashboard')} Web kontrol paneli
58
116
  ${chalk.cyan('memory')} Hafıza yönetimi
59
117
  ${chalk.cyan('logs')} Gateway logları
@@ -62,12 +120,53 @@ ${chalk.yellow('📊 Yönetim')}
62
120
  ${chalk.cyan('plugins')} Plugin yönetimi
63
121
  ${chalk.cyan('security')} Güvenlik denetimi
64
122
  ${chalk.cyan('reset')} Sıfırlama
123
+ ${chalk.cyan('system')} Sistem durumu/heartbeat/presence (status|heartbeat|presence)
124
+ ${chalk.cyan('health')} Servis sağlık kontrolü
125
+ ${chalk.cyan('backup')} Yedekleme (create|list|restore|verify)
126
+ ${chalk.cyan('secrets')} Gizli değer yönetimi (list|set|get|audit)
127
+ ${chalk.cyan('approvals')} Exec onay politikası (list|allow|deny|status)
128
+ ${chalk.cyan('exec-policy')} Exec politika yönetimi
129
+ ${chalk.cyan('workboard')} Görev/pano yönetimi
130
+
131
+ ${chalk.yellow('🛰️ Ağ & Cihaz')}
132
+ ${chalk.cyan('bonjour')} Ağ keşfi ve servis tarama
133
+ ${chalk.cyan('dns')} Ağ keşfi — DNS (discover|resolve)
134
+ ${chalk.cyan('directory')} Dizin sorgulama (query)
135
+ ${chalk.cyan('policy')} Workspace uyumluluk politikası
136
+ ${chalk.cyan('voice')} Sesli sohbet yapılandırması
137
+ ${chalk.cyan('clickclack')} Bildirim/beep kanalı
138
+ ${chalk.cyan('admin-rpc')} HTTP admin RPC endpoint
139
+ ${chalk.cyan('oc-path')} nc:// URI path handler
140
+ ${chalk.cyan('thread-ownership')} Slack thread koordinasyonu
141
+ ${chalk.cyan('device-pair')} Cihaz eşleştirme (QR kod)
142
+ ${chalk.cyan('devices')} Cihaz yönetimi (pair|unpair|list|token)
143
+ ${chalk.cyan('qr')} QR kod ile eşleştirme
144
+ ${chalk.cyan('onboard')} Interaktif onboarding sihirbazı
145
+
146
+ ${chalk.yellow('🔧 Altyapı')}
147
+ ${chalk.cyan('daemon')} Gateway daemon (status|start|stop|restart)
148
+ ${chalk.cyan('node')} Node host (status|start|stop|info)
149
+ ${chalk.cyan('nodes')} Node network yönetimi (list|pair|approve|reject|remove|rename)
150
+ ${chalk.cyan('proxy')} Debug proxy (status|start|stop)
151
+ ${chalk.cyan('sandbox')} Sandbox container yönetimi (list|create|destroy)
152
+ ${chalk.cyan('capability')} Yetenek sorgulama (list|infer)
153
+
154
+ ${chalk.yellow('📦 Medya & İçerik')}
155
+ ${chalk.cyan('open-prose')} Prose skills bundle
156
+ ${chalk.cyan('vydra')} Vydra medya sağlayıcı
157
+ ${chalk.cyan('docs')} Dokümantasyon arama (search|open)
158
+
159
+ ${chalk.yellow('🔗 Takma Adlar (OpenClaw uyumlu)')}
160
+ ${chalk.cyan('acp')} = code ${chalk.cyan('exec-policy')} = policy
161
+ ${chalk.cyan('dns')} = bonjour ${chalk.cyan('devices')} = device-pair
65
162
 
66
163
  ${chalk.yellow('Örnekler:')}
67
164
  ${chalk.gray('$ natureco setup')} İlk kurulum
68
165
  ${chalk.gray('$ natureco chat')} Sohbet başlat
69
166
  ${chalk.gray('$ natureco code')} Code agent
70
167
  ${chalk.gray('$ natureco doctor')} Sistem kontrolü
168
+ ${chalk.gray('$ natureco agent run "dosya oku"')} One-shot agent
169
+ ${chalk.gray('$ natureco completion bash')} Shell completion
71
170
  `);
72
171
 
73
172
  program
@@ -123,7 +222,7 @@ program
123
222
 
124
223
  program
125
224
  .command('config <action> [key] [value...]')
126
- .description('Manage configuration (get|set|list)')
225
+ .description('Manage configuration (get|set|list|backups|restore)')
127
226
  .action((action, key, value) => config([action, key, ...(value || [])]));
128
227
 
129
228
  program
@@ -162,8 +261,8 @@ program
162
261
 
163
262
  program
164
263
  .command('migrate')
165
- .description('Migrate from other CLI tools')
166
- .option('--from <source>', 'Source CLI (openclaw)')
264
+ .description('Migrate from other CLI tools (openclaw, claude-code, hermes)')
265
+ .option('--from <source>', 'Source CLI (openclaw, claude-code, hermes)', 'openclaw')
167
266
  .option('--openclaw-dir <path>', 'OpenClaw directory path (default: ~/.openclaw)')
168
267
  .action((options) => {
169
268
  const migrateCmd = require('../src/commands/migrate');
@@ -232,10 +331,10 @@ program
232
331
 
233
332
  program
234
333
  .command('tasks [action] [params...]')
235
- .description('Manage background tasks (list|show)')
334
+ .description('Manage background tasks (list|show|cancel|audit|maintenance|flow|summary)')
236
335
  .action((action, params) => {
237
336
  const tasksCmd = require('../src/commands/tasks');
238
- tasksCmd(action, ...(params || []));
337
+ tasksCmd([action, ...(params || [])]);
239
338
  });
240
339
 
241
340
  program
@@ -286,6 +385,54 @@ program
286
385
  telegramCmd(action, chatId);
287
386
  });
288
387
 
388
+ program
389
+ .command('signal <action>')
390
+ .description('Signal integration (connect|disconnect|status)')
391
+ .action((action) => {
392
+ const signalCmd = require('../src/commands/signal');
393
+ signalCmd(action);
394
+ });
395
+
396
+ program
397
+ .command('irc <action>')
398
+ .description('IRC integration (connect|disconnect|status)')
399
+ .action((action) => {
400
+ const ircCmd = require('../src/commands/irc');
401
+ ircCmd(action);
402
+ });
403
+
404
+ program
405
+ .command('mattermost <action>')
406
+ .description('Mattermost integration (connect|disconnect|status)')
407
+ .action((action) => {
408
+ const mattermostCmd = require('../src/commands/mattermost');
409
+ mattermostCmd(action);
410
+ });
411
+
412
+ program
413
+ .command('imessage <action>')
414
+ .description('iMessage integration (connect|disconnect|status)')
415
+ .action((action) => {
416
+ const imessageCmd = require('../src/commands/imessage');
417
+ imessageCmd(action);
418
+ });
419
+
420
+ program
421
+ .command('sms <action>')
422
+ .description('SMS/Twilio integration (connect|disconnect|status)')
423
+ .action((action) => {
424
+ const smsCmd = require('../src/commands/sms');
425
+ smsCmd(action);
426
+ });
427
+
428
+ program
429
+ .command('webhooks <action>')
430
+ .description('Webhook management (connect|disconnect|status|list)')
431
+ .action((action) => {
432
+ const webhooksCmd = require('../src/commands/webhooks');
433
+ webhooksCmd(action);
434
+ });
435
+
289
436
  program
290
437
  .command('message <action>')
291
438
  .description('Send messages directly (send)')
@@ -330,12 +477,106 @@ program
330
477
  channelsCmd([action, ...(params || [])]);
331
478
  });
332
479
 
480
+ program
481
+ .command('bonjour [action]')
482
+ .description('Network discovery (scan|discover|status) — find NatureCo services on LAN')
483
+ .action((action) => {
484
+ const bonjourCmd = require('../src/commands/bonjour');
485
+ const args = process.argv.slice(3);
486
+ bonjourCmd(args);
487
+ });
488
+
489
+ program
490
+ .command('policy [action]')
491
+ .description('Workspace policy checks (check|set|list|remove)')
492
+ .action((action) => {
493
+ const policyCmd = require('../src/commands/policy');
494
+ const args = process.argv.slice(3);
495
+ policyCmd(args);
496
+ });
497
+
498
+ program
499
+ .command('voice [action]')
500
+ .description('Voice configuration (status|providers|set) — manage TTS voice settings')
501
+ .action((action) => {
502
+ const voiceCmd = require('../src/commands/voice');
503
+ const args = process.argv.slice(3);
504
+ voiceCmd(args);
505
+ });
506
+
507
+ program
508
+ .command('clickclack [action]')
509
+ .description('ClickClack notification channel (status|test|enable|disable|listen|notify)')
510
+ .action((action) => {
511
+ const clickclackCmd = require('../src/commands/clickclack');
512
+ const args = process.argv.slice(3);
513
+ clickclackCmd(args);
514
+ });
515
+
516
+ program
517
+ .command('admin-rpc [action]')
518
+ .description('Admin HTTP RPC server (status|start|stop|call|methods)')
519
+ .action((action) => {
520
+ const args = process.argv.slice(3);
521
+ adminRpc(args);
522
+ });
523
+
524
+ program
525
+ .command('oc-path [action]')
526
+ .description('nc:// URI path handler (resolve|list|cat|ls)')
527
+ .action((action) => {
528
+ const args = process.argv.slice(3);
529
+ ocPath(args);
530
+ });
531
+
532
+ program
533
+ .command('workboard [action]')
534
+ .description('Work board (show|add|move|remove|clear|columns|export|import)')
535
+ .action((action) => {
536
+ const args = process.argv.slice(3);
537
+ workboard(args);
538
+ });
539
+
540
+ program
541
+ .command('thread-ownership [action]')
542
+ .description('Thread ownership (status|list|assign|release|check|agent)')
543
+ .action((action) => {
544
+ const args = process.argv.slice(3);
545
+ threadOwnership(args);
546
+ });
547
+
548
+ program
549
+ .command('device-pair [action]')
550
+ .description('Device pairing (list|request|approve|reject|remove|pairing-code|verify)')
551
+ .action((action) => {
552
+ const args = process.argv.slice(3);
553
+ devicePair(args);
554
+ });
555
+
556
+ program
557
+ .command('open-prose [action]')
558
+ .description('OpenProse skills bundle (list|info)')
559
+ .action((action) => {
560
+ const args = process.argv.slice(3);
561
+ openProse(args);
562
+ });
563
+
564
+ program
565
+ .command('vydra [action]')
566
+ .description('Vydra media provider (status|configure|test)')
567
+ .action((action) => {
568
+ const args = process.argv.slice(3);
569
+ vydra(args);
570
+ });
571
+
333
572
  program
334
573
  .command('models [action] [params...]')
335
- .description('Manage AI models (list|set|scan|aliases)')
574
+ .description('Manage AI models (list|set|scan|aliases|fallbacks)')
575
+ .allowUnknownOption()
336
576
  .action((action, params) => {
337
577
  const modelsCmd = require('../src/commands/models');
338
- modelsCmd([action, ...(params || [])]);
578
+ const allArgs = process.argv.slice(process.argv.indexOf('models') + 1);
579
+ modelsCmd(allArgs);
339
580
  });
340
581
 
341
582
  program
@@ -396,7 +637,7 @@ program
396
637
 
397
638
  program
398
639
  .command('plugins [action] [params...]')
399
- .description('Manage plugins (list|install|enable|disable|info|doctor)')
640
+ .description('Manage plugins (list|install|uninstall|enable|disable|info|update|search|doctor|registry)')
400
641
  .action((action, params) => {
401
642
  const pluginsCmd = require('../src/commands/plugins');
402
643
  pluginsCmd([action, ...(params || [])]);
@@ -421,6 +662,225 @@ program
421
662
  uninstallCmd(process.argv.slice(3));
422
663
  });
423
664
 
665
+ // === OpenClaw uyumlu komutlar ===
666
+
667
+ program
668
+ .command('agent <action>')
669
+ .description('One-shot agent task (run|abort|tail|logs)')
670
+ .action((action) => {
671
+ const args = process.argv.slice(3);
672
+ agent([action, ...args]);
673
+ });
674
+
675
+ program
676
+ .command('approvals <action>')
677
+ .description('Exec approval policy (list|allow|deny|status)')
678
+ .action((action) => {
679
+ const args = process.argv.slice(3);
680
+ approvals([action, ...args]);
681
+ });
682
+
683
+ program
684
+ .command('backup <action>')
685
+ .description('Backup management (create|list|restore|verify)')
686
+ .action((action) => {
687
+ const args = process.argv.slice(3);
688
+ backup([action, ...args]);
689
+ });
690
+
691
+ program
692
+ .command('capability [action]')
693
+ .description('Query agent capabilities (list|infer)')
694
+ .action((action) => {
695
+ const args = process.argv.slice(3);
696
+ capability(args);
697
+ });
698
+
699
+ program
700
+ .command('commitments <action>')
701
+ .description('Manage action commitments (list|add|check|resolve|summary|pending|done)')
702
+ .action((action) => {
703
+ const args = process.argv.slice(3);
704
+ commitments([action, ...args]);
705
+ });
706
+
707
+ program
708
+ .command('completion <shell>')
709
+ .description('Generate shell completion script (bash|zsh|fish|powershell)')
710
+ .action((shell) => {
711
+ completion(shell);
712
+ });
713
+
714
+ program
715
+ .command('configure')
716
+ .description('Interactive configuration wizard')
717
+ .action(() => {
718
+ configure(process.argv.slice(3));
719
+ });
720
+
721
+ program
722
+ .command('crestodian [action]')
723
+ .description('Crestodian repair assistant (repair|analyze|plan)')
724
+ .action((action) => {
725
+ const args = process.argv.slice(3);
726
+ crestodian(args);
727
+ });
728
+
729
+ program
730
+ .command('daemon <action>')
731
+ .description('Gateway daemon management (status|start|stop|restart)')
732
+ .action((action) => {
733
+ const args = process.argv.slice(3);
734
+ daemon([action, ...args]);
735
+ });
736
+
737
+ program
738
+ .command('devices <action>')
739
+ .description('Device management (pair|unpair|list|token)')
740
+ .option('--id <id>', 'Device ID')
741
+ .option('--name <name>', 'Device name')
742
+ .action((action, options) => {
743
+ const args = process.argv.slice(3);
744
+ devices(args);
745
+ });
746
+
747
+ program
748
+ .command('directory <action>')
749
+ .description('Directory query (query|search)')
750
+ .action((action) => {
751
+ const args = process.argv.slice(3);
752
+ directory(args);
753
+ });
754
+
755
+ program
756
+ .command('dns <action>')
757
+ .description('Network DNS discovery (discover|resolve)')
758
+ .action((action) => {
759
+ const args = process.argv.slice(3);
760
+ dns(args);
761
+ });
762
+
763
+ program
764
+ .command('docs <action>')
765
+ .description('Documentation search (search|open)')
766
+ .action((action) => {
767
+ const args = process.argv.slice(3);
768
+ docs(args);
769
+ });
770
+
771
+ program
772
+ .command('exec-policy <action>')
773
+ .description('Exec policy management (list|check|set|remove)')
774
+ .action((action) => {
775
+ const args = process.argv.slice(3);
776
+ execPolicy(args);
777
+ });
778
+
779
+ program
780
+ .command('health [action]')
781
+ .description('Service health check')
782
+ .action((action) => {
783
+ const args = process.argv.slice(3);
784
+ health(args);
785
+ });
786
+
787
+ program
788
+ .command('infer <action>')
789
+ .description('Infer capabilities/models/media (models|media|capabilities)')
790
+ .action((action) => {
791
+ const args = process.argv.slice(3);
792
+ infer([action, ...args]);
793
+ });
794
+
795
+ program
796
+ .command('node <action>')
797
+ .description('Node host management (status|start|stop|info)')
798
+ .action((action) => {
799
+ const args = process.argv.slice(3);
800
+ node([action, ...args]);
801
+ });
802
+
803
+ program
804
+ .command('nodes <action>')
805
+ .description('Node network management (list|pair|approve|reject|remove|rename)')
806
+ .action((action) => {
807
+ const args = process.argv.slice(3);
808
+ nodes([action, ...args]);
809
+ });
810
+
811
+ program
812
+ .command('onboard')
813
+ .description('Interactive onboarding wizard')
814
+ .action(() => {
815
+ onboard(process.argv.slice(3));
816
+ });
817
+
818
+ program
819
+ .command('proxy <action>')
820
+ .description('Debug proxy server (status|start|stop)')
821
+ .action((action) => {
822
+ const args = process.argv.slice(3);
823
+ proxy([action, ...args]);
824
+ });
825
+
826
+ program
827
+ .command('qr [action]')
828
+ .description('QR code pairing (show|generate|verify)')
829
+ .action((action) => {
830
+ const args = process.argv.slice(3);
831
+ qr(args);
832
+ });
833
+
834
+ program
835
+ .command('sandbox <action>')
836
+ .description('Sandbox container management (list|create|destroy)')
837
+ .action((action) => {
838
+ const args = process.argv.slice(3);
839
+ sandbox([action, ...args]);
840
+ });
841
+
842
+ program
843
+ .command('secrets [action]')
844
+ .description('Secret value management (list|set|get|audit)')
845
+ .action((action) => {
846
+ const args = process.argv.slice(3);
847
+ secrets(args);
848
+ });
849
+
850
+ program
851
+ .command('system <action>')
852
+ .description('System status/heartbeat/presence (status|heartbeat|presence)')
853
+ .action((action) => {
854
+ const args = process.argv.slice(3);
855
+ system([action, ...args]);
856
+ });
857
+
858
+ program
859
+ .command('terminal <action>')
860
+ .description('Terminal session management (exec|connect|disconnect|list)')
861
+ .action((action) => {
862
+ const args = process.argv.slice(3);
863
+ terminal([action, ...args]);
864
+ });
865
+
866
+ program
867
+ .command('transcripts [action]')
868
+ .description('Transcript management (list|show|delete)')
869
+ .action((action) => {
870
+ const args = process.argv.slice(3);
871
+ transcripts(args);
872
+ });
873
+
874
+ // === OpenClaw uyumlu alias komutlar ===
875
+
876
+ program
877
+ .command('acp [file]')
878
+ .description('Alias for code command')
879
+ .action((file) => {
880
+ const codeCmd = require('../src/commands/code');
881
+ codeCmd(file, { dir: process.cwd() });
882
+ });
883
+
424
884
  program
425
885
  .command('help')
426
886
  .description('Show help information')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "natureco-cli",
3
- "version": "2.23.28",
3
+ "version": "2.23.30",
4
4
  "description": "NatureCo AI Bot Terminal Interface",
5
5
  "bin": {
6
6
  "natureco": "bin/natureco.js"
@@ -11,7 +11,10 @@
11
11
  "skills/"
12
12
  ],
13
13
  "scripts": {
14
- "test": "node bin/natureco.js help"
14
+ "test": "node bin/natureco.js help",
15
+ "test:unit": "vitest run",
16
+ "test:watch": "vitest watch",
17
+ "test:coverage": "vitest run --coverage"
15
18
  },
16
19
  "keywords": [
17
20
  "natureco",
@@ -27,17 +30,18 @@
27
30
  "@whiskeysockets/baileys": "^7.0.0-rc10",
28
31
  "chalk": "^4.1.2",
29
32
  "commander": "^11.1.0",
30
- "inquirer": "^13.4.3",
33
+ "json5": "^2.2.3",
31
34
  "node-cron": "^4.2.1",
32
35
  "node-telegram-bot-api": "^0.67.0",
33
- "ora": "^9.4.0",
34
36
  "pino": "^8.21.0",
35
37
  "qrcode-terminal": "^0.12.0",
36
38
  "semver": "^7.8.1",
37
39
  "ws": "^8.20.0"
38
40
  },
39
41
  "engines": {
40
- "node": ">=16.0.0"
42
+ "node": ">=18.0.0"
41
43
  },
42
- "//": "TODO: form-data güvenlik açığı — node-telegram-bot-api güncelleme gerektirir"
44
+ "devDependencies": {
45
+ "vitest": "^4.1.9"
46
+ }
43
47
  }