webmcp-cli 1.0.0 → 1.2.1
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/dist/agent/features/agent-simulator.d.ts +67 -0
- package/dist/agent/features/agent-simulator.js +368 -0
- package/dist/agent/features/agent-simulator.js.map +1 -0
- package/dist/agent/features/index.d.ts +8 -0
- package/dist/agent/features/index.js +9 -0
- package/dist/agent/features/index.js.map +1 -0
- package/dist/agent/features/simulation-judge.d.ts +78 -0
- package/dist/agent/features/simulation-judge.js +276 -0
- package/dist/agent/features/simulation-judge.js.map +1 -0
- package/dist/agent/features/test-case-generator.d.ts +35 -0
- package/dist/agent/features/test-case-generator.js +257 -0
- package/dist/agent/features/test-case-generator.js.map +1 -0
- package/dist/agent/index.d.ts +7 -0
- package/dist/agent/index.js +10 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/llm-client.d.ts +76 -0
- package/dist/agent/llm-client.js +198 -0
- package/dist/agent/llm-client.js.map +1 -0
- package/dist/audit/run-single-page-audit.d.ts +41 -0
- package/dist/audit/run-single-page-audit.js +103 -0
- package/dist/audit/run-single-page-audit.js.map +1 -0
- package/dist/bin/webmcp.d.ts +5 -0
- package/dist/bin/webmcp.js +14 -0
- package/dist/bin/webmcp.js.map +1 -0
- package/dist/browser/audit-runner.d.ts +30 -0
- package/dist/browser/audit-runner.js +77 -0
- package/dist/browser/audit-runner.js.map +1 -0
- package/dist/browser/index.d.ts +6 -0
- package/dist/browser/index.js +7 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/interceptor.d.ts +68 -0
- package/dist/browser/interceptor.js +257 -0
- package/dist/browser/interceptor.js.map +1 -0
- package/dist/browser/playwright.d.ts +98 -0
- package/dist/browser/playwright.js +158 -0
- package/dist/browser/playwright.js.map +1 -0
- package/dist/cli/commands/audit.d.ts +12 -0
- package/dist/cli/commands/audit.js +349 -0
- package/dist/cli/commands/audit.js.map +1 -0
- package/dist/cli/commands/interactive.d.ts +10 -0
- package/dist/cli/commands/interactive.js +34 -0
- package/dist/cli/commands/interactive.js.map +1 -0
- package/dist/cli/index.d.ts +17 -0
- package/dist/cli/index.js +84 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/options/parse-audit-options.d.ts +12 -0
- package/dist/cli/options/parse-audit-options.js +64 -0
- package/dist/cli/options/parse-audit-options.js.map +1 -0
- package/dist/core/constants.d.ts +102 -0
- package/dist/core/constants.js +214 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/types/audit.d.ts +260 -0
- package/dist/core/types/audit.js +5 -0
- package/dist/core/types/audit.js.map +1 -0
- package/dist/core/types/index.d.ts +6 -0
- package/dist/core/types/index.js +7 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/types/rule.d.ts +190 -0
- package/dist/core/types/rule.js +26 -0
- package/dist/core/types/rule.js.map +1 -0
- package/dist/core/types/tool.d.ts +312 -0
- package/dist/core/types/tool.js +6 -0
- package/dist/core/types/tool.js.map +1 -0
- package/dist/detection/declarative.d.ts +27 -0
- package/dist/detection/declarative.js +343 -0
- package/dist/detection/declarative.js.map +1 -0
- package/dist/detection/imperative.d.ts +38 -0
- package/dist/detection/imperative.js +99 -0
- package/dist/detection/imperative.js.map +1 -0
- package/dist/detection/index.d.ts +5 -0
- package/dist/detection/index.js +6 -0
- package/dist/detection/index.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/advice-service.d.ts +38 -0
- package/dist/llm/advice-service.js +243 -0
- package/dist/llm/advice-service.js.map +1 -0
- package/dist/llm/evaluator.d.ts +89 -0
- package/dist/llm/evaluator.js +274 -0
- package/dist/llm/evaluator.js.map +1 -0
- package/dist/llm/index.d.ts +11 -0
- package/dist/llm/index.js +15 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/json-response.d.ts +12 -0
- package/dist/llm/json-response.js +67 -0
- package/dist/llm/json-response.js.map +1 -0
- package/dist/llm/providers/mock.d.ts +29 -0
- package/dist/llm/providers/mock.js +324 -0
- package/dist/llm/providers/mock.js.map +1 -0
- package/dist/llm/providers/openrouter.d.ts +53 -0
- package/dist/llm/providers/openrouter.js +321 -0
- package/dist/llm/providers/openrouter.js.map +1 -0
- package/dist/llm/request-cache.d.ts +28 -0
- package/dist/llm/request-cache.js +99 -0
- package/dist/llm/request-cache.js.map +1 -0
- package/dist/llm/types.d.ts +233 -0
- package/dist/llm/types.js +7 -0
- package/dist/llm/types.js.map +1 -0
- package/dist/rules/best-practices/BP-001.d.ts +11 -0
- package/dist/rules/best-practices/BP-001.js +56 -0
- package/dist/rules/best-practices/BP-001.js.map +1 -0
- package/dist/rules/best-practices/BP-002.d.ts +11 -0
- package/dist/rules/best-practices/BP-002.js +63 -0
- package/dist/rules/best-practices/BP-002.js.map +1 -0
- package/dist/rules/best-practices/BP-003.d.ts +11 -0
- package/dist/rules/best-practices/BP-003.js +68 -0
- package/dist/rules/best-practices/BP-003.js.map +1 -0
- package/dist/rules/coverage/COV-001.d.ts +8 -0
- package/dist/rules/coverage/COV-001.js +51 -0
- package/dist/rules/coverage/COV-001.js.map +1 -0
- package/dist/rules/description/DESC-003.d.ts +13 -0
- package/dist/rules/description/DESC-003.js +96 -0
- package/dist/rules/description/DESC-003.js.map +1 -0
- package/dist/rules/description/DESC-004.d.ts +8 -0
- package/dist/rules/description/DESC-004.js +61 -0
- package/dist/rules/description/DESC-004.js.map +1 -0
- package/dist/rules/description/DESC-005.d.ts +12 -0
- package/dist/rules/description/DESC-005.js +70 -0
- package/dist/rules/description/DESC-005.js.map +1 -0
- package/dist/rules/description/index.d.ts +4 -0
- package/dist/rules/description/index.js +5 -0
- package/dist/rules/description/index.js.map +1 -0
- package/dist/rules/implementation/IMP-001.d.ts +10 -0
- package/dist/rules/implementation/IMP-001.js +36 -0
- package/dist/rules/implementation/IMP-001.js.map +1 -0
- package/dist/rules/implementation/IMP-003.d.ts +9 -0
- package/dist/rules/implementation/IMP-003.js +45 -0
- package/dist/rules/implementation/IMP-003.js.map +1 -0
- package/dist/rules/implementation/IMP-004.d.ts +9 -0
- package/dist/rules/implementation/IMP-004.js +48 -0
- package/dist/rules/implementation/IMP-004.js.map +1 -0
- package/dist/rules/implementation/IMP-005.d.ts +9 -0
- package/dist/rules/implementation/IMP-005.js +54 -0
- package/dist/rules/implementation/IMP-005.js.map +1 -0
- package/dist/rules/implementation/IMP-007.d.ts +8 -0
- package/dist/rules/implementation/IMP-007.js +79 -0
- package/dist/rules/implementation/IMP-007.js.map +1 -0
- package/dist/rules/implementation/IMP-013.d.ts +9 -0
- package/dist/rules/implementation/IMP-013.js +55 -0
- package/dist/rules/implementation/IMP-013.js.map +1 -0
- package/dist/rules/implementation/index.d.ts +9 -0
- package/dist/rules/implementation/index.js +10 -0
- package/dist/rules/implementation/index.js.map +1 -0
- package/dist/rules/index.d.ts +51 -0
- package/dist/rules/index.js +100 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/llm/LLM-001.d.ts +14 -0
- package/dist/rules/llm/LLM-001.js +78 -0
- package/dist/rules/llm/LLM-001.js.map +1 -0
- package/dist/rules/llm/LLM-002.d.ts +14 -0
- package/dist/rules/llm/LLM-002.js +77 -0
- package/dist/rules/llm/LLM-002.js.map +1 -0
- package/dist/rules/llm/LLM-003.d.ts +16 -0
- package/dist/rules/llm/LLM-003.js +82 -0
- package/dist/rules/llm/LLM-003.js.map +1 -0
- package/dist/rules/llm/LLM-004.d.ts +14 -0
- package/dist/rules/llm/LLM-004.js +87 -0
- package/dist/rules/llm/LLM-004.js.map +1 -0
- package/dist/rules/llm/LLM-005.d.ts +16 -0
- package/dist/rules/llm/LLM-005.js +105 -0
- package/dist/rules/llm/LLM-005.js.map +1 -0
- package/dist/rules/llm/index.d.ts +10 -0
- package/dist/rules/llm/index.js +11 -0
- package/dist/rules/llm/index.js.map +1 -0
- package/dist/rules/runner.d.ts +54 -0
- package/dist/rules/runner.js +138 -0
- package/dist/rules/runner.js.map +1 -0
- package/dist/rules/schema/SCHEMA-001.d.ts +9 -0
- package/dist/rules/schema/SCHEMA-001.js +57 -0
- package/dist/rules/schema/SCHEMA-001.js.map +1 -0
- package/dist/rules/schema/SCHEMA-002.d.ts +9 -0
- package/dist/rules/schema/SCHEMA-002.js +59 -0
- package/dist/rules/schema/SCHEMA-002.js.map +1 -0
- package/dist/rules/schema/SCHEMA-003.d.ts +10 -0
- package/dist/rules/schema/SCHEMA-003.js +66 -0
- package/dist/rules/schema/SCHEMA-003.js.map +1 -0
- package/dist/rules/schema/SCHEMA-011.d.ts +10 -0
- package/dist/rules/schema/SCHEMA-011.js +62 -0
- package/dist/rules/schema/SCHEMA-011.js.map +1 -0
- package/dist/rules/security/SEC-001.d.ts +12 -0
- package/dist/rules/security/SEC-001.js +66 -0
- package/dist/rules/security/SEC-001.js.map +1 -0
- package/dist/rules/utils/keywords.d.ts +35 -0
- package/dist/rules/utils/keywords.js +100 -0
- package/dist/rules/utils/keywords.js.map +1 -0
- package/dist/scoring/calculator.d.ts +27 -0
- package/dist/scoring/calculator.js +194 -0
- package/dist/scoring/calculator.js.map +1 -0
- package/dist/scoring/grades.d.ts +34 -0
- package/dist/scoring/grades.js +167 -0
- package/dist/scoring/grades.js.map +1 -0
- package/dist/scoring/index.d.ts +5 -0
- package/dist/scoring/index.js +6 -0
- package/dist/scoring/index.js.map +1 -0
- package/dist/ui/banner.d.ts +21 -0
- package/dist/ui/banner.js +60 -0
- package/dist/ui/banner.js.map +1 -0
- package/dist/ui/design-tokens.d.ts +23 -0
- package/dist/ui/design-tokens.js +58 -0
- package/dist/ui/design-tokens.js.map +1 -0
- package/dist/ui/findings.d.ts +23 -0
- package/dist/ui/findings.js +190 -0
- package/dist/ui/findings.js.map +1 -0
- package/dist/ui/index.d.ts +9 -0
- package/dist/ui/index.js +10 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/ink/App.d.ts +14 -0
- package/dist/ui/ink/App.js +113 -0
- package/dist/ui/ink/App.js.map +1 -0
- package/dist/ui/ink/FullScreenLayout.d.ts +16 -0
- package/dist/ui/ink/FullScreenLayout.js +29 -0
- package/dist/ui/ink/FullScreenLayout.js.map +1 -0
- package/dist/ui/ink/InteractiveApp.d.ts +28 -0
- package/dist/ui/ink/InteractiveApp.js +229 -0
- package/dist/ui/ink/InteractiveApp.js.map +1 -0
- package/dist/ui/ink/RealAuditApp.d.ts +19 -0
- package/dist/ui/ink/RealAuditApp.js +170 -0
- package/dist/ui/ink/RealAuditApp.js.map +1 -0
- package/dist/ui/ink/components/AnimatedProgressBar.d.ts +20 -0
- package/dist/ui/ink/components/AnimatedProgressBar.js +46 -0
- package/dist/ui/ink/components/AnimatedProgressBar.js.map +1 -0
- package/dist/ui/ink/components/AsciiLogo.d.ts +12 -0
- package/dist/ui/ink/components/AsciiLogo.js +35 -0
- package/dist/ui/ink/components/AsciiLogo.js.map +1 -0
- package/dist/ui/ink/components/CategoryBars.d.ts +18 -0
- package/dist/ui/ink/components/CategoryBars.js +18 -0
- package/dist/ui/ink/components/CategoryBars.js.map +1 -0
- package/dist/ui/ink/components/FindingsTable.d.ts +18 -0
- package/dist/ui/ink/components/FindingsTable.js +19 -0
- package/dist/ui/ink/components/FindingsTable.js.map +1 -0
- package/dist/ui/ink/components/Footer.d.ts +15 -0
- package/dist/ui/ink/components/Footer.js +20 -0
- package/dist/ui/ink/components/Footer.js.map +1 -0
- package/dist/ui/ink/components/Header.d.ts +11 -0
- package/dist/ui/ink/components/Header.js +12 -0
- package/dist/ui/ink/components/Header.js.map +1 -0
- package/dist/ui/ink/components/LinkList.d.ts +17 -0
- package/dist/ui/ink/components/LinkList.js +44 -0
- package/dist/ui/ink/components/LinkList.js.map +1 -0
- package/dist/ui/ink/components/Navigation.d.ts +26 -0
- package/dist/ui/ink/components/Navigation.js +62 -0
- package/dist/ui/ink/components/Navigation.js.map +1 -0
- package/dist/ui/ink/components/ProgressBar.d.ts +15 -0
- package/dist/ui/ink/components/ProgressBar.js +14 -0
- package/dist/ui/ink/components/ProgressBar.js.map +1 -0
- package/dist/ui/ink/components/ScoreCard.d.ts +30 -0
- package/dist/ui/ink/components/ScoreCard.js +26 -0
- package/dist/ui/ink/components/ScoreCard.js.map +1 -0
- package/dist/ui/ink/components/SimulationResults.d.ts +33 -0
- package/dist/ui/ink/components/SimulationResults.js +23 -0
- package/dist/ui/ink/components/SimulationResults.js.map +1 -0
- package/dist/ui/ink/components/Spinner.d.ts +11 -0
- package/dist/ui/ink/components/Spinner.js +12 -0
- package/dist/ui/ink/components/Spinner.js.map +1 -0
- package/dist/ui/ink/components/ToolCard.d.ts +23 -0
- package/dist/ui/ink/components/ToolCard.js +20 -0
- package/dist/ui/ink/components/ToolCard.js.map +1 -0
- package/dist/ui/ink/components/shared/Badge.d.ts +21 -0
- package/dist/ui/ink/components/shared/Badge.js +39 -0
- package/dist/ui/ink/components/shared/Badge.js.map +1 -0
- package/dist/ui/ink/components/shared/Card.d.ts +18 -0
- package/dist/ui/ink/components/shared/Card.js +11 -0
- package/dist/ui/ink/components/shared/Card.js.map +1 -0
- package/dist/ui/ink/components/shared/HelpOverlay.d.ts +10 -0
- package/dist/ui/ink/components/shared/HelpOverlay.js +28 -0
- package/dist/ui/ink/components/shared/HelpOverlay.js.map +1 -0
- package/dist/ui/ink/components/shared/LoadingWithTimeout.d.ts +11 -0
- package/dist/ui/ink/components/shared/LoadingWithTimeout.js +21 -0
- package/dist/ui/ink/components/shared/LoadingWithTimeout.js.map +1 -0
- package/dist/ui/ink/components/shared/Menu.d.ts +23 -0
- package/dist/ui/ink/components/shared/Menu.js +43 -0
- package/dist/ui/ink/components/shared/Menu.js.map +1 -0
- package/dist/ui/ink/components/shared/Table.d.ts +23 -0
- package/dist/ui/ink/components/shared/Table.js +40 -0
- package/dist/ui/ink/components/shared/Table.js.map +1 -0
- package/dist/ui/ink/components/views/CrawlingView.d.ts +12 -0
- package/dist/ui/ink/components/views/CrawlingView.js +34 -0
- package/dist/ui/ink/components/views/CrawlingView.js.map +1 -0
- package/dist/ui/ink/components/views/DashboardView.d.ts +21 -0
- package/dist/ui/ink/components/views/DashboardView.js +51 -0
- package/dist/ui/ink/components/views/DashboardView.js.map +1 -0
- package/dist/ui/ink/components/views/FindingDetailView.d.ts +16 -0
- package/dist/ui/ink/components/views/FindingDetailView.js +34 -0
- package/dist/ui/ink/components/views/FindingDetailView.js.map +1 -0
- package/dist/ui/ink/components/views/FindingsView.d.ts +16 -0
- package/dist/ui/ink/components/views/FindingsView.js +79 -0
- package/dist/ui/ink/components/views/FindingsView.js.map +1 -0
- package/dist/ui/ink/components/views/OnboardingView.d.ts +12 -0
- package/dist/ui/ink/components/views/OnboardingView.js +40 -0
- package/dist/ui/ink/components/views/OnboardingView.js.map +1 -0
- package/dist/ui/ink/components/views/SimulationView.d.ts +17 -0
- package/dist/ui/ink/components/views/SimulationView.js +53 -0
- package/dist/ui/ink/components/views/SimulationView.js.map +1 -0
- package/dist/ui/ink/components/views/TestCaseDetailView.d.ts +11 -0
- package/dist/ui/ink/components/views/TestCaseDetailView.js +53 -0
- package/dist/ui/ink/components/views/TestCaseDetailView.js.map +1 -0
- package/dist/ui/ink/components/views/ToolDetailView.d.ts +15 -0
- package/dist/ui/ink/components/views/ToolDetailView.js +25 -0
- package/dist/ui/ink/components/views/ToolDetailView.js.map +1 -0
- package/dist/ui/ink/components/views/ToolsView.d.ts +15 -0
- package/dist/ui/ink/components/views/ToolsView.js +43 -0
- package/dist/ui/ink/components/views/ToolsView.js.map +1 -0
- package/dist/ui/ink/demo.d.ts +6 -0
- package/dist/ui/ink/demo.js +254 -0
- package/dist/ui/ink/demo.js.map +1 -0
- package/dist/ui/ink/hooks/useAnimation.d.ts +29 -0
- package/dist/ui/ink/hooks/useAnimation.js +89 -0
- package/dist/ui/ink/hooks/useAnimation.js.map +1 -0
- package/dist/ui/ink/hooks/useAudit.d.ts +69 -0
- package/dist/ui/ink/hooks/useAudit.js +99 -0
- package/dist/ui/ink/hooks/useAudit.js.map +1 -0
- package/dist/ui/ink/hooks/useCrawlAnimation.d.ts +19 -0
- package/dist/ui/ink/hooks/useCrawlAnimation.js +204 -0
- package/dist/ui/ink/hooks/useCrawlAnimation.js.map +1 -0
- package/dist/ui/ink/hooks/useKeyboardNav.d.ts +23 -0
- package/dist/ui/ink/hooks/useKeyboardNav.js +81 -0
- package/dist/ui/ink/hooks/useKeyboardNav.js.map +1 -0
- package/dist/ui/ink/hooks/useNavigation.d.ts +16 -0
- package/dist/ui/ink/hooks/useNavigation.js +42 -0
- package/dist/ui/ink/hooks/useNavigation.js.map +1 -0
- package/dist/ui/ink/hooks/useTerminalSize.d.ts +10 -0
- package/dist/ui/ink/hooks/useTerminalSize.js +29 -0
- package/dist/ui/ink/hooks/useTerminalSize.js.map +1 -0
- package/dist/ui/ink/index.d.ts +43 -0
- package/dist/ui/ink/index.js +50 -0
- package/dist/ui/ink/index.js.map +1 -0
- package/dist/ui/ink/render.d.ts +24 -0
- package/dist/ui/ink/render.js +14 -0
- package/dist/ui/ink/render.js.map +1 -0
- package/dist/ui/ink/theme.d.ts +37 -0
- package/dist/ui/ink/theme.js +38 -0
- package/dist/ui/ink/theme.js.map +1 -0
- package/dist/ui/ink/types.d.ts +77 -0
- package/dist/ui/ink/types.js +5 -0
- package/dist/ui/ink/types.js.map +1 -0
- package/dist/ui/score-display.d.ts +16 -0
- package/dist/ui/score-display.js +201 -0
- package/dist/ui/score-display.js.map +1 -0
- package/dist/ui/spinner.d.ts +45 -0
- package/dist/ui/spinner.js +112 -0
- package/dist/ui/spinner.js.map +1 -0
- package/dist/ui/utils.d.ts +13 -0
- package/dist/ui/utils.js +25 -0
- package/dist/ui/utils.js.map +1 -0
- package/package.json +61 -9
- package/index.js +0 -105
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scoring/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Banner Display
|
|
3
|
+
*
|
|
4
|
+
* ASCII art banner with gradient colors.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Print the banner to the console
|
|
8
|
+
*/
|
|
9
|
+
export declare function printBanner(version: string): void;
|
|
10
|
+
/**
|
|
11
|
+
* Print a compact banner (for CI/non-interactive mode)
|
|
12
|
+
*/
|
|
13
|
+
export declare function printCompactBanner(version: string): void;
|
|
14
|
+
/**
|
|
15
|
+
* Print a section header
|
|
16
|
+
*/
|
|
17
|
+
export declare function printSectionHeader(title: string): void;
|
|
18
|
+
/**
|
|
19
|
+
* Print a phase header with box
|
|
20
|
+
*/
|
|
21
|
+
export declare function printPhaseHeader(phase: number, title: string): void;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Banner Display
|
|
3
|
+
*
|
|
4
|
+
* ASCII art banner with gradient colors.
|
|
5
|
+
*/
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import gradient from 'gradient-string';
|
|
8
|
+
/**
|
|
9
|
+
* ASCII art banner
|
|
10
|
+
*/
|
|
11
|
+
const BANNER = `
|
|
12
|
+
█████╗ ██████╗ ███████╗███╗ ██╗████████╗
|
|
13
|
+
██╔══██╗██╔════╝ ██╔════╝████╗ ██║╚══██╔══╝
|
|
14
|
+
███████║██║ ███╗█████╗ ██╔██╗ ██║ ██║
|
|
15
|
+
██╔══██║██║ ██║██╔══╝ ██║╚██╗██║ ██║
|
|
16
|
+
██║ ██║╚██████╔╝███████╗██║ ╚████║ ██║
|
|
17
|
+
╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝
|
|
18
|
+
`;
|
|
19
|
+
/**
|
|
20
|
+
* Gradient for the banner (cool blue → cyan → green)
|
|
21
|
+
*/
|
|
22
|
+
const agentGradient = gradient(['#4facfe', '#00f2fe', '#43e97b']);
|
|
23
|
+
/**
|
|
24
|
+
* Print the banner to the console
|
|
25
|
+
*/
|
|
26
|
+
export function printBanner(version) {
|
|
27
|
+
console.log('');
|
|
28
|
+
console.log(agentGradient.multiline(BANNER));
|
|
29
|
+
console.log(chalk.dim(' R E A D Y') +
|
|
30
|
+
chalk.dim(' v' + version));
|
|
31
|
+
console.log('');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Print a compact banner (for CI/non-interactive mode)
|
|
35
|
+
*/
|
|
36
|
+
export function printCompactBanner(version) {
|
|
37
|
+
console.log(chalk.cyan.bold('AgentReady') +
|
|
38
|
+
chalk.dim(` v${version}`) +
|
|
39
|
+
chalk.dim(' — WebMCP Audit Tool'));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Print a section header
|
|
43
|
+
*/
|
|
44
|
+
export function printSectionHeader(title) {
|
|
45
|
+
console.log('');
|
|
46
|
+
console.log(chalk.cyan.bold(` ${title}`));
|
|
47
|
+
console.log(chalk.dim(' ' + '─'.repeat(50)));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Print a phase header with box
|
|
51
|
+
*/
|
|
52
|
+
export function printPhaseHeader(phase, title) {
|
|
53
|
+
const headerText = `Phase ${phase}: ${title}`;
|
|
54
|
+
const border = '─'.repeat(headerText.length + 4);
|
|
55
|
+
console.log('');
|
|
56
|
+
console.log(chalk.dim(` ╭${border}╮`));
|
|
57
|
+
console.log(chalk.dim(' │ ') + chalk.bold.cyan(headerText) + chalk.dim(' │'));
|
|
58
|
+
console.log(chalk.dim(` ╰${border}╯`));
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/ui/banner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,GAAG;;;;;;;CAOd,CAAC;AAEF;;GAEG;AACH,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;QACxB,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,CAC5B,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC7B,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;QACzB,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAClC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,KAAa;IAC3D,MAAM,UAAU,GAAG,SAAS,KAAK,KAAK,KAAK,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Design Tokens
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for all visual constants used by both
|
|
5
|
+
* CLI (chalk/ora) and TUI (ink) rendering paths.
|
|
6
|
+
*/
|
|
7
|
+
export declare const GRADE_COLORS: Record<string, string>;
|
|
8
|
+
export declare function getGradeColor(grade: string): string;
|
|
9
|
+
export declare const SCORE_THRESHOLDS: {
|
|
10
|
+
readonly good: 80;
|
|
11
|
+
readonly moderate: 60;
|
|
12
|
+
};
|
|
13
|
+
export declare function getScoreColor(score: number): string;
|
|
14
|
+
export declare const SEVERITY_COLORS: Record<string, string>;
|
|
15
|
+
export declare function getSeverityColor(severity: string): string;
|
|
16
|
+
export declare const SPINNER_COLOR = "cyan";
|
|
17
|
+
export declare const TRUNCATION: {
|
|
18
|
+
readonly short: 50;
|
|
19
|
+
readonly medium: 80;
|
|
20
|
+
readonly long: 120;
|
|
21
|
+
};
|
|
22
|
+
export declare function truncateText(text: string, maxLength: number): string;
|
|
23
|
+
export declare const STEP_DESCRIPTION_PAD = 50;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Design Tokens
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for all visual constants used by both
|
|
5
|
+
* CLI (chalk/ora) and TUI (ink) rendering paths.
|
|
6
|
+
*/
|
|
7
|
+
// ── Grade Colors ────────────────────────────────────────
|
|
8
|
+
export const GRADE_COLORS = {
|
|
9
|
+
'A+': 'green',
|
|
10
|
+
'A': 'green',
|
|
11
|
+
'B+': 'yellow',
|
|
12
|
+
'B': 'yellow',
|
|
13
|
+
'C+': '#FF8C00',
|
|
14
|
+
'C': '#FF8C00',
|
|
15
|
+
'D': 'red',
|
|
16
|
+
'F': 'red',
|
|
17
|
+
};
|
|
18
|
+
export function getGradeColor(grade) {
|
|
19
|
+
return GRADE_COLORS[grade] || 'white';
|
|
20
|
+
}
|
|
21
|
+
// ── Score Threshold Colors ──────────────────────────────
|
|
22
|
+
export const SCORE_THRESHOLDS = {
|
|
23
|
+
good: 80,
|
|
24
|
+
moderate: 60,
|
|
25
|
+
};
|
|
26
|
+
export function getScoreColor(score) {
|
|
27
|
+
if (score >= SCORE_THRESHOLDS.good)
|
|
28
|
+
return 'green';
|
|
29
|
+
if (score >= SCORE_THRESHOLDS.moderate)
|
|
30
|
+
return 'yellow';
|
|
31
|
+
return 'red';
|
|
32
|
+
}
|
|
33
|
+
// ── Severity Colors ─────────────────────────────────────
|
|
34
|
+
export const SEVERITY_COLORS = {
|
|
35
|
+
critical: 'red',
|
|
36
|
+
warning: 'yellow',
|
|
37
|
+
info: 'blue',
|
|
38
|
+
success: 'green',
|
|
39
|
+
};
|
|
40
|
+
export function getSeverityColor(severity) {
|
|
41
|
+
return SEVERITY_COLORS[severity] || 'white';
|
|
42
|
+
}
|
|
43
|
+
// ── Spinner Color ───────────────────────────────────────
|
|
44
|
+
export const SPINNER_COLOR = 'cyan';
|
|
45
|
+
// ── Truncation ──────────────────────────────────────────
|
|
46
|
+
export const TRUNCATION = {
|
|
47
|
+
short: 50,
|
|
48
|
+
medium: 80,
|
|
49
|
+
long: 120,
|
|
50
|
+
};
|
|
51
|
+
export function truncateText(text, maxLength) {
|
|
52
|
+
if (text.length <= maxLength)
|
|
53
|
+
return text;
|
|
54
|
+
return text.substring(0, maxLength - 3) + '...';
|
|
55
|
+
}
|
|
56
|
+
// ── Step Description Padding ────────────────────────────
|
|
57
|
+
export const STEP_DESCRIPTION_PAD = 50;
|
|
58
|
+
//# sourceMappingURL=design-tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-tokens.js","sourceRoot":"","sources":["../../src/ui/design-tokens.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,2DAA2D;AAC3D,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,IAAI,EAAE,OAAO;IACb,GAAG,EAAG,OAAO;IACb,IAAI,EAAE,QAAQ;IACd,GAAG,EAAG,QAAQ;IACd,IAAI,EAAE,SAAS;IACf,GAAG,EAAG,SAAS;IACf,GAAG,EAAG,KAAK;IACX,GAAG,EAAG,KAAK;CACZ,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC;AACxC,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,EAAE;IACR,QAAQ,EAAE,EAAE;CACJ,CAAC;AAEX,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,KAAK,IAAI,gBAAgB,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC;IACnD,IAAI,KAAK,IAAI,gBAAgB,CAAC,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACxD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,eAAe,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC;AAC9C,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC;AAEpC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,GAAG;CACD,CAAC;AAEX,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,SAAiB;IAC1D,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAClD,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Findings Display
|
|
3
|
+
*
|
|
4
|
+
* Renders audit findings and recommendations.
|
|
5
|
+
*/
|
|
6
|
+
import type { Finding } from '../core/types/rule.js';
|
|
7
|
+
import type { Recommendation, DetectedTool } from '../core/types/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Render findings as a table
|
|
10
|
+
*/
|
|
11
|
+
export declare function renderFindingsTable(findings: Finding[]): void;
|
|
12
|
+
/**
|
|
13
|
+
* Render recommendations
|
|
14
|
+
*/
|
|
15
|
+
export declare function renderRecommendations(recs: Recommendation[]): void;
|
|
16
|
+
/**
|
|
17
|
+
* Render a tool card
|
|
18
|
+
*/
|
|
19
|
+
export declare function renderToolCard(tool: DetectedTool, issues: Finding[], isExisting: boolean): string;
|
|
20
|
+
/**
|
|
21
|
+
* Render tools list (compact)
|
|
22
|
+
*/
|
|
23
|
+
export declare function renderToolsList(tools: DetectedTool[]): void;
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Findings Display
|
|
3
|
+
*
|
|
4
|
+
* Renders audit findings and recommendations.
|
|
5
|
+
*/
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import Table from 'cli-table3';
|
|
8
|
+
import figures from 'figures';
|
|
9
|
+
import boxen from 'boxen';
|
|
10
|
+
import { truncateText } from './design-tokens.js';
|
|
11
|
+
/**
|
|
12
|
+
* Render findings as a table
|
|
13
|
+
*/
|
|
14
|
+
export function renderFindingsTable(findings) {
|
|
15
|
+
if (findings.length === 0) {
|
|
16
|
+
console.log(chalk.green(` ${figures.tick} No issues found`));
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
// Sort: critical first, then warning, then info
|
|
20
|
+
const sorted = [...findings].sort((a, b) => {
|
|
21
|
+
const order = { critical: 0, warning: 1, info: 2 };
|
|
22
|
+
return order[a.severity] - order[b.severity];
|
|
23
|
+
});
|
|
24
|
+
const table = new Table({
|
|
25
|
+
head: [
|
|
26
|
+
chalk.dim(''),
|
|
27
|
+
chalk.dim('Rule'),
|
|
28
|
+
chalk.dim('Severity'),
|
|
29
|
+
chalk.dim('Tool/Page'),
|
|
30
|
+
chalk.dim('Issue'),
|
|
31
|
+
],
|
|
32
|
+
colWidths: [3, 10, 9, 16, 38],
|
|
33
|
+
style: {
|
|
34
|
+
head: [],
|
|
35
|
+
border: ['dim'],
|
|
36
|
+
},
|
|
37
|
+
wordWrap: true,
|
|
38
|
+
});
|
|
39
|
+
for (const finding of sorted.slice(0, 15)) {
|
|
40
|
+
// Show top 15
|
|
41
|
+
const icon = finding.severity === 'critical'
|
|
42
|
+
? chalk.red(figures.cross)
|
|
43
|
+
: finding.severity === 'warning'
|
|
44
|
+
? chalk.yellow(figures.warning)
|
|
45
|
+
: chalk.blue(figures.info);
|
|
46
|
+
const severityColor = finding.severity === 'critical'
|
|
47
|
+
? chalk.red
|
|
48
|
+
: finding.severity === 'warning'
|
|
49
|
+
? chalk.yellow
|
|
50
|
+
: chalk.blue;
|
|
51
|
+
table.push([
|
|
52
|
+
icon,
|
|
53
|
+
chalk.white(finding.ruleId),
|
|
54
|
+
severityColor(finding.severity.toUpperCase()),
|
|
55
|
+
chalk.dim(finding.tool ?? finding.page ?? '—'),
|
|
56
|
+
chalk.white(finding.message),
|
|
57
|
+
]);
|
|
58
|
+
}
|
|
59
|
+
console.log(table.toString());
|
|
60
|
+
if (sorted.length > 15) {
|
|
61
|
+
console.log(chalk.dim(` ... and ${sorted.length - 15} more issues`));
|
|
62
|
+
}
|
|
63
|
+
// Summary line
|
|
64
|
+
const criticalCount = findings.filter((f) => f.severity === 'critical').length;
|
|
65
|
+
const warningCount = findings.filter((f) => f.severity === 'warning').length;
|
|
66
|
+
const infoCount = findings.filter((f) => f.severity === 'info').length;
|
|
67
|
+
console.log('');
|
|
68
|
+
console.log(` ${chalk.bold('Total:')} ` +
|
|
69
|
+
(criticalCount > 0 ? chalk.red(`${criticalCount} critical `) : '') +
|
|
70
|
+
(warningCount > 0 ? chalk.yellow(`${warningCount} warnings `) : '') +
|
|
71
|
+
(infoCount > 0 ? chalk.blue(`${infoCount} info`) : ''));
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Render recommendations
|
|
75
|
+
*/
|
|
76
|
+
export function renderRecommendations(recs) {
|
|
77
|
+
if (recs.length === 0) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
console.log('');
|
|
81
|
+
console.log(chalk.bold.cyan(' Top Actions to Improve Your Score'));
|
|
82
|
+
console.log(chalk.dim(' ' + '─'.repeat(Math.min(50, (process.stdout.columns || 80) - 4))));
|
|
83
|
+
console.log('');
|
|
84
|
+
for (const rec of recs.slice(0, 5)) {
|
|
85
|
+
const num = chalk.bold.white(` ${rec.priority}.`);
|
|
86
|
+
const action = chalk.white(rec.action);
|
|
87
|
+
const impact = chalk.green(`+${rec.scoreImpact} pts`);
|
|
88
|
+
const effortColor = rec.effort === 'low'
|
|
89
|
+
? chalk.green
|
|
90
|
+
: rec.effort === 'medium'
|
|
91
|
+
? chalk.yellow
|
|
92
|
+
: chalk.red;
|
|
93
|
+
const effortLabel = effortColor(`[${rec.effort} effort]`);
|
|
94
|
+
console.log(`${num} ${action}`);
|
|
95
|
+
console.log(` ${impact} ${effortLabel}`);
|
|
96
|
+
console.log('');
|
|
97
|
+
}
|
|
98
|
+
// Show projected score
|
|
99
|
+
const totalImpact = recs.slice(0, 5).reduce((sum, r) => sum + r.scoreImpact, 0);
|
|
100
|
+
console.log(chalk.dim(' If you implement all 5: ') +
|
|
101
|
+
chalk.bold.green(`+${totalImpact} points projected improvement`));
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Render a tool card
|
|
105
|
+
*/
|
|
106
|
+
export function renderToolCard(tool, issues, isExisting) {
|
|
107
|
+
const statusIcon = isExisting
|
|
108
|
+
? chalk.green(figures.tick)
|
|
109
|
+
: chalk.yellow(figures.star);
|
|
110
|
+
const statusLabel = isExisting
|
|
111
|
+
? chalk.green('REGISTERED')
|
|
112
|
+
: chalk.yellow('SUGGESTED');
|
|
113
|
+
let content = '';
|
|
114
|
+
content += `${statusIcon} ${chalk.bold.white(tool.name)} ${chalk.dim('—')} ${statusLabel}\n`;
|
|
115
|
+
content += chalk.dim('─'.repeat(Math.min(50, (process.stdout.columns || 80) - 4))) + '\n';
|
|
116
|
+
// Description
|
|
117
|
+
content +=
|
|
118
|
+
chalk.cyan('Description: ') +
|
|
119
|
+
chalk.white(tool.description || chalk.dim('(none)')) +
|
|
120
|
+
'\n';
|
|
121
|
+
content += '\n';
|
|
122
|
+
// Parameters
|
|
123
|
+
content += chalk.cyan('Parameters:') + '\n';
|
|
124
|
+
if (tool.inputSchema?.properties) {
|
|
125
|
+
const props = tool.inputSchema.properties;
|
|
126
|
+
const required = tool.inputSchema.required || [];
|
|
127
|
+
const entries = Object.entries(props);
|
|
128
|
+
entries.forEach(([name, schema], i) => {
|
|
129
|
+
const isLast = i === entries.length - 1;
|
|
130
|
+
const prefix = isLast ? '└── ' : '├── ';
|
|
131
|
+
const isReq = required.includes(name);
|
|
132
|
+
const nameStr = chalk.white(name);
|
|
133
|
+
const schemaObj = schema;
|
|
134
|
+
const typeStr = chalk.dim(`(${schemaObj['type'] || 'any'}${isReq ? ', required' : ''})`);
|
|
135
|
+
const descStr = schemaObj['description']
|
|
136
|
+
? chalk.dim(' — ') + chalk.dim(String(schemaObj['description']))
|
|
137
|
+
: '';
|
|
138
|
+
content += ` ${chalk.dim(prefix)}${nameStr} ${typeStr}${descStr}\n`;
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
content += chalk.dim(' (no parameters defined)') + '\n';
|
|
143
|
+
}
|
|
144
|
+
// Issues
|
|
145
|
+
if (issues.length > 0) {
|
|
146
|
+
content += '\n';
|
|
147
|
+
content += chalk.cyan('Issues:') + '\n';
|
|
148
|
+
for (const issue of issues) {
|
|
149
|
+
const icon = issue.severity === 'critical'
|
|
150
|
+
? chalk.red(figures.cross)
|
|
151
|
+
: issue.severity === 'warning'
|
|
152
|
+
? chalk.yellow(figures.warning)
|
|
153
|
+
: chalk.blue(figures.info);
|
|
154
|
+
content += ` ${icon} ${chalk.dim(issue.ruleId + ':')} ${issue.message}\n`;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// Determine border color
|
|
158
|
+
const borderColor = issues.some((i) => i.severity === 'critical')
|
|
159
|
+
? 'red'
|
|
160
|
+
: issues.some((i) => i.severity === 'warning')
|
|
161
|
+
? 'yellow'
|
|
162
|
+
: isExisting
|
|
163
|
+
? 'green'
|
|
164
|
+
: 'cyan';
|
|
165
|
+
return boxen(content.trimEnd(), {
|
|
166
|
+
padding: { top: 0, bottom: 0, left: 1, right: 1 },
|
|
167
|
+
borderStyle: 'round',
|
|
168
|
+
borderColor: borderColor,
|
|
169
|
+
dimBorder: true,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Render tools list (compact)
|
|
174
|
+
*/
|
|
175
|
+
export function renderToolsList(tools) {
|
|
176
|
+
if (tools.length === 0) {
|
|
177
|
+
console.log(chalk.dim(' No tools detected'));
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
for (const tool of tools) {
|
|
181
|
+
const sourceIcon = tool.source === 'imperative' ? 'JS' : 'HTML';
|
|
182
|
+
const sourceColor = tool.source === 'imperative' ? chalk.yellow : chalk.cyan;
|
|
183
|
+
console.log(` ${chalk.green(figures.tick)} ${chalk.bold(tool.name)} ` +
|
|
184
|
+
chalk.dim(`[${sourceColor(sourceIcon)}]`) +
|
|
185
|
+
(tool.description
|
|
186
|
+
? chalk.dim(` — ${truncateText(tool.description, 50)}`)
|
|
187
|
+
: ''));
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=findings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findings.js","sourceRoot":"","sources":["../../src/ui/findings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAmB;IACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,gDAAgD;IAChD,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,IAAI,EAAE;YACJ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACb,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;YACjB,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;YACrB,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;YACtB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;SACnB;QACD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;QAC7B,KAAK,EAAE;YACL,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,CAAC,KAAK,CAAC;SAChB;QACD,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1C,cAAc;QACd,MAAM,IAAI,GACR,OAAO,CAAC,QAAQ,KAAK,UAAU;YAC7B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;YAC1B,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;gBAChC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC/B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,aAAa,GACjB,OAAO,CAAC,QAAQ,KAAK,UAAU;YAC7B,CAAC,CAAC,KAAK,CAAC,GAAG;YACX,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;gBAChC,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAEjB,KAAK,CAAC,IAAI,CAAC;YACT,IAAI;YACJ,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAC3B,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC7C,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC;YAC9C,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE9B,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,MAAM,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,eAAe;IACf,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;IAC/E,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAC7E,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAEvE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG;QAC1B,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,YAAY,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACzD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAsB;IAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,WAAW,MAAM,CAAC,CAAC;QAEtD,MAAM,WAAW,GACf,GAAG,CAAC,MAAM,KAAK,KAAK;YAClB,CAAC,CAAC,KAAK,CAAC,KAAK;YACb,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ;gBACzB,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QAChB,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,MAAM,UAAU,CAAC,CAAC;QAE1D,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,KAAK,WAAW,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,uBAAuB;IACvB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,+BAA+B,CAAC,CACnE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAkB,EAClB,MAAiB,EACjB,UAAmB;IAEnB,MAAM,UAAU,GAAG,UAAU;QAC3B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,WAAW,GAAG,UAAU;QAC5B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;QAC3B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAE9B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,OAAO,IAAI,GAAG,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,WAAW,IAAI,CAAC;IAC7F,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAE1F,cAAc;IACd,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;YAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,CAAC;IACP,OAAO,IAAI,IAAI,CAAC;IAEhB,aAAa;IACb,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IAC5C,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC;QAEjD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEtC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,MAAiC,CAAC;YACpD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CACvB,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,CAC9D,CAAC;YACF,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC;gBACtC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;gBAChE,CAAC,CAAC,EAAE,CAAC;YAEP,OAAO,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,IAAI,OAAO,GAAG,OAAO,IAAI,CAAC;QACvE,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,GAAG,IAAI,CAAC;IAC3D,CAAC;IAED,SAAS;IACT,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,IAAI,CAAC;QAChB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,GACR,KAAK,CAAC,QAAQ,KAAK,UAAU;gBAC3B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC1B,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS;oBAC9B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;oBAC/B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC;QAC/D,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;YAC9C,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,MAAM,CAAC;IAEX,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;QAC9B,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QACjD,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,WAAkD;QAC/D,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAqB;IACnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAChE,MAAM,WAAW,GACf,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAE3D,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACxD,KAAK,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC;YACzC,CAAC,IAAI,CAAC,WAAW;gBACf,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC;gBACvD,CAAC,CAAC,EAAE,CAAC,CACV,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/ui/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI Module
|
|
3
|
+
*/
|
|
4
|
+
export * from './design-tokens.js';
|
|
5
|
+
export * from './utils.js';
|
|
6
|
+
export * from './banner.js';
|
|
7
|
+
export * from './spinner.js';
|
|
8
|
+
export * from './score-display.js';
|
|
9
|
+
export * from './findings.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AuditApp Component
|
|
3
|
+
*
|
|
4
|
+
* Main Ink application for the AgentReady audit CLI
|
|
5
|
+
*/
|
|
6
|
+
import type { AuditConfig } from '../../core/types/audit.js';
|
|
7
|
+
interface AuditAppProps {
|
|
8
|
+
url: string;
|
|
9
|
+
version: string;
|
|
10
|
+
config: AuditConfig;
|
|
11
|
+
onAuditStart?: () => Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
export declare function AuditApp({ url, version, config }: AuditAppProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* AuditApp Component
|
|
4
|
+
*
|
|
5
|
+
* Main Ink application for the AgentReady audit CLI
|
|
6
|
+
*/
|
|
7
|
+
import { Box, Text, Newline, Static } from 'ink';
|
|
8
|
+
import { useState, useEffect } from 'react';
|
|
9
|
+
import { Header } from './components/Header.js';
|
|
10
|
+
import { Spinner } from './components/Spinner.js';
|
|
11
|
+
import { ProgressBar } from './components/ProgressBar.js';
|
|
12
|
+
import { ScoreCard, ScoreBreakdown } from './components/ScoreCard.js';
|
|
13
|
+
import { CategoryBars } from './components/CategoryBars.js';
|
|
14
|
+
import { FindingsTable } from './components/FindingsTable.js';
|
|
15
|
+
import { ToolsList } from './components/ToolCard.js';
|
|
16
|
+
import { SimulationResults } from './components/SimulationResults.js';
|
|
17
|
+
import { useAudit } from './hooks/useAudit.js';
|
|
18
|
+
import { useAnimatedScore } from './hooks/useAnimation.js';
|
|
19
|
+
// Phase display configuration
|
|
20
|
+
const PHASE_LABELS = {
|
|
21
|
+
init: 'Initializing',
|
|
22
|
+
browser: 'Launching browser',
|
|
23
|
+
crawling: 'Crawling pages',
|
|
24
|
+
detecting: 'Detecting tools',
|
|
25
|
+
analyzing: 'Running rules',
|
|
26
|
+
simulation: 'Agent simulation',
|
|
27
|
+
complete: 'Complete',
|
|
28
|
+
error: 'Error',
|
|
29
|
+
};
|
|
30
|
+
export function AuditApp({ url, version, config }) {
|
|
31
|
+
const { state, setPhase, setProgress, setTools, setFindings, setScore, complete, setError } = useAudit();
|
|
32
|
+
const [completedSteps, setCompletedSteps] = useState([]);
|
|
33
|
+
// Animated score
|
|
34
|
+
const targetScore = state.score?.total ?? 0;
|
|
35
|
+
const { currentScore, isAnimating } = useAnimatedScore({
|
|
36
|
+
targetScore,
|
|
37
|
+
duration: 1500,
|
|
38
|
+
easing: 'easeOut',
|
|
39
|
+
});
|
|
40
|
+
// Demo: Simulate audit phases (in real implementation, this connects to actual audit logic)
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
// This is a placeholder - actual integration will call the audit functions
|
|
43
|
+
const simulateAudit = async () => {
|
|
44
|
+
try {
|
|
45
|
+
// Phase 1: Browser
|
|
46
|
+
setPhase('browser', 'Launching Chromium');
|
|
47
|
+
await delay(800);
|
|
48
|
+
addCompletedStep('Browser launched');
|
|
49
|
+
// Phase 2: Crawling
|
|
50
|
+
setPhase('crawling', 'Loading page');
|
|
51
|
+
setProgress(0, 1, 'Loading');
|
|
52
|
+
await delay(1000);
|
|
53
|
+
setProgress(1, 1, 'Loaded');
|
|
54
|
+
addCompletedStep(`Loaded: ${url}`);
|
|
55
|
+
// Phase 3: Detection
|
|
56
|
+
setPhase('detecting', 'Scanning for tools');
|
|
57
|
+
await delay(600);
|
|
58
|
+
// Mock tools
|
|
59
|
+
const mockTools = [
|
|
60
|
+
{ name: 'search-flights', description: 'Search for available flights', source: 'imperative', pageUrl: url, inputSchema: { type: 'object', properties: { origin: { type: 'string' }, destination: { type: 'string' }, date: { type: 'string' } } } },
|
|
61
|
+
{ name: 'book-flight', description: 'Book a selected flight', source: 'imperative', pageUrl: url, inputSchema: { type: 'object', properties: { flightId: { type: 'string' }, passengers: { type: 'number' } } } },
|
|
62
|
+
];
|
|
63
|
+
setTools(mockTools);
|
|
64
|
+
addCompletedStep(`Found ${mockTools.length} tools`);
|
|
65
|
+
// Phase 4: Analysis
|
|
66
|
+
setPhase('analyzing', 'Running audit rules');
|
|
67
|
+
await delay(800);
|
|
68
|
+
// Mock findings
|
|
69
|
+
const mockFindings = [
|
|
70
|
+
{ ruleId: 'tool-has-description', severity: 'warning', message: 'Tool description is too short', scoreImpact: 5 },
|
|
71
|
+
];
|
|
72
|
+
setFindings(mockFindings);
|
|
73
|
+
addCompletedStep('Rules completed');
|
|
74
|
+
// Phase 5: Score
|
|
75
|
+
const mockScore = {
|
|
76
|
+
total: 78,
|
|
77
|
+
grade: 'B',
|
|
78
|
+
categories: [
|
|
79
|
+
{ id: 'implementation', name: 'Implementation', score: 40, maxScore: 45, percentage: 89 },
|
|
80
|
+
{ id: 'description', name: 'Description', score: 25, maxScore: 35, percentage: 71 },
|
|
81
|
+
{ id: 'schema', name: 'Schema', score: 13, maxScore: 20, percentage: 65 },
|
|
82
|
+
],
|
|
83
|
+
issueCount: { critical: 0, warning: 1, info: 0 },
|
|
84
|
+
};
|
|
85
|
+
setScore(mockScore);
|
|
86
|
+
// Complete
|
|
87
|
+
await delay(2000); // Let score animation run
|
|
88
|
+
complete();
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
setError(err instanceof Error ? err.message : 'Unknown error');
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
simulateAudit();
|
|
95
|
+
}, [url]);
|
|
96
|
+
const addCompletedStep = (step) => {
|
|
97
|
+
setCompletedSteps(prev => [...prev, step]);
|
|
98
|
+
};
|
|
99
|
+
const isRunning = !['complete', 'error'].includes(state.phase);
|
|
100
|
+
const showScore = state.score !== null;
|
|
101
|
+
return (_jsxs(Box, { flexDirection: "column", paddingY: 1, children: [_jsx(Header, { url: url, version: version }), _jsx(Static, { items: completedSteps, children: (step, index) => (_jsxs(Box, { paddingX: 2, children: [_jsx(Text, { color: "green", children: "\u2713" }), _jsxs(Text, { children: [" ", step] })] }, index)) }), isRunning && (_jsx(Box, { paddingX: 2, marginTop: 1, children: _jsx(Spinner, { label: state.phaseMessage }) })), state.phase === 'crawling' && state.progress.total > 0 && (_jsx(Box, { paddingX: 2, marginTop: 1, children: _jsx(ProgressBar, { value: (state.progress.current / state.progress.total) * 100, label: state.progress.label }) })), showScore && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Newline, {}), _jsx(Box, { paddingX: 2, justifyContent: "center", children: _jsx(ScoreCard, { score: isAnimating ? currentScore : state.score.total, grade: state.score.grade }) }), state.score.categories && (_jsx(Box, { marginTop: 1, children: _jsx(CategoryBars, { categories: state.score.categories.map(c => ({
|
|
102
|
+
id: c.id,
|
|
103
|
+
name: c.name,
|
|
104
|
+
score: c.score,
|
|
105
|
+
maxScore: c.maxScore,
|
|
106
|
+
percentage: c.percentage,
|
|
107
|
+
})) }) })), state.tools.length > 0 && (_jsx(Box, { marginTop: 1, children: _jsx(ToolsList, { tools: state.tools, compact: true }) })), state.findings.length > 0 && (_jsx(Box, { marginTop: 1, children: _jsx(FindingsTable, { findings: state.findings.map((f, i) => ({ ...f, id: String(i) })) }) }))] })), state.phase === 'error' && (_jsx(Box, { paddingX: 2, marginTop: 1, children: _jsxs(Text, { color: "red", children: ["Error: ", state.error] }) })), state.phase === 'complete' && (_jsx(Box, { paddingX: 2, marginTop: 1, children: _jsxs(Text, { dimColor: true, children: ["Audit completed in ", (state.duration / 1000).toFixed(1), "s"] }) }))] }));
|
|
108
|
+
}
|
|
109
|
+
// Helper
|
|
110
|
+
function delay(ms) {
|
|
111
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=App.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/ui/ink/App.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FullScreenLayout Component
|
|
3
|
+
*
|
|
4
|
+
* Full-screen container that fills the terminal with Web-MCP.net branding
|
|
5
|
+
*/
|
|
6
|
+
import type { ReactNode } from 'react';
|
|
7
|
+
interface FullScreenLayoutProps {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
url: string;
|
|
10
|
+
version: string;
|
|
11
|
+
navigationWidth?: number;
|
|
12
|
+
showBack?: boolean;
|
|
13
|
+
onQuit?: () => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function FullScreenLayout({ children, url, version, navigationWidth, showBack, onQuit, }: FullScreenLayoutProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* FullScreenLayout Component
|
|
4
|
+
*
|
|
5
|
+
* Full-screen container that fills the terminal with Web-MCP.net branding
|
|
6
|
+
*/
|
|
7
|
+
import { Box, Text, useApp, useInput } from 'ink';
|
|
8
|
+
import { useTerminalSize } from './hooks/useTerminalSize.js';
|
|
9
|
+
import { Footer } from './components/Footer.js';
|
|
10
|
+
import { getDomain } from '../utils.js';
|
|
11
|
+
export function FullScreenLayout({ children, url, version, navigationWidth = 26, showBack = false, onQuit, }) {
|
|
12
|
+
const { width, height } = useTerminalSize();
|
|
13
|
+
const { exit } = useApp();
|
|
14
|
+
// Handle quit
|
|
15
|
+
useInput((input, key) => {
|
|
16
|
+
if (input === 'q' || (key.ctrl && input === 'c')) {
|
|
17
|
+
if (onQuit) {
|
|
18
|
+
onQuit();
|
|
19
|
+
}
|
|
20
|
+
exit();
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
// Calculate content height (total - header - footer)
|
|
24
|
+
const headerHeight = 3;
|
|
25
|
+
const footerHeight = 2;
|
|
26
|
+
const contentHeight = Math.max(10, height - headerHeight - footerHeight);
|
|
27
|
+
return (_jsxs(Box, { flexDirection: "column", width: width, height: height, children: [_jsxs(Box, { borderStyle: "single", borderBottom: true, borderTop: false, borderLeft: false, borderRight: false, paddingX: 1, justifyContent: "space-between", children: [_jsxs(Box, { gap: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "Web-MCP" }), _jsx(Text, { bold: true, color: "magenta", children: ".net" }), _jsxs(Text, { dimColor: true, children: [" v", version] })] }), _jsxs(Box, { gap: 1, children: [_jsx(Text, { dimColor: true, children: "Auditing:" }), _jsx(Text, { color: "cyan", children: getDomain(url) })] })] }), _jsx(Box, { flexGrow: 1, height: contentHeight, children: children }), _jsx(Footer, { showBack: showBack })] }));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=FullScreenLayout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FullScreenLayout.js","sourceRoot":"","sources":["../../../src/ui/ink/FullScreenLayout.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAWxC,MAAM,UAAU,gBAAgB,CAAC,EAC/B,QAAQ,EACR,GAAG,EACH,OAAO,EACP,eAAe,GAAG,EAAE,EACpB,QAAQ,GAAG,KAAK,EAChB,MAAM,GACgB;IACtB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1B,cAAc;IACd,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,KAAK,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,EAAE,CAAC;YACX,CAAC;YACD,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,MAAM,YAAY,GAAG,CAAC,CAAC;IACvB,MAAM,YAAY,GAAG,CAAC,CAAC;IACvB,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,CAAC,CAAC;IAEzE,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,aAGd,MAAC,GAAG,IACF,WAAW,EAAC,QAAQ,EACpB,YAAY,QACZ,SAAS,EAAE,KAAK,EAChB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,CAAC,EACX,cAAc,EAAC,eAAe,aAE9B,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aACT,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,wBAAe,EACtC,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,SAAS,qBAAY,EACtC,MAAC,IAAI,IAAC,QAAQ,yBAAI,OAAO,IAAQ,IAC7B,EACN,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aACT,KAAC,IAAI,IAAC,QAAQ,gCAAiB,EAC/B,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,SAAS,CAAC,GAAG,CAAC,GAAQ,IACtC,IACF,EAGN,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,YACpC,QAAQ,GACL,EAGN,KAAC,MAAM,IAAC,QAAQ,EAAE,QAAQ,GAAI,IAC1B,CACP,CAAC;AACJ,CAAC"}
|