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.
- package/README.md +734 -271
- package/dist/adapters-JAZGGNVP.js +9 -0
- package/dist/chunk-25TREQ6V.js +465 -0
- package/dist/chunk-25TREQ6V.js.map +1 -0
- package/dist/{chunk-A535VV7N.js → chunk-2CI2MRKI.js} +23 -6
- package/dist/chunk-2CI2MRKI.js.map +1 -0
- package/dist/chunk-4XZ64P4V.js +47 -0
- package/dist/chunk-4XZ64P4V.js.map +1 -0
- package/dist/chunk-5BBPRDWL.js +186 -0
- package/dist/chunk-5BBPRDWL.js.map +1 -0
- package/dist/{chunk-2RPTM6EQ.js → chunk-6QVMBCSX.js} +719 -902
- package/dist/chunk-6QVMBCSX.js.map +1 -0
- package/dist/{chunk-JYWQT2B4.js → chunk-6SLR5WPD.js} +657 -14
- package/dist/chunk-6SLR5WPD.js.map +1 -0
- package/dist/{chunk-EYO44OMN.js → chunk-AZVT6AZY.js} +78 -17
- package/dist/chunk-AZVT6AZY.js.map +1 -0
- package/dist/{chunk-WPJJZLT6.js → chunk-C4GZNBFF.js} +3 -2
- package/dist/chunk-C4GZNBFF.js.map +1 -0
- package/dist/chunk-IUUBCPMV.js +166 -0
- package/dist/chunk-IUUBCPMV.js.map +1 -0
- package/dist/chunk-J6ONXY6N.js +146 -0
- package/dist/chunk-J6ONXY6N.js.map +1 -0
- package/dist/{chunk-DLP2O6PN.js → chunk-JOIAG54E.js} +83 -88
- package/dist/chunk-JOIAG54E.js.map +1 -0
- package/dist/chunk-LJE4EPIU.js +56 -0
- package/dist/chunk-LJE4EPIU.js.map +1 -0
- package/dist/{chunk-QWZGB4V3.js → chunk-PAZIDRXK.js} +42 -181
- package/dist/chunk-PAZIDRXK.js.map +1 -0
- package/dist/chunk-PLSHJHHR.js +293 -0
- package/dist/chunk-PLSHJHHR.js.map +1 -0
- package/dist/chunk-R5I5DEXE.js +228 -0
- package/dist/chunk-R5I5DEXE.js.map +1 -0
- package/dist/chunk-SDN6TAGD.js +157 -0
- package/dist/chunk-SDN6TAGD.js.map +1 -0
- package/dist/chunk-T5ONCUHZ.js +198 -0
- package/dist/chunk-T5ONCUHZ.js.map +1 -0
- package/dist/cli.js +1204 -188
- package/dist/cli.js.map +1 -1
- package/dist/{config-43SK6SFI.js → config-IXBXMIUA.js} +2 -2
- package/dist/copilot-cli-5WJWK5YT.js +9 -0
- package/dist/{db-SWJUUSFX.js → db-GJALN3R7.js} +2 -2
- package/dist/db-checks-2YOVECD4.js +133 -0
- package/dist/db-checks-2YOVECD4.js.map +1 -0
- package/dist/{display-HFIFXOOL.js → display-UDIACHTP.js} +3 -3
- package/dist/{engine-EGPAS2EX.js → engine-4WNPXVMS.js} +3 -2
- package/dist/gemini-cli-3563EELZ.js +9 -0
- package/dist/gemini-cli-3563EELZ.js.map +1 -0
- package/dist/index.d.ts +205 -101
- package/dist/index.js +132 -402
- package/dist/index.js.map +1 -1
- package/dist/{ollama-HY35OHW4.js → ollama-TNMD5WHW.js} +2 -2
- package/dist/ollama-TNMD5WHW.js.map +1 -0
- package/dist/opencode-DRCY275R.js +9 -0
- package/dist/opencode-DRCY275R.js.map +1 -0
- package/dist/profiles-7CLN6TAT.js +9 -0
- package/dist/profiles-7CLN6TAT.js.map +1 -0
- package/dist/server-3CMTP4W4.js +13 -0
- package/dist/server-3CMTP4W4.js.map +1 -0
- package/dist/setup-U4R5QJMV.js +124 -0
- package/dist/setup-U4R5QJMV.js.map +1 -0
- package/dist/static/index.html +4862 -2007
- package/dist/store-WJ5Y7MOE.js +9 -0
- package/dist/store-WJ5Y7MOE.js.map +1 -0
- package/dist/{writer-4ZEAKUFD.js → writer-OMHUMJR5.js} +3 -3
- package/dist/writer-OMHUMJR5.js.map +1 -0
- package/package.json +78 -68
- package/dist/chunk-2RPTM6EQ.js.map +0 -1
- package/dist/chunk-A535VV7N.js.map +0 -1
- package/dist/chunk-DLP2O6PN.js.map +0 -1
- package/dist/chunk-EYO44OMN.js.map +0 -1
- package/dist/chunk-JYWQT2B4.js.map +0 -1
- package/dist/chunk-QWZGB4V3.js.map +0 -1
- package/dist/chunk-WPJJZLT6.js.map +0 -1
- /package/dist/{config-43SK6SFI.js.map → adapters-JAZGGNVP.js.map} +0 -0
- /package/dist/{db-SWJUUSFX.js.map → config-IXBXMIUA.js.map} +0 -0
- /package/dist/{display-HFIFXOOL.js.map → copilot-cli-5WJWK5YT.js.map} +0 -0
- /package/dist/{engine-EGPAS2EX.js.map → db-GJALN3R7.js.map} +0 -0
- /package/dist/{ollama-HY35OHW4.js.map → display-UDIACHTP.js.map} +0 -0
- /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
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
602
|
+
* Get model name for a specific purpose (checks active profile for adapter override)
|
|
508
603
|
*/
|
|
509
|
-
|
|
604
|
+
private getModelForPurpose;
|
|
510
605
|
/**
|
|
511
|
-
*
|
|
606
|
+
* Get discovered LoRA adapters
|
|
512
607
|
*/
|
|
513
|
-
|
|
608
|
+
getAdapters(): AdapterEntry[];
|
|
514
609
|
/**
|
|
515
|
-
*
|
|
610
|
+
* Get available model profiles
|
|
516
611
|
*/
|
|
517
|
-
|
|
518
|
-
/**
|
|
519
|
-
* Chat with the model (multi-turn conversation)
|
|
520
|
-
*/
|
|
521
|
-
chat(messages: ChatMessage[]): Promise<string>;
|
|
612
|
+
getProfiles(): ModelProfile[];
|
|
522
613
|
/**
|
|
523
|
-
*
|
|
614
|
+
* Get the active model profile
|
|
524
615
|
*/
|
|
525
|
-
|
|
616
|
+
getActiveProfile(): ModelProfile | null;
|
|
526
617
|
/**
|
|
527
|
-
*
|
|
618
|
+
* Set the active model profile by name
|
|
528
619
|
*/
|
|
529
|
-
|
|
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 };
|