@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,149 @@
|
|
|
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
|
+
* Claude Memory - Main Entry Point
|
|
6
|
+
*
|
|
7
|
+
* Debugging memory system for Claude Code.
|
|
8
|
+
* Never solve the same bug twice.
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
22
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.batchCleanup = exports.batchExtractPatterns = exports.batchReviewIncomplete = exports.autoExtractPatternIfReady = exports.suggestPatterns = exports.extractPatterns = exports.getMemoryStatus = exports.storeDebugIncident = exports.debugWithMemory = exports.enhancedSearch = exports.getRecentIncidents = exports.searchByTags = exports.getFullIncident = exports.checkMemory = exports.generateQualityFeedback = exports.calculateQualityScore = exports.buildIncidentInteractive = exports.getOutcomeStats = exports.loadOutcomes = exports.recordOutcome = exports.updateIndexIncremental = exports.rebuildKeywordIndex = exports.findCandidatesByKeyword = exports.loadKeywordIndex = exports.updateKeywordIndex = exports.toCompactPatterns = exports.toCompactIncidents = exports.toCompactPattern = exports.toCompactIncident = exports.enforceTokenBudget = exports.compressContext = exports.archiveOldIncidents = exports.buildMemorySummary = exports.loadIndex = exports.rebuildIndex = exports.searchIncidentLog = exports.appendToIncidentLog = exports.getMemoryStats = exports.generatePatternId = exports.generateIncidentId = exports.validateIncident = exports.loadAllPatterns = exports.loadPattern = exports.storePattern = exports.loadAllIncidents = exports.loadIncident = exports.storeIncident = exports.displayConfig = exports.getMemoryPaths = exports.getConfig = void 0;
|
|
26
|
+
exports.readProjectLogs = exports.configureLogger = exports.readLogs = exports.log = exports.traced = exports.checkFileContext = exports.generateSessionContext = exports.generateDynamicSection = exports.createQuickSummary = exports.formatAggregatedResults = exports.aggregateResults = exports.scorePattern = exports.scoreIncident = exports.scoreAssessment = exports.prepareOrchestration = exports.formatOrchestrationResult = exports.createOrchestrationResult = exports.rankAssessments = exports.parseAssessmentResponse = exports.generateAssessorPrompts = exports.selectDomainsForAssessment = exports.detectDomains = exports.parallelMemoryCheck = exports.parallelPatternMatch = exports.parallelSearch = exports.checkMemoryScaled = exports.checkMemoryProgressive = exports.classifyVerdict = exports.checkMemoryWithVerdict = exports.getPatternDetails = exports.getIncidentDetails = exports.quickMemoryCheck = exports.checkMemoryTiered = exports.previewAuditMining = exports.mineAuditTrail = void 0;
|
|
27
|
+
// Configuration
|
|
28
|
+
var config_1 = require("./config");
|
|
29
|
+
Object.defineProperty(exports, "getConfig", { enumerable: true, get: function () { return config_1.getConfig; } });
|
|
30
|
+
Object.defineProperty(exports, "getMemoryPaths", { enumerable: true, get: function () { return config_1.getMemoryPaths; } });
|
|
31
|
+
Object.defineProperty(exports, "displayConfig", { enumerable: true, get: function () { return config_1.displayConfig; } });
|
|
32
|
+
// Storage Operations
|
|
33
|
+
var storage_1 = require("./storage");
|
|
34
|
+
Object.defineProperty(exports, "storeIncident", { enumerable: true, get: function () { return storage_1.storeIncident; } });
|
|
35
|
+
Object.defineProperty(exports, "loadIncident", { enumerable: true, get: function () { return storage_1.loadIncident; } });
|
|
36
|
+
Object.defineProperty(exports, "loadAllIncidents", { enumerable: true, get: function () { return storage_1.loadAllIncidents; } });
|
|
37
|
+
Object.defineProperty(exports, "storePattern", { enumerable: true, get: function () { return storage_1.storePattern; } });
|
|
38
|
+
Object.defineProperty(exports, "loadPattern", { enumerable: true, get: function () { return storage_1.loadPattern; } });
|
|
39
|
+
Object.defineProperty(exports, "loadAllPatterns", { enumerable: true, get: function () { return storage_1.loadAllPatterns; } });
|
|
40
|
+
Object.defineProperty(exports, "validateIncident", { enumerable: true, get: function () { return storage_1.validateIncident; } });
|
|
41
|
+
Object.defineProperty(exports, "generateIncidentId", { enumerable: true, get: function () { return storage_1.generateIncidentId; } });
|
|
42
|
+
Object.defineProperty(exports, "generatePatternId", { enumerable: true, get: function () { return storage_1.generatePatternId; } });
|
|
43
|
+
Object.defineProperty(exports, "getMemoryStats", { enumerable: true, get: function () { return storage_1.getMemoryStats; } });
|
|
44
|
+
// v1.5.0 additions
|
|
45
|
+
Object.defineProperty(exports, "appendToIncidentLog", { enumerable: true, get: function () { return storage_1.appendToIncidentLog; } });
|
|
46
|
+
Object.defineProperty(exports, "searchIncidentLog", { enumerable: true, get: function () { return storage_1.searchIncidentLog; } });
|
|
47
|
+
Object.defineProperty(exports, "rebuildIndex", { enumerable: true, get: function () { return storage_1.rebuildIndex; } });
|
|
48
|
+
Object.defineProperty(exports, "loadIndex", { enumerable: true, get: function () { return storage_1.loadIndex; } });
|
|
49
|
+
Object.defineProperty(exports, "buildMemorySummary", { enumerable: true, get: function () { return storage_1.buildMemorySummary; } });
|
|
50
|
+
Object.defineProperty(exports, "archiveOldIncidents", { enumerable: true, get: function () { return storage_1.archiveOldIncidents; } });
|
|
51
|
+
Object.defineProperty(exports, "compressContext", { enumerable: true, get: function () { return storage_1.compressContext; } });
|
|
52
|
+
Object.defineProperty(exports, "enforceTokenBudget", { enumerable: true, get: function () { return storage_1.enforceTokenBudget; } });
|
|
53
|
+
Object.defineProperty(exports, "toCompactIncident", { enumerable: true, get: function () { return storage_1.toCompactIncident; } });
|
|
54
|
+
Object.defineProperty(exports, "toCompactPattern", { enumerable: true, get: function () { return storage_1.toCompactPattern; } });
|
|
55
|
+
Object.defineProperty(exports, "toCompactIncidents", { enumerable: true, get: function () { return storage_1.toCompactIncidents; } });
|
|
56
|
+
Object.defineProperty(exports, "toCompactPatterns", { enumerable: true, get: function () { return storage_1.toCompactPatterns; } });
|
|
57
|
+
// v1.6.0 additions
|
|
58
|
+
Object.defineProperty(exports, "updateKeywordIndex", { enumerable: true, get: function () { return storage_1.updateKeywordIndex; } });
|
|
59
|
+
Object.defineProperty(exports, "loadKeywordIndex", { enumerable: true, get: function () { return storage_1.loadKeywordIndex; } });
|
|
60
|
+
Object.defineProperty(exports, "findCandidatesByKeyword", { enumerable: true, get: function () { return storage_1.findCandidatesByKeyword; } });
|
|
61
|
+
Object.defineProperty(exports, "rebuildKeywordIndex", { enumerable: true, get: function () { return storage_1.rebuildKeywordIndex; } });
|
|
62
|
+
Object.defineProperty(exports, "updateIndexIncremental", { enumerable: true, get: function () { return storage_1.updateIndexIncremental; } });
|
|
63
|
+
Object.defineProperty(exports, "recordOutcome", { enumerable: true, get: function () { return storage_1.recordOutcome; } });
|
|
64
|
+
Object.defineProperty(exports, "loadOutcomes", { enumerable: true, get: function () { return storage_1.loadOutcomes; } });
|
|
65
|
+
Object.defineProperty(exports, "getOutcomeStats", { enumerable: true, get: function () { return storage_1.getOutcomeStats; } });
|
|
66
|
+
// Interactive Verification
|
|
67
|
+
var interactive_verifier_1 = require("./interactive-verifier");
|
|
68
|
+
Object.defineProperty(exports, "buildIncidentInteractive", { enumerable: true, get: function () { return interactive_verifier_1.buildIncidentInteractive; } });
|
|
69
|
+
Object.defineProperty(exports, "calculateQualityScore", { enumerable: true, get: function () { return interactive_verifier_1.calculateQualityScore; } });
|
|
70
|
+
Object.defineProperty(exports, "generateQualityFeedback", { enumerable: true, get: function () { return interactive_verifier_1.generateQualityFeedback; } });
|
|
71
|
+
// Retrieval Operations
|
|
72
|
+
var retrieval_1 = require("./retrieval");
|
|
73
|
+
Object.defineProperty(exports, "checkMemory", { enumerable: true, get: function () { return retrieval_1.checkMemory; } });
|
|
74
|
+
Object.defineProperty(exports, "getFullIncident", { enumerable: true, get: function () { return retrieval_1.getFullIncident; } });
|
|
75
|
+
Object.defineProperty(exports, "searchByTags", { enumerable: true, get: function () { return retrieval_1.searchByTags; } });
|
|
76
|
+
Object.defineProperty(exports, "getRecentIncidents", { enumerable: true, get: function () { return retrieval_1.getRecentIncidents; } });
|
|
77
|
+
Object.defineProperty(exports, "enhancedSearch", { enumerable: true, get: function () { return retrieval_1.enhancedSearch; } });
|
|
78
|
+
// Main Debugging Wrapper
|
|
79
|
+
// Note: These will be added when we copy debug-with-memory.ts
|
|
80
|
+
var debug_wrapper_1 = require("./debug-wrapper");
|
|
81
|
+
Object.defineProperty(exports, "debugWithMemory", { enumerable: true, get: function () { return debug_wrapper_1.debugWithMemory; } });
|
|
82
|
+
Object.defineProperty(exports, "storeDebugIncident", { enumerable: true, get: function () { return debug_wrapper_1.storeDebugIncident; } });
|
|
83
|
+
Object.defineProperty(exports, "getMemoryStatus", { enumerable: true, get: function () { return debug_wrapper_1.getMemoryStatus; } });
|
|
84
|
+
// Pattern Extraction
|
|
85
|
+
var pattern_extractor_1 = require("./pattern-extractor");
|
|
86
|
+
Object.defineProperty(exports, "extractPatterns", { enumerable: true, get: function () { return pattern_extractor_1.extractPatterns; } });
|
|
87
|
+
Object.defineProperty(exports, "suggestPatterns", { enumerable: true, get: function () { return pattern_extractor_1.suggestPatterns; } });
|
|
88
|
+
Object.defineProperty(exports, "autoExtractPatternIfReady", { enumerable: true, get: function () { return pattern_extractor_1.autoExtractPatternIfReady; } });
|
|
89
|
+
// Batch Operations
|
|
90
|
+
var batch_operations_1 = require("./batch-operations");
|
|
91
|
+
Object.defineProperty(exports, "batchReviewIncomplete", { enumerable: true, get: function () { return batch_operations_1.batchReviewIncomplete; } });
|
|
92
|
+
Object.defineProperty(exports, "batchExtractPatterns", { enumerable: true, get: function () { return batch_operations_1.batchExtractPatterns; } });
|
|
93
|
+
Object.defineProperty(exports, "batchCleanup", { enumerable: true, get: function () { return batch_operations_1.batchCleanup; } });
|
|
94
|
+
// Audit Trail Mining
|
|
95
|
+
var audit_miner_1 = require("./audit-miner");
|
|
96
|
+
Object.defineProperty(exports, "mineAuditTrail", { enumerable: true, get: function () { return audit_miner_1.mineAuditTrail; } });
|
|
97
|
+
Object.defineProperty(exports, "previewAuditMining", { enumerable: true, get: function () { return audit_miner_1.previewAuditMining; } });
|
|
98
|
+
// Token-Efficient Retrieval
|
|
99
|
+
var retrieval_2 = require("./retrieval");
|
|
100
|
+
Object.defineProperty(exports, "checkMemoryTiered", { enumerable: true, get: function () { return retrieval_2.checkMemoryTiered; } });
|
|
101
|
+
Object.defineProperty(exports, "quickMemoryCheck", { enumerable: true, get: function () { return retrieval_2.quickMemoryCheck; } });
|
|
102
|
+
Object.defineProperty(exports, "getIncidentDetails", { enumerable: true, get: function () { return retrieval_2.getIncidentDetails; } });
|
|
103
|
+
Object.defineProperty(exports, "getPatternDetails", { enumerable: true, get: function () { return retrieval_2.getPatternDetails; } });
|
|
104
|
+
// v1.5.0 verdict system
|
|
105
|
+
Object.defineProperty(exports, "checkMemoryWithVerdict", { enumerable: true, get: function () { return retrieval_2.checkMemoryWithVerdict; } });
|
|
106
|
+
Object.defineProperty(exports, "classifyVerdict", { enumerable: true, get: function () { return retrieval_2.classifyVerdict; } });
|
|
107
|
+
// v1.6.0 progressive + scaled
|
|
108
|
+
Object.defineProperty(exports, "checkMemoryProgressive", { enumerable: true, get: function () { return retrieval_2.checkMemoryProgressive; } });
|
|
109
|
+
Object.defineProperty(exports, "checkMemoryScaled", { enumerable: true, get: function () { return retrieval_2.checkMemoryScaled; } });
|
|
110
|
+
// Parallel Retrieval
|
|
111
|
+
var parallel_retrieval_1 = require("./parallel-retrieval");
|
|
112
|
+
Object.defineProperty(exports, "parallelSearch", { enumerable: true, get: function () { return parallel_retrieval_1.parallelSearch; } });
|
|
113
|
+
Object.defineProperty(exports, "parallelPatternMatch", { enumerable: true, get: function () { return parallel_retrieval_1.parallelPatternMatch; } });
|
|
114
|
+
Object.defineProperty(exports, "parallelMemoryCheck", { enumerable: true, get: function () { return parallel_retrieval_1.parallelMemoryCheck; } });
|
|
115
|
+
// Assessment Orchestration
|
|
116
|
+
var assessment_orchestrator_1 = require("./assessment-orchestrator");
|
|
117
|
+
Object.defineProperty(exports, "detectDomains", { enumerable: true, get: function () { return assessment_orchestrator_1.detectDomains; } });
|
|
118
|
+
Object.defineProperty(exports, "selectDomainsForAssessment", { enumerable: true, get: function () { return assessment_orchestrator_1.selectDomainsForAssessment; } });
|
|
119
|
+
Object.defineProperty(exports, "generateAssessorPrompts", { enumerable: true, get: function () { return assessment_orchestrator_1.generateAssessorPrompts; } });
|
|
120
|
+
Object.defineProperty(exports, "parseAssessmentResponse", { enumerable: true, get: function () { return assessment_orchestrator_1.parseAssessmentResponse; } });
|
|
121
|
+
Object.defineProperty(exports, "rankAssessments", { enumerable: true, get: function () { return assessment_orchestrator_1.rankAssessments; } });
|
|
122
|
+
Object.defineProperty(exports, "createOrchestrationResult", { enumerable: true, get: function () { return assessment_orchestrator_1.createOrchestrationResult; } });
|
|
123
|
+
Object.defineProperty(exports, "formatOrchestrationResult", { enumerable: true, get: function () { return assessment_orchestrator_1.formatOrchestrationResult; } });
|
|
124
|
+
Object.defineProperty(exports, "prepareOrchestration", { enumerable: true, get: function () { return assessment_orchestrator_1.prepareOrchestration; } });
|
|
125
|
+
// Result Aggregation
|
|
126
|
+
var result_aggregator_1 = require("./result-aggregator");
|
|
127
|
+
Object.defineProperty(exports, "scoreAssessment", { enumerable: true, get: function () { return result_aggregator_1.scoreAssessment; } });
|
|
128
|
+
Object.defineProperty(exports, "scoreIncident", { enumerable: true, get: function () { return result_aggregator_1.scoreIncident; } });
|
|
129
|
+
Object.defineProperty(exports, "scorePattern", { enumerable: true, get: function () { return result_aggregator_1.scorePattern; } });
|
|
130
|
+
Object.defineProperty(exports, "aggregateResults", { enumerable: true, get: function () { return result_aggregator_1.aggregateResults; } });
|
|
131
|
+
Object.defineProperty(exports, "formatAggregatedResults", { enumerable: true, get: function () { return result_aggregator_1.formatAggregatedResults; } });
|
|
132
|
+
Object.defineProperty(exports, "createQuickSummary", { enumerable: true, get: function () { return result_aggregator_1.createQuickSummary; } });
|
|
133
|
+
// Context Engine (v1.6.0)
|
|
134
|
+
var context_engine_1 = require("./context-engine");
|
|
135
|
+
Object.defineProperty(exports, "generateDynamicSection", { enumerable: true, get: function () { return context_engine_1.generateDynamicSection; } });
|
|
136
|
+
Object.defineProperty(exports, "generateSessionContext", { enumerable: true, get: function () { return context_engine_1.generateSessionContext; } });
|
|
137
|
+
Object.defineProperty(exports, "checkFileContext", { enumerable: true, get: function () { return context_engine_1.checkFileContext; } });
|
|
138
|
+
// Trace Ingestion (v1.4.0)
|
|
139
|
+
__exportStar(require("./traces"), exports);
|
|
140
|
+
// Internal Logger (v1.8.0)
|
|
141
|
+
var logger_1 = require("./logger");
|
|
142
|
+
Object.defineProperty(exports, "traced", { enumerable: true, get: function () { return logger_1.traced; } });
|
|
143
|
+
Object.defineProperty(exports, "log", { enumerable: true, get: function () { return logger_1.log; } });
|
|
144
|
+
Object.defineProperty(exports, "readLogs", { enumerable: true, get: function () { return logger_1.readLogs; } });
|
|
145
|
+
Object.defineProperty(exports, "configureLogger", { enumerable: true, get: function () { return logger_1.configureLogger; } });
|
|
146
|
+
// Log Reader (v1.8.0)
|
|
147
|
+
var log_reader_1 = require("./log-reader");
|
|
148
|
+
Object.defineProperty(exports, "readProjectLogs", { enumerable: true, get: function () { return log_reader_1.readProjectLogs; } });
|
|
149
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,mGAAmG;AACnG,sCAAsC;AACtC;;;;;GAKG;;;;;;;;;;;;;;;;;;AAEH,gBAAgB;AAChB,mCAAoE;AAA3D,mGAAA,SAAS,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,uGAAA,aAAa,OAAA;AAoBjD,qBAAqB;AACrB,qCAiCmB;AAhCjB,wGAAA,aAAa,OAAA;AACb,uGAAA,YAAY,OAAA;AACZ,2GAAA,gBAAgB,OAAA;AAChB,uGAAA,YAAY,OAAA;AACZ,sGAAA,WAAW,OAAA;AACX,0GAAA,eAAe,OAAA;AACf,2GAAA,gBAAgB,OAAA;AAChB,6GAAA,kBAAkB,OAAA;AAClB,4GAAA,iBAAiB,OAAA;AACjB,yGAAA,cAAc,OAAA;AACd,mBAAmB;AACnB,8GAAA,mBAAmB,OAAA;AACnB,4GAAA,iBAAiB,OAAA;AACjB,uGAAA,YAAY,OAAA;AACZ,oGAAA,SAAS,OAAA;AACT,6GAAA,kBAAkB,OAAA;AAClB,8GAAA,mBAAmB,OAAA;AACnB,0GAAA,eAAe,OAAA;AACf,6GAAA,kBAAkB,OAAA;AAClB,4GAAA,iBAAiB,OAAA;AACjB,2GAAA,gBAAgB,OAAA;AAChB,6GAAA,kBAAkB,OAAA;AAClB,4GAAA,iBAAiB,OAAA;AACjB,mBAAmB;AACnB,6GAAA,kBAAkB,OAAA;AAClB,2GAAA,gBAAgB,OAAA;AAChB,kHAAA,uBAAuB,OAAA;AACvB,8GAAA,mBAAmB,OAAA;AACnB,iHAAA,sBAAsB,OAAA;AACtB,wGAAA,aAAa,OAAA;AACb,uGAAA,YAAY,OAAA;AACZ,0GAAA,eAAe,OAAA;AAGjB,2BAA2B;AAC3B,+DAIgC;AAH9B,gIAAA,wBAAwB,OAAA;AACxB,6HAAA,qBAAqB,OAAA;AACrB,+HAAA,uBAAuB,OAAA;AAGzB,uBAAuB;AACvB,yCAMqB;AALnB,wGAAA,WAAW,OAAA;AACX,4GAAA,eAAe,OAAA;AACf,yGAAA,YAAY,OAAA;AACZ,+GAAA,kBAAkB,OAAA;AAClB,2GAAA,cAAc,OAAA;AAIhB,yBAAyB;AACzB,8DAA8D;AAC9D,iDAAuF;AAA9E,gHAAA,eAAe,OAAA;AAAE,mHAAA,kBAAkB,OAAA;AAAE,gHAAA,eAAe,OAAA;AAE7D,qBAAqB;AACrB,yDAAkG;AAAzF,oHAAA,eAAe,OAAA;AAAE,oHAAA,eAAe,OAAA;AAAE,8HAAA,yBAAyB,OAAA;AAEpE,mBAAmB;AACnB,uDAA+F;AAAtF,yHAAA,qBAAqB,OAAA;AAAE,wHAAA,oBAAoB,OAAA;AAAE,gHAAA,YAAY,OAAA;AAElE,qBAAqB;AACrB,6CAAmE;AAA1D,6GAAA,cAAc,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAE3C,4BAA4B;AAC5B,yCAWqB;AAVnB,8GAAA,iBAAiB,OAAA;AACjB,6GAAA,gBAAgB,OAAA;AAChB,+GAAA,kBAAkB,OAAA;AAClB,8GAAA,iBAAiB,OAAA;AACjB,wBAAwB;AACxB,mHAAA,sBAAsB,OAAA;AACtB,4GAAA,eAAe,OAAA;AACf,8BAA8B;AAC9B,mHAAA,sBAAsB,OAAA;AACtB,8GAAA,iBAAiB,OAAA;AAuBnB,qBAAqB;AACrB,2DAI8B;AAH5B,oHAAA,cAAc,OAAA;AACd,0HAAA,oBAAoB,OAAA;AACpB,yHAAA,mBAAmB,OAAA;AAGrB,2BAA2B;AAC3B,qEASmC;AARjC,wHAAA,aAAa,OAAA;AACb,qIAAA,0BAA0B,OAAA;AAC1B,kIAAA,uBAAuB,OAAA;AACvB,kIAAA,uBAAuB,OAAA;AACvB,0HAAA,eAAe,OAAA;AACf,oIAAA,yBAAyB,OAAA;AACzB,oIAAA,yBAAyB,OAAA;AACzB,+HAAA,oBAAoB,OAAA;AAiBtB,qBAAqB;AACrB,yDAO6B;AAN3B,oHAAA,eAAe,OAAA;AACf,kHAAA,aAAa,OAAA;AACb,iHAAA,YAAY,OAAA;AACZ,qHAAA,gBAAgB,OAAA;AAChB,4HAAA,uBAAuB,OAAA;AACvB,uHAAA,kBAAkB,OAAA;AAGpB,0BAA0B;AAC1B,mDAI0B;AAHxB,wHAAA,sBAAsB,OAAA;AACtB,wHAAA,sBAAsB,OAAA;AACtB,kHAAA,gBAAgB,OAAA;AAGlB,2BAA2B;AAC3B,2CAAyB;AAEzB,2BAA2B;AAC3B,mCAAkE;AAAzD,gGAAA,MAAM,OAAA;AAAE,6FAAA,GAAG,OAAA;AAAE,kGAAA,QAAQ,OAAA;AAAE,yGAAA,eAAe,OAAA;AAG/C,sBAAsB;AACtB,2CAA+C;AAAtC,6GAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive Verification System
|
|
3
|
+
*
|
|
4
|
+
* Guides users through completing incident details with interactive prompts.
|
|
5
|
+
* Improves incident quality by ensuring all critical fields are filled.
|
|
6
|
+
*/
|
|
7
|
+
import type { Incident } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Build a complete incident using interactive prompts
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildIncidentInteractive(baseIncident: Partial<Incident>): Promise<Incident>;
|
|
12
|
+
/**
|
|
13
|
+
* Calculate overall quality score for an incident
|
|
14
|
+
*
|
|
15
|
+
* Scoring rubric:
|
|
16
|
+
* - Root cause analysis: 30% (description length + confidence)
|
|
17
|
+
* - Fix details: 30% (approach + changes documented)
|
|
18
|
+
* - Verification: 20% (verification status)
|
|
19
|
+
* - Documentation: 20% (tags + prevention advice)
|
|
20
|
+
*/
|
|
21
|
+
export declare function calculateQualityScore(incident: Incident | Partial<Incident>): number;
|
|
22
|
+
/**
|
|
23
|
+
* Generate quality feedback text
|
|
24
|
+
*/
|
|
25
|
+
export declare function generateQualityFeedback(incident: Incident): string;
|
|
26
|
+
//# sourceMappingURL=interactive-verifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive-verifier.d.ts","sourceRoot":"","sources":["../../src/interactive-verifier.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAA4D,MAAM,SAAS,CAAC;AAElG;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,GAC9B,OAAO,CAAC,QAAQ,CAAC,CAyDnB;AAkSD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAiDpF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAkDlE"}
|
|
@@ -0,0 +1,435 @@
|
|
|
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
|
+
* Interactive Verification System
|
|
6
|
+
*
|
|
7
|
+
* Guides users through completing incident details with interactive prompts.
|
|
8
|
+
* Improves incident quality by ensuring all critical fields are filled.
|
|
9
|
+
*/
|
|
10
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
11
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.buildIncidentInteractive = buildIncidentInteractive;
|
|
15
|
+
exports.calculateQualityScore = calculateQualityScore;
|
|
16
|
+
exports.generateQualityFeedback = generateQualityFeedback;
|
|
17
|
+
const prompts_1 = __importDefault(require("prompts"));
|
|
18
|
+
/**
|
|
19
|
+
* Build a complete incident using interactive prompts
|
|
20
|
+
*/
|
|
21
|
+
async function buildIncidentInteractive(baseIncident) {
|
|
22
|
+
console.log('\n📝 Interactive Incident Builder');
|
|
23
|
+
console.log('Let\'s ensure this incident is complete and useful for future reference.\n');
|
|
24
|
+
// Initialize with base incident
|
|
25
|
+
let incident = { ...baseIncident };
|
|
26
|
+
// 1. Check and improve root cause
|
|
27
|
+
incident.root_cause = await ensureRootCauseQuality(incident.root_cause);
|
|
28
|
+
// 2. Ensure fix details are complete
|
|
29
|
+
incident.fix = await ensureFixDetails(incident.fix);
|
|
30
|
+
// 3. Verification status
|
|
31
|
+
incident.verification = await ensureVerification(incident.verification);
|
|
32
|
+
// 4. Suggest and collect tags
|
|
33
|
+
incident.tags = await ensureTags(incident.symptom, incident.tags || []);
|
|
34
|
+
// 5. Ensure files changed are documented
|
|
35
|
+
if (!incident.files_changed || incident.files_changed.length === 0) {
|
|
36
|
+
incident.files_changed = await collectFilesChanged();
|
|
37
|
+
}
|
|
38
|
+
// 6. Calculate quality score
|
|
39
|
+
const qualityScore = calculateQualityScore(incident);
|
|
40
|
+
// Update completeness
|
|
41
|
+
incident.completeness = {
|
|
42
|
+
symptom: !!incident.symptom && incident.symptom.length >= 20,
|
|
43
|
+
root_cause: !!incident.root_cause?.description && incident.root_cause.description.length >= 50,
|
|
44
|
+
fix: !!incident.fix?.approach && (incident.fix.changes?.length || 0) > 0,
|
|
45
|
+
verification: incident.verification?.status === 'verified',
|
|
46
|
+
quality_score: qualityScore
|
|
47
|
+
};
|
|
48
|
+
// 7. Show final quality report
|
|
49
|
+
console.log('\n📊 Quality Report:');
|
|
50
|
+
console.log(` Overall Score: ${(qualityScore * 100).toFixed(0)}%`);
|
|
51
|
+
console.log(` Root Cause: ${incident.completeness.root_cause ? '✅' : '⚠️'}`);
|
|
52
|
+
console.log(` Fix Details: ${incident.completeness.fix ? '✅' : '⚠️'}`);
|
|
53
|
+
console.log(` Verification: ${incident.completeness.verification ? '✅' : '⚠️'}`);
|
|
54
|
+
console.log(` Tags: ${incident.tags.length >= 3 ? '✅' : '⚠️'} (${incident.tags.length})`);
|
|
55
|
+
// 8. Confirm storage
|
|
56
|
+
const { confirm } = await (0, prompts_1.default)({
|
|
57
|
+
type: 'confirm',
|
|
58
|
+
name: 'confirm',
|
|
59
|
+
message: 'Store this incident?',
|
|
60
|
+
initial: true
|
|
61
|
+
});
|
|
62
|
+
if (!confirm) {
|
|
63
|
+
throw new Error('Incident storage cancelled by user');
|
|
64
|
+
}
|
|
65
|
+
return incident;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Ensure root cause has sufficient detail (min 50 characters)
|
|
69
|
+
*/
|
|
70
|
+
async function ensureRootCauseQuality(rootCause) {
|
|
71
|
+
if (!rootCause) {
|
|
72
|
+
const { description } = await (0, prompts_1.default)({
|
|
73
|
+
type: 'text',
|
|
74
|
+
name: 'description',
|
|
75
|
+
message: 'What was the root cause? (min 50 chars)',
|
|
76
|
+
validate: (value) => value.length >= 50 || 'Please provide at least 50 characters'
|
|
77
|
+
});
|
|
78
|
+
return {
|
|
79
|
+
description,
|
|
80
|
+
category: 'unknown',
|
|
81
|
+
confidence: 0.5
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
// Check if description is too short
|
|
85
|
+
if (!rootCause.description || rootCause.description.length < 50) {
|
|
86
|
+
console.log(`\n⚠️ Root cause description is too brief (${rootCause.description?.length || 0} chars, need 50+)`);
|
|
87
|
+
const { description } = await (0, prompts_1.default)({
|
|
88
|
+
type: 'text',
|
|
89
|
+
name: 'description',
|
|
90
|
+
message: 'Please provide a more detailed root cause explanation:',
|
|
91
|
+
initial: rootCause.description || '',
|
|
92
|
+
validate: (value) => value.length >= 50 || 'Please provide at least 50 characters'
|
|
93
|
+
});
|
|
94
|
+
rootCause.description = description;
|
|
95
|
+
}
|
|
96
|
+
// Ensure confidence is set
|
|
97
|
+
if (rootCause.confidence === undefined || rootCause.confidence === 0) {
|
|
98
|
+
const { confidence } = await (0, prompts_1.default)({
|
|
99
|
+
type: 'number',
|
|
100
|
+
name: 'confidence',
|
|
101
|
+
message: 'How confident are you in this root cause? (0-1)',
|
|
102
|
+
initial: 0.8,
|
|
103
|
+
min: 0,
|
|
104
|
+
max: 1,
|
|
105
|
+
float: true
|
|
106
|
+
});
|
|
107
|
+
rootCause.confidence = confidence;
|
|
108
|
+
}
|
|
109
|
+
// Ensure category is set
|
|
110
|
+
if (!rootCause.category || rootCause.category === 'unknown') {
|
|
111
|
+
const { category } = await (0, prompts_1.default)({
|
|
112
|
+
type: 'select',
|
|
113
|
+
name: 'category',
|
|
114
|
+
message: 'What category best describes this issue?',
|
|
115
|
+
choices: [
|
|
116
|
+
{ title: 'Logic Error', value: 'logic' },
|
|
117
|
+
{ title: 'Configuration', value: 'config' },
|
|
118
|
+
{ title: 'API/Integration', value: 'api' },
|
|
119
|
+
{ title: 'Database', value: 'database' },
|
|
120
|
+
{ title: 'Dependency', value: 'dependency' },
|
|
121
|
+
{ title: 'React/Hooks', value: 'react-hooks' },
|
|
122
|
+
{ title: 'TypeScript/Types', value: 'typescript' },
|
|
123
|
+
{ title: 'Performance', value: 'performance' },
|
|
124
|
+
{ title: 'Security', value: 'security' },
|
|
125
|
+
{ title: 'Other', value: 'other' }
|
|
126
|
+
]
|
|
127
|
+
});
|
|
128
|
+
rootCause.category = category;
|
|
129
|
+
}
|
|
130
|
+
return rootCause;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Ensure fix details are documented
|
|
134
|
+
*/
|
|
135
|
+
async function ensureFixDetails(fix) {
|
|
136
|
+
if (!fix || !fix.approach) {
|
|
137
|
+
const { approach } = await (0, prompts_1.default)({
|
|
138
|
+
type: 'text',
|
|
139
|
+
name: 'approach',
|
|
140
|
+
message: 'How did you fix this issue? (high-level approach)',
|
|
141
|
+
validate: (value) => value.length >= 20 || 'Please provide at least 20 characters'
|
|
142
|
+
});
|
|
143
|
+
return {
|
|
144
|
+
approach,
|
|
145
|
+
changes: []
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
// Ensure changes are documented
|
|
149
|
+
if (!fix.changes || fix.changes.length === 0) {
|
|
150
|
+
const { hasChanges } = await (0, prompts_1.default)({
|
|
151
|
+
type: 'confirm',
|
|
152
|
+
name: 'hasChanges',
|
|
153
|
+
message: 'Would you like to document the specific file changes?',
|
|
154
|
+
initial: true
|
|
155
|
+
});
|
|
156
|
+
if (hasChanges) {
|
|
157
|
+
fix.changes = [];
|
|
158
|
+
let addMore = true;
|
|
159
|
+
while (addMore) {
|
|
160
|
+
const change = await (0, prompts_1.default)([
|
|
161
|
+
{
|
|
162
|
+
type: 'text',
|
|
163
|
+
name: 'file',
|
|
164
|
+
message: 'File path:'
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'number',
|
|
168
|
+
name: 'lines_changed',
|
|
169
|
+
message: 'Approximate lines changed:',
|
|
170
|
+
initial: 5
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
type: 'select',
|
|
174
|
+
name: 'change_type',
|
|
175
|
+
message: 'Change type:',
|
|
176
|
+
choices: [
|
|
177
|
+
{ title: 'Modified', value: 'modify' },
|
|
178
|
+
{ title: 'Added', value: 'add' },
|
|
179
|
+
{ title: 'Deleted', value: 'delete' },
|
|
180
|
+
{ title: 'Refactored', value: 'refactor' }
|
|
181
|
+
]
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
type: 'text',
|
|
185
|
+
name: 'summary',
|
|
186
|
+
message: 'What changed:',
|
|
187
|
+
validate: (value) => value.length > 0 || 'Summary required'
|
|
188
|
+
}
|
|
189
|
+
]);
|
|
190
|
+
fix.changes.push(change);
|
|
191
|
+
const { more } = await (0, prompts_1.default)({
|
|
192
|
+
type: 'confirm',
|
|
193
|
+
name: 'more',
|
|
194
|
+
message: 'Add another file change?',
|
|
195
|
+
initial: false
|
|
196
|
+
});
|
|
197
|
+
addMore = more;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return fix;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Ensure verification status is documented
|
|
205
|
+
*/
|
|
206
|
+
async function ensureVerification(verification) {
|
|
207
|
+
if (!verification) {
|
|
208
|
+
verification = {
|
|
209
|
+
status: 'unverified',
|
|
210
|
+
regression_tests_passed: false,
|
|
211
|
+
user_journey_tested: false,
|
|
212
|
+
success_criteria_met: false
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
const { status } = await (0, prompts_1.default)({
|
|
216
|
+
type: 'select',
|
|
217
|
+
name: 'status',
|
|
218
|
+
message: 'Has this fix been verified?',
|
|
219
|
+
choices: [
|
|
220
|
+
{ title: 'Fully Verified', value: 'verified', description: 'Tested and confirmed working' },
|
|
221
|
+
{ title: 'Partially Verified', value: 'partial', description: 'Some testing done' },
|
|
222
|
+
{ title: 'Not Verified', value: 'unverified', description: 'No testing yet' }
|
|
223
|
+
],
|
|
224
|
+
initial: verification.status === 'verified' ? 0 : verification.status === 'partial' ? 1 : 2
|
|
225
|
+
});
|
|
226
|
+
verification.status = status;
|
|
227
|
+
// If verified, ask about specific verification methods
|
|
228
|
+
if (status === 'verified' || status === 'partial') {
|
|
229
|
+
const verificationDetails = await (0, prompts_1.default)([
|
|
230
|
+
{
|
|
231
|
+
type: 'confirm',
|
|
232
|
+
name: 'regression_tests_passed',
|
|
233
|
+
message: 'Did existing tests pass?',
|
|
234
|
+
initial: verification.regression_tests_passed
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
type: 'confirm',
|
|
238
|
+
name: 'user_journey_tested',
|
|
239
|
+
message: 'Did you test the user journey?',
|
|
240
|
+
initial: verification.user_journey_tested
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
type: 'confirm',
|
|
244
|
+
name: 'success_criteria_met',
|
|
245
|
+
message: 'Did the fix meet success criteria?',
|
|
246
|
+
initial: verification.success_criteria_met
|
|
247
|
+
}
|
|
248
|
+
]);
|
|
249
|
+
verification = { ...verification, ...verificationDetails };
|
|
250
|
+
}
|
|
251
|
+
return verification;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Suggest and collect tags based on symptom analysis
|
|
255
|
+
*/
|
|
256
|
+
async function ensureTags(symptom, existingTags) {
|
|
257
|
+
// Suggest tags based on symptom keywords
|
|
258
|
+
const suggestedTags = suggestTagsFromSymptom(symptom);
|
|
259
|
+
// Combine with existing tags (deduplicate)
|
|
260
|
+
const allTags = [...new Set([...existingTags, ...suggestedTags])];
|
|
261
|
+
console.log(`\n🏷️ Suggested tags based on symptom: ${suggestedTags.join(', ')}`);
|
|
262
|
+
const { tags } = await (0, prompts_1.default)({
|
|
263
|
+
type: 'list',
|
|
264
|
+
name: 'tags',
|
|
265
|
+
message: 'Tags (comma-separated, min 3 recommended):',
|
|
266
|
+
initial: allTags.join(', '),
|
|
267
|
+
separator: ',',
|
|
268
|
+
format: (val) => val.split(',').map((t) => t.trim()).filter(Boolean)
|
|
269
|
+
});
|
|
270
|
+
return tags || allTags;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Suggest tags based on symptom text analysis
|
|
274
|
+
*/
|
|
275
|
+
function suggestTagsFromSymptom(symptom) {
|
|
276
|
+
const tags = [];
|
|
277
|
+
const lower = symptom.toLowerCase();
|
|
278
|
+
// Technology keywords
|
|
279
|
+
if (lower.includes('react') || lower.includes('component') || lower.includes('hook'))
|
|
280
|
+
tags.push('react');
|
|
281
|
+
if (lower.includes('typescript') || lower.includes('type error'))
|
|
282
|
+
tags.push('typescript');
|
|
283
|
+
if (lower.includes('api') || lower.includes('endpoint'))
|
|
284
|
+
tags.push('api');
|
|
285
|
+
if (lower.includes('database') || lower.includes('query') || lower.includes('sql'))
|
|
286
|
+
tags.push('database');
|
|
287
|
+
if (lower.includes('cache') || lower.includes('caching'))
|
|
288
|
+
tags.push('caching');
|
|
289
|
+
if (lower.includes('auth') || lower.includes('authentication'))
|
|
290
|
+
tags.push('auth');
|
|
291
|
+
// Issue type keywords
|
|
292
|
+
if (lower.includes('error') || lower.includes('crash') || lower.includes('fail'))
|
|
293
|
+
tags.push('error');
|
|
294
|
+
if (lower.includes('slow') || lower.includes('performance') || lower.includes('timeout'))
|
|
295
|
+
tags.push('performance');
|
|
296
|
+
if (lower.includes('infinite loop') || lower.includes('hang'))
|
|
297
|
+
tags.push('infinite-loop');
|
|
298
|
+
if (lower.includes('memory') || lower.includes('leak'))
|
|
299
|
+
tags.push('memory');
|
|
300
|
+
if (lower.includes('security') || lower.includes('vulnerability'))
|
|
301
|
+
tags.push('security');
|
|
302
|
+
return tags;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Collect files that were changed
|
|
306
|
+
*/
|
|
307
|
+
async function collectFilesChanged() {
|
|
308
|
+
const { hasFiles } = await (0, prompts_1.default)({
|
|
309
|
+
type: 'confirm',
|
|
310
|
+
name: 'hasFiles',
|
|
311
|
+
message: 'Would you like to document which files were changed?',
|
|
312
|
+
initial: true
|
|
313
|
+
});
|
|
314
|
+
if (!hasFiles)
|
|
315
|
+
return [];
|
|
316
|
+
const { files } = await (0, prompts_1.default)({
|
|
317
|
+
type: 'list',
|
|
318
|
+
name: 'files',
|
|
319
|
+
message: 'File paths (comma-separated):',
|
|
320
|
+
separator: ',',
|
|
321
|
+
format: (val) => val.split(',').map((f) => f.trim()).filter(Boolean)
|
|
322
|
+
});
|
|
323
|
+
return files || [];
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Calculate overall quality score for an incident
|
|
327
|
+
*
|
|
328
|
+
* Scoring rubric:
|
|
329
|
+
* - Root cause analysis: 30% (description length + confidence)
|
|
330
|
+
* - Fix details: 30% (approach + changes documented)
|
|
331
|
+
* - Verification: 20% (verification status)
|
|
332
|
+
* - Documentation: 20% (tags + prevention advice)
|
|
333
|
+
*/
|
|
334
|
+
function calculateQualityScore(incident) {
|
|
335
|
+
let score = 0.0;
|
|
336
|
+
// Root cause analysis (0.3 max)
|
|
337
|
+
if (incident.root_cause) {
|
|
338
|
+
// Description quality (0.15 max)
|
|
339
|
+
const descLength = incident.root_cause.description?.length || 0;
|
|
340
|
+
if (descLength >= 50)
|
|
341
|
+
score += 0.10;
|
|
342
|
+
if (descLength >= 100)
|
|
343
|
+
score += 0.05;
|
|
344
|
+
// Confidence (0.15 max)
|
|
345
|
+
const confidence = incident.root_cause.confidence || 0;
|
|
346
|
+
if (confidence >= 0.7)
|
|
347
|
+
score += 0.10;
|
|
348
|
+
if (confidence >= 0.9)
|
|
349
|
+
score += 0.05;
|
|
350
|
+
}
|
|
351
|
+
// Fix details (0.3 max)
|
|
352
|
+
if (incident.fix) {
|
|
353
|
+
// Approach documented (0.15 max)
|
|
354
|
+
if (incident.fix.approach && incident.fix.approach.length >= 20) {
|
|
355
|
+
score += 0.15;
|
|
356
|
+
}
|
|
357
|
+
// Changes documented (0.15 max)
|
|
358
|
+
const changesCount = incident.fix.changes?.length || 0;
|
|
359
|
+
if (changesCount >= 1)
|
|
360
|
+
score += 0.10;
|
|
361
|
+
if (changesCount >= 3)
|
|
362
|
+
score += 0.05;
|
|
363
|
+
}
|
|
364
|
+
// Verification (0.2 max)
|
|
365
|
+
if (incident.verification) {
|
|
366
|
+
if (incident.verification.status === 'verified')
|
|
367
|
+
score += 0.15;
|
|
368
|
+
else if (incident.verification.status === 'partial')
|
|
369
|
+
score += 0.08;
|
|
370
|
+
// Additional verification details (0.05 max)
|
|
371
|
+
if (incident.verification.regression_tests_passed)
|
|
372
|
+
score += 0.025;
|
|
373
|
+
if (incident.verification.user_journey_tested)
|
|
374
|
+
score += 0.025;
|
|
375
|
+
}
|
|
376
|
+
// Documentation (0.2 max)
|
|
377
|
+
const tagsCount = incident.tags?.length || 0;
|
|
378
|
+
if (tagsCount >= 2)
|
|
379
|
+
score += 0.05;
|
|
380
|
+
if (tagsCount >= 3)
|
|
381
|
+
score += 0.05;
|
|
382
|
+
if (tagsCount >= 5)
|
|
383
|
+
score += 0.05;
|
|
384
|
+
// Prevention advice
|
|
385
|
+
if (incident.prevention)
|
|
386
|
+
score += 0.05;
|
|
387
|
+
return Math.min(score, 1.0); // Cap at 1.0
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Generate quality feedback text
|
|
391
|
+
*/
|
|
392
|
+
function generateQualityFeedback(incident) {
|
|
393
|
+
const score = calculateQualityScore(incident);
|
|
394
|
+
const percentage = (score * 100).toFixed(0);
|
|
395
|
+
const feedback = [];
|
|
396
|
+
feedback.push(`Overall Quality: ${percentage}%`);
|
|
397
|
+
if (score >= 0.9) {
|
|
398
|
+
feedback.push('✅ Excellent - This incident is well documented and highly reusable.');
|
|
399
|
+
}
|
|
400
|
+
else if (score >= 0.75) {
|
|
401
|
+
feedback.push('✅ Good - This incident has sufficient detail for future reference.');
|
|
402
|
+
}
|
|
403
|
+
else if (score >= 0.5) {
|
|
404
|
+
feedback.push('⚠️ Fair - Consider adding more details to improve reusability.');
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
feedback.push('❌ Poor - This incident needs more detail to be useful.');
|
|
408
|
+
}
|
|
409
|
+
// Specific improvement suggestions
|
|
410
|
+
const suggestions = [];
|
|
411
|
+
if (!incident.root_cause?.description || incident.root_cause.description.length < 50) {
|
|
412
|
+
suggestions.push('- Add more detail to root cause analysis');
|
|
413
|
+
}
|
|
414
|
+
if ((incident.root_cause?.confidence || 0) < 0.7) {
|
|
415
|
+
suggestions.push('- Increase confidence score if diagnosis is clear');
|
|
416
|
+
}
|
|
417
|
+
if (!incident.fix?.approach || incident.fix.approach.length < 20) {
|
|
418
|
+
suggestions.push('- Document the fix approach more thoroughly');
|
|
419
|
+
}
|
|
420
|
+
if ((incident.fix?.changes?.length || 0) === 0) {
|
|
421
|
+
suggestions.push('- Document specific file changes');
|
|
422
|
+
}
|
|
423
|
+
if (incident.verification?.status !== 'verified') {
|
|
424
|
+
suggestions.push('- Verify the fix works before storing');
|
|
425
|
+
}
|
|
426
|
+
if ((incident.tags?.length || 0) < 3) {
|
|
427
|
+
suggestions.push('- Add more tags for better categorization');
|
|
428
|
+
}
|
|
429
|
+
if (suggestions.length > 0) {
|
|
430
|
+
feedback.push('\nSuggestions for improvement:');
|
|
431
|
+
feedback.push(...suggestions);
|
|
432
|
+
}
|
|
433
|
+
return feedback.join('\n');
|
|
434
|
+
}
|
|
435
|
+
//# sourceMappingURL=interactive-verifier.js.map
|