bashbros 0.1.3 → 0.1.5

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 (79) hide show
  1. package/README.md +734 -271
  2. package/dist/adapters-JAZGGNVP.js +9 -0
  3. package/dist/chunk-25TREQ6V.js +465 -0
  4. package/dist/chunk-25TREQ6V.js.map +1 -0
  5. package/dist/{chunk-A535VV7N.js → chunk-2CI2MRKI.js} +23 -6
  6. package/dist/chunk-2CI2MRKI.js.map +1 -0
  7. package/dist/chunk-4XZ64P4V.js +47 -0
  8. package/dist/chunk-4XZ64P4V.js.map +1 -0
  9. package/dist/chunk-5BBPRDWL.js +186 -0
  10. package/dist/chunk-5BBPRDWL.js.map +1 -0
  11. package/dist/{chunk-2RPTM6EQ.js → chunk-6QVMBCSX.js} +719 -902
  12. package/dist/chunk-6QVMBCSX.js.map +1 -0
  13. package/dist/{chunk-JYWQT2B4.js → chunk-6SLR5WPD.js} +657 -14
  14. package/dist/chunk-6SLR5WPD.js.map +1 -0
  15. package/dist/{chunk-EYO44OMN.js → chunk-AZVT6AZY.js} +78 -17
  16. package/dist/chunk-AZVT6AZY.js.map +1 -0
  17. package/dist/{chunk-WPJJZLT6.js → chunk-C4GZNBFF.js} +3 -2
  18. package/dist/chunk-C4GZNBFF.js.map +1 -0
  19. package/dist/chunk-IUUBCPMV.js +166 -0
  20. package/dist/chunk-IUUBCPMV.js.map +1 -0
  21. package/dist/chunk-J6ONXY6N.js +146 -0
  22. package/dist/chunk-J6ONXY6N.js.map +1 -0
  23. package/dist/{chunk-DLP2O6PN.js → chunk-JOIAG54E.js} +83 -88
  24. package/dist/chunk-JOIAG54E.js.map +1 -0
  25. package/dist/chunk-LJE4EPIU.js +56 -0
  26. package/dist/chunk-LJE4EPIU.js.map +1 -0
  27. package/dist/{chunk-QWZGB4V3.js → chunk-PAZIDRXK.js} +42 -181
  28. package/dist/chunk-PAZIDRXK.js.map +1 -0
  29. package/dist/chunk-PLSHJHHR.js +293 -0
  30. package/dist/chunk-PLSHJHHR.js.map +1 -0
  31. package/dist/chunk-R5I5DEXE.js +228 -0
  32. package/dist/chunk-R5I5DEXE.js.map +1 -0
  33. package/dist/chunk-SDN6TAGD.js +157 -0
  34. package/dist/chunk-SDN6TAGD.js.map +1 -0
  35. package/dist/chunk-T5ONCUHZ.js +198 -0
  36. package/dist/chunk-T5ONCUHZ.js.map +1 -0
  37. package/dist/cli.js +1204 -188
  38. package/dist/cli.js.map +1 -1
  39. package/dist/{config-43SK6SFI.js → config-IXBXMIUA.js} +2 -2
  40. package/dist/copilot-cli-5WJWK5YT.js +9 -0
  41. package/dist/{db-SWJUUSFX.js → db-GJALN3R7.js} +2 -2
  42. package/dist/db-checks-2YOVECD4.js +133 -0
  43. package/dist/db-checks-2YOVECD4.js.map +1 -0
  44. package/dist/{display-HFIFXOOL.js → display-UDIACHTP.js} +3 -3
  45. package/dist/{engine-EGPAS2EX.js → engine-4WNPXVMS.js} +3 -2
  46. package/dist/gemini-cli-3563EELZ.js +9 -0
  47. package/dist/gemini-cli-3563EELZ.js.map +1 -0
  48. package/dist/index.d.ts +205 -101
  49. package/dist/index.js +132 -402
  50. package/dist/index.js.map +1 -1
  51. package/dist/{ollama-HY35OHW4.js → ollama-TNMD5WHW.js} +2 -2
  52. package/dist/ollama-TNMD5WHW.js.map +1 -0
  53. package/dist/opencode-DRCY275R.js +9 -0
  54. package/dist/opencode-DRCY275R.js.map +1 -0
  55. package/dist/profiles-7CLN6TAT.js +9 -0
  56. package/dist/profiles-7CLN6TAT.js.map +1 -0
  57. package/dist/server-3CMTP4W4.js +13 -0
  58. package/dist/server-3CMTP4W4.js.map +1 -0
  59. package/dist/setup-U4R5QJMV.js +124 -0
  60. package/dist/setup-U4R5QJMV.js.map +1 -0
  61. package/dist/static/index.html +4862 -2007
  62. package/dist/store-WJ5Y7MOE.js +9 -0
  63. package/dist/store-WJ5Y7MOE.js.map +1 -0
  64. package/dist/{writer-4ZEAKUFD.js → writer-OMHUMJR5.js} +3 -3
  65. package/dist/writer-OMHUMJR5.js.map +1 -0
  66. package/package.json +78 -68
  67. package/dist/chunk-2RPTM6EQ.js.map +0 -1
  68. package/dist/chunk-A535VV7N.js.map +0 -1
  69. package/dist/chunk-DLP2O6PN.js.map +0 -1
  70. package/dist/chunk-EYO44OMN.js.map +0 -1
  71. package/dist/chunk-JYWQT2B4.js.map +0 -1
  72. package/dist/chunk-QWZGB4V3.js.map +0 -1
  73. package/dist/chunk-WPJJZLT6.js.map +0 -1
  74. /package/dist/{config-43SK6SFI.js.map → adapters-JAZGGNVP.js.map} +0 -0
  75. /package/dist/{db-SWJUUSFX.js.map → config-IXBXMIUA.js.map} +0 -0
  76. /package/dist/{display-HFIFXOOL.js.map → copilot-cli-5WJWK5YT.js.map} +0 -0
  77. /package/dist/{engine-EGPAS2EX.js.map → db-GJALN3R7.js.map} +0 -0
  78. /package/dist/{ollama-HY35OHW4.js.map → display-UDIACHTP.js.map} +0 -0
  79. /package/dist/{writer-4ZEAKUFD.js.map → engine-4WNPXVMS.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -15,8 +15,9 @@ interface BashBrosConfig {
15
15
  undo: UndoPolicy;
16
16
  ward: WardPolicy;
17
17
  dashboard: DashboardPolicy;
18
+ sessionStart: SessionStartConfig;
18
19
  }
19
- type AgentType = 'claude-code' | 'clawdbot' | 'moltbot' | 'gemini-cli' | 'aider' | 'opencode' | 'custom';
20
+ type AgentType = 'claude-code' | 'clawdbot' | 'moltbot' | 'gemini-cli' | 'copilot-cli' | 'aider' | 'opencode' | 'custom';
20
21
  interface MoltbotGatewayInfo {
21
22
  port: number;
22
23
  host: string;
@@ -117,9 +118,11 @@ interface CommandResult {
117
118
  violations: PolicyViolation[];
118
119
  }
119
120
  interface PolicyViolation {
120
- type: 'command' | 'path' | 'secrets' | 'rate_limit';
121
+ type: 'command' | 'path' | 'secrets' | 'rate_limit' | 'risk_score' | 'loop' | 'anomaly' | 'output';
121
122
  rule: string;
122
123
  message: string;
124
+ remediation?: string[];
125
+ severity?: 'low' | 'medium' | 'high' | 'critical';
123
126
  }
124
127
  interface AuditEntry {
125
128
  timestamp: Date;
@@ -156,6 +159,12 @@ interface DashboardPolicy {
156
159
  port: number;
157
160
  bind: string;
158
161
  }
162
+ interface SessionStartConfig {
163
+ enabled: boolean;
164
+ collectMetadata: boolean;
165
+ ollamaStatus: boolean;
166
+ preloadContext: boolean;
167
+ }
159
168
 
160
169
  declare class BashBros extends EventEmitter {
161
170
  private config;
@@ -311,6 +320,105 @@ declare class SystemProfiler {
311
320
  toContext(): string;
312
321
  }
313
322
 
323
+ /**
324
+ * Simple Ollama client for local model inference.
325
+ * Keeps it minimal - just what we need for Bash Bro.
326
+ */
327
+ interface OllamaConfig {
328
+ host: string;
329
+ model: string;
330
+ timeout: number;
331
+ }
332
+ interface ChatMessage {
333
+ role: 'system' | 'user' | 'assistant';
334
+ content: string;
335
+ }
336
+ interface ModelInfo {
337
+ modelfile: string;
338
+ parameters: string;
339
+ template: string;
340
+ details: {
341
+ parent_model: string;
342
+ format: string;
343
+ family: string;
344
+ families: string[];
345
+ parameter_size: string;
346
+ quantization_level: string;
347
+ };
348
+ }
349
+ interface RunningModel {
350
+ name: string;
351
+ model: string;
352
+ size: number;
353
+ size_vram: number;
354
+ digest: string;
355
+ details: {
356
+ family: string;
357
+ parameter_size: string;
358
+ quantization_level: string;
359
+ };
360
+ expires_at: string;
361
+ }
362
+ declare class OllamaClient {
363
+ private config;
364
+ constructor(config?: Partial<OllamaConfig>);
365
+ /**
366
+ * Check if Ollama is running and accessible
367
+ */
368
+ isAvailable(): Promise<boolean>;
369
+ /**
370
+ * List available models
371
+ */
372
+ listModels(): Promise<string[]>;
373
+ /**
374
+ * Generate a response from the model
375
+ */
376
+ generate(prompt: string, systemPrompt?: string): Promise<string>;
377
+ /**
378
+ * Chat with the model (multi-turn conversation)
379
+ */
380
+ chat(messages: ChatMessage[]): Promise<string>;
381
+ /**
382
+ * Ask Bash Bro to suggest a command
383
+ */
384
+ suggestCommand(context: string): Promise<string | null>;
385
+ /**
386
+ * Show detailed info about a model
387
+ */
388
+ showModel(name: string): Promise<ModelInfo | null>;
389
+ /**
390
+ * Delete a model
391
+ */
392
+ deleteModel(name: string): Promise<boolean>;
393
+ /**
394
+ * List currently running models
395
+ */
396
+ listRunning(): Promise<RunningModel[]>;
397
+ /**
398
+ * Pull a model from the registry
399
+ */
400
+ pullModel(name: string): Promise<boolean>;
401
+ /**
402
+ * Create a model from a Modelfile
403
+ */
404
+ createModel(name: string, modelfile: string): Promise<boolean>;
405
+ setModel(model: string): void;
406
+ getModel(): string;
407
+ /**
408
+ * Analyze command safety and provide recommendations
409
+ */
410
+ analyzeCommandSafety(command: string): Promise<{
411
+ safe: boolean;
412
+ risk: 'low' | 'medium' | 'high' | 'critical';
413
+ explanation: string;
414
+ suggestions: string[];
415
+ }>;
416
+ /**
417
+ * Generate with a temporary model override (for adapter-specific calls)
418
+ */
419
+ generateWithAdapter(modelOverride: string, prompt: string, systemPrompt?: string): Promise<string>;
420
+ }
421
+
314
422
  type RouteDecision = 'bro' | 'main' | 'both';
315
423
  interface RoutingResult {
316
424
  decision: RouteDecision;
@@ -320,9 +428,11 @@ interface RoutingResult {
320
428
  declare class TaskRouter {
321
429
  private rules;
322
430
  private profile;
323
- constructor(profile?: SystemProfile | null);
431
+ private ollama;
432
+ constructor(profile?: SystemProfile | null, ollama?: OllamaClient | null);
324
433
  private buildDefaultRules;
325
434
  route(command: string): RoutingResult;
435
+ routeAsync(command: string): Promise<RoutingResult>;
326
436
  private looksSimple;
327
437
  addRule(pattern: RegExp, route: RouteDecision, reason: string): void;
328
438
  updateProfile(profile: SystemProfile): void;
@@ -338,9 +448,12 @@ declare class CommandSuggester {
338
448
  private history;
339
449
  private profile;
340
450
  private patterns;
341
- constructor(profile?: SystemProfile | null);
451
+ private ollama;
452
+ private aiCache;
453
+ constructor(profile?: SystemProfile | null, ollama?: OllamaClient | null);
342
454
  private initPatterns;
343
455
  suggest(context: SuggestionContext): Suggestion[];
456
+ suggestAsync(context: SuggestionContext): Promise<Suggestion[]>;
344
457
  private suggestFromPatterns;
345
458
  private suggestFromHistory;
346
459
  private suggestFromContext;
@@ -381,6 +494,23 @@ declare class BackgroundWorker extends EventEmitter {
381
494
  formatStatus(): string;
382
495
  }
383
496
 
497
+ type AdapterPurpose = 'suggest' | 'safety' | 'route' | 'explain' | 'fix' | 'script' | 'general';
498
+ interface AdapterEntry {
499
+ name: string;
500
+ baseModel: string;
501
+ purpose: AdapterPurpose;
502
+ adapterPath: string;
503
+ trainedAt: string;
504
+ tracesUsed: number;
505
+ qualityScore: number;
506
+ }
507
+
508
+ interface ModelProfile {
509
+ name: string;
510
+ baseModel: string;
511
+ adapters: Partial<Record<AdapterPurpose, string>>;
512
+ }
513
+
384
514
  interface BroConfig {
385
515
  modelEndpoint?: string;
386
516
  modelName?: string;
@@ -389,6 +519,7 @@ interface BroConfig {
389
519
  enableBackground?: boolean;
390
520
  enableOllama?: boolean;
391
521
  enableBashgymIntegration?: boolean;
522
+ activeProfile?: string;
392
523
  }
393
524
  declare class BashBro extends EventEmitter {
394
525
  private profiler;
@@ -400,6 +531,9 @@ declare class BashBro extends EventEmitter {
400
531
  private config;
401
532
  private ollamaAvailable;
402
533
  private bashgymModelVersion;
534
+ private adapterRegistry;
535
+ private profileManager;
536
+ private activeProfile;
403
537
  constructor(config?: BroConfig);
404
538
  /**
405
539
  * Initialize bashgym integration for model hot-swap
@@ -414,6 +548,14 @@ declare class BashBro extends EventEmitter {
414
548
  scanProject(projectPath: string): void;
415
549
  route(command: string): RoutingResult;
416
550
  suggest(context: SuggestionContext): Suggestion[];
551
+ /**
552
+ * AI-enhanced async routing - uses pattern matching first, falls back to Ollama
553
+ */
554
+ routeAsync(command: string): Promise<RoutingResult>;
555
+ /**
556
+ * AI-enhanced async suggestions - pattern matching + Ollama suggestions with caching
557
+ */
558
+ suggestAsync(context: SuggestionContext): Promise<Suggestion[]>;
417
559
  /**
418
560
  * SECURITY FIX: Safe command execution with validation
419
561
  */
@@ -431,22 +573,10 @@ declare class BashBro extends EventEmitter {
431
573
  * Ask Bash Bro (via Ollama) to suggest the next command
432
574
  */
433
575
  aiSuggest(context: string): Promise<string | null>;
434
- /**
435
- * Ask Bash Bro to explain a command
436
- */
437
- aiExplain(command: string): Promise<string>;
438
- /**
439
- * Ask Bash Bro to fix a failed command
440
- */
441
- aiFix(command: string, error: string): Promise<string | null>;
442
576
  /**
443
577
  * Set the Ollama model to use
444
578
  */
445
579
  setModel(model: string): void;
446
- /**
447
- * Generate a shell script from natural language description
448
- */
449
- aiGenerateScript(description: string): Promise<string | null>;
450
580
  /**
451
581
  * Analyze command for security risks using AI
452
582
  */
@@ -456,22 +586,6 @@ declare class BashBro extends EventEmitter {
456
586
  explanation: string;
457
587
  suggestions: string[];
458
588
  }>;
459
- /**
460
- * Summarize a terminal session
461
- */
462
- aiSummarize(commands: {
463
- command: string;
464
- output?: string;
465
- error?: string;
466
- }[]): Promise<string>;
467
- /**
468
- * Get AI help for a topic or command
469
- */
470
- aiHelp(topic: string): Promise<string>;
471
- /**
472
- * Convert natural language to command
473
- */
474
- aiToCommand(description: string): Promise<string | null>;
475
589
  /**
476
590
  * Get bashgym sidekick model version (if using)
477
591
  */
@@ -484,84 +598,27 @@ declare class BashBro extends EventEmitter {
484
598
  * Force refresh the bashgym model (check for updates)
485
599
  */
486
600
  refreshBashgymModel(): boolean;
487
- status(): string;
488
- }
489
-
490
- /**
491
- * Simple Ollama client for local model inference.
492
- * Keeps it minimal - just what we need for Bash Bro.
493
- */
494
- interface OllamaConfig {
495
- host: string;
496
- model: string;
497
- timeout: number;
498
- }
499
- interface ChatMessage {
500
- role: 'system' | 'user' | 'assistant';
501
- content: string;
502
- }
503
- declare class OllamaClient {
504
- private config;
505
- constructor(config?: Partial<OllamaConfig>);
506
601
  /**
507
- * Check if Ollama is running and accessible
602
+ * Get model name for a specific purpose (checks active profile for adapter override)
508
603
  */
509
- isAvailable(): Promise<boolean>;
604
+ private getModelForPurpose;
510
605
  /**
511
- * List available models
606
+ * Get discovered LoRA adapters
512
607
  */
513
- listModels(): Promise<string[]>;
608
+ getAdapters(): AdapterEntry[];
514
609
  /**
515
- * Generate a response from the model
610
+ * Get available model profiles
516
611
  */
517
- generate(prompt: string, systemPrompt?: string): Promise<string>;
518
- /**
519
- * Chat with the model (multi-turn conversation)
520
- */
521
- chat(messages: ChatMessage[]): Promise<string>;
612
+ getProfiles(): ModelProfile[];
522
613
  /**
523
- * Ask Bash Bro to suggest a command
614
+ * Get the active model profile
524
615
  */
525
- suggestCommand(context: string): Promise<string | null>;
616
+ getActiveProfile(): ModelProfile | null;
526
617
  /**
527
- * Ask Bash Bro to explain a command
618
+ * Set the active model profile by name
528
619
  */
529
- explainCommand(command: string): Promise<string>;
530
- /**
531
- * Ask Bash Bro to fix a command that failed
532
- */
533
- fixCommand(command: string, error: string): Promise<string | null>;
534
- setModel(model: string): void;
535
- getModel(): string;
536
- /**
537
- * Generate a shell script from a natural language description
538
- */
539
- generateScript(description: string, shell?: string): Promise<string | null>;
540
- /**
541
- * Analyze command safety and provide recommendations
542
- */
543
- analyzeCommandSafety(command: string): Promise<{
544
- safe: boolean;
545
- risk: 'low' | 'medium' | 'high' | 'critical';
546
- explanation: string;
547
- suggestions: string[];
548
- }>;
549
- /**
550
- * Summarize a series of commands and their outputs
551
- */
552
- summarizeSession(commands: {
553
- command: string;
554
- output?: string;
555
- error?: string;
556
- }[]): Promise<string>;
557
- /**
558
- * Get help for a specific tool or command
559
- */
560
- getHelp(topic: string): Promise<string>;
561
- /**
562
- * Convert natural language to a command
563
- */
564
- naturalToCommand(description: string): Promise<string | null>;
620
+ setActiveProfile(name: string): boolean;
621
+ status(): string;
565
622
  }
566
623
 
567
624
  /**
@@ -731,6 +788,7 @@ declare class CommandFilter {
731
788
  private blockPatterns;
732
789
  constructor(policy: CommandPolicy);
733
790
  check(command: string): PolicyViolation | null;
791
+ private extractBase;
734
792
  private globToRegex;
735
793
  }
736
794
 
@@ -751,10 +809,22 @@ declare class PathSandbox {
751
809
  isSymlinkEscape(path: string): boolean;
752
810
  }
753
811
 
812
+ interface TextScanFinding {
813
+ pattern: string;
814
+ redacted: string;
815
+ line: number;
816
+ severity: 'high' | 'critical';
817
+ }
818
+ interface TextScanResult {
819
+ clean: boolean;
820
+ findings: TextScanFinding[];
821
+ }
754
822
  declare class SecretsGuard {
755
823
  private policy;
756
824
  private patterns;
825
+ private static readonly TEXT_PATTERNS;
757
826
  constructor(policy: SecretsPolicy);
827
+ scanText(text: string): TextScanResult;
758
828
  check(command: string, paths: string[]): PolicyViolation | null;
759
829
  /**
760
830
  * SECURITY FIX: Detect base64/hex encoded secret access
@@ -1017,6 +1087,10 @@ declare class ReportGenerator {
1017
1087
  static oneLine(metrics: SessionMetrics): string;
1018
1088
  }
1019
1089
 
1090
+ declare function startMCPServer(): Promise<void>;
1091
+
1092
+ type CapabilityTier = 'basic' | 'moderate' | 'advanced';
1093
+
1020
1094
  /**
1021
1095
  * Claude Code Hook Integration
1022
1096
  * Seamlessly integrate BashBros with Claude Code
@@ -1026,7 +1100,13 @@ interface ClaudeSettings {
1026
1100
  PreToolUse?: HookConfig[];
1027
1101
  PostToolUse?: HookConfig[];
1028
1102
  SessionEnd?: HookConfig[];
1103
+ SessionStart?: HookConfig[];
1104
+ UserPromptSubmit?: HookConfig[];
1029
1105
  };
1106
+ mcpServers?: Record<string, {
1107
+ command: string;
1108
+ args: string[];
1109
+ }>;
1030
1110
  [key: string]: unknown;
1031
1111
  }
1032
1112
  interface HookConfig {
@@ -1067,6 +1147,10 @@ declare class ClaudeCodeHooks {
1067
1147
  * Check if BashBros hooks are installed
1068
1148
  */
1069
1149
  static isInstalled(settings?: ClaudeSettings): boolean;
1150
+ /**
1151
+ * Check if MCP server config is installed
1152
+ */
1153
+ static isMCPInstalled(settings?: ClaudeSettings): boolean;
1070
1154
  /**
1071
1155
  * Get hook status
1072
1156
  */
@@ -1074,6 +1158,8 @@ declare class ClaudeCodeHooks {
1074
1158
  claudeInstalled: boolean;
1075
1159
  hooksInstalled: boolean;
1076
1160
  allToolsInstalled: boolean;
1161
+ promptHookInstalled: boolean;
1162
+ mcpInstalled: boolean;
1077
1163
  hooks: string[];
1078
1164
  };
1079
1165
  /**
@@ -1094,6 +1180,24 @@ declare class ClaudeCodeHooks {
1094
1180
  success: boolean;
1095
1181
  message: string;
1096
1182
  };
1183
+ /**
1184
+ * Check if prompt recording hook is installed
1185
+ */
1186
+ static isPromptHookInstalled(settings?: ClaudeSettings): boolean;
1187
+ /**
1188
+ * Install prompt recording hook (records user prompt submissions)
1189
+ */
1190
+ static installPromptHook(): {
1191
+ success: boolean;
1192
+ message: string;
1193
+ };
1194
+ /**
1195
+ * Uninstall prompt recording hook
1196
+ */
1197
+ static uninstallPromptHook(): {
1198
+ success: boolean;
1199
+ message: string;
1200
+ };
1097
1201
  }
1098
1202
  /**
1099
1203
  * Gate command - called by PreToolUse hook
@@ -1514,4 +1618,4 @@ declare class BashgymIntegration extends EventEmitter {
1514
1618
  declare function getBashgymIntegration(): BashgymIntegration;
1515
1619
  declare function resetBashgymIntegration(): void;
1516
1620
 
1517
- export { type AgentType, type Anomaly, type AnomalyConfig, type AnomalyDetectionPolicy, AnomalyDetector, type AuditEntry, AuditLogger, type AuditPolicy, type BackgroundTask, BackgroundWorker, BashBro, BashBros, type BashBrosConfig, BashgymIntegration, type BroConfig, type CaptureMode, ClaudeCodeHooks, type ClaudeSettings, CommandFilter, type CommandMetric, type CommandPolicy, type CommandResult, CommandSuggester, type CostEstimate, CostEstimator, type Finding, type IntegrationSettings, type LoopAlert, type LoopConfig, type LoopDetectionPolicy, LoopDetector, MetricsCollector, type ModelManifest, type ModelPricing, type ModelVersion, type MoltbotGatewayInfo, type MoltbotGatewayStatus, MoltbotHooks, type MoltbotSecurityAuditResult, type MoltbotSecurityFinding, type MoltbotSessionContext, type MoltbotSettings, type MoltbotStatus, OllamaClient, type OllamaInfo, OutputScanner, type OutputScanningPolicy, type PathPolicy, PathSandbox, PolicyEngine, type PolicyViolation, type RateLimitPolicy, RateLimiter, ReportGenerator, type ReportOptions, type RiskPattern, type RiskScore, RiskScorer, type RiskScoringPolicy, type RouteDecision, type RoutingResult, type ScanResult, SecretsGuard, type SecretsPolicy, type SecurityProfile, type SessionMetrics, type Suggestion, type SuggestionContext, type SystemProfile, SystemProfiler, TaskRouter, type TraceData, type TraceStep, type TrainingTrigger, type UndoConfig, type UndoEntry, type UndoPolicy, type UndoResult, UndoStack, type VersionInfo, allowForSession, clearSessionAllowlist, detectMoltbotSession, gateCommand, getBashgymIntegration, getMoltbotAgentName, getMoltbotHooks, getMoltbotSessionId, getSessionAllowlist, isAllowedForSession, isInMoltbotSession, isSandboxEnabled, loadConfig, resetBashgymIntegration };
1621
+ export { type AgentType, type Anomaly, type AnomalyConfig, type AnomalyDetectionPolicy, AnomalyDetector, type AuditEntry, AuditLogger, type AuditPolicy, type BackgroundTask, BackgroundWorker, BashBro, BashBros, type BashBrosConfig, BashgymIntegration, type BroConfig, type CapabilityTier, type CaptureMode, ClaudeCodeHooks, type ClaudeSettings, CommandFilter, type CommandMetric, type CommandPolicy, type CommandResult, CommandSuggester, type CostEstimate, CostEstimator, type Finding, type IntegrationSettings, type LoopAlert, type LoopConfig, type LoopDetectionPolicy, LoopDetector, MetricsCollector, type ModelManifest, type ModelPricing, type ModelVersion, type MoltbotGatewayInfo, type MoltbotGatewayStatus, MoltbotHooks, type MoltbotSecurityAuditResult, type MoltbotSecurityFinding, type MoltbotSessionContext, type MoltbotSettings, type MoltbotStatus, OllamaClient, type OllamaInfo, OutputScanner, type OutputScanningPolicy, type PathPolicy, PathSandbox, PolicyEngine, type PolicyViolation, type RateLimitPolicy, RateLimiter, ReportGenerator, type ReportOptions, type RiskPattern, type RiskScore, RiskScorer, type RiskScoringPolicy, type RouteDecision, type RoutingResult, type ScanResult, SecretsGuard, type SecretsPolicy, type SecurityProfile, type SessionMetrics, type Suggestion, type SuggestionContext, type SystemProfile, SystemProfiler, TaskRouter, type TraceData, type TraceStep, type TrainingTrigger, type UndoConfig, type UndoEntry, type UndoPolicy, type UndoResult, UndoStack, type VersionInfo, allowForSession, clearSessionAllowlist, detectMoltbotSession, gateCommand, getBashgymIntegration, getMoltbotAgentName, getMoltbotHooks, getMoltbotSessionId, getSessionAllowlist, isAllowedForSession, isInMoltbotSession, isSandboxEnabled, loadConfig, resetBashgymIntegration, startMCPServer };