@tyroneross/build-loop 0.30.3
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/.agents/plugins/marketplace.json +10 -0
- package/.claude-plugin/marketplace.json +38 -0
- package/.claude-plugin/plugin.json +30 -0
- package/.codex-plugin/plugin.json +41 -0
- package/.cursor/rules/build-loop-surface.mdc +22 -0
- package/AGENTS.md +498 -0
- package/LICENSE +202 -0
- package/README.md +403 -0
- package/agents/alignment-checker.md +124 -0
- package/agents/api-assessor.md +136 -0
- package/agents/architecture-scout.md +185 -0
- package/agents/assessment-orchestrator.md +163 -0
- package/agents/build-orchestrator.md +198 -0
- package/agents/database-assessor.md +133 -0
- package/agents/design-contract-specialist.md +239 -0
- package/agents/fact-checker.md +69 -0
- package/agents/fix-critique.md +161 -0
- package/agents/frontend-assessor.md +136 -0
- package/agents/implementer.md +185 -0
- package/agents/independent-auditor.md +143 -0
- package/agents/mock-scanner.md +78 -0
- package/agents/optimize-runner.md +112 -0
- package/agents/overfitting-reviewer.md +96 -0
- package/agents/performance-assessor.md +159 -0
- package/agents/plan-critic.md +85 -0
- package/agents/promotion-reviewer.md +121 -0
- package/agents/recurring-pattern-detector.md +248 -0
- package/agents/retrospective-synthesizer.md +109 -0
- package/agents/root-cause-investigator.md +285 -0
- package/agents/scope-auditor.md +121 -0
- package/agents/security-reviewer.md +151 -0
- package/agents/self-improvement-architect.md +125 -0
- package/agents/synthesis-critic.md +99 -0
- package/agents/transcript-pattern-miner.md +165 -0
- package/agents/ui-validator.md +193 -0
- package/codex-skills/build-loop/SKILL.md +20 -0
- package/codex-skills/debug-loop/SKILL.md +18 -0
- package/codex-skills/handoff/SKILL.md +22 -0
- package/codex-skills/knowledge/SKILL.md +21 -0
- package/codex-skills/optimize/SKILL.md +18 -0
- package/codex-skills/research/SKILL.md +18 -0
- package/commands/agent-rally-point.md +301 -0
- package/commands/assess.md +41 -0
- package/commands/debug.md +20 -0
- package/commands/debugger-detail.md +34 -0
- package/commands/debugger-scan.md +15 -0
- package/commands/debugger-status.md +20 -0
- package/commands/debugger.md +32 -0
- package/commands/handoff.md +113 -0
- package/commands/knowledge-review.md +16 -0
- package/commands/optimize.md +31 -0
- package/commands/plan-verify.md +39 -0
- package/commands/promote-experiment.md +129 -0
- package/commands/research.md +22 -0
- package/commands/run.md +12 -0
- package/commands/self-review.md +51 -0
- package/commands/start-prd.md +57 -0
- package/commands/test.md +34 -0
- package/dist/src/assessment-orchestrator.d.ts +78 -0
- package/dist/src/assessment-orchestrator.d.ts.map +1 -0
- package/dist/src/assessment-orchestrator.js +304 -0
- package/dist/src/assessment-orchestrator.js.map +1 -0
- package/dist/src/audit-miner.d.ts +21 -0
- package/dist/src/audit-miner.d.ts.map +1 -0
- package/dist/src/audit-miner.js +421 -0
- package/dist/src/audit-miner.js.map +1 -0
- package/dist/src/batch-operations.d.ts +30 -0
- package/dist/src/batch-operations.d.ts.map +1 -0
- package/dist/src/batch-operations.js +339 -0
- package/dist/src/batch-operations.js.map +1 -0
- package/dist/src/config.d.ts +83 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +176 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/context-engine.d.ts +45 -0
- package/dist/src/context-engine.d.ts.map +1 -0
- package/dist/src/context-engine.js +135 -0
- package/dist/src/context-engine.js.map +1 -0
- package/dist/src/debug-wrapper.d.ts +58 -0
- package/dist/src/debug-wrapper.d.ts.map +1 -0
- package/dist/src/debug-wrapper.js +285 -0
- package/dist/src/debug-wrapper.js.map +1 -0
- package/dist/src/index.d.ts +31 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +149 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/interactive-verifier.d.ts +26 -0
- package/dist/src/interactive-verifier.d.ts.map +1 -0
- package/dist/src/interactive-verifier.js +435 -0
- package/dist/src/interactive-verifier.js.map +1 -0
- package/dist/src/lessons.d.ts +59 -0
- package/dist/src/lessons.d.ts.map +1 -0
- package/dist/src/lessons.js +172 -0
- package/dist/src/lessons.js.map +1 -0
- package/dist/src/log-reader.d.ts +39 -0
- package/dist/src/log-reader.d.ts.map +1 -0
- package/dist/src/log-reader.js +291 -0
- package/dist/src/log-reader.js.map +1 -0
- package/dist/src/logger.d.ts +59 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +328 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/parallel-retrieval.d.ts +52 -0
- package/dist/src/parallel-retrieval.d.ts.map +1 -0
- package/dist/src/parallel-retrieval.js +309 -0
- package/dist/src/parallel-retrieval.js.map +1 -0
- package/dist/src/pattern-extractor.d.ts +30 -0
- package/dist/src/pattern-extractor.d.ts.map +1 -0
- package/dist/src/pattern-extractor.js +386 -0
- package/dist/src/pattern-extractor.js.map +1 -0
- package/dist/src/result-aggregator.d.ts +44 -0
- package/dist/src/result-aggregator.d.ts.map +1 -0
- package/dist/src/result-aggregator.js +315 -0
- package/dist/src/result-aggregator.js.map +1 -0
- package/dist/src/retrieval.d.ts +139 -0
- package/dist/src/retrieval.d.ts.map +1 -0
- package/dist/src/retrieval.js +724 -0
- package/dist/src/retrieval.js.map +1 -0
- package/dist/src/setup/auto-setup.d.ts +15 -0
- package/dist/src/setup/auto-setup.d.ts.map +1 -0
- package/dist/src/setup/auto-setup.js +157 -0
- package/dist/src/setup/auto-setup.js.map +1 -0
- package/dist/src/setup/configure-hooks.d.ts +8 -0
- package/dist/src/setup/configure-hooks.d.ts.map +1 -0
- package/dist/src/setup/configure-hooks.js +16 -0
- package/dist/src/setup/configure-hooks.js.map +1 -0
- package/dist/src/setup/create-slash-commands.d.ts +8 -0
- package/dist/src/setup/create-slash-commands.d.ts.map +1 -0
- package/dist/src/setup/create-slash-commands.js +101 -0
- package/dist/src/setup/create-slash-commands.js.map +1 -0
- package/dist/src/setup/index.d.ts +8 -0
- package/dist/src/setup/index.d.ts.map +1 -0
- package/dist/src/setup/index.js +17 -0
- package/dist/src/setup/index.js.map +1 -0
- package/dist/src/setup/inject-claude-md.d.ts +10 -0
- package/dist/src/setup/inject-claude-md.d.ts.map +1 -0
- package/dist/src/setup/inject-claude-md.js +150 -0
- package/dist/src/setup/inject-claude-md.js.map +1 -0
- package/dist/src/setup/uninstall.d.ts +22 -0
- package/dist/src/setup/uninstall.d.ts.map +1 -0
- package/dist/src/setup/uninstall.js +235 -0
- package/dist/src/setup/uninstall.js.map +1 -0
- package/dist/src/storage.d.ts +192 -0
- package/dist/src/storage.d.ts.map +1 -0
- package/dist/src/storage.js +1037 -0
- package/dist/src/storage.js.map +1 -0
- package/dist/src/string-similarity.d.ts +8 -0
- package/dist/src/string-similarity.d.ts.map +1 -0
- package/dist/src/string-similarity.js +57 -0
- package/dist/src/string-similarity.js.map +1 -0
- package/dist/src/traces/adapters/browser.d.ts +69 -0
- package/dist/src/traces/adapters/browser.d.ts.map +1 -0
- package/dist/src/traces/adapters/browser.js +280 -0
- package/dist/src/traces/adapters/browser.js.map +1 -0
- package/dist/src/traces/adapters/index.d.ts +23 -0
- package/dist/src/traces/adapters/index.d.ts.map +1 -0
- package/dist/src/traces/adapters/index.js +67 -0
- package/dist/src/traces/adapters/index.js.map +1 -0
- package/dist/src/traces/adapters/langchain.d.ts +42 -0
- package/dist/src/traces/adapters/langchain.d.ts.map +1 -0
- package/dist/src/traces/adapters/langchain.js +151 -0
- package/dist/src/traces/adapters/langchain.js.map +1 -0
- package/dist/src/traces/adapters/opentelemetry.d.ts +46 -0
- package/dist/src/traces/adapters/opentelemetry.d.ts.map +1 -0
- package/dist/src/traces/adapters/opentelemetry.js +164 -0
- package/dist/src/traces/adapters/opentelemetry.js.map +1 -0
- package/dist/src/traces/adapters/sentry.d.ts +58 -0
- package/dist/src/traces/adapters/sentry.d.ts.map +1 -0
- package/dist/src/traces/adapters/sentry.js +212 -0
- package/dist/src/traces/adapters/sentry.js.map +1 -0
- package/dist/src/traces/index.d.ts +10 -0
- package/dist/src/traces/index.d.ts.map +1 -0
- package/dist/src/traces/index.js +45 -0
- package/dist/src/traces/index.js.map +1 -0
- package/dist/src/traces/storage.d.ts +78 -0
- package/dist/src/traces/storage.d.ts.map +1 -0
- package/dist/src/traces/storage.js +399 -0
- package/dist/src/traces/storage.js.map +1 -0
- package/dist/src/traces/summarizer.d.ts +83 -0
- package/dist/src/traces/summarizer.d.ts.map +1 -0
- package/dist/src/traces/summarizer.js +247 -0
- package/dist/src/traces/summarizer.js.map +1 -0
- package/dist/src/traces/types.d.ts +365 -0
- package/dist/src/traces/types.d.ts.map +1 -0
- package/dist/src/traces/types.js +14 -0
- package/dist/src/traces/types.js.map +1 -0
- package/dist/src/types.d.ts +495 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +27 -0
- package/dist/src/types.js.map +1 -0
- package/docs/agent-surface-policy.md +45 -0
- package/docs/memory-setup.md +226 -0
- package/hooks/_arch_scan_bg.py +88 -0
- package/hooks/_plugin_drift_check_bg.py +85 -0
- package/hooks/_session_start_lib.sh +42 -0
- package/hooks/git/pre-push +141 -0
- package/hooks/hooks.json +126 -0
- package/hooks/post-commit +30 -0
- package/hooks/pre-commit +29 -0
- package/hooks/pre-edit-apppulse.sh +6 -0
- package/hooks/pre-edit-architecture.sh +106 -0
- package/hooks/pre-edit-rally-point.sh +92 -0
- package/hooks/session-start-apppulse.sh +6 -0
- package/hooks/session-start-architecture.sh +10 -0
- package/hooks/session-start-git-hooks.sh +12 -0
- package/hooks/session-start-plugin-drift.sh +27 -0
- package/hooks/session-start-rally-point.sh +44 -0
- package/hooks/session-start-retrieval.sh +24 -0
- package/hooks/session-start-worktree-gc.sh +105 -0
- package/hooks/test_apppulse_hooks.sh +6 -0
- package/hooks/test_rally_point_hooks.sh +388 -0
- package/hooks/test_sec008_hooks.sh +66 -0
- package/package.json +111 -0
- package/scripts/README.md +301 -0
- package/scripts/_db_url.py +61 -0
- package/scripts/_paths.py +445 -0
- package/scripts/blm.py +162 -0
- package/scripts/blm_api.py +263 -0
- package/scripts/check_cache_sync.py +490 -0
- package/scripts/embed_backend.py +475 -0
- package/scripts/install_memory.py +556 -0
- package/scripts/lessons_index/__init__.py +77 -0
- package/scripts/lessons_index/__main__.py +135 -0
- package/scripts/lessons_index/ingest.py +288 -0
- package/scripts/lessons_index/query.py +285 -0
- package/scripts/lessons_index/schema.py +114 -0
- package/scripts/memory_context/__init__.py +610 -0
- package/scripts/memory_graph/__init__.py +393 -0
- package/scripts/project_resolver.py +172 -0
- package/scripts/prune_codex_plugin_cache.py +23 -0
- package/scripts/prune_plugin_cache.py +359 -0
- package/scripts/semantic_index/__init__.py +482 -0
- package/scripts/semantic_index/_bench_hybrid.py +175 -0
- package/scripts/semantic_index/backfill.py +263 -0
- package/scripts/semantic_index/hybrid.py +174 -0
- package/scripts/semantic_index/test_backfill.py +292 -0
- package/scripts/semantic_index/test_hybrid.py +541 -0
- package/scripts/sync_navgator_lessons.py +666 -0
- package/scripts/sync_plugin_cache.py +388 -0
- package/skills/agent-rally-point/SKILL.md +165 -0
- package/skills/agent-rally-watcher/SKILL.md +83 -0
- package/skills/api-registry-bridge/SKILL.md +59 -0
- package/skills/architecture/dead/SKILL.md +56 -0
- package/skills/architecture/impact/SKILL.md +88 -0
- package/skills/architecture/review/SKILL.md +227 -0
- package/skills/architecture/rules/SKILL.md +72 -0
- package/skills/architecture/scan/SKILL.md +79 -0
- package/skills/architecture/trace/SKILL.md +65 -0
- package/skills/attribution-standard/SKILL.md +122 -0
- package/skills/authentication/SKILL.md +81 -0
- package/skills/authentication/references/better-auth-magic-link.md +135 -0
- package/skills/authentication/references/better-auth-setup.md +224 -0
- package/skills/authentication/references/google-calendar-sync.md +278 -0
- package/skills/authentication/references/google-cloud-console.md +159 -0
- package/skills/authentication/references/google-geocoding-directions.md +126 -0
- package/skills/authentication/references/google-lessons-example-web-app.md +177 -0
- package/skills/authentication/references/google-maps.md +162 -0
- package/skills/authentication/references/google-oauth-setup.md +343 -0
- package/skills/authentication/references/google-places.md +173 -0
- package/skills/authentication/references/lessons-example-web-app-better-auth.md +126 -0
- package/skills/authentication/references/resend-email.md +227 -0
- package/skills/authentication/references/resend-otp-magic-link.md +153 -0
- package/skills/authentication/references/supabase-auth.md +172 -0
- package/skills/auto-decision-capture/SKILL.md +419 -0
- package/skills/build-loop/SKILL.md +516 -0
- package/skills/build-loop/detect-plugins.mjs +82 -0
- package/skills/build-loop/eval-guide.md +65 -0
- package/skills/build-loop/fallbacks.md +549 -0
- package/skills/build-loop/phases/fact-check.md +42 -0
- package/skills/build-loop/phases/ui-validation.md +267 -0
- package/skills/build-loop/references/apple-native-planning.md +439 -0
- package/skills/build-loop/references/capability-routing.md +181 -0
- package/skills/build-loop/references/codex-subagents.md +98 -0
- package/skills/build-loop/references/coordination.md +161 -0
- package/skills/build-loop/references/correction-aware-capture.md +177 -0
- package/skills/build-loop/references/independent-auditor.md +72 -0
- package/skills/build-loop/references/intent-capability-pack.md +170 -0
- package/skills/build-loop/references/intent-exploration-prompts.md +96 -0
- package/skills/build-loop/references/leadership.md +72 -0
- package/skills/build-loop/references/memory.md +284 -0
- package/skills/build-loop/references/modular-systems-pack.md +96 -0
- package/skills/build-loop/references/output-style.md +129 -0
- package/skills/build-loop/references/pay-it-forward-arch.md +98 -0
- package/skills/build-loop/references/phase-1-assess.md +218 -0
- package/skills/build-loop/references/phase-2-plan.md +77 -0
- package/skills/build-loop/references/phase-3-execute.md +47 -0
- package/skills/build-loop/references/phase-4-review.md +310 -0
- package/skills/build-loop/references/phase-5-iterate.md +71 -0
- package/skills/build-loop/references/phase-6-learn.md +56 -0
- package/skills/build-loop/references/recent-design-structures.md +274 -0
- package/skills/build-loop/references/refactor-history/ASSESSMENT.md +85 -0
- package/skills/build-loop/references/refactor-history/STANDALONE_TEST_RUN.md +149 -0
- package/skills/build-loop/references/refactor-history/scenarios/01-simple-bugfix.md +32 -0
- package/skills/build-loop/references/refactor-history/scenarios/02-ui-build-with-iteration.md +48 -0
- package/skills/build-loop/references/refactor-history/scenarios/03-multi-failure-escalation.md +60 -0
- package/skills/build-loop/references/refactor-history/scenarios/04-ui-build-ibr-absent.md +51 -0
- package/skills/build-loop/references/refactor-history/scenarios/05-refactor-navgator-absent.md +71 -0
- package/skills/build-loop/references/refactor-history/scenarios/06-recurring-bug-debugger-absent.md +52 -0
- package/skills/build-loop/references/refactor-history/trace-comparison.md +202 -0
- package/skills/build-loop/references/self-recursive-dev.md +77 -0
- package/skills/build-loop/references/self-review.md +232 -0
- package/skills/build-loop/references/ui-io-contract.md +116 -0
- package/skills/build-loop/scanners/audit-design-rules.mjs +476 -0
- package/skills/build-loop/scanners/require-visual-evidence.mjs +239 -0
- package/skills/build-loop/templates/backlog-item.md +35 -0
- package/skills/build-loop/templates/codex-worker-prompt.md +89 -0
- package/skills/build-loop/templates/ui-subagent-prompt.md +179 -0
- package/skills/build-loop/templates/ux-fix-plan.md +40 -0
- package/skills/building-with-deepagents/SKILL.md +195 -0
- package/skills/building-with-deepagents/references/anti-patterns.md +141 -0
- package/skills/building-with-deepagents/references/api-quick-reference.md +184 -0
- package/skills/capabilities/SKILL.md +91 -0
- package/skills/debug-loop/SKILL.md +278 -0
- package/skills/debug-loop/references/convergence-rules.md +145 -0
- package/skills/debug-loop/references/swiftui-macos-clunky-ui-debugger.html +823 -0
- package/skills/debugging/assess/SKILL.md +111 -0
- package/skills/debugging/debug-loop/SKILL.md +231 -0
- package/skills/debugging/memory/SKILL.md +147 -0
- package/skills/debugging/store/SKILL.md +153 -0
- package/skills/debugging-memory/SKILL.md +440 -0
- package/skills/debugging-memory/examples/incident-example.json +67 -0
- package/skills/debugging-memory/references/incident-documentation.md +280 -0
- package/skills/debugging-memory/references/ios-notification-alarm-playbook.md +300 -0
- package/skills/debugging-memory/references/pattern-extraction.md +163 -0
- package/skills/debugging-memory/references/subagent-integration.md +312 -0
- package/skills/defenseclaw-bridge/SKILL.md +156 -0
- package/skills/defenseclaw-bridge/references/dc-config-mapping.md +162 -0
- package/skills/defenseclaw-bridge/references/output-format.md +108 -0
- package/skills/handoff/SKILL.md +94 -0
- package/skills/ibr-bridge/SKILL.md +68 -0
- package/skills/knowledge/SKILL.md +127 -0
- package/skills/knowledge/references/recall-integration.md +83 -0
- package/skills/knowledge/templates/madr-minimal.md +56 -0
- package/skills/knowledge-review/SKILL.md +112 -0
- package/skills/logging-tracer/SKILL.md +202 -0
- package/skills/logging-tracer/references/log-analysis.md +128 -0
- package/skills/logging-tracer/references/stack-templates.md +274 -0
- package/skills/logging-tracer-bridge/SKILL.md +70 -0
- package/skills/mcp-builder/SKILL.md +278 -0
- package/skills/mcp-builder/references/mcp-security.md +106 -0
- package/skills/model-tiering/SKILL.md +216 -0
- package/skills/native-ax-driver/SKILL.md +220 -0
- package/skills/native-ax-driver/scripts/layout_fill.py +222 -0
- package/skills/native-ax-driver/scripts/native_driver.py +495 -0
- package/skills/native-ax-driver/swift/bl-ax-driver/Package.swift +20 -0
- package/skills/native-ax-driver/swift/bl-ax-driver/Sources/main.swift +542 -0
- package/skills/optimize/SKILL.md +202 -0
- package/skills/optimize/profiles.md +61 -0
- package/skills/plan-verify/SKILL.md +115 -0
- package/skills/plan-verify/test-fixtures/example-app-v20-findings.json +27 -0
- package/skills/plan-verify/test-fixtures/example-app-v20.md +42 -0
- package/skills/plan-verify/test-fixtures/example-app-v22-findings.json +15 -0
- package/skills/plan-verify/test-fixtures/example-app-v22.md +1608 -0
- package/skills/plan-verify/test-fixtures/unrelated-good-plan-findings.json +15 -0
- package/skills/plan-verify/test-fixtures/unrelated-good-plan.md +55 -0
- package/skills/plugin-builder/SKILL.md +329 -0
- package/skills/plugin-builder/references/authoritative-sources.md +104 -0
- package/skills/plugin-builder/references/build-loop-phase-guidance.md +94 -0
- package/skills/plugin-builder/references/components-guide.md +221 -0
- package/skills/plugin-builder/references/distribution.md +317 -0
- package/skills/plugin-builder/references/dual-host-claude-codex.md +220 -0
- package/skills/plugin-builder/references/hooks-reference.md +210 -0
- package/skills/plugin-builder/references/manifest-schema.md +111 -0
- package/skills/plugin-builder/references/plugin-hygiene-lessons.md +307 -0
- package/skills/plugin-tests/SKILL.md +94 -0
- package/skills/prd-bridge/SKILL.md +135 -0
- package/skills/research/SKILL.md +80 -0
- package/skills/security-methodology/SKILL.md +105 -0
- package/skills/security-methodology/references/cross-source-matrix.md +77 -0
- package/skills/security-methodology/references/mitre-atlas-starter.md +83 -0
- package/skills/security-methodology/references/nist-600-1-mapping.md +119 -0
- package/skills/security-methodology/references/owasp-agentic-top-10.md +157 -0
- package/skills/security-methodology/references/owasp-llm-top-10.md +144 -0
- package/skills/security-methodology/references/owasp-web-top-10.md +65 -0
- package/skills/self-improve/SKILL.md +298 -0
- package/skills/spec-writing/SKILL.md +548 -0
- package/skills/spec-writing/scripts/check_checklist.py +478 -0
- package/skills/sync-skills/SKILL.md +132 -0
- package/skills/telemetry/SKILL.md +66 -0
- package/skills/ui-design/SKILL.md +75 -0
- package/skills/ui-design/references/design-patterns-multi.md +165 -0
- package/skills/ui-design/references/design-preferences-from-owned-apps.md +150 -0
- package/skills/ui-design/references/evidence-capture-policy.md +55 -0
- package/skills/ui-design/references/ui-guidance-sources.md +330 -0
- package/skills/ui-design/references/universal-design-principles.alt.md +182 -0
- package/skills/ui-design/references/universal-design-principles.md +419 -0
- package/templates/memory/MEMORY.md.template +55 -0
- package/templates/memory/constitution.md.template +64 -0
- package/templates/memory/manifest.json +47 -0
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com>
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
/**
|
|
5
|
+
* Pattern Extractor
|
|
6
|
+
*
|
|
7
|
+
* Automatically detects when 3+ similar incidents can be extracted into
|
|
8
|
+
* a reusable pattern. Helps prevent solving the same problem repeatedly.
|
|
9
|
+
*/
|
|
10
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
13
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
14
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
15
|
+
}
|
|
16
|
+
Object.defineProperty(o, k2, desc);
|
|
17
|
+
}) : (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
o[k2] = m[k];
|
|
20
|
+
}));
|
|
21
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
22
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
23
|
+
}) : function(o, v) {
|
|
24
|
+
o["default"] = v;
|
|
25
|
+
});
|
|
26
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
27
|
+
var ownKeys = function(o) {
|
|
28
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
29
|
+
var ar = [];
|
|
30
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
31
|
+
return ar;
|
|
32
|
+
};
|
|
33
|
+
return ownKeys(o);
|
|
34
|
+
};
|
|
35
|
+
return function (mod) {
|
|
36
|
+
if (mod && mod.__esModule) return mod;
|
|
37
|
+
var result = {};
|
|
38
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
39
|
+
__setModuleDefault(result, mod);
|
|
40
|
+
return result;
|
|
41
|
+
};
|
|
42
|
+
})();
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
exports.extractPatterns = extractPatterns;
|
|
45
|
+
exports.autoExtractPatternIfReady = autoExtractPatternIfReady;
|
|
46
|
+
exports.suggestPatterns = suggestPatterns;
|
|
47
|
+
const storage_1 = require("./storage");
|
|
48
|
+
const storage_2 = require("./storage");
|
|
49
|
+
const logger_1 = require("./logger");
|
|
50
|
+
/**
|
|
51
|
+
* Analyze incidents and extract reusable patterns
|
|
52
|
+
*/
|
|
53
|
+
async function extractPatterns(options = {}) {
|
|
54
|
+
return (0, logger_1.traced)('patterns:extractPatterns', { min: options.min_incidents }, async () => {
|
|
55
|
+
const { min_incidents = 3, min_similarity = 0.7, auto_store = false, config } = options;
|
|
56
|
+
console.log('š Pattern Extraction Analysis\n');
|
|
57
|
+
console.log(` Minimum incidents: ${min_incidents}`);
|
|
58
|
+
console.log(` Minimum similarity: ${(min_similarity * 100).toFixed(0)}%\n`);
|
|
59
|
+
const incidents = await (0, storage_1.loadAllIncidents)(config);
|
|
60
|
+
const existingPatterns = await (0, storage_2.loadAllPatterns)(config);
|
|
61
|
+
console.log(`š Analyzing ${incidents.length} incidents...\n`);
|
|
62
|
+
// Step 1: Group incidents by category
|
|
63
|
+
const categorized = groupByCategory(incidents);
|
|
64
|
+
// Step 2: Find pattern candidates
|
|
65
|
+
const candidates = [];
|
|
66
|
+
for (const [category, categoryIncidents] of Object.entries(categorized)) {
|
|
67
|
+
if (categoryIncidents.length < min_incidents)
|
|
68
|
+
continue;
|
|
69
|
+
// Check if incidents share common characteristics
|
|
70
|
+
const commonality = calculateCommonality(categoryIncidents);
|
|
71
|
+
if (commonality.score >= min_similarity) {
|
|
72
|
+
candidates.push({
|
|
73
|
+
category,
|
|
74
|
+
incidents: categoryIncidents,
|
|
75
|
+
commonality_score: commonality.score,
|
|
76
|
+
tags_overlap: commonality.common_tags,
|
|
77
|
+
files_overlap: commonality.common_files
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
console.log(`ā
Found ${candidates.length} pattern candidates:\n`);
|
|
82
|
+
// Step 3: Create patterns from candidates
|
|
83
|
+
const patterns = [];
|
|
84
|
+
for (const candidate of candidates) {
|
|
85
|
+
console.log(`š Pattern Candidate: ${candidate.category.toUpperCase()}`);
|
|
86
|
+
console.log(` Incidents: ${candidate.incidents.length}`);
|
|
87
|
+
console.log(` Commonality: ${(candidate.commonality_score * 100).toFixed(0)}%`);
|
|
88
|
+
console.log(` Shared tags: [${candidate.tags_overlap.join(', ')}]`);
|
|
89
|
+
console.log(` Shared files: ${candidate.files_overlap.length}\n`);
|
|
90
|
+
// Check if pattern already exists
|
|
91
|
+
const patternId = (0, storage_1.generatePatternId)(candidate.category, 'common_fix');
|
|
92
|
+
const exists = existingPatterns.some(p => p.pattern_id === patternId);
|
|
93
|
+
if (exists) {
|
|
94
|
+
console.log(` ā ļø Pattern already exists: ${patternId}\n`);
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
const pattern = createPatternFromIncidents(candidate);
|
|
98
|
+
patterns.push(pattern);
|
|
99
|
+
if (auto_store) {
|
|
100
|
+
await (0, storage_1.storePattern)(pattern, config);
|
|
101
|
+
console.log(` ā
Stored pattern: ${pattern.pattern_id}\n`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return patterns;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Group incidents by root cause category
|
|
109
|
+
*/
|
|
110
|
+
function groupByCategory(incidents) {
|
|
111
|
+
const groups = {};
|
|
112
|
+
for (const incident of incidents) {
|
|
113
|
+
const category = incident.root_cause.category || 'unknown';
|
|
114
|
+
if (!groups[category]) {
|
|
115
|
+
groups[category] = [];
|
|
116
|
+
}
|
|
117
|
+
groups[category].push(incident);
|
|
118
|
+
}
|
|
119
|
+
return groups;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Calculate commonality among incidents
|
|
123
|
+
*/
|
|
124
|
+
function calculateCommonality(incidents) {
|
|
125
|
+
if (incidents.length === 0) {
|
|
126
|
+
return { score: 0, common_tags: [], common_files: [] };
|
|
127
|
+
}
|
|
128
|
+
// Find tags that appear in most incidents
|
|
129
|
+
const tagCounts = new Map();
|
|
130
|
+
for (const inc of incidents) {
|
|
131
|
+
for (const tag of (inc.tags ?? [])) {
|
|
132
|
+
tagCounts.set(tag, (tagCounts.get(tag) || 0) + 1);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const threshold = Math.ceil(incidents.length * 0.6); // 60% of incidents
|
|
136
|
+
const common_tags = Array.from(tagCounts.entries())
|
|
137
|
+
.filter(([_, count]) => count >= threshold)
|
|
138
|
+
.map(([tag, _]) => tag);
|
|
139
|
+
// Find files that appear in multiple incidents
|
|
140
|
+
const fileCounts = new Map();
|
|
141
|
+
for (const inc of incidents) {
|
|
142
|
+
for (const file of (inc.files_changed ?? [])) {
|
|
143
|
+
fileCounts.set(file, (fileCounts.get(file) || 0) + 1);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
const common_files = Array.from(fileCounts.entries())
|
|
147
|
+
.filter(([_, count]) => count >= 2) // At least 2 incidents
|
|
148
|
+
.map(([file, _]) => file);
|
|
149
|
+
// Calculate overall commonality score
|
|
150
|
+
// React-hooks: 6 common tags / 9 total = 67% ā good pattern!
|
|
151
|
+
// Error-handling: 3 common tags / 7 total = 43% ā decent pattern
|
|
152
|
+
const tag_similarity = common_tags.length / Math.max(tagCounts.size, 1);
|
|
153
|
+
const file_overlap = common_files.length > 0 ? 0.15 : 0;
|
|
154
|
+
const incident_density = incidents.length >= 5 ? 0.15 : (incidents.length >= 3 ? 0.1 : 0);
|
|
155
|
+
// More generous scoring: high tag similarity is the main signal
|
|
156
|
+
const score = (tag_similarity * 0.7) + file_overlap + incident_density;
|
|
157
|
+
return {
|
|
158
|
+
score: Math.min(score, 1.0),
|
|
159
|
+
common_tags,
|
|
160
|
+
common_files
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Create a Pattern from a group of similar incidents
|
|
165
|
+
*/
|
|
166
|
+
function createPatternFromIncidents(candidate) {
|
|
167
|
+
const { category, incidents, tags_overlap } = candidate;
|
|
168
|
+
// Extract most common symptoms/causes
|
|
169
|
+
const detection_signature = extractDetectionSignature(incidents);
|
|
170
|
+
const solution_template = synthesizeSolution(incidents);
|
|
171
|
+
const code_example = extractBestCodeExample(incidents);
|
|
172
|
+
// Calculate success rate
|
|
173
|
+
const verified = incidents.filter(i => i.verification.status === 'verified').length;
|
|
174
|
+
const success_rate = verified / incidents.length;
|
|
175
|
+
// Build usage history
|
|
176
|
+
const usage_history = {
|
|
177
|
+
total_uses: incidents.length,
|
|
178
|
+
successful_uses: verified,
|
|
179
|
+
by_agent: countByAgent(incidents),
|
|
180
|
+
recent_incidents: incidents.slice(-5).map(i => i.incident_id)
|
|
181
|
+
};
|
|
182
|
+
// Extract caveats from incidents
|
|
183
|
+
const caveats = extractCaveats(incidents);
|
|
184
|
+
const pattern = {
|
|
185
|
+
pattern_id: (0, storage_1.generatePatternId)(category, 'common_fix'),
|
|
186
|
+
name: generatePatternName(category, incidents),
|
|
187
|
+
description: generatePatternDescription(category, incidents),
|
|
188
|
+
detection_signature,
|
|
189
|
+
applicable_to: ['coder', 'frontend-ui', 'database', 'tester'],
|
|
190
|
+
solution_template,
|
|
191
|
+
code_example,
|
|
192
|
+
tags: tags_overlap,
|
|
193
|
+
related_patterns: [],
|
|
194
|
+
usage_history,
|
|
195
|
+
success_rate,
|
|
196
|
+
last_used: Math.max(...incidents.map(i => i.timestamp)),
|
|
197
|
+
caveats
|
|
198
|
+
};
|
|
199
|
+
return pattern;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Extract detection signature (keywords for matching)
|
|
203
|
+
*/
|
|
204
|
+
function extractDetectionSignature(incidents) {
|
|
205
|
+
const keywords = new Set();
|
|
206
|
+
for (const incident of incidents) {
|
|
207
|
+
// Extract from symptom (with null safety)
|
|
208
|
+
if (incident.symptom && typeof incident.symptom === 'string') {
|
|
209
|
+
const symptomWords = incident.symptom.toLowerCase()
|
|
210
|
+
.split(/\s+/)
|
|
211
|
+
.filter(w => w.length > 3);
|
|
212
|
+
symptomWords.forEach(w => keywords.add(w));
|
|
213
|
+
}
|
|
214
|
+
// Extract from tags
|
|
215
|
+
(incident.tags ?? []).forEach(tag => keywords.add(tag.toLowerCase()));
|
|
216
|
+
// Extract from category
|
|
217
|
+
keywords.add(incident.root_cause.category);
|
|
218
|
+
}
|
|
219
|
+
// Return most frequent keywords
|
|
220
|
+
return Array.from(keywords).slice(0, 10);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Synthesize solution template from incidents
|
|
224
|
+
*/
|
|
225
|
+
function synthesizeSolution(incidents) {
|
|
226
|
+
// Find most common approach
|
|
227
|
+
const approaches = incidents.map(i => i.fix.approach);
|
|
228
|
+
// Simple heuristic: longest approach is usually most detailed
|
|
229
|
+
const bestApproach = approaches.reduce((longest, current) => current.length > longest.length ? current : longest, '');
|
|
230
|
+
// Generalize the solution
|
|
231
|
+
return `Common pattern observed across ${incidents.length} incidents:\n\n${bestApproach}\n\nVerify this approach applies to your specific case before implementing.`;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Extract best code example from incidents
|
|
235
|
+
*/
|
|
236
|
+
function extractBestCodeExample(incidents) {
|
|
237
|
+
// Find incident with highest confidence and code snippet
|
|
238
|
+
const withCode = incidents.filter(i => i.root_cause.code_snippet);
|
|
239
|
+
if (withCode.length === 0)
|
|
240
|
+
return undefined;
|
|
241
|
+
const best = withCode.reduce((highest, current) => current.root_cause.confidence > highest.root_cause.confidence ? current : highest);
|
|
242
|
+
return best.root_cause.code_snippet;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Count incident usage by agent
|
|
246
|
+
*/
|
|
247
|
+
function countByAgent(incidents) {
|
|
248
|
+
const counts = {};
|
|
249
|
+
for (const incident of incidents) {
|
|
250
|
+
const agent = incident.agent_used || 'unknown';
|
|
251
|
+
counts[agent] = (counts[agent] || 0) + 1;
|
|
252
|
+
}
|
|
253
|
+
return counts;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Extract caveats from incidents
|
|
257
|
+
*/
|
|
258
|
+
function extractCaveats(incidents) {
|
|
259
|
+
const caveats = [];
|
|
260
|
+
// Check if any incidents had issues
|
|
261
|
+
const unverified = incidents.filter(i => i.verification.status !== 'verified');
|
|
262
|
+
if (unverified.length > 0) {
|
|
263
|
+
caveats.push(`${unverified.length}/${incidents.length} applications were not fully verified`);
|
|
264
|
+
}
|
|
265
|
+
// Check if any had low quality scores
|
|
266
|
+
const lowQuality = incidents.filter(i => i.completeness.quality_score < 0.8);
|
|
267
|
+
if (lowQuality.length > 0) {
|
|
268
|
+
caveats.push('Some incidents have incomplete information - verify before applying');
|
|
269
|
+
}
|
|
270
|
+
// Check if pattern is recent or old
|
|
271
|
+
const oldestTimestamp = Math.min(...incidents.map(i => i.timestamp));
|
|
272
|
+
const ageInDays = (Date.now() - oldestTimestamp) / (24 * 60 * 60 * 1000);
|
|
273
|
+
if (ageInDays > 90) {
|
|
274
|
+
caveats.push('Pattern based on incidents older than 90 days - codebase may have changed');
|
|
275
|
+
}
|
|
276
|
+
return caveats;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Generate human-readable pattern name
|
|
280
|
+
*/
|
|
281
|
+
function generatePatternName(category, incidents) {
|
|
282
|
+
const categoryNames = {
|
|
283
|
+
'react-hooks': 'React Hook Dependency Issues',
|
|
284
|
+
'error-handling': 'Error Handling Pattern',
|
|
285
|
+
'api': 'API Error Pattern',
|
|
286
|
+
'dependency': 'Module Dependency Issues',
|
|
287
|
+
'validation': 'Input Validation Pattern',
|
|
288
|
+
'config': 'Configuration Management',
|
|
289
|
+
'performance': 'Performance Optimization'
|
|
290
|
+
};
|
|
291
|
+
return categoryNames[category] || `${category.charAt(0).toUpperCase()}${category.slice(1)} Pattern`;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Generate pattern description
|
|
295
|
+
*/
|
|
296
|
+
function generatePatternDescription(category, incidents) {
|
|
297
|
+
const avgTime = incidents.reduce((sum, i) => sum + (i.fix.time_to_fix || 0), 0) / incidents.length;
|
|
298
|
+
return `This pattern has been successfully applied ${incidents.length} times to resolve ${category} issues. Average time to fix: ${Math.round(avgTime)} minutes. Success rate: ${((incidents.filter(i => i.verification.status === 'verified').length / incidents.length) * 100).toFixed(0)}%.`;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Auto-extract pattern if enough similar incidents exist
|
|
302
|
+
* Called automatically after storing an incident
|
|
303
|
+
*/
|
|
304
|
+
async function autoExtractPatternIfReady(newIncident, options = {}) {
|
|
305
|
+
return (0, logger_1.traced)('patterns:autoExtract', { category: newIncident.root_cause.category }, async () => {
|
|
306
|
+
const { minSimilar = 3, minQuality = 0.75, config } = options;
|
|
307
|
+
// Step 1: Find similar incidents (same category, confidence >0.7)
|
|
308
|
+
const allIncidents = await (0, storage_1.loadAllIncidents)(config);
|
|
309
|
+
const category = newIncident.root_cause.category;
|
|
310
|
+
const similarIncidents = allIncidents.filter(inc => inc.root_cause.category === category &&
|
|
311
|
+
inc.root_cause.confidence >= 0.7 &&
|
|
312
|
+
!inc.patternized // Don't include incidents already in patterns
|
|
313
|
+
);
|
|
314
|
+
// Step 2: Check if we have enough similar incidents
|
|
315
|
+
if (similarIncidents.length < minSimilar) {
|
|
316
|
+
return null;
|
|
317
|
+
}
|
|
318
|
+
// Step 3: Calculate commonality and quality
|
|
319
|
+
const commonality = calculateCommonality(similarIncidents);
|
|
320
|
+
// Step 4: Validate quality score
|
|
321
|
+
if (commonality.score < minQuality) {
|
|
322
|
+
console.log(` š Commonality score: ${(commonality.score * 100).toFixed(0)}% (need ${(minQuality * 100).toFixed(0)}%)`);
|
|
323
|
+
return null;
|
|
324
|
+
}
|
|
325
|
+
// Step 5: Create pattern candidate
|
|
326
|
+
const candidate = {
|
|
327
|
+
category,
|
|
328
|
+
incidents: similarIncidents,
|
|
329
|
+
commonality_score: commonality.score,
|
|
330
|
+
tags_overlap: commonality.common_tags,
|
|
331
|
+
files_overlap: commonality.common_files
|
|
332
|
+
};
|
|
333
|
+
// Step 6: Check if pattern already exists
|
|
334
|
+
const existingPatterns = await (0, storage_2.loadAllPatterns)(config);
|
|
335
|
+
const patternId = (0, storage_1.generatePatternId)(category, 'common_fix');
|
|
336
|
+
const exists = existingPatterns.some(p => p.pattern_id === patternId);
|
|
337
|
+
if (exists) {
|
|
338
|
+
return null; // Pattern already extracted
|
|
339
|
+
}
|
|
340
|
+
// Step 7: Create and store pattern
|
|
341
|
+
const pattern = createPatternFromIncidents(candidate);
|
|
342
|
+
await (0, storage_1.storePattern)(pattern, config);
|
|
343
|
+
// Step 8: Tag incidents with pattern_id and mark as patternized
|
|
344
|
+
const { storeIncident: updateIncident } = await Promise.resolve().then(() => __importStar(require('./storage')));
|
|
345
|
+
for (const incident of similarIncidents) {
|
|
346
|
+
incident.pattern_id = pattern.pattern_id;
|
|
347
|
+
incident.patternized = true;
|
|
348
|
+
await updateIncident(incident, { config });
|
|
349
|
+
}
|
|
350
|
+
return pattern;
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Suggest patterns to extract (dry run)
|
|
355
|
+
*/
|
|
356
|
+
async function suggestPatterns(config) {
|
|
357
|
+
console.log('š” Pattern Extraction Suggestions\n');
|
|
358
|
+
console.log('āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\n');
|
|
359
|
+
const patterns = await extractPatterns({
|
|
360
|
+
min_incidents: 3,
|
|
361
|
+
min_similarity: 0.6,
|
|
362
|
+
auto_store: false,
|
|
363
|
+
config
|
|
364
|
+
});
|
|
365
|
+
if (patterns.length === 0) {
|
|
366
|
+
console.log('ā¹ļø No patterns detected yet. Need at least 3 similar incidents.\n');
|
|
367
|
+
return;
|
|
368
|
+
}
|
|
369
|
+
console.log(`\nš Extraction Summary:\n`);
|
|
370
|
+
console.log(` Patterns detected: ${patterns.length}`);
|
|
371
|
+
console.log(` Ready to extract: ${patterns.length}\n`);
|
|
372
|
+
patterns.forEach((pattern, i) => {
|
|
373
|
+
console.log(`${i + 1}. ${pattern.name}`);
|
|
374
|
+
console.log(` ID: ${pattern.pattern_id}`);
|
|
375
|
+
console.log(` Incidents: ${pattern.usage_history.total_uses}`);
|
|
376
|
+
console.log(` Success rate: ${(pattern.success_rate * 100).toFixed(0)}%`);
|
|
377
|
+
console.log(` Tags: [${pattern.tags.slice(0, 5).join(', ')}]`);
|
|
378
|
+
if (pattern.caveats && pattern.caveats.length > 0) {
|
|
379
|
+
console.log(` ā ļø Caveats: ${pattern.caveats.length}`);
|
|
380
|
+
}
|
|
381
|
+
console.log('');
|
|
382
|
+
});
|
|
383
|
+
console.log('š¾ To store these patterns, run:');
|
|
384
|
+
console.log(' extractPatterns({ min_incidents: 3, auto_store: true })\n');
|
|
385
|
+
}
|
|
386
|
+
//# sourceMappingURL=pattern-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-extractor.js","sourceRoot":"","sources":["../../src/pattern-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result Aggregator
|
|
3
|
+
*
|
|
4
|
+
* Combines and ranks results from multiple sources:
|
|
5
|
+
* - Domain assessments from parallel assessors
|
|
6
|
+
* - Memory retrieval (incidents and patterns)
|
|
7
|
+
* - Trace correlations
|
|
8
|
+
*
|
|
9
|
+
* Uses unified scoring: 0.35*match + 0.25*confidence + 0.15*recency + 0.25*verification
|
|
10
|
+
*/
|
|
11
|
+
import type { DomainAssessment, AggregatedResult, CompactIncident, CompactPattern, ScoredItem } from './types';
|
|
12
|
+
export type { ScoredItem } from './types';
|
|
13
|
+
export interface AggregationConfig {
|
|
14
|
+
maxResults?: number;
|
|
15
|
+
minScoreThreshold?: number;
|
|
16
|
+
verificationBoost?: number;
|
|
17
|
+
recencyBoost?: number;
|
|
18
|
+
dedupeThreshold?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Score a domain assessment
|
|
22
|
+
*/
|
|
23
|
+
export declare function scoreAssessment(assessment: DomainAssessment, config?: AggregationConfig): ScoredItem;
|
|
24
|
+
/**
|
|
25
|
+
* Score a compact incident from memory
|
|
26
|
+
*/
|
|
27
|
+
export declare function scoreIncident(incident: CompactIncident, config?: AggregationConfig): ScoredItem;
|
|
28
|
+
/**
|
|
29
|
+
* Score a compact pattern from memory
|
|
30
|
+
*/
|
|
31
|
+
export declare function scorePattern(pattern: CompactPattern, matchScore?: number, config?: AggregationConfig): ScoredItem;
|
|
32
|
+
/**
|
|
33
|
+
* Aggregate results from multiple sources
|
|
34
|
+
*/
|
|
35
|
+
export declare function aggregateResults(assessments: DomainAssessment[], incidents: CompactIncident[], patterns: CompactPattern[], config?: AggregationConfig): AggregatedResult;
|
|
36
|
+
/**
|
|
37
|
+
* Format aggregated results for display
|
|
38
|
+
*/
|
|
39
|
+
export declare function formatAggregatedResults(result: AggregatedResult): string;
|
|
40
|
+
/**
|
|
41
|
+
* Create a quick summary for token-efficient output
|
|
42
|
+
*/
|
|
43
|
+
export declare function createQuickSummary(result: AggregatedResult): string;
|
|
44
|
+
//# sourceMappingURL=result-aggregator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-aggregator.d.ts","sourceRoot":"","sources":["../../src/result-aggregator.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,UAAU,EACX,MAAM,SAAS,CAAC;AAkBjB,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAEhC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAgCD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,gBAAgB,EAC5B,MAAM,GAAE,iBAAsB,GAC7B,UAAU,CA8CZ;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,eAAe,EACzB,MAAM,GAAE,iBAAsB,GAC7B,UAAU,CA8CZ;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,cAAc,EACvB,UAAU,GAAE,MAAY,EACxB,MAAM,GAAE,iBAAsB,GAC7B,UAAU,CA6CZ;AAkDD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,gBAAgB,EAAE,EAC/B,SAAS,EAAE,eAAe,EAAE,EAC5B,QAAQ,EAAE,cAAc,EAAE,EAC1B,MAAM,GAAE,iBAAsB,GAC7B,gBAAgB,CAwDlB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAwCxE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAUnE"}
|