@defai.digital/ax-cli 3.2.0 → 3.4.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/.ax-cli/memory.json +8 -1
- package/README.md +118 -2
- package/config/models.yaml +13 -0
- package/config/settings.yaml +6 -0
- package/dist/agent/context-manager.d.ts +5 -5
- package/dist/agent/context-manager.js +19 -9
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/dependency-resolver.js +2 -1
- package/dist/agent/dependency-resolver.js.map +1 -1
- package/dist/agent/llm-agent.d.ts +3 -2
- package/dist/agent/llm-agent.js +64 -58
- package/dist/agent/llm-agent.js.map +1 -1
- package/dist/agent/subagent.js +2 -1
- package/dist/agent/subagent.js.map +1 -1
- package/dist/analyzers/architecture/anti-pattern-detectors/god-object-detector.d.ts +29 -0
- package/dist/analyzers/architecture/anti-pattern-detectors/god-object-detector.js +103 -0
- package/dist/analyzers/architecture/anti-pattern-detectors/god-object-detector.js.map +1 -0
- package/dist/analyzers/architecture/architecture-analyzer.d.ts +58 -0
- package/dist/analyzers/architecture/architecture-analyzer.js +276 -0
- package/dist/analyzers/architecture/architecture-analyzer.js.map +1 -0
- package/dist/analyzers/architecture/index.d.ts +12 -0
- package/dist/analyzers/architecture/index.js +14 -0
- package/dist/analyzers/architecture/index.js.map +1 -0
- package/dist/analyzers/architecture/pattern-detectors/base-detector.d.ts +27 -0
- package/dist/analyzers/architecture/pattern-detectors/base-detector.js +31 -0
- package/dist/analyzers/architecture/pattern-detectors/base-detector.js.map +1 -0
- package/dist/analyzers/architecture/pattern-detectors/clean-architecture-detector.d.ts +11 -0
- package/dist/analyzers/architecture/pattern-detectors/clean-architecture-detector.js +57 -0
- package/dist/analyzers/architecture/pattern-detectors/clean-architecture-detector.js.map +1 -0
- package/dist/analyzers/architecture/pattern-detectors/mvc-detector.d.ts +11 -0
- package/dist/analyzers/architecture/pattern-detectors/mvc-detector.js +43 -0
- package/dist/analyzers/architecture/pattern-detectors/mvc-detector.js.map +1 -0
- package/dist/analyzers/architecture/pattern-detectors/repository-detector.d.ts +11 -0
- package/dist/analyzers/architecture/pattern-detectors/repository-detector.js +49 -0
- package/dist/analyzers/architecture/pattern-detectors/repository-detector.js.map +1 -0
- package/dist/analyzers/architecture/project-structure-scanner.d.ts +54 -0
- package/dist/analyzers/architecture/project-structure-scanner.js +200 -0
- package/dist/analyzers/architecture/project-structure-scanner.js.map +1 -0
- package/dist/analyzers/best-practices/base-rule.d.ts +45 -0
- package/dist/analyzers/best-practices/base-rule.js +45 -0
- package/dist/analyzers/best-practices/base-rule.js.map +1 -0
- package/dist/analyzers/best-practices/best-practice-validator.d.ts +35 -0
- package/dist/analyzers/best-practices/best-practice-validator.js +181 -0
- package/dist/analyzers/best-practices/best-practice-validator.js.map +1 -0
- package/dist/analyzers/best-practices/rules/index.d.ts +7 -0
- package/dist/analyzers/best-practices/rules/index.js +56 -0
- package/dist/analyzers/best-practices/rules/index.js.map +1 -0
- package/dist/analyzers/best-practices/rules/typescript/consistent-naming.d.ts +17 -0
- package/dist/analyzers/best-practices/rules/typescript/consistent-naming.js +41 -0
- package/dist/analyzers/best-practices/rules/typescript/consistent-naming.js.map +1 -0
- package/dist/analyzers/best-practices/rules/typescript/function-complexity.d.ts +27 -0
- package/dist/analyzers/best-practices/rules/typescript/function-complexity.js +76 -0
- package/dist/analyzers/best-practices/rules/typescript/function-complexity.js.map +1 -0
- package/dist/analyzers/best-practices/rules/typescript/index.d.ts +15 -0
- package/dist/analyzers/best-practices/rules/typescript/index.js +16 -0
- package/dist/analyzers/best-practices/rules/typescript/index.js.map +1 -0
- package/dist/analyzers/best-practices/rules/typescript/max-file-length.d.ts +18 -0
- package/dist/analyzers/best-practices/rules/typescript/max-file-length.js +25 -0
- package/dist/analyzers/best-practices/rules/typescript/max-file-length.js.map +1 -0
- package/dist/analyzers/best-practices/rules/typescript/no-any-type.d.ts +17 -0
- package/dist/analyzers/best-practices/rules/typescript/no-any-type.js +27 -0
- package/dist/analyzers/best-practices/rules/typescript/no-any-type.js.map +1 -0
- package/dist/analyzers/best-practices/rules/typescript/no-implicit-any.d.ts +18 -0
- package/dist/analyzers/best-practices/rules/typescript/no-implicit-any.js +39 -0
- package/dist/analyzers/best-practices/rules/typescript/no-implicit-any.js.map +1 -0
- package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.d.ts +17 -0
- package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js +32 -0
- package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js.map +1 -0
- package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.d.ts +17 -0
- package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js +36 -0
- package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js.map +1 -0
- package/dist/analyzers/best-practices/rules/typescript/prefer-const.d.ts +17 -0
- package/dist/analyzers/best-practices/rules/typescript/prefer-const.js +33 -0
- package/dist/analyzers/best-practices/rules/typescript/prefer-const.js.map +1 -0
- package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.d.ts +17 -0
- package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js +34 -0
- package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js.map +1 -0
- package/dist/analyzers/best-practices/rules/typescript/proper-error-handling.d.ts +17 -0
- package/dist/analyzers/best-practices/rules/typescript/proper-error-handling.js +27 -0
- package/dist/analyzers/best-practices/rules/typescript/proper-error-handling.js.map +1 -0
- package/dist/analyzers/best-practices/types.d.ts +86 -0
- package/dist/analyzers/best-practices/types.js +7 -0
- package/dist/analyzers/best-practices/types.js.map +1 -0
- package/dist/analyzers/cache/analysis-cache.d.ts +41 -0
- package/dist/analyzers/cache/analysis-cache.js +84 -0
- package/dist/analyzers/cache/analysis-cache.js.map +1 -0
- package/dist/analyzers/errors.d.ts +51 -0
- package/dist/analyzers/errors.js +79 -0
- package/dist/analyzers/errors.js.map +1 -0
- package/dist/commands/doctor.js +3 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/frontend.d.ts +9 -0
- package/dist/commands/frontend.js +645 -0
- package/dist/commands/frontend.js.map +1 -0
- package/dist/commands/mcp.js +652 -3
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/models.js +2 -2
- package/dist/commands/models.js.map +1 -1
- package/dist/commands/setup.js +100 -41
- package/dist/commands/setup.js.map +1 -1
- package/dist/constants.d.ts +4 -0
- package/dist/constants.js +4 -0
- package/dist/constants.js.map +1 -1
- package/dist/hooks/use-enhanced-input.js +16 -3
- package/dist/hooks/use-enhanced-input.js.map +1 -1
- package/dist/hooks/use-input-handler.js +9 -4
- package/dist/hooks/use-input-handler.js.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/llm/client.d.ts +1 -0
- package/dist/llm/tools.js +86 -0
- package/dist/llm/tools.js.map +1 -1
- package/dist/llm/types.d.ts +49 -22
- package/dist/llm/types.js +12 -8
- package/dist/llm/types.js.map +1 -1
- package/dist/mcp/client.d.ts +5 -0
- package/dist/mcp/client.js +55 -0
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/config.d.ts +1 -1
- package/dist/mcp/config.js +2 -2
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/health.d.ts +120 -0
- package/dist/mcp/health.js +267 -0
- package/dist/mcp/health.js.map +1 -0
- package/dist/mcp/reconnection.d.ts +93 -0
- package/dist/mcp/reconnection.js +216 -0
- package/dist/mcp/reconnection.js.map +1 -0
- package/dist/mcp/registry.d.ts +71 -0
- package/dist/mcp/registry.js +257 -0
- package/dist/mcp/registry.js.map +1 -0
- package/dist/mcp/resources.d.ts +53 -0
- package/dist/mcp/resources.js +135 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/templates.d.ts +52 -0
- package/dist/mcp/templates.js +624 -0
- package/dist/mcp/templates.js.map +1 -0
- package/dist/mcp/validation.d.ts +25 -0
- package/dist/mcp/validation.js +209 -0
- package/dist/mcp/validation.js.map +1 -0
- package/dist/memory/context-generator.js +1 -2
- package/dist/memory/context-generator.js.map +1 -1
- package/dist/planner/types.d.ts +2 -2
- package/dist/schemas/api-schemas.d.ts +2 -1
- package/dist/schemas/api-schemas.js +6 -4
- package/dist/schemas/api-schemas.js.map +1 -1
- package/dist/schemas/index.d.ts +4 -4
- package/dist/schemas/tool-schemas.d.ts +2 -2
- package/dist/schemas/yaml-schemas.d.ts +15 -0
- package/dist/schemas/yaml-schemas.js +3 -0
- package/dist/schemas/yaml-schemas.js.map +1 -1
- package/dist/sdk/index.d.ts +138 -0
- package/dist/sdk/index.js +173 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/types.d.ts +53 -0
- package/dist/sdk/types.js +8 -0
- package/dist/sdk/types.js.map +1 -0
- package/dist/tools/analysis-tools/architecture-tool.d.ts +46 -0
- package/dist/tools/analysis-tools/architecture-tool.js +124 -0
- package/dist/tools/analysis-tools/architecture-tool.js.map +1 -0
- package/dist/tools/analysis-tools/validation-tool.d.ts +51 -0
- package/dist/tools/analysis-tools/validation-tool.js +121 -0
- package/dist/tools/analysis-tools/validation-tool.js.map +1 -0
- package/dist/tools/bash.js +25 -10
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/web-search/cache.d.ts +62 -0
- package/dist/tools/web-search/cache.js +105 -0
- package/dist/tools/web-search/cache.js.map +1 -0
- package/dist/tools/web-search/engines/brave.d.ts +16 -0
- package/dist/tools/web-search/engines/brave.js +99 -0
- package/dist/tools/web-search/engines/brave.js.map +1 -0
- package/dist/tools/web-search/engines/crates.d.ts +19 -0
- package/dist/tools/web-search/engines/crates.js +87 -0
- package/dist/tools/web-search/engines/crates.js.map +1 -0
- package/dist/tools/web-search/engines/npm.d.ts +18 -0
- package/dist/tools/web-search/engines/npm.js +86 -0
- package/dist/tools/web-search/engines/npm.js.map +1 -0
- package/dist/tools/web-search/engines/pypi.d.ts +18 -0
- package/dist/tools/web-search/engines/pypi.js +75 -0
- package/dist/tools/web-search/engines/pypi.js.map +1 -0
- package/dist/tools/web-search/engines/tavily.d.ts +17 -0
- package/dist/tools/web-search/engines/tavily.js +73 -0
- package/dist/tools/web-search/engines/tavily.js.map +1 -0
- package/dist/tools/web-search/index.d.ts +13 -0
- package/dist/tools/web-search/index.js +13 -0
- package/dist/tools/web-search/index.js.map +1 -0
- package/dist/tools/web-search/router.d.ts +36 -0
- package/dist/tools/web-search/router.js +280 -0
- package/dist/tools/web-search/router.js.map +1 -0
- package/dist/tools/web-search/types.d.ts +45 -0
- package/dist/tools/web-search/types.js +6 -0
- package/dist/tools/web-search/types.js.map +1 -0
- package/dist/tools/web-search/web-search-tool.d.ts +51 -0
- package/dist/tools/web-search/web-search-tool.js +256 -0
- package/dist/tools/web-search/web-search-tool.js.map +1 -0
- package/dist/types/analysis.d.ts +177 -0
- package/dist/types/analysis.js +8 -0
- package/dist/types/analysis.js.map +1 -0
- package/dist/ui/components/api-key-input.js +2 -2
- package/dist/ui/components/api-key-input.js.map +1 -1
- package/dist/ui/components/chat-history.js +14 -7
- package/dist/ui/components/chat-history.js.map +1 -1
- package/dist/ui/components/chat-input.js +12 -7
- package/dist/ui/components/chat-input.js.map +1 -1
- package/dist/ui/components/chat-interface.js +75 -54
- package/dist/ui/components/chat-interface.js.map +1 -1
- package/dist/ui/components/keyboard-hints.js +5 -4
- package/dist/ui/components/keyboard-hints.js.map +1 -1
- package/dist/ui/components/quick-actions.js +1 -0
- package/dist/ui/components/quick-actions.js.map +1 -1
- package/dist/ui/components/reasoning-display.js +14 -4
- package/dist/ui/components/reasoning-display.js.map +1 -1
- package/dist/ui/components/status-bar.d.ts +1 -0
- package/dist/ui/components/status-bar.js +37 -39
- package/dist/ui/components/status-bar.js.map +1 -1
- package/dist/ui/components/toast-notification.d.ts +29 -0
- package/dist/ui/components/toast-notification.js +17 -3
- package/dist/ui/components/toast-notification.js.map +1 -1
- package/dist/ui/components/welcome-panel.d.ts +1 -0
- package/dist/ui/components/welcome-panel.js +106 -4
- package/dist/ui/components/welcome-panel.js.map +1 -1
- package/dist/utils/analysis-logger.d.ts +47 -0
- package/dist/utils/analysis-logger.js +70 -0
- package/dist/utils/analysis-logger.js.map +1 -0
- package/dist/utils/automatosx-detector.d.ts +19 -0
- package/dist/utils/automatosx-detector.js +52 -0
- package/dist/utils/automatosx-detector.js.map +1 -0
- package/dist/utils/config-loader.d.ts +4 -0
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/confirmation-service.js +1 -1
- package/dist/utils/confirmation-service.js.map +1 -1
- package/dist/utils/init-previewer.js +26 -4
- package/dist/utils/init-previewer.js.map +1 -1
- package/dist/utils/setup-validator.js +1 -0
- package/dist/utils/setup-validator.js.map +1 -1
- package/dist/utils/text-utils.d.ts +1 -0
- package/dist/utils/text-utils.js +12 -0
- package/dist/utils/text-utils.js.map +1 -1
- package/package.json +19 -4
- package/vitest.config.ts +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/tools/web-search/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web Search Types
|
|
3
|
+
* Common interfaces and types for web search functionality
|
|
4
|
+
*/
|
|
5
|
+
export interface WebSearchResult {
|
|
6
|
+
title: string;
|
|
7
|
+
url: string;
|
|
8
|
+
snippet: string;
|
|
9
|
+
source: string;
|
|
10
|
+
relevanceScore?: number;
|
|
11
|
+
publishedDate?: string;
|
|
12
|
+
metadata?: Record<string, any>;
|
|
13
|
+
}
|
|
14
|
+
export interface SearchOptions {
|
|
15
|
+
maxResults?: number;
|
|
16
|
+
includeAnswer?: boolean;
|
|
17
|
+
searchDepth?: "basic" | "advanced";
|
|
18
|
+
freshness?: "day" | "week" | "month" | "year";
|
|
19
|
+
includeDomains?: string[];
|
|
20
|
+
excludeDomains?: string[];
|
|
21
|
+
timeout?: number;
|
|
22
|
+
}
|
|
23
|
+
export interface SearchIntent {
|
|
24
|
+
type: "general" | "technical" | "news" | "code";
|
|
25
|
+
requiresTechnical: boolean;
|
|
26
|
+
requiresCode: boolean;
|
|
27
|
+
requiresNews: boolean;
|
|
28
|
+
confidence: number;
|
|
29
|
+
language?: "javascript" | "python" | "rust";
|
|
30
|
+
}
|
|
31
|
+
export interface SearchEngine {
|
|
32
|
+
name: string;
|
|
33
|
+
search(query: string, options?: SearchOptions): Promise<WebSearchResult[]>;
|
|
34
|
+
isAvailable(): boolean;
|
|
35
|
+
getQuota?(): {
|
|
36
|
+
remaining: number;
|
|
37
|
+
limit: number;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export interface SearchEngineResponse {
|
|
41
|
+
results: WebSearchResult[];
|
|
42
|
+
answer?: string;
|
|
43
|
+
totalResults?: number;
|
|
44
|
+
query: string;
|
|
45
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/web-search/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web Search Tool
|
|
3
|
+
* Main tool for web search functionality in AX CLI
|
|
4
|
+
*/
|
|
5
|
+
import type { ToolResult } from "../../types/index.js";
|
|
6
|
+
import type { SearchOptions } from "./types.js";
|
|
7
|
+
export declare class WebSearchTool {
|
|
8
|
+
private router;
|
|
9
|
+
private cache;
|
|
10
|
+
private readonly DEFAULT_MAX_RESULTS;
|
|
11
|
+
private readonly MAX_RESULTS_LIMIT;
|
|
12
|
+
private readonly MAX_PARALLEL_ENGINES;
|
|
13
|
+
constructor();
|
|
14
|
+
/**
|
|
15
|
+
* Search the web for information
|
|
16
|
+
*/
|
|
17
|
+
search(query: string, options?: SearchOptions): Promise<ToolResult>;
|
|
18
|
+
/**
|
|
19
|
+
* Sanitize search query to prevent injection attacks
|
|
20
|
+
*/
|
|
21
|
+
private sanitizeQuery;
|
|
22
|
+
/**
|
|
23
|
+
* Aggregate and deduplicate results from multiple search engines
|
|
24
|
+
*/
|
|
25
|
+
private aggregateResults;
|
|
26
|
+
/**
|
|
27
|
+
* Get bonus score for specific search engines
|
|
28
|
+
*/
|
|
29
|
+
private getSourceBonus;
|
|
30
|
+
/**
|
|
31
|
+
* Format search results for display
|
|
32
|
+
*/
|
|
33
|
+
private formatResults;
|
|
34
|
+
/**
|
|
35
|
+
* Get cache statistics (for debugging/monitoring)
|
|
36
|
+
*/
|
|
37
|
+
getCacheStats(): {
|
|
38
|
+
keys: number;
|
|
39
|
+
hits: number;
|
|
40
|
+
misses: number;
|
|
41
|
+
hitRate: number;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Clear search cache
|
|
45
|
+
*/
|
|
46
|
+
clearCache(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Check if web search is available
|
|
49
|
+
*/
|
|
50
|
+
isAvailable(): boolean;
|
|
51
|
+
}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web Search Tool
|
|
3
|
+
* Main tool for web search functionality in AX CLI
|
|
4
|
+
*/
|
|
5
|
+
import { WebSearchRouter } from "./router.js";
|
|
6
|
+
import { SearchCache } from "./cache.js";
|
|
7
|
+
export class WebSearchTool {
|
|
8
|
+
router;
|
|
9
|
+
cache;
|
|
10
|
+
DEFAULT_MAX_RESULTS = 5;
|
|
11
|
+
MAX_RESULTS_LIMIT = 10;
|
|
12
|
+
MAX_PARALLEL_ENGINES = 3; // Execute up to 3 engines in parallel
|
|
13
|
+
constructor() {
|
|
14
|
+
this.router = new WebSearchRouter();
|
|
15
|
+
this.cache = new SearchCache();
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Search the web for information
|
|
19
|
+
*/
|
|
20
|
+
async search(query, options) {
|
|
21
|
+
try {
|
|
22
|
+
// Validate query
|
|
23
|
+
if (!query || query.trim().length === 0) {
|
|
24
|
+
return {
|
|
25
|
+
success: false,
|
|
26
|
+
error: "Search query cannot be empty",
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
// Sanitize query
|
|
30
|
+
const sanitizedQuery = this.sanitizeQuery(query);
|
|
31
|
+
// Note: hasAvailableEngines() always returns true now because npm search
|
|
32
|
+
// is available by default (no API key required). Optional: Configure
|
|
33
|
+
// TAVILY_API_KEY or BRAVE_API_KEY for enhanced search capabilities.
|
|
34
|
+
// Check cache first
|
|
35
|
+
const cached = this.cache.get(sanitizedQuery);
|
|
36
|
+
if (cached && cached.length > 0) {
|
|
37
|
+
return {
|
|
38
|
+
success: true,
|
|
39
|
+
output: this.formatResults(cached, sanitizedQuery, true),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// Detect intent and select engines
|
|
43
|
+
const intent = this.router.detectIntent(sanitizedQuery);
|
|
44
|
+
const engines = this.router.selectEngines(intent);
|
|
45
|
+
if (engines.length === 0) {
|
|
46
|
+
return {
|
|
47
|
+
success: false,
|
|
48
|
+
error: "No search engine available",
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// Prepare search options
|
|
52
|
+
const searchOptions = {
|
|
53
|
+
maxResults: Math.min(options?.maxResults || this.DEFAULT_MAX_RESULTS, this.MAX_RESULTS_LIMIT),
|
|
54
|
+
includeAnswer: options?.includeAnswer ?? true,
|
|
55
|
+
searchDepth: options?.searchDepth || "basic",
|
|
56
|
+
freshness: options?.freshness,
|
|
57
|
+
includeDomains: options?.includeDomains,
|
|
58
|
+
excludeDomains: options?.excludeDomains,
|
|
59
|
+
};
|
|
60
|
+
// Execute searches in parallel across multiple engines
|
|
61
|
+
const parallelCount = Math.min(engines.length, this.MAX_PARALLEL_ENGINES);
|
|
62
|
+
const enginesToUse = engines.slice(0, parallelCount);
|
|
63
|
+
// Execute all searches in parallel
|
|
64
|
+
const searchPromises = enginesToUse.map((engine) => engine
|
|
65
|
+
.search(sanitizedQuery, searchOptions)
|
|
66
|
+
.then((results) => ({ engine: engine.name, results, error: null }))
|
|
67
|
+
.catch((error) => ({
|
|
68
|
+
engine: engine.name,
|
|
69
|
+
results: [],
|
|
70
|
+
error: error.message,
|
|
71
|
+
})));
|
|
72
|
+
const searchResults = await Promise.all(searchPromises);
|
|
73
|
+
// Aggregate and deduplicate results
|
|
74
|
+
const results = this.aggregateResults(searchResults, searchOptions.maxResults || this.DEFAULT_MAX_RESULTS);
|
|
75
|
+
// Cache results (5 minute TTL)
|
|
76
|
+
if (results.length > 0) {
|
|
77
|
+
this.cache.set(sanitizedQuery, results, 300);
|
|
78
|
+
}
|
|
79
|
+
// Get list of engines that were used
|
|
80
|
+
const enginesUsed = searchResults
|
|
81
|
+
.filter((r) => r.results.length > 0)
|
|
82
|
+
.map((r) => r.engine);
|
|
83
|
+
// Format and return results
|
|
84
|
+
return {
|
|
85
|
+
success: true,
|
|
86
|
+
output: this.formatResults(results, sanitizedQuery, false, intent.type, enginesUsed),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
// Handle specific error cases
|
|
91
|
+
if (error.message?.includes("timeout")) {
|
|
92
|
+
return {
|
|
93
|
+
success: false,
|
|
94
|
+
error: "Search request timed out. Please try again.",
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
if (error.message?.includes("rate limit")) {
|
|
98
|
+
return {
|
|
99
|
+
success: false,
|
|
100
|
+
error: "Search rate limit exceeded. Please try again later.",
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
if (error.message?.includes("API key")) {
|
|
104
|
+
return {
|
|
105
|
+
success: false,
|
|
106
|
+
error: "Search API authentication failed. Please check your API keys.",
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
// Generic error
|
|
110
|
+
return {
|
|
111
|
+
success: false,
|
|
112
|
+
error: `Web search error: ${error.message}`,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Sanitize search query to prevent injection attacks
|
|
118
|
+
*/
|
|
119
|
+
sanitizeQuery(query) {
|
|
120
|
+
return query
|
|
121
|
+
.replace(/[<>\"\']/g, "") // Remove special characters
|
|
122
|
+
.trim()
|
|
123
|
+
.slice(0, 500); // Max length
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Aggregate and deduplicate results from multiple search engines
|
|
127
|
+
*/
|
|
128
|
+
aggregateResults(searchResults, maxResults) {
|
|
129
|
+
const urlMap = new Map();
|
|
130
|
+
const scores = new Map();
|
|
131
|
+
// Aggregate results from all engines
|
|
132
|
+
for (const { engine, results } of searchResults) {
|
|
133
|
+
results.forEach((result, index) => {
|
|
134
|
+
const url = result.url;
|
|
135
|
+
// Calculate score based on position and source
|
|
136
|
+
// Earlier results and results from multiple engines get higher scores
|
|
137
|
+
const positionScore = maxResults - index;
|
|
138
|
+
const sourceBonus = this.getSourceBonus(engine);
|
|
139
|
+
const score = positionScore + sourceBonus;
|
|
140
|
+
if (!urlMap.has(url)) {
|
|
141
|
+
// New result
|
|
142
|
+
urlMap.set(url, result);
|
|
143
|
+
scores.set(url, score);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
// Duplicate - boost score (result appears in multiple engines)
|
|
147
|
+
const existingScore = scores.get(url) || 0;
|
|
148
|
+
scores.set(url, existingScore + score * 0.5); // 50% bonus for appearing in multiple sources
|
|
149
|
+
// Merge metadata if the new result has additional info
|
|
150
|
+
const existing = urlMap.get(url);
|
|
151
|
+
if (result.metadata?.answer && !existing.metadata?.answer) {
|
|
152
|
+
existing.metadata = {
|
|
153
|
+
...existing.metadata,
|
|
154
|
+
answer: result.metadata.answer,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
// Sort by score and return top results
|
|
161
|
+
const aggregated = Array.from(urlMap.entries())
|
|
162
|
+
.map(([url, result]) => ({
|
|
163
|
+
result,
|
|
164
|
+
score: scores.get(url) || 0,
|
|
165
|
+
}))
|
|
166
|
+
.sort((a, b) => b.score - a.score)
|
|
167
|
+
.slice(0, maxResults)
|
|
168
|
+
.map(({ result }) => result);
|
|
169
|
+
return aggregated;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get bonus score for specific search engines
|
|
173
|
+
*/
|
|
174
|
+
getSourceBonus(engine) {
|
|
175
|
+
// Prioritize certain engines based on reliability
|
|
176
|
+
switch (engine) {
|
|
177
|
+
case "tavily":
|
|
178
|
+
return 3; // Tavily has AI-powered relevance
|
|
179
|
+
case "npm":
|
|
180
|
+
case "pypi":
|
|
181
|
+
case "crates.io":
|
|
182
|
+
return 2; // Package registries are authoritative for packages
|
|
183
|
+
case "brave":
|
|
184
|
+
return 1; // General search engine
|
|
185
|
+
default:
|
|
186
|
+
return 0;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Format search results for display
|
|
191
|
+
*/
|
|
192
|
+
formatResults(results, query, fromCache, intentType, enginesUsed) {
|
|
193
|
+
if (results.length === 0) {
|
|
194
|
+
return `No web search results found for "${query}".`;
|
|
195
|
+
}
|
|
196
|
+
let output = `Web search results for "${query}"`;
|
|
197
|
+
// Add cache indicator
|
|
198
|
+
if (fromCache) {
|
|
199
|
+
output += " (cached)";
|
|
200
|
+
}
|
|
201
|
+
// Add intent indicator if available
|
|
202
|
+
if (intentType && intentType !== "general") {
|
|
203
|
+
output += ` [${intentType}]`;
|
|
204
|
+
}
|
|
205
|
+
// Add engines used indicator (for parallel search)
|
|
206
|
+
if (enginesUsed && enginesUsed.length > 1) {
|
|
207
|
+
output += ` [sources: ${enginesUsed.join(", ")}]`;
|
|
208
|
+
}
|
|
209
|
+
output += ":\n\n";
|
|
210
|
+
// Extract AI-generated answer if available (from Tavily)
|
|
211
|
+
const answer = results[0]?.metadata?.answer;
|
|
212
|
+
if (answer && typeof answer === "string") {
|
|
213
|
+
output += `**Summary**: ${answer}\n\n`;
|
|
214
|
+
}
|
|
215
|
+
// Format each result
|
|
216
|
+
results.forEach((result, index) => {
|
|
217
|
+
output += `${index + 1}. **${result.title}**\n`;
|
|
218
|
+
output += ` URL: ${result.url}\n`;
|
|
219
|
+
output += ` ${result.snippet}\n`;
|
|
220
|
+
// Add published date if available
|
|
221
|
+
if (result.publishedDate) {
|
|
222
|
+
output += ` Published: ${result.publishedDate}\n`;
|
|
223
|
+
}
|
|
224
|
+
// Add source indicator
|
|
225
|
+
output += ` Source: ${result.source}\n`;
|
|
226
|
+
output += "\n";
|
|
227
|
+
});
|
|
228
|
+
// Add result count
|
|
229
|
+
if (results.length >= this.MAX_RESULTS_LIMIT) {
|
|
230
|
+
output += `Showing ${results.length} results (maximum). Refine your query for more specific results.\n`;
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
output += `Found ${results.length} result${results.length === 1 ? "" : "s"}.\n`;
|
|
234
|
+
}
|
|
235
|
+
return output.trim();
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Get cache statistics (for debugging/monitoring)
|
|
239
|
+
*/
|
|
240
|
+
getCacheStats() {
|
|
241
|
+
return this.cache.getStats();
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Clear search cache
|
|
245
|
+
*/
|
|
246
|
+
clearCache() {
|
|
247
|
+
this.cache.clear();
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Check if web search is available
|
|
251
|
+
*/
|
|
252
|
+
isAvailable() {
|
|
253
|
+
return this.router.hasAvailableEngines();
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=web-search-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search-tool.js","sourceRoot":"","sources":["../../../src/tools/web-search/web-search-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analysis Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for architecture analysis and best practice validation.
|
|
5
|
+
* All types are immutable and follow strict type safety principles.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Analysis depth level
|
|
9
|
+
*/
|
|
10
|
+
export type AnalysisDepth = 'quick' | 'deep';
|
|
11
|
+
/**
|
|
12
|
+
* Pattern detection confidence level (0.0 to 1.0)
|
|
13
|
+
*/
|
|
14
|
+
export type ConfidenceLevel = number;
|
|
15
|
+
/**
|
|
16
|
+
* Severity levels for violations and anti-patterns
|
|
17
|
+
*/
|
|
18
|
+
export type Severity = 'critical' | 'high' | 'medium' | 'low' | 'info';
|
|
19
|
+
/**
|
|
20
|
+
* Base analysis result containing common metadata
|
|
21
|
+
*/
|
|
22
|
+
export interface BaseAnalysisResult {
|
|
23
|
+
readonly timestamp: number;
|
|
24
|
+
readonly durationMs: number;
|
|
25
|
+
readonly projectPath: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Detected architectural or design pattern
|
|
29
|
+
*/
|
|
30
|
+
export interface DetectedPattern {
|
|
31
|
+
readonly name: string;
|
|
32
|
+
readonly category: 'architectural' | 'creational' | 'structural' | 'behavioral';
|
|
33
|
+
readonly confidence: ConfidenceLevel;
|
|
34
|
+
readonly locations: ReadonlyArray<string>;
|
|
35
|
+
readonly description: string;
|
|
36
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Detected anti-pattern or code smell
|
|
40
|
+
*/
|
|
41
|
+
export interface AntiPattern {
|
|
42
|
+
readonly name: string;
|
|
43
|
+
readonly severity: Severity;
|
|
44
|
+
readonly locations: ReadonlyArray<string>;
|
|
45
|
+
readonly description: string;
|
|
46
|
+
readonly suggestion: string;
|
|
47
|
+
readonly impact: string;
|
|
48
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Architecture improvement recommendation
|
|
52
|
+
*/
|
|
53
|
+
export interface ArchitectureRecommendation {
|
|
54
|
+
readonly title: string;
|
|
55
|
+
readonly priority: Severity;
|
|
56
|
+
readonly description: string;
|
|
57
|
+
readonly rationale: string;
|
|
58
|
+
readonly estimatedEffort: 'low' | 'medium' | 'high';
|
|
59
|
+
readonly benefits: ReadonlyArray<string>;
|
|
60
|
+
readonly tradeoffs: ReadonlyArray<string>;
|
|
61
|
+
readonly relatedPatterns: ReadonlyArray<string>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Complete architecture analysis result
|
|
65
|
+
*/
|
|
66
|
+
export interface ArchitectureAnalysis extends BaseAnalysisResult {
|
|
67
|
+
readonly detectedPatterns: ReadonlyArray<DetectedPattern>;
|
|
68
|
+
readonly antiPatterns: ReadonlyArray<AntiPattern>;
|
|
69
|
+
readonly recommendations: ReadonlyArray<ArchitectureRecommendation>;
|
|
70
|
+
readonly architectureScore: number;
|
|
71
|
+
readonly summary: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Position in text (line and column)
|
|
75
|
+
*/
|
|
76
|
+
export interface Position {
|
|
77
|
+
readonly line: number;
|
|
78
|
+
readonly column: number;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Text range (start and end positions)
|
|
82
|
+
*/
|
|
83
|
+
export interface TextRange {
|
|
84
|
+
readonly start: Position;
|
|
85
|
+
readonly end: Position;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Text edit for automated fixes
|
|
89
|
+
*/
|
|
90
|
+
export interface TextEdit {
|
|
91
|
+
readonly range: TextRange;
|
|
92
|
+
readonly newText: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Automated fix for a validation violation
|
|
96
|
+
*/
|
|
97
|
+
export interface ViolationFix {
|
|
98
|
+
readonly description: string;
|
|
99
|
+
readonly edits: ReadonlyArray<TextEdit>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Code validation violation
|
|
103
|
+
*/
|
|
104
|
+
export interface Violation {
|
|
105
|
+
readonly ruleId: string;
|
|
106
|
+
readonly severity: Severity;
|
|
107
|
+
readonly file: string;
|
|
108
|
+
readonly line: number;
|
|
109
|
+
readonly column: number;
|
|
110
|
+
readonly message: string;
|
|
111
|
+
readonly suggestion?: string;
|
|
112
|
+
readonly fix?: ViolationFix;
|
|
113
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Single file validation result
|
|
117
|
+
*/
|
|
118
|
+
export interface ValidationResult extends BaseAnalysisResult {
|
|
119
|
+
readonly file: string;
|
|
120
|
+
readonly language: string;
|
|
121
|
+
readonly violations: ReadonlyArray<Violation>;
|
|
122
|
+
readonly score: number;
|
|
123
|
+
readonly summary: string;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Batch validation result for multiple files
|
|
127
|
+
*/
|
|
128
|
+
export interface BatchValidationResult extends BaseAnalysisResult {
|
|
129
|
+
readonly files: ReadonlyArray<ValidationResult>;
|
|
130
|
+
readonly totalViolations: number;
|
|
131
|
+
readonly criticalCount: number;
|
|
132
|
+
readonly highCount: number;
|
|
133
|
+
readonly averageScore: number;
|
|
134
|
+
readonly summary: string;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* File information
|
|
138
|
+
*/
|
|
139
|
+
export interface FileInfo {
|
|
140
|
+
readonly path: string;
|
|
141
|
+
readonly relativePath: string;
|
|
142
|
+
readonly lines: number;
|
|
143
|
+
readonly size: number;
|
|
144
|
+
readonly extension: string;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Directory information
|
|
148
|
+
*/
|
|
149
|
+
export interface DirectoryInfo {
|
|
150
|
+
readonly path: string;
|
|
151
|
+
readonly relativePath: string;
|
|
152
|
+
readonly fileCount: number;
|
|
153
|
+
readonly subdirCount: number;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Project structure snapshot
|
|
157
|
+
*/
|
|
158
|
+
export interface ProjectStructure {
|
|
159
|
+
readonly rootPath: string;
|
|
160
|
+
readonly files: ReadonlyArray<FileInfo>;
|
|
161
|
+
readonly directories: ReadonlyArray<DirectoryInfo>;
|
|
162
|
+
readonly filesByExtension: ReadonlyMap<string, ReadonlyArray<FileInfo>>;
|
|
163
|
+
readonly totalLines: number;
|
|
164
|
+
readonly totalFiles: number;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Validation options
|
|
168
|
+
*/
|
|
169
|
+
export interface ValidationOptions {
|
|
170
|
+
readonly rules?: Readonly<Record<string, {
|
|
171
|
+
enabled: boolean;
|
|
172
|
+
severity?: Severity;
|
|
173
|
+
options?: Readonly<Record<string, unknown>>;
|
|
174
|
+
}>>;
|
|
175
|
+
readonly language?: 'typescript' | 'javascript';
|
|
176
|
+
readonly fix?: boolean;
|
|
177
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/types/analysis.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -72,9 +72,9 @@ export default function ApiKeyInput({ onApiKeySet }) {
|
|
|
72
72
|
return formatMessage(uiMessages.save_location || "Note: API key will be saved to {path}", { path: settingsPath });
|
|
73
73
|
}, [uiMessages.save_location]);
|
|
74
74
|
return (React.createElement(Box, { flexDirection: "column", paddingX: 2, paddingY: 1 },
|
|
75
|
-
React.createElement(Text, { color: "yellow" }, uiMessages.title || "🔑
|
|
75
|
+
React.createElement(Text, { color: "yellow" }, uiMessages.title || "🔑 API Key Required"),
|
|
76
76
|
React.createElement(Box, { marginBottom: 1 },
|
|
77
|
-
React.createElement(Text, { color: "gray" }, uiMessages.prompt || "Please enter your
|
|
77
|
+
React.createElement(Text, { color: "gray" }, uiMessages.prompt || "Please enter your API key to continue:")),
|
|
78
78
|
React.createElement(Box, { borderStyle: "round", borderColor: "blue", paddingX: 1, marginBottom: 1 },
|
|
79
79
|
React.createElement(Text, { color: "gray" }, "\u276F "),
|
|
80
80
|
React.createElement(Text, null, displayText)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-key-input.js","sourceRoot":"","sources":["../../../src/ui/components/api-key-input.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api-key-input.js","sourceRoot":"","sources":["../../../src/ui/components/api-key-input.tsx"],"names":[],"mappings":"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"}
|